# -*- coding: utf-8 -*-
"""构建 分子诊断市场容量 JSON（2025 实际 / 2026E / 2027E，全球+中国）。
所有数字均来自已归档原始资料（资料/文献与专利/2025-2027/market/）。
无来源完整字段者一律不写数字，转 gaps。
"""
import json, os

OUT = "/Users/liuxinyuan/Desktop/Hermes输出-工作类/数据/diag_market_2025_2027/market.json"
os.makedirs(os.path.dirname(OUT), exist_ok=True)

GVR_MDX = "https://www.grandviewresearch.com/industry-analysis/molecular-diagnostics-market"
GVR_PCR = "https://www.grandviewresearch.com/industry-analysis/real-time-pcr-qpcr-digital-pcr-dpcr-market"
GVR_NGS = "https://www.grandviewresearch.com/industry-analysis/next-generation-sequencing-market"
GVR_METH = "https://www.grandviewresearch.com/industry-analysis/dna-methylation-market-report"
GVR_INAAT = "https://www.grandviewresearch.com/industry-analysis/isothermal-nucleic-acid-amplification-technology-inaat-market"
PREC_QPCR = "https://www.precedenceresearch.com/real-time-pcr-market"
POLARIS_DPCR = "https://www.polarismarketresearch.com/industry-analysis/digital-pcr-market"
MORDOR_CRISPR = "https://www.mordorintelligence.com/industry-reports/crispr-diagnostics-market"
CIC = "https://pdf.dfcfw.com/pdf/H3_AP202505071668887459_1.pdf"          # 国金证券深度报告（引头豹研究院）
HUAJING = "https://caifuhao.eastmoney.com/news/20260723141132409167930"   # 华经产业研究院
ASKCI = "https://www.askci.com/News/List/tag-%E4%BD%93%E5%A4%96%E8%AF%8A%E6%96%AD"
SANSURE = "https://vip.stock.finance.sina.com.cn/corp/view/vCB_AllBulletinDetail.php?stockid=688289&id=12388846"
AH_JC = "http://www.ahyycg.cn/detail/categoryDetail.html?id=3957"
JX_YBJ = "https://ybj.jiangxi.gov.cn/jxsylbzj/col/col28422/content/content_2009575431161778176.html"
NHSA_ZN = "https://www.nhsa.gov.cn/art/2026/8/14/art_14_21766.html"
YIFAHUI = "https://www.yifahui.com/26205.html"
NHC = "https://www.nhc.gov.cn/guihuaxxs/c100132/202608/3fadb2a3da314bb688e848598f6ac6df.shtml"
CLS = "https://www.cls.cn/detail/2244772"
TNGS = "https://www.kanhuxi.com/documents/%E5%AD%A6%E6%9C%AF/9758"

GB = "研究报告口径：厂商收入（试剂+仪器+耗材+服务），近似出厂价（ex-factory），不含终端加价"
CN_RMB = "行业规模口径：人民币亿元，含试剂+仪器+服务，未严格区分出厂/终端，不可与全球美元口径直接相加"

