แบบฝึกหัดที่ 1 EzForm
1. โปรดออกแบบสำรวจสั้นๆ โดยให้มีคำถามไม่เกิน 5 ข้อ จากนั้น สร้าง Token แล้วนำ QR Code ที่ได้ส่งเข้าในไลน์กลุ่มใดก็ได้ จากนั้น Export ข้อมูลส่ง
2. โปรดสร้างฟอร์ม โดยการ Restore จาก Backup file ทั้ง 5 ไฟล์ ต่อไปนี้ จากนั้น จัดสิทธิ์ให้ Guest มองเห็นได้
3. โปรดโคลนฟอร์ม ACT ที่ได้จากข้อ 1 เป็นฟอร์มใหม่ชื่อ MyACT จากนั้น
3.1) เพิ่มเข้าไปอีกหนึ่งข้อคำถาม คล้ายคำถามข้อ 2. "ในช่วง 4 สัปดาห์ที่ผ่านมา บ่อยแค่ไหนที่คุณรู้สึกหายใจไม่อิ่ม" แต่เปลี่ยนเป็น "ในช่วง 4 สัปดาห์ที่ผ่านมา บ่อยแค่ไหนที่คุณไอ"
3.2) แก้ไขเกณฑ์การแปลความหมาย ACT Interpretation โดย
- Controlled Asthma (>=25)
- Partially controlled (21-25)
- Uncontrolled (<20)
3.3) จัดสิทธิ์ให้ Guest สามารถร่วมแก้ไข MyACT ได้
4. โปรดสร้างแบบคัดกรอง COVID-19 โดยใช้ EzForm ให้สามารถทำงานได้ เช่นเดียวกันกับในลิ้งค์นี้ http://region6.cbo.moph.go.th/Selt-Screening/
ทั้งนี้ Dropdown list ในข้อ 3 ต้องให้ผู้ใช้งานเป็นผู้เพิ่มชื่อประเทศเองตามที่ต้องการได้เอง
การส่งคำตอบ: ส่งไฟล์ที่ได้ต่อไปนี้ทางเมล์ ไปที่ thaihisorg@gmail.com
- ไฟล์ข้อมูลที่ Export ออกจาก EzForm (ตามคำถามข้อ 1)
- แจ้ง Username Password ของ Guest ที่ท่าน Add เข้าระบบ เพื่อให้สามารถเห็น EzForm ทั้ง 5 ที่ท่าน Restore (ตามข้อ 2) และให้ Guest เป็นเจ้าของร่วม MyACT (ตามคำถามข้อ 3)
- แนบทุกไฟล์ที่ได้จากการ Backup Form ทั้ง MyACT และ COVID-19 (ตามคำถามข้อ 4)
เฉลยแบบฝึกหัดที่ 1 และต่อยอดประสบการณ์
- ตอนที่ 1 คำเฉลยรายข้อ [VDO]
- ตอนที่ 2 สองไฟล์หัวใจ HIS: PERSON และ VISIT [VDO]
- ตอนที่ 3 Form Event และการเริ่มเรียนรู้เกี่ยวกับการเขียนโปรแกรม [VDO]
- Backup files สำหรับทดลองใช้งาน "Form Event" ตามวิดีโอ ตอนที่ 3:
แบบฝึกหัดที่ 2 EzModule, EzWidget, and EzSQL
- โปรดทำ EzForm ให้เป็นเครื่องคิดเลข
- โปรดสร้าง Application โดยใช้ EzModule สำหรับการดูแลและรักษาผู้ป่วยสูงอายุ โดยมีรายละเอียดดังนี้
2.1) มีฟอร์มผู้ป่วย (Patient) สำหรับเก็บข้อมูล ชื่อ นามสกุล อายุ เพศ เป็นต้น
2.2) มีฟอร์ม Visit เพื่อนำไป join กับฟอร์ม Patient โดยให้มีการเก็บข้อมูลการซักประวัติและการตรวจคัดกรองในแต่ละ visit
2.3) ให้ฟอร์ม การรักษาและดูแลผู้ป่วย join กับฟอร์ม Visit โดยเก็บข้อมูล การตรวจร่างกาย การวินิจฉัย การให้การรักษา และการดูแลผู้ป่วย เป็นต้น
โดยใน EzModule นั้น จะต้องมี EzWidget ประเภท Parent Selector By EzSQL ในการ ค้นหา Patient และ Visit
ท่านสามารถส่งงานได้เมื่อพร้อม โดยเพียงแจ้ง URL ของ รพ.ที่ท่านสร้าง พร้อม username (ชื่อ guest) และ password (ตามที่ท่านกำหนด) ไปที่ thaihisorg@gmail.com จากนั้น กรุณารอรับการติดต่อกลับจากทีมงาน เพื่อรับการ feedback หรือการเทียบเชิญร่วม ThaiHIS Core Team ต่อไป
แนวคิดต่อยอดเป็น Product ที่ทำการตลาดได้จริง:
- Medical Calculators
- Elderly Care Center
- Lab Center
- Drug Store
- Clinic
- etc.
แบบฝึกหัดที่ 3 EzFlow & EzWorkBench
- ???
- ???
แบบฝึกหัดที่ 4 Advanced EzFlow
- ???
- ???
การพัฒนาระบบ Web Application ด้วย EzFlow
(Last update: 16 July 2020)
Easy Flow Solution Co.Ltd.
A. ทักษะที่ควรจะมีก่อนเรียนรู้
- สมัครสมาชิก -> Login
- เมื่อ Login เข้าไปใน ThaiHIS แล้ว ให้สร้าง HIS สำหรับโรงพยาบาลขึ้นมาเพื่อเริ่มทำงานพัฒนาระบบ โดยคลิก Create New Project แล้วโคลนจาก System Template ที่ชื่อ EzFlow

