Sunday, 14 December 2025

OPD Queue Management System

āļŠāļēāļĄāļēāļĢāļ– āđƒāļŠ้ āļัā MINIPC āļ—ุāļāļĢุ่āļ™  Raspberrypi 4 āļ‚ึ้āļ™āđ„āļ›














ðŸĨ āļĒāļāļĢāļ°āļ”ัāļšāļĄāļēāļ•āļĢāļāļēāļ™āļāļēāļĢāđƒāļŦ้āļšāļĢิāļāļēāļĢāļ—āļēāļ‡āļāļēāļĢāđāļžāļ—āļĒ์

āļ”้āļ§āļĒ Web-based Queue System āļ—ี่āđ€āļŠื่āļ­āļĄāļ•่āļ­āđ„āļ”้āļัāļšāļ—ุāļāļĢāļ°āļšāļš HIS

āđƒāļ™āļĒุāļ„āļ—ี่āđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨāđāļĨāļ°āļŠāļ–āļēāļ™āļžāļĒāļēāļšāļēāļĨāļ•้āļ­āļ‡āļĢāļ­āļ‡āļĢัāļšāļœู้āļĢัāļšāļšāļĢิāļāļēāļĢāļˆāļģāļ™āļ§āļ™āļĄāļēāļWeb-based Queue System āļ„ืāļ­āđ‚āļ‹āļĨูāļŠัāļ™āļ—ี่āļŠ่āļ§āļĒāļĨāļ”āļ„āļ§āļēāļĄāđāļ­āļ­ัāļ”āđƒāļ™āļžื้āļ™āļ—ี่āļĢāļ­āļ„āļ­āļĒāđ€āļžิ่āļĄāļ›āļĢāļ°āļŠิāļ—āļ˜ิāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļšุāļ„āļĨāļēāļāļĢāļ—āļēāļ‡āļāļēāļĢāđāļžāļ—āļĒ์āđāļĨāļ°āļĒāļāļĢāļ°āļ”ัāļšāļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“์āļ‚āļ­āļ‡āļœู้āļ›่āļ§āļĒāļ­āļĒ่āļēāļ‡āđ€āļ›็āļ™āļĢูāļ›āļ˜āļĢāļĢāļĄāļĢāļ°āļšāļšāļ–ูāļāļ­āļ­āļāđāļšāļšāļĄāļēāđƒāļŦ้ āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļšāļ—ุāļāļĢāļ°āļšāļš HISāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āļĢ่āļ§āļĄāļัāļšāļ‚้āļ­āļĄูāļĨāļœู้āļ›่āļ§āļĒāļˆāļĢิāļ‡āđāļšāļš Real-timeāđ‚āļ”āļĒāđ„āļĄ่āļāļĢāļ°āļ—āļšāļ•่āļ­āđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡āļĢāļ°āļšāļšāđ€āļ”ิāļĄāļ‚āļ­āļ‡āđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨ

⭐ āļŸัāļ‡āļ์āļŠัāļ™āđ€āļ”่āļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļš

ðŸ”đ Dashboard Control

āđāļœāļ‡āļ„āļ§āļšāļ„ุāļĄāļŠāļģāļŦāļĢัāļšāđ€āļˆ้āļēāļŦāļ™้āļēāļ—ี่ āđāļŠāļ”āļ‡āļĢāļēāļĒāļŠื่āļ­āļœู้āļ›่āļ§āļĒ (PID / Visit No.)āđāļĨāļ°āļŠāļ–āļēāļ™āļ°āļ„ิāļ§āļ—ั้āļ‡āļŦāļĄāļ”āđƒāļ™āļŦāļ™้āļēāđ€āļ”ีāļĒāļ§ āđƒāļŠ้āļ‡āļēāļ™āļ‡่āļēāļĒ āļĨāļ”āļ‚ั้āļ™āļ•āļ­āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™

ðŸ”đ Smart Notification

āđāļŠāļ”āļ‡āļ„ิāļ§āļœ่āļēāļ™āļˆāļ­āļ āļēāļžāļ‚āļ™āļēāļ”āđƒāļŦāļ่ āļžāļĢ้āļ­āļĄāļĢāļ°āļšāļšāđ€āļŠีāļĒāļ‡āđ€āļĢีāļĒāļāļ„ิāļ§āļ­ัāļ•āđ‚āļ™āļĄัāļ•ิāļ”้āļ§āļĒ Text-to-Speech āļ āļēāļĐāļēāđ„āļ—āļĒ āļŠัāļ”āđ€āļˆāļ™ āđ€āļ›็āļ™āļĄāļēāļ•āļĢāļāļēāļ™āļĨāļ”āļāļēāļĢāđ€āļĢีāļĒāļāļ‹้āļģ āđāļĨāļ°āļĨāļ”āļ„āļ§āļēāļĄāļŠัāļšāļŠāļ™āļ‚āļ­āļ‡āļœู้āļ›่āļ§āļĒ


ðŸ”đ User-Friendly Interface

āļ”ีāđ„āļ‹āļ™์āļ—ัāļ™āļŠāļĄัāļĒ āļ•ัāļ§āļ­ัāļāļĐāļĢāļ‚āļ™āļēāļ”āđƒāļŦāļ่ āļ­่āļēāļ™āļ‡่āļēāļĒ āļŠāļšāļēāļĒāļ•āļēāđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢัāļšāļœู้āđƒāļŠ้āļ‡āļēāļ™āļ—ุāļāļŠ่āļ§āļ‡āļ§ัāļĒ āļĢāļ§āļĄāļ–ึāļ‡āļœู้āļŠูāļ‡āļ­āļēāļĒุ


ðŸ”đ Flexible Operation

āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢ Reset āļ„ิāļ§āļĢāļēāļĒāļ§ัāļ™āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ›āļĢāļ°āļ§ัāļ•ิāļāļēāļĢāđ€āļĢีāļĒāļāļ„ิāļ§āļĒ้āļ­āļ™āļŦāļĨัāļ‡

āļŠ่āļ§āļĒāđƒāļ™āļāļēāļĢāļ•ิāļ”āļ•āļēāļĄāđāļĨāļ°āļ§ิāđ€āļ„āļĢāļēāļ°āļŦ์āļ›āļĢāļ°āļŠิāļ—āļ˜ิāļ āļēāļžāļāļēāļĢāđƒāļŦ้āļšāļĢิāļāļēāļĢ

🔗 āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļšāļĢāļ°āļšāļš HIS

  • āđ€āļŠื่āļ­āļĄāļ•่āļ­ HIS āđ„āļ”้āļ—ุāļāļ„่āļēāļĒ (Vendor Independent)
  • āļĢāļ­āļ‡āļĢัāļš API / Database / HL7 / Custom Interface
  • āđƒāļŠ้āļ‚้āļ­āļĄูāļĨāļœู้āļ›่āļ§āļĒāļˆāļĢิāļ‡ āļĨāļ”āļāļēāļĢāļāļĢāļ­āļāļ‚้āļ­āļĄูāļĨāļ‹้āļģāļ‹้āļ­āļ™

ðŸŽŊ āļ›āļĢāļ°āđ‚āļĒāļŠāļ™์āļ—ี่āđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨāđ„āļ”้āļĢัāļš

✅ āļĨāļ”āļ„āļ§āļēāļĄāđāļ­āļ­ัāļ”āđƒāļ™āļžื้āļ™āļ—ี่āļĢāļ­āļ„āļ­āļĒ

✅ āđ€āļžิ่āļĄāļ›āļĢāļ°āļŠิāļ—āļ˜ิāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļˆ้āļēāļŦāļ™้āļēāļ—ี่

