① Input Layer — ต้นทาง
A 🏥 Lab Upload Portal
เจ้าหน้าที่ lab อัปโหลด FASTQ ผ่าน Web UI หรือ CLI. ระบุ sample type, test type, และ metadata
FASTQ R1/R2
sample metadata
HTTPS upload
B 🔌 API Integration
โรงพยาบาลที่มี LIS/HIS ส่ง FASTQ ผ่าน REST API โดยตรง ไม่ต้องผ่าน portal
REST API
JWT Auth
LIS/HIS
C 💾 S3 Raw Storage
FASTQ ถูกเก็บใน S3 bucket แยกต่างหาก ด้วย server-side encryption และ versioning
AWS S3
AES-256
Versioning
trigger pipeline job
② Orchestration Layer — ควบคุมการทำงาน
1 ⚙️ FastAPI Backend
รับ event จาก S3, validate metadata, สร้าง job record ใน DB แล้ว push งานเข้า queue
Python FastAPI
PostgreSQL
S3 event
2 📋 Celery Task Queue
รับ job จาก Backend แล้วส่งต่อให้ Nextflow worker รันอัตโนมัติ รองรับ retry และ priority queue
Celery
Redis
Priority Queue
3 🎯 Nextflow Engine
Workflow manager หลัก รัน process แต่ละ step ใน Docker container บน AWS Batch อัตโนมัติ
Nextflow
AWS Batch
Docker
execute pipeline steps
③ Pipeline Layer — ขั้นตอนวิเคราะห์ (รันบน AWS Batch)
S1 QC & Trim
ตรวจคุณภาพ raw reads ตัด adapter และ low-Q bases
FastQC
Trimmomatic
S2 Alignment
Map reads ไปยัง GRCh38 reference genome
BWA-MEM2
SAM/BAM
S3 Post-process
Sort, MarkDup, Base Quality Score Recalibration
GATK
Picard
S4 Variant Calling
หา SNV, Indel, CNV จาก BAM เทียบ reference
HaplotypeCaller
Mutect2
S5 Annotation
แปะข้อมูล gene, consequence, clinical significance
VEP
ANNOVAR
S6 Filtering
กรอง variant ตาม MAF, ACMG criteria, in silico
ACMG
gnomAD
S7 Report Gen
สร้าง PDF report และ JSON สำหรับ dashboard
WeasyPrint
JSON API
store results + notify
④ Data Layer — จัดเก็บข้อมูล
🗄️ PostgreSQL
Job metadata, user data, QC metrics, sample info, audit log ทุก action
Jobs
Users
Audit Log
🔍 Elasticsearch
Variant database — ค้นหาได้เร็วมาก รองรับ filter ซับซ้อน full-text search บน annotation
Variants
Full-text
Filter
💾 S3 Results
เก็บ BAM, VCF, PDF report แยก bucket จาก raw input มี lifecycle policy ลบอัตโนมัติ
BAM/VCF
PDF
Lifecycle
⚡ Redis Cache
Cache job status, session tokens, real-time pipeline progress สำหรับ dashboard
Cache
Sessions
Pub/Sub
serve data to users
⑤ External Reference Databases — ข้อมูลอ้างอิงสากล
ClinVar
Clinical significance ของ variant
NCBI
gnomAD
Population frequency ทั่วโลก
Broad
COSMIC
Somatic mutation ในมะเร็ง
Sanger
OMIM
Gene-disease association
Johns Hopkins
dbSNP
Known variant rs numbers
NCBI
HPO / OMIM
Phenotype-genotype map
EBI
display + interact
⑥ Frontend Layer — ผู้ใช้งาน
🔬 Lab Dashboard
เจ้าหน้าที่ lab ดู job status real-time, อัปโหลด sample, ดู QC report, ติดตาม pipeline progress
Job Status
QC Report
Upload
🩺 Clinical Dashboard
แพทย์/นักพันธุศาสตร์ interpret variant, ดู ACMG classification, approve report ก่อนส่งผู้ป่วย
Variant Table
ACMG
Approve
👤 Patient Portal
ผู้ป่วยดูผลการตรวจ (simplified), ประวัติการตรวจ, นัดหมายพบแพทย์, AI chatbot ตอบคำถาม
Results
History
AI Chat
⑦ Notification Layer — แจ้งเตือน
📧 Email
แจ้ง QC fail, pipeline สำเร็จ, report พร้อม
SES
💬 LINE / SMS
แจ้งเตือนเร่งด่วนสำหรับ critical variant
LINE Notify
🔔 In-App
Real-time notification บน dashboard ผ่าน WebSocket
WebSocket
🔗 Webhook
ส่งผลไปยัง HIS/LIS ของโรงพยาบาลอัตโนมัติ
REST Hook
⑧ Security & Compliance Layer
🔐 Authentication
JWT + Refresh token, MFA สำหรับ clinical user, SSO รองรับ hospital AD
JWTMFASSO
🛡️ RBAC
แยก role ชัดเจน: Lab Tech / Clinician / Patient / Admin สิทธิ์ต่างกันทุก endpoint
RolesPermissions
🔒 Encryption
TLS 1.3 ทุก connection, AES-256 at rest, KMS key rotation อัตโนมัติ
TLS 1.3AES-256KMS
📋 Audit Log
บันทึกทุก action: ใคร, เมื่อไหร่, ทำอะไร สำหรับ compliance และ forensics
CloudTrailImmutable