8
n8n 中文网amn8n.com

AI医疗分诊:智能分诊、医生简报和紧急情况检测

高级

这是一个自动化工作流,包含 22 个节点。主要使用 If, Set, Code, Gmail, HttpRequest 等节点。 基于GPT-4和JotForm的医疗分诊与预约自动化

前置要求
  • Google 账号和 Gmail API 凭证
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key

分类

-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "fWklcJx1u2X1B2UA",
  "meta": {
    "instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8"
  },
  "name": "AI 医疗分诊:智能分诊、医生简报和紧急情况检测",
  "tags": [
    {
      "id": "CWardZYJBmejoyC4",
      "name": "under review",
      "createdAt": "2025-10-09T18:43:37.031Z",
      "updatedAt": "2025-10-09T18:43:37.031Z"
    }
  ],
  "nodes": [
    {
      "id": "71b9b490-6060-4af5-94e8-34525de13db5",
      "name": "提取患者数据",
      "type": "n8n-nodes-base.set",
      "position": [
        -1280,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "patient_name",
              "name": "patient_name",
              "type": "string",
              "value": "={{ $json.q3_fullName?.first || '' }} {{ $json.q3_fullName?.last || '' }}"
            },
            {
              "id": "patient_email",
              "name": "patient_email",
              "type": "string",
              "value": "={{ $json.q4_email }}"
            },
            {
              "id": "patient_phone",
              "name": "patient_phone",
              "type": "string",
              "value": "={{ $json.q5_phone }}"
            },
            {
              "id": "date_of_birth",
              "name": "date_of_birth",
              "type": "string",
              "value": "={{ $json.q6_dateOfBirth }}"
            },
            {
              "id": "reason_for_visit",
              "name": "reason_for_visit",
              "type": "string",
              "value": "={{ $json.q7_reasonForVisit }}"
            },
            {
              "id": "symptoms",
              "name": "symptoms",
              "type": "string",
              "value": "={{ $json.q8_symptoms }}"
            },
            {
              "id": "symptom_duration",
              "name": "symptom_duration",
              "type": "string",
              "value": "={{ $json.q9_duration }}"
            },
            {
              "id": "pain_level",
              "name": "pain_level",
              "type": "string",
              "value": "={{ $json.q10_painLevel || 'N/A' }}"
            },
            {
              "id": "current_medications",
              "name": "current_medications",
              "type": "string",
              "value": "={{ $json.q11_medications || 'None' }}"
            },
            {
              "id": "allergies",
              "name": "allergies",
              "type": "string",
              "value": "={{ $json.q12_allergies || 'None' }}"
            },
            {
              "id": "medical_history",
              "name": "medical_history",
              "type": "string",
              "value": "={{ $json.q13_medicalHistory || 'None reported' }}"
            },
            {
              "id": "insurance_provider",
              "name": "insurance_provider",
              "type": "string",
              "value": "={{ $json.q14_insurance || 'Self-pay' }}"
            },
            {
              "id": "preferred_date",
              "name": "preferred_date",
              "type": "string",
              "value": "={{ $json.q15_preferredDate }}"
            },
            {
              "id": "preferred_time",
              "name": "preferred_time",
              "type": "string",
              "value": "={{ $json.q16_preferredTime }}"
            },
            {
              "id": "intake_id",
              "name": "intake_id",
              "type": "string",
              "value": "=MED-{{ $json.submissionID }}-{{ Date.now() }}"
            },
            {
              "id": "submission_date",
              "name": "submission_date",
              "type": "string",
              "value": "={{ new Date().toISOString() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "940ff4ab-345c-474c-9979-3b47f3abcbcb",
      "name": "计算患者信息",
      "type": "n8n-nodes-base.code",
      "position": [
        -1040,
        240
      ],
      "parameters": {
        "jsCode": "// Calculate patient age from date of birth\nconst items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n  const dob = new Date(item.json.date_of_birth);\n  const today = new Date();\n  let age = today.getFullYear() - dob.getFullYear();\n  const monthDiff = today.getMonth() - dob.getMonth();\n  \n  if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < dob.getDate())) {\n    age--;\n  }\n  \n  // Determine patient category\n  let patientCategory = 'adult';\n  if (age < 2) patientCategory = 'infant';\n  else if (age < 12) patientCategory = 'child';\n  else if (age < 18) patientCategory = 'adolescent';\n  else if (age >= 65) patientCategory = 'senior';\n  \n  results.push({\n    json: {\n      ...item.json,\n      patient_age: age,\n      patient_category: patientCategory\n    }\n  });\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "56257aaf-3cd0-4c28-bd10-ba68c746df93",
      "name": "AI 医疗分诊与分析",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -640,
        240
      ],
      "parameters": {
        "text": "=You are an expert medical triage AI assistant helping healthcare providers prepare for patient appointments. Analyze this patient intake information and provide a comprehensive pre-appointment brief.\n\n## PATIENT INFORMATION\n\n**Name:** {{ $json.patient_name }}\n**Age:** {{ $json.patient_age }} years old ({{ $json.patient_category }})\n**DOB:** {{ $json.date_of_birth }}\n\n**Contact:**\n- Email: {{ $json.patient_email }}\n- Phone: {{ $json.patient_phone }}\n\n**Insurance:** {{ $json.insurance_provider }}\n\n---\n\n## CHIEF COMPLAINT & SYMPTOMS\n\n**Reason for Visit:** {{ $json.reason_for_visit }}\n\n**Symptoms:** {{ $json.symptoms }}\n\n**Duration:** {{ $json.symptom_duration }}\n\n**Pain Level:** {{ $json.pain_level }} (0-10 scale)\n\n---\n\n## MEDICAL BACKGROUND\n\n**Current Medications:** {{ $json.current_medications }}\n\n**Known Allergies:** {{ $json.allergies }}\n\n**Medical History:** {{ $json.medical_history }}\n\n---\n\n## YOUR TASK\n\nProvide a detailed medical analysis with the following structure:\n\n### 1. URGENCY ASSESSMENT\nClassify the urgency level based on symptoms:\n- **emergency**: Life-threatening (chest pain, severe bleeding, difficulty breathing, stroke symptoms, severe allergic reaction)\n- **urgent**: Needs same-day attention (high fever, severe pain, infection signs, injury)\n- **routine**: Can wait for regular appointment (chronic condition follow-up, preventive care)\n- **non_urgent**: Wellness visit, routine check-up, minor concerns\n\nProvide clear reasoning for the urgency classification.\n\n### 2. SYMPTOM ANALYSIS\n- Summarize primary and secondary symptoms\n- Identify any red flag symptoms requiring immediate attention\n- Note symptom patterns or progressions\n- Consider patient age and medical history context\n\n### 3. POSSIBLE CONDITIONS (Differential Diagnosis)\nList 3-5 possible conditions that could explain the symptoms, ordered by likelihood:\n1. Most likely condition with brief explanation\n2. Second possibility\n3. Third possibility\n(Continue as appropriate)\n\n**Important:** This is for provider preparation only, not a diagnosis.\n\n### 4. CRITICAL ALERTS\nFlag any of the following:\n- **Drug Interactions:** Between current medications and common treatments\n- **Allergy Concerns:** Medications/treatments to avoid\n- **Age Considerations:** Pediatric, geriatric, or pregnancy concerns\n- **Comorbidity Risks:** Existing conditions that complicate treatment\n- **Red Flags:** Symptoms suggesting serious underlying conditions\n\n### 5. RECOMMENDED PROVIDER TYPE\nWho should see this patient:\n- Primary Care Physician\n- Specialist (specify: cardiologist, dermatologist, etc.)\n- Urgent Care\n- Emergency Department\n- Telehealth appropriate\n\n### 6. PRE-APPOINTMENT PREPARATION\n\n**For Provider:**\n- Key questions to ask during visit\n- Examinations likely needed\n- Tests/labs to consider ordering\n- Reference materials to review\n\n**For Patient:**\n- What to bring (previous test results, medication list, etc.)\n- Pre-appointment instructions (fasting, medication holds, etc.)\n- What to expect during visit\n\n### 7. ESTIMATED APPOINTMENT DURATION\n- Quick visit (15 min)\n- Standard visit (30 min)\n- Extended visit (45-60 min)\n- Complex case (60+ min)\n\n### 8. APPOINTMENT PRIORITY SCORE\nRate 0-100 where:\n- 90-100: Emergency (immediate)\n- 70-89: Urgent (within 24-48 hours)\n- 40-69: Routine (within 1-2 weeks)\n- 0-39: Non-urgent (flexible scheduling)\n\nBe thorough, accurate, and prioritize patient safety. When in doubt, err on the side of caution with higher urgency levels.",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "2af7aaa5-bf80-4bcc-9076-533ce01881e5",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -704,
        496
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "8IkhtT3EbXygnvcr",
          "name": "Klinsman OpenAI"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a6542fce-7b17-4368-918c-e6068dd3cff6",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -416,
        496
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"required\": [\n    \"urgency_level\",\n    \"urgency_reasoning\",\n    \"priority_score\",\n    \"symptom_summary\",\n    \"red_flag_symptoms\",\n    \"possible_conditions\",\n    \"critical_alerts\",\n    \"recommended_provider\",\n    \"recommended_specialty\",\n    \"questions_for_provider\",\n    \"exams_needed\",\n    \"tests_to_consider\",\n    \"patient_instructions\",\n    \"items_to_bring\",\n    \"appointment_duration\",\n    \"detailed_analysis_markdown\"\n  ],\n  \"properties\": {\n    \"urgency_level\": {\n      \"type\": \"string\",\n      \"enum\": [\"emergency\", \"urgent\", \"routine\", \"non_urgent\"]\n    },\n    \"urgency_reasoning\": {\n      \"type\": \"string\",\n      \"description\": \"Why this urgency level was assigned\"\n    },\n    \"priority_score\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 100\n    },\n    \"symptom_summary\": {\n      \"type\": \"string\",\n      \"description\": \"Concise summary of key symptoms\"\n    },\n    \"red_flag_symptoms\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"description\": \"Critical symptoms requiring attention\"\n    },\n    \"possible_conditions\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"condition\": {\"type\": \"string\"},\n          \"likelihood\": {\"type\": \"string\"},\n          \"explanation\": {\"type\": \"string\"}\n        }\n      }\n    },\n    \"critical_alerts\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"description\": \"Drug interactions, allergies, age concerns\"\n    },\n    \"recommended_provider\": {\n      \"type\": \"string\",\n      \"description\": \"Type of provider needed\"\n    },\n    \"recommended_specialty\": {\n      \"type\": \"string\",\n      \"description\": \"If specialist needed, which one\"\n    },\n    \"questions_for_provider\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"exams_needed\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"tests_to_consider\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"patient_instructions\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"items_to_bring\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"}\n    },\n    \"appointment_duration\": {\n      \"type\": \"string\",\n      \"enum\": [\"15min\", \"30min\", \"45min\", \"60min\"]\n    },\n    \"detailed_analysis_markdown\": {\n      \"type\": \"string\",\n      \"description\": \"Full analysis in markdown format\"\n    }\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "c7ab4cf1-f684-431a-93ad-687f878bbb57",
      "name": "是否紧急?",
      "type": "n8n-nodes-base.if",
      "position": [
        -240,
        240
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {},
          "conditions": [
            {
              "id": "emergency-check",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.output.urgency_level }}",
              "rightValue": "emergency"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "89a54f87-502c-4a6d-b5f3-081af34374fe",
      "name": "是否急症?",
      "type": "n8n-nodes-base.if",
      "position": [
        -240,
        480
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {},
          "conditions": [
            {
              "id": "urgent-check",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.output.urgency_level }}",
              "rightValue": "urgent"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2162d6bc-cd96-41f7-9902-fe98ff1cc8ae",
      "name": "通知急救团队 (Slack)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        176,
        -48
      ],
      "parameters": {
        "url": "https://slack.com/api/chat.postMessage",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"channel\": \"medical-emergencies\",\n  \"text\": \":rotating_light: *MEDICAL EMERGENCY ALERT* :rotating_light:\\n\\n*Patient:* {{ $('Extract Patient Data').item.json.patient_name }} ({{ $('Calculate Patient Info').item.json.patient_age }}yo {{ $('Calculate Patient Info').item.json.patient_category }})\\n*Priority Score:* {{ $json.output.priority_score }}/100\\n*Urgency:* {{ $json.output.urgency_level.toUpperCase() }}\\n\\n*Chief Complaint:*\\n{{ $('Extract Patient Data').item.json.reason_for_visit }}\\n\\n*Symptoms:*\\n{{ $('Extract Patient Data').item.json.symptoms }}\\n\\n*Red Flags:*\\n{{ $json.output.red_flag_symptoms.map(flag => '• ' + flag).join('\\\\n') }}\\n\\n*Recommended Action:* {{ $json.output.urgency_reasoning }}\\n\\n:hospital: *IMMEDIATE ATTENTION REQUIRED* - Contact patient immediately at {{ $('Extract Patient Data').item.json.patient_phone }}\",\n  \"blocks\": [\n    {\n      \"type\": \"header\",\n      \"text\": {\n        \"type\": \"plain_text\",\n        \"text\": \":rotating_light: MEDICAL EMERGENCY\"\n      }\n    },\n    {\n      \"type\": \"section\",\n      \"fields\": [\n        {\n          \"type\": \"mrkdwn\",\n          \"text\": \"*Patient:*\\\\n{{ $('Extract Patient Data').item.json.patient_name }}\"\n        },\n        {\n          \"type\": \"mrkdwn\",\n          \"text\": \"*Age:*\\\\n{{ $('Calculate Patient Info').item.json.patient_age }} years\"\n        },\n        {\n          \"type\": \"mrkdwn\",\n          \"text\": \"*Priority:*\\\\n{{ $json.output.priority_score }}/100\"\n        },\n        {\n          \"type\": \"mrkdwn\",\n          \"text\": \"*Phone:*\\\\n{{ $('Extract Patient Data').item.json.patient_phone }}\"\n        }\n      ]\n    },\n    {\n      \"type\": \"section\",\n      \"text\": {\n        \"type\": \"mrkdwn\",\n        \"text\": \"*Symptoms:*\\\\n{{ $('Extract Patient Data').item.json.symptoms }}\"\n      }\n    },\n    {\n      \"type\": \"divider\"\n    },\n    {\n      \"type\": \"section\",\n      \"text\": {\n        \"type\": \"mrkdwn\",\n        \"text\": \"*:warning: Red Flags:*\\\\n{{ $json.output.red_flag_symptoms.map((flag, i) => (i+1) + '. ' + flag).join('\\\\n') }}\"\n      }\n    }\n  ]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "40c8f7d4-91f7-4aa9-ba78-52912fafa0ce",
      "name": "发送急救指南",
      "type": "n8n-nodes-base.gmail",
      "position": [
        368,
        -48
      ],
      "webhookId": "40e8a783-163e-4ae4-ba6b-249a965b1fb5",
      "parameters": {
        "sendTo": "={{ $('Extract Patient Data').item.json.patient_email }}",
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.alert-banner{background:#dc3545;color:#fff;padding:25px;text-align:center;border-radius:8px 8px 0 0}\n.alert-banner h1{margin:0;font-size:28px}\n.content{background:#fff;padding:30px;border:3px solid #dc3545}\n.urgent-box{background:#fff3cd;border:3px solid #ffc107;padding:20px;border-radius:8px;margin:20px 0;text-align:center}\n.urgent-box h2{margin:0 0 10px 0;color:#856404}\n.contact-box{background:#f8d7da;border:2px solid #dc3545;padding:15px;border-radius:5px;margin:20px 0}\nul{margin:10px 0;padding-left:20px}\nli{margin:5px 0}\n</style>\n</head>\n<body>\n<div class=\"alert-banner\">\n<h1>🚨 IMMEDIATE ATTENTION REQUIRED</h1>\n</div>\n<div class=\"content\">\n<p><strong>Dear {{ $('Extract Patient Data').item.json.patient_name }},</strong></p>\n\n<p>Based on the symptoms you reported in your intake form, our medical AI system has flagged your case as requiring <strong>immediate medical attention</strong>.</p>\n\n<div class=\"urgent-box\">\n<h2>⚠️ PLEASE TAKE ACTION NOW</h2>\n<p style=\"font-size:18px;margin:0\"><strong>Call 911 immediately</strong> or go to the nearest Emergency Department</p>\n</div>\n\n<div class=\"contact-box\">\n<p style=\"margin:0\"><strong>📞 Our medical team will call you within 15 minutes at:</strong><br>\n<span style=\"font-size:20px;color:#dc3545\"><strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong></span></p>\n</div>\n\n<h3>Why This Is Urgent:</h3>\n<p>{{ $json.output.urgency_reasoning }}</p>\n\n<h3>⚠️ Warning Signs Detected:</h3>\n<ul>\n{{ $json.output.red_flag_symptoms.map(flag => '<li><strong>' + flag + '</strong></li>').join('') }}\n</ul>\n\n<h3>What To Do Right Now:</h3>\n<ol>\n<li><strong>Call 911 or go to ER immediately</strong> if experiencing severe symptoms</li>\n<li>Have someone stay with you</li>\n<li>Bring your medications and medical records</li>\n<li>Do NOT drive yourself if symptoms are severe</li>\n</ol>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:2px solid #dc3545\"><strong>Emergency Contact Numbers:</strong><br>\n📞 Emergency: <strong>911</strong><br>\n📞 Our Clinic: <strong>(555) 123-4567</strong><br>\n📞 After Hours: <strong>(555) 123-4568</strong></p>\n\n<p style=\"font-size:12px;color:#666;margin-top:20px\">Intake ID: {{ $('Extract Patient Data').item.json.intake_id }}</p>\n</div>\n</body>\n</html>",
        "options": {},
        "subject": "=🚨 URGENT: Immediate Medical Attention Needed"
      },
      "typeVersion": 2.1
    },
    {
      "id": "b9c68bc5-0934-48ab-b7d7-e4d67b74c596",
      "name": "通知值班医生",
      "type": "n8n-nodes-base.gmail",
      "position": [
        576,
        -48
      ],
      "webhookId": "39eda42b-0a2a-4c52-89d8-f4c447eb7fbb",
      "parameters": {
        "sendTo": "on-call-doctor@clinic.com",
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:800px;margin:0 auto;padding:20px}\n.header{background:#dc3545;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:2px solid #dc3545}\n.patient-info{background:#f8f9fa;padding:20px;border-radius:5px;margin:20px 0}\n.vital-info{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}\n.info-box{background:#fff3cd;padding:15px;border-left:4px solid #ffc107}\n.red-flags{background:#f8d7da;padding:20px;border-left:4px solid #dc3545;margin:20px 0}\n.analysis{background:#e7f3ff;padding:20px;border-radius:5px;margin:20px 0}\ntable{width:100%;border-collapse:collapse;margin:15px 0}\ntable th{background:#dc3545;color:#fff;padding:12px;text-align:left}\ntable td{padding:12px;border-bottom:1px solid #ddd}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h1 style=\"margin:0\">🚨 EMERGENCY PATIENT ALERT</h1>\n<p style=\"margin:5px 0 0 0;font-size:18px\">Immediate physician review required</p>\n</div>\n<div class=\"content\">\n\n<div class=\"patient-info\">\n<h2 style=\"margin-top:0;color:#dc3545\">Patient Information</h2>\n<table>\n<tr><td><strong>Name:</strong></td><td>{{ $('Extract Patient Data').item.json.patient_name }}</td></tr>\n<tr><td><strong>Age:</strong></td><td>{{ $('Calculate Patient Info').item.json.patient_age }} years ({{ $('Calculate Patient Info').item.json.patient_category }})</td></tr>\n<tr><td><strong>DOB:</strong></td><td>{{ $('Extract Patient Data').item.json.date_of_birth }}</td></tr>\n<tr><td><strong>Phone:</strong></td><td><strong style=\"font-size:18px;color:#dc3545\">{{ $('Extract Patient Data').item.json.patient_phone }}</strong></td></tr>\n<tr><td><strong>Email:</strong></td><td>{{ $('Extract Patient Data').item.json.patient_email }}</td></tr>\n<tr><td><strong>Insurance:</strong></td><td>{{ $('Extract Patient Data').item.json.insurance_provider }}</td></tr>\n</table>\n</div>\n\n<div class=\"vital-info\">\n<div class=\"info-box\">\n<strong>Priority Score:</strong><br>\n<span style=\"font-size:32px;color:#dc3545\">{{ $json.output.priority_score }}/100</span>\n</div>\n<div class=\"info-box\">\n<strong>Urgency Level:</strong><br>\n<span style=\"font-size:24px;color:#dc3545\">{{ $json.output.urgency_level.toUpperCase() }}</span>\n</div>\n</div>\n\n<h3>Chief Complaint</h3>\n<p style=\"font-size:16px\"><strong>{{ $('Extract Patient Data').item.json.reason_for_visit }}</strong></p>\n\n<h3>Symptoms Reported</h3>\n<p>{{ $('Extract Patient Data').item.json.symptoms }}</p>\n<p><strong>Duration:</strong> {{ $('Extract Patient Data').item.json.symptom_duration }}<br>\n<strong>Pain Level:</strong> {{ $('Extract Patient Data').item.json.pain_level }}/10</p>\n\n<div class=\"red-flags\">\n<h3 style=\"margin-top:0;color:#dc3545\">🚨 RED FLAG SYMPTOMS</h3>\n<ul style=\"margin:0;padding-left:20px\">\n{{ $json.output.red_flag_symptoms.map(flag => '<li style=\"margin:8px 0;font-size:16px\"><strong>' + flag + '</strong></li>').join('') }}\n</ul>\n</div>\n\n<h3>⚠️ Critical Alerts</h3>\n<ul>\n{{ $json.output.critical_alerts.map(alert => '<li><strong>' + alert + '</strong></li>').join('') }}\n</ul>\n\n<h3>Medical Background</h3>\n<p><strong>Current Medications:</strong> {{ $('Extract Patient Data').item.json.current_medications }}<br>\n<strong>Known Allergies:</strong> <span style=\"color:#dc3545;font-weight:bold\">{{ $('Extract Patient Data').item.json.allergies }}</span><br>\n<strong>Medical History:</strong> {{ $('Extract Patient Data').item.json.medical_history }}</p>\n\n<div class=\"analysis\">\n<h3 style=\"margin-top:0\">AI Analysis & Recommendations</h3>\n<p><strong>Urgency Reasoning:</strong> {{ $json.output.urgency_reasoning }}</p>\n<p><strong>Symptom Summary:</strong> {{ $json.output.symptom_summary }}</p>\n\n<h4>Possible Conditions to Consider:</h4>\n<ol>\n{{ $json.output.possible_conditions.map(cond => '<li><strong>' + cond.condition + '</strong> (' + cond.likelihood + ')<br><em>' + cond.explanation + '</em></li>').join('') }}\n</ol>\n\n<h4>Recommended Provider:</h4>\n<p><strong>{{ $json.output.recommended_provider }}</strong>\n{{ $json.output.recommended_specialty ? ' - Specialty: ' + $json.output.recommended_specialty : '' }}</p>\n</div>\n\n<h3>Action Items for Provider</h3>\n<h4>Key Questions to Ask:</h4>\n<ul>\n{{ $json.output.questions_for_provider.map(q => '<li>' + q + '</li>').join('') }}\n</ul>\n\n<h4>Examinations Needed:</h4>\n<ul>\n{{ $json.output.exams_needed.map(exam => '<li>' + exam + '</li>').join('') }}\n</ul>\n\n<h4>Tests to Consider:</h4>\n<ul>\n{{ $json.output.tests_to_consider.map(test => '<li>' + test + '</li>').join('') }}\n</ul>\n\n<h4>Estimated Appointment Duration:</h4>\n<p><strong>{{ $json.output.appointment_duration }}</strong></p>\n\n<div style=\"margin-top:30px;padding:20px;background:#dc3545;color:#fff;border-radius:5px;text-align:center\">\n<h3 style=\"margin:0 0 10px 0\">⚡ IMMEDIATE ACTION REQUIRED</h3>\n<p style=\"margin:0;font-size:18px\">Please contact patient immediately at:<br>\n<strong style=\"font-size:24px\">{{ $('Extract Patient Data').item.json.patient_phone }}</strong></p>\n</div>\n\n<p style=\"margin-top:20px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\n<strong>Intake ID:</strong> {{ $('Extract Patient Data').item.json.intake_id }}<br>\n<strong>Submitted:</strong> {{ $('Extract Patient Data').item.json.submission_date }}<br>\n<strong>AI Analysis Date:</strong> {{ new Date().toISOString() }}\n</p>\n</div>\n</body>\n</html>",
        "options": {},
        "subject": "=🚨 EMERGENCY PATIENT - Immediate Review Required"
      },
      "typeVersion": 2.1
    },
    {
      "id": "6aff2270-85cf-418c-affc-e3d259e0a959",
      "name": "通知前台 (急症)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        224,
        352
      ],
      "webhookId": "e95174c5-19a5-4b4b-94e7-12285b29a24f",
      "parameters": {
        "sendTo": "front-desk@clinic.com",
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:700px;margin:0 auto;padding:20px}\n.header{background:#ff9800;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:2px solid #ff9800}\n.patient-card{background:#fff3cd;padding:20px;border-radius:5px;border-left:4px solid #ff9800;margin:20px 0}\n.priority-box{background:#ffc107;color:#000;padding:15px;text-align:center;border-radius:5px;margin:20px 0}\ntable{width:100%;border-collapse:collapse;margin:15px 0}\ntable td{padding:10px;border-bottom:1px solid #ddd}\ntable td:first-child{font-weight:bold;width:40%}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">⚡ Urgent Scheduling Request</h2>\n</div>\n<div class=\"content\">\n<p><strong>Please schedule this patient for same-day or next-day appointment.</strong></p>\n\n<div class=\"priority-box\">\n<h3 style=\"margin:0 0 10px 0\">Priority Score: {{ $json.output.priority_score }}/100</h3>\n<p style=\"margin:0;font-size:16px\">Urgency Level: <strong>{{ $json.output.urgency_level.toUpperCase() }}</strong></p>\n</div>\n\n<div class=\"patient-card\">\n<h3 style=\"margin-top:0\">Patient Information</h3>\n<table>\n<tr><td>Name:</td><td><strong>{{ $('Extract Patient Data').item.json.patient_name }}</strong></td></tr>\n<tr><td>Age:</td><td>{{ $('Calculate Patient Info').item.json.patient_age }} years</td></tr>\n<tr><td>Phone:</td><td><strong style=\"font-size:16px\">{{ $('Extract Patient Data').item.json.patient_phone }}</strong></td></tr>\n<tr><td>Email:</td><td>{{ $('Extract Patient Data').item.json.patient_email }}</td></tr>\n<tr><td>Insurance:</td><td>{{ $('Extract Patient Data').item.json.insurance_provider }}</td></tr>\n<tr><td>Preferred Date:</td><td>{{ $('Extract Patient Data').item.json.preferred_date }}</td></tr>\n<tr><td>Preferred Time:</td><td>{{ $('Extract Patient Data').item.json.preferred_time }}</td></tr>\n</table>\n</div>\n\n<h3>Chief Complaint</h3>\n<p><strong>{{ $('Extract Patient Data').item.json.reason_for_visit }}</strong></p>\n\n<h3>Symptoms</h3>\n<p>{{ $('Extract Patient Data').item.json.symptoms }}</p>\n<p><strong>Duration:</strong> {{ $('Extract Patient Data').item.json.symptom_duration }}</p>\n\n<h3>Provider Recommendation</h3>\n<p><strong>{{ $json.output.recommended_provider }}</strong>\n{{ $json.output.recommended_specialty ? '<br>Specialty: ' + $json.output.recommended_specialty : '' }}</p>\n\n<h3>Appointment Duration</h3>\n<p>Book <strong>{{ $json.output.appointment_duration }}</strong> appointment slot</p>\n\n<h3>Action Required</h3>\n<ol>\n<li>Contact patient at <strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong></li>\n<li>Schedule within 24-48 hours</li>\n<li>Confirm insurance eligibility</li>\n<li>Send pre-appointment instructions</li>\n</ol>\n\n<p style=\"margin-top:30px;padding:20px;background:#fff3cd;border-radius:5px\">\n<strong>📋 Note:</strong> Patient intake form completed. Provider prep brief will be sent separately.\n</p>\n\n<p style=\"margin-top:20px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
        "options": {},
        "subject": "=⚡ Urgent Patient - Schedule ASAP - {{ $('Extract Patient Data').item.json.patient_name }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PIMDNhXNj8Zyiz3G",
          "name": "Gmail account - Deepanshi"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ca4a10ac-6a8f-4b47-9d2d-aa6a4308697e",
      "name": "发送患者确认 (急症)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        464,
        352
      ],
      "webhookId": "c140b4a5-bcb5-4000-aea4-7fff6f8f412a",
      "parameters": {
        "sendTo": "={{ $('Extract Patient Data').item.json.patient_email }}",
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.header{background:#ff9800;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:1px solid #ddd}\n.info-box{background:#fff3cd;padding:15px;border-radius:5px;margin:20px 0}\nul{margin:10px 0;padding-left:20px}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">We've Received Your Information</h2>\n</div>\n<div class=\"content\">\n<p>Dear {{ $('Extract Patient Data').item.json.patient_name }},</p>\n\n<p>Thank you for completing your medical intake form. Based on your symptoms, we'd like to see you soon.</p>\n\n<div class=\"info-box\">\n<p style=\"margin:0\"><strong>⚡ Priority Status: Urgent</strong></p>\n<p style=\"margin:5px 0 0 0\">Our scheduling team will contact you within the next few hours to arrange an appointment in the next 24-48 hours.</p>\n</div>\n\n<h3>What to Expect</h3>\n<p>Our team has reviewed your intake information and has prepared for your visit. You'll receive a call from our front desk at <strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong> to schedule your appointment.</p>\n\n<h3>What to Bring</h3>\n<ul>\n{{ $json.output.items_to_bring.map(item => '<li>' + item + '</li>').join('') }}\n</ul>\n\n<h3>Pre-Appointment Instructions</h3>\n<ul>\n{{ $json.output.patient_instructions.map(instruction => '<li>' + instruction + '</li>').join('') }}\n</ul>\n\n<h3>If Your Symptoms Worsen</h3>\n<p>If you experience any of the following before your appointment:</p>\n<ul>\n<li>Severe or worsening symptoms</li>\n<li>Difficulty breathing</li>\n<li>Chest pain</li>\n<li>Severe bleeding</li>\n</ul>\n<p><strong>Call 911 or go to the nearest Emergency Department immediately.</strong></p>\n\n<h3>Contact Us</h3>\n<p>📞 Office: (555) 123-4567<br>\n📞 After Hours: (555) 123-4568<br>\n📧 Email: appointments@clinic.com</p>\n\n<p>We look forward to seeing you soon.</p>\n\n<p>Best regards,<br>\n<strong>Your Healthcare Team</strong></p>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
        "options": {},
        "subject": "=Your Medical Appointment - Next Steps"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PIMDNhXNj8Zyiz3G",
          "name": "Gmail account - Deepanshi"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "d3bc5913-96a0-4cc6-8c16-9778fadded37",
      "name": "通知排班人员 (常规)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        208,
        816
      ],
      "webhookId": "38ccc168-6d4a-4a1e-8877-304fe48c26cd",
      "parameters": {
        "sendTo": "scheduler@clinic.com",
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:700px;margin:0 auto;padding:20px}\n.header{background:#667eea;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:1px solid #ddd}\n.patient-card{background:#f8f9fa;padding:20px;border-radius:5px;margin:20px 0}\ntable{width:100%;border-collapse:collapse}\ntable td{padding:10px;border-bottom:1px solid #ddd}\ntable td:first-child{font-weight:bold;width:35%}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">📋 New Appointment Request</h2>\n</div>\n<div class=\"content\">\n<p>A new patient has completed their intake form. Please schedule an appointment.</p>\n\n<div class=\"patient-card\">\n<h3 style=\"margin-top:0\">Patient Details</h3>\n<table>\n<tr><td>Name:</td><td><strong>{{ $('Extract Patient Data').item.json.patient_name }}</strong></td></tr>\n<tr><td>Age:</td><td>{{ $('Calculate Patient Info').item.json.patient_age }} years ({{ $('Calculate Patient Info').item.json.patient_category }})</td></tr>\n<tr><td>Phone:</td><td><strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong></td></tr>\n<tr><td>Email:</td><td>{{ $('Extract Patient Data').item.json.patient_email }}</td></tr>\n<tr><td>Insurance:</td><td>{{ $('Extract Patient Data').item.json.insurance_provider }}</td></tr>\n<tr><td>Preferred Date:</td><td>{{ $('Extract Patient Data').item.json.preferred_date }}</td></tr>\n<tr><td>Preferred Time:</td><td>{{ $('Extract Patient Data').item.json.preferred_time }}</td></tr>\n</table>\n</div>\n\n<h3>Appointment Details</h3>\n<p><strong>Visit Type:</strong> {{ $('Extract Patient Data').item.json.reason_for_visit }}<br>\n<strong>Recommended Provider:</strong> {{ $json.output.recommended_provider }}<br>\n<strong>Duration:</strong> {{ $json.output.appointment_duration }}<br>\n<strong>Priority:</strong> {{ $json.output.urgency_level }}</p>\n\n<h3>Scheduling Instructions</h3>\n<p>Schedule within 1-2 weeks at patient's preferred time.</p>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
        "options": {},
        "subject": "=New Appointment Request - {{ $('Extract Patient Data').item.json.patient_name }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PIMDNhXNj8Zyiz3G",
          "name": "Gmail account - Deepanshi"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "807c0df0-e1fc-4374-bc07-b506d2dda06e",
      "name": "发送患者确认 (常规)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        576,
        816
      ],
      "webhookId": "06cafaa5-7568-4e3c-a038-7fe5e6290a8e",
      "parameters": {
        "sendTo": "={{ $('Extract Patient Data').item.json.patient_email }}",
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.header{background:#667eea;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:1px solid #ddd}\n.info-box{background:#e7f3ff;padding:15px;border-radius:5px;margin:20px 0}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">Thank You for Your Submission</h2>\n</div>\n<div class=\"content\">\n<p>Dear {{ $('Extract Patient Data').item.json.patient_name }},</p>\n\n<p>Thank you for completing your medical intake form. We've received your information and will be in touch shortly to schedule your appointment.</p>\n\n<div class=\"info-box\">\n<p style=\"margin:0\"><strong>📅 Next Steps</strong></p>\n<p style=\"margin:5px 0 0 0\">Our scheduling team will contact you within 1-2 business days at <strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong> to arrange an appointment that works with your schedule.</p>\n</div>\n\n<h3>Your Preferred Appointment Time</h3>\n<p><strong>Date:</strong> {{ $('Extract Patient Data').item.json.preferred_date }}<br>\n<strong>Time:</strong> {{ $('Extract Patient Data').item.json.preferred_time }}</p>\n\n<p>We'll do our best to accommodate your preferences.</p>\n\n<h3>What to Bring</h3>\n<ul>\n{{ $json.output.items_to_bring.map(item => '<li>' + item + '</li>').join('') }}\n</ul>\n\n<h3>Before Your Appointment</h3>\n<ul>\n{{ $json.output.patient_instructions.map(instruction => '<li>' + instruction + '</li>').join('') }}\n</ul>\n\n<h3>Questions?</h3>\n<p>If you have any questions or if your symptoms change, please don't hesitate to contact us:</p>\n<p>📞 Office: (555) 123-4567<br>\n📧 Email: appointments@clinic.com</p>\n\n<p>We look forward to caring for you.</p>\n\n<p>Warm regards,<br>\n<strong>Your Healthcare Team</strong></p>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
        "options": {},
        "subject": "=Thank You - We'll Schedule Your Appointment Soon"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PIMDNhXNj8Zyiz3G",
          "name": "Gmail account - Deepanshi"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c54705c2-087d-4719-8fa4-9f39cafae5db",
      "name": "记录到患者数据库",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1120,
        272
      ],
      "parameters": {
        "columns": {
          "value": {
            "status": "={{ $json.status || 'Pending Scheduling' }}",
            "symptoms": "={{ $('Extract Patient Data').item.json.symptoms }}",
            "allergies": "={{ $('Extract Patient Data').item.json.allergies }}",
            "insurance": "={{ $('Extract Patient Data').item.json.insurance_provider }}",
            "intake_id": "={{ $('Extract Patient Data').item.json.intake_id }}",
            "red_flags": "={{ $json.output.red_flag_symptoms.join('; ') }}",
            "pain_level": "={{ $('Extract Patient Data').item.json.pain_level }}",
            "medications": "={{ $('Extract Patient Data').item.json.current_medications }}",
            "patient_age": "={{ $('Calculate Patient Info').item.json.patient_age }}",
            "patient_name": "={{ $('Extract Patient Data').item.json.patient_name }}",
            "patient_email": "={{ $('Extract Patient Data').item.json.patient_email }}",
            "patient_phone": "={{ $('Extract Patient Data').item.json.patient_phone }}",
            "urgency_level": "={{ $json.output.urgency_level }}",
            "priority_score": "={{ $json.output.priority_score }}",
            "submission_date": "={{ $('Extract Patient Data').item.json.submission_date }}",
            "patient_category": "={{ $('Calculate Patient Info').item.json.patient_category }}",
            "reason_for_visit": "={{ $('Extract Patient Data').item.json.reason_for_visit }}",
            "symptom_duration": "={{ $('Extract Patient Data').item.json.symptom_duration }}",
            "appointment_duration": "={{ $json.output.appointment_duration }}",
            "recommended_provider": "={{ $json.output.recommended_provider }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "caee6ac1-430e-4209-b1fa-a5eb45cc9a0b",
      "name": "便签 - 信息收集",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1584,
        64
      ],
      "parameters": {
        "color": 5,
        "width": 756,
        "height": 388,
        "content": "## 📋 患者信息收集"
      },
      "typeVersion": 1
    },
    {
      "id": "c52626e9-4658-4759-9524-7790b07363b0",
      "name": "便签 - 分诊",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -752,
        64
      ],
      "parameters": {
        "color": 4,
        "width": 676,
        "height": 604,
        "content": "## 🤖 AI 医疗分诊与分析"
      },
      "typeVersion": 1
    },
    {
      "id": "703c5f39-f111-473d-b34c-ebb9b2e22b2e",
      "name": "便签 - 紧急情况",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -240
      ],
      "parameters": {
        "color": 3,
        "width": 744,
        "height": 380,
        "content": "## 🚨 紧急响应协议"
      },
      "typeVersion": 1
    },
    {
      "id": "589e4311-b163-458a-8fa6-f0bfb97bfc9d",
      "name": "便签 - 急症",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        192
      ],
      "parameters": {
        "color": 6,
        "width": 760,
        "height": 396,
        "content": "## ⚡ 紧急排班路径"
      },
      "typeVersion": 1
    },
    {
      "id": "d39e7c5f-5f95-41d2-8d11-2232e93ee42f",
      "name": "便签 - 常规",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        640
      ],
      "parameters": {
        "color": 7,
        "width": 776,
        "height": 412,
        "content": "## 📅 常规排班路径"
      },
      "typeVersion": 1
    },
    {
      "id": "cb14c6a8-765c-42d6-8bda-77c93eabba8e",
      "name": "便签 - 数据库",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        96
      ],
      "parameters": {
        "color": 2,
        "width": 440,
        "height": 380,
        "content": "## 📊 患者数据管理"
      },
      "typeVersion": 1
    },
    {
      "id": "76a3a76f-d389-4355-8214-22c4a4175c6e",
      "name": "JotForm 触发器1",
      "type": "n8n-nodes-base.jotFormTrigger",
      "position": [
        -1520,
        240
      ],
      "webhookId": "06e9eacf-f9fc-46e1-9564-37d2de14ae21",
      "parameters": {
        "form": "252815075257460"
      },
      "credentials": {
        "jotFormApi": {
          "id": "cOSh16Q5l4e0EB1A",
          "name": "Jotform jitesh@mediajade.com"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8c4c5d6e-8ef7-49e2-a84a-22e836124cbb",
  "connections": {
    "Is Urgent?": {
      "main": [
        [
          {
            "node": "Notify Front Desk (Urgent)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Scheduler (Routine)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Emergency?": {
      "main": [
        [
          {
            "node": "Alert Emergency Team (Slack)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JotForm Trigger1": {
      "main": [
        [
          {
            "node": "Extract Patient Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Medical Triage & Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Alert On-Call Doctor": {
      "main": [
        [
          {
            "node": "Log to Patient Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Patient Data": {
      "main": [
        [
          {
            "node": "Calculate Patient Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Patient Info": {
      "main": [
        [
          {
            "node": "AI Medical Triage & Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Medical Triage & Analysis",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Notify Front Desk (Urgent)": {
      "main": [
        [
          {
            "node": "Send Patient Confirmation (Urgent)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Scheduler (Routine)": {
      "main": [
        [
          {
            "node": "Send Patient Confirmation (Routine)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Emergency Instructions": {
      "main": [
        [
          {
            "node": "Alert On-Call Doctor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Medical Triage & Analysis": {
      "main": [
        [
          {
            "node": "Is Emergency?",
            "type": "main",
            "index": 0
          },
          {
            "node": "Is Urgent?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Alert Emergency Team (Slack)": {
      "main": [
        [
          {
            "node": "Send Emergency Instructions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Patient Confirmation (Urgent)": {
      "main": [
        [
          {
            "node": "Log to Patient Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Patient Confirmation (Routine)": {
      "main": [
        [
          {
            "node": "Log to Patient Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量22
分类-
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Jitesh Dugar

Jitesh Dugar

@jiteshdugar

AI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.

外部链接
在 n8n.io 查看

分享此工作流