✅ āļĨāļ”āļ‚้āļ­āļœิāļ”āļžāļĨāļēāļ”āđƒāļ™āļāļēāļĢāđ€āļĢีāļĒāļāļœู้āļ›่āļ§āļĒ

✅ āļĒāļāļĢāļ°āļ”ัāļšāļ āļēāļžāļĨัāļāļĐāļ“์āļŠู่ Smart Hospital

ðŸŽĨ āļŠāļĄāļāļēāļĢāļŠāļēāļ˜ิāļ•āļĢāļ°āļšāļšāđ€āļ•็āļĄāļĢูāļ›āđāļšāļš

👉 




Tuesday, 9 December 2025

āļ—āļģāđ€āļ„āļĢื่āļ­āļ‡āļ§ัāļ”āļ­ุāļ“āļŦāļ ูāļĄิ IoT āļ”้āļ§āļĒ ESP32 āļŠ่āļ‡āļ„่āļēāđ€āļ‚้āļē Google Sheets (āļĢāļ­āļ‡āļĢัāļš WiFi Manager + āļˆāļ­ OLED)

 āđ€āļāļĢิ่āļ™āļ™āļģ: āļŠāļ§ัāļŠāļ”ีāļ„āļĢัāļš āļ§ัāļ™āļ™ี้āļœāļĄāļˆāļ°āļĄāļēāđāļˆāļāđ‚āļ›āļĢāđ€āļˆāļāļ•์ IoT āđ€āļˆ๋āļ‡āđ† āļ—ี่āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāđ„āļ›āļ›āļĢāļ°āļĒุāļāļ•์āđƒāļŠ้āļ‡āļēāļ™āļˆāļĢิāļ‡āđ„āļ”้ āđ„āļĄ่āļ§่āļēāļˆāļ°āđ€āļ›็āļ™āļāļēāļĢāļ§ัāļ”āļ­ุāļ“āļŦāļ ูāļĄิāļŦ้āļ­āļ‡ server, āđ‚āļĢāļ‡āđ€āļĢืāļ­āļ™āđ€āļžāļēāļ°āļ›āļĨูāļ, āļŦāļĢืāļ­āļ•ู้āļ›āļĨāļē āđ‚āļ”āļĒāļˆุāļ”āđ€āļ”่āļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•์āļ™ี้āļ„ืāļ­ "āđ„āļĄ่āļ•้āļ­āļ‡āđāļ้āđ‚āļ„้āļ”āđ€āļžื่āļ­āđƒāļŠ่āļĢāļŦัāļŠ WiFi" āđ€āļžāļĢāļēāļ°āđ€āļĢāļēāđƒāļŠ่āļĢāļ°āļšāļš WiFi Manager āļĄāļēāđƒāļŦ้ āđāļĨāļ°āļĒัāļ‡āļĄีāļĢāļ°āļšāļšāļัāļ™āđ€āļ„āļĢื่āļ­āļ‡āļ„้āļēāļ‡ (Watchdog) āđ€āļžื่āļ­āļ„āļ§āļēāļĄāđ€āļŠāļ–ีāļĒāļĢāđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāļ°āļĒāļ°āļĒāļēāļ§āļ„āļĢัāļš








































āļ•ัāļ§āļ­āļĒ่āļēāļ‡

https://script.google.com/macros/s/AKfycbw4_XAhbyv51DnEiFIa3rTouKf62fWsAEttOVaS1ETYcTDsx7zfztyGdMuD2-_s8Wk/exec

https://script.google.com/macros/s/AKfycbxVSvRRvMJEgccu1dLFS_8JwSPFz2BKsEvwTVREHk7xg3909Ir3fozzbqJyN02z8F0/exec





🛠️ āļŸีāđ€āļˆāļ­āļĢ์āđ€āļ”่āļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•์āļ™ี้

  1. āđ€āļŠื่āļ­āļĄāļ•่āļ­ Google Sheets: āļšัāļ™āļ—ึāļāļ„่āļēāļ­ุāļ“āļŦāļ ูāļĄิāđāļĨāļ°āļ„āļ§āļēāļĄāļŠื้āļ™āļĨāļ‡āļ•āļēāļĢāļēāļ‡ Excel āļ­āļ­āļ™āđ„āļĨāļ™์āđ„āļ”้āļŸāļĢีāđ†

  2. WiFi Manager: āđ„āļĄ่āļ•้āļ­āļ‡ Hardcode SSID/Password āđƒāļ™āđ‚āļ„้āļ” āđ€āļŠื่āļ­āļĄāļ•่āļ­ WiFi āļŦāļ™้āļēāļ‡āļēāļ™āļœ่āļēāļ™āļĄืāļ­āļ–ืāļ­āđ„āļ”้āđ€āļĨāļĒ

  3. OLED Display: āđāļŠāļ”āļ‡āļ„่āļē Real-time āļœ่āļēāļ™āļˆāļ­ 0.96 āļ™ิ้āļ§

  4. Watchdog & Anti-Brownout: āļĢāļ°āļšāļšāļ›้āļ­āļ‡āļัāļ™āđ„āļŸāļ•āļāđāļĨāļ°āļĢีāđ€āļ‹็āļ•āļ•ัāļ§āđ€āļ­āļ‡āļ­ัāļ•āđ‚āļ™āļĄัāļ•ิāđ€āļĄื่āļ­āđ€āļ„āļĢื่āļ­āļ‡āļ„้āļēāļ‡

  5. Factory Reset: āļĄีāļŸัāļ‡āļ์āļŠัāļ™āļāļ”āļ›ุ่āļĄ BOOT āļ„้āļēāļ‡ 10 āļ§ิāļ™āļēāļ—ี āđ€āļžื่āļ­āļĨ้āļēāļ‡āļ„่āļē WiFi āđ€āļ”ิāļĄ


ðŸ“Ķ āļ­ุāļ›āļāļĢāļ“์āļ—ี่āļ•้āļ­āļ‡āđƒāļŠ้

  1. āļšāļ­āļĢ์āļ” ESP32 (āļĢุ่āļ™āđ„āļŦāļ™āļ็āđ„āļ”้ āđāļ™āļ°āļ™āļģ ESP32 DevKit V1)

  2. āļˆāļ­ OLED āļ‚āļ™āļēāļ” 0.96" (āđāļšāļš I2C)

  3. āđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์ (āđ€āļĨืāļ­āļāļ•āļēāļĄāļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™):

    • āđāļšāļšāļ—ี่ 1: DHT11 (āļ§ัāļ”āļ­ุāļ“āļŦāļ ูāļĄิāļŦ้āļ­āļ‡ + āļ„āļ§āļēāļĄāļŠื้āļ™)

    • āđāļšāļšāļ—ี่ 2: DS18B20 (āļ§ัāļ”āļ­ุāļ“āļŦāļ ูāļĄิāļ‚āļ­āļ‡āđ€āļŦāļĨāļ§/āļัāļ™āļ™้āļģ) + āļ•ัāļ§āļ•้āļēāļ™āļ—āļēāļ™ 4.7kÎĐ

  4. āļŠāļēāļĒ Jumper āđāļĨāļ° Breadboard


🔌 āļ§āļ‡āļˆāļĢāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­ (Wiring Diagram)

āđāļšāļšāļ—ี่ 1: āđƒāļŠ้āđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์ DHT11 (āļ§ัāļ”āļ­āļēāļāļēāļĻāļ—ั่āļ§āđ„āļ›)

  • OLED: SDA -> D21, SCL -> D22

  • DHT11: Data -> D4

