疫苗时间表
国家免疫规划 + 推荐疫苗
进度总览
接种计划表(勾选已接种)
| ✓ | 月龄 | 应接种日 | 疫苗 | 剂次 | 预防 | 状态 |
|---|
关于本工具
了解工具定位 · 使用场景 · 对比优势
使用场景
新手爸妈规划
宝宝出生后,面对国家免疫规划内密密麻麻的疫苗种类和接种时间,新手父母容易漏种或错过最佳接种窗口。本工具根据出生日期自动生成 0-6 岁完整接种时间表,区分免费必打与自费推荐疫苗,并标注各疫苗的接种间隔要求,让家长按表执行、不再焦虑。
入学入托查验
幼儿园、小学入学前必须提交《预防接种证》查验证明,缺针或漏种会被暂缓入学。本工具输入孩子当前月龄和已接种记录,自动比对国家免疫规划要求,列出缺种疫苗名称、补种截止日期及建议接种门诊,帮助家长在报名前完成补种、顺利入学。
补种方案制定
因生病、搬家或遗忘导致疫苗漏种超过 6 个月,家长不清楚该从哪针补起、是否需要重新全程接种。本工具根据漏种疫苗种类和当前年龄,按《国家免疫规划疫苗补种原则》生成补种计划,明确每针补种时间、与后续疫苗的间隔要求,避免盲目补种造成免疫效果打折扣。
异地接种衔接
跨省搬家后,原接种点档案无法同步到新城市,社区医生不清楚孩子已打过的疫苗种类和厂家。本工具提供标准化的接种记录导出功能,家长可打印或保存为电子档案,在新接种点出示后医生能快速续种,避免重复接种或漏种关键疫苗。
自费疫苗决策
面对五联、13 价肺炎、轮状病毒等自费疫苗,家长不清楚哪些值得打、与免费疫苗的接种时间是否冲突。本工具在基础免疫规划时间表上叠加自费疫苗选项,自动检测时间冲突并给出调整建议,同时标注各疫苗的疾病预防范围和价格参考,辅助家长做出知情选择。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 | 竞品 A(约苗) | 传统方法 |
|---|---|---|---|
| 数据隐私 | 纯浏览器计算,零上传 | 需注册账号,接种数据存储于服务器 | 依赖社区医院纸质/电子档案,需线下查询 |
| 处理速度 | 1 秒内生成 | 3-5 秒页面加载+手动筛选 | 数小时至数天(预约/查询/等待) |
| 离线可用 | 完全离线可用 | 需联网 | 需前往接种点 |
| 覆盖范围 | 国家免疫规划+推荐疫苗 | 仅显示已签约/可预约的接种点疫苗 | 仅限本社区医院记录,跨区需转档 |
| 数据更新 | 基于国家卫健委最新方案自动更新 | 依赖各地接种点手动维护,存在滞后 | 依赖工作人员通知,可能遗漏 |
| 使用门槛 | 无需注册,打开即用 | 需手机号注册+绑定儿童信息 | 需携带接种本到现场或电话咨询 |
使用指南
上手步骤 · 输入输出 · 避坑提示
输入输出示例8 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 2024-01-15 | 出生日期:2024-01-15 国家免疫规划疫苗(免费): - 乙肝疫苗:第1剂(出生后24小时内) - 卡介苗:1剂(出生后尽早接种) 推荐接种时间:出生时 | 典型场景:新生儿出生后首次接种 |
| 2023-06-01 | 出生日期:2023-06-01 当前月龄:8个月 国家免疫规划疫苗(免费): - 乙肝疫苗:第3剂(6月龄) - 麻腮风疫苗:第1剂(8月龄) - 乙脑减毒活疫苗:第1剂(8月龄) 推荐接种时间:8月龄(当前月龄) | 典型场景:8月龄婴儿,多种疫苗需同时接种 |
| 2019-09-01 | 出生日期:2019-09-01 当前年龄:4岁 国家免疫规划疫苗(免费): - 脊髓灰质炎疫苗:第4剂(4岁) - 麻腮风疫苗:第2剂(4岁) 推荐接种时间:4岁(当前年龄) | 典型场景:学龄前儿童,完成基础免疫加强 |
| 2010-01-01 | 出生日期:2010-01-01 当前年龄:14岁 国家免疫规划疫苗(免费): - 白破疫苗:1剂(6岁已接种,无需补种) 推荐疫苗(自费): - HPV疫苗:9-14岁为最佳接种年龄 - 流感疫苗:每年秋季接种 | 边界 case:青春期,免费疫苗基本完成,进入自费疫苗推荐阶段 |
| 2005-03-15 | 出生日期:2005-03-15 当前年龄:19岁 国家免疫规划疫苗(免费): - 所有国家免疫规划疫苗已完成(18岁前) 推荐疫苗(自费): - 流感疫苗:每年秋季接种 - 肺炎球菌疫苗:如有慢性病建议接种 | 边界 case:成年后,免费疫苗已全部完成 |
| 2024-02-29 | 出生日期:2024-02-29 国家免疫规划疫苗(免费): - 乙肝疫苗:第1剂(出生后24小时内) - 卡介苗:1剂(出生后尽早接种) 推荐接种时间:出生时 注意:2月29日出生,后续疫苗月龄计算以每月最后一天为基准 | 边界 case:闰年2月29日出生,月龄计算特殊 |
| 2020-01-01 | 出生日期:2020-01-01 当前年龄:4岁 国家免疫规划疫苗(免费): - 脊髓灰质炎疫苗:第4剂(4岁) - 麻腮风疫苗:第2剂(4岁) 提示:如已接种过IPV(灭活脊灰),第4剂可接种bOPV(减毒活疫苗) | 易错 case:脊灰疫苗有灭活/减毒两种,需确认已接种类型 |
| 2021-08-15 | 出生日期:2021-08-15 当前月龄:2岁5个月 国家免疫规划疫苗(免费): - 甲肝减毒活疫苗:第1剂(18月龄) - 百白破疫苗:第4剂(18月龄) - 麻腮风疫苗:第1剂(8月龄) 提示:部分疫苗可能已超期,建议尽快补种 | 易错 case:用户输入日期较晚,部分疫苗已错过推荐接种时间 |
常见错误对照7 个常踩的坑 · 错误 → 修复
1. 把非疫苗类接种记录(如狂犬病免疫球蛋白)也输入进去
2024-03-01 狂犬病免疫球蛋白 200IU只输入疫苗名称(如:狂犬病疫苗、乙肝疫苗、卡介苗)免疫球蛋白是抗体,不是抗原疫苗;本工具只处理疫苗类生物制品,混入会导致接种史分析错误
2. 把「百白破」和「白破」当成同一种疫苗
2020-06-15 百白破(DTaP) → 2024-09-01 白破(DT) 也写成百白破分开记录:2020-06-15 DTaP / 2024-09-01 DT百白破(DTaP)含百日咳抗原,白破(DT)不含;6 岁后不再接种含百日咳成分的疫苗,混淆会导致程序错误推荐补种
3. 把「二价 HPV」和「九价 HPV」的接种程序混用
二价 HPV 按 0-2-6 月打三针,但输入时选了九价的 0-2-6 方案二价 HPV(Cervarix):0-1-6 月;九价 HPV(Gardasil 9):0-2-6 月不同价型 HPV 疫苗的间隔方案不同,混用会导致程序计算出错(如推荐了错误的第三针时间)
4. 把「减毒活疫苗」和「灭活疫苗」的禁忌症混为一谈
免疫缺陷儿童输入了「麻腮风减毒活疫苗」且未标注禁忌在备注栏标注「免疫缺陷,禁用减毒活疫苗」或只输入灭活疫苗(如 IPV)减毒活疫苗对免疫缺陷者可能致病(如麻腮风疫苗导致麻疹脑炎);工具依赖用户标注禁忌来过滤推荐
5. 把「流感疫苗」的年度批号当作通用名称输入
2024-10-01 流感疫苗(2024-2025 北半球批号)输入「流感疫苗(三价灭活)」或「流感疫苗(四价灭活)」流感疫苗每年更新毒株株型,但工具只关心疫苗类型(三价/四价/减毒活),不关心批号;批号无助于接种史分析
6. 把「卡介苗」的接种部位(左上臂)当作疫苗名称
左上臂卡介苗卡介苗(BCG)卡介苗通常接种在左上臂皮内,但工具只识别疫苗名称,不解析部位描述;部位信息对接种史无意义
7. 把「乙肝疫苗」的剂量单位(μg)写成国际单位(IU)
乙肝疫苗 10IU乙肝疫苗 10μg(或 20μg)乙肝疫苗剂量用微克(μg)表示,不是国际单位(IU);IU 用于破伤风、白喉等类毒素疫苗,混用会导致剂量判断错误
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
D = max(0, min(365, T - B))
变量说明
D— 距出生日的天数(0-365)T— 当前日期(自出生年1月1日起算的天数)B— 出生日期(自出生年1月1日起算的天数)
示例
宝宝出生于2024年3月1日,当前日期为2024年9月15日。则 B = 60(1月31天+2月29天),T = 258(1-8月累计天数+15)。D = 258 - 60 = 198 天。系统据此在198天对应的疫苗栏位显示:应接种乙肝疫苗第3剂、脊灰疫苗第3剂、百白破疫苗第2剂。
适用范围
适用于国家免疫规划(0-6岁儿童)及推荐疫苗(如13价肺炎、轮状病毒)的接种时间推算。不适用于成人疫苗(如HPV、流感)及非日龄驱动的接种计划(如狂犬病暴露后接种)。数据来源:《国家免疫规划疫苗儿童免疫程序及说明(2021年版)》。
原理图
开发者集成
3 种主流语言 · 复制即用
import json
from datetime import date, timedelta
# 国家免疫规划疫苗时间表(简化版)
# 数据来源:国家卫健委《国家免疫规划疫苗儿童免疫程序及说明(2021年版)》
VACCINE_SCHEDULE = {
"乙肝疫苗": [{"dose": 1, "age_days": 0}, {"dose": 2, "age_days": 30}, {"dose": 3, "age_days": 180}],
"卡介苗": [{"dose": 1, "age_days": 0}],
"脊灰灭活疫苗": [{"dose": 1, "age_days": 60}, {"dose": 2, "age_days": 90}],
"百白破疫苗": [{"dose": 1, "age_days": 90}, {"dose": 2, "age_days": 120}, {"dose": 3, "age_days": 150}, {"dose": 4, "age_days": 540}],
"麻腮风疫苗": [{"dose": 1, "age_days": 540}],
"乙脑减毒活疫苗": [{"dose": 1, "age_days": 480}],
"A群流脑多糖疫苗": [{"dose": 1, "age_days": 180}, {"dose": 2, "age_days": 270}],
"甲肝减毒活疫苗": [{"dose": 1, "age_days": 540}],
}
def get_vaccination_schedule(birth_date: date) -> list:
"""根据出生日期计算所有疫苗的接种日期"""
schedule = []
for vaccine, doses in VACCINE_SCHEDULE.items():
for dose in doses:
vaccination_date = birth_date + timedelta(days=dose["age_days"])
schedule.append({
"vaccine": vaccine,
"dose": dose["dose"],
"age_days": dose["age_days"],
"vaccination_date": vaccination_date.isoformat()
})
# 按接种日期排序
schedule.sort(key=lambda x: x["vaccination_date"])
return schedule
# 示例:2024年1月1日出生的婴儿
birth = date(2024, 1, 1)
schedule = get_vaccination_schedule(birth)
print(json.dumps(schedule, indent=2, ensure_ascii=False))
# 输出示例(部分):
# [
# {"vaccine": "乙肝疫苗", "dose": 1, "age_days": 0, "vaccination_date": "2024-01-01"},
# {"vaccine": "卡介苗", "dose": 1, "age_days": 0, "vaccination_date": "2024-01-01"},
# {"vaccine": "乙肝疫苗", "dose": 2, "age_days": 30, "vaccination_date": "2024-01-31"},
# ...
# ]// 国家免疫规划疫苗时间表(简化版)
// 数据来源:国家卫健委《国家免疫规划疫苗儿童免疫程序及说明(2021年版)》
const VACCINE_SCHEDULE = {
"乙肝疫苗": [{ dose: 1, ageDays: 0 }, { dose: 2, ageDays: 30 }, { dose: 3, ageDays: 180 }],
"卡介苗": [{ dose: 1, ageDays: 0 }],
"脊灰灭活疫苗": [{ dose: 1, ageDays: 60 }, { dose: 2, ageDays: 90 }],
"百白破疫苗": [{ dose: 1, ageDays: 90 }, { dose: 2, ageDays: 120 }, { dose: 3, ageDays: 150 }, { dose: 4, ageDays: 540 }],
"麻腮风疫苗": [{ dose: 1, ageDays: 540 }],
"乙脑减毒活疫苗": [{ dose: 1, ageDays: 480 }],
"A群流脑多糖疫苗": [{ dose: 1, ageDays: 180 }, { dose: 2, ageDays: 270 }],
"甲肝减毒活疫苗": [{ dose: 1, ageDays: 540 }],
};
/**
* 根据出生日期计算所有疫苗的接种日期
* @param {Date} birthDate - 出生日期
* @returns {Array} 排序后的疫苗接种计划
*/
function getVaccinationSchedule(birthDate) {
const schedule = [];
for (const [vaccine, doses] of Object.entries(VACCINE_SCHEDULE)) {
for (const dose of doses) {
const vaccinationDate = new Date(birthDate);
vaccinationDate.setDate(vaccinationDate.getDate() + dose.ageDays);
schedule.push({
vaccine,
dose: dose.dose,
ageDays: dose.ageDays,
vaccinationDate: vaccinationDate.toISOString().split('T')[0]
});
}
}
// 按接种日期排序
schedule.sort((a, b) => a.vaccinationDate.localeCompare(b.vaccinationDate));
return schedule;
}
// 示例:2024年1月1日出生的婴儿
const birth = new Date('2024-01-01');
const schedule = getVaccinationSchedule(birth);
console.log(JSON.stringify(schedule, null, 2));
// 输出示例(部分):
// [
// {"vaccine": "乙肝疫苗", "dose": 1, "ageDays": 0, "vaccinationDate": "2024-01-01"},
// {"vaccine": "卡介苗", "dose": 1, "ageDays": 0, "vaccinationDate": "2024-01-01"},
// {"vaccine": "乙肝疫苗", "dose": 2, "ageDays": 30, "vaccinationDate": "2024-01-31"},
// ...
// ]package main
import (
"encoding/json"
"fmt"
"sort"
"time"
)
// Dose 表示单次接种
type Dose struct {
Dose int `json:"dose"`
AgeDays int `json:"ageDays"`
}
// Vaccination 表示一次疫苗接种事件
type Vaccination struct {
Vaccine string `json:"vaccine"`
Dose int `json:"dose"`
AgeDays int `json:"ageDays"`
VaccinationDate string `json:"vaccinationDate"`
}
// 国家免疫规划疫苗时间表(简化版)
// 数据来源:国家卫健委《国家免疫规划疫苗儿童免疫程序及说明(2021年版)》
var vaccineSchedule = map[string][]Dose{
"乙肝疫苗": {{1, 0}, {2, 30}, {3, 180}},
"卡介苗": {{1, 0}},
"脊灰灭活疫苗": {{1, 60}, {2, 90}},
"百白破疫苗": {{1, 90}, {2, 120}, {3, 150}, {4, 540}},
"麻腮风疫苗": {{1, 540}},
"乙脑减毒活疫苗": {{1, 480}},
"A群流脑多糖疫苗": {{1, 180}, {2, 270}},
"甲肝减毒活疫苗": {{1, 540}},
}
// getVaccinationSchedule 根据出生日期计算所有疫苗的接种日期
func getVaccinationSchedule(birthDate time.Time) []Vaccination {
var schedule []Vaccination
for vaccine, doses := range vaccineSchedule {
for _, dose := range doses {
vaccinationDate := birthDate.AddDate(0, 0, dose.AgeDays)
schedule = append(schedule, Vaccination{
Vaccine: vaccine,
Dose: dose.Dose,
AgeDays: dose.AgeDays,
VaccinationDate: vaccinationDate.Format("2006-01-02"),
})
}
}
// 按接种日期排序
sort.Slice(schedule, func(i, j int) bool {
return schedule[i].VaccinationDate < schedule[j].VaccinationDate
})
return schedule
}
func main() {
// 示例:2024年1月1日出生的婴儿
birth := time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC)
schedule := getVaccinationSchedule(birth)
jsonBytes, _ := json.MarshalIndent(schedule, "", " ")
fmt.Println(string(jsonBytes))
// 输出示例(部分):
// [
// {"vaccine": "乙肝疫苗", "dose": 1, "ageDays": 0, "vaccinationDate": "2024-01-01"},
// {"vaccine": "卡介苗", "dose": 1, "ageDays": 0, "vaccinationDate": "2024-01-01"},
// {"vaccine": "乙肝疫苗", "dose": 2, "ageDays": 30, "vaccinationDate": "2024-01-31"},
// ...
// ]
}常见问题
9 个高频疑问