wellness.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. var tcm = require('../../utils/tcm.js')
  2. Page({
  3. data: {
  4. currentUser: null,
  5. latestExam: null,
  6. latestExamSummary: '',
  7. latestExamStatusText: '',
  8. loadingUser: true,
  9. loadingLive: false
  10. },
  11. onShow: function () {
  12. this.loadPageData()
  13. },
  14. loadPageData: function () {
  15. this.loadScaleUsers()
  16. },
  17. loadScaleUsers: function () {
  18. var that = this
  19. that.setData({
  20. loadingUser: true
  21. })
  22. tcm.getScaleUsers().then(function (list) {
  23. var scaleUsers = Array.isArray(list) ? list : []
  24. var currentUser = null
  25. if (scaleUsers.length > 0) {
  26. currentUser = scaleUsers[0]
  27. for (var i = 0; i < scaleUsers.length; i++) {
  28. if (scaleUsers[i].isDefault === true || scaleUsers[i].isDefault === 1) {
  29. currentUser = scaleUsers[i]
  30. break
  31. }
  32. if (scaleUsers[i].active === true && !currentUser) {
  33. currentUser = scaleUsers[i]
  34. }
  35. }
  36. }
  37. that.setData({
  38. currentUser: currentUser,
  39. loadingUser: false
  40. })
  41. if (currentUser && currentUser.ID) {
  42. that.loadLatestExam(currentUser.ID)
  43. } else {
  44. that.setData({
  45. latestExam: null,
  46. latestExamSummary: '',
  47. latestExamStatusText: '添加检测人后即可开始 AI 舌诊'
  48. })
  49. }
  50. }).catch(function () {
  51. that.setData({
  52. loadingUser: false,
  53. latestExam: null,
  54. latestExamSummary: '',
  55. latestExamStatusText: '暂未获取到康养档案'
  56. })
  57. })
  58. },
  59. loadLatestExam: function (scaleUserId) {
  60. var that = this
  61. tcm.getLatestExam(scaleUserId).then(function (data) {
  62. var exam = data && data.exam ? data.exam : null
  63. var aiSections = data && data.aiSections ? data.aiSections : {}
  64. that.setData({
  65. latestExam: exam,
  66. latestExamSummary: that.getLatestExamSummary(aiSections),
  67. latestExamStatusText: that.formatExamStatus(exam ? exam.status : '')
  68. })
  69. }).catch(function () {
  70. that.setData({
  71. latestExam: null,
  72. latestExamSummary: '',
  73. latestExamStatusText: '暂无诊疗报告'
  74. })
  75. })
  76. },
  77. formatExamStatus: function (status) {
  78. if (status === 'completed') {
  79. return '最新报告已生成'
  80. }
  81. if (status === 'pending' || status === 'generating') {
  82. return '最新报告生成中'
  83. }
  84. if (status === 'failed') {
  85. return '上次诊疗生成失败,可重新检测'
  86. }
  87. return '暂无诊疗报告'
  88. },
  89. getLatestExamSummary: function (aiSections) {
  90. if (!aiSections) {
  91. return ''
  92. }
  93. return aiSections.summary || aiSections.general || aiSections.observation || ''
  94. },
  95. goDiagnosis: function () {
  96. wx.navigateTo({
  97. url: '/packageWellness/pages/tcm/diagnosis/diagnosis'
  98. })
  99. },
  100. goLatestReport: function () {
  101. if (!this.data.currentUser || !this.data.currentUser.ID) {
  102. wx.showToast({
  103. title: '请先添加检测人',
  104. icon: 'none'
  105. })
  106. return
  107. }
  108. wx.navigateTo({
  109. url: '/packageWellness/pages/tcm/report/report?scaleUserId=' + this.data.currentUser.ID
  110. })
  111. }
  112. })