The source manual is available in Thai. Product status and support navigation are provided in English.
รหัสผ่าน พอร์ต และข้อมูลรับรองการเข้าใช้ระบบในตัวอย่างมาจากคู่มือ Community Edition เดิม โปรดใช้เฉพาะในเครือข่ายทดสอบที่แยกจากระบบจริง เปลี่ยนข้อมูลรับรองทุกค่าก่อนเชื่อมต่อระบบจริง และห้ามใช้ข้อมูลผู้ป่วยจริงในการทดสอบ
การติดตั้ง HAPI FHIR Server สำหรับการจัดเก็บข้อมูลของโรงพยาบาล
ความต้องการขั้นต่ำของเครื่องเซิร์ฟเวอร์
- หน่วยประมวลผลกลาง 2 หน่วยขึ้นไป (CPU ที่มี 2 Cores ขึ้นไป)
- หน่วยความจำของคอมพิวเตอร์ 4 GB ขึ้นไป (RAM ที่มีขนาด 4 GB ขึ้นไป)
- พื้นที่จัดเก็บข้อมูล 20 GB ขึ้นไป
- ระบบปฏิบัติการแบบ Linux (Ubuntu เวอร์ชั่น 18.04 ขึ้นไป)
ขั้นตอนการติดตั้งโปรแกรมสำหรับเครื่องเซิร์ฟเวอร์
ติดตั้ง Docker Engine
- อัปเดต package index และติดตั้ง package ที่ต้องใช้
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
- เพิ่ม Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- เพิ่ม Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- ติดตั้ง Docker Engine แล้วทดสอบด้วย
hello-world
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
(อ้างอิง https://docs.docker.com/engine/install/ubuntu/)
ติดตั้ง Docker Compose
- ดาวน์โหลด Docker Compose 1.29.2 ตามเวอร์ชันที่ Community Edition ใช้
sudo curl -L \
"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
- กำหนดสิทธิ์และตรวจสอบเวอร์ชัน
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
(อ้างอิง https://docs.docker.com/compose/install/)
ติดตั้ง HAPI FHIR Server
-
Clone source code จาก GitHub: https://github.com/health-tag/hospital-fhir-node
-
สร้างไฟล์
.pgenvสำหรับฐานข้อมูล Kong โดยเปลี่ยน placeholder ก่อนใช้งาน
POSTGRES_DB=kong
POSTGRES_USER=kong
POSTGRES_PASSWORD=<CHANGE_ME_KONG_DB>
- สร้างไฟล์
.kongenvและใช้รหัสผ่านเดียวกับPOSTGRES_PASSWORD
KONG_PROXY_ACCESS_LOG=/dev/stdout
KONG_ADMIN_ACCESS_LOG=/dev/stdout
KONG_PROXY_ERROR_LOG=/dev/stderr
KONG_ADMIN_ERROR_LOG=/dev/stderr
KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
KONG_DATABASE=postgres
KONG_PG_HOST=db
KONG_PG_DATABASE=kong
KONG_PG_USER=kong
KONG_PG_PASSWORD=<CHANGE_ME_KONG_DB>
- สร้างไฟล์
.hapimysqlenvสำหรับฐานข้อมูล HAPI
MYSQL_DATABASE=ha1pi
MYSQL_USER=<CHANGE_ME_HAPI_DB_USER>
MYSQL_PASSWORD=<CHANGE_ME_HAPI_DB_PASSWORD>
MYSQL_ROOT_PASSWORD=<CHANGE_ME_HAPI_ROOT_PASSWORD>
- Build และเปิด container
docker-compose up --build -d
docker ps
- ตรวจสอบ service ภายในเครือข่ายที่กำหนด
- Konga:
http://ip_address:1337 - HAPI UI:
http://ip_address:8080 - CSOP upload:
http://ip_address:8888
ตั้งค่ารหัสสำหรับการเข้าหน้าอัพโหลดไฟล์ CSOP เข้าสู่ระบบ
เข้าสู่ระบบด้วย url http://ip_address:8888 จะแสดงหน้า Login ให้ใส่ Username ว่า admin และ password ว่า admin เช่นเดียวกัน เมื่อเข้าสู่ระบบได้แล้วให้เลือกเมนู Settings

หน้าจอแสดงภาพรวมระบบ
ให้ทำการเปลี่ยนรหัสผ่านของ admin ใหม่และกด Update

หน้าจอแสดงขั้นตอนการเปลี่ยนรหัสผ่าน
หมายเหตุ เพื่อความปลอดภัยสำหรับระบบ ผู้จัดทำแนะนำให้เปิด port สำหรับการเข้าถึง server เพียง 1 port ดังนี้คือ 80(http) หรือ 443(https) ส่วนการเข้าถึงระบบด้วย port อื่นๆเช่น 22(ssh), 1337(KONGA), 8000-8001(KONG http), 8443-8444(KONG https), 8080(HAPI UI), 8888(Upload) ให้เข้าถึงได้เพียง intranet IP เท่านั้นโดยการจัดการที่ระดับ Network
การติดตั้งระบบ KONG API Gateway ด้วย KONGA
การตั้งค่าเริ่มต้นการใช้งาน KONGA
เข้าไปยัง http://ip_address:1337 โดยระบบจะให้สร้าง Username และ Password สำหรับ Administrator ที่ดูแลระบบ

หน้าจอการใช้งานครั้งแรกของ KONGA

การกรอกข้อมูลเพื่อสร้างบัญชีของ Administrator
ภายหลังการสร้างบัญชีของ Administrator เรียบร้อยแล้ว ระบบจะนำไปสู่หน้า Sign in ให้กรอก Username และ Password ที่กำหนดในขั้นตอนก่อนหน้า จากนั้นเลือก Sign in

การ Sign in เข้าใช้งาน KONGA

การกรอกข้อมูลเพื่อเข้าระบบ KONGA
ระบบ KONGA จะให้ผู้ใช้งานกรอกข้อมูลเพื่อเชื่อมต่อกับ KONG API Gateway โดยให้กรอกข้อมูลในการเชื่อมต่อ KONG โดยกำหนดชื่อ Connection และ KONG Admin URL ดังนี้
-
Name: KONG GATEWAY
-
KONG Admin URL: http://kong:8001

การกรอกข้อมูลเพื่อสร้าง Connection

การกรอกข้อมูลเพื่อสร้าง KONG GATEWAY
เมื่อติดตั้งสำเร็จ ระบบ KONGA จะแสดงผลดังรูป

หน้าจอ Dashboard การใช้งาน KONGA
การสร้าง Service สำหรับทำ Proxy API สู่ FHIR API
ข้ามหัวข้อนี้ไปที่ 2.4 การสร้าง Consumer สำหรับ KONG Administration API ได้ เพราะ Docker image ในหัวข้อ 1.2.3 มี script ตั้งค่าให้อัตโนมัติแล้ว หัวข้อ 2.2 อธิบายขั้นตอนที่ script ดำเนินการ
ภายใต้หัวข้อ Service เลือก Add New Service

การสร้าง Service ใหม่
ระบบจะแสดงหน้าต่าง Create Service ให้กรอกข้อมูลดังนี้
-
Name: fhir-api

การกรอกข้อมูลเพื่อสร้าง Service fhir-api
เมื่อสร้าง Service เรียบร้อยแล้ว ระบบจะแสดงชื่อ และรายละเอียดของ Service

รายละเอียดของ fhir-api ที่มีการสร้างเรียบร้อยแล้ว
เลือก Service fhir-api ที่ได้ทำการสร้างไว้ โดยระบบจะแสดงหน้าใหม่เพื่อใช้จัดการ Service

รายละเอียดของ Service fhir-api
จัดการสร้างการเข้าถึง API โดยเลือกที่ Routes และ Add Route

การสร้าง Route ให้กับ Service fhir-api
กรอกข้อมูลของการสร้าง Route to FHIR API โดยการกรอกข้อมูลดังนี้
-
Name: fhir-api
-
Paths: /fhir-api (เมื่อพิมพ์เสร็จแล้วให้กด Enter)

การเพิ่มข้อมูล Route ให้กับ fhir-api
การเปิดใช้งานและตั้งค่า Plugins สำหรับ FHIR API เพื่อทำการเพิ่มความปลอดภัยของ API
เลือก Plugins จากนั้นกด Add Plugin

การเพิ่ม Plugin ให้กับ Service fhir-api
Basic Auth
ภายใต้หมวด Authentication เลือก Basic Auth จากนั้นกด Add Plugin (เพื่อใช้ในการเข้าถึงข้อมูลจาก User Interface ของโรงพยาบาลเพื่อดูข้อมูลยาในลำดับต่อไป)

การเพิ่ม Basic Auth Plugin
ระบบจะแสดงหน้าจอเพื่อให้กรอกข้อมูลเพื่อกำหนดค่า Plugin จากนั้นเลือก Add Plugin

การกำหนดค่า Basic Auth Plugin
Cors
ภายใต้หมวด Security เลือก CORS แล้วกด Add Plugin ปลั๊กอินนี้กำหนดให้เว็บแอปพลิเคชันจากโดเมนอื่นเรียก API นี้ได้

การเพิ่ม Cors Plugin
ระบบจะแสดงหน้าจอเพื่อให้กรอกข้อมูลเพื่อกำหนดค่า Plugin โดยกำหนดค่าดังนี้ จากนั้นเลือก Add Plugin เพื่อยืนยัน
-
Origins:
* -
Headers:
* -
Exposed headers:
*

การกำหนดค่า Cors Plugin
การสร้าง Service สำหรับทำ Proxy API สำหรับ KONG Administration API
ข้ามหัวข้อนี้ไปที่ 2.4 การสร้าง Consumer สำหรับ KONG Administration API ได้ เพราะ Docker image ในหัวข้อ 1.2.3 มี script ตั้งค่าให้อัตโนมัติแล้ว หัวข้อ 2.3 อธิบายขั้นตอนที่ script ดำเนินการ
ภายใต้หัวข้อ Service เลือก Add New Service

การสร้าง Service ใหม่
ระบบจะแสดงหน้าต่าง Create Service ให้กรอกข้อมูลดังนี้
-
Name: admin-api
-
Url: http://kong:8001

การกรอกข้อมูลเพื่อสร้างสร้าง Service admin-api
หลังจากสร้างสำเร็จระบบจะแสดงรายละเอียด service

รายละเอียดของ Service admin-api ที่มีการสร้างเรียบร้อยแล้ว
เลือก Service admin -api ที่ได้ทำการสร้างไว้ โดยระบบจะแสดงหน้าใหม่เพื่อใช้จัดการ Service เพื่อเข้าไปจัดการเส้นทางการเข้าถึง

รายละเอียดของ Service admin-api
จัดการสร้างการเข้าถึง API ด้วยการสร้าง Routes

การสร้าง Route ให้กับ Service fhir-api
การกรอกข้อมูลดังนี้
-
Name: admin-api
-
Paths: /admin-api (เมื่อพิมพ์เสร็จแล้วให้กด Enter)

การเพิ่มข้อมูล Route ให้กับ admin-api
เปิดใช้งานและตั้งค่า Plugins สำหรับ KONG Administration API เพื่อทำการเพิ่มความปลอดภัย
เลือก Plugins จากนั้นกด Add Plugin

การเพิ่ม Plugin ให้กับ Service admin-api
Basic Auth
ภายใต้หมวด Authentication เลือก Basic Auth แล้วกด Add Plugin ปลั๊กอินนี้จำกัดการเข้าถึง Administration API ด้วย Username และ Password ที่กำหนด ข้อมูลชุดเดียวกันใช้เข้าสู่หน้าจอสำหรับเจ้าหน้าที่โรงพยาบาลที่สร้าง Username และ Password ให้ผู้ป่วย

เพิ่ม Basic Auth Plugin
กด Add Plugin เพื่อเพิ่ม Basic Auth

การกำหนดค่า Basic Auth Plugin
IP Restriction
ภายใต้หมวด Security เลือก IP Restriction จากนั้นกด Add Plugin ซึ่ง Plugin นี้ใช้จำกัดการเข้าถึงของ API โดยให้เข้าถึงได้จาก IP Address ที่กำหนดเท่านั้น

การเพิ่ม IP Restriction Plugin
ใส่ค่า IP Intranet ของโรงพยาบาล (ที่ติดตั้ง Server ส่วนของ User Interface ของโรงพยาบาลซึ่งจะเรียก Administration API นี้)

การกำหนดค่า IP Restriction Plugin
Cors
การเปิดใช้และตั้งค่า Cors plugin ของ Administration API นี้ ตั้งค่าเหมือนกับการตั้งค่าของ FHIR API ตามหัวข้อ 2.2.1 การเปิดใช้งานและตั้งค่า Plugins สำหรับ FHIR APIสร้าง User (Consumer) สำหรับ KONG Administration API
การสร้าง Consumer เพื่อใช้งาน KONG Administration API
เลือกเมนู Consumers แล้วกด Create Consumer จากนั้นตั้งชื่อ Username ว่า admin-api

การสร้าง Consumers

การสร้าง Consumers
จากนั้นกด Submit Consumer เพื่อยืนยันการสร้างผู้ใช้

การยืนยันการสร้าง Consumers
กำหนด Username และ Password สำหรับ admin-api user โดยเลือกหัวข้อ Credentials แล้วเลือก Basic จากนั้นกด Create Credentials

การกำหนดค่าสำหรับ Consumer admin-api
กำหนด Username และ Password ที่ต้องการ

การตั้งค่า username password สำหรับ Basic Auth
เลือก Submit เพื่อยืนยันการสร้าง Credential สำหรับผู้ใช้งานนี้

การยืนยันสร้าง credential
การดำเนินการกับไฟล์ CSOP
การนำไฟล์ CSOP เข้าสู่ระบบผ่าน User Interface เพื่ออัพโหลดไฟล์
- เข้าสู่ http://ip_address:8888 ด้วย Username และ Password ที่ตั้งไว้

หน้าจอการ Login เข้าระบบ File browser
- อัพโหลดไฟล์ CSOP โดยไฟล์ต้องมีโครงสร้างชื่อไฟล์ดังนี้
- ไฟล์ CSOP ตั้งชื่อว่า
BILLTRAN<YYYYMMDD>.txtสำหรับ CSOP ประเภท Bill Trans - ไฟล์ CSOP ตั้งชื่อว่า
BILLTDISP<YYYYMMDD>.txtสำหรับ CSOP ประเภท Bill Disp
- ไฟล์ CSOP ตั้งชื่อว่า
หมายเหตุ: ระบบไม่รองรับไฟล์ ZIP ให้แตกไฟล์
.txtภายในก่อนอัปโหลด และตั้งชื่อไฟล์ตามรูปแบบข้างต้นเท่านั้น

แสดงไฟล์ที่อัปโหลดเรียบร้อยแล้ว
การใช้งาน Script แปลงข้อมูล CSOP เป็น FHIR
เจ้าหน้าที่ไอทีต้องเตรียม directory สำหรับรัน Python script ที่แปลงไฟล์ CSOP เป็นข้อมูลตามมาตรฐาน HL7 FHIR แล้วอัปโหลดผลลัพธ์ไปยัง HAPI FHIR Server
สิ่งที่จำเป็นต้องมี
-
ระบบ HAPI FHIR Server ที่ใช้โครงสร้างมาตรฐานข้อมูลแบบ HL7 FHIR (IP address หรือ domain name)
-
เครื่องคอมพิวเตอร์ที่มี Python version 3.8 ขึ้นไป และ Library
xmltodict
pip3 install xmltodict
ขั้นตอนการใช้งาน Script
-
นำ Script ไปอยู่ในโฟลเดอร์ไว้ที่ Root โฟลเดอร์
-
ใน Root โฟลเดอร์ สร้างโฟลเดอร์ uploads เพื่อใช้สำหรับการเก็บไฟล์ CSOP
-
ไฟล์ CSOP ตั้งชื่อว่า
BILLTRAN<YYYYMMDD>.txtสำหรับ CSOP ประเภท Bill Trans -
ไฟล์ CSOP ตั้งชื่อว่า
BILLTDISP<YYYYMMDD>.txtสำหรับ CSOP ประเภท Bill Disp
-
-
นำไฟล์ในข้อ 5.3,5.4 วางในโฟลเดอร์ uploads
-
ปรับเปลี่ยนการตั้งค่าใน Script โดย
- กรณีรันจากเครื่องคอมพิวเตอร์ข้างนอก ที่ไม่ใช่ FHIR เซิร์ฟเวอร์ ให้แก้ค่า base_fhir_url ใน script เป็น IP Address หรือ domain เพื่อส่งข้อมูลไปถึง FHIR เซิร์ฟเวอร์ รวมถึงการใส่ค่าต่างๆเพื่อให้ผ่านระบบความปลอดภัยที่ติดตั้งไว้ - กรณีรันจากเครื่องเซิร์ฟเวอร์ที่ติดตั้ง HAPI FHIR Server แล้ว ให้ใช้ internal URL
base_fhir_url = "http://hapi-fhir-jpaserver-start:8080/fhir"
(อ้างอิง [https://github.com/health-tag/hospital-fhir-node](https://github.com/health-tag/hospital-fhir-node))

แสดงการตั้งค่า Script
- รัน script
python3 transform_fhir.py
เจ้าหน้าที่ไอทีต้องรัน script นี้ทุกวัน หรือกำหนด Cron job ให้ระบบรันโดยอัตโนมัติ
6. ตรวจสอบข้อมูลที่เข้าสู่ระบบหลังจาก script ทำงานเสร็จสิ้น
วิธีการใช้งาน Web application
การสร้าง Username และ Password ให้กับผู้ป่วยสำหรับเจ้าหน้าที่โรงพยาบาล (Admin)
-
เข้าสู่ระบบ User Interface ด้วย http://ip_address/admin
-
กรอก Username และ Password สำหรับผู้ดูแลระบบ ที่ตั้งในข้อก่อนหน้า แล้วเข้าสู่ระบบ

หน้าจอเพื่อเข้าสู่ระบบ
- ระบบจะแสดงหน้าจอศูนย์จัดการระบบ ในเลือก ลงทะเบียนผู้รับบริการ

หน้าจอศูนย์จัดการระบบ
-
ระบบจะแสดงหน้าจอลงทะเบียนผู้รับบริการ สำหรับการสร้างชื่อผู้ใช้งาน (Username) และรหัสผ่าน (Password) ให้กับผู้ป่วย
-
ให้ผู้ดูแลระบบกรอกหมายเลขประจำตัวผู้ป่วย (Hospital Number: HN) ซึ่งจะเป็น Username ให้ผู้ป่วย จากนั้นให้ผู้ป่วยกำหนดรหัสผ่านด้วยตัวเองเป็นตัวเลขทั้งหมด 6 หลัก

หน้าจอลงทะเบียนผู้รับบริการ และการกำหนดชื่อผู้ใช้งานแลรหัสผ่านของผู้ป่วย
- กดยืนยันการสร้าง User ให้ผู้ป่วย เพื่อใช้ในการดูข้อมูลยาผ่านระบบ User Interface

หน้าจอแสดงการลงทะเบียนสำเร็จ
การดูข้อมูลยาผ่าน Username และ Password สำหรับผู้ป่วย
-
เข้าสู่ระบบ User Interface ด้วย http://ip_address
-
กรอก Username และ Password ของผู้ป่วยที่ได้ทำการสมัครผ่านเจ้าหน้าที่โรงพยาบาลในขั้นตอนก่อนหน้า

การกรอกรหัสของผู้ป่วยสำหรับดูข้อมูลยา
- ระบบจะแสดงหน้าข้อมูลสุขภาพ โดยที่หัวข้อยาจะแสดงข้อมูลยาที่ผู้ป่วยได้รับ โดยอ้างอิงฐานข้อมูลซึ่งจัดเก็บข้อมูลในรูปแบบ HL7 FHIR

การดูข้อมูลยาของผู้ป่วย
ติดต่อฝ่ายสนับสนุน
เมื่อติดต่อฝ่ายสนับสนุน โปรดระบุว่าใช้ Community Edition พร้อม revision ของ source code ระบบปฏิบัติการ ขั้นตอนที่เกิดปัญหา และ log ที่ปกปิดข้อมูลลับแล้ว ห้ามส่งข้อมูลผู้ป่วย รหัสผ่าน ข้อมูลรับรองการเข้าใช้ระบบ private key หรือ log ที่ยังมีข้อมูลลับ
support@healthtag.io