global_rows = [
    dict(segment="分子诊断（总盘）", year=2025, value=188.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Molecular Diagnostics Market 2026-2033》",
         source_url=GVR_MDX, publish_date="2025-12"),
    dict(segment="分子诊断（总盘）", year=2026, value=194.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Molecular Diagnostics Market 2026-2033》",
         source_url=GVR_MDX, publish_date="2025-12"),
    dict(segment="PCR 合计（qPCR+端点PCR+dPCR）", year=2025, value=106.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Real-time PCR, Digital PCR And End-point PCR Market 2026-2033》",
         source_url=GVR_PCR, publish_date="2026-07"),
    dict(segment="PCR 合计（qPCR+端点PCR+dPCR）", year=2026, value=115.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Real-time PCR, Digital PCR And End-point PCR Market 2026-2033》",
         source_url=GVR_PCR, publish_date="2026-07"),
    dict(segment="qPCR（实时荧光PCR/RT-qPCR）", year=2025, value=66.7, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Precedence Research《Real-time PCR Market 2026-2035》",
         source_url=PREC_QPCR, publish_date="2026-09-11"),
    dict(segment="qPCR（实时荧光PCR/RT-qPCR）", year=2026, value=70.1, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Precedence Research《Real-time PCR Market 2026-2035》",
         source_url=PREC_QPCR, publish_date="2026-09-11"),
    dict(segment="dPCR（数字PCR）", year=2025, value=8.18, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Polaris Market Research《Digital PCR Market 2026-2034》（原值 817.76 百万美元）",
         source_url=POLARIS_DPCR, publish_date="2026-10"),
    dict(segment="dPCR（数字PCR）", year=2026, value=9.36, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Polaris Market Research《Digital PCR Market 2026-2034》（原值 936.03 百万美元）",
         source_url=POLARIS_DPCR, publish_date="2026-10"),
    dict(segment="NGS（高通量测序）", year=2025, value=113.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Next Generation Sequencing Market 2026-2033》",
         source_url=GVR_NGS, publish_date="2026-06"),
    dict(segment="NGS（高通量测序）", year=2026, value=133.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Next Generation Sequencing Market 2026-2033》",
         source_url=GVR_NGS, publish_date="2026-06"),
    dict(segment="等温扩增（INAAT，含 LAMP/RPA/SDA/NEAR）", year=2022, value=42.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《Isothermal Nucleic Acid Amplification Technology Market》",
         source_url=GVR_INAAT, publish_date="2023-06"),
    dict(segment="等温扩增（INAAT，含 LAMP/RPA/SDA/NEAR）", year=2026, value=67.0, unit="亿美元", scope="全球",
         price_basis=GB + "；注：该 2026 值为 2023 年发布的预测，未经近期更新，仅作量级参考",
         source_name="Grand View Research《Isothermal Nucleic Acid Amplification Technology Market》",
         source_url=GVR_INAAT, publish_date="2023-06"),
    dict(segment="CRISPR 检测", year=2025, value=35.1, unit="亿美元", scope="全球",
         price_basis=GB + "；注：各家口径分歧极大（0.68~51 亿美元区间），本值取中位口径，勿与外行相加",
         source_name="Mordor Intelligence《CRISPR Diagnostics Market 2025-2030》",
         source_url=MORDOR_CRISPR, publish_date="2025-03-25"),
    dict(segment="其他分子（甲基化）", year=2025, value=18.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《DNA Methylation Market 2026-2033》",
         source_url=GVR_METH, publish_date="2025-10"),
    dict(segment="其他分子（甲基化）", year=2026, value=21.0, unit="亿美元", scope="全球",
         price_basis=GB, source_name="Grand View Research《DNA Methylation Market 2026-2033》",
         source_url=GVR_METH, publish_date="2025-10"),
]

china_rows = [
    dict(segment="分子诊断（总盘）", year=2023, value=233.0, unit="亿元", scope="中国",
         price_basis=CN_RMB, source_name="国金证券深度报告（数据源：头豹研究院《2024年中国流式荧光行业报告》）",
         source_url=CIC, publish_date="2025-05-07"),
    dict(segment="分子诊断（总盘）", year=2028, value=627.0, unit="亿元", scope="中国",
         price_basis=CN_RMB, source_name="国金证券深度报告（数据源：头豹研究院；原文为 2028E，5 年复合增速 21.9%）",
         source_url=CIC, publish_date="2025-05-07"),
    dict(segment="肿瘤分子检测", year=2024, value=87.0, unit="亿元", scope="中国",
         price_basis=CN_RMB, source_name="华经产业研究院《2026年全球及中国肿瘤分子检测行业现状及展望》",
         source_url=HUAJING, publish_date="2026-07-23"),
    dict(segment="体外诊断（IVD）总盘（分子占比参照分母）", year=2025, value=1295.0, unit="亿元", scope="中国",
         price_basis=CN_RMB, source_name="中商产业研究院《2026-2031全球及中国体外诊断（IVD）产品和测试行业深度研究报告》",
         source_url=ASKCI, publish_date="2026-08-12"),
]

