บล็อคของนายปองพล ธรรมคง โรงพยาบาลส่งเสริมสุขภาพตำบลหนองหัวช้าง อำเภอกันทรารมย์ จังหวัดศรีสะเกษ .........งานเทคโนโลยีสารสนเทศ (IT) สสอ.กันทรารมย์ จ.ศรีสะเกษ
หนัง
วันพฤหัสบดีที่ 19 ธันวาคม พ.ศ. 2556
ปรับปรุงสิทธิ์ใน jhcis ด้วยไฟล์จาก ucsearch client
#ลบสิทธิ์เดิมในตาราง person ทิ้งทั้งหมดก่อน
UPDATE person SET
person.rightcode = NULL,
person.rightno = NULL,
person.hosmain = NULL,
person.hossub = NULL,
person.dateregis = NULL,
person.datestart = NULL,
person.dateexpire = NULL;
#เอาลักษณะสิทธิ์อ้างอิงที่รับจาก สป.สชเพิ่ิมเข้าในตารางสิทธิ์มาเพราะถ้ามีใครมีสิทธิิ์ที่ไม่มีในรายการอ้างอิง การปรับปรุงสิทธิ์จะล้มเหลวทั้งหมด
INSERT INTO `cright` (rightcode, rightname)
SELECT Field1, Field2 FROM `refright`
WHERE NOT EXISTS
(SELECT * FROM `cright` WHERE cright.rightcode=refright.Field1);
#เอาสิทธิ์ที่ได้รับจริงแต่ไม่มีในตารางลักษณะสิทธิ์เพิ่มเข้าในตารางสิทธิ์ เพราะถ้ามีใครมีสิทธิิ์ที่ไม่มีในรายการอ้างอิง การปรับปรุงสิทธิ์จะล้มเหลวทั้งหมด
INSERT INTO `cright` (rightcode, rightname)
SELECT givedright.SUBINSCL,givedright.SUBINSCL_NAMEFROM
from(SELECT DISTINCT `right-nhso`.SUBINSCL,
`right-nhso`.SUBINSCL_NAMEFROM
`right-nhso`) AS givedright
WHERE NOT EXISTS
(SELECT * FROM `cright` WHERE cright.rightcode=givedright.SUBINSCL);
#ปรับปรุงคำบรรยายสิทธิ์ให้ตรงกับคำบรรยายในตาราง refRight
UPDATE cright , refright
SET
cright.rightname = refright.Field2
WHERE
cright.rightcode = refright.Field1;
#สร้้างตาราง right-nhso-mod เพื่อสร้างสิทธิ์ย่อย (subinscl) ให้้กับสิทธิ์หลัก ( maininscl ) ที่ไม่มีสิทธิ์ย่อย
DROP TABLE IF EXISTS `right-nhso-mod`;
CREATE TABLE `right-nhso-mod` SELECT `right-nhso`.* FROM `right-nhso`;
UPDATE `right-nhso-mod`, `right-nhso`
SET
`right-nhso-mod`.SUBINSCL = "S1"
WHERE
`right-nhso-mod`.MAININSCL = "SSS"
AND `right-nhso-mod`.SUBINSCL IS NULL;
UPDATE `right-nhso-mod`
SET
`right-nhso-mod`.SUBINSCL = "12"
WHERE
`right-nhso-mod`.MAININSCL = "VSS"
AND `right-nhso-mod`.SUBINSCL IS NULL;
UPDATE `right-nhso-mod`
SET
`right-nhso-mod`.SUBINSCL = "25"
WHERE
`right-nhso-mod`.MAININSCL = "SSI"
AND `right-nhso-mod`.SUBINSCL IS NULL;
UPDATE `right-nhso-mod`
SET
`right-nhso-mod`.SUBINSCL = "51"
WHERE
`right-nhso-mod`.MAININSCL = "NRD"
AND `right-nhso-mod`.SUBINSCL IS NULL;
UPDATE `right-nhso-mod`
SET
`right-nhso-mod`.SUBINSCL = "O1"
WHERE
`right-nhso-mod`.MAININSCL = 'OFC'
AND `right-nhso-mod`.SUBINSCL IS NULL;
#ปรับปรุงสิทธิ์บุคคลในตาราง person
UPDATE person , `right-nhso-mod`
SET
person.rightcode = `right-nhso-mod`.SUBINSCL,
person.rightno = `right-nhso-mod`.CARD_ID,
person.hosmain = `right-nhso-mod`.HMAIN,
person.hossub = `right-nhso-mod`.HSUB,
person.datestart = `right-nhso-mod`.STARTDATE,
person.dateexpire = `right-nhso-mod`.EXPDATE
WHERE
person.idcard = `right-nhso-mod`.`PERSON_ID`;
#สร้างตาราง __tmpInscl จากค่า rightcode ที่มีในตาราง visit ไว้อ้างอิงว่าลบไม่ได้ (มันไม่ยอมให้ลบ)
DROP TABLE IF EXISTS `__tmpinscl`;
CREATE TABLE `__tmpinscl` SELECT DISTINCT visit.rightcode as rightcode FROM visit;
#นำค่าจากตาราง refRight ซึ่งนำสิทธิ์จาก nhso มาใส่ในตาราง __tmpInscl (สิทธิ์มาตรฐานล่าสุด จะลบทำไม)
INSERT INTO `__tmpinscl` (rightcode)
SELECT DISTINCT Field1 FROM `refright`
WHERE NOT EXISTS
(SELECT * FROM `__tmpinscl` WHERE `__tmpinscl`.`rightcode` = refright.Field1);
#ลบสิทธิ์ที่เกินจำเป็น (ไม่มีในตาราง __tmpInscl) ออกจากตาราง cright
DELETE cright FROM cright
LEFT JOIN `__tmpinscl` ON `__tmpinscl`.rightcode = cright.rightcode
WHERE `__tmpinscl`.rightcode IS NULL;
#ลบตาราง __tmpInscl ทิ้งเพราะไม่ใช้แล้ว
DROP TABLE IF EXISTS `__tmpinscl`;