Extracción de órdenes médicas de documentos a Google Sheets (VLM Run AI)
Este es unAI Summarization, Multimodal AIflujo de automatización del dominio deautomatización que contiene 8 nodos.Utiliza principalmente nodos como GoogleDrive, GoogleSheets, VlmRun, GoogleDriveTrigger. Extraer instrucciones médicas de documentos a Google Sheets usando VLM Run AI
- •Credenciales de API de Google Drive
- •Credenciales de API de Google Sheets
Nodos utilizados (8)
Categoría
{
"meta": {
"instanceId": "96d35e452e0d9a182973416b7532cfc5643239aaaa764a5bf74d52ca84f4a35c",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "d91aa0d4-5d82-4696-bd1e-5dbadda58824",
"name": "VLM Run",
"type": "@vlm-run/n8n-nodes-vlmrun.vlmRun",
"position": [
48,
288
],
"parameters": {
"domain": "healthcare.physician-order"
},
"typeVersion": 1
},
{
"id": "12cecad0-3515-45b7-8941-2a83a32fe758",
"name": "Agregar fila en hoja",
"type": "n8n-nodes-base.googleSheets",
"position": [
544,
288
],
"parameters": {
"columns": {
"value": {
"DIAGNOSIS": "={{ $json.response.physician_info.diagnosis }}",
"EXAM DATE": "={{ $json.response.exam_data }}",
"PATIENT DOB": "={{ $json.response.patient_info.dob }}",
"PATIENT NAME": "={{ $json.response.patient_info.name.full_name }}",
"PATIENT EMAIL": "={{ $json.response.patient_info.email }}",
"PHYSICIAN FAX": "={{ $json.response.physician_info.fax }}",
"FORM SIGNED IN": "={{ $json.response.form_signed_date }}",
"PATIENT GENDER": "={{ $json.response.patient_info.gender }}",
"PATIENT HEIGHT": "={{ $json.response.patient_info.height }}",
"PATIENT WEIGHT": "={{ $json.response.patient_info.weight }}",
"PHYSICIAN NAME": "={{ $json.response.physician_info.referring_physician.full_name }}",
"ADDITIONAL INFO": "={{ $json.response.additional_notes }}",
"PATIENT ADDRESS": "={{ $json.response.patient_info.address }}",
"PHYSICIAN EMAIL": "={{ $json.response.physician_info.email }}",
"PATIENT PHONE NO": "={{ $json.response.patient_info.phone }}",
"REFERRING CLINIC": "={{ $json.response.physician_info.referring_clinic }}",
"PHYSICIAN PHONE NO": "={{ $json.response.physician_info.phone }}",
"REFERRING CLINIC ADDRESS": "={{ $json.response.physician_info.referring_clinic_address }}"
},
"schema": [
{
"id": "PATIENT NAME",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT ADDRESS",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT ADDRESS",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT PHONE NO",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT PHONE NO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT DOB",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT DOB",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT GENDER",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT GENDER",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT HEIGHT",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT HEIGHT",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PATIENT WEIGHT",
"type": "string",
"display": true,
"required": false,
"displayName": "PATIENT WEIGHT",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHYSICIAN NAME",
"type": "string",
"display": true,
"required": false,
"displayName": "PHYSICIAN NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHYSICIAN PHONE NO",
"type": "string",
"display": true,
"required": false,
"displayName": "PHYSICIAN PHONE NO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHYSICIAN EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "PHYSICIAN EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHYSICIAN FAX",
"type": "string",
"display": true,
"required": false,
"displayName": "PHYSICIAN FAX",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "REFERRING CLINIC",
"type": "string",
"display": true,
"required": false,
"displayName": "REFERRING CLINIC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "REFERRING CLINIC ADDRESS",
"type": "string",
"display": true,
"required": false,
"displayName": "REFERRING CLINIC ADDRESS",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "DIAGNOSIS",
"type": "string",
"display": true,
"required": false,
"displayName": "DIAGNOSIS",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ADDITIONAL INFO",
"type": "string",
"display": true,
"required": false,
"displayName": "ADDITIONAL INFO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EXAM DATE",
"type": "string",
"display": true,
"required": false,
"displayName": "EXAM DATE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "FORM SIGNED IN",
"type": "string",
"display": true,
"required": false,
"displayName": "FORM SIGNED IN",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sxwN8f1BTLkb3zvSmyj5HQ9iOLbqNNeDjCt0JuwzsFY/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sxwN8f1BTLkb3zvSmyj5HQ9iOLbqNNeDjCt0JuwzsFY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sxwN8f1BTLkb3zvSmyj5HQ9iOLbqNNeDjCt0JuwzsFY/edit?usp=drivesdk",
"cachedResultName": "physician order sheet"
}
},
"typeVersion": 4.7
},
{
"id": "9f3e9526-b716-49b9-b26d-59aa44b415bd",
"name": "Descargar archivo",
"type": "n8n-nodes-base.googleDrive",
"position": [
-336,
288
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"typeVersion": 3
},
{
"id": "aa4720fa-a453-4e44-b00b-95e805783ab8",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1168,
-192
],
"parameters": {
"color": 7,
"width": 480,
"height": 768,
"content": "# Physician Order Processing with VLM Run\n\nAutomatically extracts structured physician order details from uploaded documents in Google Drive and saves them into a Google Sheet for tracking, compliance, or reporting.\n\n## Workflow\n\n1. 📂 Detect file upload in Google Drive\n2. ⬇️ Download the uploaded document\n3. 🤖 Convert document to structured text using VLM Run (`healthcare.physician-orders`)\n4. 📊 Append extracted order data to Google Sheet\n\n## Perfect for\n\n* Durable Medical Equipment (DME) order forms\n* Physician treatment orders\n* Prescription request forms\n* Insurance/Medicaid submission workflows\n* Automated compliance documentation\n\n## Requirements\n\n* VLM Run API access\n* Google Drive + Sheets OAuth2\n* n8n server with active workflow"
},
"typeVersion": 1
},
{
"id": "f4cf5e61-eb58-444f-8334-e881fe5af979",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
-192
],
"parameters": {
"color": 7,
"width": 480,
"height": 768,
"content": "# Append Row in Sheet\n\n**Function:** Appends extracted structured data into a Google Sheet.\n\n* Columns could be: Patient, DOB, HCPCS Code, Item Description, Qty, Price, Diagnosis, Physician, Date\n\n**Benefit:** Provides a structured, continuously updated database for tracking orders"
},
"typeVersion": 1
},
{
"id": "abf0a903-ccfa-42da-a091-e84f8146668d",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
-192
],
"parameters": {
"width": 480,
"height": 768,
"content": "# VLM Run (Document)\n\n**Function:** Sends the physician order file to VLM Run under the category `healthcare.physician-orders`.\n\n* Extracts structured details such as:\n\n * Patient name, DOB, Medicaid ID\n * Ordered items (HCPCS, quantity, price, authorization flag)\n * Physician details (name, NPI, signature date)\n\n**Benefit:** Turns complex medical forms into machine-readable JSON"
},
"typeVersion": 1
},
{
"id": "6cec4604-f099-418f-bb58-eb0501b15759",
"name": "Google Drive Trigger",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-592,
288
],
"parameters": {
"event": "fileCreated",
"options": {
"fileType": "all"
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1E8rvLEWKguorMT36yCD1jY78G0u8g6g7",
"cachedResultUrl": "https://drive.google.com/drive/folders/1E8rvLEWKguorMT36yCD1jY78G0u8g6g7",
"cachedResultName": "test_data"
}
},
"typeVersion": 1
},
{
"id": "7f89b384-401d-448b-8f5f-0f2e916133ad",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
-192
],
"parameters": {
"color": 7,
"width": 480,
"height": 768,
"content": "# 📁 Input Processing\n\n**Monitors & downloads physician order files from Google Drive.**\n\n**Process:**\n1. Watches designated Drive folder\n2. Auto-triggers on new uploads\n3. Downloads files for AI processing\n\n**Supported Formats:**\n- Images (JPG, PNG, WEBP)\n- PDF documents\n- Mobile camera uploads\n- Scanned receipts"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"d91aa0d4-5d82-4696-bd1e-5dbadda58824": {
"main": [
[
{
"node": "12cecad0-3515-45b7-8941-2a83a32fe758",
"type": "main",
"index": 0
}
]
]
},
"9f3e9526-b716-49b9-b26d-59aa44b415bd": {
"main": [
[
{
"node": "d91aa0d4-5d82-4696-bd1e-5dbadda58824",
"type": "main",
"index": 0
}
]
]
},
"6cec4604-f099-418f-bb58-eb0501b15759": {
"main": [
[
{
"node": "9f3e9526-b716-49b9-b26d-59aa44b415bd",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Resumen de IA, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Shahrear
@shahrearI’m Shahrear, a Software Engineer with over 5 years of experience in full-stack development and workflow automation. I specialize in building intelligent automations using n8n, helping teams streamline operations and boost productivity. I’m also an expert in developing custom n8n nodes, with published work on npm - including the @vlm-run/n8n-nodes-vlmrun package. Linkedin - https://www.linkedin.com/in/shahrear-amin/ Email - shahrearbinamin33@gmail.com
Compartir este flujo de trabajo