okech-michael/Afyalink-Smart-Health-infromation
GitHub: okech-michael/Afyalink-Smart-Health-infromation
AfyaLink 是一个基于 Django 的医疗运营与物流平台,整合临床工作流、药品库存管理和无人机配送,为医疗机构网络提供一站式管理。
Stars: 0 | Forks: 0
# AfyaLink — 临床与物流平台
AfyaLink 是一个基于 Django 的医疗机构运营与物流平台。它提供基于角色的 dashboard、面向患者的流程、临床工作流、库存与供应管理,以及物流功能(包括基于无人机的配送跟踪)。该项目旨在为医疗机构网络、供应商和血库提供支持。
核心功能
- 基于角色的 dashboard:患者、接待、护士、医生、实验室、药房、账单、主管、供应商、血库和管理员。
- 临床工作流:就诊登记、分诊、问诊、处方、化验结果和账单。
- 库存管理:药品库存跟踪、交付、配药记录和短缺预警。
- 物流:无人机编队和无人机配送请求(药品/血液/物资),支持跟踪和分配。
- 通知:应用内消息以及 SMS/推送 Hook(可配置的集成)。
- 管理:为所有 model 提供 Django 管理端集成。
近期新增内容
- 无人机配送功能:`Drone` 和 `DroneDelivery` model,供应商/血库 dashboard,配送请求和跟踪视图、表单和模板,以及管理端注册。
- 注册更新:注册和重定向中已包含 `supplier` 和 `blood_bank` 员工角色。
代码结构(重要文件)
- `config/` — Django 项目设置和 WSGI/ASGI 入口。
- `core/` — 包含 model、form、view、url、admin 和 migration 的主应用。
- `core/models.py` — 领域 model(Facility、Profile、Visit、DrugStock、Drone、DroneDelivery 等)。
- `core/forms.py` — 包含 `DroneDeliveryForm` 在内的表单。
- `core/views.py` — 角色 dashboard 和无人机配送视图。
- `core/urls.py` — dashboard 和 API 的路由。
- `core/admin.py` — Drone 和 DroneDelivery 的管理端注册。
- `templates/` — 用于各个角色和无人机页面的 Jinja 风格 Django 模板(`templates/drone/`、`templates/supplier/`、`templates/blood_bank/`)。
数据库与 migration
- 该应用使用 Django ORM(为 Python 3.11、Django 5.x 设计)。在更改 model 后运行:
```
python -m venv .venv
source .venv/Scripts/activate # Windows: .venv\\Scripts\\activate
pip install -r requirements.txt
python manage.py migrate
```
- 已为无人机配送 model 创建了一个 migration:`core/migrations/0003_drone_alter_profile_role_dronedelivery_and_more.py`。
环境与配置
- 使用环境变量来管理密钥和生产环境设置。将 `.env.example` 复制到 `.env` 进行本地开发并设置相应值。
- 重要的环境变量:
- `DJANGO_SECRET_KEY`
- `DJANGO_DEBUG`(在生产环境中设置为 `False`)
- `DATABASE_URL`(生产环境推荐使用 Postgres)
- `ALLOWED_HOSTS` / `DJANGO_ALLOWED_HOSTS`
- 根据集成需要使用的第三方密钥(AfricasTalking、Firebase 等)
本地运行
```
python manage.py runserver
# 创建 superuser 以访问 admin:
python manage.py createsuperuser
```
部署(Railway)
- 该仓库已准备好在 Railway 上部署:包含 `Procfile`、`requirements.txt` 和 `runtime.txt`。设置会读取环境变量并支持 `DATABASE_URL`。
- 典型的 Railway 步骤:
1. 在 Railway 中连接该仓库并设置环境变量。
2. 确保 `DATABASE_URL` 指向受管的 Postgres 数据库。
3. 在首次部署时运行 `python manage.py migrate` 和 `python manage.py collectstatic --noinput`(Railway 会运行发布命令,或者你可以通过控制台运行它们)。
测试与检查
- 运行 Django 检查:
```
python manage.py check
```
- 使用自动化测试(如果已添加):
```
python manage.py test
```
演示的注意事项与后续步骤
- 无人机配送功能包含 model、form、view 和模板,但可能需要连接到实时的遥测数据源(无人机 GPS 反馈)以实现实时跟踪。对于演示,你可以通过配送详情 UI 手动更新配送坐标。
- 如果你需要实时地图,请添加一个轻量级的 JS 地图(Leaflet/Mapbox),并在 API endpoint 中暴露 `DroneDelivery.tracking_coordinates`。
- 为了在演示中展示完整的端到端流程,请为供应商、血库、医疗机构以及一个无人机配送请求创建种子数据。
如果你愿意,我可以:
- 添加一个简单的管理命令来生成演示种子数据,
- 添加一个返回 JSON 配送坐标的 API endpoint,
- 将一个小型 Leaflet 地图集成到 `templates/drone/delivery_detail.html` 中进行现场演示。
更新于 2026-06-05。
标签:Django, 供应链管理, 医疗信息化, 医疗物联网, 后端开发, 测试用例, 物流管理, 疾病监测, 逆向工具