followUp.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. var $ = require("jquery");
  2. var { post,config,getUrlArgObject,openNewWin,isIe8 ,openNewWin} = require('./promise.js');
  3. let showImg = require('./../images/show2.png').replace(/^undefined/g, '')
  4. let collapseImg = require('./../images/collapse2.png').replace(/^undefined/g, '')
  5. let emptyImg = require('./../images/empty3.png').replace(/^undefined/g, '')
  6. function getFollowUp(msg){
  7. return post(config.followUp, msg)
  8. }
  9. let hospitalId = getUrlArgObject('hospitalId') || ''
  10. let mrId = getUrlArgObject('mrId')
  11. function renderFollowUp(msg,type){
  12. getFollowUp(msg).then(res =>{
  13. if(res.data.code === "0"){
  14. const result = res.data.data&&res.data.data.pushPlans || []
  15. if(result.length === 0||(result[0]&&result[0].item&&JSON.stringify(result[0].item)==="{}")){
  16. followEmpty()
  17. return
  18. }
  19. renderPage(result,type)
  20. }else{
  21. followEmpty()
  22. }
  23. })
  24. }
  25. function renderPage(data,type){
  26. const operaItem = data[0] || {}
  27. const operaItemName = operaItem.item || {}
  28. let operaItemDetail = operaItem.pushPlanDetails || []
  29. renderName(operaItemName)
  30. if(type){
  31. operaItemDetail=operaItemDetail.splice(0,1)
  32. renderDetailHorizontal(operaItemDetail)
  33. }else{
  34. renderBtn(operaItemDetail)
  35. renderDetail(operaItemDetail)
  36. checkDom()
  37. }
  38. }
  39. function renderName(data){
  40. const operationTime = data.dateValue&&getTime(data.dateValue)
  41. const operationName = data.name || ""
  42. const str = `<div class="operaNameWrap" id="operaNameWrap"><div class="operaNameBox">患者于<span class="operaNameBold">${operationTime}</span>进行<span class="operaNameBold">${operationName}</span>。根据临床路径要求,特制订检验检查计划如下。</div></div>`
  43. $(".followUpWrap").append(str)
  44. }
  45. function renderDetailHorizontal(data){
  46. let str = ``
  47. for(let i = 0; i < data.length; i++){
  48. const item = data[i]
  49. const lisArr = item.lis || []
  50. const pacsArr = item.pacs || []
  51. let lisStr=``
  52. let pacsStr=``
  53. let title = `<p>${getTime(item.examineDate)}(${item.description&&(item.description)})</p>`
  54. for(let i = 0; i < lisArr.length; i++){
  55. lisStr += `<div style="position:relative"><span class="circle"></span>${lisArr[i]}</div>`
  56. }
  57. for(let i = 0; i < pacsArr.length; i++){
  58. pacsStr += `<div style="position:relative"><span class="circle"></span>${pacsArr[i]}</div>`
  59. }
  60. str += `<div class="infoBox">
  61. ${title}
  62. <div class="checkFront lisBox">
  63. <span class="lisStrFront">检验</span>
  64. <div>${lisStr}</div>
  65. </div>
  66. <div class="checkFront pacsBox">
  67. <span class="pacsStrFront">检查</span>
  68. <div>${pacsStr}</div>
  69. </div>
  70. </div>`
  71. }
  72. $(".followUpWrap").append(`<div class="infoWrap">${str}<div class="readMorePlan"><a>查看更多计划</a></div></div>`)
  73. showMoreCheck()
  74. }
  75. function showMoreCheck(){
  76. $(".readMorePlan a").on("click", function(){
  77. openNewWin(`cdssPlan.html?mrId=${mrId}&hospitalId=${hospitalId}`)
  78. })
  79. }
  80. function renderDetail(data){
  81. let historyStr = ``
  82. let laterStr = ``
  83. for(let i = 0; i < data.length; i++){
  84. const item = data[i]
  85. const lisArr = item.lis || []
  86. const pacsArr = item.pacs || []
  87. let lisStr=``
  88. let pacsStr=``
  89. let title = `<p class="infoBoxTitle">${getTime(item.examineDate)}${item.description?'('+item.description+')':''} <img class="toggleInfo" src="${showImg}"/></p>`
  90. for(let i = 0; i < lisArr.length; i++){
  91. lisStr += `<div class="lisItem"><span class="circle"></span>${lisArr[i]}</div>`
  92. }
  93. for(let i = 0; i < pacsArr.length; i++){
  94. pacsStr += `<div class="lisItem"><span class="circle"></span>${pacsArr[i]}</div>`
  95. }
  96. if(item.history === 1){
  97. historyStr+=`<div class="infoBox historyBox" >
  98. ${title}
  99. <div class="childrenBox">
  100. ${lisArr.length>0?`<div class="lisBox"><span class="itemBoxTitle">检验</span>${lisStr}</div>`:""}
  101. ${pacsArr.length>0?`<div class="pacsBox"><span class="itemBoxTitle">检查</span>${pacsStr}</div>`:""}
  102. </div>
  103. </div>`
  104. }else{
  105. laterStr += `<div class="infoBox">
  106. ${title}
  107. <div class="childrenBox">
  108. ${lisArr.length>0?`<div class="lisBox"><span class="itemBoxTitle">检验</span>${lisStr}</div>`:""}
  109. ${pacsArr.length>0?`<div class="pacsBox"><span class="itemBoxTitle">检查</span>${pacsStr}</div>`:""}
  110. </div>
  111. </div>`
  112. }
  113. }
  114. $(".followUpWrap").append(`<div class="infoWrap" id="infoWrap">
  115. <div class="historyWrap">${historyStr}</div>
  116. <div class="laterWrap">${laterStr}</div>
  117. </div>`)
  118. // adjustHeight()
  119. bindToggleInfo()
  120. }
  121. function renderBtn(data){
  122. const hasBtn = data[0]&&data[0].history&&data[0].history === 1
  123. if(!hasBtn){
  124. return
  125. }
  126. const str = `<div class="btnBox" id="btnBox"><span class="btnName">显示历史计划</span></div>`
  127. $(".followUpWrap").append(str)
  128. bindToggleHistory()
  129. }
  130. function adjustHeight() {
  131. var containerHt = $(".contentWrapper").height()
  132. var ht1 = $(".operaNameWrap").height()
  133. var ht2 = $(".btnBox").height()
  134. $(".followUpWrap .infoWrap").height(containerHt -ht1- ht2-30 + "px");
  135. $(".infoWrap").preventScroll();
  136. }
  137. function getTime(time){
  138. if(!time){
  139. return ``
  140. }
  141. date = time.replace('-','/')
  142. const year = new Date(date).getFullYear()
  143. const month = new Date(date).getMonth()+1
  144. const day = new Date(date).getDate()
  145. return `${year}年${month}月${day}日`
  146. }
  147. // 声明定时器
  148. var cheakDomTimer = null
  149. // 检查dom是否执行完成
  150. function checkDom() {
  151. let dom1Hei = $("#operaNameWrap").height()
  152. let dom2 = document.getElementById('btnBox')
  153. let dom3 = document.getElementById('infoWrap')
  154. let dom2Hei = $("#btnBox").height()
  155. if(dom1Hei!==0&&(dom2&&dom2Hei!=0 || !dom2)&&dom3) {
  156. // 执行dom加载完成后的操作
  157. adjustHeight()
  158. // 清除定时器
  159. if(!cheakDomTimer) {
  160. clearTimeout(cheakDomTimer)
  161. }
  162. } else {
  163. // 自我调用
  164. cheakDomTimer = setTimeout(checkDom, 200)
  165. }
  166. }
  167. function bindToggleHistory(){
  168. $(document).on("click",".btnName",function(){
  169. const btnText = $(".btnName").text()
  170. if(btnText==="显示历史计划"){
  171. $(".btnName").text("隐藏历史计划")
  172. }else{
  173. $(".btnName").text("显示历史计划")
  174. }
  175. $(".historyWrap").slideToggle()
  176. })
  177. }
  178. function bindToggleInfo(){
  179. $(document).on("click",".infoBoxTitle",function(){
  180. const img = $(this).parents(".infoBox").find(".toggleInfo").attr("src")
  181. if(img === showImg){
  182. $(this).parents(".infoBox").find(".toggleInfo").attr("src",collapseImg)
  183. }else{
  184. $(this).parents(".infoBox").find(".toggleInfo").attr("src",showImg)
  185. }
  186. $(this).parents(".infoBox").find(".childrenBox").slideToggle()
  187. })
  188. }
  189. function followEmpty(){
  190. let str = `<div class="emptyBox">
  191. <img class="emptyImg" src=${emptyImg}>
  192. <p class="emptyTxt">暂无随访计划</p>
  193. </div>`
  194. $(".followUpWrap").append(str)
  195. }
  196. $(window).on('resize', function(){
  197. adjustHeight()
  198. })
  199. module.exports ={
  200. renderFollowUp,
  201. followEmpty
  202. }