userActivity.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. import request from './request'
  2. // 活动类型常量
  3. export const ACTIVITY_TYPES = {
  4. // 血糖数据相关
  5. BLOOD_GLUCOSE_UPLOAD: 'BLOOD_GLUCOSE_UPLOAD',
  6. BLOOD_GLUCOSE_UPDATE: 'BLOOD_GLUCOSE_UPDATE',
  7. BLOOD_GLUCOSE_DELETE: 'BLOOD_GLUCOSE_DELETE',
  8. // 血压数据相关
  9. BLOOD_PRESSURE_UPLOAD: 'BLOOD_PRESSURE_UPLOAD',
  10. // 心率数据相关
  11. HEART_RATE_UPLOAD: 'HEART_RATE_UPLOAD',
  12. // 体检数据相关
  13. PHYSICAL_DATA_UPLOAD: 'PHYSICAL_DATA_UPLOAD',
  14. // 健康档案相关
  15. HEALTH_RECORD_CREATE: 'HEALTH_RECORD_CREATE',
  16. HEALTH_RECORD_UPDATE: 'HEALTH_RECORD_UPDATE'
  17. } as const
  18. // 相关实体类型常量
  19. export const RELATED_ENTITY_TYPES = {
  20. BLOOD_GLUCOSE: 'BLOOD_GLUCOSE',
  21. BLOOD_PRESSURE: 'BLOOD_PRESSURE',
  22. HEART_RATE: 'HEART_RATE',
  23. PHYSICAL_DATA: 'PHYSICAL_DATA',
  24. HEALTH_RECORD: 'HEALTH_RECORD'
  25. } as const
  26. // 查询患者动态的请求参数接口
  27. export interface PatientActivityQueryRequest {
  28. patientUserId: number // 患者用户ID(医生查询时必填)
  29. activityTypes?: string[] // 活动类型列表(可选,用于过滤特定动态)
  30. startTime?: string // 开始时间
  31. endTime?: string // 结束时间
  32. pageNum?: number // 页码,默认1
  33. pageSize?: number // 每页大小,默认10,最大100
  34. }
  35. // 活动响应接口
  36. export interface UserActivityResponse {
  37. id: string // 活动ID
  38. userId: number // 操作用户ID
  39. activityType: string // 活动类型
  40. activityDescription: string // 活动描述
  41. relatedEntityType: string // 相关实体类型
  42. relatedEntityId?: number // 相关实体ID
  43. metadata?: any // 元数据
  44. createTime: string // 操作时间
  45. }
  46. // 分页响应接口
  47. export interface UserActivityPageResponse {
  48. records: UserActivityResponse[] // 数据列表
  49. total: number // 总数
  50. size: number // 每页大小
  51. current: number // 当前页码
  52. pages: number // 总页数
  53. }
  54. // 医生查询患者动态
  55. export async function queryPatientActivities(params: PatientActivityQueryRequest): Promise<{
  56. code: number
  57. message: string
  58. data: UserActivityPageResponse
  59. }> {
  60. const res: any = await request({
  61. url: 'https://wx.baiyun.work/user-activity/query-patient-activities',
  62. method: 'POST',
  63. header: { 'Content-Type': 'application/json' },
  64. data: params
  65. })
  66. return res
  67. }
  68. // 医生查询所有绑定患者动态
  69. export async function queryBoundPatientsActivities(params?: Omit<PatientActivityQueryRequest, 'patientUserId'>): Promise<{
  70. code: number
  71. message: string
  72. data: UserActivityPageResponse
  73. }> {
  74. const res: any = await request({
  75. url: 'https://wx.baiyun.work/user-activity/query-bound-patients-activities',
  76. method: 'POST',
  77. header: { 'Content-Type': 'application/json' },
  78. data: params || {}
  79. })
  80. return res
  81. }
  82. // 家属查询所有绑定家人动态
  83. export async function queryBoundFamiliesActivities(params?: Omit<PatientActivityQueryRequest, 'patientUserId'>): Promise<{
  84. code: number
  85. message: string
  86. data: UserActivityPageResponse
  87. }> {
  88. const res: any = await request({
  89. url: 'https://wx.baiyun.work/user-activity/query-bound-families-activities',
  90. method: 'POST',
  91. header: { 'Content-Type': 'application/json' },
  92. data: params || {}
  93. })
  94. return res
  95. }
  96. /*
  97. 使用示例:
  98. import { queryPatientActivities, queryBoundPatientsActivities, ACTIVITY_TYPES } from '@/api/userActivity'
  99. // 查询患者的所有健康活动
  100. const result = await queryPatientActivities({
  101. patientUserId: 12345,
  102. pageNum: 1,
  103. pageSize: 10
  104. })
  105. // 只查询血糖相关活动
  106. const bloodGlucoseResult = await queryPatientActivities({
  107. patientUserId: 12345,
  108. activityTypes: [ACTIVITY_TYPES.BLOOD_GLUCOSE_UPLOAD, ACTIVITY_TYPES.BLOOD_GLUCOSE_UPDATE],
  109. pageNum: 1,
  110. pageSize: 10
  111. })
  112. // 查询指定时间范围内的活动
  113. const timeRangeResult = await queryPatientActivities({
  114. patientUserId: 12345,
  115. startTime: '2025-11-01T00:00:00',
  116. endTime: '2025-11-21T23:59:59',
  117. pageNum: 1,
  118. pageSize: 20
  119. })
  120. // 医生查询所有绑定患者的动态
  121. const boundPatientsResult = await queryBoundPatientsActivities({
  122. pageNum: 1,
  123. pageSize: 10
  124. })
  125. // 只查询绑定患者的心率和血压数据
  126. const specificActivitiesResult = await queryBoundPatientsActivities({
  127. activityTypes: [ACTIVITY_TYPES.HEART_RATE_UPLOAD, ACTIVITY_TYPES.BLOOD_PRESSURE_UPLOAD],
  128. pageNum: 1,
  129. pageSize: 20
  130. })
  131. // 查询所有绑定患者的动态(不传参数,使用默认分页)
  132. const allActivitiesResult = await queryBoundPatientsActivities()
  133. */