我构建了一个免费合成数据生成器——使用方法(React + Tailwind)

发布: (2026年2月12日 GMT+8 08:13)
6 分钟阅读
原文: Dev.to

Source: Dev.to

《我构建了一个免费合成数据生成器 — 操作方法》(React + Tailwind)的封面图片

概述

我们都有过这种经历——需要 10,000 条真实的用户记录来测试你的应用,或者一批用于演示的假医疗数据,亦或是用来压力测试仪表盘的交易日志。于是你要么:

  • 编写一个蹩脚的脚本生成 “User_1, User_2, User_3…”
  • 花 30 分钟配置 CLI 工具
  • 使用 SaaS 工具,而免费层只能生成 100 行

我对这种情况感到厌倦,于是构建了 DataForge —— 一个免费、基于浏览器的合成数据生成器,能够即时创建逼真的假数据。无需注册、无需服务器、无限制。

🔗 Try it live

DataForge 截图

DataForge UI 示例

功能概述

DataForge 在两个类别中生成 9 种数据类型 的逼真假数据。

📊 通用数据

  • 用户 – 姓名、电子邮件、电话、出生日期、公司、职位
  • 地址 – 街道、城市、州、邮编、坐标
  • 交易 – 金额、商户、类别、状态

🏥 医疗保健 / HIPAA‑安全

  • 患者 – MRN、血型、过敏史、疾病、保险
  • 医疗记录 – ICD‑10 代码、生命体征、就诊类型、临床笔记
  • 处方 – 真正的药物、剂量、DEA 编号、NDC 代码
  • 实验室结果 – 26 项真实实验室检测,含参考范围和标记
  • 保险理赔 – 收费/允许/已付金额,理赔状态
  • 医疗提供者 – NPI 编号、专科、资质

所有数据均为 100 % 合成 — 不包含真实患者信息,无 HIPAA 风险。

关键特性

⚡ 即时生成多达 50,000 条记录

所有操作均在客户端运行。无需 API 调用,也不需要服务器。您的数据永不离开浏览器。

🎬 自定义场景

预设场景

  • 🧓 老年患者群体(年龄 65+)
  • 👶 儿童群体(年龄 0‑17)
  • 🚨 关键实验室数值
  • 💰 高价值交易($5K+)
  • 🕵️ 欺诈模式
  • ❌ 拒绝理赔批次
  • 🗑️ 脏/混乱数据(包含空值和错误)

自定义构建器

  • 设置每个字段的空值率(0‑80 %)
  • 定义数值范围(例如,年龄 65‑95,金额 $10K+)
  • 强制特定值(例如 status = "Denied"
  • 添加自定义值池
  • 控制重复率和错误注入

📤 导出格式

  • JSON – 标准结构化数据
  • CSV – 用于电子表格和数据库
  • SQL – 可直接运行的 INSERT 语句
  • HL7 FHIR – 医疗互操作性标准

🌱 可通过种子复现

设置种子值即可每次获得 完全相同的数据。非常适合一致的测试套件。

我的构建过程

技术栈

  • React 18 + TypeScript
  • Tailwind CSS – 暗色高清界面
  • Vite – 快速构建
  • 自定义种子 PRNG – 无需外部 faker 库

种子随机数生成器

与其使用不可设种的 Math.random(),我基于一个简单的线性同余生成器实现了自定义 PRNG:

class SeededRandom {
  private seed: number;

  constructor(seed: number) {
    this.seed = seed;
  }

  next(): number {
    this.seed = (this.seed * 16807 + 0) % 2147483647;
    return this.seed / 2147483647;
  }

  nextInt(min: number, max: number): number {
    return Math.floor(this.next() * (max - min + 1)) + min;
  }

  pick<T>(array: T[]): T {
    return array[this.nextInt(0, array.length - 1)];
  }
}

如果你从事健康信息技术(Health IT),一定了解以下痛点:

  • ❌ 不能使用真实患者数据进行测试(受 HIPAA 限制)
  • ❌ Epic/Cerner 沙盒中的测试患者数量有限
  • ❌ Synthea 功能强大,但需要 Java + CLI 环境配置
  • ❌ 大多数在线生成器不了解医疗数据

DataForge 填补了这一空白:

  • ✅ FHIR 原生导出 — 生成符合规范的 FHIR Bundle
  • ✅ 真正的 ICD‑10 与 CPT 编码 — 不再是随机字符串
  • ✅ 临床场景 — 老年人群、关键实验室指标、拒付理赔等
  • ✅ 在浏览器中运行 — 可将 URL 分享给 QA 团队
  • ✅ 5 万条记录 — 足以进行负载测试

接下来

  • 自定义模式构建器(定义您自己的数据类型)
  • API 端点模式(用作模拟 API)
  • 表之间的关系(外键)
  • 更多医疗保健标准(HL7v2 消息,C‑CDA)
  • 本地化(非美国名称、地址、电话格式)

如果此工具为您节省了时间,请在仓库上点个 ⭐ 或留下评论。我很想了解您是如何使用它的!

0 浏览
Back to Blog

相关文章

阅读更多 »

疯狂的 React key

通过 map 渲染 tsx export function Parent { const array, setArray = useState1, 2, 3, 4, 5; useEffect => { setTimeout => { setArrayprev => 6, 7, 8, 9, 10, ...prev;...