ข้ามไปที่เนื้อหา

3.1 Infrastructure & Deployment

3. Infrastructure & Deployment

3.1 Server Setup & Deployment

อ้างอิง TOR:

  • 3.1.7 ระบบสามารถติดตั้งบนเครื่องเซิฟเวอร์ที่ทางโรงพยาบาลทำการจัดเตรียม

วัตถุประสงค์:

Module นี้เป็นพื้นฐานโครงสร้างระบบทั้งหมด รับผิดชอบการติดตั้ง กำหนดค่า และ Deploy ระบบทั้งหมดบน Windows Server ที่โรงพยาบาลจัดเตรียมไว้ ต้องให้ความสำคัญกับความเสถียร ความปลอดภัย และความพร้อมใช้งาน (Availability) ของระบบ


3.1.1 ติดตั้งระบบบน Windows Server

TOR Reference: 3.1.7, 3.1.7.4

คำอธิบาย: การติดตั้งระบบครั้งแรกบน Windows Server ที่โรงพยาบาลจัดเตรียมไว้ โดยต้องตรวจสอบ Hardware Specification ให้เป็นไปตามข้อกำหนด และติดตั้งซอฟต์แวร์ที่จำเป็นทั้งหมดเพื่อให้ระบบสามารถทำงานได้อย่างสมบูรณ์

ข้อกำหนด Hardware (ตาม TOR 3.1.7):

  • CPU: ไม่น้อยกว่า 4 Cores
  • RAM: ไม่น้อยกว่า 8 GB
  • Storage: ไม่น้อยกว่า 100 GB
  • OS: Windows Server (2016 หรือสูงกว่า แนะนำ 2019/2022)

