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

DialysisPrintOrderThirteen.vue 79KB

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