- สามารถใช้เมนูบาร์ ด้านบนสุดของเว็บ ซึ่งมีเมนู EzFlow เพื่อคลิกสร้าง EzFlow

- หรือคลิกเมนู EzModule จากนั้น จะมี 4 โมดูลต่อไปนี้ ที่เกี่ยวข้องกับ EzFlow
| จัดการ ThaiHIS ทั้งระบบ |
 | จัดการ EzFlow รวมทั้งการอนุมัติให้ EzFlow ที่สมาชิกสร้างขึ้นนั้น ให้สามารถใช้ใน EzWorkBench ได้ |
 | ระบบสร้าง EzFlow สามารถใช้งานโดยคลิกที่เมนูหลัก EzFlow ของเว็บเพจได้ด้วยเช่นกัน |
 | User Interface ของ EzFlow ที่สร้างโดยกำหนดคุณสมบัติเป็น EzTask |
B. Data type ของ EzFlow
- ใช้รูปแบบ JSON ในการรับ ส่ง parameter
- มีอยู่สองแบบคือ Single Row และ Multiple Row
- Single Row จะมีลักษณะดังนี้
{attr1:value1, attr2:value2, …, attrN:valueN} หรือ [{attr1:value1, attr2:value2, …, attrN:valueN}] - Multiple Row จะมีลักษณะดังนี้
[{attr1:value1, attr2:value2, …, attrN:valueN}, {attr1:value1, attr2:value2, …, attrN:valueN}, …{attr1:value1, attr2:value2, …, attrN:valueN}]
C. การเรียกใช้งาน EzFlow มีอยู่ 3 ช่องทาง คือ
- ผ่าน URL โดยกำหนด URL ตามรูปแบบต่อไปนี้
/ezflow/basic/flow-runtime?flow_id=1593677101032740500&return_data=1
เมื่อ
- flow_id คือ id ของ EzFlow
- return_data คือ ลักษณะของการ return data โดยที่
0 = ข้อมูลทุกอย่างของการประมวลผล
1 = ส่งข้อมูลเฉพาะที่ตั้งค่าไว้ใน EzFlow
- ผ่าน Widget โดยการเลือก EzFlow ที่ต้องการ (EzFlow มีให้ใช้ในบาง Widget เท่านั้น)
- ผ่าน EzWorkBench (กรณีระบบใดที่มี EzWorkBench เป็น Main Page) ทั้งนี้ต้องส่ง EzFlow เพื่อขออนุญาตใช้งานผ่านเมนู EzWorkBench ก่อน และกระบวนการสร้าง EzFlow เพื่อการนี้ ต้องให้ Node start เลือก Source of Incoming เป็น Form ภายใน Flow ก่อนเสมอ เพื่อให้แสดงผลผ่าน Method task
D. Node type ของ EzFlow มีดังนี้
 | Start Node คือ node เริ่มต้นของ EzFlow และเป็นตัวกำหนด ตัวแปรหลัก (Set State) |
 | Process Node คือ node ที่กำหนดการทำงานต่างๆ |
 | IF Node คือ node ที่กำหนดเส้นทางตามเงื่อนไข |
 | End Node คือ node ที่จบการทำงานและ กำหนดตัวแปรที่ส่งออก |
E. Method type ที่เป็น Algorithm ของแต่ละ Node ใน EzFlow มีดังนี้
| ใช้ EzSQL ในการ select ข้อมูลจาก Table ที่ได้จาก EzForm. |
| Insert หรือ update ข้อมูลลงใน Table ที่ได้จาก EzForm |
| Delete ข้อมูลใน Table ที่ได้จาก EzForm |
| สร้างเงื่อนไขจากข้อมูลที่มีอยู่ |
| ประกาศ Global variable เพื่อใช้ใน Node ถัดไป |
| แก้ไขข้อมูล Task ที่ส่งออกไป |
| ส่ง Task ให้กับ user ที่เข้าเงื่อนไข พร้อมแสดงข้อมูลเบื้องต้น |
| ออกจาก Node หรือ Process นั้นทันที |
| เรียกใช้ฟังชั่นต่างๆ ที่ EzFlow Admin สร้างไว้ |
| กำหนดฟอร์มที่ต้องบันทึก |
| กำหนด Process หลังจากบันทึกฟอร์ม |
- Method type เป็น Hierarchical Structure
- Method type ใดทำงานไม่สำเร็จ Method type ลูกๆ จะไม่ถูก run
- Method type ที่ทำงานแล้วจะออกจาก node นั้นๆ ทันที ได้แก่
return, task - Sub-method type มีดังนี้
task -> process_form-> event - โครงงานการทำงานของ method เป็นดังนี้
function method({params}){ {process by method type}
return ถ้า method type ทำงานสำเร็จจะส่งค่า เป็นข้อมูลที่ได้ หรือ ส่งค่า true return ถ้า method type ทำงานไม่สำเร็จจะส่งค่า false } |
************************