การทำงาน:

  1. การตรวจสอบเบื้องต้น:

  2. ตรวจสอบ Hardware Specification ว่าเป็นไปตามข้อกำหนดขั้นต่ำ

  3. ตรวจสอบ Windows Server version และ Service Pack
  4. ตรวจสอบ Network configuration (IP Address, DNS, Gateway)
  5. ตรวจสอบ Firewall settings และ Port ที่จำเป็น (80, 443, 1433)

  6. ติดตั้ง Prerequisites:

  7. ติดตั้ง .NET Framework (หรือ .NET Core Runtime ตามเทคโนโลจีที่เลือก)

  8. ติดตั้ง IIS (Internet Information Services) สำหรับ Web Server
  9. ติดตั้ง URL Rewrite Module สำหรับ IIS
  10. ติดตั้ง Web Deploy สำหรับการ Deploy แอปพลิเคชัน

  11. การกำหนดค่า IIS:

  12. สร้าง Application Pool ใหม่สำหรับแอปพลิเคชัน

  13. กำหนดค่า Identity และ .NET CLR Version
  14. สร้าง Website ใหม่และกำหนด Port (แนะนำ 80 สำหรับ HTTP, 443 สำหรับ HTTPS)
  15. กำหนด Physical Path ไปยังโฟลเดอร์ที่เก็บแอปพลิเคชัน

  16. การสร้างโครงสร้างโฟลเดอร์:

  17. สร้างโฟลเดอร์หลัก เช่น C:\inetpub\HISNotificationSystem

  18. สร้างโฟลเดอร์สำหรับ Logs: C:\Logs\HISNotification
  19. สร้างโฟลเดอร์สำหรับ Uploads/Files: C:\Data\HISNotification
  20. กำหนดสิทธิ์ (Permissions) ให้เหมาะสม

  21. การทดสอบ:

  22. ทดสอบเปิด Website ผ่าน Browser (http://localhost)

  23. ทดสอบการเข้าถึงจาก Network ภายนอก
  24. ตรวจสอบ Event Viewer และ IIS Logs

UI/UX Requirements:

  • N/A (เป็นงาน Infrastructure ไม่มี UI)

3.1.2 กำหนดค่า Database (SQL Server)

TOR Reference: 3.1.7, 3.7

คำอธิบาย: การติดตั้งและกำหนดค่า SQL Server สำหรับเก็บข้อมูลของระบบ รวมทั้งการสร้างฐานข้อมูล ตาราง Stored Procedures และการตั้งค่า Security ต่างๆ เพื่อให้ระบบสามารถจัดเก็บและดึงข้อมูลได้อย่างมีประสิทธิภาพและปลอดภัย

การทำงาน:

  1. ติดตั้ง SQL Server:

  2. ติดตั้ง SQL Server (แนะนำ 2017 หรือสูงกว่า) หรือใช้ SQL Server Express (ฟรี)

  3. ติดตั้ง SQL Server Management Studio (SSMS) สำหรับจัดการฐานข้อมูล
  4. กำหนดค่า SQL Server Authentication (Mixed Mode: Windows + SQL)
  5. ตั้งค่า TCP/IP Protocol และ Port (Default: 1433)
  6. เปิด Firewall สำหรับ Port 1433

  7. สร้างฐานข้อมูล:

  8. สร้าง Database ใหม่: HISNotificationDB

  9. กำหนด Initial Size และ Autogrowth สำหรับ Data File และ Log File
  10. กำหนด Recovery Model (แนะนำ SIMPLE หรือ FULL)
  11. สร้าง Database User และกำหนดสิทธิ์ (db_owner หรือจำกัดเฉพาะที่จำเป็น)

  12. สร้าง Database Schema:

  13. ตารางหลัก:

    • Users - จัดเก็บข้อมูลผู้ใช้งาน
    • Patients - ข้อมูลผู้ป่วยที่ลงทะเบียน LINE
    • Appointments - ข้อมูลนัดหมาย (Sync จาก HIS)
    • Notifications - ข้อมูลการแจ้งเตือนที่ส่งออกไป
    • NotificationResponses - การตอบกลับจากผู้ป่วย
    • MessageTemplates - Template ข้อความ
    • NotificationGroups - กลุ่มการแจ้งเตือน
    • SystemSettings - การตั้งค่าระบบ
    • ActivityLogs - Log การใช้งาน
    • Reports - ข้อมูลรายงานที่ Generate แล้ว
  14. สร้าง Stored Procedures:

  15. SP สำหรับ CRUD operations ของแต่ละตาราง

  16. SP สำหรับ Query ข้อมูลที่ซับซ้อน (เช่น รายงาน, Dashboard)
  17. SP สำหรับ Sync ข้อมูลจาก HIS Database
  18. SP สำหรับ Cleanup ข้อมูลเก่า (Archive/Delete)

  19. การตั้งค่า Backup:

  20. กำหนด Backup Schedule (Full Backup ทุกวัน, Differential Backup ทุก 6 ชั่วโมง)

  21. กำหนดตำแหน่งเก็บ Backup Files
  22. ทดสอบ Restore จาก Backup

  23. Performance Tuning:

  24. สร้าง Index ที่เหมาะสมสำหรับ Query ที่ใช้บ่อย

  25. กำหนด Statistics Update Schedule
  26. Monitor และ Optimize Slow Queries

UI/UX Requirements:

  • N/A (เป็นงาน Infrastructure ไม่มี UI)

3.1.3 Setup SSL Certificate

TOR Reference: ความปลอดภัยของระบบ (implied จาก TOR)

คำอธิบาย: การติดตั้ง SSL/TLS Certificate เพื่อเข้ารหัสการสื่อสารระหว่าง Client และ Server ผ่าน HTTPS ทำให้ข้อมูลผู้ป่วยและการสื่อสารมีความปลอดภัย ไม่ถูกดักฟังหรือแก้ไขระหว่างทาง

การทำงาน:

  1. การขอ SSL Certificate:

  2. กรณีใช้ภายใน (Internal): สร้าง Self-Signed Certificate หรือใช้ Internal CA

  3. กรณีเปิดให้ใช้งานจาก Internet: ขอ Certificate จาก Certificate Authority (CA) เช่น Let's Encrypt (ฟรี), DigiCert, Thawte
  4. เตรียม CSR (Certificate Signing Request) พร้อม Domain Name

  5. ติดตั้ง Certificate บน IIS:

  6. Import Certificate File (.pfx หรือ .cer) เข้า Certificate Store

  7. เปิด IIS Manager > เลือก Website > Bindings
  8. Add HTTPS Binding (Port 443) และเลือก SSL Certificate
  9. กำหนด Require SSL (optional แต่แนะนำ)

  10. การตั้งค่า Redirect HTTP to HTTPS:

  11. ติดตั้ง URL Rewrite Module (ถ้ายังไม่มี)

  12. สร้าง Redirect Rule: HTTP (Port 80) → HTTPS (Port 443)
  13. ทดสอบว่า Redirect ทำงานถูกต้อง

  14. การตั้งค่าเพิ่มเติม:

  15. เปิดใช้งาน HSTS (HTTP Strict Transport Security) Header

  16. กำหนดค่า TLS Version (แนะนำ TLS 1.2 ขึ้นไป, ปิด SSL 3.0, TLS 1.0)
  17. ตั้งค่า Cipher Suites ที่ปลอดภัย

  18. การทดสอบ:

  19. ทดสอบเข้า Website ผ่าน HTTPS (https://domain.com)

  20. ตรวจสอบ Certificate ว่า Valid และไม่มี Warning
  21. ทดสอบด้วย SSL Labs (https://www.ssllabs.com/ssltest/) เพื่อตรวจสอบคุณภาพ

UI/UX Requirements:

  • N/A (เป็นงาน Infrastructure ไม่มี UI)

3.1.4 Deploy Web Application

TOR Reference: การติดตั้งระบบ (implied จาก TOR)

คำอธิบาย: การ Deploy แอปพลิเคชัน Back Office และ LINE Webhook API ขึ้นบน IIS เพื่อให้ระบบสามารถทำงานได้จริง รวมทั้งการกำหนดค่า Configuration Files และการทดสอบการทำงานของระบบ

การทำงาน:

  1. เตรียม Application Files:

  2. Build แอปพลิเคชันในโหมด Production/Release

  3. รวม Dependency Files ทั้งหมด
  4. สร้าง Configuration File สำหรับ Production (appsettings.json หรือ web.config)
  5. กำหนดค่าการเชื่อมต่อฐานข้อมูล (Connection Strings)
  6. กำหนดค่า LINE Messaging API (Channel Access Token, Channel Secret)

  7. Deploy to IIS:

  8. วิธีที่ 1 - Manual Copy:

    • Copy ไฟล์ทั้งหมดไปยัง Physical Path ของ IIS Website
    • ตรวจสอบสิทธิ์ (Permissions) ของโฟลเดอร์
  9. วิธีที่ 2 - Web Deploy:

    • ใช้ Visual Studio Publish หรือ MSDeploy Command Line
    • กำหนดค่า Publish Profile
    • Deploy ผ่าน Web Deploy Protocol
  10. กำหนดค่า Application:

  11. ตั้งค่า Connection String ให้ชี้ไปยัง SQL Server

  12. กำหนด LINE API Credentials
  13. ตั้งค่า Logging (Log Level, Log File Path)
  14. กำหนดค่า Email/SMS Gateway (ถ้ามี)
  15. ตั้งค่า CORS (Cross-Origin Resource Sharing) ถ้าจำเป็น

  16. Database Migration:

  17. รัน Database Schema Migration Scripts

  18. Insert Master Data/Seed Data (เช่น Admin User, Default Settings)
  19. Verify ข้อมูลเริ่มต้นในฐานข้อมูล

  20. การทดสอบหลัง Deploy:

  21. ทดสอบเปิด Back Office ผ่าน Browser

  22. ทดสอบ Login ด้วย Admin Account
  23. ทดสอบ LINE Webhook Endpoint (ใช้ Postman หรือ LINE Developer Console)
  24. ทดสอบการเชื่อมต่อฐานข้อมูล
  25. ทดสอบการส่ง LINE Message (Push Message)
  26. ตรวจสอบ Log Files ว่าไม่มี Error

  27. Monitoring Setup:

  28. ติดตั้ง Application Performance Monitoring (ถ้ามี)

  29. ตั้งค่า Error Logging และ Alert
  30. สร้าง Health Check Endpoint

UI/UX Requirements:

  • N/A (เป็นงาน Infrastructure ไม่มี UI)

3.1.5 Setup Scheduler Service

TOR Reference: 3.4.5, 3.5

คำอธิบาย: การติดตั้งและกำหนดค่า Background Service (Windows Service หรือ Task Scheduler) สำหรับทำงานตามกำหนดเวลา เช่น ดึงข้อมูลนัดหมายจาก HIS, ส่งการแจ้งเตือนอัตโนมัติ, ทำ Data Cleanup และสร้างรายงานตามตารางเวลา

การทำงาน:

  1. สร้าง Scheduler Service:

  2. ทางเลือก 1 - Windows Service:

    • สร้าง Windows Service Application (.NET Core Worker Service หรือ Windows Service)
    • Install Service ด้วย sc.exe หรือ InstallUtil.exe
    • ตั้งค่า Service เป็น Auto Start
  3. ทางเลือก 2 - Windows Task Scheduler:

    • สร้าง Console Application สำหรับแต่ละ Task
    • สร้าง Scheduled Task ใน Task Scheduler
    • กำหนด Trigger (เวลาที่ต้องการให้ทำงาน)
  4. Jobs ที่ต้องมี:

A. Sync Appointment Job (ดึงข้อมูลนัดหมายจาก HIS):

  • Schedule: ทุก 1 ชั่วโมง หรือตามที่ TOR 3.4.5 กำหนด
  • การทำงาน:

    • Query ข้อมูลนัดหมายจาก HIS Database (หรือ API)
    • เปรียบเทียบกับข้อมูลในระบบ (Insert/Update/Delete)
    • บันทึก Log การ Sync

B. Send Notification Job (ส่งการแจ้งเตือนอัตโนมัติ):

  • Schedule: ตามที่กำหนดในระบบ (เช่น ทุกเช้า 8:00 น.)
  • การทำงาน:

    • Query นัดหมายที่จะถึงกำหนดตาม Notification Settings
    • กรองเฉพาะผู้ป่วยที่ลงทะเบียนและเปิดการแจ้งเตือน
    • สร้างข้อความจาก Template
    • ส่ง LINE Push Message
    • บันทึก Notification Log

C. Data Cleanup Job (ลบหรือ Archive ข้อมูลเก่า):

  • Schedule: ทุกวัน เวลา 02:00 น.
  • การทำงาน:

    • ลบ Notification Logs ที่เก่ากว่า 1 ปี
    • Archive ข้อมูลนัดหมายที่เสร็จสิ้นแล้ว
    • ลบ Temporary Files

D. Report Generation Job (สร้างรายงานตามตารางเวลา):

  • Schedule: ทุกวันจันทร์ เวลา 07:00 น. (รายงานสัปดาห์)
  • การทำงาน:

    • สร้างรายงานสรุปประจำสัปดาห์
    • Export เป็น Excel/PDF
    • ส่งอีเมลแจ้งเจ้าหน้าที่ (ถ้ามี)
  • การกำหนดค่า Job:

  • ตั้งค่าเวลาทำงานของแต่ละ Job

  • กำหนด Retry Policy (กรณี Job ล้มเหลว)
  • ตั้งค่า Timeout สำหรับแต่ละ Job
  • กำหนด Concurrency (จำนวน Job ที่ทำงานพร้อมกัน)

  • Logging และ Monitoring:

  • บันทึก Log ทุกครั้งที่ Job ทำงาน (Start Time, End Time, Status)

  • บันทึก Error Log กรณี Job ล้มเหลว
  • Alert เจ้าหน้าที่กรณีมี Error (Email หรือ LINE Notify)
  • สร้าง Dashboard แสดงสถานะ Jobs

  • การทดสอบ:

  • ทดสอบ Manual Run แต่ละ Job

  • ตรวจสอบ Log ว่าทำงานถูกต้อง
  • ทดสอบกรณี Error Handling
  • ตรวจสอบว่า Schedule ทำงานตามเวลาที่กำหนด

UI/UX Requirements:

  • N/A (เป็นงาน Infrastructure ไม่มี UI แต่อาจมี Admin Panel สำหรับดูสถานะ Jobs)

สรุป Module 3: Infrastructure & Deployment

ความสำคัญ: Module นี้เป็นรากฐานของระบบทั้งหมด ต้องทำให้ดีและถูกต้องตั้งแต่เริ่มต้น เพราะจะส่งผลต่อความเสถียร ความปลอดภัย และประสิทธิภาพของระบบในระยะยาว ครอบคลุมข้อกำหนดใน TOR 3.1.7, 3.4.5

Timeline Summary:

  • SA: 13 ชั่วโมง
  • UI Design: 0 ชั่วโมง
  • Backend Dev: 56 ชั่วโมง
  • Frontend Dev: 8 ชั่วโมง
  • Testing: 48 ชั่วโมง
  • PM: 10 ชั่วโมง
  • Marketing Officer: 0 ชั่วโมง

การทำงาน:

  • Server Setup: 32h
  • Database Setup: 24h
  • SSL Configuration: 13h
  • Deployment: 37h
  • Scheduler Service: 29h