a
This commit is contained in:
1
szjs
Submodule
1
szjs
Submodule
Submodule szjs added at 4d7032dffb
255
小程序域名配置问题解决方案.md
Normal file
255
小程序域名配置问题解决方案.md
Normal file
@@ -0,0 +1,255 @@
|
|||||||
|
# 小程序域名配置问题解决方案
|
||||||
|
|
||||||
|
**问题时间:** 2025年1月28日
|
||||||
|
**问题描述:** 取消"不校验合法域名"后,小程序无法访问接口
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、问题诊断
|
||||||
|
|
||||||
|
### 错误信息
|
||||||
|
|
||||||
|
```
|
||||||
|
request 合法域名校验出错
|
||||||
|
https://www.ruilaizipj.com 不在以下 request 合法域名列表中
|
||||||
|
```
|
||||||
|
|
||||||
|
**允许的域名列表:**
|
||||||
|
- `https://mp.weixin.qq.com`
|
||||||
|
- `https://ruilaizipj.com`(不带www)
|
||||||
|
- `https://tcb-api.tencentcloudapi.com`
|
||||||
|
|
||||||
|
### 根本原因
|
||||||
|
|
||||||
|
1. **代码使用的域名:** `https://www.ruilaizipj.com/`(带www)
|
||||||
|
2. **白名单中的域名:** `https://ruilaizipj.com`(不带www)
|
||||||
|
3. **域名不匹配**:微信小程序严格校验域名,必须完全一致
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、解决方案
|
||||||
|
|
||||||
|
### 方案一:在微信小程序后台添加带www的域名(推荐)⭐
|
||||||
|
|
||||||
|
**操作步骤:**
|
||||||
|
|
||||||
|
1. **登录微信公众平台**
|
||||||
|
- 访问:https://mp.weixin.qq.com
|
||||||
|
- 登录您的小程序账号
|
||||||
|
|
||||||
|
2. **进入开发设置**
|
||||||
|
- 左侧菜单:**开发** → **开发管理** → **开发设置**
|
||||||
|
- 找到 **"服务器域名"** 部分
|
||||||
|
|
||||||
|
3. **添加域名**
|
||||||
|
- 点击 **"修改"** 按钮
|
||||||
|
- 在 **"request合法域名"** 中添加:
|
||||||
|
```
|
||||||
|
https://www.ruilaizipj.com
|
||||||
|
```
|
||||||
|
- 同时检查 **"uploadFile合法域名"** 和 **"downloadFile合法域名"**,也添加:
|
||||||
|
```
|
||||||
|
https://www.ruilaizipj.com
|
||||||
|
```
|
||||||
|
- 点击 **"保存"** 或 **"提交"**
|
||||||
|
|
||||||
|
4. **重新编译小程序**
|
||||||
|
- 在微信开发者工具中重新编译
|
||||||
|
- 清除缓存后测试
|
||||||
|
|
||||||
|
**优点:**
|
||||||
|
- ✅ 不需要修改代码
|
||||||
|
- ✅ 使用带www的域名更规范
|
||||||
|
- ✅ 证书已配置好,直接可用
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 方案二:修改代码使用不带www的域名
|
||||||
|
|
||||||
|
**操作步骤:**
|
||||||
|
|
||||||
|
1. **修改小程序代码**
|
||||||
|
- 打开 `app.js`
|
||||||
|
- 将 `globalData.url` 改为:
|
||||||
|
```javascript
|
||||||
|
url: 'https://ruilaizipj.com/'
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **配置根域名SSL证书**
|
||||||
|
- 需要为 `ruilaizipj.com` 申请SSL证书
|
||||||
|
- 或在现有证书中添加根域名(SAN扩展)
|
||||||
|
|
||||||
|
3. **修改Nginx配置**
|
||||||
|
- 在 `server_name` 中添加 `ruilaizipj.com`
|
||||||
|
- 确保证书支持根域名
|
||||||
|
|
||||||
|
**缺点:**
|
||||||
|
- ❌ 需要修改代码
|
||||||
|
- ❌ 需要重新申请/配置SSL证书
|
||||||
|
- ❌ 根域名证书配置较复杂
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、当前服务器配置状态
|
||||||
|
|
||||||
|
### SSL证书状态
|
||||||
|
|
||||||
|
- **证书域名:** `www.ruilaizipj.com` ✅
|
||||||
|
- **根域名支持:** `ruilaizipj.com` ❌(证书不包含)
|
||||||
|
- **证书有效期:** 2026-01-28 至 2026-04-28 ✅
|
||||||
|
|
||||||
|
### Nginx配置状态
|
||||||
|
|
||||||
|
- **server_name:** `www.ruilaizipj.com 101.43.95.130`(已添加 `ruilaizipj.com`)
|
||||||
|
- **SSL证书路径:** `/www/server/panel/vhost/cert/101.43.95.130/`
|
||||||
|
- **HTTPS访问:** `www.ruilaizipj.com` ✅ 正常
|
||||||
|
|
||||||
|
### 域名访问测试
|
||||||
|
|
||||||
|
- **`https://www.ruilaizipj.com`** ✅ 正常(200 OK)
|
||||||
|
- **`https://ruilaizipj.com`** ❌ 证书不匹配(需要配置根域名证书)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、推荐操作
|
||||||
|
|
||||||
|
### 立即执行(方案一)
|
||||||
|
|
||||||
|
1. **在微信小程序后台添加域名:**
|
||||||
|
```
|
||||||
|
https://www.ruilaizipj.com
|
||||||
|
```
|
||||||
|
添加到以下列表:
|
||||||
|
- request合法域名
|
||||||
|
- uploadFile合法域名
|
||||||
|
- downloadFile合法域名
|
||||||
|
|
||||||
|
2. **保存配置**
|
||||||
|
|
||||||
|
3. **在微信开发者工具中:**
|
||||||
|
- 清除缓存
|
||||||
|
- 重新编译
|
||||||
|
- 测试接口访问
|
||||||
|
|
||||||
|
### 如果方案一不行,再考虑方案二
|
||||||
|
|
||||||
|
如果添加域名后仍有问题,可以:
|
||||||
|
1. 申请包含根域名的SSL证书(或使用通配符证书)
|
||||||
|
2. 修改代码使用根域名
|
||||||
|
3. 配置Nginx支持根域名
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、注意事项
|
||||||
|
|
||||||
|
### 1. 域名必须完全一致
|
||||||
|
|
||||||
|
- ✅ 正确:`https://www.ruilaizipj.com`
|
||||||
|
- ❌ 错误:`https://www.ruilaizipj.com/`(末尾有斜杠,但通常不影响)
|
||||||
|
- ❌ 错误:`http://www.ruilaizipj.com`(必须是HTTPS)
|
||||||
|
|
||||||
|
### 2. 白名单修改限制
|
||||||
|
|
||||||
|
- 每月可修改次数有限(您当前还可修改49次)
|
||||||
|
- 修改后需要保存并重新编译小程序
|
||||||
|
|
||||||
|
### 3. 开发环境 vs 生产环境
|
||||||
|
|
||||||
|
- **开发环境**:可以勾选"不校验合法域名"进行调试
|
||||||
|
- **生产环境**:必须配置白名单,否则无法访问
|
||||||
|
|
||||||
|
### 4. 证书要求
|
||||||
|
|
||||||
|
- 必须是HTTPS(HTTP不支持)
|
||||||
|
- 证书必须有效且未过期
|
||||||
|
- 证书域名必须与请求域名匹配
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、验证步骤
|
||||||
|
|
||||||
|
### 1. 检查白名单配置
|
||||||
|
|
||||||
|
在微信小程序后台确认:
|
||||||
|
- ✅ `https://www.ruilaizipj.com` 已在 request合法域名 列表中
|
||||||
|
- ✅ `https://www.ruilaizipj.com` 已在 uploadFile合法域名 列表中
|
||||||
|
- ✅ `https://www.ruilaizipj.com` 已在 downloadFile合法域名 列表中
|
||||||
|
|
||||||
|
### 2. 检查代码配置
|
||||||
|
|
||||||
|
在 `app.js` 中确认:
|
||||||
|
```javascript
|
||||||
|
globalData: {
|
||||||
|
url: 'https://www.ruilaizipj.com/' // 与白名单域名一致
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 测试访问
|
||||||
|
|
||||||
|
在微信开发者工具中:
|
||||||
|
1. 取消勾选"不校验合法域名"
|
||||||
|
2. 清除缓存
|
||||||
|
3. 重新编译
|
||||||
|
4. 测试接口调用
|
||||||
|
5. 查看Console是否有错误
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、常见问题
|
||||||
|
|
||||||
|
### Q1: 添加域名后仍然报错?
|
||||||
|
|
||||||
|
**可能原因:**
|
||||||
|
- 白名单未保存
|
||||||
|
- 小程序未重新编译
|
||||||
|
- 缓存未清除
|
||||||
|
|
||||||
|
**解决方法:**
|
||||||
|
1. 确认白名单已保存
|
||||||
|
2. 在开发者工具中清除缓存
|
||||||
|
3. 重新编译小程序
|
||||||
|
|
||||||
|
### Q2: 为什么需要两个域名都加?
|
||||||
|
|
||||||
|
**原因:**
|
||||||
|
- 如果代码中可能使用不同的域名
|
||||||
|
- 或者有重定向情况
|
||||||
|
- 为了确保兼容性
|
||||||
|
|
||||||
|
**建议:**
|
||||||
|
- 统一使用一个域名(推荐 `www.ruilaizipj.com`)
|
||||||
|
- 在代码和白名单中都使用相同的域名
|
||||||
|
|
||||||
|
### Q3: 证书不匹配怎么办?
|
||||||
|
|
||||||
|
**如果使用根域名 `ruilaizipj.com`:**
|
||||||
|
1. 申请包含根域名的证书(或通配符证书 `*.ruilaizipj.com`)
|
||||||
|
2. 在Nginx中配置根域名的SSL证书
|
||||||
|
3. 确保证书的SAN包含 `ruilaizipj.com`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、总结
|
||||||
|
|
||||||
|
### 问题根源
|
||||||
|
|
||||||
|
**代码使用的域名与白名单域名不一致:**
|
||||||
|
- 代码:`https://www.ruilaizipj.com/`(带www)
|
||||||
|
- 白名单:`https://ruilaizipj.com`(不带www)
|
||||||
|
|
||||||
|
### 推荐解决方案
|
||||||
|
|
||||||
|
**在微信小程序后台添加 `https://www.ruilaizipj.com` 到白名单**
|
||||||
|
|
||||||
|
### 操作步骤
|
||||||
|
|
||||||
|
1. 登录微信公众平台
|
||||||
|
2. 进入开发设置 → 服务器域名
|
||||||
|
3. 添加 `https://www.ruilaizipj.com` 到所有相关域名列表
|
||||||
|
4. 保存配置
|
||||||
|
5. 重新编译小程序
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**创建时间:** 2025年1月28日
|
||||||
|
**问题状态:** 待解决 - 需要在微信小程序后台添加域名
|
||||||
926
生长激素缺乏预测模型项目需求文档.md
Normal file
926
生长激素缺乏预测模型项目需求文档.md
Normal file
@@ -0,0 +1,926 @@
|
|||||||
|
# 生长激素缺乏预测模型项目需求文档
|
||||||
|
|
||||||
|
**项目名称:** 生长激素缺乏(GHD)预测模型系统
|
||||||
|
**项目类型:** 医疗健康小程序 + 后台管理系统
|
||||||
|
**技术架构:** 微信小程序(前端)+ ThinkPHP 5.0(后端)
|
||||||
|
**数据库:** MySQL
|
||||||
|
**文档版本:** v1.0
|
||||||
|
**创建日期:** 2025年1月28日
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、项目概述
|
||||||
|
|
||||||
|
### 1.1 项目背景
|
||||||
|
|
||||||
|
生长激素缺乏(Growth Hormone Deficiency, GHD)是儿童内分泌疾病中的常见问题,早期诊断和预测对患者的治疗和预后具有重要意义。本项目旨在开发一个基于多因素分析的GHD预测模型系统,通过微信小程序为医生和患者提供便捷的预测工具,并通过后台管理系统进行数据管理和内容维护。
|
||||||
|
|
||||||
|
### 1.2 项目目标
|
||||||
|
|
||||||
|
1. **提供GHD预测功能**:基于骨龄、实际年龄、IGF-1、IGFBP-3等指标,计算GHD患病概率
|
||||||
|
2. **数据管理**:记录用户计算历史,便于医生和患者追踪
|
||||||
|
3. **资讯管理**:提供相关医疗资讯的发布和管理功能
|
||||||
|
4. **用户管理**:管理小程序注册用户信息
|
||||||
|
|
||||||
|
### 1.3 用户群体
|
||||||
|
|
||||||
|
- **主要用户**:医生、患者及其家属
|
||||||
|
- **管理员**:医疗机构的系统管理员
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、系统架构
|
||||||
|
|
||||||
|
### 2.1 技术架构
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────┐
|
||||||
|
│ 微信小程序前端 │
|
||||||
|
│ (WeChat Mini │
|
||||||
|
│ Program) │
|
||||||
|
└────────┬────────┘
|
||||||
|
│ HTTP/HTTPS
|
||||||
|
│ API调用
|
||||||
|
┌────────▼────────┐
|
||||||
|
│ ThinkPHP 5.0 │
|
||||||
|
│ 后端服务 │
|
||||||
|
└────────┬────────┘
|
||||||
|
│
|
||||||
|
┌────────▼────────┐
|
||||||
|
│ MySQL数据库 │
|
||||||
|
└─────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
/www/wwwroot/code/
|
||||||
|
├── application/ # 应用目录
|
||||||
|
│ ├── adminghd/ # 后台管理模块
|
||||||
|
│ │ ├── controller/ # 控制器
|
||||||
|
│ │ │ ├── Login.php # 登录控制器
|
||||||
|
│ │ │ ├── Menu.php # 菜单管理
|
||||||
|
│ │ │ ├── Wechatinfro.php # 微信用户信息管理
|
||||||
|
│ │ │ └── Wechatset.php # 微信设置管理
|
||||||
|
│ │ ├── model/ # 模型
|
||||||
|
│ │ └── view/ # 视图
|
||||||
|
│ ├── app/ # 小程序API模块
|
||||||
|
│ │ └── controller/
|
||||||
|
│ │ ├── Ghdwechat.php # GHD相关API
|
||||||
|
│ │ └── Ruilaiwechat.php # 瑞来相关API
|
||||||
|
│ └── database.php # 数据库配置
|
||||||
|
├── public/ # 公共访问目录
|
||||||
|
│ ├── index.php # 入口文件
|
||||||
|
│ └── static/ # 静态资源
|
||||||
|
├── szjs/ # 微信小程序源码
|
||||||
|
│ ├── pages/ # 小程序页面
|
||||||
|
│ │ ├── ghdCalculator/ # GHD计算器页面
|
||||||
|
│ │ ├── home/ # 首页
|
||||||
|
│ │ ├── my/ # 个人中心
|
||||||
|
│ │ └── ...
|
||||||
|
│ ├── app.js # 小程序入口
|
||||||
|
│ └── app.json # 小程序配置
|
||||||
|
└── thinkphp/ # ThinkPHP框架核心
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、功能需求
|
||||||
|
|
||||||
|
### 3.1 微信小程序功能
|
||||||
|
|
||||||
|
#### 3.1.1 GHD预测计算器
|
||||||
|
|
||||||
|
**功能描述:** 用户输入相关指标,系统自动计算GHD患病概率
|
||||||
|
|
||||||
|
**前端计算器输入参数:**
|
||||||
|
- **骨龄(BA)**:单位:年,支持小数
|
||||||
|
- **实际年龄(CA)**:单位:年,支持小数
|
||||||
|
- **IGF-1值**:单位:ng/ml,支持小数
|
||||||
|
- **IGFBP-3值**:单位:mg/L,支持小数
|
||||||
|
|
||||||
|
**后端API计算输入参数:**
|
||||||
|
- **用户ID(uid)**:必填
|
||||||
|
- **患者姓名(name)**:必填
|
||||||
|
- **年龄(age)**:必填,数字
|
||||||
|
- **身高(height)**:必填,数字
|
||||||
|
- **骨龄(bone_age)**:必填,数字
|
||||||
|
- **父亲身高(father_height)**:必填,数字
|
||||||
|
- **母亲身高(mother_height)**:必填,数字
|
||||||
|
- **IGF-1值(IGF)**:必填,数字,单位:ng/ml
|
||||||
|
- **LH值(LH)**:必填,数字,单位:mIU/ml
|
||||||
|
- **子宫厚度(uterus_thickness)**:必填,数字,单位:mm
|
||||||
|
|
||||||
|
**前端计算公式:**
|
||||||
|
```
|
||||||
|
Y = 3.726 - 0.876×(BA-CA) - 0.058×(IGF-1) + 0.229×(IGFBP-3)
|
||||||
|
P = e^Y / (1 + e^Y)
|
||||||
|
```
|
||||||
|
|
||||||
|
其中:
|
||||||
|
- Y:中间变量
|
||||||
|
- P:GHD预测概率(0-1之间)
|
||||||
|
- BA-CA:骨龄与实际年龄的差值
|
||||||
|
|
||||||
|
**后端API计算公式:**
|
||||||
|
```
|
||||||
|
P = exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度) /
|
||||||
|
(1 + exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度))
|
||||||
|
```
|
||||||
|
|
||||||
|
其中:
|
||||||
|
- P:GHD预测概率(0-1之间),保留3位小数
|
||||||
|
|
||||||
|
**输出结果:**
|
||||||
|
- GHD预测概率(百分比形式)
|
||||||
|
- 计算过程详情(分步骤展示)
|
||||||
|
- 结果解释和建议
|
||||||
|
|
||||||
|
**结果分级:**
|
||||||
|
- **P ≥ 0.8**:GHD可能性较大,建议进一步进行相关检查
|
||||||
|
- **0.5 ≤ P < 0.8**:存在GHD可能,建议进行相关检查
|
||||||
|
- **P < 0.5**:GHD可能性较小,但仍需结合临床表现进行综合判断
|
||||||
|
|
||||||
|
**参考范围:**
|
||||||
|
系统内置IGF-1和IGFBP-3的参考范围(按性别和年龄段):
|
||||||
|
- IGF-1参考范围(男性/女性,0-17岁,分9个年龄段)
|
||||||
|
- IGFBP-3参考范围(男性/女性,0-17岁,分9个年龄段)
|
||||||
|
|
||||||
|
#### 3.1.2 其他工具页面
|
||||||
|
|
||||||
|
根据小程序配置,还包含以下页面:
|
||||||
|
- **首页(home)**:展示资讯和功能入口
|
||||||
|
- **个人中心(my)**:用户信息、历史记录
|
||||||
|
- **IGF参考值(igfrefer)**:IGF-1和IGFBP-3参考范围查询
|
||||||
|
- **身高SDS计算器(heightSdsCalculator)**:身高标准差评分计算
|
||||||
|
- **工具集合(tool)**:其他医疗工具
|
||||||
|
- **性发育图表(sexChart)**:性发育相关图表
|
||||||
|
- **关于(guanyu)**:关于小程序的信息
|
||||||
|
|
||||||
|
#### 3.1.3 用户功能
|
||||||
|
|
||||||
|
- **微信授权登录**:
|
||||||
|
- 通过微信授权获取用户信息
|
||||||
|
- 接口:`/app/Ghdwechat/wechatLogin` 或 `/app/Ruilaiwechat/wechatLogin`
|
||||||
|
- 参数:`code`(微信登录code)、`encryptedData`(加密数据)、`iv`(初始向量)
|
||||||
|
- 返回:用户ID(uid)和登录状态
|
||||||
|
|
||||||
|
- **计算历史记录**:
|
||||||
|
- 查看历史计算记录:`/app/Ghdwechat/selectRecordList` 或 `/app/Ruilaiwechat/selectRecordList`
|
||||||
|
- 删除历史记录:`/app/Ghdwechat/deleteRecord` 或 `/app/Ruilaiwechat/deleteRecord`
|
||||||
|
- 支持分页查询(默认每页30条)
|
||||||
|
|
||||||
|
- **资讯浏览**:
|
||||||
|
- 获取资讯列表:`/app/Ghdwechat/selectRealtimeInfoList` 或 `/app/Ruilaiwechat/selectRealtimeInfoList`
|
||||||
|
- 支持分页查询(默认每页20条)
|
||||||
|
|
||||||
|
### 3.2 后台管理系统功能
|
||||||
|
|
||||||
|
#### 3.2.1 用户登录
|
||||||
|
|
||||||
|
**功能描述:** 管理员登录后台管理系统
|
||||||
|
|
||||||
|
**登录方式:**
|
||||||
|
- 用户名/手机号 + 密码登录
|
||||||
|
- Session会话管理(1小时有效期)
|
||||||
|
|
||||||
|
**权限控制:**
|
||||||
|
- 基于Session的用户身份验证
|
||||||
|
- 不同用户类型可能有不同权限(当前代码中部分权限检查被注释)
|
||||||
|
|
||||||
|
#### 3.2.2 微信用户管理
|
||||||
|
|
||||||
|
**功能描述:** 查看和管理小程序注册用户
|
||||||
|
|
||||||
|
**功能列表:**
|
||||||
|
- **用户列表查询**:
|
||||||
|
- 支持按昵称搜索
|
||||||
|
- 分页显示(默认每页30条)
|
||||||
|
- 显示字段:用户ID、昵称、头像、注册时间
|
||||||
|
- **用户信息查看**:查看用户详细信息
|
||||||
|
|
||||||
|
**数据表:** `ghd_wechat_user`
|
||||||
|
- `uid`:用户ID
|
||||||
|
- `nickname`:昵称
|
||||||
|
- `headimg`:头像
|
||||||
|
- `create_time`:注册时间
|
||||||
|
|
||||||
|
#### 3.2.3 计算记录管理
|
||||||
|
|
||||||
|
**功能描述:** 查看和管理用户的GHD预测计算记录
|
||||||
|
|
||||||
|
**功能列表:**
|
||||||
|
- **记录列表查询**:
|
||||||
|
- 支持按姓名搜索
|
||||||
|
- 分页显示(默认每页30条)
|
||||||
|
- 显示字段:序号、姓名、年龄、身高、骨龄、父亲身高、母亲身高、IGF、LH、子宫厚度、计算结果、创建时间
|
||||||
|
- **记录详情查看**:查看完整的计算记录详情
|
||||||
|
|
||||||
|
**数据表:** `wechat_calculate_record`
|
||||||
|
- `id`:记录ID
|
||||||
|
- `name`:姓名
|
||||||
|
- `age`:年龄
|
||||||
|
- `height`:身高
|
||||||
|
- `bone_age`:骨龄
|
||||||
|
- `father_height`:父亲身高
|
||||||
|
- `mother_height`:母亲身高
|
||||||
|
- `IGF`:IGF-1值
|
||||||
|
- `LH`:LH值
|
||||||
|
- `uterus_thickness`:子宫厚度
|
||||||
|
- `calculate_resutlt`:计算结果
|
||||||
|
- `create_time`:创建时间
|
||||||
|
|
||||||
|
#### 3.2.4 资讯管理
|
||||||
|
|
||||||
|
**功能描述:** 管理小程序中展示的医疗资讯
|
||||||
|
|
||||||
|
**功能列表:**
|
||||||
|
- **资讯列表**:
|
||||||
|
- 支持按标题搜索
|
||||||
|
- 分页显示(默认每页30条)
|
||||||
|
- 显示字段:标题、缩略图、简介、跳转链接、创建时间
|
||||||
|
- **添加资讯**:
|
||||||
|
- 标题(必填)
|
||||||
|
- 缩略图(必填)
|
||||||
|
- 简介(必填)
|
||||||
|
- 跳转链接(必填)
|
||||||
|
- **编辑资讯**:修改已有资讯信息
|
||||||
|
- **删除资讯**:删除不需要的资讯
|
||||||
|
|
||||||
|
**数据表:** `wechat_real_time_info`
|
||||||
|
- `id`:资讯ID
|
||||||
|
- `title_plain`:标题
|
||||||
|
- `thumbnail`:缩略图
|
||||||
|
- `excerpt_plain`:简介
|
||||||
|
- `url`:跳转链接
|
||||||
|
- `create_time`:创建时间
|
||||||
|
|
||||||
|
#### 3.2.5 菜单管理
|
||||||
|
|
||||||
|
**功能描述:** 管理系统菜单(当前部分功能被注释)
|
||||||
|
|
||||||
|
**功能列表:**
|
||||||
|
- 获取菜单列表
|
||||||
|
- 添加菜单
|
||||||
|
- 修改菜单
|
||||||
|
- 删除菜单
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、数据库设计
|
||||||
|
|
||||||
|
### 4.1 核心数据表
|
||||||
|
|
||||||
|
#### 4.1.1 用户表(t_sys_user)
|
||||||
|
|
||||||
|
**用途:** 存储后台管理员用户信息
|
||||||
|
|
||||||
|
**主要字段:**
|
||||||
|
- `id`:用户ID(主键)
|
||||||
|
- `user_name`:用户名
|
||||||
|
- `phone`:手机号(登录账号)
|
||||||
|
- `password`:密码(MD5加密)
|
||||||
|
- `user_head`:头像
|
||||||
|
- `status`:状态(1:启用,0:禁用)
|
||||||
|
- `type`:用户类型(1:管理员)
|
||||||
|
|
||||||
|
#### 4.1.2 微信用户表(ghd_wechat_user / wechat_user)
|
||||||
|
|
||||||
|
**用途:** 存储小程序注册用户信息
|
||||||
|
|
||||||
|
**主要字段:**
|
||||||
|
- `uid`:用户ID(主键,自增)
|
||||||
|
- `openid`:微信OpenID(唯一标识)
|
||||||
|
- `nickname`:昵称
|
||||||
|
- `headimg`:头像URL
|
||||||
|
- `create_time`:注册时间
|
||||||
|
|
||||||
|
**注意:** 代码中同时使用了 `ghd_wechat_user` 和 `wechat_user` 两个表名,需要确认实际使用的表名
|
||||||
|
|
||||||
|
#### 4.1.3 计算记录表(wechat_calculate_record)
|
||||||
|
|
||||||
|
**用途:** 存储用户的GHD预测计算记录
|
||||||
|
|
||||||
|
**主要字段:**
|
||||||
|
- `id`:记录ID(主键)
|
||||||
|
- `name`:姓名
|
||||||
|
- `age`:年龄
|
||||||
|
- `height`:身高
|
||||||
|
- `bone_age`:骨龄
|
||||||
|
- `father_height`:父亲身高
|
||||||
|
- `mother_height`:母亲身高
|
||||||
|
- `IGF`:IGF-1值
|
||||||
|
- `uid`:用户ID(关联微信用户)
|
||||||
|
- `LH`:LH值(促黄体生成素),单位:mIU/ml
|
||||||
|
- `uterus_thickness`:子宫厚度,单位:mm
|
||||||
|
- `calculate_resutlt`:计算结果(GHD概率,0-1之间,保留3位小数)
|
||||||
|
- `create_time`:创建时间
|
||||||
|
|
||||||
|
#### 4.1.4 资讯表(wechat_real_time_info)
|
||||||
|
|
||||||
|
**用途:** 存储小程序展示的医疗资讯
|
||||||
|
|
||||||
|
**主要字段:**
|
||||||
|
- `id`:资讯ID(主键,MD5生成)
|
||||||
|
- `title_plain`:标题
|
||||||
|
- `thumbnail`:缩略图URL
|
||||||
|
- `excerpt_plain`:简介
|
||||||
|
- `url`:跳转链接
|
||||||
|
- `create_time`:创建时间
|
||||||
|
|
||||||
|
#### 4.1.5 菜单表(t_sys_menu)
|
||||||
|
|
||||||
|
**用途:** 存储后台管理系统菜单
|
||||||
|
|
||||||
|
**主要字段:**
|
||||||
|
- `id`:菜单ID(主键)
|
||||||
|
- `pid`:父菜单ID
|
||||||
|
- `menu_name`:菜单名称
|
||||||
|
- `url`:菜单链接
|
||||||
|
- `menu_icon`:菜单图标
|
||||||
|
- `seq_on`:排序序号
|
||||||
|
- `create_time`:创建时间
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、API接口设计
|
||||||
|
|
||||||
|
### 5.1 小程序API接口
|
||||||
|
|
||||||
|
#### 5.1.1 用户相关接口
|
||||||
|
|
||||||
|
**接口路径:** `/app/Ghdwechat/xxx` 或 `/app/Ruilaiwechat/xxx`
|
||||||
|
|
||||||
|
**主要接口:**
|
||||||
|
- 用户登录/注册
|
||||||
|
- 获取用户信息
|
||||||
|
- 更新用户信息
|
||||||
|
|
||||||
|
#### 5.1.2 计算相关接口
|
||||||
|
|
||||||
|
**计算接口:**
|
||||||
|
- **接口路径:** `/app/Ghdwechat/calculate` 或 `/app/Ruilaiwechat/calculate`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **功能:** 提交计算参数,返回计算结果并保存记录
|
||||||
|
|
||||||
|
**请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"uid": "用户ID",
|
||||||
|
"name": "患者姓名",
|
||||||
|
"age": 10.5,
|
||||||
|
"height": 140,
|
||||||
|
"bone_age": 9.5,
|
||||||
|
"father_height": 175,
|
||||||
|
"mother_height": 160,
|
||||||
|
"IGF": 250,
|
||||||
|
"LH": 0.8,
|
||||||
|
"uterus_thickness": 10
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": 0,
|
||||||
|
"msg": "计算成功",
|
||||||
|
"calculate_resutlt": 0.661
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**错误响应:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": -1,
|
||||||
|
"msg": "错误信息(如:未传入用户id、未传入姓名等)"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**历史记录查询接口:**
|
||||||
|
- **接口路径:** `/app/Ghdwechat/selectRecordList` 或 `/app/Ruilaiwechat/selectRecordList`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"uid": "用户ID",
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 30
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": 0,
|
||||||
|
"msg": "查询成功",
|
||||||
|
"lists": [
|
||||||
|
{
|
||||||
|
"id": "记录ID",
|
||||||
|
"name": "患者姓名",
|
||||||
|
"age": 10.5,
|
||||||
|
"height": 140,
|
||||||
|
"bone_age": 9.5,
|
||||||
|
"father_height": 175,
|
||||||
|
"mother_height": 160,
|
||||||
|
"IGF": 250,
|
||||||
|
"LH": 0.8,
|
||||||
|
"uterus_thickness": 10,
|
||||||
|
"calculate_resutlt": 0.661,
|
||||||
|
"create_time": "2024-05-19 17:47:17"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastPage": 10,
|
||||||
|
"currentPage": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**删除记录接口:**
|
||||||
|
- **接口路径:** `/app/Ghdwechat/deleteRecord` 或 `/app/Ruilaiwechat/deleteRecord`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"uid": "用户ID",
|
||||||
|
"id": "记录ID"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.1.3 资讯相关接口
|
||||||
|
|
||||||
|
**获取资讯列表:**
|
||||||
|
- **接口路径:** `/app/Ghdwechat/selectRealtimeInfoList` 或 `/app/Ruilaiwechat/selectRealtimeInfoList`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 20
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": 0,
|
||||||
|
"msg": "查询成功",
|
||||||
|
"lists": [
|
||||||
|
{
|
||||||
|
"title_plain": "资讯标题",
|
||||||
|
"thumbnail": "图片URL",
|
||||||
|
"excerpt_plain": "简介",
|
||||||
|
"url": "跳转链接"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastPage": 10,
|
||||||
|
"currentPage": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.1.4 用户登录接口
|
||||||
|
|
||||||
|
**微信授权登录:**
|
||||||
|
- **接口路径:** `/app/Ghdwechat/wechatLogin` 或 `/app/Ruilaiwechat/wechatLogin`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": "微信登录code",
|
||||||
|
"encryptedData": "加密的用户数据",
|
||||||
|
"iv": "初始向量"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": 0,
|
||||||
|
"msg": "登录成功",
|
||||||
|
"uid": "用户ID"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**错误响应:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": -1,
|
||||||
|
"msg": "错误信息(如:未传入code、解析数据失败等)"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 后台管理API接口
|
||||||
|
|
||||||
|
#### 5.2.1 登录接口
|
||||||
|
|
||||||
|
**接口路径:** `/adminghd/Login/login`
|
||||||
|
|
||||||
|
**请求方式:** POST
|
||||||
|
|
||||||
|
**请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "13212345678",
|
||||||
|
"password": "123456",
|
||||||
|
"loginsubmit": "true"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": 1,
|
||||||
|
"msg": "登录成功",
|
||||||
|
"token": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.2.2 用户信息接口
|
||||||
|
|
||||||
|
**接口路径:** `/adminghd/Menu/getUserInfor`
|
||||||
|
|
||||||
|
**请求方式:** GET/POST
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": 1,
|
||||||
|
"msg": "查询成功",
|
||||||
|
"infro": {
|
||||||
|
"user_name": "管理员",
|
||||||
|
"user_head": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.2.3 微信用户列表接口
|
||||||
|
|
||||||
|
**接口路径:** `/adminghd/Wechatinfro/getWechatUserList`
|
||||||
|
|
||||||
|
**请求方式:** POST
|
||||||
|
|
||||||
|
**请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 30,
|
||||||
|
"title": "搜索关键词(可选)"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": 0,
|
||||||
|
"msg": "查询成功",
|
||||||
|
"lists": [
|
||||||
|
{
|
||||||
|
"uid": "xxx",
|
||||||
|
"nickname": "用户昵称",
|
||||||
|
"headimg": "头像URL",
|
||||||
|
"create_time": "2024-05-19 17:47:17",
|
||||||
|
"no_id": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastPage": 10,
|
||||||
|
"currentPage": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.2.4 计算记录列表接口
|
||||||
|
|
||||||
|
**接口路径:** `/adminghd/Wechatinfro/getWechatRecordList`
|
||||||
|
|
||||||
|
**请求方式:** POST
|
||||||
|
|
||||||
|
**请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"page": 1,
|
||||||
|
"page_size": 30,
|
||||||
|
"title": "搜索关键词(可选)"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应数据:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"erro": 0,
|
||||||
|
"msg": "查询成功",
|
||||||
|
"lists": [
|
||||||
|
{
|
||||||
|
"id": "xxx",
|
||||||
|
"name": "患者姓名",
|
||||||
|
"age": 10.5,
|
||||||
|
"height": 140,
|
||||||
|
"bone_age": 9.5,
|
||||||
|
"father_height": 175,
|
||||||
|
"mother_height": 160,
|
||||||
|
"IGF": 250,
|
||||||
|
"LH": 0.8,
|
||||||
|
"uterus_thickness": 10,
|
||||||
|
"calculate_resutlt": 0.661,
|
||||||
|
"create_time": "2024-05-19 17:47:17",
|
||||||
|
"no_id": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastPage": 10,
|
||||||
|
"currentPage": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.2.5 资讯管理接口
|
||||||
|
|
||||||
|
**获取资讯列表:**
|
||||||
|
- **接口路径:** `/adminghd/Wechatset/getWechatRealTimeInfoList`
|
||||||
|
- **请求方式:** POST
|
||||||
|
|
||||||
|
**添加/更新资讯:**
|
||||||
|
- **接口路径:** `/adminghd/Wechatset/saveWechatRealTimeInfo`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "资讯ID(更新时必填)",
|
||||||
|
"title_plain": "标题",
|
||||||
|
"thumbnail": "缩略图URL",
|
||||||
|
"excerpt_plain": "简介",
|
||||||
|
"url": "跳转链接"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**删除资讯:**
|
||||||
|
- **接口路径:** `/adminghd/Wechatset/delWechatRealTimeInfo`
|
||||||
|
- **请求方式:** POST
|
||||||
|
- **请求参数:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "资讯ID"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、预测模型算法
|
||||||
|
|
||||||
|
### 6.1 GHD预测模型(小程序前端模型 - 基于骨龄和IGF指标)
|
||||||
|
|
||||||
|
**模型公式:**
|
||||||
|
```
|
||||||
|
Y = 3.726 - 0.876×(BA-CA) - 0.058×(IGF-1) + 0.229×(IGFBP-3)
|
||||||
|
P = e^Y / (1 + e^Y)
|
||||||
|
```
|
||||||
|
|
||||||
|
**参数说明:**
|
||||||
|
- **BA**:骨龄(Bone Age),单位:年
|
||||||
|
- **CA**:实际年龄(Chronological Age),单位:年
|
||||||
|
- **IGF-1**:胰岛素样生长因子-1,单位:ng/ml
|
||||||
|
- **IGFBP-3**:胰岛素样生长因子结合蛋白-3,单位:mg/L
|
||||||
|
- **Y**:中间变量(对数几率)
|
||||||
|
- **P**:GHD预测概率(0-1之间)
|
||||||
|
|
||||||
|
**计算步骤:**
|
||||||
|
1. 计算骨龄差值:BA-CA
|
||||||
|
2. 代入公式计算Y值
|
||||||
|
3. 通过Logistic函数计算概率P
|
||||||
|
4. 将P转换为百分比形式
|
||||||
|
|
||||||
|
**使用场景:** 小程序前端计算器页面(`ghdCalculator`),用于前端实时计算展示
|
||||||
|
|
||||||
|
### 6.2 GHD预测模型(后端API模型 - 基于IGF、LH和子宫厚度)
|
||||||
|
|
||||||
|
**模型公式:**
|
||||||
|
```
|
||||||
|
P = exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度) /
|
||||||
|
(1 + exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度))
|
||||||
|
```
|
||||||
|
|
||||||
|
**参数说明:**
|
||||||
|
- **IGF-1**:胰岛素样生长因子-1,单位:ng/ml
|
||||||
|
- **LH**:促黄体生成素(Luteinizing Hormone),单位:mIU/ml
|
||||||
|
- **子宫厚度**:单位:mm
|
||||||
|
- **P**:预测概率(0-1之间),保留3位小数
|
||||||
|
|
||||||
|
**计算步骤:**
|
||||||
|
1. 计算指数部分:exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度)
|
||||||
|
2. 通过Logistic函数计算概率P
|
||||||
|
3. 将P四舍五入保留3位小数
|
||||||
|
|
||||||
|
**使用场景:** 后端API接口(`/app/Ghdwechat/calculate` 和 `/app/Ruilaiwechat/calculate`),用于服务器端计算并保存记录
|
||||||
|
|
||||||
|
**输入参数(后端API):**
|
||||||
|
- `uid`:用户ID(必填)
|
||||||
|
- `name`:患者姓名(必填)
|
||||||
|
- `age`:年龄(必填,数字)
|
||||||
|
- `height`:身高(必填,数字)
|
||||||
|
- `bone_age`:骨龄(必填,数字)
|
||||||
|
- `father_height`:父亲身高(必填,数字)
|
||||||
|
- `mother_height`:母亲身高(必填,数字)
|
||||||
|
- `IGF`:IGF-1值(必填,数字)
|
||||||
|
- `LH`:LH值(必填,数字)
|
||||||
|
- `uterus_thickness`:子宫厚度(必填,数字)
|
||||||
|
|
||||||
|
**输出结果:**
|
||||||
|
- `calculate_resutlt`:计算结果(概率值,0-1之间)
|
||||||
|
- 计算结果自动保存到数据库表 `wechat_calculate_record`
|
||||||
|
|
||||||
|
**注意:**
|
||||||
|
- 小程序前端和后端API使用不同的预测模型公式
|
||||||
|
- 前端模型基于骨龄和IGF指标,后端模型基于IGF、LH和子宫厚度
|
||||||
|
- 两个模型可能适用于不同的预测场景或患者群体
|
||||||
|
- 建议统一模型或明确说明两个模型的适用场景
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、非功能性需求
|
||||||
|
|
||||||
|
### 7.1 性能需求
|
||||||
|
|
||||||
|
- **响应时间**:API接口响应时间 < 500ms
|
||||||
|
- **并发支持**:支持至少100个并发用户
|
||||||
|
- **数据库查询**:优化查询性能,使用索引
|
||||||
|
|
||||||
|
### 7.2 安全需求
|
||||||
|
|
||||||
|
- **数据加密**:用户密码使用MD5加密存储
|
||||||
|
- **Session管理**:使用Session进行用户身份验证
|
||||||
|
- **HTTPS支持**:生产环境使用HTTPS协议
|
||||||
|
- **SQL注入防护**:使用ThinkPHP的ORM防止SQL注入
|
||||||
|
- **XSS防护**:对用户输入进行过滤和转义
|
||||||
|
|
||||||
|
### 7.3 可用性需求
|
||||||
|
|
||||||
|
- **系统可用性**:99%以上
|
||||||
|
- **数据备份**:定期备份数据库
|
||||||
|
- **错误处理**:友好的错误提示信息
|
||||||
|
|
||||||
|
### 7.4 兼容性需求
|
||||||
|
|
||||||
|
- **微信小程序**:支持微信小程序最新版本
|
||||||
|
- **浏览器**:后台管理系统支持主流浏览器(Chrome、Firefox、Safari、Edge)
|
||||||
|
- **移动端**:后台管理系统支持移动端访问
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、部署要求
|
||||||
|
|
||||||
|
### 8.1 服务器环境
|
||||||
|
|
||||||
|
- **操作系统**:Linux(CentOS 7+)
|
||||||
|
- **Web服务器**:Nginx 1.20+
|
||||||
|
- **PHP版本**:PHP 5.6+(推荐PHP 7.3+)
|
||||||
|
- **数据库**:MySQL 5.7+
|
||||||
|
- **PHP扩展**:mysqli、pdo_mysql、mbstring、openssl
|
||||||
|
|
||||||
|
### 8.2 目录权限
|
||||||
|
|
||||||
|
- `runtime/`:可写权限(日志、缓存)
|
||||||
|
- `public/uploads/`:可写权限(文件上传)
|
||||||
|
- `public/static/`:可读权限(静态资源)
|
||||||
|
|
||||||
|
### 8.3 配置文件
|
||||||
|
|
||||||
|
- **数据库配置**:`/www/wwwroot/code/application/database.php`
|
||||||
|
- **应用配置**:`/www/wwwroot/code/application/config.php`
|
||||||
|
- **Nginx配置**:`/etc/nginx/conf.d/default.conf` 或宝塔面板配置
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 九、项目现状
|
||||||
|
|
||||||
|
### 9.1 已完成功能
|
||||||
|
|
||||||
|
✅ **后台管理系统:**
|
||||||
|
- 用户登录功能
|
||||||
|
- 微信用户管理
|
||||||
|
- 计算记录管理
|
||||||
|
- 资讯管理
|
||||||
|
- 菜单管理(部分功能)
|
||||||
|
|
||||||
|
✅ **小程序前端:**
|
||||||
|
- GHD计算器页面
|
||||||
|
- 首页、个人中心等基础页面
|
||||||
|
- 计算逻辑实现
|
||||||
|
|
||||||
|
✅ **后端API:**
|
||||||
|
- 用户相关接口
|
||||||
|
- 计算记录接口
|
||||||
|
- 资讯接口
|
||||||
|
|
||||||
|
### 9.2 待完善功能
|
||||||
|
|
||||||
|
⏳ **数据验证:**
|
||||||
|
- 输入参数的范围验证
|
||||||
|
- 计算结果合理性检查
|
||||||
|
|
||||||
|
⏳ **用户体验:**
|
||||||
|
- 错误提示优化
|
||||||
|
- 加载状态提示
|
||||||
|
- 结果可视化展示
|
||||||
|
|
||||||
|
⏳ **功能扩展:**
|
||||||
|
- 计算历史记录查看(小程序端)
|
||||||
|
- 数据导出功能
|
||||||
|
- 统计分析功能
|
||||||
|
|
||||||
|
⏳ **文档完善:**
|
||||||
|
- API接口文档
|
||||||
|
- 用户使用手册
|
||||||
|
- 管理员操作手册
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 十、风险评估
|
||||||
|
|
||||||
|
### 10.1 技术风险
|
||||||
|
|
||||||
|
- **PHP版本兼容性**:当前使用PHP 5.6,建议升级到PHP 7.3+
|
||||||
|
- **数据库连接**:需要确保MySQL服务稳定运行
|
||||||
|
- **Session管理**:需要确保Session配置正确
|
||||||
|
|
||||||
|
### 10.2 业务风险
|
||||||
|
|
||||||
|
- **数据准确性**:预测模型需要定期验证和优化
|
||||||
|
- **医疗责任**:系统仅作为辅助工具,不能替代专业医疗诊断
|
||||||
|
- **数据隐私**:需要保护患者隐私信息
|
||||||
|
|
||||||
|
### 10.3 运维风险
|
||||||
|
|
||||||
|
- **数据备份**:需要建立定期备份机制
|
||||||
|
- **系统监控**:需要监控系统运行状态
|
||||||
|
- **安全更新**:需要及时更新安全补丁
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 十一、后续规划
|
||||||
|
|
||||||
|
### 11.1 短期规划(1-3个月)
|
||||||
|
|
||||||
|
1. **功能优化**:
|
||||||
|
- 完善输入验证
|
||||||
|
- 优化用户界面
|
||||||
|
- 添加计算历史功能
|
||||||
|
|
||||||
|
2. **性能优化**:
|
||||||
|
- 数据库查询优化
|
||||||
|
- 缓存机制引入
|
||||||
|
- 接口响应时间优化
|
||||||
|
|
||||||
|
3. **文档完善**:
|
||||||
|
- 编写API文档
|
||||||
|
- 编写用户手册
|
||||||
|
|
||||||
|
### 11.2 中期规划(3-6个月)
|
||||||
|
|
||||||
|
1. **功能扩展**:
|
||||||
|
- 多模型支持
|
||||||
|
- 数据统计分析
|
||||||
|
- 报告生成功能
|
||||||
|
|
||||||
|
2. **技术升级**:
|
||||||
|
- PHP版本升级
|
||||||
|
- 框架版本升级
|
||||||
|
- 前端框架优化
|
||||||
|
|
||||||
|
### 11.3 长期规划(6-12个月)
|
||||||
|
|
||||||
|
1. **智能化**:
|
||||||
|
- 机器学习模型集成
|
||||||
|
- 个性化推荐
|
||||||
|
- 智能诊断辅助
|
||||||
|
|
||||||
|
2. **平台化**:
|
||||||
|
- 多租户支持
|
||||||
|
- 开放API平台
|
||||||
|
- 第三方集成
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 十二、附录
|
||||||
|
|
||||||
|
### 12.1 术语表
|
||||||
|
|
||||||
|
- **GHD**:Growth Hormone Deficiency,生长激素缺乏
|
||||||
|
- **IGF-1**:Insulin-like Growth Factor-1,胰岛素样生长因子-1
|
||||||
|
- **IGFBP-3**:Insulin-like Growth Factor Binding Protein-3,胰岛素样生长因子结合蛋白-3
|
||||||
|
- **BA**:Bone Age,骨龄
|
||||||
|
- **CA**:Chronological Age,实际年龄
|
||||||
|
- **LH**:Luteinizing Hormone,促黄体生成素
|
||||||
|
|
||||||
|
### 12.2 参考文档
|
||||||
|
|
||||||
|
- ThinkPHP 5.0 官方文档:http://www.kancloud.cn/manual/thinkphp5
|
||||||
|
- 微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/
|
||||||
|
- MySQL官方文档:https://dev.mysql.com/doc/
|
||||||
|
|
||||||
|
### 12.3 联系方式
|
||||||
|
|
||||||
|
- **项目地址**:`/www/wwwroot/code`
|
||||||
|
- **后台管理地址**:`https://www.ruilaizipj.com/adminghd/login`
|
||||||
|
- **数据库**:MySQL (`ruilai`)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**文档结束**
|
||||||
|
|
||||||
|
**创建时间:** 2025年1月28日
|
||||||
|
**最后更新:** 2025年1月28日
|
||||||
|
**文档版本:** v1.0
|
||||||
Reference in New Issue
Block a user