|
|
@@ -1,195 +0,0 @@
|
|
|
-/**
|
|
|
- * 护理记录单 —— 临时模拟数据
|
|
|
- * 后端接口未就绪时使用,接口联调完成后删除本文件,并将 index.ts 中的 USE_MOCK 置为 false
|
|
|
- */
|
|
|
-
|
|
|
-export interface NursingRecordItem {
|
|
|
- id: number
|
|
|
- tenantId: number
|
|
|
- tenantName: string
|
|
|
- elderId: number
|
|
|
- elderName: string
|
|
|
- elderSex: number
|
|
|
- bedInfo: string
|
|
|
- recordDate: string
|
|
|
- recordTime: string
|
|
|
- temperature: number
|
|
|
- bloodOxygen: number
|
|
|
- pulse: number
|
|
|
- respiration: number
|
|
|
- systolicPressure: number
|
|
|
- diastolicPressure: number
|
|
|
- observation: string
|
|
|
- signer: string
|
|
|
- creator: string
|
|
|
- createTime: string
|
|
|
-}
|
|
|
-
|
|
|
-/** 长者基础信息 */
|
|
|
-const ELDERS = [
|
|
|
- {
|
|
|
- elderId: 1001,
|
|
|
- elderName: '张桂英',
|
|
|
- elderSex: 2,
|
|
|
- bedInfo: '3栋-2楼-201-1床',
|
|
|
- tenantId: 1,
|
|
|
- tenantName: '颐年养老院'
|
|
|
- },
|
|
|
- {
|
|
|
- elderId: 1002,
|
|
|
- elderName: '李秀兰',
|
|
|
- elderSex: 2,
|
|
|
- bedInfo: '3栋-2楼-202-1床',
|
|
|
- tenantId: 1,
|
|
|
- tenantName: '颐年养老院'
|
|
|
- },
|
|
|
- {
|
|
|
- elderId: 1003,
|
|
|
- elderName: '王德福',
|
|
|
- elderSex: 1,
|
|
|
- bedInfo: '2栋-1楼-105-2床',
|
|
|
- tenantId: 1,
|
|
|
- tenantName: '颐年养老院'
|
|
|
- }
|
|
|
-]
|
|
|
-
|
|
|
-/** 病情观察及护理常用描述 */
|
|
|
-const OBSERVATIONS = [
|
|
|
- '神志清楚,精神尚可,饮食正常,夜间睡眠好,无跌倒坠床。',
|
|
|
- '体温偏高,嘱多饮水,已电话告知家属,继续观察体温变化。',
|
|
|
- '血压较昨日偏高,已遵医嘱服药,建议低盐低脂饮食。',
|
|
|
- '血氧偏低,已给予低流量吸氧,嘱卧床休息,暂缓下床活动。',
|
|
|
- '协助翻身拍背,皮肤完整无压红,二便正常。',
|
|
|
- '长者情绪平稳,主动配合护理,晨间生命体征平稳。',
|
|
|
- '诉轻微头晕,已卧床休息并测量血压,密切观察病情变化。',
|
|
|
- '食欲欠佳,改半流质饮食,少量多餐,已告知责任护士。',
|
|
|
- '夜间入睡困难,予热水泡脚、调暗灯光后入睡。',
|
|
|
- '康复训练后无不适,四肢活动尚可,继续按计划训练。'
|
|
|
-]
|
|
|
-
|
|
|
-const SIGNERS = ['王护士', '刘护士', '陈护士']
|
|
|
-/** 每日记录时间点 */
|
|
|
-const TIME_POINTS = ['08:00', '14:00', '20:00']
|
|
|
-/** 生成最近 N 天的记录 */
|
|
|
-const DAY_COUNT = 10
|
|
|
-
|
|
|
-/** 伪随机:保证每次生成的数据一致,避免刷新后数据跳动 */
|
|
|
-const rand = (seed: number, min: number, max: number, digits = 0) => {
|
|
|
- const x = Math.sin(seed * 12.9898) * 43758.5453
|
|
|
- const rate = x - Math.floor(x)
|
|
|
- const value = min + rate * (max - min)
|
|
|
- return digits ? Number(value.toFixed(digits)) : Math.round(value)
|
|
|
-}
|
|
|
-
|
|
|
-const formatDate = (date: Date) =>
|
|
|
- `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(
|
|
|
- date.getDate()
|
|
|
- ).padStart(2, '0')}`
|
|
|
-
|
|
|
-const buildList = (): NursingRecordItem[] => {
|
|
|
- const result: NursingRecordItem[] = []
|
|
|
- let id = 1
|
|
|
- let seed = 1
|
|
|
- ELDERS.forEach((elder) => {
|
|
|
- for (let day = DAY_COUNT - 1; day >= 0; day--) {
|
|
|
- const date = new Date()
|
|
|
- date.setDate(date.getDate() - day)
|
|
|
- const recordDate = formatDate(date)
|
|
|
- TIME_POINTS.forEach((time) => {
|
|
|
- result.push({
|
|
|
- id: id++,
|
|
|
- tenantId: elder.tenantId,
|
|
|
- tenantName: elder.tenantName,
|
|
|
- elderId: elder.elderId,
|
|
|
- elderName: elder.elderName,
|
|
|
- elderSex: elder.elderSex,
|
|
|
- bedInfo: elder.bedInfo,
|
|
|
- recordDate,
|
|
|
- recordTime: time,
|
|
|
- temperature: rand(seed++, 36.2, 37.4, 1),
|
|
|
- bloodOxygen: rand(seed++, 92, 99),
|
|
|
- pulse: rand(seed++, 62, 92),
|
|
|
- respiration: rand(seed++, 16, 22),
|
|
|
- systolicPressure: rand(seed++, 110, 150),
|
|
|
- diastolicPressure: rand(seed++, 65, 90),
|
|
|
- observation: OBSERVATIONS[Math.floor(rand(seed++, 0, OBSERVATIONS.length - 1))],
|
|
|
- signer: SIGNERS[Math.floor(rand(seed++, 0, SIGNERS.length - 1))],
|
|
|
- creator: '系统管理员',
|
|
|
- createTime: `${recordDate} ${time}:00`
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- return result
|
|
|
-}
|
|
|
-
|
|
|
-/** 内存数据源 */
|
|
|
-let mockData: NursingRecordItem[] = buildList()
|
|
|
-
|
|
|
-let nextId = mockData.length + 1
|
|
|
-
|
|
|
-const sortList = (list: NursingRecordItem[]) =>
|
|
|
- list.sort((a, b) => {
|
|
|
- if (a.recordDate === b.recordDate) return b.recordTime.localeCompare(a.recordTime)
|
|
|
- return b.recordDate.localeCompare(a.recordDate)
|
|
|
- })
|
|
|
-
|
|
|
-/** 分页查询 */
|
|
|
-export const mockPage = (params: Recordable) => {
|
|
|
- const pageNo = params?.pageNo || 1
|
|
|
- const pageSize = params?.pageSize || 10
|
|
|
- const { elderName, bedInfo, recordDate, elderId } = params || {}
|
|
|
- let list = [...mockData]
|
|
|
- if (elderName) list = list.filter((item) => item.elderName.includes(elderName))
|
|
|
- if (bedInfo) list = list.filter((item) => item.bedInfo.includes(bedInfo))
|
|
|
- if (elderId) list = list.filter((item) => String(item.elderId) === String(elderId))
|
|
|
- if (Array.isArray(recordDate) && recordDate[0] && recordDate[1]) {
|
|
|
- const start = String(recordDate[0]).slice(0, 10)
|
|
|
- const end = String(recordDate[1]).slice(0, 10)
|
|
|
- list = list.filter((item) => item.recordDate >= start && item.recordDate <= end)
|
|
|
- }
|
|
|
- sortList(list)
|
|
|
- return {
|
|
|
- list: list.slice((pageNo - 1) * pageSize, pageNo * pageSize),
|
|
|
- total: list.length
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/** 详情 */
|
|
|
-export const mockDetail = (id) => {
|
|
|
- const item = mockData.find((row) => row.id === Number(id))
|
|
|
- return item ? { ...item } : {}
|
|
|
-}
|
|
|
-
|
|
|
-/** 新增 */
|
|
|
-export const mockCreate = (data) => {
|
|
|
- const item: NursingRecordItem = {
|
|
|
- id: nextId++,
|
|
|
- tenantName: '颐年养老院',
|
|
|
- creator: '系统管理员',
|
|
|
- createTime: `${data.recordDate} ${data.recordTime || ''}:00`,
|
|
|
- ...data
|
|
|
- }
|
|
|
- mockData = [item, ...mockData]
|
|
|
- return item.id
|
|
|
-}
|
|
|
-
|
|
|
-/** 修改 */
|
|
|
-export const mockUpdate = (data) => {
|
|
|
- const index = mockData.findIndex((row) => row.id === Number(data.id))
|
|
|
- if (index !== -1) {
|
|
|
- mockData[index] = { ...mockData[index], ...data }
|
|
|
- return true
|
|
|
- }
|
|
|
- return false
|
|
|
-}
|
|
|
-
|
|
|
-/** 删除 */
|
|
|
-export const mockDelete = (id) => {
|
|
|
- const index = mockData.findIndex((row) => row.id === Number(id))
|
|
|
- if (index !== -1) {
|
|
|
- mockData.splice(index, 1)
|
|
|
- return true
|
|
|
- }
|
|
|
- return false
|
|
|
-}
|