(āđƒāļŠ่āļĢูāļ›āļ§āļ‡āļˆāļĢ DHT11 āļ—ี่āļœāļĄāļ—āļģāđƒāļŦ้āļ่āļ­āļ™āļŦāļ™้āļēāļ™ี้āļ•āļĢāļ‡āļ™ี้)

āđāļšāļšāļ—ี่ 2: āđƒāļŠ้āđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์ DS18B20 (āļ§ัāļ”āļ™้āļģ/āļ„āļ§āļēāļĄāđāļĄ่āļ™āļĒāļģāļŠูāļ‡)

  • OLED: SDA -> D21, SCL -> D22

  • DS18B20: Data -> D4 (āļ•้āļ­āļ‡āļ•่āļ­āļ•ัāļ§āļ•้āļēāļ™āļ—āļēāļ™ 4.7kÎĐ āļ„āļĢ่āļ­āļĄāļĢāļ°āļŦāļ§่āļēāļ‡āđ„āļŸāđ€āļĨี้āļĒāļ‡ 3.3V āļัāļšāļ‚āļē Data)

(āđƒāļŠ่āļĢูāļ›āļ§āļ‡āļˆāļĢ DS18B20 āļ—ี่āļœāļĄāļ—āļģāđƒāļŦ้āļ่āļ­āļ™āļŦāļ™้āļēāļ™ี้āļ•āļĢāļ‡āļ™ี้)


ðŸ’ŧ āļŠ่āļ§āļ™āļ—ี่ 1: āļ•ั้āļ‡āļ„่āļē Google Sheets (Server Side)

āļ่āļ­āļ™āļˆāļ°āļ­ัāļ›āđ‚āļŦāļĨāļ”āđ‚āļ„้āļ”āļĨāļ‡āļšāļ­āļĢ์āļ” āđ€āļĢāļēāļ•้āļ­āļ‡āļŠāļĢ้āļēāļ‡āļˆุāļ”āļĢัāļšāļ‚้āļ­āļĄูāļĨāļ่āļ­āļ™āļ„āļĢัāļš

  1. āđ„āļ›āļ—ี่ Google Sheets āļŠāļĢ้āļēāļ‡āđ„āļŸāļĨ์āđƒāļŦāļĄ่

  2. āđ„āļ›āļ—ี่āđ€āļĄāļ™ู Extensions (āļŠ่āļ§āļ™āļ‚āļĒāļēāļĒ) > Apps Script

  3. āļĨāļšāđ‚āļ„้āļ”āđ€āļ่āļēāļ­āļ­āļ āđāļĨ้āļ§āļ§āļēāļ‡āđ‚āļ„้āļ”āļ™ี้āļĨāļ‡āđ„āļ›:

JavaScript
function doGet(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  
  // āļĢัāļšāļ„่āļēāļˆāļēāļ ESP32
  var temp = e.parameter.temp;
  var humid = e.parameter.humid; // āļ–้āļēāđƒāļŠ้ DS18B20 āļ„่āļēāļ™ี้āļˆāļ°āđ€āļ›็āļ™ undefined āļ็āđ„āļĄ่āđ€āļ›็āļ™āđ„āļĢ
  
  var date = new Date();
  
  // āļšัāļ™āļ—ึāļāļĨāļ‡āđāļ–āļ§āđƒāļŦāļĄ่
  if (humid !== undefined) {
    sheet.appendRow([date, temp, humid]); // āļŠāļģāļŦāļĢัāļš DHT11
  } else {
    sheet.appendRow([date, temp]); // āļŠāļģāļŦāļĢัāļš DS18B20
  }
  
  return ContentService.createTextOutput("Success");
}
  1. āļāļ” Deploy (āļāļēāļĢāļ—āļģāđƒāļŦ้āđƒāļŠ้āļ‡āļēāļ™āđ„āļ”้) > New Deployment

  2. āļ•āļĢāļ‡ Who has access (āļœู้āļĄีāļŠิāļ—āļ˜ิ์āđ€āļ‚้āļēāļ–ึāļ‡) āđ€āļĨืāļ­āļāđ€āļ›็āļ™ "Anyone (āļ—ุāļāļ„āļ™)" -> āļŠāļģāļ„ัāļāļĄāļēāļ!

  3. āļāļ” Deploy āđāļĨ้āļ§ Copy URL āđ€āļ็āļšāđ„āļ§้ (āđ€āļĢāļēāļ•้āļ­āļ‡āđ€āļ­āļē URL āļ™ี้āđ„āļ›āđƒāļŠ่āļ•āļ­āļ™āļ•ั้āļ‡āļ„่āļē WiFi)


📝 āļŠ่āļ§āļ™āļ—ี่ 2: āđ‚āļ„้āļ” ESP32 (Arduino Code)

āđ‚āļ›āļĢāđ€āļˆāļāļ•์āļ™ี้āļ•้āļ­āļ‡āļĨāļ‡ Library āļœ่āļēāļ™ Arduino IDE āļ”ัāļ‡āļ™ี้āļ„āļĢัāļš:

  • WiFiManager (by tzapu)

  • Adafruit SSD1306 & Adafruit GFX

  • DHT sensor library (āļŠāļģāļŦāļĢัāļšāđāļšāļšāļ—ี่ 1)

  • DallasTemperature & OneWire (āļŠāļģāļŦāļĢัāļšāđāļšāļšāļ—ี่ 2)

(āļ§āļēāļ‡āđ‚āļ„้āļ” Arduino āļ—ี่āļ„ุāļ“āđ€āļĨืāļ­āļāđƒāļŠ้āļĨāļ‡āļ•āļĢāļ‡āļ™ี้)


⚙️ āļ§ิāļ˜ีāļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™āļ„āļĢั้āļ‡āđāļĢāļ

  1. āļ•่āļ­āļ§āļ‡āļˆāļĢāđāļĨāļ°āļ­ัāļ›āđ‚āļŦāļĨāļ”āđ‚āļ„้āļ”āļĨāļ‡āļšāļ­āļĢ์āļ” ESP32

  2. āđ€āļĄื่āļ­āđ€āļ›ิāļ”āđ€āļ„āļĢื่āļ­āļ‡ āļŦāļ™้āļēāļˆāļ­ OLED āļˆāļ°āļ‚ึ้āļ™āļ§่āļē "Setup Mode"

  3. āđƒāļŠ้āļĄืāļ­āļ–ืāļ­āļ„้āļ™āļŦāļē WiFi āļŠื่āļ­ "ESP32_Temp_Setup"

  4. āļāļ”āđ€āļŠื่āļ­āļĄāļ•่āļ­ āļˆāļ°āđ€āļ”้āļ‡āļŦāļ™้āļēāļ•่āļēāļ‡āļ•ั้āļ‡āļ„่āļēāļ‚ึ้āļ™āļĄāļē (āļ–้āļēāđ„āļĄ่āđ€āļ”้āļ‡āđƒāļŦ้āđ€āļ‚้āļē 192.168.4.1)

  5. āļāļ” Configure WiFi

    • āđ€āļĨืāļ­āļ WiFi āļš้āļēāļ™āļ‚āļ­āļ‡āļ„ุāļ“

    • āđƒāļŠ่āļĢāļŦัāļŠāļœ่āļēāļ™

    • āļŠ่āļ­āļ‡ gas_url: āđƒāļŦ้āļ§āļēāļ‡ URL āļ‚āļ­āļ‡ Google Apps Script āļ—ี่āļ—āļģāđ„āļ§้āđƒāļ™āļŠ่āļ§āļ™āļ—ี่ 1

  6. āļāļ” Save āļšāļ­āļĢ์āļ”āļˆāļ°āļĢีāļŠāļ•āļēāļĢ์āļ—āđāļĨāļ°āđ€āļĢิ่āļĄāļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāđ€āļ‚้āļē Google Sheets āļ—ัāļ™āļ—ี!


