สำหรับประชาชนคนไทยแล้วคำว่า “ในเวลาราชการ” นี่น่าจะคุ้นเคยกันเป็นอย่างดี เรามักเห็นคำนี้ติดตามหน่วยงานราชการ แล้วคำว่าในเวลาราชการนี่มันยังไง เอาแบบกำปั้นทุบดิน ก็คือวันที่ไม่ใช่วันหยุดราชการนั่นแหล่ะ
แล้ววันหยุดราชการนี่เราก็เริ่มยึดตาม “ประกาศกำหนดวันหยุดราชการนักขัตฤกษ์ พระพุทธศักราช ๒๔๕๖” ซึ่งพระบาทสมเด็จพระมงกุฎเกล้าเจ้าอยู่หัว รัชกาลที่ ๖ ทรงออกประกาศดังกล่าว ถ้าใครจะศึกษารายละเอียดบล็อกนี้ก็อธิบายไว้เป็นอย่างดี
ทีนี้ตัวที่เกี่ยวข้องกับโรงพยาบาลยังไงบ้าง หลาย ๆ หน่วยงานที่มีระบบคอมพิวเตอร์ไว้ทำงานอย่างเช่นโรงพยาบาล หน่วยบริการหรืออื่น ๆ นี่ก็มักมีตารางวันหยุดในปีนั้น ๆ สำหรับการทำงาน ซึ่งก็จะเป็นตาราง ตารางนึงตามแต่ละเวนเดอร์ (Vendor) สร้างขึ้นรายละเอียดแตกต่างกันบ้าง แต่ส่วนใหญ่แล้ววัตถุประสงค์ก็เพื่อระบุว่าวันใดคือวันหยุดราชการนั่นแหล่ะ ปกติหน้าที่อัพเดตข้อมูลนี้ก็จะเป็นของผู้ดูแลระบบของหน่วยบริการ ข้อมูลพวกนี้ส่วนใหญ่ก็มาจาก ประกาศทางราชการหรือเว็บทั่ว ๆ ไป เช่น วิกิพีเดีย
และอีกเว็บไซต์ก็ myhora ซึ่งมีบริการ iCal บริการ
จะเห็นได้ว่ามีไฟล์ CSV (Comma-separated values) ให้เราได้ใช้ด้วย งั้นเราก็มาปรับปรุงวันหยุดราชการด้วยไฟล์ตัวนี้กัน
- เริ่มต้นก็ดาวน์โหลดมาซะ
wget -O th_holiday.csv http://www.myhora.com/calendar/ical/holiday.aspx?2561.csvwget -O th_holiday.csv http://www.myhora.com/calendar/ical/holiday.aspx?2561.csv
wget -O th_holiday.csv http://www.myhora.com/calendar/ical/holiday.aspx?2561.csv
หน้าตาข้อมูลไฟล์คร่าว ๆ ก็ประมาณนี้
- นำเข้าข้อมูลข้างต้นลงในฐานข้อมูลของเราด้วยคำสั่ง LOAD DATA INFILE
LOAD DATA INFILE
(สร้างตารางชั่วคราว th_holiday ไว้รอรับด้วย )DROP TABLE IF EXISTS th_holiday;CREATE TABLE IF NOT EXISTS th_holiday(Subject VARCHAR(255) NULL,Start_Date DATE NOT NULL,Start_Time TIME NULL,End_Date DATE NULL,End_Time TIME NULL,All_day_event VARCHAR(4) NOT NULL,Description VARCHAR(255) NOT NULL,Show_time_as INTEGER NOT NULL,Location VARCHAR(30));TRUNCATE th_holiday;LOAD DATA LOCAL INFILE 'th_holiday.csv'INTO TABLE th_holidayFIELDS TERMINATED BY ','ENCLOSED BY '"'ESCAPED BY '"'LINES TERMINATED BY '\r\n'(`Subject`, @start_date, `Start_Time`, `End_Date`, `End_Time`, `All_day_event`, `Description`, `Show_time_as`, `Location`)SET start_date = STR_TO_DATE(@start_date, '%d/%m/%Y');DROP TABLE IF EXISTS th_holiday; CREATE TABLE IF NOT EXISTS th_holiday( Subject VARCHAR(255) NULL ,Start_Date DATE NOT NULL ,Start_Time TIME NULL ,End_Date DATE NULL ,End_Time TIME NULL ,All_day_event VARCHAR(4) NOT NULL ,Description VARCHAR(255) NOT NULL ,Show_time_as INTEGER NOT NULL ,Location VARCHAR(30) ); TRUNCATE th_holiday; LOAD DATA LOCAL INFILE 'th_holiday.csv' INTO TABLE th_holiday FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' (`Subject`, @start_date, `Start_Time`, `End_Date`, `End_Time`, `All_day_event`, `Description`, `Show_time_as`, `Location`) SET start_date = STR_TO_DATE(@start_date, '%d/%m/%Y');DROP TABLE IF EXISTS th_holiday; CREATE TABLE IF NOT EXISTS th_holiday( Subject VARCHAR(255) NULL ,Start_Date DATE NOT NULL ,Start_Time TIME NULL ,End_Date DATE NULL ,End_Time TIME NULL ,All_day_event VARCHAR(4) NOT NULL ,Description VARCHAR(255) NOT NULL ,Show_time_as INTEGER NOT NULL ,Location VARCHAR(30) ); TRUNCATE th_holiday; LOAD DATA LOCAL INFILE 'th_holiday.csv' INTO TABLE th_holiday FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' (`Subject`, @start_date, `Start_Time`, `End_Date`, `End_Time`, `All_day_event`, `Description`, `Show_time_as`, `Location`) SET start_date = STR_TO_DATE(@start_date, '%d/%m/%Y');
- เป็นอันเสร็จสิ้น ทีนี้ก็นำข้อมูลนี้ไปปรับปรุงในตารางของแต่ละ HIS