batch_print_order_thirteen.vue 61KB

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