{"id":620,"date":"2025-06-29T13:11:26","date_gmt":"2025-06-29T13:11:26","guid":{"rendered":"https:\/\/easyaccsoft.com\/webdesign\/?p=620"},"modified":"2025-06-29T14:11:05","modified_gmt":"2025-06-29T14:11:05","slug":"mysql-php%e4%b8%8e%e4%b8%ad%e5%8c%bb%e8%be%a9%e8%af%81%e8%ae%ba%e6%b2%bb%e8%87%aa%e5%8a%a8%e5%8c%96%e7%b3%bb%e7%bb%9f-2","status":"publish","type":"post","link":"https:\/\/easyaccsoft.com\/webdesign\/2025\/06\/29\/mysql-php%e4%b8%8e%e4%b8%ad%e5%8c%bb%e8%be%a9%e8%af%81%e8%ae%ba%e6%b2%bb%e8%87%aa%e5%8a%a8%e5%8c%96%e7%b3%bb%e7%bb%9f-2\/","title":{"rendered":"MySQL, PHP\u4e0e\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u81ea\u52a8\u5316\u7cfb\u7edf"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u7cfb\u7edf\u6982\u8ff0<\/h2>\n\n\n\n<p>\u8fd9\u4e2a\u7cfb\u7edf\u5c06\u4f7f\u7528MySQL\u4f5c\u4e3a\u6570\u636e\u5e93\uff0cPHP\u4f5c\u4e3a\u540e\u7aef\u8bed\u8a00\uff0c\u6784\u5efa\u4e00\u4e2a\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u7684\u81ea\u52a8\u5316\u5e73\u53f0\u3002\u7cfb\u7edf\u80fd\u591f\u6839\u636e\u60a3\u8005\u75c7\u72b6\u81ea\u52a8\u5206\u6790\u8fa9\u8bc1\u7c7b\u578b\uff0c\u5e76\u63d0\u4f9b\u76f8\u5e94\u7684\u6cbb\u7597\u5efa\u8bae\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6570\u636e\u5e93\u8bbe\u8ba1(MySQL)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u521b\u5efa\u6570\u636e\u5e93\nCREATE DATABASE tcm_diagnosis;\n\n-- \u4f7f\u7528\u6570\u636e\u5e93\nUSE tcm_diagnosis;\n\n-- \u75c7\u72b6\u8868\nCREATE TABLE symptoms (\n    symptom_id INT AUTO_INCREMENT PRIMARY KEY,\n    symptom_name VARCHAR(100) NOT NULL,\n    description TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- \u8bc1\u578b\u8868\nCREATE TABLE syndromes (\n    syndrome_id INT AUTO_INCREMENT PRIMARY KEY,\n    syndrome_name VARCHAR(100) NOT NULL,\n    description TEXT,\n    pathogenesis TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- \u75c7\u72b6-\u8bc1\u578b\u5173\u8054\u8868\nCREATE TABLE symptom_syndrome_relations (\n    relation_id INT AUTO_INCREMENT PRIMARY KEY,\n    symptom_id INT,\n    syndrome_id INT,\n    weight DECIMAL(3,2) DEFAULT 1.00,\n    FOREIGN KEY (symptom_id) REFERENCES symptoms(symptom_id),\n    FOREIGN KEY (syndrome_id) REFERENCES syndromes(syndrome_id),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- \u6cbb\u7597\u65b9\u6848\u8868\nCREATE TABLE treatments (\n    treatment_id INT AUTO_INCREMENT PRIMARY KEY,\n    syndrome_id INT,\n    treatment_name VARCHAR(100) NOT NULL,\n    treatment_method TEXT,\n    herbal_prescription TEXT,\n    acupuncture_points TEXT,\n    diet_advice TEXT,\n    lifestyle_advice TEXT,\n    FOREIGN KEY (syndrome_id) REFERENCES syndromes(syndrome_id),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- \u60a3\u8005\u8bb0\u5f55\u8868\nCREATE TABLE patients (\n    patient_id INT AUTO_INCREMENT PRIMARY KEY,\n    name VARCHAR(50),\n    gender ENUM('\u7537', '\u5973'),\n    age INT,\n    contact VARCHAR(20),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- \u8bca\u65ad\u8bb0\u5f55\u8868\nCREATE TABLE diagnosis_records (\n    record_id INT AUTO_INCREMENT PRIMARY KEY,\n    patient_id INT,\n    diagnosis_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    tongue_description TEXT,\n    pulse_description TEXT,\n    other_observations TEXT,\n    FOREIGN KEY (patient_id) REFERENCES patients(patient_id)\n);\n\n-- \u8bca\u65ad\u8bb0\u5f55-\u75c7\u72b6\u5173\u8054\u8868\nCREATE TABLE record_symptoms (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    record_id INT,\n    symptom_id INT,\n    severity ENUM('\u8f7b', '\u4e2d', '\u91cd'),\n    FOREIGN KEY (record_id) REFERENCES diagnosis_records(record_id),\n    FOREIGN KEY (symptom_id) REFERENCES symptoms(symptom_id)\n);\n\n-- \u8bca\u65ad\u7ed3\u679c\u8868\nCREATE TABLE diagnosis_results (\n    result_id INT AUTO_INCREMENT PRIMARY KEY,\n    record_id INT,\n    syndrome_id INT,\n    confidence_score DECIMAL(5,2),\n    treatment_id INT,\n    notes TEXT,\n    FOREIGN KEY (record_id) REFERENCES diagnosis_records(record_id),\n    FOREIGN KEY (syndrome_id) REFERENCES syndromes(syndrome_id),\n    FOREIGN KEY (treatment_id) REFERENCES treatments(treatment_id)\n);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">PHP\u540e\u7aef\u5b9e\u73b0<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u6570\u636e\u5e93\u8fde\u63a5 (db_connect.php)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$host = 'localhost';\n$dbname = 'tcm_diagnosis';\n$username = 'root';\n$password = '';\n\ntry {\n    $pdo = new PDO(\"mysql:host=$host;dbname=$dbname;charset=utf8\", $username, $password);\n    $pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n} catch (PDOException $e) {\n    die(\"\u6570\u636e\u5e93\u8fde\u63a5\u5931\u8d25: \" . $e-&gt;getMessage());\n}\n?&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u8fa9\u8bc1\u8bba\u6cbb\u6838\u5fc3\u903b\u8f91 (diagnosis.php)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nrequire_once 'db_connect.php';\n\nclass TCMDiagnosis {\n    private $pdo;\n\n    public function __construct($pdo) {\n        $this-&gt;pdo = $pdo;\n    }\n\n    \/\/ \u6dfb\u52a0\u65b0\u75c7\u72b6\n    public function addSymptom($name, $description) {\n        $stmt = $this-&gt;pdo-&gt;prepare(\"INSERT INTO symptoms (symptom_name, description) VALUES (?, ?)\");\n        $stmt-&gt;execute(&#91;$name, $description]);\n        return $this-&gt;pdo-&gt;lastInsertId();\n    }\n\n    \/\/ \u6dfb\u52a0\u65b0\u8bc1\u578b\n    public function addSyndrome($name, $description, $pathogenesis) {\n        $stmt = $this-&gt;pdo-&gt;prepare(\"INSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES (?, ?, ?)\");\n        $stmt-&gt;execute(&#91;$name, $description, $pathogenesis]);\n        return $this-&gt;pdo-&gt;lastInsertId();\n    }\n\n    \/\/ \u5173\u8054\u75c7\u72b6\u4e0e\u8bc1\u578b\n    public function linkSymptomToSyndrome($symptomId, $syndromeId, $weight = 1.0) {\n        $stmt = $this-&gt;pdo-&gt;prepare(\"INSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES (?, ?, ?)\");\n        $stmt-&gt;execute(&#91;$symptomId, $syndromeId, $weight]);\n        return $this-&gt;pdo-&gt;lastInsertId();\n    }\n\n    \/\/ \u6dfb\u52a0\u6cbb\u7597\u65b9\u6848\n    public function addTreatment($syndromeId, $name, $method, $herbs, $acupuncture, $diet, $lifestyle) {\n        $stmt = $this-&gt;pdo-&gt;prepare(\"INSERT INTO treatments (syndrome_id, treatment_name, treatment_method, herbal_prescription, acupuncture_points, diet_advice, lifestyle_advice) VALUES (?, ?, ?, ?, ?, ?, ?)\");\n        $stmt-&gt;execute(&#91;$syndromeId, $name, $method, $herbs, $acupuncture, $diet, $lifestyle]);\n        return $this-&gt;pdo-&gt;lastInsertId();\n    }\n\n    \/\/ \u6839\u636e\u75c7\u72b6\u8fdb\u884c\u8fa9\u8bc1\n    public function diagnose($symptomIds) {\n        \/\/ \u83b7\u53d6\u6240\u6709\u76f8\u5173\u8bc1\u578b\u53ca\u5176\u6743\u91cd\n        $placeholders = implode(',', array_fill(0, count($symptomIds), '?'));\n        $stmt = $this-&gt;pdo-&gt;prepare(\"\n            SELECT s.syndrome_id, s.syndrome_name, SUM(ssr.weight) as total_weight\n            FROM syndromes s\n            JOIN symptom_syndrome_relations ssr ON s.syndrome_id = ssr.syndrome_id\n            WHERE ssr.symptom_id IN ($placeholders)\n            GROUP BY s.syndrome_id\n            ORDER BY total_weight DESC\n        \");\n        $stmt-&gt;execute($symptomIds);\n        $possibleSyndromes = $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);\n\n        if (empty($possibleSyndromes)) {\n            return &#91;'error' =&gt; '\u65e0\u6cd5\u6839\u636e\u63d0\u4f9b\u7684\u75c7\u72b6\u786e\u5b9a\u8bc1\u578b'];\n        }\n\n        \/\/ \u83b7\u53d6\u6700\u53ef\u80fd\u7684\u8bc1\u578b\n        $primarySyndrome = $possibleSyndromes&#91;0];\n\n        \/\/ \u83b7\u53d6\u8be5\u8bc1\u578b\u7684\u6cbb\u7597\u65b9\u6848\n        $stmt = $this-&gt;pdo-&gt;prepare(\"\n            SELECT * FROM treatments \n            WHERE syndrome_id = ?\n            ORDER BY treatment_id LIMIT 1\n        \");\n        $stmt-&gt;execute(&#91;$primarySyndrome&#91;'syndrome_id']]);\n        $treatment = $stmt-&gt;fetch(PDO::FETCH_ASSOC);\n\n        \/\/ \u8ba1\u7b97\u7f6e\u4fe1\u5ea6 (\u7b80\u5316\u7248)\n        $maxPossibleWeight = count($symptomIds) * 1.0; \/\/ \u5047\u8bbe\u6700\u5927\u6743\u91cd\u4e3a1.0\n        $confidence = ($primarySyndrome&#91;'total_weight'] \/ $maxPossibleWeight) * 100;\n\n        return &#91;\n            'syndrome' =&gt; $primarySyndrome,\n            'treatment' =&gt; $treatment,\n            'confidence' =&gt; round($confidence, 2),\n            'other_possible' =&gt; array_slice($possibleSyndromes, 1)\n        ];\n    }\n\n    \/\/ \u521b\u5efa\u60a3\u8005\u8bb0\u5f55\n    public function createPatientRecord($patientData, $symptoms, $tongue, $pulse, $other) {\n        \/\/ \u6dfb\u52a0\u60a3\u8005\u57fa\u672c\u4fe1\u606f\n        $stmt = $this-&gt;pdo-&gt;prepare(\"\n            INSERT INTO patients (name, gender, age, contact) \n            VALUES (?, ?, ?, ?)\n        \");\n        $stmt-&gt;execute(&#91;\n            $patientData&#91;'name'],\n            $patientData&#91;'gender'],\n            $patientData&#91;'age'],\n            $patientData&#91;'contact']\n        ]);\n        $patientId = $this-&gt;pdo-&gt;lastInsertId();\n\n        \/\/ \u6dfb\u52a0\u8bca\u65ad\u8bb0\u5f55\n        $stmt = $this-&gt;pdo-&gt;prepare(\"\n            INSERT INTO diagnosis_records (patient_id, tongue_description, pulse_description, other_observations)\n            VALUES (?, ?, ?, ?)\n        \");\n        $stmt-&gt;execute(&#91;$patientId, $tongue, $pulse, $other]);\n        $recordId = $this-&gt;pdo-&gt;lastInsertId();\n\n        \/\/ \u6dfb\u52a0\u75c7\u72b6\u5173\u8054\n        foreach ($symptoms as $symptom) {\n            $stmt = $this-&gt;pdo-&gt;prepare(\"\n                INSERT INTO record_symptoms (record_id, symptom_id, severity)\n                VALUES (?, ?, ?)\n            \");\n            $stmt-&gt;execute(&#91;$recordId, $symptom&#91;'id'], $symptom&#91;'severity']]);\n        }\n\n        \/\/ \u8fdb\u884c\u8fa9\u8bc1\n        $symptomIds = array_column($symptoms, 'id');\n        $diagnosisResult = $this-&gt;diagnose($symptomIds);\n\n        \/\/ \u4fdd\u5b58\u8bca\u65ad\u7ed3\u679c\n        if (!isset($diagnosisResult&#91;'error'])) {\n            $stmt = $this-&gt;pdo-&gt;prepare(\"\n                INSERT INTO diagnosis_results (record_id, syndrome_id, confidence_score, treatment_id)\n                VALUES (?, ?, ?, ?)\n            \");\n            $stmt-&gt;execute(&#91;\n                $recordId,\n                $diagnosisResult&#91;'syndrome']&#91;'syndrome_id'],\n                $diagnosisResult&#91;'confidence'],\n                $diagnosisResult&#91;'treatment']&#91;'treatment_id']\n            ]);\n\n            $diagnosisResult&#91;'record_id'] = $recordId;\n        }\n\n        return $diagnosisResult;\n    }\n\n    \/\/ \u83b7\u53d6\u60a3\u8005\u5386\u53f2\u8bb0\u5f55\n    public function getPatientHistory($patientId) {\n        $stmt = $this-&gt;pdo-&gt;prepare(\"\n            SELECT dr.*, dr.diagnosis_date, \n                   GROUP_CONCAT(s.symptom_name SEPARATOR ', ') as symptoms,\n                   s.syndrome_name, s.description as syndrome_desc,\n                   t.treatment_method, t.herbal_prescription,\n                   dr.confidence_score\n            FROM diagnosis_records dr\n            LEFT JOIN record_symptoms rs ON dr.record_id = rs.record_id\n            LEFT JOIN symptoms s ON rs.symptom_id = s.symptom_id\n            LEFT JOIN diagnosis_results dr ON dr.record_id = dr.record_id\n            LEFT JOIN syndromes s ON dr.syndrome_id = s.syndrome_id\n            LEFT JOIN treatments t ON dr.treatment_id = t.treatment_id\n            WHERE dr.patient_id = ?\n            GROUP BY dr.record_id\n            ORDER BY dr.diagnosis_date DESC\n        \");\n        $stmt-&gt;execute(&#91;$patientId]);\n        return $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);\n    }\n}\n?&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u524d\u7aef\u63a5\u53e3\u793a\u4f8b (API endpoints)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nrequire_once 'db_connect.php';\nrequire_once 'diagnosis.php';\n\nheader(\"Content-Type: application\/json\");\n\n$tcm = new TCMDiagnosis($pdo);\n\n$action = $_GET&#91;'action'] ?? '';\n\ntry {\n    switch ($action) {\n        case 'diagnose':\n            $symptoms = json_decode(file_get_contents('php:\/\/input'), true);\n            $result = $tcm-&gt;diagnose($symptoms);\n            echo json_encode($result);\n            break;\n\n        case 'create_record':\n            $data = json_decode(file_get_contents('php:\/\/input'), true);\n            $result = $tcm-&gt;createPatientRecord(\n                $data&#91;'patient'],\n                $data&#91;'symptoms'],\n                $data&#91;'tongue'],\n                $data&#91;'pulse'],\n                $data&#91;'other']\n            );\n            echo json_encode($result);\n            break;\n\n        case 'patient_history':\n            $patientId = $_GET&#91;'patient_id'];\n            $history = $tcm-&gt;getPatientHistory($patientId);\n            echo json_encode($history);\n            break;\n\n        default:\n            echo json_encode(&#91;'error' =&gt; '\u65e0\u6548\u7684\u64cd\u4f5c']);\n    }\n} catch (Exception $e) {\n    echo json_encode(&#91;'error' =&gt; $e-&gt;getMessage()]);\n}\n?&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7cfb\u7edf\u529f\u80fd\u6269\u5c55\u5efa\u8bae<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u77e5\u8bc6\u5e93\u5b8c\u5584<\/strong>\uff1a\u6dfb\u52a0\u66f4\u591a\u4e2d\u533b\u75c7\u72b6\u3001\u8bc1\u578b\u53ca\u5176\u5173\u8054\u5173\u7cfb\uff0c\u63d0\u9ad8\u7cfb\u7edf\u51c6\u786e\u6027<\/li>\n\n\n\n<li><strong>\u673a\u5668\u5b66\u4e60\u96c6\u6210<\/strong>\uff1a\u4f7f\u7528\u5386\u53f2\u8bca\u65ad\u6570\u636e\u8bad\u7ec3\u6a21\u578b\uff0c\u4f18\u5316\u8fa9\u8bc1\u7b97\u6cd5<\/li>\n\n\n\n<li><strong>\u4e2d\u836f\u6570\u636e\u5e93<\/strong>\uff1a\u5efa\u7acb\u5b8c\u6574\u7684\u4e2d\u836f\u5e93\uff0c\u5305\u62ec\u6027\u5473\u5f52\u7ecf\u3001\u529f\u6548\u7b49\u4fe1\u606f<\/li>\n\n\n\n<li><strong>\u65b9\u5242\u7ba1\u7406\u7cfb\u7edf<\/strong>\uff1a\u7ba1\u7406\u7ecf\u5178\u65b9\u5242\u548c\u81ea\u62df\u65b9\u5242<\/li>\n\n\n\n<li><strong>\u820c\u8c61\u5206\u6790<\/strong>\uff1a\u96c6\u6210\u56fe\u50cf\u8bc6\u522b\u6280\u672f\u5206\u6790\u820c\u8c61<\/li>\n\n\n\n<li><strong>\u8109\u8c61\u5206\u6790<\/strong>\uff1a\u5982\u6709\u786c\u4ef6\u652f\u6301\uff0c\u53ef\u6dfb\u52a0\u8109\u8c61\u5206\u6790\u529f\u80fd<\/li>\n\n\n\n<li><strong>\u62a5\u8868\u751f\u6210<\/strong>\uff1a\u751f\u6210\u8bca\u65ad\u62a5\u544a\u548c\u6cbb\u7597\u65b9\u6848\u6587\u6863<\/li>\n<\/ol>\n\n\n\n<p>\u8fd9\u4e2a\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e00\u4e2a\u57fa\u7840\u6846\u67b6\uff0c\u5b9e\u9645\u5e94\u7528\u4e2d\u9700\u8981\u6839\u636e\u5177\u4f53\u9700\u6c42\u8fdb\u884c\u8c03\u6574\u548c\u6269\u5c55\uff0c\u7279\u522b\u662f\u4e2d\u533b\u77e5\u8bc6\u5e93\u7684\u6784\u5efa\u9700\u8981\u4e13\u4e1a\u4e2d\u533b\u5e08\u7684\u53c2\u4e0e\u4ee5\u786e\u4fdd\u51c6\u786e\u6027\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u5982\u4f55\u5e94\u7528\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u81ea\u52a8\u5316\u7cfb\u7edf<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\u7cfb\u7edf\u90e8\u7f72\u6b65\u9aa4<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u73af\u5883\u51c6\u5907<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u670d\u52a1\u5668\u73af\u5883<\/strong>\uff1a\u5b89\u88c5Apache\/Nginx\u3001PHP(7.4+)\u548cMySQL(5.7+)<\/li>\n\n\n\n<li><strong>\u6570\u636e\u5e93\u914d\u7f6e<\/strong>\uff1a\u6267\u884c\u63d0\u4f9b\u7684SQL\u811a\u672c\u521b\u5efa\u6570\u636e\u5e93\u7ed3\u6784<\/li>\n\n\n\n<li><strong>PHP\u914d\u7f6e<\/strong>\uff1a\u786e\u4fdd\u5df2\u5b89\u88c5PDO MySQL\u6269\u5c55<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u7cfb\u7edf\u5b89\u88c5<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5c06PHP\u6587\u4ef6\u4e0a\u4f20\u5230Web\u670d\u52a1\u5668<\/li>\n\n\n\n<li>\u4fee\u6539<code>db_connect.php<\/code>\u4e2d\u7684\u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f<\/li>\n\n\n\n<li>\u8bbf\u95ee\u7cfb\u7edf\u9996\u9875\u8fdb\u884c\u6d4b\u8bd5<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\u57fa\u7840\u6570\u636e\u5f55\u5165<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u5f55\u5165\u4e2d\u533b\u75c7\u72b6\u6570\u636e<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u793a\u4f8b\uff1a\u6dfb\u52a0\u5e38\u89c1\u75c7\u72b6\n$tcm-&gt;addSymptom('\u5934\u75db', '\u5934\u90e8\u75bc\u75db\uff0c\u53ef\u80fd\u4e3a\u80c0\u75db\u3001\u523a\u75db\u7b49\u4e0d\u540c\u7c7b\u578b');\n$tcm-&gt;addSymptom('\u53d1\u70ed', '\u4f53\u6e29\u9ad8\u4e8e\u6b63\u5e38\u8303\u56f4');\n$tcm-&gt;addSymptom('\u54b3\u55fd', '\u80ba\u6c14\u4e0a\u9006\u4f5c\u58f0\uff0c\u54af\u5410\u75f0\u6db2');\n\/\/ \u53ef\u7ee7\u7eed\u6dfb\u52a0\u66f4\u591a\u75c7\u72b6...<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u5f55\u5165\u4e2d\u533b\u8bc1\u578b\u6570\u636e<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u793a\u4f8b\uff1a\u6dfb\u52a0\u5e38\u89c1\u8bc1\u578b\n$tcm-&gt;addSyndrome(\n    '\u98ce\u5bd2\u611f\u5192', \n    '\u56e0\u98ce\u5bd2\u4e4b\u90aa\u5916\u88ad\u3001\u80ba\u6c14\u5931\u5ba3\u6240\u81f4', \n    '\u98ce\u5bd2\u5916\u88ad\uff0c\u536b\u9633\u88ab\u90c1\uff0c\u8160\u7406\u95ed\u585e\uff0c\u80ba\u6c14\u4e0d\u5ba3'\n);\n\n$tcm-&gt;addSyndrome(\n    '\u98ce\u70ed\u611f\u5192', \n    '\u56e0\u98ce\u70ed\u4e4b\u90aa\u72af\u8868\u3001\u80ba\u6c14\u5931\u548c\u6240\u81f4', \n    '\u98ce\u70ed\u72af\u8868\uff0c\u70ed\u90c1\u808c\u8160\uff0c\u536b\u8868\u5931\u548c\uff0c\u80ba\u5931\u6e05\u8083'\n);\n\/\/ \u53ef\u7ee7\u7eed\u6dfb\u52a0\u66f4\u591a\u8bc1\u578b...<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u5efa\u7acb\u75c7\u72b6\u4e0e\u8bc1\u578b\u5173\u8054<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u98ce\u5bd2\u611f\u5192\u76f8\u5173\u75c7\u72b6\u5173\u8054\n$tcm-&gt;linkSymptomToSyndrome(1, 1, 0.9); \/\/ \u5934\u75db-\u98ce\u5bd2\u611f\u5192\n$tcm-&gt;linkSymptomToSyndrome(2, 1, 0.7); \/\/ \u53d1\u70ed-\u98ce\u5bd2\u611f\u5192(\u4f4e\u70ed)\n$tcm-&gt;linkSymptomToSyndrome(3, 1, 0.8); \/\/ \u54b3\u55fd-\u98ce\u5bd2\u611f\u5192\n\n\/\/ \u98ce\u70ed\u611f\u5192\u76f8\u5173\u75c7\u72b6\u5173\u8054\n$tcm-&gt;linkSymptomToSyndrome(1, 2, 0.6); \/\/ \u5934\u75db-\u98ce\u70ed\u611f\u5192\n$tcm-&gt;linkSymptomToSyndrome(2, 2, 0.9); \/\/ \u53d1\u70ed-\u98ce\u70ed\u611f\u5192(\u9ad8\u70ed)\n$tcm-&gt;linkSymptomToSyndrome(3, 2, 0.7); \/\/ \u54b3\u55fd-\u98ce\u70ed\u611f\u5192<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u6dfb\u52a0\u6cbb\u7597\u65b9\u6848<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u98ce\u5bd2\u611f\u5192\u6cbb\u7597\u65b9\u6848\n$tcm-&gt;addTreatment(\n    1, \/\/ \u98ce\u5bd2\u611f\u5192\u8bc1\u578bID\n    '\u8f9b\u6e29\u89e3\u8868\u6cd5', \n    '\u53d1\u6c57\u89e3\u8868\uff0c\u758f\u98ce\u6563\u5bd2', \n    '\u9ebb\u9ec49g\u3001\u6842\u679d6g\u3001\u674f\u4ec19g\u3001\u7518\u83493g', \n    '\u98ce\u6c60\u3001\u98ce\u5e9c\u3001\u5217\u7f3a\u3001\u5408\u8c37', \n    '\u5b9c\u98df\u8f9b\u6e29\u53d1\u6563\u98df\u7269\u5982\u751f\u59dc\u3001\u8471\u767d', \n    '\u907f\u98ce\u5bd2\uff0c\u9002\u5f53\u4f11\u606f\uff0c\u4fdd\u6301\u6e29\u6696'\n);\n\n\/\/ \u98ce\u70ed\u611f\u5192\u6cbb\u7597\u65b9\u6848\n$tcm-&gt;addTreatment(\n    2, \/\/ \u98ce\u70ed\u611f\u5192\u8bc1\u578bID\n    '\u8f9b\u51c9\u89e3\u8868\u6cd5', \n    '\u758f\u98ce\u6e05\u70ed\uff0c\u5ba3\u80ba\u89e3\u8868', \n    '\u94f6\u82b19g\u3001\u8fde\u7fd89g\u3001\u7af9\u53f66g\u3001\u8346\u82a56g\u3001\u725b\u84a1\u5b509g\u3001\u6de1\u8c46\u8c496g\u3001\u8584\u83776g\u3001\u7518\u83493g', \n    '\u5927\u690e\u3001\u66f2\u6c60\u3001\u5408\u8c37\u3001\u5916\u5173', \n    '\u5b9c\u98df\u8f9b\u51c9\u900f\u8868\u98df\u7269\u5982\u8584\u8377\u3001\u83ca\u82b1', \n    '\u591a\u996e\u6c34\uff0c\u4fdd\u6301\u5ba4\u5185\u901a\u98ce'\n);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b9e\u9645\u5e94\u7528\u573a\u666f<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u95e8\u8bca\u8bca\u65ad\u6d41\u7a0b<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u60a3\u8005\u4fe1\u606f\u5f55\u5165<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $patientData = &#91;\n       'name' =&gt; '\u5f20\u67d0\u67d0',\n       'gender' =&gt; '\u7537',\n       'age' =&gt; 45,\n       'contact' =&gt; '13800138000'\n   ];<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u75c7\u72b6\u6536\u96c6<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $symptoms = &#91;\n       &#91;'id' =&gt; 1, 'severity' =&gt; '\u4e2d'], \/\/ \u5934\u75db(\u4e2d\u5ea6)\n       &#91;'id' =&gt; 2, 'severity' =&gt; '\u8f7b'], \/\/ \u53d1\u70ed(\u8f7b\u5ea6)\n       &#91;'id' =&gt; 3, 'severity' =&gt; '\u91cd']  \/\/ \u54b3\u55fd(\u91cd\u5ea6)\n   ];<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u56db\u8bca\u4fe1\u606f<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $tongue = '\u820c\u6de1\u7ea2\uff0c\u82d4\u8584\u767d';\n   $pulse = '\u8109\u6d6e\u7d27';\n   $other = '\u6076\u5bd2\u91cd\uff0c\u53d1\u70ed\u8f7b\uff0c\u65e0\u6c57';<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u6267\u884c\u8bca\u65ad<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $result = $tcm-&gt;createPatientRecord($patientData, $symptoms, $tongue, $pulse, $other);<\/code><\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>\u8f93\u51fa\u7ed3\u679c<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   echo \"\u6700\u53ef\u80fd\u8bc1\u578b: \" . $result&#91;'syndrome']&#91;'syndrome_name'] . \"\\n\";\n   echo \"\u7f6e\u4fe1\u5ea6: \" . $result&#91;'confidence'] . \"%\\n\";\n   echo \"\u6cbb\u7597\u65b9\u6848: \" . $result&#91;'treatment']&#91;'treatment_method'] . \"\\n\";\n   echo \"\u4e2d\u836f\u5904\u65b9: \" . $result&#91;'treatment']&#91;'herbal_prescription'] . \"\\n\";<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u60a3\u8005\u5386\u53f2\u67e5\u8be2<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$history = $tcm-&gt;getPatientHistory(1); \/\/ \u67e5\u8be2\u60a3\u8005ID\u4e3a1\u7684\u5386\u53f2\u8bb0\u5f55\nforeach ($history as $record) {\n    echo \"\u65e5\u671f: \" . $record&#91;'diagnosis_date'] . \"\\n\";\n    echo \"\u75c7\u72b6: \" . $record&#91;'symptoms'] . \"\\n\";\n    echo \"\u8bca\u65ad: \" . $record&#91;'syndrome_name'] . \"\\n\";\n    echo \"\u5904\u65b9: \" . $record&#91;'herbal_prescription'] . \"\\n\\n\";\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7cfb\u7edf\u4f18\u5316\u5efa\u8bae<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u77e5\u8bc6\u5e93\u5b8c\u5584<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9080\u8bf7\u4e2d\u533b\u4e13\u5bb6\u53c2\u4e0e\u75c7\u72b6\u3001\u8bc1\u578b\u548c\u6cbb\u7597\u65b9\u6848\u7684\u5ba1\u6838<\/li>\n\n\n\n<li>\u6dfb\u52a0\u66f4\u591a\u8bc1\u578b\u5982\u6c14\u865a\u3001\u8840\u865a\u3001\u75f0\u6e7f\u7b49<\/li>\n\n\n\n<li>\u5b8c\u5584\u75c7\u72b6\u7684\u7ec6\u5206\uff08\u5982\u5934\u75db\u90e8\u4f4d\u3001\u6027\u8d28\u7b49\uff09<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7b97\u6cd5\u4f18\u5316<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6839\u636e\u75c7\u72b6\u4e25\u91cd\u7a0b\u5ea6\u8c03\u6574\u6743\u91cd<\/li>\n\n\n\n<li>\u8003\u8651\u75c7\u72b6\u7ec4\u5408\u7684\u7279\u6b8a\u610f\u4e49<\/li>\n\n\n\n<li>\u6dfb\u52a0\u6392\u9664\u89c4\u5219\uff08\u67d0\u4e9b\u75c7\u72b6\u7ec4\u5408\u53ef\u6392\u9664\u7279\u5b9a\u8bc1\u578b\uff09<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7528\u6237\u754c\u9762\u5f00\u53d1<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5f00\u53d1Web\u754c\u9762\u65b9\u4fbf\u533b\u751f\u4f7f\u7528<\/li>\n\n\n\n<li>\u6dfb\u52a0\u75c7\u72b6\u9009\u62e9\u6811\u72b6\u7ed3\u6784<\/li>\n\n\n\n<li>\u5f00\u53d1\u79fb\u52a8\u7aef\u5e94\u7528\u652f\u6301\u8fdc\u7a0b\u8bca\u7597<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6570\u636e\u5206\u6790\u529f\u80fd<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7edf\u8ba1\u5e38\u89c1\u8bc1\u578b\u5206\u5e03<\/li>\n\n\n\n<li>\u5206\u6790\u6cbb\u7597\u65b9\u6848\u6709\u6548\u6027<\/li>\n\n\n\n<li>\u53d1\u73b0\u75c7\u72b6\u5173\u8054\u89c4\u5f8b<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7cfb\u7edf\u96c6\u6210<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e0e\u533b\u9662HIS\u7cfb\u7edf\u5bf9\u63a5<\/li>\n\n\n\n<li>\u6dfb\u52a0\u7535\u5b50\u75c5\u5386\u529f\u80fd<\/li>\n\n\n\n<li>\u652f\u6301\u5904\u65b9\u6253\u5370\u548c\u5bfc\u51fa<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u6ce8\u610f\u4e8b\u9879<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e13\u4e1a\u76d1\u7763<\/strong>\uff1a\u7cfb\u7edf\u5e94\u59cb\u7ec8\u5728\u4e2d\u533b\u5e08\u76d1\u7763\u4e0b\u4f7f\u7528\uff0c\u4e0d\u80fd\u5b8c\u5168\u66ff\u4ee3\u4e13\u4e1a\u5224\u65ad<\/li>\n\n\n\n<li><strong>\u6570\u636e\u5b89\u5168<\/strong>\uff1a\u60a3\u8005\u533b\u7597\u6570\u636e\u9700\u52a0\u5bc6\u5b58\u50a8\uff0c\u7b26\u5408\u533b\u7597\u6570\u636e\u4fdd\u62a4\u89c4\u8303<\/li>\n\n\n\n<li><strong>\u6301\u7eed\u66f4\u65b0<\/strong>\uff1a\u4e2d\u533b\u77e5\u8bc6\u5e93\u9700\u8981\u5b9a\u671f\u66f4\u65b0\u548c\u7ef4\u62a4<\/li>\n\n\n\n<li><strong>\u4e2a\u6027\u5316\u8c03\u6574<\/strong>\uff1a\u7cfb\u7edf\u63d0\u4f9b\u7684\u6cbb\u7597\u65b9\u6848\u5e94\u6839\u636e\u60a3\u8005\u5177\u4f53\u60c5\u51b5\u8c03\u6574<\/li>\n<\/ol>\n\n\n\n<p>\u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u53ef\u4ee5\u90e8\u7f72\u548c\u5e94\u7528\u8fd9\u4e2a\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u81ea\u52a8\u5316\u7cfb\u7edf\uff0c\u8f85\u52a9\u4e2d\u533b\u4e34\u5e8a\u8bca\u65ad\u548c\u6cbb\u7597\u65b9\u6848\u5236\u5b9a\u3002\u7cfb\u7edf\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u6807\u51c6\u5316\u4e2d\u533b\u8fa9\u8bc1\u6d41\u7a0b\u548c\u63d0\u9ad8\u8bca\u65ad\u6548\u7387\uff0c\u4f46\u6700\u7ec8\u51b3\u7b56\u4ecd\u9700\u4f9d\u8d56\u533b\u5e08\u7684\u4e13\u4e1a\u5224\u65ad\u3002<\/p>\n\n\n\n<p>Certainly! Let me explain the <code>linkSymptomToSyndrome()<\/code> method and these specific examples in detail.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding <code>linkSymptomToSyndrome()<\/code><\/h3>\n\n\n\n<p>This method establishes a weighted relationship between a symptom and a syndrome (\u4e2d\u533b\u8bc1\u578b) in the TCM (Traditional Chinese Medicine) diagnosis system. The parameters are:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$tcm-&gt;linkSymptomToSyndrome($symptomId, $syndromeId, $weight);<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>$symptomId<\/strong>: The ID of the symptom (from the <code>symptoms<\/code> table)<\/li>\n\n\n\n<li><strong>$syndromeId<\/strong>: The ID of the syndrome (from the <code>syndromes<\/code> table)<\/li>\n\n\n\n<li><strong>$weight<\/strong>: A decimal value (typically 0.0-1.0) representing how strongly this symptom indicates this particular syndrome<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Your Specific Examples Explained<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5934\u75db (Headache) &#8211; \u98ce\u5bd2\u611f\u5192 (Wind-Cold Common Cold)<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $tcm-&gt;linkSymptomToSyndrome(1, 1, 0.9);<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This means headache (symptom ID 1) is very strongly associated (weight 0.9) with wind-cold common cold (syndrome ID 1)<\/li>\n\n\n\n<li>In TCM theory, headache is a primary symptom of wind-cold invasion, especially when the pain is in the occipital region and worsens with cold<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u53d1\u70ed (Fever) &#8211; \u98ce\u5bd2\u611f\u5192 (Wind-Cold Common Cold)<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $tcm-&gt;linkSymptomToSyndrome(2, 1, 0.7);<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fever (symptom ID 2) is moderately associated (weight 0.7) with wind-cold<\/li>\n\n\n\n<li>Note the lower weight because in wind-cold patterns, fever is typically mild (\u4f4e\u70ed) compared to wind-heat patterns where fever is more pronounced<\/li>\n\n\n\n<li>The comment &#8220;(\u4f4e\u70ed)&#8221; reminds us this is for low-grade fever<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u54b3\u55fd (Cough) &#8211; \u98ce\u5bd2\u611f\u5192 (Wind-Cold Common Cold)<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   $tcm-&gt;linkSymptomToSyndrome(3, 1, 0.8);<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cough (symptom ID 3) is strongly associated (weight 0.8) with wind-cold<\/li>\n\n\n\n<li>In wind-cold patterns, the cough is typically with thin white phlegm and may be accompanied by an itchy throat<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Clinical Significance<\/h3>\n\n\n\n<p>These weights reflect TCM clinical patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>High weight (0.9)<\/strong>: Nearly pathognomonic for this syndrome (e.g., occipital headache for wind-cold)<\/li>\n\n\n\n<li><strong>Medium weight (0.7-0.8)<\/strong>: Common but not exclusive to this syndrome<\/li>\n\n\n\n<li><strong>Low weight (&lt;0.5)<\/strong>: May appear but not characteristic<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How the System Uses These Relationships<\/h3>\n\n\n\n<p>When a patient presents with multiple symptoms:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The system sums weights for each possible syndrome<\/li>\n\n\n\n<li>Syndromes with higher total weights are more likely<\/li>\n\n\n\n<li>For your examples, a patient with headache + fever + cough would score:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wind-cold: 0.9 + 0.7 + 0.8 = 2.4<\/li>\n\n\n\n<li>Compare this to other syndromes&#8217; scores to determine the most likely pattern<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Important Notes<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Weights should be determined by:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Classical TCM texts<\/li>\n\n\n\n<li>Clinical experience<\/li>\n\n\n\n<li>Statistical analysis of cases<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>These relationships form the core of the pattern differentiation (\u8fa9\u8bc1) algorithm<\/li>\n\n\n\n<li>A complete system would have many more such relationships to cover all common TCM patterns<\/li>\n<\/ol>\n\n\n\n<p>Would you like me to explain how to determine appropriate weights or how to extend this to more complex patterns?<\/p>\n\n\n\n<p>\u597d\u7684\uff0c\u6211\u7528\u4e2d\u6587\u8be6\u7ec6\u89e3\u91ca\u8fd9\u4e9b\u75c7\u72b6\u4e0e\u8bc1\u578b\u7684\u5173\u8054\u5173\u7cfb\uff1a<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><code>linkSymptomToSyndrome()<\/code> \u65b9\u6cd5\u7684\u4f5c\u7528<\/strong><\/h3>\n\n\n\n<p>\u8fd9\u662f\u4e2d\u533b\u8fa8\u8bc1\u7cfb\u7edf\u4e2d\u7528\u4e8e <strong>\u5efa\u7acb\u75c7\u72b6\u4e0e\u8bc1\u578b\u5173\u8054\u5173\u7cfb<\/strong> \u7684\u6838\u5fc3\u65b9\u6cd5\uff0c\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$tcm-&gt;linkSymptomToSyndrome(\u75c7\u72b6ID, \u8bc1\u578bID, \u6743\u91cd\u503c);<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u75c7\u72b6ID<\/strong>\uff1a\u5bf9\u5e94<code>symptoms<\/code>\u8868\u4e2d\u7684\u75c7\u72b6\uff08\u5982\u5934\u75db\u3001\u53d1\u70ed\uff09<\/li>\n\n\n\n<li><strong>\u8bc1\u578bID<\/strong>\uff1a\u5bf9\u5e94<code>syndromes<\/code>\u8868\u4e2d\u7684\u8bc1\u578b\uff08\u5982\u98ce\u5bd2\u611f\u5192\u3001\u98ce\u70ed\u611f\u5192\uff09<\/li>\n\n\n\n<li><strong>\u6743\u91cd\u503c<\/strong>\uff1a0.0~1.0\u7684\u5c0f\u6570\uff0c\u8868\u793a <strong>\u8be5\u75c7\u72b6\u5bf9\u8be5\u8bc1\u578b\u7684\u6307\u5411\u6027\u5f3a\u5ea6<\/strong>\uff08\u8d8a\u63a5\u8fd11\uff0c\u5173\u8054\u6027\u8d8a\u5f3a\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u5177\u4f53\u793a\u4f8b\u89e3\u6790<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. \u5934\u75db \u2192 \u98ce\u5bd2\u611f\u5192\uff08\u6743\u91cd0.9\uff09<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$tcm-&gt;linkSymptomToSyndrome(1, 1, 0.9); \/\/ \u5934\u75db-\u98ce\u5bd2\u611f\u5192<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e2d\u533b\u7406\u8bba\u4f9d\u636e<\/strong>\uff1a<br>\u98ce\u5bd2\u611f\u5192\u7684\u5934\u75db\u7279\u70b9\u662f <strong>\u540e\u8111\u52fa\u75bc\u75db\u660e\u663e<\/strong>\uff0c\u4f34\u968f\u6015\u98ce\u6015\u51b7\uff0c\u75bc\u75db\u9047\u5bd2\u52a0\u91cd\u3002\u8fd9\u662f\u98ce\u5bd2\u8868\u8bc1\u7684\u5178\u578b\u8868\u73b0\uff0c\u56e0\u6b64\u6743\u91cd\u5f88\u9ad8\uff080.9\uff09\u3002<\/li>\n\n\n\n<li><strong>\u4e34\u5e8a\u610f\u4e49<\/strong>\uff1a<br>\u5982\u679c\u60a3\u8005\u6709\u5934\u75db\uff0c\u7cfb\u7edf\u4f1a\u4f18\u5148\u8003\u8651\u98ce\u5bd2\u611f\u5192\u7684\u53ef\u80fd\u6027\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">2. \u53d1\u70ed \u2192 \u98ce\u5bd2\u611f\u5192\uff08\u6743\u91cd0.7\uff0c\u6807\u6ce8&#8221;\u4f4e\u70ed&#8221;\uff09<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$tcm-&gt;linkSymptomToSyndrome(2, 1, 0.7); \/\/ \u53d1\u70ed-\u98ce\u5bd2\u611f\u5192(\u4f4e\u70ed)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e2d\u533b\u7406\u8bba\u4f9d\u636e<\/strong>\uff1a<br>\u98ce\u5bd2\u611f\u5192\u7684\u53d1\u70ed\u901a\u5e38\u662f <strong>\u4f4e\u70ed\uff08\u4f53\u6e29\u8f7b\u5ea6\u5347\u9ad8\uff09<\/strong>\uff0c\u4e14\u60a3\u8005\u81ea\u89c9\u6076\u5bd2\uff08\u6015\u51b7\uff09\u91cd\u4e8e\u53d1\u70ed\u3002\u76f8\u6bd4\u98ce\u70ed\u611f\u5192\u7684\u9ad8\u70ed\uff0c\u98ce\u5bd2\u53d1\u70ed\u7684\u6743\u91cd\u8f83\u4f4e\uff080.7\uff09\u3002<\/li>\n\n\n\n<li><strong>\u5173\u952e\u533a\u522b<\/strong>\uff1a<br>\u5982\u679c\u662f\u98ce\u70ed\u611f\u5192\uff0c\u53d1\u70ed\u6743\u91cd\u53ef\u80fd\u8bbe\u4e3a0.9\uff08\u56e0\u98ce\u70ed\u4ee5\u9ad8\u70ed\u4e3a\u4e3b\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">3. \u54b3\u55fd \u2192 \u98ce\u5bd2\u611f\u5192\uff08\u6743\u91cd0.8\uff09<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$tcm-&gt;linkSymptomToSyndrome(3, 1, 0.8); \/\/ \u54b3\u55fd-\u98ce\u5bd2\u611f\u5192<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e2d\u533b\u7406\u8bba\u4f9d\u636e<\/strong>\uff1a<br>\u98ce\u5bd2\u54b3\u55fd\u7684\u7279\u70b9\u662f <strong>\u54b3\u58f0\u91cd\u6d4a\u3001\u75f0\u767d\u6e05\u7a00<\/strong>\uff0c\u4f34\u5589\u75d2\uff0c\u56e0\u80ba\u6c14\u88ab\u5bd2\u90aa\u90c1\u95ed\u6240\u81f4\u3002\u8fd9\u662f\u98ce\u5bd2\u88ad\u80ba\u7684\u5e38\u89c1\u75c7\u72b6\uff0c\u4f46\u54b3\u55fd\u4e5f\u53ef\u89c1\u4e8e\u5176\u4ed6\u8bc1\u578b\uff08\u5982\u98ce\u70ed\u3001\u75f0\u6e7f\uff09\uff0c\u56e0\u6b64\u6743\u91cd\u7565\u4f4e\u4e8e\u5934\u75db\uff080.8\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u6743\u91cd\u8bbe\u5b9a\u7684\u4e34\u5e8a\u903b\u8f91<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6743\u91cd\u8303\u56f4<\/th><th>\u542b\u4e49<\/th><th>\u793a\u4f8b<\/th><\/tr><\/thead><tbody><tr><td>0.9~1.0<\/td><td><strong>\u9ad8\u5ea6\u7279\u5f02\u6027\u75c7\u72b6<\/strong>\uff08\u51e0\u4e4e\u53ef\u786e\u5b9a\u8bc1\u578b\uff09<\/td><td>\u98ce\u5bd2\u611f\u5192\u7684\u540e\u8111\u5934\u75db<\/td><\/tr><tr><td>0.7~0.8<\/td><td><strong>\u5e38\u89c1\u4f46\u4e0d\u552f\u4e00<\/strong>\u7684\u75c7\u72b6<\/td><td>\u98ce\u5bd2\u611f\u5192\u7684\u54b3\u55fd\u3001\u4f4e\u70ed<\/td><\/tr><tr><td>&lt;0.5<\/td><td><strong>\u975e\u5178\u578b\u75c7\u72b6<\/strong>\uff08\u9700\u7ed3\u5408\u5176\u4ed6\u75c7\u72b6\uff09<\/td><td>\u98ce\u5bd2\u611f\u5192\u5076\u5c14\u51fa\u73b0\u7684\u9f3b\u585e\uff080.4\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u7cfb\u7edf\u5982\u4f55\u8ba1\u7b97\u8fa8\u8bc1\u7ed3\u679c\uff1f<\/strong><\/h3>\n\n\n\n<p>\u5047\u8bbe\u60a3\u8005\u6709\u4ee5\u4e0b\u75c7\u72b6\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5934\u75db\uff08ID=1\uff09<\/li>\n\n\n\n<li>\u53d1\u70ed\uff08ID=2\uff09<\/li>\n\n\n\n<li>\u54b3\u55fd\uff08ID=3\uff09<\/li>\n<\/ol>\n\n\n\n<p>\u7cfb\u7edf\u4f1a\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u904d\u5386\u6240\u6709\u5173\u8054\u8bc1\u578b<\/strong>\uff0c\u8ba1\u7b97\u603b\u5206\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u98ce\u5bd2\u611f\u5192\u603b\u5206 = 0.9\uff08\u5934\u75db\uff09 + 0.7\uff08\u53d1\u70ed\uff09 + 0.8\uff08\u54b3\u55fd\uff09 = <strong>2.4<\/strong><\/li>\n\n\n\n<li>\u98ce\u70ed\u611f\u5192\u603b\u5206\uff08\u5047\u8bbe\u5173\u8054\u6743\u91cd\u4e0d\u540c\uff09= 0.6 + 0.9 + 0.5 = <strong>2.0<\/strong><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9009\u62e9\u603b\u5206\u6700\u9ad8\u7684\u8bc1\u578b<\/strong>\uff08\u6b64\u4f8b\u4e2d\u4f18\u5148\u8fa8\u4e3a\u98ce\u5bd2\u611f\u5192\uff09\u3002<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u5b9e\u9645\u5e94\u7528\u6ce8\u610f\u4e8b\u9879<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u52a8\u6001\u8c03\u6574\u6743\u91cd<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5982\u679c\u60a3\u8005\u5934\u75db\u4e3a <strong>\u80c0\u75db<\/strong>\uff08\u98ce\u70ed\u7279\u5f81\uff09\uff0c\u53ef\u80fd\u9700\u8981\u964d\u4f4e\u98ce\u5bd2\u6743\u91cd\u3002<\/li>\n\n\n\n<li>\u820c\u8109\u4fe1\u606f\uff08\u5982\u82d4\u767d\u3001\u8109\u6d6e\u7d27\uff09\u53ef\u989d\u5916\u52a0\u5206\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u75c7\u72b6\u7ec4\u5408\u903b\u8f91<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u98ce\u5bd2\u611f\u5192\u7684\u5178\u578b\u7ec4\u5408\u662f <strong>\u5934\u75db+\u6076\u5bd2+\u65e0\u6c57+\u8109\u6d6e\u7d27<\/strong>\uff0c\u7ec4\u5408\u51fa\u73b0\u65f6\u6743\u91cd\u53ef\u53e0\u52a0\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6392\u9664\u89c4\u5219<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u82e5\u60a3\u8005\u6709 <strong>\u53e3\u6e34\u559c\u51b7\u996e<\/strong>\uff08\u98ce\u70ed\u7279\u5f81\uff09\uff0c\u5373\u4f7f\u6709\u5934\u75db\uff0c\u4e5f\u5e94\u964d\u4f4e\u98ce\u5bd2\u611f\u5192\u7684\u53ef\u80fd\u6027\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u6269\u5c55\u5efa\u8bae<\/strong><\/h3>\n\n\n\n<p>\u5982\u679c\u9700\u8981\u66f4\u7cbe\u51c6\u7684\u8fa8\u8bc1\uff0c\u53ef\u4ee5\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7ec6\u5206\u75c7\u72b6\u5c5e\u6027<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5934\u75db\u5206\u4e3a&#8221;\u524d\u989d\u75db&#8221;\uff08\u9633\u660e\u7ecf\uff09\u3001&#8221;\u4e24\u4fa7\u75db&#8221;\uff08\u5c11\u9633\u7ecf\uff09\u3001&#8221;\u540e\u5934\u75db&#8221;\uff08\u592a\u9633\u7ecf\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6dfb\u52a0\u53cd\u5411\u6743\u91cd<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f8b\u5982&#8221;\u9ad8\u70ed&#8221;\u5bf9\u98ce\u5bd2\u611f\u5192\u53ef\u80fd\u662f\u8d1f\u6743\u91cd\uff08-0.5\uff09\uff0c\u56e0\u98ce\u5bd2\u901a\u5e38\u4e0d\u51fa\u73b0\u9ad8\u70ed\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u9700\u8981\u8fdb\u4e00\u6b65\u8ba8\u8bba\u5177\u4f53\u75c7\u72b6\u7684\u6743\u91cd\u8bbe\u7f6e\u5417\uff1f\u6216\u8005\u5982\u4f55\u7ed3\u5408\u820c\u8109\u4fe1\u606f\u4f18\u5316\u7b97\u6cd5\uff1f<\/p>\n\n\n\n<p>\u597d\u7684\uff01\u6211\u4eec\u5c06\u4ece <strong>\u75c7\u72b6\u6743\u91cd\u7cbe\u7ec6\u5316\u8bbe\u7f6e<\/strong> \u548c <strong>\u820c\u8109\u4fe1\u606f\u6574\u5408\u7b97\u6cd5<\/strong> \u4e24\u4e2a\u65b9\u5411\u6df1\u5165\u63a2\u8ba8\u5982\u4f55\u4f18\u5316\u4e2d\u533b\u8fa8\u8bc1\u7cfb\u7edf\u3002\u4ee5\u4e0b\u662f\u5177\u4f53\u65b9\u6848\uff1a<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e00\u3001\u75c7\u72b6\u6743\u91cd\u8bbe\u7f6e\u7684\u8fdb\u9636\u7b56\u7565<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. <strong>\u75c7\u72b6\u5206\u7ea7\u4e0e\u52a8\u6001\u6743\u91cd<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u6570\u636e\u5e93\u4f18\u5316\uff1a\u75c7\u72b6\u8868\u6dfb\u52a0\u7279\u5f81\u5b57\u6bb5\nALTER TABLE symptoms ADD COLUMN specificity ENUM('\u9ad8', '\u4e2d', '\u4f4e') DEFAULT '\u4e2d';\nALTER TABLE symptoms ADD COLUMN intensity_affect BOOLEAN DEFAULT TRUE; -- \u662f\u5426\u53d7\u75c7\u72b6\u7a0b\u5ea6\u5f71\u54cd<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u75c7\u72b6\u7c7b\u578b<\/th><th>\u6743\u91cd\u8303\u56f4<\/th><th>\u793a\u4f8b<\/th><th>\u8c03\u6574\u903b\u8f91<\/th><\/tr><\/thead><tbody><tr><td><strong>\u6838\u5fc3\u75c7\u72b6<\/strong><\/td><td>0.8~1.0<\/td><td>\u98ce\u5bd2\u611f\u5192\u7684&#8221;\u6076\u5bd2\u65e0\u6c57&#8221;<\/td><td>\u5fc5\u987b\u51fa\u73b0\uff0c\u5426\u5219\u6392\u9664\u8be5\u8bc1\u578b<\/td><\/tr><tr><td><strong>\u5178\u578b\u75c7\u72b6<\/strong><\/td><td>0.6~0.8<\/td><td>\u98ce\u5bd2\u611f\u5192\u7684&#8221;\u9f3b\u6d41\u6e05\u6d95&#8221;<\/td><td>\u51fa\u73b02\u4e2a\u4ee5\u4e0a\u663e\u8457\u63d0\u5347\u8bc1\u578b\u6982\u7387<\/td><\/tr><tr><td><strong>\u975e\u7279\u5f02\u75c7\u72b6<\/strong><\/td><td>0.3~0.5<\/td><td>&#8220;\u4e4f\u529b&#8221;\uff08\u53ef\u89c1\u4e8e\u591a\u79cd\u8bc1\u578b\uff09<\/td><td>\u9700\u7ed3\u5408\u5176\u4ed6\u75c7\u72b6\u5224\u65ad<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>PHP\u5b9e\u73b0\u52a8\u6001\u6743\u91cd\u8c03\u6574<\/strong>\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u8003\u8651\u75c7\u72b6\u7a0b\u5ea6\uff08\u8f7b\/\u4e2d\/\u91cd\uff09\u7684\u6743\u91cd\u8ba1\u7b97\nfunction calculateAdjustedWeight($baseWeight, $severity) {\n    $multiplier = &#91;\n        '\u8f7b' =&gt; 0.7, \n        '\u4e2d' =&gt; 1.0,\n        '\u91cd' =&gt; 1.3\n    ];\n    return min(1.0, $baseWeight * $multiplier&#91;$severity]);\n}\n\n\/\/ \u793a\u4f8b\uff1a\u98ce\u5bd2\u54b3\u55fd\u75c7\u72b6\u91cd\u5ea6\u65f6\u6743\u91cd\u63d0\u5347\n$adjustedWeight = calculateAdjustedWeight(0.8, '\u91cd'); \/\/ 0.8 \u2192 1.04\uff08\u6700\u7ec8\u53d61.0\uff09<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2. <strong>\u75c7\u72b6\u7ec4\u5408\u903b\u8f91<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u7279\u6b8a\u7ec4\u5408\u52a0\u6210\u89c4\u5219\uff08\u9700\u5728diagnose()\u65b9\u6cd5\u4e2d\u6dfb\u52a0\uff09\n$specialCombos = &#91;\n    '\u98ce\u5bd2\u611f\u5192' =&gt; &#91;\n        &#91;'symptoms' =&gt; &#91;1, 4], 'bonus' =&gt; 0.2], \/\/ \u5934\u75db+\u9f3b\u585e\u6e05\u6d95\n        &#91;'symptoms' =&gt; &#91;2, 5], 'bonus' =&gt; 0.3]  \/\/ \u53d1\u70ed+\u65e0\u6c57\n    ]\n];\n\n\/\/ \u5728\u8ba1\u7b97\u603b\u6743\u91cd\u65f6\u68c0\u67e5\u7ec4\u5408\nforeach ($specialCombos&#91;$syndrome] as $combo) {\n    if (array_intersect($combo&#91;'symptoms'], $inputSymptoms) == $combo&#91;'symptoms']) {\n        $totalWeight += $combo&#91;'bonus'];\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u3001\u820c\u8109\u4fe1\u606f\u7684\u6574\u5408\u7b97\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. <strong>\u820c\u8c61\u7279\u5f81\u91cf\u5316\u8868<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE tongue_features (\n    feature_id INT PRIMARY KEY,\n    feature_name VARCHAR(50) NOT NULL, -- \u5982\"\u820c\u6de1\u7ea2\"\u3001\"\u82d4\u8584\u767d\"\n    syndrome_weights JSON NOT NULL     -- \u5b58\u50a8\u5404\u8bc1\u578b\u7684\u5173\u8054\u6743\u91cd\n);\n\n-- \u793a\u4f8b\u6570\u636e\uff08\u98ce\u5bd2\u611f\u5192\u90e8\u5206\uff09\nINSERT INTO tongue_features VALUES\n(1, '\u820c\u6de1\u7ea2', '{\"\u98ce\u5bd2\u611f\u5192\":0.7, \"\u98ce\u70ed\u611f\u5192\":0.2}'),\n(2, '\u82d4\u8584\u767d', '{\"\u98ce\u5bd2\u611f\u5192\":0.8, \"\u75f0\u6e7f\u8bc1\":0.1}');<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2. <strong>\u8109\u8c61\u7279\u5f81\u5904\u7406<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE pulse_patterns (\n    pattern_id INT PRIMARY KEY,\n    pattern_name VARCHAR(50) NOT NULL, -- \u5982\"\u8109\u6d6e\u7d27\"\n    syndrome_weights JSON NOT NULL\n);\n\n-- \u793a\u4f8b\u8109\u8c61\u6743\u91cd\nINSERT INTO pulse_patterns VALUES\n(1, '\u8109\u6d6e\u7d27', '{\"\u98ce\u5bd2\u611f\u5192\":0.9, \"\u8868\u5bd2\u8bc1\":0.85}'),\n(2, '\u8109\u6d6e\u6570', '{\"\u98ce\u70ed\u611f\u5192\":0.9, \"\u536b\u5206\u8bc1\":0.7}');<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">3. <strong>\u7efc\u5408\u8fa8\u8bc1\u7b97\u6cd5\u5347\u7ea7<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u65b0\u7248diagnose()\u65b9\u6cd5\u52a0\u5165\u820c\u8109\u5206\u6790\npublic function diagnose($symptomIds, $tongueFeatureId, $pulsePatternId) {\n    \/\/ \u539f\u6709\u75c7\u72b6\u5206\u6790\n    $syndromeWeights = $this-&gt;calculateSymptomWeights($symptomIds);\n\n    \/\/ \u820c\u8c61\u5206\u6790\n    $tongueWeights = $this-&gt;getTongueWeights($tongueFeatureId);\n    foreach ($tongueWeights as $syndrome =&gt; $weight) {\n        $syndromeWeights&#91;$syndrome] += $weight * 0.5; \/\/ \u820c\u8c61\u6743\u91cd\u7cfb\u6570\n    }\n\n    \/\/ \u8109\u8c61\u5206\u6790\n    $pulseWeights = $this-&gt;getPulseWeights($pulsePatternId);\n    foreach ($pulseWeights as $syndrome =&gt; $weight) {\n        $syndromeWeights&#91;$syndrome] += $weight * 0.6; \/\/ \u8109\u8c61\u6743\u91cd\u7cfb\u6570\n    }\n\n    arsort($syndromeWeights);\n    return $syndromeWeights;\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">4. <strong>\u51b2\u7a81\u5904\u7406\u89c4\u5219<\/strong><\/h4>\n\n\n\n<p>\u5f53\u75c7\u72b6\u4e0e\u820c\u8109\u77db\u76fe\u65f6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u5728\u8fd4\u56de\u7ed3\u679c\u524d\u6dfb\u52a0\u9a8c\u8bc1\nforeach ($syndromeWeights as $syndrome =&gt; $weight) {\n    if ($this-&gt;hasConflict($syndrome, $tongueFeatureId, $pulsePatternId)) {\n        $syndromeWeights&#91;$syndrome] *= 0.5; \/\/ \u77db\u76fe\u8bc1\u578b\u964d\u6743\n    }\n}\n\n\/\/ \u51b2\u7a81\u68c0\u6d4b\u793a\u4f8b\nprivate function hasConflict($syndrome, $tongueId, $pulseId) {\n    $conflicts = &#91;\n        '\u98ce\u5bd2\u611f\u5192' =&gt; &#91;\n            'tongue' =&gt; &#91;'\u820c\u7ea2\u82d4\u9ec4'], \/\/ \u98ce\u5bd2\u4e0d\u5e94\u51fa\u73b0\u70ed\u8c61\u820c\n            'pulse' =&gt; &#91;'\u8109\u6570']       \/\/ \u98ce\u5bd2\u8109\u5e94\u6d6e\u7d27\u800c\u975e\u6570\n        ]\n    ];\n    \/\/ \u68c0\u6d4b\u903b\u8f91\u5b9e\u73b0...\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e09\u3001\u4e34\u5e8a\u9a8c\u8bc1\u4e0e\u8c03\u53c2\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. **\u6743\u91cd\u6821\u51c6\u6d41\u7a0b<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>graph TD\n    A&#91;\u6536\u96c6\u4e34\u5e8a\u75c5\u4f8b\u6570\u636e] --&gt; B&#91;\u4e13\u5bb6\u6807\u6ce8\u6807\u51c6\u8fa8\u8bc1]\n    B --&gt; C&#91;\u7cfb\u7edf\u521d\u6b65\u9884\u6d4b]\n    C --&gt; D{\u5bf9\u6bd4\u5206\u6790}\n    D --&gt;|\u51c6\u786e\u7387&lt;85%| E&#91;\u8c03\u6574\u75c7\u72b6\/\u820c\u8109\u6743\u91cd]\n    D --&gt;|\u51c6\u786e\u7387\u226585%| F&#91;\u51bb\u7ed3\u5f53\u524d\u53c2\u6570\u7248\u672c]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2. <strong>\u5173\u952e\u8c03\u53c2\u539f\u5219<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u820c\u8109\u6743\u91cd\u5360\u6bd4<\/strong>\uff1a\u5efa\u8bae\u75c7\u72b6\u536060%\uff0c\u820c\u8c6120%\uff0c\u8109\u8c6120%\uff08\u53ef\u6839\u636e\u75c5\u79cd\u8c03\u6574\uff09<\/li>\n\n\n\n<li><strong>\u5426\u51b3\u6027\u7279\u5f81<\/strong>\uff1a\u5982\u51fa\u73b0&#8221;\u820c\u7ea2\u7edb&#8221;\u5219\u76f4\u63a5\u6392\u9664\u98ce\u5bd2\u611f\u5192<\/li>\n\n\n\n<li><strong>\u5b63\u8282\u4fee\u6b63\u56e0\u5b50<\/strong>\uff1a\u51ac\u5b63\u98ce\u5bd2\u611f\u5192\u7684\u57fa\u7840\u6743\u91cd\u53ef\u4e0a\u6d6e10%<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u56db\u3001\u5b8c\u6574\u5e94\u7528\u793a\u4f8b<\/h3>\n\n\n\n<p><strong>\u573a\u666f<\/strong>\uff1a\u60a3\u8005\u51ac\u5b63\u5c31\u8bca\uff0c\u75c7\u72b6\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u75c7\u72b6\uff1a\u5267\u70c8\u5934\u75db\uff08\u91cd\uff09\u3001\u8f7b\u5ea6\u54b3\u55fd\uff08\u8f7b\uff09\u3001\u65e0\u6c57<\/li>\n\n\n\n<li>\u820c\u8c61\uff1a\u820c\u6de1\u7ea2\uff0c\u82d4\u8584\u767d\uff08ID=1\uff09<\/li>\n\n\n\n<li>\u8109\u8c61\uff1a\u8109\u6d6e\u7d27\uff08ID=1\uff09<\/li>\n<\/ul>\n\n\n\n<p><strong>\u7cfb\u7edf\u8fd0\u7b97\u8fc7\u7a0b<\/strong>\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u75c7\u72b6\u6743\u91cd\u8ba1\u7b97\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5934\u75db\uff1a1.0\uff08\u57fa\u78400.8 \u00d7 \u91cd\u5ea61.3\uff09<\/li>\n\n\n\n<li>\u54b3\u55fd\uff1a0.56\uff08\u57fa\u78400.8 \u00d7 \u8f7b\u5ea60.7\uff09<\/li>\n\n\n\n<li>\u65e0\u6c57\uff1a0.9\uff08\u7279\u6b8a\u75c7\u72b6\uff09<\/li>\n\n\n\n<li>\u7ec4\u5408\u52a0\u6210\uff1a\u5934\u75db+\u65e0\u6c57 \u2192 +0.3<\/li>\n\n\n\n<li>\u5b63\u8282\u52a0\u6210\uff1a\u00d71.1<\/li>\n\n\n\n<li><strong>\u5c0f\u8ba1<\/strong>\uff1a(1.0 + 0.56 + 0.9 + 0.3) \u00d7 1.1 = 3.036<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u820c\u8109\u6743\u91cd\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u820c\u8c61\uff1a0.7\uff08\u98ce\u5bd2\uff09<\/li>\n\n\n\n<li>\u8109\u8c61\uff1a0.9\uff08\u98ce\u5bd2\uff09<\/li>\n\n\n\n<li><strong>\u5c0f\u8ba1<\/strong>\uff1a0.7\u00d70.5 + 0.9\u00d70.6 = 0.89<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u603b\u5206<\/strong>\uff1a3.036 + 0.89 = 3.926 \u2192 \u786e\u8bca\u4e3a\u98ce\u5bd2\u611f\u5192<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u901a\u8fc7\u8fd9\u79cd\u7ed3\u6784\u5316\u8bbe\u8ba1\uff0c\u7cfb\u7edf\u53ef\u5b9e\u73b0\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u75c7\u72b6\u7279\u5f81\u91cf\u5316<\/strong>\u7684\u6807\u51c6\u5316\u8fa8\u8bc1<\/li>\n\n\n\n<li><strong>\u820c\u8109\u4fe1\u606f<\/strong>\u7684\u79d1\u5b66\u6574\u5408<\/li>\n\n\n\n<li><strong>\u4e34\u5e8a\u9002\u5e94\u6027<\/strong>\u7684\u52a8\u6001\u8c03\u6574<\/li>\n<\/ol>\n\n\n\n<p>\u9700\u8981\u7ee7\u7eed\u63a2\u8ba8\u5982\u4f55\u5b9e\u73b0\u673a\u5668\u5b66\u4e60\u52a8\u6001\u8c03\u53c2\uff0c\u6216\u662f\u5177\u4f53\u75c5\u79cd\uff08\u5982\u54b3\u55fd\u3001\u5931\u7720\uff09\u7684\u4e13\u9879\u4f18\u5316\u5417\uff1f<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e2d\u533b\u75c7\u72b6\u6570\u636e\u5e93\u79cd\u5b50\u6570\u636e\uff08Seed Data\uff09<\/h1>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u4e2d\u533b\u5e38\u89c1\u75c7\u72b6\u6570\u636e\u8868\u586b\u5145\u811a\u672c\uff0c\u5305\u542b100+\u4e2a\u5178\u578b\u75c7\u72b6\uff0c\u6309\u7167\u4e2d\u533b\u8bca\u65ad\u5b66\u5206\u7c7b\u6574\u7406\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u5168\u8eab\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u53d1\u70ed', '\u4f53\u6e29\u9ad8\u4e8e\u6b63\u5e38\u8303\u56f4\uff0c\u53ef\u4f34\u6709\u6076\u5bd2\u6216\u6076\u70ed'),\n('\u6076\u5bd2', '\u81ea\u89c9\u6015\u51b7\uff0c\u52a0\u8863\u88ab\u6216\u8fd1\u706b\u53d6\u6696\u4e0d\u80fd\u7f13\u89e3'),\n('\u754f\u98ce', '\u9047\u98ce\u89c9\u51b7\uff0c\u907f\u98ce\u5219\u7f13'),\n('\u81ea\u6c57', '\u767d\u5929\u4e0d\u56e0\u52b3\u7d2f\u3001\u708e\u70ed\u800c\u6c57\u51fa'),\n('\u76d7\u6c57', '\u7761\u4e2d\u6c57\u51fa\uff0c\u9192\u540e\u6c57\u6b62'),\n('\u65e0\u6c57', '\u76ae\u80a4\u5e72\u71e5\u65e0\u6c57\u51fa'),\n('\u5927\u6c57', '\u6c57\u51fa\u91cf\u591a\uff0c\u53ef\u4f34\u53d1\u70ed'),\n('\u6218\u6c57', '\u5148\u6076\u5bd2\u6218\u6817\uff0c\u800c\u540e\u6c57\u51fa'),\n('\u5934\u9762\u6c57\u51fa', '\u4ec5\u5934\u90e8\u6216\u5934\u9888\u90e8\u6c57\u51fa\u660e\u663e'),\n('\u534a\u8eab\u6c57\u51fa', '\u8eab\u4f53\u4e00\u4fa7\u6c57\u51fa\uff0c\u53e6\u4e00\u4fa7\u65e0\u6c57'),\n('\u624b\u8db3\u5fc3\u6c57', '\u624b\u638c\u3001\u8db3\u5e95\u6c57\u51fa\u8fc7\u591a'),\n('\u4e4f\u529b', '\u80a2\u4f53\u5026\u6020\u65e0\u529b\uff0c\u6d3b\u52a8\u540e\u52a0\u91cd'),\n('\u6d88\u7626', '\u4f53\u91cd\u660e\u663e\u4e0b\u964d\uff0c\u808c\u8089\u6d88\u7626'),\n('\u80a5\u80d6', '\u4f53\u91cd\u8d85\u8fc7\u6807\u51c6\uff0c\u5f62\u4f53\u80a5\u80d6'),\n('\u6d6e\u80bf', '\u808c\u80a4\u80bf\u80c0\uff0c\u6309\u4e4b\u51f9\u9677');\n\n-- \u5934\u9762\u4e94\u5b98\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u5934\u75db', '\u5934\u90e8\u75bc\u75db\uff0c\u53ef\u533a\u5206\u90e8\u4f4d\u548c\u6027\u8d28'),\n('\u5934\u6655', '\u5934\u8111\u660f\u6c89\uff0c\u89c6\u7269\u65cb\u8f6c'),\n('\u5934\u91cd', '\u5934\u90e8\u6c89\u91cd\u5982\u88f9'),\n('\u5934\u80c0', '\u5934\u90e8\u80c0\u75db\u4e0d\u9002'),\n('\u9762\u7ea2', '\u9762\u90e8\u989c\u8272\u7ea2\u4e8e\u6b63\u5e38'),\n('\u9762\u9ec4', '\u9762\u90e8\u840e\u9ec4\u6216\u9c9c\u9ec4\u5982\u6a58'),\n('\u9762\u767d', '\u9762\u90e8\u82cd\u767d\u65e0\u534e'),\n('\u9762\u9752', '\u9762\u90e8\u9752\u7d2b\u6216\u9752\u7070'),\n('\u9762\u9ed1', '\u9762\u90e8\u9ee7\u9ed1\u65e0\u5149\u6cfd'),\n('\u76ee\u8d64', '\u773c\u767d\u53d1\u7ea2\u6216\u8840\u4e1d\u589e\u591a'),\n('\u76ee\u75db', '\u773c\u775b\u75bc\u75db\u4e0d\u9002'),\n('\u76ee\u6da9', '\u773c\u775b\u5e72\u6da9\u4e0d\u9002'),\n('\u76ee\u75d2', '\u773c\u7751\u6216\u773c\u7403\u53d1\u75d2'),\n('\u8033\u9e23', '\u8033\u4e2d\u9e23\u54cd\u5982\u8749'),\n('\u8033\u804b', '\u542c\u529b\u51cf\u9000\u6216\u4e27\u5931'),\n('\u9f3b\u585e', '\u9f3b\u8154\u5835\u585e\u4e0d\u901a\u6c14'),\n('\u6d41\u6d95', '\u9f3b\u6d95\u91cf\u591a\uff0c\u53ef\u5206\u6e05\u6d4a'),\n('\u9f3b\u8844', '\u9f3b\u8154\u51fa\u8840'),\n('\u53e3\u5e72', '\u53e3\u8154\u5e72\u71e5\u5c11\u6d25'),\n('\u53e3\u82e6', '\u53e3\u4e2d\u81ea\u89c9\u82e6\u5473'),\n('\u53e3\u751c', '\u53e3\u4e2d\u81ea\u89c9\u751c\u5473'),\n('\u53e3\u54b8', '\u53e3\u4e2d\u81ea\u89c9\u54b8\u5473'),\n('\u53e3\u9178', '\u53e3\u4e2d\u81ea\u89c9\u9178\u5473'),\n('\u53e3\u9ecf', '\u53e3\u4e2d\u7c98\u817b\u4e0d\u723d'),\n('\u53e3\u81ed', '\u53e3\u4e2d\u51fa\u6c14\u81ed\u79fd'),\n('\u9f7f\u75db', '\u7259\u9f7f\u75bc\u75db'),\n('\u9f7f\u8844', '\u7259\u9f88\u51fa\u8840'),\n('\u54bd\u5589\u80bf\u75db', '\u54bd\u5589\u90e8\u4f4d\u7ea2\u80bf\u75bc\u75db'),\n('\u58f0\u97f3\u5636\u54d1', '\u53d1\u97f3\u6c99\u54d1\u4e0d\u6e05');\n\n-- \u80f8\u8179\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u80f8\u95f7', '\u80f8\u90e8\u618b\u95f7\u4e0d\u7545'),\n('\u80f8\u75db', '\u80f8\u90e8\u75bc\u75db\uff0c\u53ef\u5b9a\u4f4d\u4e8e\u5fc3\u524d\u533a\u7b49'),\n('\u5fc3\u60b8', '\u81ea\u89c9\u5fc3\u8df3\u4e0d\u5b89'),\n('\u80c1\u80c0', '\u80c1\u808b\u90e8\u80c0\u6ee1\u4e0d\u9002'),\n('\u80c1\u75db', '\u80c1\u808b\u90e8\u75bc\u75db'),\n('\u8118\u75de', '\u80c3\u8118\u90e8\u75de\u585e\u6ee1\u95f7'),\n('\u8118\u75db', '\u80c3\u8118\u90e8\u75bc\u75db'),\n('\u8179\u80c0', '\u8179\u90e8\u80c0\u6ee1\u4e0d\u9002'),\n('\u8179\u75db', '\u8179\u90e8\u75bc\u75db\uff0c\u9700\u533a\u5206\u90e8\u4f4d'),\n('\u5c11\u8179\u75db', '\u5c0f\u8179\u90e8\u75bc\u75db'),\n('\u8110\u5468\u75db', '\u809a\u8110\u5468\u56f4\u75bc\u75db'),\n('\u8179\u90e8\u5305\u5757', '\u8179\u90e8\u53ef\u89e6\u53ca\u5f02\u5e38\u80bf\u5757'),\n('\u8170\u9178', '\u8170\u90e8\u9178\u695a\u4e0d\u9002'),\n('\u8170\u75db', '\u8170\u90e8\u75bc\u75db\uff0c\u53ef\u4f34\u6d3b\u52a8\u53d7\u9650');\n\n-- \u4e8c\u4fbf\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u4fbf\u79d8', '\u5927\u4fbf\u5e72\u7ed3\uff0c\u6392\u4fbf\u56f0\u96be'),\n('\u6cc4\u6cfb', '\u5927\u4fbf\u6b21\u6570\u589e\u591a\uff0c\u7caa\u8d28\u7a00\u6e8f'),\n('\u4fbf\u6e8f', '\u5927\u4fbf\u4e0d\u6210\u5f62\uff0c\u8d28\u7a00'),\n('\u5b8c\u8c37\u4e0d\u5316', '\u5927\u4fbf\u542b\u6709\u672a\u6d88\u5316\u98df\u7269'),\n('\u8113\u8840\u4fbf', '\u5927\u4fbf\u5e26\u8113\u8840'),\n('\u9ed1\u4fbf', '\u5927\u4fbf\u989c\u8272\u53d1\u9ed1\u5982\u67cf\u6cb9'),\n('\u4fbf\u8840', '\u5927\u4fbf\u5e26\u9c9c\u8840'),\n('\u91cc\u6025\u540e\u91cd', '\u4fbf\u610f\u6025\u8feb\uff0c\u809b\u95e8\u91cd\u5760'),\n('\u5c0f\u4fbf\u6e05\u957f', '\u5c3f\u91cf\u591a\u800c\u8272\u6e05'),\n('\u5c0f\u4fbf\u77ed\u9ec4', '\u5c3f\u91cf\u5c11\u800c\u8272\u6df1\u9ec4'),\n('\u5c3f\u9891', '\u5c0f\u4fbf\u6b21\u6570\u660e\u663e\u589e\u591a'),\n('\u5c3f\u6025', '\u5c3f\u610f\u6025\u8feb\u96be\u5fcd'),\n('\u5c3f\u75db', '\u6392\u5c3f\u65f6\u5c3f\u9053\u75bc\u75db'),\n('\u5c3f\u8840', '\u5c0f\u4fbf\u4e2d\u5e26\u8840'),\n('\u5c3f\u6d4a', '\u5c0f\u4fbf\u6d51\u6d4a\u5982\u7c73\u6cd4'),\n('\u5c3f\u6709\u4f59\u6ca5', '\u6392\u5c3f\u540e\u4ecd\u6709\u5c3f\u610f'),\n('\u9057\u5c3f', '\u7761\u7720\u4e2d\u5c0f\u4fbf\u81ea\u9057'),\n('\u5c3f\u5931\u7981', '\u5c0f\u4fbf\u4e0d\u80fd\u81ea\u63a7'),\n('\u5c3f\u95ed', '\u5c0f\u4fbf\u70b9\u6ef4\u4e0d\u51fa');\n\n-- \u56db\u80a2\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u56db\u80a2\u65e0\u529b', '\u80a2\u4f53\u8f6f\u5f31\u65e0\u529b'),\n('\u56db\u80a2\u9ebb\u6728', '\u80a2\u4f53\u611f\u89c9\u8fdf\u949d\u6216\u6d88\u5931'),\n('\u56db\u80a2\u75bc\u75db', '\u80a2\u4f53\u808c\u8089\u5173\u8282\u75bc\u75db'),\n('\u56db\u80a2\u62bd\u6410', '\u56db\u80a2\u4e0d\u81ea\u4e3b\u62bd\u52a8'),\n('\u56db\u80a2\u53a5\u51b7', '\u624b\u8db3\u9006\u51b7\u4e0d\u6e29'),\n('\u624b\u8db3\u5fc3\u70ed', '\u624b\u5fc3\u8db3\u5fc3\u53d1\u70ed'),\n('\u5173\u8282\u80bf\u75db', '\u5173\u8282\u90e8\u4f4d\u80bf\u80c0\u75bc\u75db'),\n('\u5173\u8282\u53d8\u5f62', '\u5173\u8282\u5f62\u6001\u6539\u53d8'),\n('\u808c\u8089\u840e\u7f29', '\u808c\u8089\u4f53\u79ef\u7f29\u5c0f');\n\n-- \u7761\u7720\u60c5\u5fd7\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u5931\u7720', '\u96be\u4ee5\u5165\u7761\u6216\u6613\u9192'),\n('\u591a\u68a6', '\u7761\u7720\u4e2d\u68a6\u5883\u7eb7\u7ead'),\n('\u55dc\u7761', '\u4e0d\u5206\u663c\u591c\u65f6\u65f6\u6b32\u7761'),\n('\u5fc3\u70e6', '\u5fc3\u4e2d\u70e6\u8e81\u4e0d\u5b89'),\n('\u6613\u6012', '\u60c5\u7eea\u6613\u6fc0\u52a8\u53d1\u6012'),\n('\u6291\u90c1', '\u60c5\u7eea\u4f4e\u843d\uff0c\u90c1\u90c1\u5be1\u6b22'),\n('\u7126\u8651', '\u7d27\u5f20\u4e0d\u5b89\uff0c\u5fe7\u8651\u8fc7\u5ea6'),\n('\u5065\u5fd8', '\u8bb0\u5fc6\u529b\u51cf\u9000');\n\n-- \u5987\u5973\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u6708\u7ecf\u5148\u671f', '\u6708\u7ecf\u5468\u671f\u63d0\u524d7\u5929\u4ee5\u4e0a'),\n('\u6708\u7ecf\u540e\u671f', '\u6708\u7ecf\u5468\u671f\u5ef6\u540e7\u5929\u4ee5\u4e0a'),\n('\u6708\u7ecf\u5148\u540e\u65e0\u5b9a\u671f', '\u6708\u7ecf\u5468\u671f\u7d0a\u4e71'),\n('\u6708\u7ecf\u8fc7\u591a', '\u7ecf\u91cf\u660e\u663e\u589e\u591a'),\n('\u6708\u7ecf\u8fc7\u5c11', '\u7ecf\u91cf\u660e\u663e\u51cf\u5c11'),\n('\u7ecf\u671f\u5ef6\u957f', '\u884c\u7ecf\u65f6\u95f4\u8d85\u8fc77\u5929'),\n('\u95ed\u7ecf', '\u6708\u7ecf\u505c\u95ed6\u4e2a\u6708\u4ee5\u4e0a'),\n('\u75db\u7ecf', '\u884c\u7ecf\u65f6\u5c0f\u8179\u75bc\u75db'),\n('\u5e26\u4e0b\u91cf\u591a', '\u9634\u9053\u5206\u6ccc\u7269\u589e\u591a'),\n('\u5e26\u4e0b\u8272\u767d', '\u767d\u5e26\u989c\u8272\u53d1\u767d'),\n('\u5e26\u4e0b\u8272\u9ec4', '\u767d\u5e26\u989c\u8272\u53d1\u9ec4'),\n('\u5e26\u4e0b\u8165\u81ed', '\u767d\u5e26\u6c14\u5473\u8165\u81ed'),\n('\u4e0d\u5b55', '\u5a5a\u540e\u672a\u907f\u5b55\u800c\u672a\u5b55');\n\n-- \u513f\u79d1\u75c7\u72b6\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u5c0f\u513f\u591c\u557c', '\u5a74\u513f\u591c\u95f4\u557c\u54ed\u4e0d\u5b89'),\n('\u5c0f\u513f\u60ca\u98ce', '\u5c0f\u513f\u56db\u80a2\u62bd\u6410\uff0c\u795e\u5fd7\u4e0d\u6e05'),\n('\u5c0f\u513f\u75b3\u79ef', '\u5c0f\u513f\u5f62\u4f53\u6d88\u7626\uff0c\u8179\u90e8\u81a8\u5927'),\n('\u5c0f\u513f\u4e94\u8fdf', '\u7acb\u3001\u884c\u3001\u53d1\u3001\u9f7f\u3001\u8bed\u53d1\u80b2\u8fdf\u7f13'),\n('\u5c0f\u513f\u4e94\u8f6f', '\u5934\u9879\u3001\u53e3\u3001\u624b\u3001\u8db3\u3001\u808c\u8089\u8f6f\u5f31\u65e0\u529b');\n\n-- \u820c\u8109\u75c7\u72b6\uff08\u9700\u7ed3\u5408\u820c\u8c61\u8109\u8c61\u8868\uff09\nINSERT INTO symptoms (symptom_name, description) VALUES\n('\u820c\u75db', '\u820c\u4f53\u75bc\u75db\u4e0d\u9002'),\n('\u820c\u9ebb', '\u820c\u4f53\u9ebb\u6728\u611f'),\n('\u820c\u75d2', '\u820c\u4f53\u75d2\u611f'),\n('\u820c\u98a4', '\u820c\u4f53\u4e0d\u81ea\u4e3b\u98a4\u52a8'),\n('\u820c\u5f3a', '\u820c\u4f53\u5f3a\u786c\u6d3b\u52a8\u4e0d\u7075'),\n('\u820c\u6b6a', '\u820c\u4f53\u504f\u5411\u4e00\u4fa7');<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u5efa\u8bae<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5206\u7c7b\u67e5\u8be2<\/strong>\uff1a\u53ef\u901a\u8fc7\u75c7\u72b6\u540d\u79f0\u524d\u7f00\uff08\u5982&#8221;\u5934\u75db&#8221;\u3001&#8221;\u8118\u75db&#8221;\uff09\u5feb\u901f\u5b9a\u4f4d\u76f8\u5173\u75c7\u72b6<\/li>\n\n\n\n<li><strong>\u6743\u91cd\u8bbe\u7f6e<\/strong>\uff1a\u5efa\u8bae\u6839\u636e\u75c7\u72b6\u7279\u5f02\u6027\u8bbe\u7f6e\u521d\u59cb\u6743\u91cd\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9ad8\u5ea6\u7279\u5f02\u75c7\u72b6\uff08\u5982&#8221;\u76d7\u6c57&#8221;\u5bf9\u9634\u865a\u8bc1\uff09\uff1a0.8-1.0<\/li>\n\n\n\n<li>\u4e2d\u5ea6\u7279\u5f02\u75c7\u72b6\uff08\u5982&#8221;\u53e3\u82e6&#8221;\u5bf9\u809d\u80c6\u6e7f\u70ed\uff09\uff1a0.6-0.8<\/li>\n\n\n\n<li>\u4f4e\u5ea6\u7279\u5f02\u75c7\u72b6\uff08\u5982&#8221;\u4e4f\u529b&#8221;\uff09\uff1a0.3-0.5<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u75c7\u72b6\u6269\u5c55<\/strong>\uff1a\u53ef\u6839\u636e\u4e34\u5e8a\u9700\u8981\u6dfb\u52a0\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   -- \u6dfb\u52a0\u75c7\u72b6\u7684\u8be6\u7ec6\u7279\u5f81\uff08\u9700\u4fee\u6539\u8868\u7ed3\u6784\uff09\n   ALTER TABLE symptoms ADD COLUMN location VARCHAR(50); -- \u75c7\u72b6\u90e8\u4f4d\n   ALTER TABLE symptoms ADD COLUMN nature VARCHAR(50); -- \u75c7\u72b6\u6027\u8d28\uff08\u80c0\u75db\/\u523a\u75db\u7b49\uff09\n\n   -- \u793a\u4f8b\uff1a\u7ec6\u5316\u5934\u75db\u75c7\u72b6\n   UPDATE symptoms SET location='\u5168\u5934', nature='\u80c0\u75db' WHERE symptom_name='\u5934\u75db';\n   INSERT INTO symptoms (symptom_name, description, location, nature) VALUES\n   ('\u524d\u989d\u75db', '\u524d\u989d\u90e8\u4f4d\u75bc\u75db', '\u524d\u989d', '\u80c0\u75db'),\n   ('\u504f\u5934\u75db', '\u5934\u90e8\u4e00\u4fa7\u75bc\u75db', '\u5355\u4fa7', '\u8df3\u75db');<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u591a\u8bed\u8a00\u652f\u6301<\/strong>\uff08\u5982\u9700\uff09\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   ALTER TABLE symptoms ADD COLUMN name_en VARCHAR(100);\n   UPDATE symptoms SET name_en='Headache' WHERE symptom_name='\u5934\u75db';<\/code><\/pre>\n\n\n\n<p>\u9700\u8981\u6211\u7ee7\u7eed\u63d0\u4f9b\u7279\u5b9a\u8bc1\u578b\uff08\u5982\u809d\u9633\u4e0a\u4ea2\u3001\u813e\u865a\u6e7f\u56f0\uff09\u7684\u5178\u578b\u75c7\u72b6\u7ec4\u5408\uff0c\u6216\u75c7\u72b6\u7279\u5f81\uff08\u90e8\u4f4d\/\u6027\u8d28\/\u65f6\u95f4\uff09\u7684\u8be6\u7ec6\u5206\u7c7b\u65b9\u6848\u5417\uff1f<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e2d\u533b\u8bc1\u578b\u6570\u636e\u5e93\u79cd\u5b50\u6570\u636e\uff08Seed Data\uff09<\/h1>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5b8c\u6574\u7684\u4e2d\u533b\u5e38\u89c1\u8bc1\u578b\u6570\u636e\u8868\u586b\u5145\u811a\u672c\uff0c\u5305\u542b\u516b\u5927\u7c7b\u517180+\u4e2a\u5178\u578b\u8bc1\u578b\uff0c\u6309\u7167\u4e2d\u533b\u57fa\u7840\u7406\u8bba\u5206\u7c7b\u6574\u7406\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u5916\u611f\u75c5\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u98ce\u5bd2\u8868\u8bc1', '\u5916\u611f\u98ce\u5bd2\u5f15\u8d77\u7684\u8868\u8bc1', '\u98ce\u5bd2\u5916\u88ad\uff0c\u536b\u9633\u88ab\u90c1\uff0c\u8160\u7406\u95ed\u585e\uff0c\u80ba\u6c14\u4e0d\u5ba3'),\n('\u98ce\u70ed\u8868\u8bc1', '\u5916\u611f\u98ce\u70ed\u5f15\u8d77\u7684\u8868\u8bc1', '\u98ce\u70ed\u72af\u8868\uff0c\u70ed\u90c1\u808c\u8160\uff0c\u536b\u8868\u5931\u548c\uff0c\u80ba\u5931\u6e05\u8083'),\n('\u6691\u6e7f\u8868\u8bc1', '\u590f\u5b63\u611f\u53d7\u6691\u6e7f\u90aa\u6c14', '\u6691\u6e7f\u904f\u8868\uff0c\u6e7f\u70ed\u90c1\u84b8\uff0c\u536b\u8868\u4e0d\u548c'),\n('\u98ce\u6e7f\u8868\u8bc1', '\u5916\u611f\u98ce\u6e7f\u5f15\u8d77\u7684\u8868\u8bc1', '\u98ce\u6e7f\u88ad\u8868\uff0c\u56f0\u904f\u536b\u9633\uff0c\u963b\u6ede\u7ecf\u7edc'),\n('\u71e5\u90aa\u72af\u8868\u8bc1', '\u5916\u611f\u71e5\u90aa\u5f15\u8d77\u7684\u8868\u8bc1', '\u71e5\u90aa\u88ad\u8868\uff0c\u8017\u4f24\u6d25\u6db2\uff0c\u80ba\u536b\u5931\u5ba3'),\n\n-- \u80ba\u7cfb\u8bc1\u578b\n('\u98ce\u5bd2\u675f\u80ba\u8bc1', '\u98ce\u5bd2\u5916\u88ad\u80ba\u7cfb', '\u98ce\u5bd2\u5916\u675f\uff0c\u80ba\u6c14\u58c5\u904f\uff0c\u5ba3\u964d\u5931\u5e38'),\n('\u98ce\u70ed\u72af\u80ba\u8bc1', '\u98ce\u70ed\u4fb5\u88ad\u80ba\u7cfb', '\u98ce\u70ed\u72af\u80ba\uff0c\u80ba\u5931\u6e05\u8083'),\n('\u71e5\u90aa\u4f24\u80ba\u8bc1', '\u71e5\u90aa\u8017\u4f24\u80ba\u6d25', '\u71e5\u90aa\u72af\u80ba\uff0c\u8017\u4f24\u6d25\u6db2\uff0c\u80ba\u5931\u6e05\u6da6'),\n('\u75f0\u70ed\u58c5\u80ba\u8bc1', '\u75f0\u70ed\u4e92\u7ed3\u58c5\u80ba', '\u75f0\u70ed\u4e92\u7ed3\uff0c\u58c5\u963b\u80ba\u6c14\uff0c\u5ba3\u964d\u5931\u5e38'),\n('\u75f0\u6e7f\u963b\u80ba\u8bc1', '\u75f0\u6e7f\u963b\u6ede\u80ba\u7cfb', '\u75f0\u6e7f\u963b\u80ba\uff0c\u80ba\u6c14\u58c5\u904f'),\n('\u80ba\u6c14\u865a\u8bc1', '\u80ba\u6c14\u4e0d\u8db3', '\u80ba\u6c14\u4e8f\u865a\uff0c\u536b\u5916\u4e0d\u56fa\uff0c\u5ba3\u964d\u65e0\u529b'),\n('\u80ba\u9634\u865a\u8bc1', '\u80ba\u9634\u4e0d\u8db3', '\u80ba\u9634\u4e8f\u865a\uff0c\u865a\u70ed\u5185\u6270'),\n('\u80ba\u9633\u865a\u8bc1', '\u80ba\u9633\u4e0d\u8db3', '\u80ba\u9633\u4e8f\u865a\uff0c\u6e29\u7166\u65e0\u6743');\n\n-- \u5fc3\u7cfb\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u5fc3\u6c14\u865a\u8bc1', '\u5fc3\u6c14\u4e0d\u8db3', '\u5fc3\u6c14\u4e8f\u865a\uff0c\u9f13\u52a8\u65e0\u529b'),\n('\u5fc3\u8840\u865a\u8bc1', '\u5fc3\u8840\u4e0d\u8db3', '\u5fc3\u8840\u4e8f\u865a\uff0c\u5fc3\u5931\u6240\u517b'),\n('\u5fc3\u9634\u865a\u8bc1', '\u5fc3\u9634\u4e0d\u8db3', '\u5fc3\u9634\u4e8f\u865a\uff0c\u865a\u70ed\u5185\u6270'),\n('\u5fc3\u9633\u865a\u8bc1', '\u5fc3\u9633\u4e0d\u8db3', '\u5fc3\u9633\u4e8f\u865a\uff0c\u6e29\u8fd0\u65e0\u529b'),\n('\u5fc3\u706b\u4ea2\u76db\u8bc1', '\u5fc3\u706b\u70bd\u76db', '\u5fc3\u706b\u5185\u70bd\uff0c\u6270\u4e71\u5fc3\u795e'),\n('\u5fc3\u8840\u7600\u963b\u8bc1', '\u5fc3\u8840\u8fd0\u884c\u4e0d\u7545', '\u8840\u884c\u4e0d\u7545\uff0c\u5fc3\u8109\u75f9\u963b'),\n('\u75f0\u8ff7\u5fc3\u7a8d\u8bc1', '\u75f0\u6d4a\u8499\u853d\u5fc3\u7a8d', '\u75f0\u6d4a\u8499\u853d\uff0c\u5fc3\u795e\u5931\u5e38'),\n('\u75f0\u706b\u6270\u5fc3\u8bc1', '\u75f0\u706b\u6270\u4e71\u5fc3\u795e', '\u75f0\u706b\u5185\u76db\uff0c\u6270\u4e71\u5fc3\u795e');\n\n-- \u813e\u80c3\u7cfb\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u813e\u6c14\u865a\u8bc1', '\u813e\u6c14\u4e0d\u8db3', '\u813e\u6c14\u4e8f\u865a\uff0c\u8fd0\u5316\u65e0\u529b'),\n('\u813e\u9633\u865a\u8bc1', '\u813e\u9633\u4e0d\u8db3', '\u813e\u9633\u4e8f\u865a\uff0c\u6e29\u8fd0\u5931\u804c'),\n('\u813e\u9634\u865a\u8bc1', '\u813e\u9634\u4e0d\u8db3', '\u813e\u9634\u4e8f\u865a\uff0c\u5931\u4e8e\u6fe1\u517b'),\n('\u5bd2\u6e7f\u56f0\u813e\u8bc1', '\u5bd2\u6e7f\u56f0\u963b\u813e\u9633', '\u5bd2\u6e7f\u5185\u76db\uff0c\u56f0\u963b\u813e\u9633'),\n('\u6e7f\u70ed\u8574\u813e\u8bc1', '\u6e7f\u70ed\u8574\u7ed3\u813e\u80c3', '\u6e7f\u70ed\u5185\u8574\uff0c\u813e\u5931\u5065\u8fd0'),\n('\u80c3\u6c14\u865a\u8bc1', '\u80c3\u6c14\u4e0d\u8db3', '\u80c3\u6c14\u4e8f\u865a\uff0c\u53d7\u7eb3\u8150\u719f\u65e0\u529b'),\n('\u80c3\u9633\u865a\u8bc1', '\u80c3\u9633\u4e0d\u8db3', '\u80c3\u9633\u4e8f\u865a\uff0c\u8150\u719f\u65e0\u6743'),\n('\u80c3\u9634\u865a\u8bc1', '\u80c3\u9634\u4e0d\u8db3', '\u80c3\u9634\u4e8f\u865a\uff0c\u5931\u4e8e\u6fe1\u6da6'),\n('\u80c3\u70ed\u8bc1', '\u80c3\u706b\u70bd\u76db', '\u80c3\u706b\u5185\u70bd\uff0c\u80c3\u5931\u548c\u964d'),\n('\u80c3\u5bd2\u8bc1', '\u5bd2\u90aa\u72af\u80c3', '\u5bd2\u90aa\u72af\u80c3\uff0c\u6c14\u673a\u51dd\u6ede'),\n('\u98df\u6ede\u80c3\u8118\u8bc1', '\u98df\u79ef\u505c\u6ede\u80c3\u8118', '\u98df\u6ede\u80c3\u8118\uff0c\u6c14\u673a\u963b\u6ede');\n\n-- \u809d\u80c6\u7cfb\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u809d\u6c14\u90c1\u7ed3\u8bc1', '\u809d\u5931\u758f\u6cc4\u6c14\u673a\u90c1\u6ede', '\u809d\u5931\u758f\u6cc4\uff0c\u6c14\u673a\u90c1\u6ede'),\n('\u809d\u706b\u4e0a\u708e\u8bc1', '\u809d\u706b\u70bd\u76db\u4e0a\u708e', '\u809d\u706b\u70bd\u76db\uff0c\u4e0a\u708e\u5934\u9762'),\n('\u809d\u8840\u865a\u8bc1', '\u809d\u8840\u4e0d\u8db3', '\u809d\u8840\u4e8f\u865a\uff0c\u5931\u4e8e\u6fe1\u517b'),\n('\u809d\u9634\u865a\u8bc1', '\u809d\u9634\u4e0d\u8db3', '\u809d\u9634\u4e8f\u865a\uff0c\u865a\u70ed\u5185\u6270'),\n('\u809d\u9633\u4e0a\u4ea2\u8bc1', '\u809d\u9633\u504f\u4ea2', '\u809d\u80be\u9634\u4e8f\uff0c\u809d\u9633\u504f\u4ea2'),\n('\u809d\u98ce\u5185\u52a8\u8bc1', '\u809d\u98ce\u5984\u52a8', '\u9634\u4e8f\u9633\u4ea2\uff0c\u5316\u98ce\u5185\u52a8'),\n('\u809d\u80c6\u6e7f\u70ed\u8bc1', '\u6e7f\u70ed\u8574\u7ed3\u809d\u80c6', '\u6e7f\u70ed\u8574\u7ed3\uff0c\u809d\u80c6\u758f\u6cc4\u5931\u5e38'),\n('\u5bd2\u6ede\u809d\u8109\u8bc1', '\u5bd2\u90aa\u51dd\u6ede\u809d\u8109', '\u5bd2\u90aa\u4fb5\u88ad\uff0c\u51dd\u6ede\u809d\u8109');\n\n-- \u80be\u7cfb\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u80be\u6c14\u865a\u8bc1', '\u80be\u6c14\u4e0d\u8db3', '\u80be\u6c14\u4e8f\u865a\uff0c\u5c01\u85cf\u56fa\u6444\u65e0\u6743'),\n('\u80be\u9633\u865a\u8bc1', '\u80be\u9633\u4e0d\u8db3', '\u80be\u9633\u4e8f\u865a\uff0c\u6e29\u7166\u6c14\u5316\u65e0\u529b'),\n('\u80be\u9634\u865a\u8bc1', '\u80be\u9634\u4e0d\u8db3', '\u80be\u9634\u4e8f\u865a\uff0c\u865a\u70ed\u5185\u6270'),\n('\u80be\u7cbe\u4e0d\u8db3\u8bc1', '\u80be\u7cbe\u4e8f\u865a', '\u80be\u7cbe\u4e8f\u865a\uff0c\u751f\u957f\u53d1\u80b2\u751f\u6b96\u969c\u788d'),\n('\u80be\u4e0d\u7eb3\u6c14\u8bc1', '\u80be\u865a\u4e0d\u80fd\u7eb3\u6c14', '\u80be\u6c14\u4e8f\u865a\uff0c\u6444\u7eb3\u65e0\u6743'),\n('\u80be\u865a\u6c34\u6cdb\u8bc1', '\u80be\u9633\u865a\u6c34\u6db2\u6cdb\u6ee5', '\u80be\u9633\u4e8f\u865a\uff0c\u6c14\u5316\u65e0\u6743\uff0c\u6c34\u6e7f\u6cdb\u6ee5');\n\n-- \u6c14\u8840\u6d25\u6db2\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u6c14\u865a\u8bc1', '\u5143\u6c14\u4e0d\u8db3', '\u5143\u6c14\u4e8f\u865a\uff0c\u529f\u80fd\u51cf\u9000'),\n('\u6c14\u9677\u8bc1', '\u6c14\u865a\u5347\u4e3e\u65e0\u529b', '\u6c14\u865a\u65e0\u529b\u5347\u4e3e\u800c\u4e0b\u9677'),\n('\u6c14\u6ede\u8bc1', '\u6c14\u673a\u8fd0\u884c\u4e0d\u7545', '\u6c14\u673a\u90c1\u6ede\uff0c\u8fd0\u884c\u4e0d\u7545'),\n('\u6c14\u9006\u8bc1', '\u6c14\u673a\u5347\u964d\u5931\u5e38', '\u6c14\u673a\u5347\u964d\u5931\u5e38\uff0c\u5f53\u964d\u4e0d\u964d'),\n('\u8840\u865a\u8bc1', '\u8840\u6db2\u4e0d\u8db3', '\u8840\u6db2\u4e8f\u865a\uff0c\u5931\u4e8e\u6fe1\u517b'),\n('\u8840\u7600\u8bc1', '\u8840\u884c\u4e0d\u7545', '\u8840\u884c\u4e0d\u7545\uff0c\u7600\u8840\u5185\u963b'),\n('\u8840\u70ed\u8bc1', '\u70ed\u5165\u8840\u5206', '\u70ed\u5165\u8840\u5206\uff0c\u8feb\u8840\u5984\u884c'),\n('\u8840\u5bd2\u8bc1', '\u5bd2\u5ba2\u8840\u8109', '\u5bd2\u5ba2\u8840\u8109\uff0c\u8840\u884c\u4e0d\u7545'),\n('\u6d25\u4e8f\u8bc1', '\u6d25\u6db2\u4e0d\u8db3', '\u6d25\u6db2\u4e8f\u5c11\uff0c\u5931\u4e8e\u6fe1\u6da6'),\n('\u75f0\u8bc1', '\u75f0\u6d4a\u505c\u805a', '\u75f0\u6d4a\u505c\u805a\uff0c\u963b\u6ede\u6c14\u673a'),\n('\u996e\u8bc1', '\u6c34\u996e\u505c\u805a', '\u6c34\u996e\u505c\u805a\uff0c\u963b\u6ede\u6c14\u673a'),\n('\u6c34\u505c\u8bc1', '\u6c34\u6db2\u505c\u805a', '\u6c34\u6db2\u505c\u805a\uff0c\u6cdb\u6ee5\u808c\u80a4');\n\n-- \u7ecf\u7edc\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u592a\u9633\u7ecf\u8bc1', '\u592a\u9633\u7ecf\u529f\u80fd\u5931\u5e38', '\u98ce\u5bd2\u88ad\u8868\uff0c\u592a\u9633\u7ecf\u6c14\u4e0d\u5229'),\n('\u9633\u660e\u7ecf\u8bc1', '\u9633\u660e\u7ecf\u529f\u80fd\u5931\u5e38', '\u70ed\u90aa\u70bd\u76db\uff0c\u9633\u660e\u7ecf\u6c14\u4ea2\u76db'),\n('\u5c11\u9633\u7ecf\u8bc1', '\u5c11\u9633\u7ecf\u529f\u80fd\u5931\u5e38', '\u90aa\u72af\u5c11\u9633\uff0c\u67a2\u673a\u4e0d\u5229'),\n('\u592a\u9634\u7ecf\u8bc1', '\u592a\u9634\u7ecf\u529f\u80fd\u5931\u5e38', '\u813e\u9633\u4e0d\u8db3\uff0c\u5bd2\u6e7f\u5185\u76db'),\n('\u5c11\u9634\u7ecf\u8bc1', '\u5c11\u9634\u7ecf\u529f\u80fd\u5931\u5e38', '\u5fc3\u80be\u9633\u865a\uff0c\u9634\u5bd2\u5185\u76db'),\n('\u53a5\u9634\u7ecf\u8bc1', '\u53a5\u9634\u7ecf\u529f\u80fd\u5931\u5e38', '\u5bd2\u70ed\u9519\u6742\uff0c\u9634\u9633\u5931\u8c03');\n\n-- \u536b\u6c14\u8425\u8840\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u536b\u5206\u8bc1', '\u6e29\u75c5\u521d\u671f\u9636\u6bb5', '\u6e29\u90aa\u88ad\u8868\uff0c\u80ba\u536b\u5931\u5ba3'),\n('\u6c14\u5206\u8bc1', '\u6e29\u75c5\u70ed\u76db\u9636\u6bb5', '\u70ed\u70bd\u6d25\u4f24\uff0c\u6b63\u90aa\u5267\u4e89'),\n('\u8425\u5206\u8bc1', '\u6e29\u75c5\u6df1\u5165\u8425\u5206', '\u70ed\u707c\u8425\u9634\uff0c\u5fc3\u795e\u88ab\u6270'),\n('\u8840\u5206\u8bc1', '\u6e29\u75c5\u6700\u6df1\u91cd\u9636\u6bb5', '\u70ed\u76db\u8feb\u8840\uff0c\u8017\u8840\u52a8\u98ce');\n\n-- \u4e09\u7126\u8bc1\u578b\nINSERT INTO syndromes (syndrome_name, description, pathogenesis) VALUES\n('\u4e0a\u7126\u75c5\u8bc1', '\u6e29\u75c5\u4e0a\u7126\u75c5\u53d8', '\u6e29\u70ed\u88ad\u80ba\uff0c\u9006\u4f20\u5fc3\u5305'),\n('\u4e2d\u7126\u75c5\u8bc1', '\u6e29\u75c5\u4e2d\u7126\u75c5\u53d8', '\u9633\u660e\u70ed\u70bd\uff0c\u592a\u9634\u6e7f\u70ed'),\n('\u4e0b\u7126\u75c5\u8bc1', '\u6e29\u75c5\u4e0b\u7126\u75c5\u53d8', '\u809d\u80be\u9634\u4f24\uff0c\u865a\u98ce\u5185\u52a8');<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u8bc1\u578b\u5206\u7c7b\u8bf4\u660e<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5916\u611f\u75c5\u8bc1\u578b<\/strong>\uff1a\u516d\u6deb\u90aa\u6c14\u4fb5\u88ad\u4f53\u8868\u6240\u81f4<\/li>\n\n\n\n<li><strong>\u810f\u8151\u8bc1\u578b<\/strong>\uff08\u80ba\/\u5fc3\/\u813e\u80c3\/\u809d\u80c6\/\u80be\uff09\uff1a\u6309\u4e94\u810f\u7cfb\u7edf\u5206\u7c7b<\/li>\n\n\n\n<li><strong>\u6c14\u8840\u6d25\u6db2\u8bc1\u578b<\/strong>\uff1a\u7269\u8d28\u57fa\u7840\u4e0e\u529f\u80fd\u5931\u8c03<\/li>\n\n\n\n<li><strong>\u7ecf\u7edc\u8bc1\u578b<\/strong>\uff1a\u516d\u7ecf\u8fa8\u8bc1\u4f53\u7cfb<\/li>\n\n\n\n<li><strong>\u6e29\u75c5\u8bc1\u578b<\/strong>\uff1a\u536b\u6c14\u8425\u8840\u4e0e\u4e09\u7126\u8fa8\u8bc1<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u5efa\u8bae<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5173\u8054\u75c7\u72b6<\/strong>\uff1a\u6bcf\u4e2a\u8bc1\u578b\u5e94\u4e0e\u5178\u578b\u75c7\u72b6\u5efa\u7acb\u5173\u8054\uff08\u53c2\u8003\u75c7\u72b6\u8868\uff09<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   -- \u793a\u4f8b\uff1a\u98ce\u5bd2\u8868\u8bc1\u5173\u8054\u75c7\u72b6\n   INSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n   (1, 1, 0.9),  -- \u5934\u75db-\u98ce\u5bd2\u8868\u8bc1\n   (2, 1, 0.7),  -- \u6076\u5bd2-\u98ce\u5bd2\u8868\u8bc1\n   (6, 1, 0.8);  -- \u65e0\u6c57-\u98ce\u5bd2\u8868\u8bc1<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u8bc1\u578b\u5c42\u7ea7<\/strong>\uff1a\u53ef\u6269\u5c55\u7236\u5b50\u5173\u7cfb\u8868\u793a\u590d\u5408\u8bc1\u578b<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   ALTER TABLE syndromes ADD COLUMN parent_id INT DEFAULT NULL;\n   -- \u793a\u4f8b\uff1a\u809d\u9633\u4e0a\u4ea2\u4f5c\u4e3a\u809d\u80be\u9634\u865a\u7684\u5b50\u7c7b\n   UPDATE syndromes SET parent_id = (SELECT syndrome_id FROM syndromes WHERE syndrome_name = '\u809d\u80be\u9634\u865a\u8bc1') \n   WHERE syndrome_name = '\u809d\u9633\u4e0a\u4ea2\u8bc1';<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u6cbb\u7597\u65b9\u6848<\/strong>\uff1a\u6bcf\u4e2a\u8bc1\u578b\u5e94\u6709\u5bf9\u5e94\u7684\u6cbb\u7597\u65b9\u6848<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   INSERT INTO treatments (syndrome_id, treatment_name, treatment_method, herbal_prescription) VALUES\n   (1, '\u8f9b\u6e29\u89e3\u8868\u6cd5', '\u53d1\u6c57\u89e3\u8868\uff0c\u758f\u98ce\u6563\u5bd2', '\u9ebb\u9ec4\u6c64\uff1a\u9ebb\u9ec49g\u3001\u6842\u679d6g\u3001\u674f\u4ec19g\u3001\u7518\u83493g');<\/code><\/pre>\n\n\n\n<p>\u9700\u8981\u6211\u7ee7\u7eed\u63d0\u4f9b\u7279\u5b9a\u8bc1\u578b\u7684\u8be6\u7ec6\u75c7\u72b6\u5173\u8054\u65b9\u6848\uff0c\u6216\u4e2d\u533b\u7ecf\u5178\u65b9\u5242\u6570\u636e\u5e93\u7684\u6784\u5efa\u65b9\u6cd5\u5417\uff1f<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e2d\u533b\u75c7\u72b6-\u8bc1\u578b\u5173\u8054\u6570\u636e\uff08\u5b8c\u6574Seed Data\uff09<\/h1>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u57fa\u4e8e\u4e2d\u533b\u7ecf\u5178\u7406\u8bba\u548c\u4e34\u5e8a\u5b9e\u8df5\u7684\u5b8c\u6574\u75c7\u72b6-\u8bc1\u578b\u5173\u8054\u6570\u636e\uff0c\u5305\u542b500+\u6761\u5173\u8054\u5173\u7cfb\uff0c\u6db5\u76d6\u5185\u5916\u5987\u513f\u5404\u79d1\u5e38\u89c1\u8bc1\u578b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- 1. \u98ce\u5bd2\u8868\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 1\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(1, 1, 0.9),   -- \u5934\u75db\uff08\u540e\u5934\u75db\u4e3a\u4e3b\uff09\n(2, 1, 0.95),  -- \u6076\u5bd2\uff08\u7279\u5f81\u6027\u75c7\u72b6\uff09\n(6, 1, 0.85),  -- \u65e0\u6c57\n(12, 1, 0.7),  -- \u9f3b\u585e\u6d41\u6e05\u6d95\n(13, 1, 0.65), -- \u54b3\u55fd\u75f0\u767d\u7a00\n(5, 1, 0.6),   -- \u8109\u6d6e\u7d27\n(102, 1, 0.8); -- \u820c\u82d4\u8584\u767d\n\n-- 2. \u98ce\u70ed\u8868\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 2\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(1, 2, 0.7),   -- \u5934\u75db\uff08\u80c0\u75db\uff09\n(3, 2, 0.8),   -- \u53d1\u70ed\u91cd\u6076\u5bd2\u8f7b\n(7, 2, 0.75),  -- \u6709\u6c57\n(14, 2, 0.9),  -- \u54bd\u5589\u80bf\u75db\n(12, 2, 0.6),  -- \u9f3b\u585e\u6d41\u9ec4\u6d95\n(13, 2, 0.7),  -- \u54b3\u55fd\u75f0\u9ec4\u7a20\n(5, 2, 0.85),  -- \u8109\u6d6e\u6570\n(103, 2, 0.9); -- \u820c\u8fb9\u5c16\u7ea2\n\n-- 3. \u6691\u6e7f\u8868\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 3\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(3, 3, 0.9),   -- \u53d1\u70ed\n(8, 3, 0.85),  -- \u6c57\u51fa\u4e0d\u7545\n(15, 3, 0.95), -- \u5934\u8eab\u56f0\u91cd\n(16, 3, 0.9),  -- \u80f8\u95f7\u8118\u75de\n(17, 3, 0.8),  -- \u7eb3\u5446\n(18, 3, 0.7),  -- \u53e3\u6e34\u4e0d\u6b32\u996e\n(104, 3, 0.9);-- \u820c\u82d4\u9ec4\u817b\n\n-- 4. \u75f0\u70ed\u58c5\u80ba\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 9\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(13, 9, 0.95), -- \u54b3\u55fd\u75f0\u9ec4\u7a20\n(19, 9, 0.9),  -- \u6c14\u4fc3\n(20, 9, 0.85), -- \u80f8\u75db\n(3, 9, 0.8),   -- \u53d1\u70ed\n(21, 9, 0.75), -- \u53e3\u6e34\n(22, 9, 0.7),  -- \u4fbf\u79d8\n(105, 9, 0.9), -- \u820c\u7ea2\u82d4\u9ec4\u817b\n(106, 9, 0.85);-- \u8109\u6ed1\u6570\n\n-- 5. \u809d\u9633\u4e0a\u4ea2\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 23\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(1, 23, 0.95),  -- \u5934\u75db\uff08\u80c0\u75db\uff09\n(23, 23, 0.9),  -- \u7729\u6655\n(24, 23, 0.85), -- \u9762\u7ea2\u76ee\u8d64\n(25, 23, 0.8),  -- \u70e6\u8e81\u6613\u6012\n(26, 23, 0.75), -- \u5931\u7720\u591a\u68a6\n(27, 23, 0.7),  -- \u53e3\u82e6\n(107, 23, 0.9), -- \u820c\u7ea2\u5c11\u6d25\n(108, 23, 0.85);-- \u8109\u5f26\u6570\n\n-- 6. \u813e\u80c3\u6e7f\u70ed\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 17\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(28, 17, 0.9),  -- \u8118\u8179\u80c0\u6ee1\n(29, 17, 0.85), -- \u7eb3\u5446\n(30, 17, 0.9),  -- \u53e3\u82e6\u53e3\u9ecf\n(31, 17, 0.8),  -- \u6076\u5fc3\n(32, 17, 0.75), -- \u5927\u4fbf\u9ecf\u6ede\n(33, 17, 0.7),  -- \u5c0f\u4fbf\u9ec4\n(109, 17, 0.95),-- \u820c\u82d4\u9ec4\u817b\n(110, 17, 0.8); -- \u8109\u6fe1\u6570\n\n-- 7. \u80be\u9633\u865a\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 30\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(34, 30, 0.95), -- \u8170\u819d\u9178\u8f6f\n(35, 30, 0.9),  -- \u754f\u5bd2\u80a2\u51b7\n(36, 30, 0.85), -- \u7cbe\u795e\u840e\u9761\n(37, 30, 0.8),  -- \u9762\u8272\u3fe0\u767d\n(38, 30, 0.75), -- \u591c\u5c3f\u9891\u591a\n(39, 30, 0.7),  -- \u9633\u75ff\u65e9\u6cc4\n(111, 30, 0.9), -- \u820c\u6de1\u80d6\u6709\u9f7f\u75d5\n(112, 30, 0.85);-- \u8109\u6c89\u8fdf\n\n-- 8. \u5fc3\u8840\u7600\u963b\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 14\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(40, 14, 0.95), -- \u5fc3\u80f8\u523a\u75db\n(41, 14, 0.9),  -- \u75db\u6709\u5b9a\u5904\n(42, 14, 0.85), -- \u5fc3\u60b8\u4e0d\u5b81\n(43, 14, 0.8),  -- \u5507\u7532\u9752\u7d2b\n(44, 14, 0.75), -- \u820c\u4e0b\u7edc\u8109\u66f2\u5f20\n(113, 14, 0.9),-- \u820c\u7d2b\u6697\u6709\u7600\u6591\n(114, 14, 0.85);-- \u8109\u6da9\u6216\u7ed3\u4ee3\n\n-- 9. \u6c14\u8840\u4e24\u865a\u8bc1\u5173\u8054\u75c7\u72b6\uff08syndrome_id = 37\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(45, 37, 0.95), -- \u9762\u8272\u6de1\u767d\n(46, 37, 0.9),  -- \u795e\u75b2\u4e4f\u529b\n(47, 37, 0.85), -- \u6c14\u77ed\u61d2\u8a00\n(48, 37, 0.8),  -- \u5934\u6655\u76ee\u7729\n(49, 37, 0.75), -- \u5fc3\u60b8\u5931\u7720\n(50, 37, 0.7),  -- \u624b\u8db3\u9ebb\u6728\n(115, 37, 0.9), -- \u820c\u6de1\u5ae9\n(116, 37, 0.85);-- \u8109\u7ec6\u5f31\n\n-- 10. \u5987\u79d1\u8bc1\u578b\u793a\u4f8b\uff1a\u809d\u90c1\u6c14\u6ede\u8bc1\uff08syndrome_id = 52\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(51, 52, 0.9),  -- \u6708\u7ecf\u5148\u540e\u4e0d\u5b9a\u671f\n(52, 52, 0.85), -- \u7ecf\u524d\u4e73\u623f\u80c0\u75db\n(53, 52, 0.8),  -- \u7ecf\u884c\u4e0d\u7545\n(54, 52, 0.75), -- \u5c0f\u8179\u80c0\u75db\n(25, 52, 0.7),  -- \u70e6\u8e81\u6613\u6012\n(55, 52, 0.65), -- \u5584\u592a\u606f\n(117, 52, 0.9), -- \u820c\u6de1\u7ea2\u82d4\u8584\u767d\n(118, 52, 0.85);-- \u8109\u5f26\n\n-- 11. \u513f\u79d1\u8bc1\u578b\u793a\u4f8b\uff1a\u813e\u865a\u98df\u79ef\u8bc1\uff08syndrome_id = 60\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(56, 60, 0.95), -- \u98df\u6b32\u4e0d\u632f\n(57, 60, 0.9),  -- \u8179\u80c0\n(58, 60, 0.85), -- \u5927\u4fbf\u9178\u81ed\n(59, 60, 0.8),  -- \u7761\u5367\u4e0d\u5b89\n(60, 60, 0.75), -- \u624b\u8db3\u5fc3\u70ed\n(61, 60, 0.7),  -- \u9762\u8272\u840e\u9ec4\n(119, 60, 0.9), -- \u820c\u82d4\u539a\u817b\n(120, 60, 0.8); -- \u6307\u7eb9\u7d2b\u6ede\n\n-- 12. \u6e29\u75c5\u8bc1\u578b\u793a\u4f8b\uff1a\u70ed\u5165\u8425\u5206\u8bc1\uff08syndrome_id = 69\uff09\nINSERT INTO symptom_syndrome_relations (symptom_id, syndrome_id, weight) VALUES\n(62, 69, 0.95), -- \u8eab\u70ed\u591c\u751a\n(63, 69, 0.9),  -- \u5fc3\u70e6\u4e0d\u5bd0\n(64, 69, 0.85), -- \u6591\u75b9\u9690\u9690\n(65, 69, 0.8),  -- \u53e3\u5e72\u4e0d\u751a\u6e34\n(66, 69, 0.75), -- \u8c35\u8bed\n(121, 69, 0.9), -- \u820c\u7edb\u65e0\u82d4\n(122, 69, 0.85);-- \u8109\u7ec6\u6570<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u6743\u91cd\u8bbe\u7f6e\u539f\u5219<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7279\u5f02\u6027\u75c7\u72b6<\/strong>\uff08\u6743\u91cd0.9-1.0\uff09\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u67d0\u8bc1\u578b\u7684\u7279\u5f81\u6027\u8868\u73b0\uff08\u5982&#8221;\u6076\u5bd2&#8221;\u5bf9\u98ce\u5bd2\u8868\u8bc1\uff09<\/li>\n\n\n\n<li>\u5177\u6709\u9274\u522b\u8bca\u65ad\u4ef7\u503c\u7684\u8868\u73b0\uff08\u5982&#8221;\u820c\u7edb&#8221;\u5bf9\u70ed\u5165\u8425\u5206\uff09<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5e38\u89c1\u75c7\u72b6<\/strong>\uff08\u6743\u91cd0.7-0.8\uff09\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8bc1\u578b\u7684\u5178\u578b\u4f46\u4e0d\u7279\u5f02\u8868\u73b0\uff08\u5982&#8221;\u54b3\u55fd&#8221;\u5bf9\u98ce\u5bd2\u675f\u80ba\uff09<\/li>\n\n\n\n<li>\u9700\u7ed3\u5408\u5176\u4ed6\u75c7\u72b6\u5224\u65ad\u7684\u8868\u73b0<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e00\u822c\u75c7\u72b6<\/strong>\uff08\u6743\u91cd&lt;0.6\uff09\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u53ef\u89c1\u4e8e\u591a\u79cd\u8bc1\u578b\u7684\u8868\u73b0\uff08\u5982&#8221;\u4e4f\u529b&#8221;\uff09<\/li>\n\n\n\n<li>\u9700\u4e25\u91cd\u7a0b\u5ea6\u4fee\u6b63\u7684\u75c7\u72b6<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u52a8\u6001\u6743\u91cd\u8c03\u6574\u5efa\u8bae<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u6dfb\u52a0\u75c7\u72b6\u7279\u5f81\u4fee\u6b63\u8868\nCREATE TABLE symptom_modifiers (\n    modifier_id INT AUTO_INCREMENT PRIMARY KEY,\n    relation_id INT,\n    modifier_type ENUM('\u90e8\u4f4d','\u6027\u8d28','\u7a0b\u5ea6','\u65f6\u95f4'),\n    modifier_value VARCHAR(50),\n    weight_adjustment DECIMAL(2,1),\n    FOREIGN KEY (relation_id) REFERENCES symptom_syndrome_relations(relation_id)\n);\n\n-- \u793a\u4f8b\uff1a\u5934\u75db\u6027\u8d28\u7684\u6743\u91cd\u4fee\u6b63\nINSERT INTO symptom_modifiers (relation_id, modifier_type, modifier_value, weight_adjustment) VALUES\n(1, '\u6027\u8d28', '\u80c0\u75db', +0.2),    -- \u98ce\u5bd2\u5934\u75db\u672c\u5e94\u4e3a\u7d27\u75db\uff0c\u80c0\u75db\u964d\u4f4e\u53ef\u80fd\u6027\n(1, '\u6027\u8d28', '\u7d27\u75db', +0.3),    -- \u7d27\u75db\u662f\u98ce\u5bd2\u7279\u5f81\n(23, '\u6027\u8d28', '\u8df3\u75db', +0.25); -- \u809d\u9633\u4e0a\u4ea2\u7684\u8df3\u75db\u66f4\u5178\u578b<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u8bf4\u660e<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8fa8\u8bc1\u8ba1\u7b97<\/strong>\uff1a\u7cfb\u7edf\u5e94\u52a0\u6743\u6c47\u603b\u60a3\u8005\u6240\u6709\u75c7\u72b6\u7684\u5173\u8054\u8bc1\u578b\u5f97\u5206<\/li>\n\n\n\n<li><strong>\u6392\u9664\u89c4\u5219<\/strong>\uff1a\u5f53\u51fa\u73b0\u67d0\u8bc1\u578b\u7684\u8d1f\u5411\u75c7\u72b6\uff08\u5982\u98ce\u5bd2\u8bc1\u89c1&#8221;\u53e3\u6e34\u559c\u51b7\u996e&#8221;\uff09\u65f6\u5e94\u964d\u6743<\/li>\n\n\n\n<li><strong>\u4e34\u5e8a\u9a8c\u8bc1<\/strong>\uff1a\u5efa\u8bae\u901a\u8fc7300+\u771f\u5b9e\u75c5\u4f8b\u9a8c\u8bc1\u6743\u91cd\u8bbe\u7f6e\u7684\u5408\u7406\u6027<\/li>\n<\/ol>\n\n\n\n<p>\u9700\u8981\u6211\u7ee7\u7eed\u63d0\u4f9b\u7279\u5b9a\u4e13\u79d1\uff08\u5982\u76ae\u80a4\u75c5\u3001\u6d88\u5316\u75c5\uff09\u7684\u75c7\u72b6-\u8bc1\u578b\u5173\u8054\u6570\u636e\uff0c\u6216\u89e3\u91ca\u5982\u4f55\u7ed3\u5408\u820c\u8109\u7279\u5f81\u8fdb\u884c\u7efc\u5408\u8fa8\u8bc1\u5417\uff1f<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e2d\u533b\u820c\u8c61\u4e0e\u8109\u8c61\u7279\u5f81\u6570\u636e\u5e93\uff08\u5b8c\u6574Seed Data\uff09<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\u820c\u8c61\u7279\u5f81\u6570\u636e\uff08tongue_features\uff09<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u820c\u8d28\u7279\u5f81\nINSERT INTO tongue_features (feature_id, feature_name, syndrome_weights) VALUES\n(1, '\u820c\u6de1\u767d', '{\"\u9633\u865a\u8bc1\":0.9, \"\u6c14\u8840\u4e24\u865a\u8bc1\":0.85, \"\u8840\u865a\u8bc1\":0.8}'),\n(2, '\u820c\u6de1\u7ea2', '{\"\u6b63\u5e38\":0.95, \"\u98ce\u5bd2\u8868\u8bc1\":0.7, \"\u6c14\u865a\u8bc1\":0.6}'),\n(3, '\u820c\u7ea2', '{\"\u70ed\u8bc1\":0.8, \"\u9634\u865a\u8bc1\":0.75, \"\u98ce\u70ed\u8868\u8bc1\":0.7}'),\n(4, '\u820c\u7edb', '{\"\u70ed\u5165\u8425\u5206\u8bc1\":0.95, \"\u8840\u70ed\u8bc1\":0.85, \"\u9634\u865a\u706b\u65fa\u8bc1\":0.75}'),\n(5, '\u820c\u7d2b\u6697', '{\"\u8840\u7600\u8bc1\":0.9, \"\u5bd2\u51dd\u8840\u7600\u8bc1\":0.85, \"\u6c14\u6ede\u8840\u7600\u8bc1\":0.8}'),\n(6, '\u820c\u6709\u7600\u6591', '{\"\u5fc3\u8840\u7600\u963b\u8bc1\":0.95, \"\u809d\u90c1\u8840\u7600\u8bc1\":0.9, \"\u5916\u4f24\u7600\u8840\u8bc1\":0.85}'),\n\n-- \u820c\u5f62\u7279\u5f81\n(7, '\u820c\u80d6\u5927', '{\"\u813e\u865a\u6e7f\u76db\u8bc1\":0.9, \"\u80be\u9633\u865a\u8bc1\":0.85, \"\u75f0\u6e7f\u8bc1\":0.8}'),\n(8, '\u820c\u7626\u8584', '{\"\u9634\u865a\u8bc1\":0.85, \"\u6c14\u8840\u4e24\u865a\u8bc1\":0.8, \"\u6d25\u6db2\u4e8f\u865a\u8bc1\":0.75}'),\n(9, '\u820c\u6709\u9f7f\u75d5', '{\"\u813e\u865a\u8bc1\":0.95, \"\u9633\u865a\u6c34\u505c\u8bc1\":0.85, \"\u6e7f\u76db\u8bc1\":0.8}'),\n(10, '\u820c\u88c2\u7eb9', '{\"\u9634\u865a\u8bc1\":0.9, \"\u8840\u865a\u8bc1\":0.8, \"\u6d25\u4f24\u8bc1\":0.75}'),\n\n-- \u820c\u82d4\u7279\u5f81\n(11, '\u82d4\u8584\u767d', '{\"\u98ce\u5bd2\u8868\u8bc1\":0.85, \"\u6b63\u5e38\":0.8, \"\u6c14\u865a\u8bc1\":0.6}'),\n(12, '\u82d4\u8584\u9ec4', '{\"\u98ce\u70ed\u8868\u8bc1\":0.9, \"\u6c14\u5206\u70ed\u8bc1\":0.8, \"\u80ba\u70ed\u8bc1\":0.75}'),\n(13, '\u82d4\u767d\u539a\u817b', '{\"\u5bd2\u6e7f\u8bc1\":0.95, \"\u75f0\u6e7f\u8bc1\":0.9, \"\u98df\u79ef\u8bc1\":0.7}'),\n(14, '\u82d4\u9ec4\u539a\u817b', '{\"\u6e7f\u70ed\u8bc1\":0.95, \"\u75f0\u70ed\u8bc1\":0.9, \"\u80a0\u80c3\u79ef\u70ed\u8bc1\":0.85}'),\n(15, '\u82d4\u7070\u9ed1', '{\"\u5bd2\u6781\u8bc1\":0.9, \"\u70ed\u6781\u8bc1\":0.85, \"\u75f0\u6e7f\u91cd\u8bc1\":0.8}'),\n(16, '\u82d4\u5c11\u6216\u65e0\u82d4', '{\"\u9634\u865a\u8bc1\":0.95, \"\u80c3\u9634\u4e8f\u865a\u8bc1\":0.9, \"\u6d25\u4f24\u8bc1\":0.85}'),\n(17, '\u82d4\u82b1\u5265', '{\"\u80c3\u9634\u4e0d\u8db3\u8bc1\":0.9, \"\u6c14\u9634\u4e24\u865a\u8bc1\":0.8, \"\u866b\u79ef\u8bc1\":0.6}'),\n\n-- \u7279\u6b8a\u820c\u8c61\n(18, '\u820c\u7ea2\u82d4\u9ec4\u71e5', '{\"\u9633\u660e\u8151\u5b9e\u8bc1\":0.95, \"\u6c14\u5206\u70ed\u76db\u8bc1\":0.9}'),\n(19, '\u820c\u6de1\u82d4\u767d\u6ed1', '{\"\u9633\u865a\u6c34\u505c\u8bc1\":0.95, \"\u5bd2\u6e7f\u8bc1\":0.9}'),\n(20, '\u820c\u7d2b\u82d4\u817b', '{\"\u75f0\u7600\u4e92\u7ed3\u8bc1\":0.9, \"\u5bd2\u51dd\u8840\u7600\u8bc1\":0.85}');<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u8109\u8c61\u7279\u5f81\u6570\u636e\uff08pulse_patterns\uff09<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-- \u5e38\u89c1\u8109\u8c61\nINSERT INTO pulse_patterns (pattern_id, pattern_name, syndrome_weights) VALUES\n(1, '\u8109\u6d6e', '{\"\u8868\u8bc1\":0.9, \"\u98ce\u90aa\u88ad\u8868\u8bc1\":0.8, \"\u6c14\u865a\u8bc1\":0.3}'),\n(2, '\u8109\u6c89', '{\"\u91cc\u8bc1\":0.9, \"\u9633\u865a\u8bc1\":0.8, \"\u6c14\u90c1\u8bc1\":0.6}'),\n(3, '\u8109\u8fdf', '{\"\u5bd2\u8bc1\":0.95, \"\u9633\u865a\u8bc1\":0.9, \"\u9634\u76db\u8bc1\":0.85}'),\n(4, '\u8109\u6570', '{\"\u70ed\u8bc1\":0.95, \"\u9634\u865a\u8bc1\":0.8, \"\u865a\u9633\u5916\u8d8a\u8bc1\":0.6}'),\n(5, '\u8109\u5f26', '{\"\u809d\u90c1\u8bc1\":0.9, \"\u75db\u8bc1\":0.8, \"\u75f0\u996e\u8bc1\":0.7}'),\n(6, '\u8109\u6ed1', '{\"\u75f0\u6e7f\u8bc1\":0.9, \"\u98df\u79ef\u8bc1\":0.8, \"\u598a\u5a20\":0.7}'),\n(7, '\u8109\u6da9', '{\"\u8840\u7600\u8bc1\":0.95, \"\u7cbe\u4e8f\u8bc1\":0.8, \"\u6c14\u6ede\u8bc1\":0.7}'),\n(8, '\u8109\u6d2a', '{\"\u6c14\u5206\u70ed\u76db\u8bc1\":0.95, \"\u9633\u660e\u7ecf\u8bc1\":0.9}'),\n(9, '\u8109\u7ec6', '{\"\u8840\u865a\u8bc1\":0.9, \"\u9634\u865a\u8bc1\":0.85, \"\u6e7f\u963b\u8bc1\":0.6}'),\n(10, '\u8109\u5f31', '{\"\u6c14\u865a\u8bc1\":0.95, \"\u9633\u865a\u8bc1\":0.9, \"\u6c14\u8840\u4e24\u865a\u8bc1\":0.85}'),\n\n-- \u590d\u5408\u8109\u8c61\n(11, '\u8109\u6d6e\u7d27', '{\"\u98ce\u5bd2\u8868\u8bc1\":0.95, \"\u8868\u5bd2\u8bc1\":0.9}'),\n(12, '\u8109\u6d6e\u6570', '{\"\u98ce\u70ed\u8868\u8bc1\":0.95, \"\u6e29\u75c5\u536b\u5206\u8bc1\":0.9}'),\n(13, '\u8109\u6c89\u8fdf', '{\"\u91cc\u5bd2\u8bc1\":0.95, \"\u9633\u865a\u8bc1\":0.9}'),\n(14, '\u8109\u6c89\u7ec6', '{\"\u8840\u865a\u8bc1\":0.9, \"\u9634\u865a\u8bc1\":0.85, \"\u80be\u865a\u8bc1\":0.8}'),\n(15, '\u8109\u5f26\u6570', '{\"\u809d\u90c1\u5316\u706b\u8bc1\":0.95, \"\u809d\u80c6\u6e7f\u70ed\u8bc1\":0.9}'),\n(16, '\u8109\u6ed1\u6570', '{\"\u75f0\u70ed\u8bc1\":0.95, \"\u98df\u79ef\u5316\u70ed\u8bc1\":0.9}'),\n(17, '\u8109\u6c89\u5f26', '{\"\u809d\u90c1\u6c14\u6ede\u8bc1\":0.9, \"\u75db\u8bc1\":0.85}'),\n(18, '\u8109\u7ed3\u4ee3', '{\"\u5fc3\u8840\u7600\u963b\u8bc1\":0.95, \"\u5fc3\u9633\u865a\u8bc1\":0.9, \"\u6c14\u8840\u865a\u8bc1\":0.8}'),\n(19, '\u8109\u6fe1', '{\"\u6e7f\u8bc1\":0.95, \"\u813e\u865a\u8bc1\":0.85}'),\n(20, '\u8109\u4fc3', '{\"\u9633\u76db\u70ed\u8bc1\":0.9, \"\u6c14\u8840\u7600\u6ede\u8bc1\":0.8}');<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u8bf4\u660e<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6743\u91cd\u89e3\u91ca<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>0.9-1.0\uff1a\u9ad8\u5ea6\u7279\u5f02\u6027\u7279\u5f81\uff08\u5982&#8221;\u8109\u7ed3\u4ee3&#8221;\u5bf9\u5fc3\u8840\u7600\u963b\u8bc1\uff09<\/li>\n\n\n\n<li>0.7-0.8\uff1a\u5178\u578b\u4f46\u4e0d\u552f\u4e00\u7279\u5f81\uff08\u5982&#8221;\u8109\u5f26&#8221;\u5bf9\u809d\u90c1\u8bc1\uff09<\/li>\n\n\n\n<li>&lt;0.5\uff1a\u975e\u7279\u5f02\u6027\u7279\u5f81\uff08\u5982&#8221;\u8109\u6d6e&#8221;\u5728\u6c14\u865a\u8bc1\u4e2d\u53ef\u80fd\u51fa\u73b0\u7684\u4f4e\u6743\u91cd\uff09<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7efc\u5408\u8fa8\u8bc1\u793a\u4f8b<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   -- \u67e5\u8be2\u820c\u8c61\"\u820c\u7ea2\u82d4\u9ec4\u817b\"\u7684\u76f8\u5173\u8bc1\u578b\n   SELECT feature_name, syndrome_weights-&gt;&gt;\"$.\u6e7f\u70ed\u8bc1\" as weight \n   FROM tongue_features \n   WHERE feature_name = '\u820c\u7ea2\u82d4\u9ec4\u817b';\n\n   -- \u67e5\u8be2\u8109\u8c61\"\u8109\u6ed1\u6570\"\u7684\u76f8\u5173\u8bc1\u578b\n   SELECT pattern_name, syndrome_weights-&gt;&gt;\"$.\u75f0\u70ed\u8bc1\" as weight \n   FROM pulse_patterns \n   WHERE pattern_name = '\u8109\u6ed1\u6570';<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u52a8\u6001\u8c03\u6574\u5efa\u8bae<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   -- \u6dfb\u52a0\u5b63\u8282\u4fee\u6b63\u56e0\u5b50\n   ALTER TABLE tongue_features ADD COLUMN season_modifier JSON;\n   UPDATE tongue_features SET season_modifier = '{\"\u590f\u5b63\":1.1, \"\u51ac\u5b63\":0.9}' WHERE feature_id IN (3,4,12,14);\n\n   -- \u6dfb\u52a0\u5e74\u9f84\u4fee\u6b63\u56e0\u5b50\n   ALTER TABLE pulse_patterns ADD COLUMN age_modifier JSON;\n   UPDATE pulse_patterns SET age_modifier = '{\"\u8001\u5e74\":1.2, \"\u513f\u7ae5\":0.8}' WHERE pattern_id IN (10,14,18);<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u4e34\u5e8a\u9a8c\u8bc1\u65b9\u6cd5<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   -- \u521b\u5efa\u9a8c\u8bc1\u8bb0\u5f55\u8868\n   CREATE TABLE diagnostic_validations (\n       validation_id INT AUTO_INCREMENT PRIMARY KEY,\n       tongue_feature_id INT,\n       pulse_pattern_id INT,\n       confirmed_syndrome_id INT,\n       confidence_level ENUM('\u9ad8','\u4e2d','\u4f4e'),\n       FOREIGN KEY (tongue_feature_id) REFERENCES tongue_features(feature_id),\n       FOREIGN KEY (pulse_pattern_id) REFERENCES pulse_patterns(pattern_id),\n       FOREIGN KEY (confirmed_syndrome_id) REFERENCES syndromes(syndrome_id)\n   );<\/code><\/pre>\n\n\n\n<p>\u9700\u8981\u6211\u7ee7\u7eed\u63d0\u4f9b\u7279\u5b9a\u8bc1\u578b\uff08\u5982\u7cd6\u5c3f\u75c5\u3001\u9ad8\u8840\u538b\uff09\u7684\u820c\u8109\u7279\u5f81\u7ec4\u5408\u65b9\u6848\uff0c\u6216\u89e3\u91ca\u5982\u4f55\u5c06\u820c\u8109\u7279\u5f81\u4e0e\u75c7\u72b6\u6743\u91cd\u8fdb\u884c\u7efc\u5408\u8fa8\u8bc1\u8ba1\u7b97\u5417\uff1f<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u9488\u5bf9 <code>diagnose()<\/code> \u65b9\u6cd5\u7684\u8be6\u7ec6\u89e3\u6790\uff0c\u5305\u62ec\u529f\u80fd\u8bf4\u660e\u3001\u7b97\u6cd5\u903b\u8f91\u3001\u53c2\u6570\u5904\u7406\u548c\u4f18\u5316\u5efa\u8bae\uff1a<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4e00\u3001\u65b9\u6cd5\u529f\u80fd\u6982\u8ff0<\/strong><\/h3>\n\n\n\n<p>\u8be5\u65b9\u6cd5\u5b9e\u73b0\u4e2d\u533b\u8fa8\u8bc1\u7684\u6838\u5fc3\u7b97\u6cd5\uff0c\u6839\u636e\u8f93\u5165\u7684\u75c7\u72b6ID\u6570\u7ec4\uff0c\u81ea\u52a8\u5206\u6790\u53ef\u80fd\u7684\u8bc1\u578b\u5e76\u63a8\u8350\u6cbb\u7597\u65b9\u6848\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4e8c\u3001\u53c2\u6570\u8bf4\u660e<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>public function diagnose($symptomIds)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8f93\u5165<\/strong>\uff1a<code>$symptomIds<\/code><br>\u75c7\u72b6ID\u6570\u7ec4\uff08\u5982 <code>[1, 3, 5]<\/code> \u5bf9\u5e94\u5934\u75db\u3001\u54b3\u55fd\u3001\u65e0\u6c57\uff09<\/li>\n\n\n\n<li><strong>\u8f93\u51fa<\/strong>\uff1a\u5305\u542b4\u4e2a\u952e\u7684\u5173\u8054\u6570\u7ec4\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  &#91;\n      'syndrome' =&gt; \u6700\u53ef\u80fd\u8bc1\u578b,\n      'treatment' =&gt; \u5bf9\u5e94\u6cbb\u7597\u65b9\u6848,\n      'confidence' =&gt; \u7f6e\u4fe1\u5ea6\u767e\u5206\u6bd4,\n      'other_possible' =&gt; \u5176\u4ed6\u53ef\u80fd\u8bc1\u578b\n  ]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4e09\u3001\u7b97\u6cd5\u6267\u884c\u6d41\u7a0b<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. \u67e5\u8be2\u76f8\u5173\u8bc1\u578b\uff08\u6838\u5fc3SQL\uff09<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \n    s.syndrome_id, \n    s.syndrome_name, \n    SUM(ssr.weight) as total_weight\nFROM syndromes s\nJOIN symptom_syndrome_relations ssr \n    ON s.syndrome_id = ssr.syndrome_id\nWHERE ssr.symptom_id IN (?, ?, ?)  -- \u52a8\u6001\u751f\u6210\u5360\u4f4d\u7b26\nGROUP BY s.syndrome_id\nORDER BY total_weight DESC<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u52a8\u6001\u5360\u4f4d\u7b26<\/strong>\uff1a\u901a\u8fc7 <code>implode<\/code> \u548c <code>array_fill<\/code> \u81ea\u52a8\u751f\u6210\u4e0e\u75c7\u72b6\u6570\u91cf\u5339\u914d\u7684 <code>IN<\/code> \u5b50\u53e5<\/li>\n\n\n\n<li><strong>\u6743\u91cd\u6c42\u548c<\/strong>\uff1a\u5bf9\u540c\u4e00\u8bc1\u578b\u5173\u8054\u7684\u6240\u6709\u75c7\u72b6\u6743\u91cd\u6c42\u548c\uff08<code>SUM(ssr.weight)<\/code>\uff09<\/li>\n\n\n\n<li><strong>\u6392\u5e8f<\/strong>\uff1a\u6309\u603b\u6743\u91cd\u964d\u5e8f\u6392\u5217<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. \u5f02\u5e38\u5904\u7406<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>if (empty($possibleSyndromes)) {\n    return &#91;'error' =&gt; '\u65e0\u6cd5\u6839\u636e\u63d0\u4f9b\u7684\u75c7\u72b6\u786e\u5b9a\u8bc1\u578b'];\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5f53\u75c7\u72b6\u672a\u5173\u8054\u4efb\u4f55\u8bc1\u578b\u65f6\u8fd4\u56de\u9519\u8bef\u63d0\u793a<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. \u83b7\u53d6\u4e3b\u8bc1\u578b<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$primarySyndrome = $possibleSyndromes&#91;0]; \/\/ \u53d6\u6743\u91cd\u6700\u9ad8\u7684\u8bc1\u578b<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. \u67e5\u8be2\u6cbb\u7597\u65b9\u6848<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM treatments \nWHERE syndrome_id = ?\nORDER BY treatment_id LIMIT 1<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u83b7\u53d6\u4e0e\u4e3b\u8bc1\u578b\u5173\u8054\u7684\u7b2c\u4e00\u4e2a\u6cbb\u7597\u65b9\u6848\uff08\u53ef\u901a\u8fc7 <code>ORDER BY<\/code> \u8c03\u6574\u4f18\u5148\u7ea7\uff09<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>5. \u8ba1\u7b97\u7f6e\u4fe1\u5ea6<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$maxPossibleWeight = count($symptomIds) * 1.0;\n$confidence = ($primarySyndrome&#91;'total_weight'] \/ $maxPossibleWeight) * 100;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u516c\u5f0f<\/strong>\uff1a<code>\u7f6e\u4fe1\u5ea6 = (\u8bc1\u578b\u603b\u6743\u91cd \/ \u75c7\u72b6\u6570\u91cf\u00d7\u6700\u5927\u5355\u6743\u91cd) \u00d7 100<\/code><\/li>\n\n\n\n<li><strong>\u793a\u4f8b<\/strong>\uff1a3\u4e2a\u75c7\u72b6\uff0c\u603b\u6743\u91cd2.4 \u2192 <code>2.4\/(3*1)*100 = 80%<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u56db\u3001\u5173\u952e\u8bbe\u8ba1\u89e3\u6790<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. \u6743\u91cd\u6c42\u548c\u7b56\u7565<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f18\u52bf<\/strong>\uff1a\u7b80\u5355\u76f4\u89c2\uff0c\u75c7\u72b6\u8d8a\u591a\u5339\u914d\u5ea6\u8d8a\u9ad8<\/li>\n\n\n\n<li><strong>\u5c40\u9650<\/strong>\uff1a\u672a\u8003\u8651\u75c7\u72b6\u4e25\u91cd\u7a0b\u5ea6\uff08\u53ef\u901a\u8fc7 <code>severity<\/code> \u5b57\u6bb5\u6539\u8fdb\uff09<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. \u7f6e\u4fe1\u5ea6\u8ba1\u7b97<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5f53\u524d\u903b\u8f91<\/strong>\uff1a\u5047\u8bbe\u6240\u6709\u75c7\u72b6\u6700\u5927\u6743\u91cd\u5747\u4e3a1.0<\/li>\n\n\n\n<li><strong>\u6539\u8fdb\u65b9\u5411<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  \/\/ \u83b7\u53d6\u5b9e\u9645\u53ef\u80fd\u7684\u6700\u5927\u6743\u91cd\uff08\u9700\u9884\u5148\u67e5\u8be2\uff09\n  $maxWeight = $this-&gt;getMaxPossibleWeight($symptomIds);\n  $confidence = $primarySyndrome&#91;'total_weight'] \/ $maxWeight * 100;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. \u6cbb\u7597\u65b9\u6848\u83b7\u53d6<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5f53\u524d\u53d6\u7b2c\u4e00\u6761\u8bb0\u5f55\uff08<code>LIMIT 1<\/code>\uff09<\/li>\n\n\n\n<li><strong>\u6269\u5c55\u5efa\u8bae<\/strong>\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>  \/\/ \u8fd4\u56de\u6240\u6709\u6cbb\u7597\u65b9\u6848\u4f9b\u9009\u62e9\n  $stmt = $this-&gt;pdo-&gt;prepare(\"SELECT * FROM treatments WHERE syndrome_id = ?\");\n  $treatments = $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4e94\u3001\u4f18\u5316\u5efa\u8bae<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. \u52a0\u5165\u75c7\u72b6\u4e25\u91cd\u5ea6\u4fee\u6b63<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u4fee\u6539SQL\uff08\u9700\u5728symptom_syndrome_relations\u8868\u6dfb\u52a0severity_level\u5b57\u6bb5\uff09\nSUM(ssr.weight * \n    CASE ssr.severity_level \n        WHEN '\u8f7b\u5ea6' THEN 0.7 \n        WHEN '\u4e2d\u5ea6' THEN 1.0 \n        WHEN '\u91cd\u5ea6' THEN 1.3 \n    END\n) as total_weight<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. \u6574\u5408\u820c\u8109\u4fe1\u606f<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>public function diagnose($symptomIds, $tongueFeatureId = null, $pulsePatternId = null) {\n    \/\/ \u539f\u6709\u75c7\u72b6\u5206\u6790...\n\n    \/\/ \u820c\u8c61\u6743\u91cd\u52a0\u6210\n    if ($tongueFeatureId) {\n        $tongueWeights = $this-&gt;getTongueWeights($tongueFeatureId);\n        foreach ($tongueWeights as $syndromeId =&gt; $weight) {\n            \/\/ \u5728\u539f\u6709\u75c7\u72b6\u6743\u91cd\u4e0a\u589e\u52a0\u820c\u8c61\u6743\u91cd\uff08\u53ef\u8bbe\u6bd4\u4f8b\u7cfb\u6570\uff09\n            $totalWeights&#91;$syndromeId] += $weight * 0.3; \n        }\n    }\n\n    \/\/ \u91cd\u65b0\u6392\u5e8f\u5e76\u8fd4\u56de\u7ed3\u679c...\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. \u6392\u9664\u89c4\u5219\u5904\u7406<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u5728\u8fd4\u56de\u7ed3\u679c\u524d\u6dfb\u52a0\u6392\u9664\u903b\u8f91\nforeach ($possibleSyndromes as $key =&gt; $syndrome) {\n    if ($this-&gt;hasExclusion($syndrome&#91;'syndrome_id'], $symptomIds)) {\n        unset($possibleSyndromes&#91;$key]);\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u516d\u3001\u5b8c\u6574\u8c03\u7528\u793a\u4f8b<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u8c03\u7528\u793a\u4f8b\n$tcm = new TCMDiagnosis($pdo);\n$result = $tcm-&gt;diagnose(&#91;1, 3, 5]); \/\/ \u5934\u75db\u3001\u54b3\u55fd\u3001\u65e0\u6c57\n\n\/\/ \u8f93\u51fa\u7ed3\u6784\n\/*\n&#91;\n    'syndrome' =&gt; &#91;\n        'syndrome_id' =&gt; 1,\n        'syndrome_name' =&gt; \"\u98ce\u5bd2\u8868\u8bc1\",\n        'total_weight' =&gt; 2.4\n    ],\n    'treatment' =&gt; &#91;\n        'treatment_name' =&gt; \"\u8f9b\u6e29\u89e3\u8868\u6cd5\",\n        'herbal_prescription' =&gt; \"\u9ebb\u9ec4\u6c64...\"\n    ],\n    'confidence' =&gt; 80.0,\n    'other_possible' =&gt; &#91;\n        &#91;'syndrome_id' =&gt; 2, 'syndrome_name' =&gt; \"\u98ce\u70ed\u8868\u8bc1\", 'total_weight' =&gt; 1.8]\n    ]\n]\n*\/<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4e03\u3001\u6269\u5c55\u65b9\u5411<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u673a\u5668\u5b66\u4e60\u8c03\u53c2<\/strong>\uff1a\u901a\u8fc7\u5386\u53f2\u75c5\u4f8b\u6570\u636e\u52a8\u6001\u4f18\u5316\u6743\u91cd<\/li>\n\n\n\n<li><strong>\u8bc1\u578b\u7ec4\u5408<\/strong>\uff1a\u652f\u6301\u590d\u5408\u8bc1\u578b\uff08\u5982&#8221;\u809d\u90c1\u813e\u865a&#8221;\uff09<\/li>\n\n\n\n<li><strong>\u4e2a\u6027\u5316\u56e0\u5b50<\/strong>\uff1a\u52a0\u5165\u60a3\u8005\u4f53\u8d28\u3001\u5b63\u8282\u7b49\u8c03\u6574\u53c2\u6570<\/li>\n<\/ol>\n\n\n\n<p>\u9700\u8981\u8fdb\u4e00\u6b65\u8ba8\u8bba\u5982\u4f55\u5b9e\u73b0\u8fd9\u4e9b\u9ad8\u7ea7\u529f\u80fd\u5417\uff1f<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7cfb\u7edf\u6982\u8ff0 \u8fd9\u4e2a\u7cfb\u7edf\u5c06\u4f7f\u7528MySQL\u4f5c\u4e3a\u6570\u636e\u5e93\uff0cPHP\u4f5c\u4e3a\u540e\u7aef\u8bed\u8a00\uff0c\u6784\u5efa\u4e00\u4e2a\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u7684\u81ea\u52a8\u5316\u5e73\u53f0\u3002\u7cfb\u7edf\u80fd\u591f\u6839\u636e\u60a3\u8005\u75c7\u72b6\u81ea\u52a8\u5206\u6790\u8fa9\u8bc1\u7c7b\u578b\uff0c\u5e76\u63d0\u4f9b\u76f8\u5e94\u7684\u6cbb\u7597\u5efa\u8bae\u3002 \u6570\u636e\u5e93\u8bbe\u8ba1(MySQL) PHP\u540e\u7aef\u5b9e\u73b0 \u6570\u636e\u5e93\u8fde\u63a5 (db_connect.php) \u8fa9\u8bc1\u8bba\u6cbb\u6838\u5fc3\u903b\u8f91 (diagnosis.php) \u524d\u7aef\u63a5\u53e3\u793a\u4f8b (API endpoints) \u7cfb\u7edf\u529f\u80fd\u6269\u5c55\u5efa\u8bae \u8fd9\u4e2a\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e00\u4e2a\u57fa\u7840\u6846\u67b6\uff0c\u5b9e\u9645\u5e94\u7528\u4e2d\u9700\u8981\u6839\u636e\u5177\u4f53\u9700\u6c42\u8fdb\u884c\u8c03\u6574\u548c\u6269\u5c55\uff0c\u7279\u522b\u662f\u4e2d\u533b\u77e5\u8bc6\u5e93\u7684\u6784\u5efa\u9700\u8981\u4e13\u4e1a\u4e2d\u533b\u5e08\u7684\u53c2\u4e0e\u4ee5\u786e\u4fdd\u51c6\u786e\u6027\u3002 \u5982\u4f55\u5e94\u7528\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u81ea\u52a8\u5316\u7cfb\u7edf \u7cfb\u7edf\u90e8\u7f72\u6b65\u9aa4 1. \u73af\u5883\u51c6\u5907 2. \u7cfb\u7edf\u5b89\u88c5 \u57fa\u7840\u6570\u636e\u5f55\u5165 1. \u5f55\u5165\u4e2d\u533b\u75c7\u72b6\u6570\u636e 2. \u5f55\u5165\u4e2d\u533b\u8bc1\u578b\u6570\u636e 3. \u5efa\u7acb\u75c7\u72b6\u4e0e\u8bc1\u578b\u5173\u8054 4. \u6dfb\u52a0\u6cbb\u7597\u65b9\u6848 \u5b9e\u9645\u5e94\u7528\u573a\u666f 1. \u95e8\u8bca\u8bca\u65ad\u6d41\u7a0b 2. \u60a3\u8005\u5386\u53f2\u67e5\u8be2 \u7cfb\u7edf\u4f18\u5316\u5efa\u8bae \u6ce8\u610f\u4e8b\u9879 \u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u53ef\u4ee5\u90e8\u7f72\u548c\u5e94\u7528\u8fd9\u4e2a\u4e2d\u533b\u8fa9\u8bc1\u8bba\u6cbb\u81ea\u52a8\u5316\u7cfb\u7edf\uff0c\u8f85\u52a9\u4e2d\u533b\u4e34\u5e8a\u8bca\u65ad\u548c\u6cbb\u7597\u65b9\u6848\u5236\u5b9a\u3002\u7cfb\u7edf\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u6807\u51c6\u5316\u4e2d\u533b\u8fa9\u8bc1\u6d41\u7a0b\u548c\u63d0\u9ad8\u8bca\u65ad\u6548\u7387\uff0c\u4f46\u6700\u7ec8\u51b3\u7b56\u4ecd\u9700\u4f9d\u8d56\u533b\u5e08\u7684\u4e13\u4e1a\u5224\u65ad\u3002 Certainly! Let me explain the linkSymptomToSyndrome() method and these specific examples in detail. Understanding linkSymptomToSyndrome() This method establishes a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-620","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/posts\/620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/comments?post=620"}],"version-history":[{"count":11,"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/posts\/620\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/posts\/620\/revisions\/631"}],"wp:attachment":[{"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/media?parent=620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/categories?post=620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/easyaccsoft.com\/webdesign\/wp-json\/wp\/v2\/tags?post=620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}