ðŸ’Ą āļ—āļĢิāļ„āđ€āļžิ่āļĄāđ€āļ•ิāļĄ

  • āļāļēāļĢāļĢีāđ€āļ‹็āļ•āļ„่āļē: āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāļĒ้āļēāļĒāļŠāļ–āļēāļ™āļ—ี่āļŦāļĢืāļ­āđ€āļ›āļĨี่āļĒāļ™ WiFi āđƒāļŦ้āļāļ”āļ›ุ่āļĄ BOOT āļšāļ™āļšāļ­āļĢ์āļ” ESP32 āļ„้āļēāļ‡āđ„āļ§้ 10 āļ§ิāļ™āļēāļ—ี āļˆāļ™āļŦāļ™้āļēāļˆāļ­āļ‚ึ้āļ™āļ™ัāļšāļ–āļ­āļĒāļŦāļĨัāļ‡āđ€āļžื่āļ­āļĨ้āļēāļ‡āļ„่āļēāđ‚āļĢāļ‡āļ‡āļēāļ™


Sunday, 28 September 2025

MINI KIOS AUTHEN CODE nhso endpoint

ðŸĨ MINI KIOS AUTHEN & āļ›ิāļ”āļŠิāļ—āļ˜ิ āļŠāļģāļŦāļĢัāļš āļĢāļž.āļŠāļ•.





MINI KIOS AUTHEN & āļ›ิāļ”āļŠิāļ—āļ˜ิ āļ„ืāļ­āļĢāļ°āļšāļšāļ­ัāļˆāļ‰āļĢิāļĒāļ°āļ—ี่āļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžื่āļ­āļŠ่āļ§āļĒāļ‡āļēāļ™ āļĢāļž.āļŠāļ•. (āđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨāļŠ่āļ‡āđ€āļŠāļĢิāļĄāļŠุāļ‚āļ āļēāļžāļ•āļģāļšāļĨ) āđƒāļŦ้āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›ิāļ” VISIT, āļ—āļģ Authen Code āđāļĨāļ°āļ›ิāļ”āļŠิāļ—āļ˜ิāļāļēāļĢāļĢัāļāļĐāļēāđ„āļ”้āļ­āļĒ่āļēāļ‡āļŠāļ°āļ”āļ§āļ āļĢāļ§āļ”āđ€āļĢ็āļ§ āđāļĨāļ°āļ›āļĨāļ­āļ”āļ ัāļĒ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđƒāļ™āļ‡āļēāļ™āļ­āļ­āļāļŦāļ™่āļ§āļĒāļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่


🔑 āļŦāļĨัāļāļāļēāļĢāļ—āļģāļ‡āļēāļ™

  • āļĢāļ°āļšāļšāļˆāļ°āļ­้āļēāļ‡āļ­ิāļ‡āļŠิāļ—āļ˜ิāļāļēāļĢāļĢัāļāļĐāļēāļˆāļēāļ āļ•āļēāļĢāļēāļ‡ HIS āļ—ี่āļšัāļ™āļ—ึāļāđ„āļ§้āđ€āļ—่āļēāļ™ั้āļ™

  • āļŦāļēāļāļŠิāļ—āļ˜ิāđ„āļĄ่āļ•āļĢāļ‡ āļ•้āļ­āļ‡āļ—āļģāļāļēāļĢ āļ­ัāļ›āđ€āļ”āļ•āļŠิāļ—āļ˜ิāļˆāļēāļ HIS āļ่āļ­āļ™āļ„āļĢั้āļ‡āļ–ัāļ”āđ„āļ› āđ€āļ™ื่āļ­āļ‡āļˆāļēāļ āđ„āļĄ่āđ€āļŠื่āļ­āļĄāļŠิāļ—āļ˜ิāļˆāļēāļ āļŠāļ›āļŠāļŠ āđ‚āļ”āļĒāļ•āļĢāļ‡ (āđ€āļĨāļ‚āļŠิāļ—āļ˜ิāđƒāļ™āđāļ•่āļĨāļ°āļžื้āļ™āļ—ี่āļ­āļēāļˆāđ„āļĄ่āđ€āļŦāļĄืāļ­āļ™āļัāļ™)

  • āđ€āļžิ่āļĄāļĢāļ°āļšāļš API āļ›ิāļ”āļŠิāļ—āļ˜ิ āļĢāļ­āļ‡āļĢัāļš HIS āļ—ุāļāļ•ัāļ§āļ—ี่āđƒāļŠ้āļāļēāļ™āļ‚้āļ­āļĄูāļĨ MySQL

  • āļĢāļ­āļ‡āļĢัāļš API āļ›ิāļ”āļŠิāļ—āļ˜ิ āļŠāļ›āļŠāļŠ āļ­ัāļ•āđ‚āļ™āļĄัāļ•ิ āđ€āļžีāļĒāļ‡ āđ€āļŠีāļĒāļšāļšัāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™ āļŦāļĨัāļ‡āļĢัāļšāļšāļĢิāļāļēāļĢ


⚙️ āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļŦāļĨัāļ

  1. āđ€āļ›ิāļ” VISIT HIS āđāļĨāļ° Authen Code āļŠāļ›āļŠāļŠ āđ„āļ”้āļ—ัāļ™āļ—ี

  2. FIX āļŠิāļ—āļ˜ิāļāļēāļĢāļĢัāļāļĐāļēāđ„āļ”้āđ‚āļ”āļĒāļ•āļĢāļ‡

  3. FIX āļāļēāļĢāļŠ่āļ‡āļ•่āļ­āđ„āļ›āļĒัāļ‡āļŦ้āļ­āļ‡/āđāļœāļ™āļ āđ„āļ”้

  4. āļ›āļĢิ้āļ™āđƒāļšāļ™āļģāļ—āļēāļ‡ āļ‚āļ™āļēāļ” 58 āļĄāļĄ. āđ„āļ”้

  5. āđƒāļŠ้āļ‡āļēāļ™āļĢ่āļ§āļĄāļัāļšāļĢāļ°āļšāļš Smart OPD Auto āđ„āļ”้

  6. āļĢัāļš-āļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāļœ่āļēāļ™āļĄāļēāļ•āļĢāļāļēāļ™ HL7 (Health Level 7)

  7. āļĄีāđ€āļ„āļĢื่āļ­āļ‡āļ­่āļēāļ™āļšัāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļžāļĢ้āļ­āļĄāđƒāļŠ้āļ‡āļēāļ™

  8. āļ›ิāļ”āļŠิāļ—āļ˜ิāļ­ัāļ•āđ‚āļ™āļĄัāļ•ิāļ—ัāļ™āļ—ีāļŦāļĨัāļ‡āļĢัāļšāļšāļĢิāļāļēāļĢ (āđ€āļžีāļĒāļ‡āđ€āļŠีāļĒāļšāļšัāļ•āļĢ)


