ma2214889041/firsteck-pm

GitHub: ma2214889041/firsteck-pm

这是一个专为IVD和医疗器械合规设计的临床项目管理系统,解决监管环境下项目全生命周期的管理问题。

Stars: 0 | Forks: 0

# Firsteck PM 一个专为 IVD / 医疗器械合规工作设计的**临床项目管理系统**。覆盖研究的全生命周期——售前 → 合同 → 伦理/部委审批 → 中心启动 → 受试者入组 → 报告 → 结题——并提供受监管行业真正需要的审计追踪、电子签名和文件控制。 在线体验:**https://firsteck-pm.pages.dev** ## 这是什么 这不是一个在事后才考虑合规性的通用项目跟踪器。其数据模型和用户界面是围绕审查员(FDA / 公告机构 / 卫健委)实际检查的内容构建的: - **21 CFR Part 11 / EU Annex 11**:仅追加审计日志(数据库级触发器)、带密码重新验证+含义+原因的电子签名、签名时间戳 + IP。 - **ALCOA+ 数据完整性**:每个变更可追溯、有时间戳、同步进行;原始值在审计历史中保留;在删除和锁定阶段编辑时记录原因。 - **文件控制**:带 SHA-256 校验和的版本化文件,草稿 → 已批准 → 作废工作流,审批人职责分离(审批人 ≠ 上传者,除非是管理员),审批带有原因和生效日期的签名。 - **访问安全**:PBKDF2 密码哈希,8小时滑动会话,失败登录锁定(5次后锁定15分钟),90天不活动禁用,带单次使用备份码的 TOTP 2FA,管理员可为用户强制启用 2FA,密码更改时会话失效。 - **临床数据模型**:中心 + 研究者,项目 ↔ 中心关联(包含每个中心的伦理/部委审批、SIV 日期、入组计数器),不良事件(AE / SAE,含相关性和结果)、方案偏离及 CAPA 跟踪。 - **检查就绪导出**:每个项目带打印样式的审计包 PDF(快照 + 中心 + 版本化文件 + AE/偏离 + 审计 + 签名)和带过滤器的 CSV 审计导出。 ## 技术栈 | 层级 | 技术 | |---|---| | 前端 | React 19 + Vite,纯 CSS,lucide-react 图标 | | 后端 | Cloudflare Pages Functions(单文件 `[[path]].js` 路由) | | 数据库 | Cloudflare D1(边缘端 SQLite) | | 文件存储 | Cloudflare R2 | | 认证 | Cookie 会话(浏览器)+ Bearer API 令牌(CLI / 代理) | | PWA | 是(清单 + 服务工作线程) | ## 本地开发 ``` npm install npm run dev # Vite dev server (frontend only) npm run cf:dev # Full Cloudflare Pages dev stack (Workers + D1 + R2) ``` 首次运行时,请使用初始管理员表单登录。此后,不提供公开注册——由管理员创建用户。 ## 部署 ``` npm run build npx wrangler pages deploy dist --project-name firsteck-pm ``` ## 数据库迁移 ``` npm run db:migrate:remote # apply to production D1 npm run db:migrate:local # local dev D1 ``` 迁移文件位于 `migrations/`——按编号顺序应用。架构要点: - `0001_initial` — 用户、会话、客户、项目、任务、阻塞项、付款、文件、文件版本、项目成员、审计日志。 - `0002_soft_delete` — 软删除列。 - `0003_comments_and_permissions` — 评论 + 字段级权限表。 - `0004_compliance_baseline` — 文件版本状态 + 登录安全 + 审计原因。 - `0005_esign_and_integrity` — 签名表 + 文件 SHA-256。 - `0006_clinical_and_security` — 中心、研究者、AE、偏离、密码历史、2FA 列、审计日志不可变触发器。 - `0007_per_site_approvals_and_recovery` — 项目-中心审批 + TOTP 恢复码。 - `0008_api_tokens_and_force_2fa` — 个人访问令牌 + 管理员强制 2FA。 ## AI / CLI 的 API 令牌 参见 [`docs/ai-integration.md`](docs/ai-integration.md)。令牌在“账户 → API 令牌”中创建,以哈希形式存储,作用域受限(`读取` / `读取,写入` / `管理员`),可撤销,并经过审计。 ``` curl https://firsteck-pm.pages.dev/api/app \ -H "Authorization: Bearer fpm_..." ``` ## 项目布局 ``` src/ main.jsx # entire React app (component-per-function, no router lib) styles.css # design system + responsive layout functions/ api/[[path]].js # single Cloudflare Functions router for all /api/* routes migrations/ # D1 SQL migrations (numbered) public/ # PWA manifest, service worker, icon docs/ ai-integration.md ``` ## 状态 正在积极开发中。合规基线已就位;临床数据模型有表 + 最小用户界面;集成面(API 令牌)已上线,但尚无 MCP 服务器。 ## 许可 非开源。内部项目。
标签:21 CFR Part 11, ALCOA+, Cloudflare D1, Cloudflare Pages, Cloudflare R2, EU Annex 11, PDF生成, React, Syscalls, Vite, Zenmap, 临床试验, 临床项目管理, 体外诊断, 医疗器械合规, 医疗设备, 双因素认证, 合规软件, 审计跟踪, 数据完整性, 文档控制, 法规遵从, 电子签名, 监管检查, 自定义脚本, 访问安全, 项目管理工具