segments = [
    dict(name="qPCR（含 RT-qPCR）", share_2025="全球：PCR 技术合计占分子诊断 62.2%（GVR，2025）；中国：分子诊断占 IVD 约 15%（2023 实际），2025E 16.4%、2028E 17.8%（头豹研究院/国金证券）",
         cagr="4.99%（2026-2035，Precedence，qPCR 单列）；PCR 合计 9.2%（2026-2033，GVR）",
         trend="稳定", evidence="绝对额最大、增速最低；价格端被集采与收费治理持续压缩，量增价减（见 price_policy 圣湘 2025 数据）",
         url=GVR_MDX),
    dict(name="dPCR（数字PCR）", share_2025="无公开份额（各家报告未拆分至全球分子诊断总盘）",
         cagr="14.71%（2026-2034，Polaris）", trend="扩张",
         evidence="2025 年 8.18 亿美元 → 2026 年 9.36 亿美元；增速约为 qPCR 的 3 倍，绝对拷贝数定量在肿瘤 MRD/液体活检中替代部分 qPCR 场景",
         url=POLARIS_DPCR),
    dict(name="NGS（tNGS/mNGS 内含）", share_2025="无公开份额（GVR 未按应用拆分至分子诊断总盘）",
         cagr="18.0%（2026-2033，GVR）", trend="扩张",
         evidence="2025 年 113 亿美元 → 2026 年 133 亿美元；中国侧 NGS 应用以肿瘤伴随诊断与病原为主，tNGS 对 mNGS 形成成本替代（见 tech_shift）",
         url=GVR_NGS),
    dict(name="tNGS / mNGS（单列）", share_2025="无（未取得可核的独立市场规模，见 gaps）",
         cagr="无（未取得）", trend="tNGS 扩张 / mNGS 相对收缩",
         evidence="中华医学杂志 tNGS 共识：tNGS 测序量仅为 mNGS 的百分之一、成本低、同一流程可检 DNA+RNA，临床送检场景由 mNGS 向 tNGS 迁移",
         url=TNGS),
    dict(name="等温扩增（LAMP/RPA）", share_2025="无公开份额",
         cagr="12.3%（2023-2030，GVR INAAT）；LAMP 单列 12.11%（2026-2031，Mordor）", trend="扩张",
         evidence="基数小（INAAT 2022 年 42 亿美元），主要增量来自基层/居家/现场检测；中国分子 POCT 仍处早期",
         url=GVR_INAAT),
    dict(name="CRISPR 检测", share_2025="无公开份额",
         cagr="17.19%（2025-2030，Mordor）", trend="扩张（高不确定）",
         evidence="2025 年 35.1 亿美元；但同业口径从 0.68 到 51 亿美元，产业化落地以科研与应急场景为主，商业化装机有限",
         url=MORDOR_CRISPR),
    dict(name="其他分子（甲基化/基因分型）", share_2025="无公开份额",
         cagr="15.0%（2026-2033，GVR 甲基化）", trend="扩张",
         evidence="甲基化 2025 年 18 亿美元 → 2026 年 21 亿美元；结直肠癌早筛与泛癌早筛为主要驱动；基因分型未取得独立可核数据",
         url=GVR_METH),
]

price_policy = [
    dict(item="分子诊断试剂集采（HPV-DNA，安徽牵头 25 省联盟）",
         change="拟中选平均降幅 53.9%，最高降幅 73%；五大类中 HPV 核酸检测属分子诊断；预计年省采购金额近 60 亿元",
         evidence="安徽省医药价格和集中采购中心转载大皖新闻：25 省（区、兵团）体外诊断试剂省际联盟集采拟中选结果，120 家企业拟中选",
         url=AH_JC, date="2024-01-03"),
    dict(item="28 省 IVD 集采落地节奏（肿瘤标志物 16 项、甲功等，免疫为主，非分子）",
         change="2026-02-01 零时起执行中选结果，采购周期 2 年（第一年 2026-02-01 至 2027-01-31）；对同院分子项目形成价格锚定压力",
         evidence="江西省医疗保障局《关于做好安徽牵头2024年体外诊断试剂省际联盟集中带量采购中选结果我省落地执行工作的通知》",
         url=JX_YBJ, date="2026-01-09"),
    dict(item="检验类医疗服务价格项目立项指南（终端收费）",
         change="整合为 662 个主项目/114 个加收项/7 个扩展项，覆盖分子诊断；联检按分档折扣计价：≤5 项按 80%、≤10 项按 70%、>10 项按 60%；缺数减收每项 10%、单次最高 5 元；原则上不再按方法学差异定价",
         evidence="国家医保局印发《检验类医疗服务价格项目立项指南（试行）》及行业解读（医法汇）",
         url=NHSA_ZN, date="2026-08-14"),
    dict(item="自产检测试剂增值税率上调（出厂价直接冲击）",
         change="2025 年起由 3% 上调至 13%，与集采、医保支付改革、检验收费治理、检验套餐解绑叠加，导致试剂平均销售单价下降",
         evidence="圣湘生物 2025 年年度报告信息披露监管问询函回复：分子试剂收入 10.05 亿元（2024 年 12.74 亿元，-21.10%）",
         url=SANSURE, date="2026（2025 年报问询回复）"),
    dict(item="量价拆分：量增价减（企业级实证，出厂口径）",
         change="2025 年试剂成本同比 +0.35 亿元系销售人份数增加，但试剂收入同比 -2.7 亿元 → 单价下降抵消了量的增长；分子试剂 10.05 亿元、仪器 0.70 亿元（-16.13%）、第三方检测 0.47 亿元（-28.57%）",
         evidence="圣湘生物 2025 年报问询回复（上交所问询）",
         url=SANSURE, date="2026（2025 年报问询回复）"),
    dict(item="检测量基准（非分子专项）",
         change="2025 年全国医疗卫生机构总诊疗人次 106.5 亿，同比 +5.0%；入院人次 29910.7 万，同比 -1281.3 万（-4.1%）→ 门诊量增、住院量减，分子检测的住院端需求承压",
         evidence="国家卫生健康委《2025年我国卫生健康事业发展统计公报》及解读稿",
         url=NHC, date="2026-08"),
    dict(item="DRG/DIP 2.0 与检验套餐解绑、结果互认对终端量的影响",
         change="IQVIA 判断 2025 年中国 IVD「量价齐跌」：价格端集采+价格治理推动下行，需求端检验套餐解绑与检验结果互认直接导致检测量收缩；集采亦带来整体 IVD 市场规模收缩",
         evidence="财联社《体外诊断2025：行业承压 企业多路径求变｜年终盘点》引 IQVIA 艾昆纬大中华区负责人杨凯",
         url=CLS, date="2025-12"),
    dict(item="分子诊断终端价 vs 出厂价的量化缺口",
         change="未取得公开的「元/测试」终端价序列；仅取得企业出厂端收入与人份数方向性证据 → 单价绝对值不写入",
         evidence="见 gaps：无公开分子检测单价时间序列",
         url="", date=""),
]

