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

DialysisPrintOrderThirtyEight.vue 62KB

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