🌍 āļĢāļ­āļ‡āļĢัāļšāļ‡āļēāļ™āļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่

  • āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ้āļ‡āļēāļ™ āđ„āļ”้āļˆāļēāļāļ—ุāļāļ—ี่āļ—ี่āļĄีāļ­ิāļ™āđ€āļ—āļ­āļĢ์āđ€āļ™็āļ• āđ„āļĄ่āļˆāļģāđ€āļ›็āļ™āļ•้āļ­āļ‡āđƒāļŠ้ IP āļˆāļĢิāļ‡

  • āļ•้āļ­āļ‡āļ•ิāļ”āļ•ั้āļ‡ Gateway Server āđ„āļ§้āļ—ี่āđ€āļ„āļĢื่āļ­āļ‡āđƒāļ™āļ§āļ‡āđāļĨāļ™āđ€āļ”ีāļĒāļ§āļัāļš Server āļĢāļž.āļŠāļ•.

  • āļ„āļ§āļēāļĄāđ€āļĢ็āļ§āļ‚ึ้āļ™āļ­āļĒู่āļัāļšāļ­ิāļ™āđ€āļ—āļ­āļĢ์āđ€āļ™็āļ•āļ—ั้āļ‡āļั่āļ‡ āļĢāļž.āļŠāļ•. āđāļĨāļ° KIOS SMASTBP

  • āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļš āļĢāļ°āļšāļšāļŠāļ›āļŠāļŠ āđāļĨāļ° HIS āļ—ุāļāļĒี่āļŦ้āļ­


ðŸ–Ĩ️ āļ­ุāļ›āļāļĢāļ“์āļ—ี่āļĢāļ­āļ‡āļĢัāļš

  • āđƒāļŠ้āļ‡āļēāļ™āđ„āļ”้āļัāļš āđāļ—็āļšāđ€āļĨ็āļ• Windows āļ—ุāļāļĒี่āļŦ้āļ­

  • āļĢāļ­āļ‡āļĢัāļš āđ‚āļ™้āļ•āļšุ๊āļ āļŠāļģāļŦāļĢัāļšāđƒāļŠ้āļ‡āļēāļ™āļ­āļ­āļāļŦāļ™่āļ§āļĒāļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่ āļŦāļĢืāļ­āđ€āļĒี่āļĒāļĄāļš้āļēāļ™

  • āđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļšāļĢāļ°āļšāļš Telemedicine (āļāļēāļĢāđāļžāļ—āļĒ์āļ—āļēāļ‡āđ„āļāļĨ) āđ„āļ”้

  • āļĨāļ”āļāļēāļĢāļšัāļ™āļ—ึāļāļ‚้āļ­āļĄูāļĨāļ‹้āļģāļ‹้āļ­āļ™ āđ€āļžิ่āļĄāļ„āļ§āļēāļĄāļĢāļ§āļ”āđ€āļĢ็āļ§āđƒāļ™āļāļēāļĢāđƒāļŦ้āļšāļĢิāļāļēāļĢ


✅ āļŠāļĢุāļ›

MINI KIOS AUTHEN & āļ›ิāļ”āļŠิāļ—āļ˜ิ āļ„ืāļ­āđ‚āļ‹āļĨูāļŠัāļ™āļ—ี่āļŠ่āļ§āļĒāđƒāļŦ้ āļĢāļž.āļŠāļ•. āļ—āļģāļ‡āļēāļ™āđ„āļ”้āļ­āļĒ่āļēāļ‡āļ„āļĢāļšāļ§āļ‡āļˆāļĢ āļ•ั้āļ‡āđāļ•่āļāļēāļĢāđ€āļ›ิāļ” VISIT, āļ—āļģ Authen Code, FIX āļŠิāļ—āļ˜ิ, āļŠ่āļ‡āļ•่āļ­ āđāļĨāļ°āļ›ิāļ”āļŠิāļ—āļ˜ิāļ­ัāļ•āđ‚āļ™āļĄัāļ•ิ āđ‚āļ”āļĒāļĄีāļ—ั้āļ‡āļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļš HIS, āļŠāļ›āļŠāļŠ āđāļĨāļ°āļĢāļ°āļšāļš Telemedicine āļ•āļ­āļšāđ‚āļˆāļ—āļĒ์āļ‡āļēāļ™āļšāļĢิāļāļēāļĢāļŠุāļ‚āļ āļēāļžāļ—ั้āļ‡āđƒāļ™āđāļĨāļ°āļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่


āļ•ัāļ§āđ‚āļ›āļĢāđāļāļĢāļĄ MINI KIOS AUTHEN & āļ›ิāļ”āļŠิāļ—āļ˜ิ  āļŠāļēāļĄāļēāļĢāļ–āļĨāļ‡āļัāāđ‚āļ™๊āļ•āļšุ๊āļ„ āđ€āļžื่āļ­āđ€āļ­āļēāđ„āļ§้āļ­āļ­āļāļ™āļ­āļ āļŠāļ–āļēāļ™āļ—ี่āđƒāļ”้ āđ€āļĨāļĒ  āđ€āļžีāļĒāļ‡ āđ€āļ­āļē āļ•ัāļ§ MINIPC āļ™ี้ āđ€āļŠื่āļ­āļĄ āļĢāļ°āļšāļš āļ—้่āļ‡āđ„āļ§้āļ—ี่ āļĢāļžāļŠāļ•.


āļĢāļ°āļšāGateway Server āļŠāļģāļŦāļĢัāļš āđ€āļŠื่āļ­āļĄāļĢāļ°āļšāāļ‡āļēāļ™āļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่ิ āđƒāļŠ้  MINIPC āļĢุ่āļ™āđƒāļŦāļ™āļ็āđ„āļ”้

 

 








                            āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ้āđ„āļ”้āļัāļšāļ—ุāļāļ•ู้ KIOS 






        āļ•ัāļ§ āļ­āļĒ่āļēāļ‡ āđƒāļŠ้āđƒāļ™āļˆāļ­āđāļ—็āļšāđ€āļĨ็āļ•






































āļŠāļēāļĄāļēāļĢāļ– āđƒāļŠ้āļĢ่āļ§āļĄ āļัāļšāļĢāļ°āļšā āļŠุāļ”  SMAS OPD āđƒāļ”้






















































āļĢāļ°āļšāļš API VISIT HIS & SMAST OPD & āļ›ิāļ”āļŠิāļ—āļ˜ิ





🚀 āļĢāļ°āļšāļš API VISIT HIS & SMAST OPD & āļ›ิāļ”āļŠิāļ—āļ˜ิ āđ€āļŠื่āļ­āļĄāļ•่āļ­āļ—ุāļāļĢāļ°āļšāļšāļāļēāļĢāđāļžāļ—āļĒ์āļ­āļĒ่āļēāļ‡āđ„āļĢ้āļĢāļ­āļĒāļ•่āļ­

VISIT API Python - Complete System

Version: 1.0.0
Author: Development Team
Description: āļĢāļ°āļšāļšāļˆัāļ”āļāļēāļĢāļāļēāļĢāļĢัāļšāļšāļĢิāļāļēāļĢāļ‚āļ­āļ‡āļœู้āļ›่āļ§āļĒ (Hospital Visit Management System) āđāļšāļšāļ„āļĢāļšāļ§āļ‡āļˆāļĢ āļžāļĢ้āļ­āļĄ GUI āđāļĨāļ° Web API


🔎 āļ āļēāļžāļĢāļ§āļĄāļĢāļ°āļšāļš

VISIT API  Complete System āļ–ูāļāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžื่āļ­āļ­āļģāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļŦ้āļัāļšāļŦāļ™่āļ§āļĒāļšāļĢิāļāļēāļĢāļŠāļēāļ˜āļēāļĢāļ“āļŠุāļ‚āđāļĨāļ°āđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨ āđ‚āļ”āļĒāļĄีāļ—ั้āļ‡ GUI Interface āļŠāļģāļŦāļĢัāļšāđ€āļˆ้āļēāļŦāļ™้āļēāļ—ี่ āđāļĨāļ° Web API āļŠāļģāļŦāļĢัāļšāđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļšāļĢāļ°āļšāļš HIS  āļĢāļ§āļĄāļ–ึāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢ่āļ§āļĄāļัāļš NHSO API āļ­āļĒ่āļēāļ‡āļ„āļĢāļšāļ–้āļ§āļ™