tech_shift = [
    dict(**{"from": "mNGS（鸟枪法宏基因组）", "to": "tNGS（靶向高通量测序）"},
         evidence="tNGS 测序量仅为 mNGS 的百分之一，成本低、可同流程检 DNA+RNA；专家共识明确二者送检场景分工，感染病原检测由 mNGS 向 tNGS 迁移",
         url=TNGS, date="2024-12-22"),
    dict(**{"from": "低多重/单靶标 PCR", "to": "超多重 PCR 与联检 panel"},
         evidence="检验类立项指南对联检设分档折扣（>10 项按 60% 计价），政策承认联检边际成本递减，医院端有动力上多重；企业侧圣湘 2025 年获批 10 余款单检及小联检产品",
         url=NHSA_ZN, date="2026-08-14"),
    dict(**{"from": "按方法学差异定价（老方法学溢价）", "to": "按服务产出统一定价"},
         evidence="立项指南「重点解决检验方法学价格差异化问题」「原则上不按方法学」→ 电泳、老式杂交等低通量方法学失去收费溢价空间",
         url=YIFAHUI, date="2026（指南发布后解读）"),
    dict(**{"from": "qPCR 单平台定量", "to": "dPCR 绝对定量（MRD/液体活检）"},
         evidence="dPCR 2026-2034 CAGR 14.71%，显著高于 qPCR 的 4.99%；dPCR 2025 年 8.18 亿美元基数虽小但增速约为 qPCR 三倍",
         url=POLARIS_DPCR, date="2026-10"),
    dict(**{"from": "进口测序仪（Illumina 主导）", "to": "国产测序仪（华大智造/真迈/赛陆）"},
         evidence="国金证券：商务部外资禁令下国产测序仪份额有望受益；2023 年华大智造国内新增装机 695 台、份额 47.3%，Illumina 389 台、26.5%",
         url=CIC, date="2025-05-07"),
    dict(**{"from": "生化/免疫（化学发光）为增长主线", "to": "分子诊断为结构性增量"},
         evidence="头豹/国金：分子诊断占中国 IVD 比重由 2023 年 15% 升至 2028E 17.8%；同期生化受集采冲击最直接",
         url=CIC, date="2025-05-07"),
]

