{"id":2819,"date":"2026-01-15T01:25:50","date_gmt":"2026-01-14T17:25:50","guid":{"rendered":"https:\/\/www.3546.com.tw\/win\/?p=2819"},"modified":"2026-01-15T12:31:58","modified_gmt":"2026-01-15T04:31:58","slug":"%e9%b4%bf%e5%ad%90%e5%b7%b4%e6%8b%89%e7%b1%b3%e5%93%a5%e7%97%85%e6%af%92-%e6%b7%b1%e5%85%a5%e4%ba%86%e8%a7%a3-ppmv-1%ef%bc%9a%e6%8a%98%e7%bf%bc%e7%9a%84%e6%b2%89%e9%bb%98%e6%ae%ba%e6%89%8b","status":"publish","type":"post","link":"https:\/\/www.3546.com.tw\/win\/%e8%b3%bd%e9%b4%bf%e5%81%a5%e5%ba%b7\/%e9%b4%bf%e5%ad%90%e5%b7%b4%e6%8b%89%e7%b1%b3%e5%93%a5%e7%97%85%e6%af%92-%e6%b7%b1%e5%85%a5%e4%ba%86%e8%a7%a3-ppmv-1%ef%bc%9a%e6%8a%98%e7%bf%bc%e7%9a%84%e6%b2%89%e9%bb%98%e6%ae%ba%e6%89%8b\/","title":{"rendered":"\u9d3f\u5b50\u5df4\u62c9\u7c73\u54e5\u75c5\u6bd2-\u6df1\u5165\u4e86\u89e3 PPMV-1\uff1a\u6298\u7ffc\u7684\u6c89\u9ed8\u6bba\u624b"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"zh-Hant\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>\u9d3f\u5b50\u5df4\u62c9\u7c73\u54e5\u75c5\u6bd2 (PPMV-1) \u6df1\u5ea6\u5831\u544a<\/title>\n    <!-- Tailwind CSS -->\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <!-- Chart.js -->\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n    \n    <!-- Palette: Scientific Vibrance -->\n    <!-- Primary Blue: #1E40AF (700) -->\n    <!-- Accent Amber: #F59E0B (500) -->\n    <!-- Success Green: #10B981 (500) -->\n    <!-- Danger Red: #EF4444 (500) -->\n    <!-- Background: #F3F4F6 (100) -->\n\n    <style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Noto+Sans+TC:wght@300;400;700;900&display=swap');\n\n        body {\n            font-family: 'Noto Sans TC', sans-serif;\n            background-color: #F3F4F6;\n            color: #1F2937;\n        }\n\n        \/* Chart Container Styling *\/\n        .chart-container {\n            position: relative;\n            width: 100%;\n            max-width: 600px;\n            margin-left: auto;\n            margin-right: auto;\n            height: 300px;\n            max-height: 400px;\n        }\n\n        @media (min-width: 768px) {\n            .chart-container {\n                height: 350px;\n            }\n        }\n\n        \/* Custom Scrollbar *\/\n        ::-webkit-scrollbar {\n            width: 8px;\n        }\n        ::-webkit-scrollbar-track {\n            background: #e5e7eb;\n        }\n        ::-webkit-scrollbar-thumb {\n            background: #1E40AF;\n            border-radius: 4px;\n        }\n        ::-webkit-scrollbar-thumb:hover {\n            background: #1e3a8a;\n        }\n\n        \/* Diagram connectors using borders (NO SVG) *\/\n        .connector-line {\n            width: 2px;\n            background-color: #9CA3AF;\n            flex-grow: 1;\n            min-height: 20px;\n        }\n        .arrow-down {\n            width: 0; \n            height: 0; \n            border-left: 6px solid transparent;\n            border-right: 6px solid transparent;\n            border-top: 8px solid #9CA3AF;\n            margin: 0 auto;\n        }\n        .arrow-right {\n            width: 0; \n            height: 0; \n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-left: 8px solid #9CA3AF;\n        }\n\n        .card-hover {\n            transition: transform 0.3s ease, box-shadow 0.3s ease;\n        }\n        .card-hover:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n        }\n    <\/style>\n<\/head>\n<body class=\"antialiased\">\n\n    <!-- Header Section -->\n    <header class=\"bg-blue-800 text-white shadow-lg relative overflow-hidden\">\n        <div class=\"absolute inset-0 opacity-10 bg-[url('https:\/\/www.transparenttextures.com\/patterns\/cubes.png')]\"><\/div>\n        <div class=\"container mx-auto px-6 py-12 relative z-10 text-center\">\n            <div class=\"inline-block bg-amber-500 text-blue-900 text-xs font-bold px-3 py-1 rounded-full mb-4 uppercase tracking-wide\">\u79bd\u985e\u5065\u5eb7\u5831\u544a<\/div>\n            <h1 class=\"text-4xl md:text-6xl font-black mb-4 leading-tight tracking-tight\">\u9d3f\u5b50\u5df4\u62c9\u7c73\u54e5\u75c5\u6bd2<\/h1>\n            <h2 class=\"text-xl md:text-2xl font-light text-blue-100\">\u6df1\u5165\u4e86\u89e3 PPMV-1\uff1a\u6298\u7ffc\u7684\u6c89\u9ed8\u6bba\u624b<\/h2>\n        <\/div>\n    <\/header>\n\n    <!-- Main Content Container -->\n    <main class=\"container mx-auto px-4 py-12 space-y-16 max-w-7xl\">\n\n        <!-- Introduction -->\n        <section class=\"max-w-4xl mx-auto text-center\">\n            <p class=\"text-lg md:text-xl text-gray-700 leading-relaxed text-justify md:text-center\">\n                <strong class=\"text-blue-800\">\u9d3f\u5b50\u5df4\u62c9\u7c73\u54e5\u75c5\u6bd2\u7b2c1\u578b (PPMV-1)<\/strong> \u662f\u4e00\u7a2e\u5f71\u97ff\u9d3f\u5b50\u8207\u6591\u9ce9\u7684\u9ad8\u5ea6\u50b3\u67d3\u6027\u75c5\u6bd2\u3002\u5b83\u5e38\u88ab\u8996\u70ba\u9d3f\u5b50\u7684\u300c\u65b0\u57ce\u75c5\u300d\uff0c\u6703\u5f15\u767c\u6bc0\u6ec5\u6027\u7684\u795e\u7d93\u75c7\u72c0\u8207\u9ad8\u767c\u75c5\u7387\u3002\u5c0d\u65bc\u8cfd\u9d3f\u611b\u597d\u8005\u8207\u4fdd\u80b2\u4eba\u58eb\u800c\u8a00\uff0c\u4e86\u89e3\u5176\u50b3\u64ad\u9014\u5f91\u8207\u9810\u9632\u63aa\u65bd\u81f3\u95dc\u91cd\u8981\u3002\n            <\/p>\n        <\/section>\n\n        <!-- Section 1: Symptomatology (Doughnut Chart) -->\n        <section>\n            <div class=\"grid grid-cols-1 md:grid-cols-2 gap-12 items-center\">\n                <div class=\"order-2 md:order-1\">\n                    <h3 class=\"text-3xl font-bold text-gray-800 mb-4 border-l-4 border-amber-500 pl-4\">\u8b58\u5225\u81e8\u5e8a\u75c7\u72c0<\/h3>\n                    <p class=\"text-gray-600 mb-6\">\n                        PPMV-1 \u4ee5\u5176\u795e\u7d93\u7cfb\u7d71\u7834\u58de\u529b\u805e\u540d\u3002\u96d6\u7136\u6d88\u5316\u9053\u554f\u984c\u901a\u5e38\u6700\u5148\u51fa\u73fe\uff0c\u4f46\u300c\u6b6a\u982d\u300d\u6216\u4ef0\u982d\u89c0\u661f\uff08\u659c\u9838\uff09\u662f\u5176\u6700\u5177\u4ee3\u8868\u6027\u7684\u8b66\u8a0a\u3002\n                    <\/p>\n                    <ul class=\"space-y-4\">\n                        <li class=\"flex items-start\">\n                            <span class=\"text-2xl mr-3\">\ud83e\udde0<\/span>\n                            <div>\n                                <strong class=\"text-gray-800 block\">\u795e\u7d93\u75c7\u72c0 (55%)<\/strong>\n                                <span class=\"text-sm text-gray-500\">\u7fc5\u8180\u986b\u6296\u3001\u5931\u53bb\u5e73\u8861\u3001\u6b6a\u982d\u626d\u9838\u3001\u55ae\u5074\u6216\u96d9\u5074\u9ebb\u75fa\u3002<\/span>\n                            <\/div>\n                        <\/li>\n                        <li class=\"flex items-start\">\n                            <span class=\"text-2xl mr-3\">\ud83d\udca7<\/span>\n                            <div>\n                                <strong class=\"text-gray-800 block\">\u6d88\u5316\u9053\u75c7\u72c0 (35%)<\/strong>\n                                <span class=\"text-sm text-gray-500\">\u591a\u5c3f\uff08\u4e00\u7058\u6c34\uff09\u4ee5\u53ca\u5178\u578b\u7684\u9bae\u7da0\u8272\u6c34\u4fbf\u3002<\/span>\n                            <\/div>\n                        <\/li>\n                        <li class=\"flex items-start\">\n                            <span class=\"text-2xl mr-3\">\ud83d\ude34<\/span>\n                            <div>\n                                <strong class=\"text-gray-800 block\">\u7cbe\u795e\u840e\u9761 (10%)<\/strong>\n                                <span class=\"text-sm text-gray-500\">\u7fbd\u6bdb\u84ec\u9b06\u3001\u4e0d\u9858\u79fb\u52d5\u3001\u53ad\u98df\u3002<\/span>\n                            <\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"order-1 md:order-2 bg-white p-6 rounded-xl shadow-md card-hover\">\n                    <h4 class=\"text-center text-gray-500 text-sm font-bold uppercase mb-4\">\u75c7\u72c0\u51fa\u73fe\u983b\u7387\u5206\u4f48<\/h4>\n                    <div class=\"chart-container\">\n                        <canvas id=\"symptomsChart\"><\/canvas>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Section 2: Transmission Flow (HTML Diagram) -->\n        <section class=\"bg-white rounded-2xl shadow-lg p-8 md:p-12\">\n            <div class=\"text-center mb-12\">\n                <h3 class=\"text-3xl font-bold text-gray-800 mb-2\">\u50b3\u67d3\u5faa\u74b0\u93c8<\/h3>\n                <p class=\"text-gray-600\">\u75c5\u6bd2\u900f\u904e\u7cde\u4fbf\u8207\u547c\u5438\u9053\u5206\u6ccc\u7269\u6392\u51fa\uff0c\u9020\u6210\u9d3f\u820d\u74b0\u5883\u7684\u9ad8\u5ea6\u6c61\u67d3\u3002<\/p>\n            <\/div>\n\n            <!-- Responsive Flowchart -->\n            <div class=\"flex flex-col md:flex-row justify-center items-center space-y-4 md:space-y-0 md:space-x-4\">\n                \n                <!-- Step 1 -->\n                <div class=\"flex flex-col items-center text-center w-full md:w-1\/4 group\">\n                    <div class=\"w-20 h-20 bg-red-100 text-red-600 rounded-full flex items-center justify-center text-4xl mb-4 shadow-sm group-hover:bg-red-200 transition\">\ud83d\udc26<\/div>\n                    <h4 class=\"font-bold text-gray-800\">\u611f\u67d3\u75c5\u9d3f<\/h4>\n                    <p class=\"text-xs text-gray-500 mt-2\">\u900f\u904e\u7cde\u4fbf\u3001\u773c\u775b\u53ca\u9ce5\u5599\u5206\u6ccc\u7269\u6392\u51fa\u5927\u91cf\u75c5\u6bd2\u3002<\/p>\n                <\/div>\n\n                <!-- Connector -->\n                <div class=\"flex flex-col md:flex-row items-center justify-center h-12 md:h-auto w-full md:w-auto\">\n                    <div class=\"h-full md:h-1 w-1 md:w-12 bg-gray-300\"><\/div>\n                    <div class=\"arrow-down md:hidden\"><\/div>\n                    <div class=\"hidden md:block arrow-right border-l-gray-300\"><\/div>\n                <\/div>\n\n                <!-- Step 2 -->\n                <div class=\"flex flex-col items-center text-center w-full md:w-1\/4 group\">\n                    <div class=\"w-20 h-20 bg-amber-100 text-amber-600 rounded-full flex items-center justify-center text-4xl mb-4 shadow-sm group-hover:bg-amber-200 transition\">\ud83d\udca9<\/div>\n                    <h4 class=\"font-bold text-gray-800\">\u74b0\u5883\u6c61\u67d3<\/h4>\n                    <p class=\"text-xs text-gray-500 mt-2\">\u7c89\u5875\u3001\u98fc\u6599\u3001\u98f2\u6c34\u8207\u9d3f\u5177\u6210\u70ba\u75c5\u6bd2\u50b3\u64ad\u5a92\u4ecb\u3002<\/p>\n                <\/div>\n\n                <!-- Connector -->\n                <div class=\"flex flex-col md:flex-row items-center justify-center h-12 md:h-auto w-full md:w-auto\">\n                    <div class=\"h-full md:h-1 w-1 md:w-12 bg-gray-300\"><\/div>\n                    <div class=\"arrow-down md:hidden\"><\/div>\n                    <div class=\"hidden md:block arrow-right border-l-gray-300\"><\/div>\n                <\/div>\n\n                <!-- Step 3 -->\n                <div class=\"flex flex-col items-center text-center w-full md:w-1\/4 group\">\n                    <div class=\"w-20 h-20 bg-blue-100 text-blue-600 rounded-full flex items-center justify-center text-4xl mb-4 shadow-sm group-hover:bg-blue-200 transition\">\ud83d\udc44<\/div>\n                    <h4 class=\"font-bold text-gray-800\">\u651d\u5165\u8207\u5438\u5165<\/h4>\n                    <p class=\"text-xs text-gray-500 mt-2\">\u5065\u5eb7\u9d3f\u5b50\u5544\u98df\u53d7\u6c61\u67d3\u98fc\u6599\u6216\u5438\u5165\u5e36\u6bd2\u7c89\u5875\u800c\u611f\u67d3\u3002<\/p>\n                <\/div>\n\n                <!-- Connector -->\n                <div class=\"flex flex-col md:flex-row items-center justify-center h-12 md:h-auto w-full md:w-auto\">\n                    <div class=\"h-full md:h-1 w-1 md:w-12 bg-gray-300\"><\/div>\n                    <div class=\"arrow-down md:hidden\"><\/div>\n                    <div class=\"hidden md:block arrow-right border-l-gray-300\"><\/div>\n                <\/div>\n\n                <!-- Step 4 -->\n                <div class=\"flex flex-col items-center text-center w-full md:w-1\/4 group\">\n                    <div class=\"w-20 h-20 bg-gray-800 text-white rounded-full flex items-center justify-center text-4xl mb-4 shadow-sm group-hover:bg-gray-700 transition\">\ud83e\udda0<\/div>\n                    <h4 class=\"font-bold text-gray-800\">\u5168\u8eab\u6027\u611f\u67d3<\/h4>\n                    <p class=\"text-xs text-gray-500 mt-2\">\u75c5\u6bd2\u65bc\u814e\u81df\u8207\u8166\u90e8\u8907\u88fd\u3002\u611f\u67d3\u5f8c4-21\u5929\u51fa\u73fe\u75c7\u72c0\u3002<\/p>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Section 3: Timeline (Line Chart) -->\n        <section>\n            <div class=\"mb-8\">\n                <h3 class=\"text-3xl font-bold text-gray-800 mb-2 border-l-4 border-blue-600 pl-4\">\u75c5\u6bd2\u611f\u67d3\u6642\u9593\u8ef8<\/h3>\n                <p class=\"text-gray-600\">\n                    \u4e86\u89e3\u6f5b\u4f0f\u671f\u8207\u6392\u6bd2\u671f\u5c0d\u65bc\u5236\u5b9a\u9694\u96e2\u8a08\u756b\u81f3\u95dc\u91cd\u8981\u3002\u5916\u89c0\u770b\u4f3c\u5065\u5eb7\u7684\u9d3f\u5b50\u53ef\u80fd\u5728\u6578\u9031\u5167\u6301\u7e8c\u6392\u51fa\u75c5\u6bd2\u3002\n                <\/p>\n            <\/div>\n            <div class=\"bg-white p-6 rounded-xl shadow-md card-hover\">\n                <div class=\"chart-container max-w-4xl mx-auto\">\n                    <canvas id=\"timelineChart\"><\/canvas>\n                <\/div>\n                <div class=\"mt-4 text-center text-sm text-gray-500\">\n                    *\u75c5\u6bd2\u6392\u6bd2\u671f\u53ef\u80fd\u9577\u90544\u9031\uff0c\u90e8\u5206\u6848\u4f8b\u751a\u81f3\u66f4\u4e45\u3002\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Section 4: Survival & Vaccination (Bar Chart) -->\n        <section class=\"grid grid-cols-1 md:grid-cols-3 gap-8\">\n            <div class=\"md:col-span-1 space-y-6\">\n                <div class=\"bg-blue-900 text-white p-6 rounded-xl shadow-lg\">\n                    <h4 class=\"text-2xl font-bold mb-4\">\u75ab\u82d7\u7684\u95dc\u9375\u4f5c\u7528<\/h4>\n                    <p class=\"mb-4 text-blue-200\">PPMV-1 \u76ee\u524d\u7121\u7279\u6548\u85e5\uff0c\u50c5\u80fd\u9032\u884c\u652f\u6301\u6027\u7642\u6cd5\u3002\u75ab\u82d7\u63a5\u7a2e\u662f\u552f\u4e00\u53ef\u9760\u7684\u9632\u8b77\u7db2\u3002<\/p>\n                    <div class=\"flex items-center space-x-3\">\n                        <span class=\"text-4xl\">\ud83d\udc89<\/span>\n                        <div>\n                            <span class=\"block font-bold text-lg\">\u5e74\u5ea6\u88dc\u5f37\u6ce8\u5c04<\/span>\n                            <span class=\"text-xs text-blue-300\">\u5efa\u8b70\u6240\u6709\u8cfd\u9d3f\u8207\u89c0\u8cde\u9d3f\u5b9a\u671f\u63a5\u7a2e\u3002<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"bg-amber-100 p-6 rounded-xl border-l-4 border-amber-500\">\n                    <h5 class=\"font-bold text-amber-800 mb-2\">\u652f\u6301\u6027\u7642\u6cd5<\/h5>\n                    <ul class=\"text-sm text-amber-900 space-y-2 list-disc list-inside\">\n                        <li>\u7acb\u5373\u9694\u96e2\u75c5\u9d3f<\/li>\n                        <li>\u4eba\u5de5\u9935\u98df (\u7a2e\u5b50\/\u8c4c\u8c46)<\/li>\n                        <li>\u98f2\u6c34\u88dc\u5145\u80fd\u5920\u96fb\u89e3\u8cea<\/li>\n                        <li>\u6e1b\u5c11\u7dca\u8feb (\u7f6e\u65bc\u6697\u7bb1)<\/li>\n                    <\/ul>\n                <\/div>\n            <\/div>\n            \n            <div class=\"md:col-span-2 bg-white p-6 rounded-xl shadow-md card-hover\">\n                <h4 class=\"text-center text-gray-500 text-sm font-bold uppercase mb-4\">\u4e0d\u540c\u8655\u7f6e\u65b9\u5f0f\u4e4b\u5b58\u6d3b\u7387\u6bd4\u8f03<\/h4>\n                <div class=\"chart-container\">\n                    <canvas id=\"survivalChart\"><\/canvas>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Section 5: Biosecurity (Grid) -->\n        <section>\n            <h3 class=\"text-3xl font-bold text-gray-800 mb-8 text-center\">\u751f\u7269\u5b89\u5168\uff1a\u6700\u5f8c\u9632\u79a6\u9663\u7dda<\/h3>\n            <div class=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6\">\n                <!-- Card 1 -->\n                <div class=\"bg-white p-6 rounded-lg shadow border-t-4 border-blue-500 text-center\">\n                    <div class=\"text-4xl mb-4\">\ud83d\udeaa<\/div>\n                    <h4 class=\"font-bold text-lg mb-2\">\u9694\u96e2\u6aa2\u75ab<\/h4>\n                    <p class=\"text-sm text-gray-600\">\u65b0\u9032\u9d3f\u5b50\u5fc5\u9808\u8207\u4e3b\u7fa4\u9ad4\u5b8c\u5168\u9694\u96e2\u89c0\u5bdf\u81f3\u5c1121\u5929\u3002<\/p>\n                <\/div>\n                <!-- Card 2 -->\n                <div class=\"bg-white p-6 rounded-lg shadow border-t-4 border-green-500 text-center\">\n                    <div class=\"text-4xl mb-4\">\ud83e\uddfc<\/div>\n                    <h4 class=\"font-bold text-lg mb-2\">\u6d88\u6bd2\u6e05\u6f54<\/h4>\n                    <p class=\"text-sm text-gray-600\">\u5b9a\u671f\u4f7f\u7528\u6bba\u75c5\u6bd2\u5291\u6d88\u6bd2\u9d3f\u820d\u3002\u75c5\u6bd2\u5728\u5bd2\u51b7\u74b0\u5883\u53ef\u5b58\u6d3b\u6578\u9031\u3002<\/p>\n                <\/div>\n                <!-- Card 3 -->\n                <div class=\"bg-white p-6 rounded-lg shadow border-t-4 border-red-500 text-center\">\n                    <div class=\"text-4xl mb-4\">\ud83d\udeab<\/div>\n                    <h4 class=\"font-bold text-lg mb-2\">\u9650\u5236\u8a2a\u5ba2<\/h4>\n                    <p class=\"text-sm text-gray-600\">\u56b4\u683c\u7ba1\u5236\u4eba\u54e1\u9032\u51fa\u3002\u978b\u5e95\u8207\u8863\u7269\u7686\u53ef\u80fd\u651c\u5e36\u75c5\u6bd2\u3002<\/p>\n                <\/div>\n                <!-- Card 4 -->\n                <div class=\"bg-white p-6 rounded-lg shadow border-t-4 border-amber-500 text-center\">\n                    <div class=\"text-4xl mb-4\">\ud83d\udc00<\/div>\n                    <h4 class=\"font-bold text-lg mb-2\">\u5bb3\u87f2\u9632\u6cbb<\/h4>\n                    <p class=\"text-sm text-gray-600\">\u675c\u7d55\u91ce\u9ce5\u8207\u9f20\u985e\u63a5\u89f8\u98fc\u6599\u53ca\u6c34\u6e90\uff0c\u963b\u65b7\u50b3\u64ad\u93c8\u3002<\/p>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Footer -->\n        <footer class=\"mt-12 text-center text-gray-500 text-sm pb-8\">\n            <p>\u00a9 2024 \u7378\u91ab\u6578\u64da\u8996\u89ba\u5316\u4e2d\u5fc3\u3002\u50c5\u4f9b\u6559\u80b2\u7528\u9014\u3002<\/p>\n            <p class=\"mt-2\">\u82e5\u6709\u7591\u4f3c\u75c5\u4f8b\uff0c\u8acb\u52d9\u5fc5\u8aee\u8a62\u5c08\u696d\u79bd\u985e\u7378\u91ab\u5e2b\u9032\u884c\u8a3a\u65b7\u8207\u6cbb\u7642\u3002<\/p>\n        <\/footer>\n\n    <\/main>\n\n    <script>\n        \/\/ --- UTILITY FUNCTIONS ---\n\n        \/\/ Label Wrapping Function (Adjusted for Chinese characters)\n        \/\/ Chinese characters are denser, so we treat string length strictly or chunk it\n        function formatLabels(labels, maxLen = 8) { \/\/ Reduced maxLen for Chinese readability\n            return labels.map(label => {\n                if (label.length <= maxLen) return label;\n                \n                \/\/ For Chinese, we split by character count since spaces are rare\n                const chunks = [];\n                for (let i = 0; i < label.length; i += maxLen) {\n                    chunks.push(label.substring(i, i + maxLen));\n                }\n                return chunks;\n            });\n        }\n\n        \/\/ Common Tooltip Configuration (MANDATORY)\n        const commonTooltipConfig = {\n            callbacks: {\n                title: function(tooltipItems) {\n                    const item = tooltipItems[0];\n                    let label = item.chart.data.labels[item.dataIndex];\n                    if (Array.isArray(label)) {\n                        return label.join(''); \/\/ Join with empty string for Chinese\n                    } else {\n                        return label;\n                    }\n                }\n            },\n            backgroundColor: 'rgba(31, 41, 55, 0.9)',\n            titleFont: { size: 14, family: \"'Noto Sans TC', sans-serif\" },\n            bodyFont: { size: 13, family: \"'Noto Sans TC', sans-serif\" },\n            padding: 10,\n            cornerRadius: 8,\n            displayColors: true\n        };\n\n        \/\/ --- CHART GENERATION ---\n\n        \/\/ 1. Symptoms Chart (Doughnut)\n        const ctxSymptoms = document.getElementById('symptomsChart').getContext('2d');\n        const symptomLabels = ['\u795e\u7d93\u75c7\u72c0 (\u6b6a\u982d\/\u626d\u9838)', '\u6d88\u5316\u9053\u75c7\u72c0 (\u7da0\u8272\u6c34\u4fbf)', '\u7cbe\u795e\u840e\u9761 (\u7fbd\u6bdb\u84ec\u9b06)', '\u547c\u5438\u9053\/\u5176\u4ed6'];\n        \n        new Chart(ctxSymptoms, {\n            type: 'doughnut',\n            data: {\n                labels: formatLabels(symptomLabels, 10),\n                datasets: [{\n                    data: [55, 35, 10, 5],\n                    backgroundColor: ['#1E40AF', '#10B981', '#F59E0B', '#9CA3AF'],\n                    borderWidth: 2,\n                    borderColor: '#ffffff',\n                    hoverOffset: 4\n                }]\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                plugins: {\n                    legend: {\n                        position: 'bottom',\n                        labels: {\n                            font: { size: 12, family: \"'Noto Sans TC', sans-serif\" },\n                            usePointStyle: true,\n                            padding: 20\n                        }\n                    },\n                    tooltip: commonTooltipConfig\n                },\n                layout: {\n                    padding: 10\n                }\n            }\n        });\n\n        \/\/ 2. Timeline Chart (Line)\n        const ctxTimeline = document.getElementById('timelineChart').getContext('2d');\n        const days = Array.from({length: 31}, (_, i) => i); \/\/ Days 0 to 30\n        \n        \/\/ Simulating viral load curve (Peaks day 7, tapers off)\n        const viralLoad = days.map(d => {\n            if (d < 3) return 0;\n            if (d < 10) return 30 + (d * 7); \/\/ Rising\n            if (d < 30) return 100 - ((d-10) * 4); \/\/ Falling\n            return 0;\n        });\n\n        \/\/ Simulating Antibody response (Starts day 14, rises)\n        const antibodies = days.map(d => {\n            if (d < 10) return 0;\n            return (d - 10) * 4.5;\n        });\n\n        new Chart(ctxTimeline, {\n            type: 'line',\n            data: {\n                labels: days, \/\/ Numbers represent days\n                datasets: [\n                    {\n                        label: '\u75c5\u6bd2\u6392\u6bd2\u91cf (Viral Load)',\n                        data: viralLoad,\n                        borderColor: '#EF4444',\n                        backgroundColor: 'rgba(239, 68, 68, 0.1)',\n                        fill: true,\n                        tension: 0.4,\n                        pointRadius: 2\n                    },\n                    {\n                        label: '\u6297\u9ad4\u53cd\u61c9 (Antibodies)',\n                        data: antibodies,\n                        borderColor: '#1E40AF',\n                        backgroundColor: 'rgba(30, 64, 175, 0.1)',\n                        borderDash: [5, 5],\n                        tension: 0.4,\n                        pointRadius: 0\n                    }\n                ]\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                scales: {\n                    x: {\n                        title: { display: true, text: '\u611f\u67d3\u5f8c\u5929\u6578 (Days)', font: { family: \"'Noto Sans TC', sans-serif\" } },\n                        grid: { display: false }\n                    },\n                    y: {\n                        title: { display: true, text: '\u76f8\u5c0d\u6578\u503c (%)', font: { family: \"'Noto Sans TC', sans-serif\" } },\n                        min: 0,\n                        max: 100\n                    }\n                },\n                plugins: {\n                    tooltip: {\n                        ...commonTooltipConfig, \n                        callbacks: {\n                            ...commonTooltipConfig.callbacks,\n                            label: function(context) {\n                                return context.dataset.label + ': ' + context.parsed.y + '%';\n                            }\n                        }\n                    },\n                    legend: {\n                        position: 'top',\n                        align: 'end',\n                        labels: { font: { family: \"'Noto Sans TC', sans-serif\" } }\n                    }\n                }\n            }\n        });\n\n        \/\/ 3. Survival Chart (Bar)\n        const ctxSurvival = document.getElementById('survivalChart').getContext('2d');\n        const survivalLabels = ['\u5df2\u5b8c\u6210\u75ab\u82d7\u63a5\u7a2e\u7fa4\u9ad4', '\u672a\u63a5\u7a2e (\u50c5\u652f\u6301\u6027\u7642\u6cd5)', '\u672a\u63a5\u7a2e (\u7121\u4efb\u4f55\u8655\u7f6e)'];\n\n        new Chart(ctxSurvival, {\n            type: 'bar',\n            data: {\n                labels: formatLabels(survivalLabels, 10),\n                datasets: [{\n                    label: '\u5b58\u6d3b\u7387 (%)',\n                    data: [95, 60, 25],\n                    backgroundColor: [\n                        '#10B981', \/\/ Green for good\n                        '#F59E0B', \/\/ Amber for warning\n                        '#EF4444'  \/\/ Red for danger\n                    ],\n                    borderRadius: 8,\n                    barPercentage: 0.6\n                }]\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                scales: {\n                    y: {\n                        beginAtZero: true,\n                        max: 100,\n                        title: { display: true, text: '\u5b58\u6d3b\u767e\u5206\u6bd4', font: { family: \"'Noto Sans TC', sans-serif\" } }\n                    },\n                    x: {\n                        grid: { display: false }\n                    }\n                },\n                plugins: {\n                    legend: { display: false },\n                    tooltip: commonTooltipConfig\n                }\n            }\n        });\n\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>\u9019\u4efd\u5831\u544a\u6df1\u5165\u63a2\u8a0e\u4e86\u9d3f\u5b50\u5df4\u62c9\u7c73\u54e5\u75c5\u6bd2\uff08PPMV-1\uff09\uff0c\u5305\u542b\u75c7\u72c0\u5206\u4f48\u3001\u50b3\u67d3\u9014\u5f91\u3001\u75c5\u6bd2\u6642\u9593\u8ef8\u4ee5\u53ca\u75ab\u82d7\u63a5\u7a2e\u7684\u91cd\u8981\u6027\u3002<\/p>\n","protected":false},"author":2,"featured_media":2820,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[142],"tags":[153,155],"class_list":["post-2819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-142","tag-153","tag-155"],"jetpack_featured_media_url":"https:\/\/www.3546.com.tw\/win\/wp-content\/uploads\/2026\/01\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-01-15-012350.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/posts\/2819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/comments?post=2819"}],"version-history":[{"count":1,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/posts\/2819\/revisions"}],"predecessor-version":[{"id":2821,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/posts\/2819\/revisions\/2821"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/media\/2820"}],"wp:attachment":[{"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/media?parent=2819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/categories?post=2819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.3546.com.tw\/win\/wp-json\/wp\/v2\/tags?post=2819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}