batch_print_order_fifteen.vue 65KB

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