gaps = [
    "中国 2025 / 2026E / 2027E 分子诊断绝对额（亿元）：公开摘要均只给「2023 实际 233 亿元 + 2028E 627 亿元」（头豹/国金）或「2024 实际 87 亿元（仅肿瘤分子检测）」，未检索到 2025-2027 年度点估计，故 value 不写。",
    "可用的两项间接口径为：中国 IVD 2025 年 1295 亿元（中商，2026-08-12）× 分子诊断占比 16.4%（2025E，头豹/国金）。二者相乘属自行推算，按「不许估」规则不写入 value，仅供内部参考。",
    "Global Market Insights《China Molecular Diagnostics Market 2025-2034》（2025-11）称 2024 年 12.4 亿美元、2025 年 12.9 亿美元，但原页 Cloudflare 403/验证拦截，无法归档取证；且该口径（约 92 亿元）与头豹 233 亿元（2023）差 2.5 倍以上，不采用。",
    "tNGS 与 mNGS 的独立市场规模（全球/中国）：未取得带完整六要素（value/unit/year/scope/来源/发布日期）的数据，仅取得技术替代的定性证据。",
    "等温扩增中的 RPA 单列规模：仅取得 LAMP 单列（Mordor：2025 年 0.76 亿美元、2026 年 0.86 亿美元），但该页未标注更新日期，按硬规则不写入数字。",
    "基因分型（genotyping）独立市场规模：未检索到可核来源，未写入。",
    "分子检测「元/测试」终端单价时间序列：无公开来源；仅有企业出厂端收入与人份数方向证据（圣湘），单价绝对值不写入。",
    "分子检测量（人次/测试数）绝对值：卫健委仅公布总诊疗人次（2025 年 106.5 亿），无分子检测项目级统计；NMPA/医保局未公开分子检测总量。",
    "全球分子诊断 2027 年点估计：GVR / Fortune / Polaris / Precedence 摘要均只发布 2025、2026 与 2033/2034/2035 终点值，无 2027 年度值，故 2027 行全部空缺而非估算。",
    "CRISPR 检测全球规模口径分歧：TrendX 0.68 亿、Mordor 35.1 亿、Precedence 37.9 亿、ResearchAndMarkets 51 亿美元（2025），最大差 75 倍，本文件仅取 Mordor 中位值并要求不得与其他细分相加。",
    "中国分子诊断集采：目前仅 HPV-DNA 纳入省际联盟分子品类，其余分子项目（呼吸道多重、肿瘤伴随诊断、mNGS/tNGS）尚未进入集采，价格影响以医疗服务价格治理与 DRG/DIP 为主，量化幅度未公开。",
]

doc = {
    "meta": {
        "title": "分子诊断市场容量（全球+中国）2025 实际 / 2026E / 2027E",
        "built": "2026-10-18",
        "currency_note": "全球以美元（亿美元）计，中国以人民币（亿元）计，二者不可相加或换算后合并",
        "archive_dir": "资料/文献与专利/2025-2027/market/",
        "rule": "每个数字均带 value/unit/year/scope/price_basis/source_name/source_url/publish_date；缺项不写数字，转 gaps",
    },
    "caliber_notes": [
        "出厂价 vs 终端价：本文件 global/china 两组的金额均为「厂商收入口径」（试剂+仪器+耗材+服务），近似出厂价，不含医院端加价；price_policy 中的集采降幅为「试剂采购价（入院价）」，检验类立项指南的折扣与减收为「终端收费」，三类价格不可混算。",
        "全球 vs 中国：global 组单位为亿美元、scope=全球；china 组单位为亿元、scope=中国；不得把中国数值换算后并入全球，也不得用全球份额乘中国总盘。",
        "「市场份额」类数字（如 PCR 占 62.2%、分子占 IVD 16.4%）只在 segments.share_2025 中以文本呈现，未换算为金额。",
        "不同研究机构对同一细分口径差异可达数倍（如全球分子诊断总盘 2025 年：GVR 188 亿、Fortune 157.8 亿、GMI 185 亿美元），本文件以 Grand View Research 为全球主口径，其余仅作交叉校验，不做加权平均。",
        "2025 年为中国「量价齐跌」年：集采+收费治理+套餐解绑+结果互认+增值税率上调（3%→13%）四重叠加，金额同比可比性弱于往年。",
    ],
    "global": global_rows,
    "china": china_rows,
    "segments": segments,
    "price_policy": price_policy,
    "tech_shift": tech_shift,
    "gaps": gaps,
}

with open(OUT, "w", encoding="utf-8") as f:
    json.dump(doc, f, ensure_ascii=False, indent=2)

# 校验
data = json.load(open(OUT, encoding="utf-8"))
req = ["value", "unit", "year", "scope", "price_basis", "source_name", "source_url", "publish_date"]
bad = []
sourced = 0
for grp in ("global", "china"):
    for r in data[grp]:
        missing = [k for k in req if r.get(k) in (None, "")]
        if missing:
            bad.append((grp, r.get("segment"), r.get("year"), missing))
        elif r.get("value") is not None:
            sourced += 1
print(json.dumps({
    "file": OUT,
    "global_rows": len(data["global"]),
    "china_rows": len(data["china"]),
    "segments": len(data["segments"]),
    "price_policy": len(data["price_policy"]),
    "tech_shift": len(data["tech_shift"]),
    "gaps": len(data["gaps"]),
    "sourced_numbers": sourced,
    "rows_failing_six_fields": bad,
    "bytes": os.path.getsize(OUT),
}, ensure_ascii=False, indent=1))