āļĢāļ°āļšāļšāļ™ี้āđ€āļ™้āļ™āļ„āļ§āļēāļĄāļ‡่āļēāļĒāđƒāļ™āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™ āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ ัāļĒ āđāļĨāļ°āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļŦāļĨāļēāļĒāļĢูāļ›āđāļšāļš āļ—ั้āļ‡āđƒāļ™āļŠāļ–āļēāļ™āļ—ี่āđāļĨāļ°āļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่


✨ āļ„ุāļ“āļŠāļĄāļšัāļ•ิāđ€āļ”่āļ™ (Features)

  • GUI Interface āđƒāļŠ้āļ‡āļēāļ™āļ‡่āļēāļĒāļ”้āļ§āļĒ Tkinter

  • Web API āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāđ€āļĢีāļĒāļāđƒāļŠ้āļ‡āļēāļ™āļœ่āļēāļ™ HTTP

  • Database Support āļĢāļ­āļ‡āļĢัāļš MySQL, MariaDB āđāļĨāļ° PostgreSQL

  • License System āļĢāļ°āļšāļšāļˆัāļ”āļāļēāļĢāļŠิāļ—āļ˜ิ์āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™

  • Key Generator āļŠāļģāļŦāļĢัāļšāļŠāļĢ้āļēāļ‡ License Key

  • Multi-threading āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļžāļĢ้āļ­āļĄāļัāļ™āļŦāļĨāļēāļĒāļ„āļģāļŠั่āļ‡

  • Settings Management āļšัāļ™āļ—ึāļāļāļēāļĢāļ•ั้āļ‡āļ„่āļēāļ­ัāļ•āđ‚āļ™āļĄัāļ•ิ


🌐 API Endpoints

1. āđ€āļ›ิāļ” Visit

GET /visit.php
Parameters:

  • cid (required) – āđ€āļĨāļ‚āļšัāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™

  • staff – āļĢāļŦัāļŠāđ€āļˆ้āļēāļŦāļ™้āļēāļ—ี่

  • department – āđāļœāļ™āļ

  • vital signs – rr, pulse, bw, height, temperature, bps, bpd, bmi, waist

  • āļ­ื่āļ™ āđ† āđ€āļŠ่āļ™ hcode, hospmain, hospsub, icode āļŊāļĨāļŊ

Example:

GET /visit.php?cid=1234567890123&staff=001&department=01

2. āļ›ิāļ”āļŠิāļ—āļ˜ิāļāļēāļĢāļĢัāļāļĐāļēāļัāļš āļŠāļ›āļŠāļŠ

GET /endvisitAPI.php
Parameters:

  • vn (required) – āļŦāļĄāļēāļĒāđ€āļĨāļ‚ Visit

  • cid (required) – āđ€āļĨāļ‚āļšัāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™

Example:

GET /endvisitAPI.php?vn=1234567890&cid=1234567890123

3. āļ„้āļ™āļŦāļēāļ‚้āļ­āļĄูāļĨāļœู้āļ›่āļ§āļĒ

GET /patient
Parameters: hn āļŦāļĢืāļ­ cid

Example:

GET /patient?hn=0018413 GET /patient?cid=1234567890123

4. āļ„้āļ™āļŦāļēāļŠิāļ—āļ˜ิāļ•ิāļ”āļ•ัāļ§āļœู้āļ›่āļ§āļĒ

GET /pttype


5. āļšัāļ™āļ—ึāļ/āļ­ัāļžāđ€āļ”āļ— Vital Signs

GET /bp?vn=vn&pulse=pulse&bpd=bpd&=bps&bw=bw&temperature=temperature&height=height&cc=cc
āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāļšัāļ™āļ—ึāļāļ„่āļēāļ„āļ§āļēāļĄāļ”ัāļ™āđ‚āļĨāļŦิāļ• āļŠีāļžāļˆāļĢ āļ™้āļģāļŦāļ™ัāļ āļŠ่āļ§āļ™āļŠูāļ‡ āļ­ุāļ“āļŦāļ ูāļĄิ āđāļĨāļ°āļ‚้āļ­āļĢ้āļ­āļ‡āđ€āļĢีāļĒāļ™ (cc)


6. Health Check

GET /health
āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ–āļēāļ™āļ°āļĢāļ°āļšāļšāđāļĨāļ°āļāļēāļ™āļ‚้āļ­āļĄูāļĨ


ðŸ“Ķ Response Format

Success Response:

{ "success": true, "message": "āļšัāļ™āļ—ึāļāļŠāļģāđ€āļĢ็āļˆ", "data": { ... } }

Error Response:

{ "error": "Invalid CID" }

🗄️ Database Configuration

  • Host: 127.0.0.1

  • Database: hosxp

  • User: admin

  • Password: ******

  • Charset: utf8mb4


⚙️ API Configuration

NHSO API

  • Hospital Code: 00000

  • Token: xxx50a12-xxx9d-xxx38-8xx46-48xxxbc79ae4

  • Endpoint: https://nhsoapi.nhso.go.th/nhsoendpoint/api/

FDH API

  • Endpoint: https://fdh.moph.go.th/


🕒 Working Hours

  • āđ€āļ§āļĨāļēāļ—āļģāļāļēāļĢ: 08:00–16:30

  • āļ§ัāļ™āļ—āļģāļ‡āļēāļ™: āļˆัāļ™āļ—āļĢ์–āļĻุāļāļĢ์

  • āļ§ัāļ™āļŦāļĒุāļ”āļ™ัāļāļ‚ัāļ•āļĪāļāļĐ์: āļ•ั้āļ‡āļ„่āļēāđ„āļ”้āđƒāļ™ APIConfig.PUBLIC_HOLIDAYS


💰 ICode Configuration

  • Normal ICode: āđ€āļ§āļĨāļēāļĢāļēāļŠāļāļēāļĢ

  • Overtime ICode: 3000977

  • Unit Price: 50 āļšāļēāļ—

  • Income Types: I (Normal), O (Overtime)


🛠️ āļ‚ั้āļ™āļ•āļ­āļ™āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™ (Usage Instructions)

  1. āļ•ั้āļ‡āļ„่āļēāļāļēāļ™āļ‚้āļ­āļĄูāļĨ

  2. āļāļģāļŦāļ™āļ” API NHSO

  3. āļ›āļĢัāļšāļ„่āļēāļĢāļ°āļšāļš (Working hours, ICode)

  4. āļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļ—ั้āļ‡āļŦāļĄāļ”

  5. āļāļ” Start Server (port 5000)

  6. āļˆัāļ”āļāļēāļĢ License Key


🌍 Remote Access (āļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļˆāļēāļāļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่)

āļĢāļ°āļšāļš VISIT API Complete System āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่ āđ€āļŠ่āļ™ āļāļēāļĢāđ€āļ›ิāļ” Visit āļœ่āļēāļ™ Mobile, Tablet āļŦāļĢืāļ­ Laptop āļ‚āļ­āļ‡āđ€āļˆ้āļēāļŦāļ™้āļēāļ—ี่āđƒāļ™ āļŦāļ™่āļ§āļĒāļšāļĢิāļāļēāļĢāļ›āļāļĄāļ ูāļĄิ, āļĢāļž.āļŠāļ•., āļˆุāļ”āļšāļĢิāļāļēāļĢāļ™āļ­āļāđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨ āđ‚āļ”āļĒāļĒัāļ‡āļ„āļ‡āļĢัāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ ัāļĒāļŠูāļ‡āļŠุāļ”

