Siriraj Rx Shift
ระบบตารางเวรและการแลก/ยกเวร — ฝ่ายเภสัชกรรม โรงพยาบาลศิริราช
Duty-roster and shift-swap system for the Pharmacy Department, Siriraj Hospital, Bangkok, Thailand
ระบบนี้คืออะไร
Siriraj Rx Shift เป็นระบบภายในสำหรับจัดการและเผยแพร่ตารางเวรของเภสัชกร ฝ่ายเภสัชกรรม โรงพยาบาลศิริราช ใช้งานจริงกับบุคลากรประมาณ 300–400 คน ระบบเข้ามาแทนวิธีเดิมที่ใช้ไฟล์ Excel ส่งต่อกันในกลุ่มแชท ด้วยตารางกลางแหล่งเดียวที่ทุกคนเห็นตรงกัน พร้อมประวัติการเปลี่ยนแปลงทุกครั้ง
ความสามารถหลัก
- ดูตารางเวรของทั้งหน่วยงาน และกรองดูเฉพาะเวรของตัวเอง
- ยกเวรและแลกเวรกับเพื่อนร่วมงาน พร้อมขั้นตอนยืนยันสองฝ่ายและบันทึกประวัติ (audit trail)
- แจ้งเตือนเมื่อตารางเวรเปลี่ยนแปลง
- ซิงค์เวรของตัวเองเข้าปฏิทิน Google ส่วนตัวโดยอัตโนมัติ (ทางเลือกเสริม)
ระบบนี้ไม่เกี่ยวข้องกับข้อมูลผู้ป่วยใดๆ ทั้งสิ้น — เป็นระบบจัดตารางเวรของบุคลากร ไม่ใช่ระบบเวชระเบียน ไม่มีชื่อผู้ป่วย ไม่มีเลข HN ไม่มีข้อมูลทางการแพทย์อยู่ในระบบ
ฟีเจอร์ Google Calendar Sync
ฟีเจอร์นี้เป็น ทางเลือกเสริมแบบ opt-in ผู้ใช้ที่ไม่กดเปิด จะไม่ถูกขอสิทธิ์ Google ใดๆ เลย และใช้ระบบได้ครบทุกฟังก์ชันตามปกติ
ปัญหาที่แก้: เดิมผู้ใช้ต้องเปิดตารางเวรแล้วคัดลอกวันเวรของตัวเองไปจดในปฏิทินส่วนตัวเองทีละวัน เมื่อมีการแลก/ยกเวรภายหลังก็ต้องตามแก้เอง ซึ่งเป็นสาเหตุหลักของการ "ลืมเวร"
เมื่อผู้ใช้กดเชื่อมต่อและอนุญาตสิทธิ์ ระบบจะ:
- ให้ผู้ใช้เลือกปฏิทินปลายทาง หรือสร้างปฏิทินใหม่แยกต่างหาก (เช่น "Siriraj Rx Shifts") เพื่อไม่ให้เวรงานปนกับปฏิทินส่วนตัว
- สร้าง event ตามเวรที่ผู้ใช้คนนั้นถืออยู่ — วันที่ เวลาเริ่ม-จบ ประเภทเวร และหน่วยงาน/ห้องที่ประจำ
- แก้ไขหรือลบ event เหล่านั้นให้อัตโนมัติเมื่อมีการแลก/ยกเวร
- อัปเดตต่อเนื่องเป็นระยะแม้ผู้ใช้ปิดแอปอยู่ (เปิด/ปิดได้เอง)
ระบบไม่แตะต้อง event ที่ระบบไม่ได้สร้าง ไม่เข้าถึงปฏิทินของผู้อื่น และไม่ดึงเนื้อหาใดจากปฏิทินกลับเข้าระบบ — ข้อมูลไหลทางเดียวคือ ระบบ → ปฏิทินของผู้ใช้
สิทธิ์ที่ขอ
| สิทธิ์ | ใช้ทำอะไร |
|---|---|
.../auth/calendar | สร้าง/แก้ไข/ลบ event เวรของผู้ใช้เอง และให้ผู้ใช้เลือกหรือสร้างปฏิทินปลายทาง |
.../auth/script.scriptapp | ตั้งงานอัปเดตอัตโนมัติในบัญชีของผู้ใช้เอง |
.../auth/script.external_request | อ่านเวรล่าสุดของผู้ใช้จากฐานข้อมูลของระบบเอง |
.../auth/userinfo.email | รู้ว่ากำลังซิงค์เข้าบัญชี Google ไหน เพื่อกันซิงค์ผิดบัญชี |
การยกเลิก
ผู้ใช้กดปุ่ม "ยกเลิกการเชื่อมต่อ" ในแอปได้ตลอดเวลา ระบบจะลบ event ทั้งหมดที่สร้างไว้ออกจากปฏิทิน ลบข้อมูลที่เก็บไว้ และเพิกถอนสิทธิ์ให้ทันที หรือจะถอนสิทธิ์โดยตรงที่ Google Account permissions ก็ได้
รายละเอียดทั้งหมดว่าเก็บข้อมูลอะไร ปกป้องอย่างไร และลบอย่างไร อยู่ใน นโยบายความเป็นส่วนตัว
ผู้ใช้งานและการเข้าถึง
ระบบนี้ใช้ภายในฝ่ายเภสัชกรรม โรงพยาบาลศิริราช การเข้าใช้งานต้องมีบัญชีที่ผู้ดูแลระบบสร้างให้เท่านั้น จึงไม่เปิดให้ลงทะเบียนแบบสาธารณะ ผู้ที่ต้องการเข้าถึงเพื่อการตรวจสอบ กรุณาติดต่อตามอีเมลด้านล่าง
About this application (English)
Siriraj Rx Shift is an internal duty-roster system for the Pharmacy Department of Siriraj Hospital in Bangkok, Thailand, used by roughly 300–400 pharmacy staff. It replaces the previous workflow — Excel files circulated through group chat — with a single shared roster and a full audit trail for every shift hand-off and swap.
The system handles no patient data of any kind. It is a staff scheduling tool, not a medical records system: there are no patient names, no medical record numbers, and no clinical information anywhere in it.
Google Calendar Sync
Calendar sync is an optional, opt-in feature. Users who do not enable it are never asked for any Google permission and retain full use of the application.
It solves a concrete problem: staff previously had to read the roster and copy their own shift dates into their personal calendar by hand, then chase every subsequent swap manually — the main cause of missed shifts.
Once a user connects and grants consent, the app:
- lets the user choose a destination calendar or create a new dedicated one (e.g. "Siriraj Rx Shifts"), so work shifts stay separate from personal events;
- creates events for the shifts that user holds — date, start and end time, shift type, and assigned unit or room;
- updates or deletes those events automatically when a shift is swapped or handed off;
- keeps syncing periodically even when the app is closed (user-controlled, can be turned off).
The app does not touch events it did not create, does not access anyone else's calendar, and does not pull any calendar content back into the system. Data flows one way only: app → the user's calendar.
Scopes requested
| Scope | Used for |
|---|---|
https://www.googleapis.com/auth/calendar | Create/update/delete the user's own shift events, and let the user select or create the destination calendar |
https://www.googleapis.com/auth/script.scriptapp | Install the background auto-update trigger in the user's own account |
https://www.googleapis.com/auth/script.external_request | Read the user's latest shifts from the system's own database |
https://www.googleapis.com/auth/userinfo.email | Identify which Google account the shifts sync into, to prevent syncing to the wrong account |
Revoking access
The in-app "Disconnect" button removes every event the app created, deletes all stored data, and revokes the script's authorization immediately. Access can also be revoked directly at Google Account permissions. Full details of what is stored, how it is protected, and how it is deleted are in the Privacy Policy.
Access
The application is used internally within the Pharmacy Department and requires an account created by an administrator; there is no public sign-up. Reviewers who need access for evaluation should contact the email below and credentials will be provided.