Sunday, 28 September 2025

ระบบ 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



Monday, 28 October 2024

ระบบ Smart Hospital Server

ระบบโรงพยาบาลอัจฉริยะที่ได้มีการนำเทคโนโลยีดิจิทัลที่ทันสมัยมาปรับใช้ประยุกต์กับโรงพยาบาลภาครัฐสังกัดกระทรวงสาธารณสุข และโรงพยาบาลภาคเอกชน เพื่อให้เกิดความสะดวกสบายในการให้บริการทางสุขภาพ รวมไปถึงการบริหารจัดการระบบต่าง ๆ ภายในโรงพยาบาล ช่วยให้เกิดการประหยัดเวลา ลดขั้นตอนการดำเนินงานต่าง ๆ 

ความสามารถระบบ ทั้งหมด 


ระบบ ตรวจจับ แรงดันไฟ พร้อมคำนวน อัตราการใช้ไฟฟ้า
ระบบตรวจจับ ควันไฟ และแจ้งเตือน โดยกริ่งเสียง
ระบบ ตรวจจับ น้ำรั่วซึม
ระบบ ตั้งเวลาควบคุมแอร์ ทำงานสลับกัน
ระบบ ตรวจจับอุณหภูมิ และควบคุมความชื้น
ระบบ ตรวจจับความเคลื่อนไหวในห้อง
ระบบ เปิดปิด ประตูด้วยลาย นิ้วมือ

เป็นระบบตรวจติดตาม เฝ้าระวัง เซิร์ฟเวอร์ และเน็ตเวิร์ก ควบคุม ดู และอุปกรณ์  ผ่านมือถือใด้

ภาษาที่ใช้พัฒนาภาษา C ,PHP ,shell script

##ความสามารถใน บอร์ด IoT Server Monitor
ระบบ ตรวจเช็ค การเชื่อมต่อฐานข้อมูล 
ระบบ ตรวจเช็ค Ping IP ต่างๆ 
ระบบ ตรวจเช็คอุณหภูมิ ความซื้น ห้อง Server 
** ระบบ ตรวจเช็ค ไฟดับ
ระบบ ตั้งเวลาปิดเปิดอุปกรณ์ใด้ 
ระบบ  ควบคุม เปิด/ปิด แอร์สองตัว ตั้งเวลา เปิดปิดสลับกัน ตั้งเวลาผ่านแอปมือถือ
** ระบบ  ตรวจ จับ ควัน ไฟ  แจ้งเตือน ด้วย line notify และ เสียง กริ่ง
แจ้งเตือนข้อผิดพลาดต่างๆ ผ่าน line notify
สามารถบันทึกข้อมูลอุณหภมิ ความชื้นเก็บเป็นฐาน Mysql ได้

##โปรแกรมประยุกต์ ติดตั้งเพิ่มเติมในเครื่อง Server 
ระบบ ตรวจสอบ การ SSH Login เข้าระบบ จากภายนอก
ระบบ  ตรวจเช็คอุณหภูมิ CPU SERVER
ระบบ  ตรวจเช็ค UPTIME  SERVER
ระบบ  ตรวจเช็ค RAM  SERVER
ระบบ  ตรวจเช็ค DISK  SERVER
ระบบ  ตรวจเช็ค LOAD SERVER
แจ้งเตือนข้อผิดพลาดต่างๆ ผ่าน line notify

**








































                             























  






















ระบบเรียก คิว

 

ระบบเรียก คิว ALL HIS 

1. สามารถเรียกคิวจากโปรแกรม  ใด้เลย
2.รันโปรแกรม Server ไว้ที่เครื่องใหนก็ใด้เพียง แค่ต่อสายลำโพง สามารถเรียกเสียง ผ่าน ระบบ network ใด้เลย
3.จอแสดงผล คิว ผ่าน browser จอทีวี smasttv ใด้เลย
4.หรือ มี mini pc ต่อ จอ ต่อจุด

 
หน้าห้อง OPD  http://ddns23.ddns.net/q/ov_queue/

หน้าห้อง จ่ายยา http://ddns23.ddns.net/q/rx_queue/

หน้าห้อง หมอ  http://ddns23.ddns.net/q/web/











































http://ddns23.ddns.net/q/ov_queue/http://ddns23.ddns.net/q/web/

Sunday, 20 October 2024

ชุดคิท Diy โปรเจค วัดอุณหภูมิตู้เย็น จัดเก็บข้อมูลเข้า MYSQL

ชุดคิท โปรเจค วัดอุณหภูมิตู้เย็น จัดเก็บข้อมูลเข้า MYSQL


-สามารถต่อยอดพัฒนาระบบเพิ่มเติมใด้ มี source code PHP  ให้

  ***แต่ source code arduino ไม่ใด้ให้ไปนะครับ ลงไว้ใน board node nodemcu esp8266 ที่ให้ไปแล้ว

-มีระบบแจ้งเตือนการ  อุณหภูมิเกินก่าวที่ตั้งไว้ โดย line.notify
-จัดเก็บข้อมูลเข้า ฐาน Mysql ของระบบเราเอง สามารถดึงข้อมูลมาใช้ใด้เลย

อุปกรณ์ที่ใด้
1. บอร์ดทดลอง NodeMCU V3 ESP8266            1 ชิ้น
2. เซ็นเซอร์ ds18b20                                             1 ชิ้น

 





     **** source code PHP  ตัวอย่าง









แอปมือถือ โดย Blynk



















ชุดคิท IoT ,Smart home

ระบบควมคุมเครื่องใช้ไฟฟ้าผ่าน มือถึอ Smart home
สามารถควบคุมการเปิดปิดอุปกรณ์ใด้ 10 อุปกรณ์
โหมด ตั้งเวลา  8 ช่อง
โหมด ควบคุมสวิตช์ ด้วยมือถือ 8 ช่อง
โหมด ควบคุมด้วยแสง 1 ช่อง
โหมด ควบคุมด้วย อณหภูมิ. 1 ช่อง
สวิตช์  แบบ Manual กรณี เน็ตใช้การไม่ใด้ 8 จุด
ดูสถานะ การเปิดปิด อุปกรณ์ ปัจุบัญใด้