āļ§ิāļ˜ีāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļˆāļēāļāļ āļēāļĒāļ™āļ­āļ

  1. VPN (Virtual Private Network)

    • āđ€āļŠื่āļ­āļĄāļ•่āļ­āđ€āļ‚้āļēāļĢāļ°āļšāļšāđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨāļœ่āļēāļ™ SSL VPN / IPSec VPN

    • āđ€āļ‚้āļēāļĢāļŦัāļŠāļ‚้āļ­āļĄูāļĨāļ—ั้āļ‡āļŦāļĄāļ”āļĢāļ°āļŦāļ§่āļēāļ‡āļ­ุāļ›āļāļĢāļ“์āļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่āđāļĨāļ°āđ€āļ‹ิāļĢ์āļŸāđ€āļ§āļ­āļĢ์

    • āļĢāļ­āļ‡āļĢัāļšāļ—ั้āļ‡ Mobile VPN Client āđāļĨāļ° Desktop VPN Client

  2. Reverse Proxy / API Gateway

    • āđƒāļŠ้ Nginx / HAProxy / Kong āļ—āļģāļŦāļ™้āļēāļ—ี่āđ€āļ›็āļ™āđ€āļāļĢāļēāļ°āļāļĨāļēāļ‡āļ่āļ­āļ™āđ€āļ‚้āļēāļ–ึāļ‡ API

    • āđ€āļžิ่āļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠิāļ—āļ˜ิ์ (Authentication) āđāļĨāļ°āļāļēāļĢāđ€āļ‚้āļēāļĢāļŦัāļŠ (TLS Offloading)

    • āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ้ Rate Limit + Firewall Rules āļ›้āļ­āļ‡āļัāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•ี

  3. Secure HTTPS with Mutual TLS

    • āđƒāļŠ้ SSL Certificates āļ—ี่āļ­āļ­āļāđ‚āļ”āļĒ CA

    • āđ€āļ›ิāļ”āđƒāļŠ้āļ‡āļēāļ™ Client Certificate Authentication āđ€āļžื่āļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ•ัāļ§āļ•āļ™āļ‚āļ­āļ‡āđ€āļ„āļĢื่āļ­āļ‡āļ—ี่āđ€āļŠื่āļ­āļĄāļ•่āļ­


āļ•ัāļ§āļ­āļĒ่āļēāļ‡āđ‚āļŸāļĨāļ§์āļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļˆāļēāļāļ™āļ­āļāļŠāļ–āļēāļ™āļ—ี่

  1. āđ€āļˆ้āļēāļŦāļ™้āļēāļ—ี่āđ€āļ›ิāļ” VPN Client → āđ€āļŠื่āļ­āļĄāđ€āļ‚้āļēāļĢāļ°āļšāļšāđ€āļ„āļĢืāļ­āļ‚่āļēāļĒāļ‚āļ­āļ‡āđ‚āļĢāļ‡āļžāļĒāļēāļšāļēāļĨ

  2. āđ€āļĄื่āļ­ VPN āđ€āļŠื่āļ­āļĄāļŠāļģāđ€āļĢ็āļˆ → āđ€āļĢีāļĒāļāđƒāļŠ้ API āļœ่āļēāļ™ HTTPS (TLS 1.2+)

  3. āļĢāļ°āļšāļš āļ•āļĢāļ§āļˆāļŠāļ­āļš API License Key

  4. āļŦāļēāļāļœ่āļēāļ™ → āļ­āļ™ุāļāļēāļ•āđƒāļŦ้āđ€āļ›ิāļ” Visit, āļ›ิāļ”āļŠิāļ—āļ˜ิ, āļŦāļĢืāļ­āļšัāļ™āļ—ึāļ Vital Signs āđ„āļ”้āļ•āļēāļĄāļŠิāļ—āļ˜ิ์


  • ðŸ›Ą️ āļāļēāļĢāļ›้āļ­āļ‡āļัāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•ี API (API Security)

    • Rate Limiting: āļˆāļģāļัāļ”āļˆāļģāļ™āļ§āļ™āļāļēāļĢāđ€āļĢีāļĒāļ API āļ•่āļ­āļ§ิāļ™āļēāļ—ี/āļ™āļēāļ—ี āđ€āļžื่āļ­āļ›้āļ­āļ‡āļัāļ™ Brute-force

    • IP Whitelisting/Blacklisting: āļˆāļģāļัāļ”āļāļēāļĢāđ€āļ‚้āļēāļ–ึāļ‡āđ€āļ‰āļžāļēāļ° IP āļ—ี่āļ­āļ™ุāļāļēāļ•

    • Input Validation: āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ° sanitize parameters āđ€āļžื่āļ­āļ›้āļ­āļ‡āļัāļ™ SQL Injection / XSS

    • CSRF Protection: āđ€āļžิ่āļĄ CSRF Token āļŠāļģāļŦāļĢัāļš API āļ—ี่āļĄีāļāļēāļĢāđ€āļ‚ีāļĒāļ™āļ‚้āļ­āļĄูāļĨ


👉 āļĢāļ°āļšāļš API VISIT HIS & SMAST OPD āļ„ืāļ­āļุāļāđāļˆāļŠāļģāļ„ัāļāđƒāļ™āļāļēāļĢ āļĒāļāļĢāļ°āļ”ัāļšāļšāļĢิāļāļēāļĢāļŠāļēāļ˜āļēāļĢāļ“āļŠุāļ‚ āđƒāļŦ้āļ—ัāļ™āļŠāļĄัāļĒ āļĢāļ§āļ”āđ€āļĢ็āļ§ āđāļĨāļ°āļžāļĢ้āļ­āļĄāđ€āļŠื่āļ­āļĄāļ•่āļ­āļัāļšāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒีāļ—ุāļāđāļžāļĨāļ•āļŸāļ­āļĢ์āļĄāđƒāļ™āļ­āļ™āļēāļ„āļ•

// āļ•ัāļ§āļ­āļĒ่āļēāļ‡ HL7 Message āļŠāļģāļŦāļĢัāļšāļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāļœู้āļ›่āļ§āļĒ

MSH|^~\&|BPM01|SCK MED PLUS|HIS|SCK-HOSCS|20230922142041||ORU^R01|2701|P|2.4

PID|1|||1111111111119

PV1||O|||||||||||||||||

OBR|1|||||20230220093044||||||||20230220093044

// āļ•ัāļ§āļ­āļĒ่āļēāļ‡ HL7 Message āļŠāļģāļŦāļĢัāļšāļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāļāļēāļĢāļ§ัāļ” Vital Signs āđāļĨāļ°āļ­ื่āļ™āđ†

OBX|1|ST|WEIGHT||45.5|KG.|||||F|||20230220093044

OBX|2|ST|HEIGHT||155.0|CM.|||||F|||20230220093044

OBX|3|ST|BMI||24.1|Kg/m2|||||F|||20230220093044

OBX|4|ST|WAIST||90.0|CM.|||||F|||20230220093044

OBX|5|ST|TEMP||36.6|C|||||F|||20230220093044

OBX|6|ST|SYSTOLIC||123.0|mmHg|||||F|||20230220093044

OBX|7|ST|DIASTOLIC||85.0|mmHg|||||F|||20230220093044

OBX|8|ST|PULSE||76.0|bpm|||||F|||20230220093044

OBX|9|ST|O2SAT||111.0|%Spo2|||||F|||20230220093044

OBX|10|ST|RR||20.0|RM|||||F|||20230220093044



