ข้อมูลถูกส่งเข้า PDC จริงหรือไม่ เช็คยังไง

เมื่อวันที่ 18 พ.ย. ที่ผ่านมา จากการประชุมคณะทำงาน IT สสจ.เชียงใหม่ พบว่าในฐานข้อมูล PDC ของแต่ละโซนยังมีการส่งข้อมูลที่ไม่เป็นปัจจุบัน แม้ว่าในหน้าเว็บ back office ของ PDC จะบอกวันเวลาที่เป็นปัจจุบันแล้วก็ตาม แต่วิธีการเช็ค IT สสจ. แสดงให้ดูในวันนั้น เป็นวิธีตรวจสอบในฐานข้อมูล แฟ้ม service โดยดูจากฟิลด์ DATE_SERV แล้วเทียบกับวันที่ปัจจุบันว่าล่าช้าไปกี่วัน ก็พบว่ามีหลายแห่งข้อมูลแฟ้ม service ส่งเข้ามาล่าช้าเป็นเดือน ๆ

ผมเขียน procedure ขึ้นมาเพื่อดูว่าสถานบริการไหนขาดส่งหรือส่งล่าช้าไปกี่วัน ใครจะลองทำตามผมก็ได้นะครับ ตามนี้เลย

ใช้โปรแกรม Navicat ไปที่ฐาน PDC คลิกขวาสร้าง “New Function”


เลือก Procedure > Finish



วางโค้ดนี้ลงไป แล้ว Save ชื่อ procedure ว่า “sp_dis_chk_date_f43service” แล้วกด Run



BEGIN

DECLARE i INT DEFAULT (SELECT COUNT(*) FROM mas_client);

DROP TABLE IF EXISTS dis_chk_date_f43service;

CREATE TABLE `dis_chk_date_f43service` (
  `HOSPCODE` varchar(5) DEFAULT NULL,
  `HOSPNAME` varchar(255) DEFAULT NULL,
  `SEQ` varchar(15) DEFAULT NULL,
  `PID` varchar(15) DEFAULT NULL,
  `CID` varchar(15) DEFAULT NULL,
  `DATE_SERV` date DEFAULT NULL,
  `NO_UPDATE` int(11) DEFAULT NULL,
  `D_UPDATE` datetime DEFAULT NULL,     
  `CHECK_DATE` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  WHILE i > 0 DO
       INSERT INTO dis_chk_date_f43service
    SELECT * FROM (SELECT s.HOSPCODE,c.HOSPNAME,s.SEQ,s.PID,s.CID,s.DATE_SERV,DATEDIFF(CURDATE(),DATE_SERV) AS 'NO_UPDATE'
,s.D_UPDATE,DATE_FORMAT(CURTIME(),'%Y-%m-%d %H:%i:%s') AS 'CHECK_DATE' from f43_service s
LEFT OUTER JOIN mas_client c ON c.HOSPCODE = s.HOSPCODE WHERE s.HOSPCODE = (SELECT HOSPCODE FROM mas_client LIMIT i,1) ORDER BY DATE_SERV DESC LIMIT 10) AS a;

    SET i = i - 1;
  END WHILE;

END


เสร็จแล้วข้อมูลจะอยู่ในตาราง dis_chk_dateserv  (SELECT * FROM dis_chk_date_f43service)