คุณคือผู้เชี่ยวชาญ Google Apps Script ด้านการจัดการข้อมูล
ฉันต้องการคำสั่ง saveData ที่จะทำงานเป็น "หลังบ้าน" สำหรับรับข้อมูลจากหน้าเว็บไปบันทึกใน Google Sheet โปรดเขียนฟังก์ชันนี้ให้ทำงานตามเงื่อนไขต่อไปนี้ทั้งหมด:
1. เป้าหมาย: บันทึกข้อมูลลงใน Google Sheet ที่มีชีตชื่อว่า "MedicationErrors"
2. ความฉลาดของชีต:
* ถ้ายังไม่มีชีตชื่อ "MedicationErrors" ให้สร้างชีตใหม่ขึ้นมาเองโดยอัตโนมัติ
* ถ้าชีตนั้นยังว่างอยู่ (เพิ่งสร้างใหม่) ให้ใส่หัวข้อตารางในแถวแรกตามลำดับนี้: `Timestamp`, `PatientType`, `ErrorCategory`, `EventDate`, `ErrorSubtype`, `Description`, `SeverityLevel`, `PatientName`, `PatientHN`
3. การจัดการข้อมูล:
* ฟังก์ชันนี้จะได้รับข้อมูลจากหน้าเว็บมาเป็นชุด (Object)
* นำข้อมูลที่ได้รับมาจัดเรียงเพื่อสร้างเป็นแถวใหม่ โดย:
* คอลัมน์ `Timestamp` ให้ใส่วันและเวลาปัจจุบันที่กดบันทึกโดยอัตโนมัติ
* คอลัมน์ `PatientName` และ `PatientHN` หากหน้าเว็บไม่ได้ส่งข้อมูลมา ให้ใส่เป็นค่าว่างไว้ ห้ามเกิด error
* นำแถวข้อมูลใหม่นี้ไปต่อท้ายข้อมูลที่มีอยู่เดิมในชีต
4. การตอบกลับ:
* เมื่อบันทึกสำเร็จ ให้ตอบกลับไปในรูปแบบ `{ status: 'success', message: 'บันทึกข้อมูลเรียบร้อยแล้ว' }`
* หากเกิดข้อผิดพลาดระหว่างการบันทึก ให้ตรวจจับและตอบกลับไปในรูปแบบ `{ status: 'error', message: '...' }` โดยให้มีข้อความอธิบายปัญหาที่เกิดขึ้นด้วย
ขอเฉพาะโค้ดของฟังก์ชัน `saveData` นี้เท่านั้น