DialysisPrintOrderThirteen.vue 58KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517
  1. <template>
  2. <div id="dialysis-print-box-1">
  3. <div
  4. id="dialysis-print-box-1-1"
  5. class="dialysis-print-order print-template-two print_page_main_content"
  6. >
  7. <div style="width:100%;text-align:center;">
  8. <div
  9. class="order-yy-name"
  10. style="letter-spacing: 0;font-weight:600;font-size:22px;display:inline-block;"
  11. >
  12. {{ orgname }}
  13. </div>
  14. </div>
  15. <div style="display:inline-block;width:100%;text-align:center;">
  16. <div
  17. class="order-title"
  18. style="letter-spacing: 0;font-weight:600;font-size:22px;display:inline-block;"
  19. >
  20. 血液净化治疗记录单
  21. </div>
  22. </div>
  23. <div class="row" style="display:flex;justify-content: space-between;">
  24. <div class="inline_block" style="margin-right:30px;">
  25. 日期 <div class="inline_block under_line" style="width:50px">{{ queryParams.xtdate.slice(0,4) }}</div>年
  26. <div class="inline_block under_line" style="width:50px">{{ queryParams.xtdate.slice(5,7) }}</div>月
  27. <div class="inline_block under_line" style="width:50px">{{ queryParams.xtdate.slice(8,11) }}</div>日
  28. </div>
  29. <div class="inline_block" style="margin-right:30px;">
  30. 机器编号
  31. <div class="inline_block under_line" style="width:80px;">
  32. {{ getNumber() }}
  33. </div>
  34. </div>
  35. <div class="inline_block" style="margin-right:30px;">
  36. 病案号 <div class="inline_block under_line" style="width:80px">{{ patientInfo.dialysis_no }}</div>
  37. </div>
  38. </div>
  39. <div style="border-bottom: 2px solid #000;width:100%;"></div>
  40. <div class="row">
  41. <div class="inline_block" style="margin-right:30px;">
  42. 姓名
  43. <div class="inline_block under_line" style="width:100px;text-align: center;">
  44. {{ patientInfo.name ? patientInfo.name : "" }}
  45. </div>
  46. </div>
  47. <div class="inline_block" style="margin-right:30px;">
  48. 性别&nbsp;&nbsp;&nbsp;&nbsp;
  49. <label-box :isChecked="patientInfo.gender == '男'" showValue="男" ></label-box>&nbsp;
  50. <label-box :isChecked="patientInfo.gender == '女'" showValue="女" ></label-box>
  51. </div>
  52. <div class="inline_block" style="margin-right:30px;">
  53. 年龄:
  54. <div class="under_line" style="width: 50px;text-align: center">
  55. {{ getNewAge(patientInfo.id_card_no) }}
  56. </div>
  57. </div>
  58. </div>
  59. <div class="row">
  60. <div class="inline_block" style="margin-right:30px;">
  61. 血液净化方式
  62. <div class="inline_block under_line" style="width:300px;text-align: center;">
  63. <label-box :isChecked="prescription.mode_id == 1 ? true : false" showValue="HD"></label-box>&nbsp;&nbsp;&nbsp;&nbsp;
  64. <label-box :isChecked="prescription.mode_id == 2 ? true : false" showValue="HDF"></label-box>&nbsp;&nbsp;&nbsp;&nbsp;
  65. <!-- <label-box :isChecked="prescription.mode_id == 5 ? true : false" showValue="HF"></label-box>
  66. <label-box :isChecked="prescription.mode_id == 4 ? true : false" showValue="HP"></label-box> -->
  67. <label-box :isChecked="prescription.mode_id == 3 ? true : false" showValue="HD+HP"></label-box>
  68. </div>
  69. </div>
  70. <div class="inline_block" style="margin-right:30px;">
  71. 血液净化器类型
  72. <div class="inline_block under_line" style="width:150px;text-align: center;">
  73. {{ prescription.dialyzer_perfusion_apparatus ? prescription.dialyzer_perfusion_apparatus : ''}}
  74. </div>
  75. </div>
  76. </div>
  77. <div class="row">
  78. 血管通路
  79. <div class="inline_block under_line" style="width:93%;text-align: left;">
  80. <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('内瘘-左') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('内瘘-右') > -1 ? true : false" showValue="内瘘"></label-box>
  81. (<label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('内瘘-左') > -1 ? true : false" showValue="左"></label-box>
  82. <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('内瘘-右') > -1 ? true : false" showValue="右"></label-box>)
  83. &nbsp;
  84. <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右') > -1 ? true : false" showValue="中心静脉置管"></label-box>
  85. (<label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左') > -1 ? true : false" showValue="左"></label-box>
  86. <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右') > -1 ? true : false" showValue="右"></label-box>)部位
  87. &nbsp;
  88. <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('颈内') > -1 ? true : false) : false" showValue="颈内"></label-box>
  89. &nbsp;
  90. <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('锁骨下') > -1 ? true : false) : false" showValue="锁骨下"></label-box>
  91. &nbsp;
  92. <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('股') > -1 ? true : false) : false" showValue="股"></label-box>
  93. &nbsp;
  94. <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('其他') > -1? true : false) :false" showValue="其他"></label-box>
  95. &nbsp;
  96. </div>
  97. </div>
  98. <div class="row">
  99. 抗凝药物
  100. <div class="inline_block under_line" style="width:93%;text-align: left;">
  101. <label-box :isChecked="prescription.anticoagulant == '普通肝素' ? true : false" showValue="普通肝素"></label-box>&nbsp;
  102. <label-box :isChecked="prescription.anticoagulant == '低分子肝素钙' ? true : prescription.anticoagulant == '低分子肝素钠' ? true : false" showValue="低分子肝素"></label-box>
  103. (<label-box :isChecked="prescription.anticoagulant == '低分子肝素钙' ? true : false" showValue="钙"></label-box>
  104. <label-box :isChecked="prescription.anticoagulant == '低分子肝素钠' ? true : false" showValue="钠"></label-box>)
  105. <div class="inline_block">
  106. 剂量:首次
  107. <div class="inline_block" style="width:50px;text-align:center">
  108. {{ prescription.anticoagulant_shouji ? prescription.anticoagulant_shouji : "" }}
  109. </div>
  110. <span v-if="prescription.anticoagulant == '枸橼酸钠'">mg</span>
  111. <span v-if="prescription.anticoagulant == '阿加曲班'">mg</span>
  112. <span v-if="prescription.anticoagulant == '低分子肝素'">iu</span>
  113. <span v-if="prescription.anticoagulant == '普通肝素'">mg</span>
  114. <span v-if="prescription.anticoagulant == '无肝素'">mg</span>
  115. <span v-if="prescription.anticoagulant == '低分子肝素钙'">iu</span>
  116. <span v-if="prescription.anticoagulant == '低分子肝素钠'">iu</span>&nbsp;
  117. </div>
  118. <div class="inline_block">
  119. 追加
  120. <div class="inline_block" style="width:50px;text-align:center">
  121. {{ prescription.anticoagulant_weichi ? prescription.anticoagulant_weichi : "" }}
  122. </div>
  123. <span v-if="prescription.anticoagulant == '枸橼酸钠'">ml/h</span>
  124. <span v-if="prescription.anticoagulant == '阿加曲班'">mg/h</span>
  125. <span v-if="prescription.anticoagulant == '低分子肝素'">iu/h</span>
  126. <span v-if="prescription.anticoagulant == '普通肝素'">mg/h</span>
  127. <span v-if="prescription.anticoagulant == '无肝素'">mg/h</span>
  128. <span v-if="prescription.anticoagulant == '低分子肝素钙'">iu/h</span>
  129. <span v-if="prescription.anticoagulant == '低分子肝素钠'">iu/h</span>&nbsp;
  130. </div>
  131. <div class="inline_block">
  132. 总量
  133. <div class="inline_block" style="width:50px;text-align:center">
  134. {{ prescription.anticoagulant_zongliang ? prescription.anticoagulant_zongliang : ""}}
  135. </div>
  136. <span v-if="prescription.anticoagulant == '枸橼酸钠'">mg</span>
  137. <span v-if="prescription.anticoagulant == '阿加曲班'">mg</span>
  138. <span v-if="prescription.anticoagulant == '低分子肝素'">iu</span>
  139. <span v-if="prescription.anticoagulant == '普通肝素'">mg</span>
  140. <span v-if="prescription.anticoagulant == '无肝素'">mg</span>
  141. <span v-if="prescription.anticoagulant == '低分子肝素钙'">iu</span>
  142. <span v-if="prescription.anticoagulant == '低分子肝素钠'">iu</span>
  143. </div>
  144. </div>
  145. </div>
  146. <div class="row">
  147. <div class="inline_block" style="margin-right:30px;">
  148. 干体重
  149. <div class="inline_block under_line" style="width:100px;">
  150. {{ predialysis.dry_weight ? predialysis.dry_weight : " " }}
  151. </div>kg
  152. </div>
  153. <div class="inline_block" style="margin-right:30px;">
  154. 净化前体重
  155. <div class="inline_block under_line" style="width:100px;">
  156. {{ predialysis.weight_before ? predialysis.weight_before : " " }}
  157. </div>kg
  158. </div>
  159. <div class="inline_block" style="margin-right:30px;">
  160. 预设脱水
  161. <div class="inline_block under_line" style="width:100px;">
  162. {{ prescription.target_ultrafiltration ? prescription.target_ultrafiltration : ' ' }}
  163. </div>kg
  164. </div>
  165. </div>
  166. <div class="row">
  167. <div class="inline_block" style="margin-right:22px;">
  168. 净化时间
  169. <div class="inline_block under_line" style="width:50px;">
  170. {{ afterdialysis.actual_treatment_hour ? afterdialysis.actual_treatment_hour : 0 }}
  171. </div>h
  172. <div class="inline_block under_line" style="width:50px;">
  173. {{ afterdialysis.actual_treatment_minute ? afterdialysis.actual_treatment_minute : 0 }}
  174. </div>min
  175. </div>
  176. <div class="inline_block" style="margin-right:30px;">
  177. 净化后体重
  178. <div class="inline_block under_line" style="width:100px;">
  179. {{ afterdialysis.weight_after ? parseFloat(afterdialysis.weight_after).toFixed(1) : " " }}
  180. </div>kg
  181. </div>
  182. <div class="inline_block" style="margin-right:30px;">
  183. 实际脱水
  184. <div class="inline_block under_line" style="width:100px;">
  185. {{ afterdialysis.actual_ultrafiltration ? afterdialysis.actual_ultrafiltration : " " }}
  186. </div>kg
  187. </div>
  188. </div>
  189. <div class="row">
  190. 透前评估
  191. <div class="inline_block under_line" style="width:93%;text-align: left;">
  192. <div class="inline_block" style="margin-right:30px;">
  193. 体温
  194. <div class="inline_block" style="width:50px;text-align:center">
  195. {{ predialysis.temperature ? predialysis.temperature : "" }}
  196. </div>℃
  197. </div>
  198. <div class="inline_block" style="margin-right:30px;">
  199. 血压
  200. <div class="inline_block" style="width:100px;text-align:center">
  201. {{ predialysis.systolic_blood_pressure ? predialysis.systolic_blood_pressure : "" }}/
  202. {{ predialysis.diastolic_blood_pressure ? predialysis.diastolic_blood_pressure : "" }}
  203. </div>mmHg
  204. </div>
  205. <div class="inline_block" style="margin-right:30px;">
  206. 脉搏
  207. <div class="inline_block" style="width:50px;text-align:center">
  208. {{ predialysis.pulse_frequency ? predialysis.pulse_frequency : "" }}
  209. </div>次/分
  210. </div>
  211. </div>
  212. </div>
  213. <table class="print-table" border="1">
  214. <tr>
  215. <td style="height:40px;line-height:40px">时间</td>
  216. <td>医嘱</td>
  217. <td>医师签名</td>
  218. <td>执行时间</td>
  219. <td>执行者签名</td>
  220. </tr>
  221. <tr v-for="(advice, advice_index) in tableAdvice" :key="advice_index">
  222. <td style="height:40px;line-height:40px">{{ getTime(advice.start_time, "{y}-{m}-{d} {h}:{i}") }}</td>
  223. <td class="parent">
  224. <span v-if="advice.parent_id > 0">---></span>
  225. <span>{{ advice.advice_name }}</span>
  226. <span v-if="advice && advice.advice_desc">({{ advice.advice_desc }}{{ advice.drug_spec_unit }})</span>
  227. <span v-if="advice.prescribing_number"> &nbsp;&nbsp; {{ advice.prescribing_number }}{{ advice.prescribing_number_unit }}</span>
  228. <span v-if="advice.single_dose != 0">{{ advice.single_dose }}{{ advice.single_dose_unit }}</span>
  229. <span v-if="advice.parent_id == 0">{{ advice.delivery_way }}</span>
  230. <span v-if="advice.parent_id == 0">{{ advice.execution_frequency }}</span>
  231. <span v-if="advice.parent_id == 0 && advice.remark.length > 0">({{ advice.remark }})</span>
  232. </td>
  233. <td>
  234. <span v-if="setAdminUserES(advice.advice_doctor) == ''">
  235. {{
  236. getAdminUser(advice.advice_doctor)
  237. }}
  238. </span>
  239. <span
  240. v-else
  241. style="display:flex;align-items:center;justify-content:space-around;height:36px;"
  242. >
  243. <img style="height:30px;" :src="setAdminUserES(advice.advice_doctor)" alt srcset />
  244. </span>
  245. </td>
  246. <td>{{ getTime(advice.execution_time, "{y}-{m}-{d} {h}:{i}") }}</td>
  247. <td>
  248. <span v-if="setAdminUserES(advice.execution_staff) == ''">
  249. {{
  250. getAdminUser(advice.execution_staff)
  251. }}
  252. </span>
  253. <span
  254. v-else
  255. style="display:flex;align-items:center;justify-content:space-around;height:36px;"
  256. >
  257. <img style="height:30px;" :src="setAdminUserES(advice.execution_staff)" alt srcset />
  258. </span>
  259. </td>
  260. </tr>
  261. </table>
  262. <table class="print-table" border="1">
  263. <tbody>
  264. <tr style="height:40px;line-height:40px">
  265. <td width="60">时间</td>
  266. <td width="80">BP</td>
  267. <td width="40">心率</td>
  268. <td width="60">血流速</td>
  269. <td width="60">静脉压</td>
  270. <td width="60">TMP</td>
  271. <td width="60">电导率</td>
  272. <td width="40">温度</td>
  273. <td width="60">透析液流量</td>
  274. <td width="60">UF/hr</td>
  275. <td width="100">症状处理</td>
  276. </tr>
  277. <tr v-for="monitor in monitors" :key="monitor.id">
  278. <td style="height:40px;line-height:40px">&nbsp;
  279. {{getTime(monitor.operate_time,'{h}:{i}')}}
  280. </td>
  281. <td>&nbsp;{{monitor.systolic_blood_pressure?monitor.systolic_blood_pressure:''}} /
  282. {{monitor.diastolic_blood_pressure?monitor.diastolic_blood_pressure:''}}
  283. </td>
  284. <td>&nbsp;{{monitor.pulse_frequency?monitor.pulse_frequency:''}}</td>
  285. <td>&nbsp;{{monitor.blood_flow_volume?monitor.blood_flow_volume:''}}</td>
  286. <td>&nbsp;{{monitor.venous_pressure?monitor.venous_pressure:''}}</td>
  287. <td>&nbsp;{{monitor.transmembrane_pressure?monitor.transmembrane_pressure:''}}</td>
  288. <td>&nbsp;{{monitor.conductivity?monitor.conductivity:''}}</td>
  289. <td>&nbsp;{{monitor.dialysate_temperature ? monitor.dialysate_temperature : ''}}</td>
  290. <td>&nbsp; <span v-if="monitor.operate_time"> {{ monitor.dialysate_flow ? monitor.dialysate_flow : "" }} </span></td>
  291. <td>&nbsp;{{monitor.ultrafiltration_volume?monitor.ultrafiltration_volume:''}}</td>
  292. <td> <span v-if="monitor.symptom || monitor.dispose || monitor.result"> {{ monitor.symptom + "," + monitor.dispose + "," + monitor.result }} </span>
  293. </td>
  294. </tr>
  295. </tbody>
  296. </table>
  297. <table class="print-table" border="1">
  298. <tbody>
  299. <tr style="height:40px;line-height:40px">
  300. <td width="40" style="padding-left:5px;border:none;border-right:1px solid #000;">
  301. 透后评估
  302. </td>
  303. <td width="25" style="border:none;padding-left:5px;">
  304. 体温:
  305. </td>
  306. <td width="30" style="text-align:left;border:none;">
  307. <div>
  308. <span class="under_line" style="width:50px;display:inline-block;">
  309. {{ afterdialysis.temperature ? afterdialysis.temperature : "" }}
  310. </span>℃
  311. </div>
  312. </td>
  313. <!-- <td width="10" style="border:none;"></td> -->
  314. <td width="25" style="border:none;padding-left:5px;">血压:</td>
  315. <td width="70" style="text-align:left;border:none;line-height: 30px;">
  316. <div>
  317. <span class="under_line" style="width:100px;display:inline-block">
  318. {{ afterdialysis.systolic_blood_pressure ? afterdialysis.systolic_blood_pressure : "" }}/
  319. {{ afterdialysis.diastolic_blood_pressure ? afterdialysis.diastolic_blood_pressure : "" }}
  320. </span>mmHg
  321. </div>
  322. </td>
  323. <td width="25" style="border:none;padding-left:5px">脉搏:</td>
  324. <td width="55" style="text-align:left;border:none;">
  325. <div>
  326. <span class="under_line" style="width:50px;display:inline-block">
  327. {{ afterdialysis.pulse_frequency ? afterdialysis.pulse_frequency : "" }}
  328. </span>次/分
  329. </div>
  330. </td>
  331. <td width="50" style="border:none;padding-left:5px">实际置换量:</td>
  332. <td width="30" style="text-align:left;border:none;">
  333. <div>
  334. <span class="under_line" style="width:50px;display:inline-block">
  335. {{ afterdialysis.actual_displacement ? afterdialysis.actual_displacement : "" }}
  336. </span>L
  337. </div>
  338. </td>
  339. <td width="50" style="border:none;padding-left:5px">透析器凝血:</td>
  340. <td width="110" style="text-align:left;border:none;">
  341. <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-0度') > -1 ? true : false) :false" showValue="0"></label-box>
  342. <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅰ度') > -1 ? true : false) :false" showValue="+"></label-box>
  343. <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅱ度') > -1 ? true : false) :false" showValue="+ +"></label-box>
  344. <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅲ度') > -1 ? true : false) :false" showValue="+ + +"></label-box>
  345. </td>
  346. </tr>
  347. </tbody>
  348. </table>
  349. <table class="print-table" border="1">
  350. <tr style="height:36px;text-align:left;border:none;">
  351. <td style="padding-left:5px;border:none">
  352. <p style="margin-bottom:130px">
  353. 透析小结:{{ summary.dialysis_summary ? summary.dialysis_summary : "" }}
  354. </p>
  355. </td>
  356. </tr>
  357. <tr style="height:40px">
  358. <td rowspan="11" style="border:none;text-align:right;height:40px">
  359. 记录者
  360. <span style="display: inline-block;width:100px;text-align: left;">
  361. <span v-if="orderForm.url === ''" style="display:flex;align-items:center;">{{ orderForm.start_nurse }}</span>
  362. <span v-if="orderForm.url !== ''" style="display:flex;align-items:center;height:36px;">
  363. <img :src="orderForm.url" style="height:30px;" />
  364. </span>
  365. </span>
  366. 校对护士
  367. <span style="display: inline-block;width:100px;text-align: left;">
  368. &nbsp;
  369. <span v-if="setAdminUserES(check == null ? 0 : check.modifier) == ''"> {{ getAdminUser(check == null ? 0 : check.modifier) }} </span>
  370. <img style="height:30px;" :src="setAdminUserES(check == null ? 0 : check.modifier)" alt srcset v-else />
  371. </span>
  372. 医生签名
  373. <span style="display: inline-block;width:100px;text-align: left;">
  374. &nbsp;
  375. <span v-if="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:prescription.creater)) == ''"> {{ getAdminUser(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:prescription.creater)) }} </span>
  376. <img style="height:30px;" :src="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:prescription.creater))" alt="" srcset="" v-else />
  377. <!-- <span v-if="doctorForm.url === ''">{{ doctorForm.doctor }}</span>
  378. <span v-if="doctorForm.url !== ''">
  379. <img class="es-img" style="height:30px;" :src="doctorForm.url" />
  380. </span> -->
  381. </span>
  382. </td>
  383. </tr>
  384. </table>
  385. </div>
  386. </div>
  387. </template>
  388. <script>
  389. import { getDialysisRecord } from '@/api/dialysis'
  390. import { getDataConfig } from '@/utils/data'
  391. import { jsGetAge, uParseTime } from '@/utils/tools'
  392. import LabelBox from '../printItem/LabelBox'
  393. import BreadCrumb from '@/xt_pages/components/bread-crumb'
  394. // import DialysisPrintOrderOne from './template/dialysisPrintOrderOne'
  395. // import DialysisPrintOrderTwo from './template/dialysisPrintOrderTwo'
  396. import print from 'print-js'
  397. export default {
  398. name: 'dialysisPrintOrderOne',
  399. components: {
  400. // DialysisPrintOrderOne,
  401. // DialysisPrintOrderTwo,
  402. LabelBox,
  403. BreadCrumb
  404. },
  405. data() {
  406. return {
  407. way_arr: [],
  408. consciousness_arr: [],
  409. appetite_arr: [],
  410. posture_arr: [],
  411. sick_condition_arr: [],
  412. precaution_arr: [],
  413. intake_arr: [],
  414. nutrition_arr: [],
  415. crumbs: [
  416. { path: false, name: '透析管理' },
  417. { path: false, name: '打印单' }
  418. ],
  419. operators: [],
  420. adminUser: [],
  421. check: {},
  422. dialysisOrder: {
  423. DeviceNumber: []
  424. },
  425. Order: {},
  426. operatorMaps: {},
  427. complications: [
  428. '低血压',
  429. '高血压',
  430. '心律失常',
  431. '头晕',
  432. '头痛',
  433. '呕吐',
  434. '抽搐',
  435. '出血',
  436. '心衰',
  437. '腹痛',
  438. '无'
  439. ],
  440. jilurow: 0,
  441. advice_jilurow: 0,
  442. loading: false,
  443. orgname: '',
  444. patientInfo_gender_1: false,
  445. patientInfo_gender_2: false,
  446. patientInfo_source_2: false,
  447. patientInfo_source_1: false,
  448. modeOptions: {},
  449. replacementWays: [],
  450. perfusionApparatus: [],
  451. anticoagulantsConfit: {},
  452. bloodAccessParOpera: {},
  453. dialysateFormulationOptions: {},
  454. queryParams: {
  455. xtdate: '',
  456. xtno: ''
  457. },
  458. patientInfo: {
  459. birth: '',
  460. age: '',
  461. DialysisSchedule: {
  462. device_number: { number: '' },
  463. device_zone: { name: '' }
  464. },
  465. gender: 0
  466. },
  467. predialysis: {
  468. score: '',
  469. internal_fistula: '',
  470. internal_fistula_skin: '',
  471. catheter: '',
  472. blood_access_part_opera_name: ''
  473. },
  474. afterdialysis: {
  475. complications_index: ''
  476. },
  477. prescription: {
  478. dialysate_formulation_name: '',
  479. device: {}
  480. },
  481. advices: [],
  482. users: [],
  483. monitors: [],
  484. summary: {},
  485. receiverTreatmentAccess: {},
  486. org_template_info: {},
  487. isShowZero: false,
  488. doctor_advices: [],
  489. advice_groups: [],
  490. AlPanel: {
  491. id: 0,
  492. name: '',
  493. type: 1,
  494. shouji: 2,
  495. weichi: 2,
  496. zongliang: 2,
  497. gaimingcheng: -1,
  498. gaijiliang: -1,
  499. shouji_unit: 'mg',
  500. weichi_unit: 'mg/h',
  501. zongliang_unit: 'mg',
  502. gaimingcheng_unit: '',
  503. gaijiliang_unit: ''
  504. },
  505. total: '',
  506. doctorForm: {
  507. doctor: '',
  508. url: ''
  509. },
  510. dialysisDoctor: {
  511. doctor: '',
  512. url: ''
  513. },
  514. tableAdvice: [],
  515. assessmentafter: {},
  516. orderForm: {
  517. start_nurse: '',
  518. url: ''
  519. },
  520. finshForm: {
  521. finish_nurse: '',
  522. url: ''
  523. },
  524. displaceLiquiPartOptions: []
  525. }
  526. },
  527. methods: {
  528. getNewAge(UUserCard) {
  529. if (UUserCard != null && UUserCard != '') {
  530. // 获取年龄
  531. var myDate = new Date()
  532. var month = myDate.getMonth() + 1
  533. var day = myDate.getDate()
  534. var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1
  535. if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
  536. age++
  537. }
  538. return age
  539. }
  540. },
  541. getDisplaceLiquiPart: function(val) {
  542. let displace_liqui_part_name = '/'
  543. const displace_liqui_part = this.displaceLiquiPartOptions
  544. for (let i = 0; i < displace_liqui_part.length; i++) {
  545. if (displace_liqui_part[i].id == val) {
  546. displace_liqui_part_name = displace_liqui_part[i].name
  547. }
  548. }
  549. return displace_liqui_part_name
  550. },
  551. getAdminUser(id) {
  552. if (id == 0) {
  553. return ''
  554. }
  555. if (id == undefined) {
  556. return ''
  557. }
  558. for (let i = 0; i < this.adminUser.length; i++) {
  559. if (this.adminUser[i].id == id) {
  560. return this.adminUser[i].name
  561. }
  562. }
  563. },
  564. getTime(value, temp) {
  565. if (value == 0) {
  566. return ''
  567. }
  568. if (value != undefined) {
  569. return uParseTime(value, temp)
  570. }
  571. return ''
  572. },
  573. printThisPage() {
  574. var ptime = Math.round(new Date().getTime() / 1000)
  575. this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
  576. const style =
  577. '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:left;border-collapse:collapse;font-size:14px} .dialysis-print-order .under_line {display: inline-block;border-bottom: 1px solid #999;text-align:left;white-space: nowrap;width: 50%;} .dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;} .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;} .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}'
  578. if (this.org_template_info.template_id == 1) {
  579. printJS({
  580. printable: 'dialysis-print-box',
  581. type: 'html',
  582. style: style,
  583. scanStyles: false
  584. })
  585. } else if (
  586. this.org_template_info.template_id == 2 ||
  587. this.org_template_info.template_id == 0
  588. ) {
  589. printJS({
  590. printable: 'dialysis-print-box-1',
  591. type: 'html',
  592. style: style,
  593. scanStyles: false
  594. })
  595. }
  596. },
  597. getNumber() {
  598. if (this.dialysisOrder != null) {
  599. if (this.patientInfo.DialysisSchedule.device_zone.name.indexOf('区') > -1) {
  600. return (
  601. this.patientInfo.DialysisSchedule.device_zone.name +
  602. this.dialysisOrder.DeviceNumber.number
  603. )
  604. } else {
  605. return (
  606. this.patientInfo.DialysisSchedule.device_zone.name + '区' +
  607. this.dialysisOrder.DeviceNumber.number
  608. )
  609. }
  610. } else {
  611. return (
  612. this.patientInfo.DialysisSchedule.device_zone.name +
  613. this.patientInfo.DialysisSchedule.device_number.number
  614. )
  615. }
  616. },
  617. getXuserName(id) {
  618. if (id <= 0) {
  619. return ''
  620. }
  621. var name = ''
  622. if (this.users == null || typeof this.users.length === 'undefined') {
  623. return name
  624. }
  625. var leng = this.users.length
  626. if (leng == 0) {
  627. return name
  628. }
  629. for (let index = 0; index < leng; index++) {
  630. if (this.users[index].id == id) {
  631. name = this.users[index].name
  632. break
  633. }
  634. }
  635. return name
  636. },
  637. setAdminUserES(id) {
  638. if (id == 0) {
  639. return ''
  640. }
  641. if (id in this.operatorMaps) {
  642. return this.operatorMaps[id].url
  643. } else {
  644. return ''
  645. }
  646. },
  647. modeName(mode_id) {
  648. return typeof this.modeOptions[mode_id] !== 'undefined' &&
  649. typeof this.modeOptions[mode_id].name !== 'undefined'
  650. ? this.modeOptions[mode_id].name
  651. : ''
  652. },
  653. getDialysisRecords() {
  654. this.loading = true
  655. getDialysisRecord(this.queryParams).then(response => {
  656. if (response.data.state === 1) {
  657. this.total = response.data.data.total
  658. this.adminUser = response.data.data.users
  659. this.users = response.data.data.users
  660. var patientInfo = response.data.data.patientInfo
  661. if (patientInfo.gender === 1) {
  662. patientInfo.gender = '男'
  663. }
  664. if (patientInfo.gender === 2) {
  665. patientInfo.gender = '女'
  666. }
  667. this.patientInfo = patientInfo
  668. this.patientInfo.birth = uParseTime(
  669. this.patientInfo.birthday,
  670. '{y}-{m}-{d}'
  671. )
  672. // this.patientInfo.age = jsGetAge(this.patientInfo.birth, '-')
  673. if (response.data.data.patientInfo.first_dialysis_date != 0) {
  674. this.patientInfo.first_dialysis_date = uParseTime(
  675. response.data.data.patientInfo.first_dialysis_date,
  676. '{y}-{m}-{d}'
  677. )
  678. } else {
  679. this.patientInfo.first_dialysis_date = ''
  680. }
  681. this.check = response.data.data.check
  682. console.log('核对信息', this.check)
  683. this.predialysis = response.data.data.PredialysisEvaluation
  684. console.log('透前评估', this.predialysis)
  685. this.predialysis.blood_access_part_opera_name = this.bloodAccessParOperaName(
  686. this.predialysis.blood_access_part_opera_id
  687. )
  688. this.assessmentafter = response.data.data.assessmentAfterDislysis
  689. console.log('上次透后体重', this.assessmentafter)
  690. var doctorAdevieInfo = response.data.data.doctorAdevieInfo
  691. var tableAdvice = doctorAdevieInfo
  692. console.log('医生', tableAdvice)
  693. if (tableAdvice.length === 0) {
  694. var obj = { advice_name: '', start_time: '' }
  695. var obj1 = { advice_name: '', start_time: '' }
  696. var obj2 = { advice_name: '', start_time: '' }
  697. var obj3 = { advice_name: '', start_time: '' }
  698. var obj4 = { advice_name: '', start_time: '' }
  699. var obj5 = { advice_name: '', start_time: '' }
  700. var obj6 = { advice_name: '', start_time: '' }
  701. var obj7 = { advice_name: '', start_time: '' }
  702. tableAdvice.push(obj)
  703. tableAdvice.push(obj1)
  704. tableAdvice.push(obj2)
  705. tableAdvice.push(obj3)
  706. tableAdvice.push(obj4)
  707. tableAdvice.push(obj5)
  708. tableAdvice.push(obj6)
  709. tableAdvice.push(obj7)
  710. this.tableAdvice = tableAdvice
  711. }
  712. if (tableAdvice.length === 1) {
  713. var obj = { advice_name: '', start_time: '' }
  714. var obj1 = { advice_name: '', start_time: '' }
  715. var obj2 = { advice_name: '', start_time: '' }
  716. var obj3 = { advice_name: '', start_time: '' }
  717. var obj4 = { advice_name: '', start_time: '' }
  718. var obj5 = { advice_name: '', start_time: '' }
  719. var obj6 = { advice_name: '', start_time: '' }
  720. tableAdvice.push(obj)
  721. tableAdvice.push(obj1)
  722. tableAdvice.push(obj2)
  723. tableAdvice.push(obj3)
  724. tableAdvice.push(obj4)
  725. tableAdvice.push(obj5)
  726. tableAdvice.push(obj6)
  727. this.tableAdvice = tableAdvice
  728. }
  729. if (tableAdvice.length === 2) {
  730. var obj = { advice_name: '', start_time: '' }
  731. var obj1 = { advice_name: '', start_time: '' }
  732. var obj2 = { advice_name: '', start_time: '' }
  733. var obj3 = { advice_name: '', start_time: '' }
  734. var obj4 = { advice_name: '', start_time: '' }
  735. var obj5 = { advice_name: '', start_time: '' }
  736. tableAdvice.push(obj)
  737. tableAdvice.push(obj1)
  738. tableAdvice.push(obj2)
  739. tableAdvice.push(obj3)
  740. tableAdvice.push(obj4)
  741. tableAdvice.push(obj5)
  742. this.tableAdvice = tableAdvice
  743. }
  744. if (tableAdvice.length === 3) {
  745. // eslint-disable-next-line no-redeclare
  746. var obj = { advice_name: '', start_time: '' }
  747. // eslint-disable-next-line no-redeclare
  748. var obj1 = { advice_name: '', start_time: '' }
  749. // eslint-disable-next-line no-redeclare
  750. var obj2 = { advice_name: '', start_time: '' }
  751. var obj3 = { advice_name: '', start_time: '' }
  752. var obj4 = { advice_name: '', start_time: '' }
  753. // eslint-disable-next-line no-redeclare
  754. tableAdvice.push(obj)
  755. tableAdvice.push(obj1)
  756. tableAdvice.push(obj2)
  757. tableAdvice.push(obj3)
  758. tableAdvice.push(obj4)
  759. this.tableAdvice = tableAdvice
  760. }
  761. if (tableAdvice.length === 4) {
  762. // eslint-disable-next-line no-redeclare
  763. var obj = { advice_name: '', start_time: '' }
  764. // eslint-disable-next-line no-redeclare
  765. var obj1 = { advice_name: '', start_time: '' }
  766. var obj2 = { advice_name: '', start_time: '' }
  767. var obj3 = { advice_name: '', start_time: '' }
  768. // eslint-disable-next-line no-redeclare
  769. tableAdvice.push(obj)
  770. tableAdvice.push(obj1)
  771. tableAdvice.push(obj2)
  772. tableAdvice.push(obj3)
  773. this.tableAdvice = tableAdvice
  774. }
  775. if (tableAdvice.length === 5) {
  776. // eslint-disable-next-line no-redeclare
  777. var obj = { advice_name: '', start_time: '' }
  778. // eslint-disable-next-line no-redeclare
  779. var obj1 = { advice_name: '', start_time: '' }
  780. var obj2 = { advice_name: '', start_time: '' }
  781. tableAdvice.push(obj)
  782. tableAdvice.push(obj1)
  783. tableAdvice.push(obj2)
  784. this.tableAdvice = tableAdvice
  785. }
  786. if (tableAdvice.length >= 6) {
  787. this.tableAdvice = tableAdvice
  788. }
  789. this.afterdialysis = response.data.data.AssessmentAfterDislysis
  790. console.log('透后评估', this.afterdialysis)
  791. this.operators = response.data.data.operators
  792. this.dialysisOrder =
  793. response.data.data.dialysisOrder === null
  794. ? null
  795. : response.data.data.dialysisOrder
  796. console.log(111, this.dialysisOrder)
  797. if (this.operators.length > 0) {
  798. var operatorsLen = this.operators.length
  799. for (var index = 0; index < operatorsLen; index++) {
  800. this.$set(
  801. this.operatorMaps,
  802. this.operators[index].creator,
  803. this.operators[index]
  804. )
  805. }
  806. }
  807. this.afterdialysis.txqnx = -1
  808. if (this.afterdialysis.cruor.indexOf('0度') > -1) {
  809. this.afterdialysis.txqnx = 0
  810. }
  811. if (this.afterdialysis.cruor.indexOf('Ⅰ度') > -1) {
  812. this.afterdialysis.txqnx = 1
  813. }
  814. if (this.afterdialysis.cruor.indexOf('Ⅱ度') > -1) {
  815. this.afterdialysis.txqnx = 2
  816. }
  817. if (this.afterdialysis.cruor.indexOf('Ⅲ度') > -1) {
  818. this.afterdialysis.txqnx = 3
  819. }
  820. this.afterdialysis.complications = this.afterdialysis.complication.split(
  821. ','
  822. )
  823. this.afterdialysis.complications_other = []
  824. this.afterdialysis.complications_index = []
  825. var acllen = this.afterdialysis.complications.length
  826. for (let index = 0; index < acllen; index++) {
  827. if (
  828. this.complications.indexOf(
  829. this.afterdialysis.complications[index]
  830. ) >= 0
  831. ) {
  832. this.afterdialysis.complications_index.push(
  833. this.afterdialysis.complications[index]
  834. )
  835. } else if (
  836. this.complications.indexOf(
  837. this.afterdialysis.complications[index]
  838. ) < 0 &&
  839. this.afterdialysis.complications_other.indexOf(
  840. this.afterdialysis.complications[index]
  841. ) < 0
  842. ) {
  843. this.afterdialysis.complications_other.push(
  844. this.afterdialysis.complications[index]
  845. )
  846. }
  847. }
  848. this.afterdialysis.complications_other = this.afterdialysis.complications_other.join(
  849. ','
  850. )
  851. var doctorname = response.data.data.DoctorName
  852. // console.log("医师签名", doctorname);
  853. this.doctorForm.doctor = doctorname.user_name
  854. this.doctorForm.url = doctorname.url
  855. var prescription = response.data.data.dialysisPrescription
  856. console.log('透析处方', prescription)
  857. if (prescription.anticoagulant == 6) {
  858. prescription.anticoagulant = '低分子肝素钙'
  859. }
  860. if (prescription.anticoagulant == 7) {
  861. prescription.anticoagulant = '低分子肝素钠'
  862. }
  863. if (prescription.blood_access === 1) {
  864. prescription.blood_access = '正常'
  865. }
  866. if (prescription.blood_access === 2) {
  867. prescription.blood_access = '震颤'
  868. }
  869. if (prescription.blood_access === 3) {
  870. prescription.blood_access = '堵塞'
  871. }
  872. if (prescription.blood_access === 4) {
  873. prescription.blood_access = '血肿'
  874. }
  875. if (prescription.blood_access === 5) {
  876. prescription.blood_access = '淤血'
  877. }
  878. if (prescription.blood_access === 6) {
  879. prescription.blood_access = '感染'
  880. }
  881. if (prescription.blood_access === 7) {
  882. prescription.blood_access = '自体内瘘'
  883. }
  884. if (prescription.blood_access === 8) {
  885. prescription.blood_access = '人工血管内瘘'
  886. }
  887. if (prescription.replacement_way === 1) {
  888. prescription.replacement_way = '前置换'
  889. }
  890. if (prescription.replacement_way === 2) {
  891. prescription.replacement_way = '后置换'
  892. }
  893. if (prescription.replacement_way === 3) {
  894. prescription.replacement_way = '中置换'
  895. }
  896. if (prescription.replacement_way === 4) {
  897. prescription.replacement_way = '混合置换'
  898. }
  899. if (prescription.anticoagulant === 1) {
  900. prescription.anticoagulant = '无肝素'
  901. }
  902. if (prescription.anticoagulant === 2) {
  903. prescription.anticoagulant = '普通肝素'
  904. }
  905. if (prescription.anticoagulant === 3) {
  906. prescription.anticoagulant = '低分子肝素'
  907. }
  908. if (prescription.anticoagulant === 4) {
  909. prescription.anticoagulant = '阿加曲班'
  910. }
  911. if (prescription.anticoagulant === 5) {
  912. prescription.anticoagulant = '枸橼酸钠'
  913. }
  914. this.prescription = prescription
  915. var receiverTreatmentAccess =
  916. response.data.data.receiverTreatmentAccess
  917. if (receiverTreatmentAccess.sick_condition === 1) {
  918. receiverTreatmentAccess.sick_condition = '一般'
  919. }
  920. if (receiverTreatmentAccess.sick_condition === 2) {
  921. receiverTreatmentAccess.sick_condition = '严重'
  922. }
  923. if (receiverTreatmentAccess.sick_condition === 3) {
  924. receiverTreatmentAccess.sick_condition = '危'
  925. }
  926. if (receiverTreatmentAccess.way === 1) {
  927. receiverTreatmentAccess.way = '步行'
  928. }
  929. if (receiverTreatmentAccess.way === 2) {
  930. receiverTreatmentAccess.way = '扶行'
  931. }
  932. if (receiverTreatmentAccess.way === 3) {
  933. receiverTreatmentAccess.way = '轮椅'
  934. }
  935. if (receiverTreatmentAccess.way === 4) {
  936. receiverTreatmentAccess.way = '平车'
  937. }
  938. console.log('接诊评估:', receiverTreatmentAccess)
  939. this.receiverTreatmentAccess = receiverTreatmentAccess
  940. this.prescription.mode = this.modeName(this.prescription.mode_id)
  941. var rwLen = this.replacementWays.length
  942. this.prescription.replacement = ''
  943. for (let index = 0; index < rwLen; index++) {
  944. if (
  945. this.replacementWays[index].id ==
  946. this.prescription.replacement_way
  947. ) {
  948. this.prescription.replacement = this.replacementWays[index].name
  949. break
  950. }
  951. }
  952. this.prescription.dialysate_formulation_name = this.dialysateFormulationName(
  953. this.prescription.dialysate_formulation
  954. )
  955. var paLen = this.perfusionApparatus.length
  956. this.prescription.perfusion_apparatus_name = ''
  957. for (let index = 0; index < paLen; index++) {
  958. if (
  959. this.perfusionApparatus[index].id ==
  960. this.prescription.perfusion_apparatus
  961. ) {
  962. this.prescription.perfusion_apparatus_name = this.perfusionApparatus[
  963. index
  964. ].name
  965. break
  966. }
  967. }
  968. var acLen = this.anticoagulantsConfit.length
  969. var thisALID = this.prescription.anticoagulant
  970. this.prescription.anticoagulant_name = ''
  971. if (
  972. typeof this.anticoagulantsConfit[thisALID] !== 'undefined' &&
  973. this.anticoagulantsConfit[thisALID] != null
  974. ) {
  975. this.prescription.anticoagulant_name = this.anticoagulantsConfit[
  976. thisALID
  977. ].name
  978. this.AlPanel = this.anticoagulantsConfit[thisALID]
  979. }
  980. this.advices = response.data.data.advices
  981. this.monitors = response.data.data.monitors
  982. console.log('透析监测', this.monitors)
  983. this.summary = response.data.data.summary
  984. this.Order = response.data.data.order
  985. var start_nurse = response.data.data.startNuse
  986. // console.log('上机护士', start_nurse)
  987. this.orderForm.start_nurse = start_nurse.user_name
  988. this.orderForm.url = start_nurse.url
  989. var finish_nurse = response.data.data.FinishNuse
  990. // console.log('下机护士', finish_nurse)
  991. this.finshForm.url = finish_nurse.url
  992. this.finshForm.finish_nurse = finish_nurse.user_name
  993. var dialysisdoctor = response.data.data.dialysisdocotr
  994. // this.dialysisDoctor.doctor = dialysisdoctor.user_name;
  995. // this.dialysisDoctor.url = dialysisdoctor.url;
  996. this.org_template_info = response.data.data.org_template_info
  997. // 配置超滤量和置换量是否要显示0还是空
  998. if (this.org_template_info.org_id == 9535) {
  999. this.isShowZero = true
  1000. }
  1001. if (this.monitors.length < 7) {
  1002. var nl = 8 - this.monitors.length
  1003. for (let index = 0; index < nl; index++) {
  1004. this.monitors.push([])
  1005. }
  1006. }
  1007. this.jilurow = this.monitors.length + 1
  1008. this.advice_jilurow = this.advices.length + 1
  1009. var childMap = {}
  1010. for (const index in this.advices) {
  1011. if (this.advices[index].parent_id == 0) {
  1012. continue
  1013. }
  1014. if (!(this.advices[index].parent_id in childMap)) {
  1015. childMap[this.advices[index].parent_id] = []
  1016. }
  1017. childMap[this.advices[index].parent_id].push(this.advices[index])
  1018. }
  1019. var advices = []
  1020. for (const index in this.advices) {
  1021. if (this.advices[index].parent_id > 0) {
  1022. continue
  1023. }
  1024. var item = this.advices[index]
  1025. if (item.id in childMap) {
  1026. item.children = childMap[item.id]
  1027. } else {
  1028. item.children = []
  1029. }
  1030. advices.push(item)
  1031. }
  1032. var leftAdvice = []
  1033. var rightAdvice = []
  1034. var adlen = advices.length
  1035. var halfLen = adlen % 2 == 0 ? adlen / 2 : (adlen + 1) / 2
  1036. for (var i = 0; i < halfLen; i++) {
  1037. leftAdvice.push(advices[i])
  1038. rightAdvice.push(advices[i + halfLen])
  1039. }
  1040. if (halfLen < 5) {
  1041. var nl = 5 - leftAdvice.length
  1042. for (let index = 0; index < nl; index++) {
  1043. leftAdvice.push([])
  1044. }
  1045. var nl = 5 - rightAdvice.length
  1046. for (let index = 0; index < nl; index++) {
  1047. rightAdvice.push([])
  1048. }
  1049. }
  1050. this.advices = []
  1051. for (var i = 0; i < halfLen; i++) {
  1052. var item = []
  1053. item.push(leftAdvice[i])
  1054. item.push(rightAdvice[i])
  1055. this.advices.push(item)
  1056. }
  1057. this.loading = false
  1058. this.doctor_advices =
  1059. response.data.data.advices == null
  1060. ? []
  1061. : response.data.data.advices
  1062. for (let index = 0; index < this.doctor_advices.length; index++) {
  1063. this.doctor_advices[index]['isShow'] = 2
  1064. }
  1065. if (this.doctor_advices.length > 0) {
  1066. var group = this.newAdviceGroupObject()
  1067. var initGroupBlock = function(group, advice) {
  1068. group.group_no = advice.groupno
  1069. }
  1070. for (
  1071. let index = this.doctor_advices.length - 1;
  1072. index >= 0;
  1073. index--
  1074. ) {
  1075. var new_advice_index = 0
  1076. if (
  1077. 'children' in this.doctor_advices[index] &&
  1078. this.doctor_advices[index].children.length > 0
  1079. ) {
  1080. new_advice_index =
  1081. index + this.doctor_advices[index].children.length + 1
  1082. var doctor_advice = {
  1083. delivery_way: this.doctor_advices[index].delivery_way,
  1084. execution_frequency: this.doctor_advices[index]
  1085. .execution_frequency,
  1086. groupno: this.doctor_advices[index].groupno,
  1087. id: this.doctor_advices[index].id,
  1088. parent_id: this.doctor_advices[index].parent_id,
  1089. children: this.doctor_advices[index].children,
  1090. remark: this.doctor_advices[index].remark
  1091. }
  1092. doctor_advice['isShow'] = 1
  1093. this.doctor_advices.splice(new_advice_index, 0, doctor_advice)
  1094. // this.doctor_advices.push(doctor_advice)
  1095. }
  1096. }
  1097. for (let index = 0; index < this.doctor_advices.length; index++) {
  1098. const advice = this.doctor_advices[index]
  1099. if (advice.groupno == 0) {
  1100. // 老版本的医嘱没有分组的概念,所以这一个 if 是解决这个问题的,将每个无分组的医嘱各自归为一组
  1101. if (advice.parent_id > 0) {
  1102. if (this.advice_groups.length > 0) {
  1103. var parent_group = this.advice_groups[
  1104. this.advice_groups.length - 1
  1105. ]
  1106. if (parent_group.advices.length > 0) {
  1107. if (parent_group.advices[0].id == advice.parent_id) {
  1108. parent_group.advices.push(advice)
  1109. }
  1110. }
  1111. }
  1112. continue
  1113. } else {
  1114. if (group.group_no > 0) {
  1115. this.advice_groups.push(group)
  1116. group = this.newAdviceGroupObject()
  1117. }
  1118. initGroupBlock(group, advice)
  1119. group.advices.push(advice)
  1120. this.advice_groups.push(group)
  1121. group = this.newAdviceGroupObject()
  1122. continue
  1123. }
  1124. }
  1125. if (group.group_no > 0 && group.group_no != advice.groupno) {
  1126. this.advice_groups.push(group)
  1127. group = this.newAdviceGroupObject()
  1128. }
  1129. if (group.group_no == 0) {
  1130. initGroupBlock(group, advice)
  1131. }
  1132. if (group.group_no == advice.groupno) {
  1133. group.advices.push(advice)
  1134. }
  1135. }
  1136. if (group.group_no > 0) {
  1137. // 上述的算法会导致最后一组没有加到advice_groups,这里要手动加上
  1138. this.advice_groups.push(group)
  1139. }
  1140. }
  1141. console.log(this.advice_groups)
  1142. } else {
  1143. this.loading = false
  1144. this.$message.error('请求数据失败')
  1145. return false
  1146. }
  1147. })
  1148. },
  1149. bloodAccessParOperaName(id) {
  1150. if (id in this.bloodAccessParOpera) {
  1151. return this.bloodAccessParOpera[id].name
  1152. }
  1153. return ''
  1154. },
  1155. dialysateFormulationName(id) {
  1156. if (id in this.dialysateFormulationOptions) {
  1157. return this.dialysateFormulationOptions[id].name
  1158. }
  1159. return ''
  1160. },
  1161. getAge: function(val) {
  1162. if (val.birthday != 0) {
  1163. return jsGetAge(val.birth, '-')
  1164. }
  1165. return ''
  1166. },
  1167. checkIdCardNo(val) {
  1168. var thisLen = val.length
  1169. var birth = ''
  1170. if (thisLen == 15) {
  1171. birth = '19' + val.substr(6, 6)
  1172. } else {
  1173. birth = val.substr(6, 8)
  1174. }
  1175. var birthTwo =
  1176. birth.substr(0, 4) +
  1177. '-' +
  1178. birth.substr(4, 2) +
  1179. '-' +
  1180. birth.substr(6, 2)
  1181. var age = jsGetAge(birthTwo, '-')
  1182. return age
  1183. },
  1184. newAdviceGroupObject: function() {
  1185. return Object.assign(
  1186. {},
  1187. {
  1188. group_no: 0,
  1189. // advice_doctor: 0,
  1190. // start_time: 0,
  1191. advices: []
  1192. // exec_staff: 0,
  1193. // exec_time: 0,
  1194. // checker: 0,
  1195. }
  1196. )
  1197. },
  1198. getPartName(id) {
  1199. for (let i = 0; i < this.vascularAccess.length; i++) {
  1200. if (this.vascularAccess[i].id == id) {
  1201. return this.vascularAccess[i].name
  1202. }
  1203. }
  1204. }
  1205. },
  1206. watch: {
  1207. 'patientInfo.gender': function() {
  1208. if (this.patientInfo.gender == 1) {
  1209. this.patientInfo_gender_1 = true
  1210. this.patientInfo_gender_2 = false
  1211. } else if (this.patientInfo.gender == 2) {
  1212. this.patientInfo_gender_2 = true
  1213. this.patientInfo_gender_1 = false
  1214. } else {
  1215. this.patientInfo_gender_2 = false
  1216. this.patientInfo_gender_1 = false
  1217. }
  1218. },
  1219. 'patientInfo.source': function() {
  1220. if (this.patientInfo.source == 1) {
  1221. this.patientInfo_source_1 = true
  1222. this.patientInfo_source_2 = false
  1223. } else if (this.patientInfo.source == 2) {
  1224. this.patientInfo_source_2 = true
  1225. this.patientInfo_source_1 = false
  1226. } else {
  1227. this.patientInfo_source_2 = false
  1228. this.patientInfo_source_1 = false
  1229. }
  1230. }
  1231. },
  1232. created() {
  1233. var xtuser = this.$store.getters.xt_user
  1234. this.orgname = xtuser.org.org_name
  1235. // this.orgname = "遂溪方济医院";
  1236. this.modeOptions = this.$store.getters.treatment_mode
  1237. this.replacementWays = this.$store.getters.replacement_ways
  1238. this.perfusionApparatus = this.$store.getters.perfusion_apparatus
  1239. this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit
  1240. this.way_arr = getDataConfig('hemodialysis', 'way')
  1241. this.consciousness_arr = getDataConfig('hemodialysis', 'consciousness')
  1242. this.appetite_arr = getDataConfig('hemodialysis', 'appetite')
  1243. this.posture_arr = getDataConfig('hemodialysis', 'posture')
  1244. this.sick_condition_arr = getDataConfig('hemodialysis', 'sick_condition')
  1245. this.precaution_arr = getDataConfig('hemodialysis', 'precaution')
  1246. this.intake_arr = getDataConfig('hemodialysis', 'intake')
  1247. this.nutrition_arr = getDataConfig('hemodialysis', 'nutrition')
  1248. this.displaceLiquiPartOptions = this.$store.getters.displace_liqui
  1249. // this.bloodAccessParOpera = getDataConfig('hemodialysis', 'vascular_access_desc')
  1250. var vascularAccess = getDataConfig('hemodialysis', 'vascular_access')
  1251. this.vascularAccess = vascularAccess
  1252. // console.log("hhe", vascularAccess);
  1253. var bloodAccessParOpera = getDataConfig(
  1254. 'hemodialysis',
  1255. 'vascular_access_desc'
  1256. )
  1257. for (var key in bloodAccessParOpera) {
  1258. this.bloodAccessParOpera[bloodAccessParOpera[key].id] =
  1259. bloodAccessParOpera[key]
  1260. }
  1261. var dialysateFormulationOptions = getDataConfig(
  1262. 'hemodialysis',
  1263. 'dialysate_formulation'
  1264. )
  1265. for (var key in dialysateFormulationOptions) {
  1266. this.dialysateFormulationOptions[dialysateFormulationOptions[key].id] =
  1267. dialysateFormulationOptions[key]
  1268. }
  1269. const xtdate = this.$route.query && this.$route.query.xtdate
  1270. const xtno = this.$route.query && this.$route.query.xtno
  1271. if (
  1272. typeof xtdate === 'string' &&
  1273. xtdate.length > 0 &&
  1274. typeof xtno === 'string' &&
  1275. xtno.length > 0
  1276. ) {
  1277. this.queryParams.xtdate = xtdate
  1278. this.queryParams.xtno = xtno
  1279. this.getDialysisRecords()
  1280. } else {
  1281. this.$message.error('参数不齐')
  1282. return false
  1283. }
  1284. }
  1285. }
  1286. </script>
  1287. <style>
  1288. .print_page_main_content {
  1289. background-color: white;
  1290. width: 960px;
  1291. margin: 0 auto 50px;
  1292. padding: 0 0 0 0;
  1293. page-break-after: always;
  1294. }
  1295. .print_page_main_content .order-yy-name {
  1296. margin: auto;
  1297. text-align: center;
  1298. font-size: 20px;
  1299. letter-spacing: 5px;
  1300. }
  1301. .dialysis-print-order .order-title {
  1302. margin: auto;
  1303. font-weight: 600;
  1304. text-align: center;
  1305. font-size: 22px;
  1306. padding: 10px;
  1307. }
  1308. .print_page_main_content .order_title {
  1309. text-align: center;
  1310. font-size: 23px;
  1311. line-height: 50px;
  1312. font-weight: 500;
  1313. }
  1314. .row {
  1315. font-size: 14px;
  1316. line-height: 20px;
  1317. padding: 5px 0;
  1318. }
  1319. .inline_block {
  1320. display: inline-block;
  1321. }
  1322. .under_line_two {
  1323. display: inline-block;
  1324. border-bottom: 1px solid #999;
  1325. text-align: left;
  1326. white-space: nowrap;
  1327. width: 50%;
  1328. }
  1329. .under_line_two::before {
  1330. content: "\00A0";
  1331. }
  1332. .under_line_two::after {
  1333. content: "\00A0";
  1334. }
  1335. .under_line {
  1336. display: inline-block;
  1337. border-bottom: 1px solid #999;
  1338. text-align: center;
  1339. white-space: nowrap;
  1340. width: 50%;
  1341. }
  1342. .under_line::before {
  1343. content: "\00A0";
  1344. }
  1345. .under_line::after {
  1346. content: "\00A0";
  1347. }
  1348. .flex {
  1349. display: -webkit-box;
  1350. display: -moz-box;
  1351. display: -ms-flexbox;
  1352. display: -webkit-flex;
  1353. display: flex;
  1354. align-items: center;
  1355. -webkit-align-items: center;
  1356. box-align: center;
  1357. -moz-box-align: center;
  1358. -webkit-box-align: center;
  1359. text-align: center;
  1360. -webkit-justify-content: space-between;
  1361. justify-content: space-between;
  1362. -moz-box-pack: space-between;
  1363. -webkit--moz-box-pack: space-between;
  1364. box-pack: space-between;
  1365. }
  1366. .print_page_main_content .proj_table {
  1367. width: 100%;
  1368. border: 1px solid;
  1369. border-collapse: collapse;
  1370. padding: 2px;
  1371. }
  1372. .print_page_main_content .proj_table tbody tr td {
  1373. border: 1px solid;
  1374. /* text-align: center; */
  1375. font-size: 16px;
  1376. padding: 5px 8px;
  1377. line-height: 30px;
  1378. }
  1379. .print_page_main_content .proj_table .inside_table {
  1380. width: 100%;
  1381. border: hidden; /* 解决边框冲突 */
  1382. border-collapse: collapse;
  1383. }
  1384. .print_page_main_content .proj_table .inside_table tr td {
  1385. border: 1px solid;
  1386. text-align: center;
  1387. font-size: 14px;
  1388. padding: 6px 5px;
  1389. line-height: 16px;
  1390. }
  1391. .print-table-no {
  1392. width: 100%;
  1393. text-align: center;
  1394. border-collapse: collapse;
  1395. font-size: 14px;
  1396. }
  1397. .es-img {
  1398. height: 20px;
  1399. }
  1400. .advice-name {
  1401. text-align: left !important;
  1402. line-height: 16px !important;
  1403. }
  1404. .advice-children {
  1405. display: flex;
  1406. }
  1407. .margin-bottom-50 {
  1408. }
  1409. .margin-bottom-300 {
  1410. margin-bottom: 450px;
  1411. }
  1412. .margin-bottom-600 {
  1413. margin-bottom: 600px;
  1414. }
  1415. .margin-bottom-900 {
  1416. margin-bottom: 900px;
  1417. }
  1418. .print-yema {
  1419. position: absolute;
  1420. left: 50%;
  1421. }
  1422. .print-yema2 {
  1423. position: absolute;
  1424. left: 50%;
  1425. }
  1426. .print-yema3 {
  1427. position: absolute;
  1428. left: 50%;
  1429. }
  1430. .print-yema4 {
  1431. position: absolute;
  1432. left: 50%;
  1433. }
  1434. .check_box_panel .did_checke::after {
  1435. font-size: 8px;
  1436. margin-left: 2px;
  1437. margin-top: 2px;
  1438. position: absolute;
  1439. }
  1440. </style>