Saturday, 1 February 2025

ESP32 āđ€āļ็āļš āļ‚้āļ­āļĄูāļĨ āļāļēāļĢāđ€āļ›ิāļ”āļ›ิāļ”āļ›āļĢāļ°āļ•ู āđ€āļ‚้āļē google sheet āļ‡āļšāđ„āļĄ่āđ€āļิāļ™ 100 āļšāļēāļ—

 


āļ§ิāļ˜ีāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ‚āļ”āļĒāļĢāļ§āļĄ

  1. ESP32 āļ•āļĢāļ§āļˆāļˆัāļšāļŠāļ–āļēāļ™āļ°āļ›āļĢāļ°āļ•ู

    • āđƒāļŠ้āđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์āđāļĄ่āđ€āļŦāļĨ็āļ (Reed Switch) āļŦāļĢืāļ­āđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์ Hall Effect āđ€āļžื่āļ­āļ•āļĢāļ§āļˆāļˆัāļšāļ§่āļēāđ€āļ›ิāļ”āļŦāļĢืāļ­āļ›ิāļ”
    • āđƒāļŠ้ ESP32 āļ­่āļēāļ™āļ„่āļēāļŠāļ–āļēāļ™āļ°āļˆāļēāļ GPIO
  2. ESP32 āļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāđ„āļ›āļĒัāļ‡ Google Sheets

    • ESP32 āđƒāļŠ้ HTTP POST/GET āđ€āļžื่āļ­āļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāđ„āļ›āļĒัāļ‡ Google Apps Script
    • Google Apps Script āļˆāļ°āļˆัāļ”āļāļēāļĢāļšัāļ™āļ—ึāļāļ‚้āļ­āļĄูāļĨāļĨāļ‡ Google Sheets

āļ‚ั้āļ™āļ•āļ­āļ™āļāļēāļĢāļ•ั้āļ‡āļ„่āļē Google Sheets āđāļĨāļ° Apps Script

  1. āļŠāļĢ้āļēāļ‡ Google Sheets

    • āļŠāļĢ้āļēāļ‡āđ„āļŸāļĨ์āđƒāļŦāļĄ่ āļ•ั้āļ‡āļŠื่āļ­ āđ€āļŠ่āļ™ DoorLog
    • āļ•ั้āļ‡āļŠื่āļ­āļ„āļ­āļĨัāļĄāļ™์ āđ€āļŠ่āļ™ Timestamp, Status
  2. āļŠāļĢ้āļēāļ‡ Google Apps Script

    • āđ€āļ›ิāļ” Extensions > Apps Script
    • āļ§āļēāļ‡āđ‚āļ„้āļ”āļ™ี้āļĨāļ‡āđ„āļ›

function doGet(e) {
    return doPost(e);
}

function doPost(e) {
    var sheet = SpreadsheetApp.openById("YOUR_SHEET_ID").getActiveSheet();
    var status = e.parameter.status;
    var timestamp = new Date();

    sheet.appendRow([timestamp, status]);

    return ContentService.createTextOutput("Success");
}


    • āđ€āļ›āļĨี่āļĒāļ™ "YOUR_SHEET_ID" āđ€āļ›็āļ™ ID āļ‚āļ­āļ‡ Google Sheets
    • āļāļ” Deploy > New Deployment > Web app
    • āļāļģāļŦāļ™āļ”āđƒāļŦ้ Anyone āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚้āļēāļ–ึāļ‡āđ„āļ”้
    • āļ„ัāļ”āļĨāļ­āļ URL āļ—ี่āđ„āļ”้āļĄāļē
āđ‚āļ„้āļ” ESP32 (Arduino)

#include <WiFi.h>
#include <HTTPClient.h>

const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
const char* scriptURL = "YOUR_SCRIPT_URL"; 

const int doorSensor = 4; // āļ‚āļē GPIO āļ—ี่āđ€āļŠื่āļ­āļĄāļัāļšāđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์
int lastState = HIGH;

void setup() {
    Serial.begin(115200);
    pinMode(doorSensor, INPUT_PULLUP);
    WiFi.begin(ssid, password);
    
    while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.println("Connecting to WiFi...");
    }
    Serial.println("Connected to WiFi!");
}

void loop() {
    int currentState = digitalRead(doorSensor);

    if (currentState != lastState) {
        lastState = currentState;
        String status = (currentState == HIGH) ? "Closed" : "Opened";
        
        HTTPClient http;
        http.begin(scriptURL + "?status=" + status);
        int httpResponseCode = http.GET();
        http.end();

        Serial.println("Door Status: " + status);
    }

    delay(1000);
}



  • ESP32 āļ•āļĢāļ§āļˆāļˆัāļšāļŠāļ–āļēāļ™āļ°āļ›āļĢāļ°āļ•ู
  • āļŠ่āļ‡āļ‚้āļ­āļĄูāļĨāđ„āļ›āļĒัāļ‡ Google Apps Script
  • Apps Script āļšัāļ™āļ—ึāļāļ‚้āļ­āļĄูāļĨāļĨāļ‡ Google Sheets

āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāļ›āļĢัāļšāļ›āļĢุāļ‡āļĢāļ°āļšāļš āđ€āļŠ่āļ™ āđ€āļžิ่āļĄāļāļēāļĢāđāļˆ้āļ‡āđ€āļ•ืāļ­āļ™āļœ่āļēāļ™ Line Notify āļŦāļĢืāļ­ Telegram āđāļˆ้āļ‡āđƒāļŦ้āļ‰ัāļ™āļ—āļĢāļēāļšāđ„āļ”้! 


āļ­ุāļ›āļāļĢāļ“์āļ—ี่āđƒāļŠ้

  1. ESP32
  2. Reed Switch (āđ€āļ‹็āļ™āđ€āļ‹āļ­āļĢ์āđāļĄ่āđ€āļŦāļĨ็āļ)
  3. āļ•ัāļ§āļ•้āļēāļ™āļ—āļēāļ™ 10kÎĐ (Pull-up Resistor)
  4. āļŠāļēāļĒ Jumper

āļāļēāļĢāļ•่āļ­āļ§āļ‡āļˆāļĢ

  • Reed Switch āļĄี 2 āļ‚āļē
    • āļ‚āļēāļŦāļ™ึ่āļ‡āļ•่āļ­āļัāļš GND
    • āļ­ีāļāļ‚āļēāļŦāļ™ึ่āļ‡āļ•่āļ­āļัāļš GPIO 4 āļ‚āļ­āļ‡ ESP32 (āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ้āļ‚āļēāļ­ื่āļ™āđ„āļ”้)
    • āđƒāļŠ้āļ•ัāļ§āļ•้āļēāļ™āļ—āļēāļ™ 10kÎĐ āļ•่āļ­āļĢāļ°āļŦāļ§่āļēāļ‡ GPIO 4 āđāļĨāļ° 3.3V āđ€āļžื่āļ­āļ—āļģ Pull-up

āļŦāļĨัāļāļāļēāļĢāļ—āļģāļ‡āļēāļ™

  • āđ€āļĄื่āļ­āļ›āļĢāļ°āļ•ูāļ›ิāļ” → āļ§āļ‡āļˆāļĢāļŠāļĄāļšูāļĢāļ“์ → GPIO 4 āļ­่āļēāļ™āļ„่āļē LOW
  • āđ€āļĄื่āļ­āļ›āļĢāļ°āļ•ูāđ€āļ›ิāļ” → āļ§āļ‡āļˆāļĢāļ‚āļēāļ” → GPIO 4 āļ­่āļēāļ™āļ„่āļē HIGH