การหากลุ่มสงสัยป่วย DM และ HT หลังจาก คัดกรอง NCD Screen
เพื่อปรับเป็นกลุ่ม( ปกติ เสี่ยง ป่วย)
เกณฑ์ที่ใช้แยกกลุ่มที่ผ่านการคัดกรอง ดังนี้
DM
- กลุ่มปกติ DM ระดับนำ้ตาล < = 99
- กลุ่ม Pre DM ระดับน้ำตาล 100 - 125
- กลุ่ม สงสัยป่วย DM ระดับน้ำตาล > = 126
- กลุ่มปกติ HT ระดับความดัน SIS <= 119 และ DIS <= 79
- กลุ่ม Pre HT ระดับความดัน SIS 120-139 และ DIS 80-89
- กลุ่ม สงสัยป่วย HT ระดับความดัน SIS >= 140 และ DIS >= 90
ปัญหา คือ
- กลุ่ม สงสัยป่วยทั้งDM และ HT ต้องกลับมาคัดกรองซ้ำและในบางคนที่มีค่าเกินเกณฑ์ที่กำหนดมาก(คาดว่าจะป่วย) อาจจำเป็นต้อง refer พบแพทย์เพื่อยืนยันอีกรอบ
2.scriptหากลุ่มสงสัยป่วย DM ประกอบด้วย
2.1.scpt ชุดที่1 สร้างตารางฐานข้อมูล dm (ncs1,ncs2,ncs3)
2.2.scpt ชุดที่2 หากลุ่มสงสัยป่วย DM 2.1 "scpt ชุดที่ 1"....สร้างตารางฐานข้อมูล dm ตามนี้ (รันตัวนี้ก่อนนะ)
หมายเหตุ : ขณะที่สั่งรัน จะไม่มีตารางอะไรเกิดขึ้นนะค่ะ และรันแล้ว ก็ไม่ต้องปิด ..จากนั้นก็ รันscpt ตัวต่อไปได้เลยจ้า
........................................................................................
DROP TABLE IF EXISTS ncs1;
DROP TABLE IF EXISTS ncs2;
DROP TABLE IF EXISTS ncs3;
CREATE TABLE ncs1 AS
(SELECT
ncs.pcucode,
ncs.pid,
ncs.screen_date,
ncs.bsl
FROM ncd_person_ncd_screen ncs
WHERE ncs.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND ncs.hbp_s1<'126'
GROUP BY ncs.pid);
CREATE TABLE ncs2 AS
(SELECT
ncs.pcucode,
ncs.pid,
ncs.screen_date,
ncs.bsl
FROM ncd_person_ncd_screen ncs
WHERE ncs.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND ncs.bsl>='126'
GROUP BY ncs.pid);
CREATE TABLE ncs3 AS
(SELECT
person.pcucodeperson AS สถานบริการ,
person.pid,
CONCAT(ctitle.titlename) AS `คำนำหน้า`,
person.fname AS `ชื่อ`,
person.lname AS `สกุล`,
ncs1.screen_date,
ncs1.bsl,
house.hno as บ้านเลขที่,
village.villno AS หมู่
FROM
person
INNER JOIN ncd_person_ncd_screen ncs3 ON person.pid = ncs3.pid
LEFT JOIN ncs1 ON person.pid = ncs1.pid
LEFT JOIN ncs2 ON person.pid = ncs2.pid
INNER JOIN ctitle ON ctitle.titlecode = person.prename
INNER JOIN house ON person.hcode = house.hcode and person.pcucodeperson=house.pcucode
INNER JOIN village ON house.villcode = village.villcode and house.pcucode = village.pcucode
WHERE ncs1.pid = ncs2.pid
AND ncs3.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND DATE(ncs1.screen_date)>= DATE(ncs2.screen_date)
GROUP BY person.pid);
.................................................................................................................................
2.2 script หากลุ่ม สงสัยป่วย DM
.......................................................................................
SELECT
person.pcucodeperson AS สถานบริการ,
person.pid,
CONCAT(ctitle.titlename) AS `คำนำหน้า`,
person.fname AS `ชื่อ`,
person.lname AS `สกุล`,
ncs4.screen_date,
ncs4.bsl,
CASE WHEN ncs4.pid = personchronic.pid AND personchronic.chroniccode LIKE 'e%'
THEN 'ปรับเป็นผู้ป่วยเรื้อรังแล้ว' ELSE 'สงสัยป่วยที่เหลือ' END AS 'สถานะผู้สงสัยป่วย',
personchronic.chroniccode,
house.hno as บ้านเลขที่,
village.villno AS หมู่
FROM
person
INNER JOIN ncd_person_ncd_screen ncs4 ON person.pid = ncs4.pid
INNER JOIN ctitle ON ctitle.titlecode = person.prename
INNER JOIN house ON person.hcode = house.hcode and person.pcucodeperson=house.pcucode
INNER JOIN village ON house.villcode = village.villcode and house.pcucode = village.pcucode
LEFT JOIN personchronic ON ncs4.pid = personchronic.pid
WHERE ncs4.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND ncs4.pid NOT IN (SELECT ncs3.pid FROM ncs3)
AND ncs4.bsl>='126'
GROUP BY person.pid
ORDER BY สถานะผู้สงสัยป่วย DESC,village.villno;
.................................................................................................................................
จะได้ "กลุ่มสงสัยป่วยDM" และ "กลุ่มที่ปรับเป็นผู้ป่วยเรื้อรังแล้ว".....ประมาณนี้นะ
................................................................................................................................
3.scriptหากลุ่มสงสัยป่วย HT ประกอบด้วย
1. scpt ชุดที่3 สร้างตารางฐานข้อมูล ht (nps1,nps2,nps3)
2. scpt ชุดที่4 หากลุ่มสงสัยป่วย HT
.......................................................................................
3.1 "scpt ชุดที่ 3"....สร้างตารางฐานข้อมูล ht ตามนี้ เหมือนเดิมนะต้องรันตัวนี้ก่อน..
หมายเหตุ : ขณะที่สั่งรัน จะไม่มีตารางอะไรเกิดขึ้นนะ และรันแล้ว ก็ไม่ต้องปิดนะค่ะ ..รันscpt ตัวต่อไปได้เลยจ้า
............................................................................
DROP TABLE IF EXISTS nps1;
DROP TABLE IF EXISTS nps2;
DROP TABLE IF EXISTS nps3;
CREATE TABLE nps1 AS
(SELECT
nps.pcucode,
nps.pid,
nps.screen_date,
nps.hbp_s1,
nps.hbp_d1
FROM ncd_person_ncd_screen nps
WHERE nps.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND nps.hbp_s1< '140' AND nps.hbp_d1 < '90'
GROUP BY nps.pid);
CREATE TABLE nps2 AS
(SELECT
nps.pcucode,
nps.pid,
nps.screen_date,
nps.hbp_s1,
nps.hbp_d1
FROM ncd_person_ncd_screen nps
WHERE nps.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND (nps.hbp_s1>='140'OR nps.hbp_d1>='90')
GROUP BY nps.pid);
CREATE TABLE nps3 AS
(SELECT
person.pcucodeperson AS สถานบริการ,
person.pid,
CONCAT(ctitle.titlename) AS `คำนำหน้า`,
person.fname AS `ชื่อ`,
person.lname AS `สกุล`,
nps1.screen_date,
nps1.hbp_s1,
nps1.hbp_d1,
house.hno as บ้านเลขที่,
village.villno AS หมู่
FROM
person
INNER JOIN ncd_person_ncd_screen nps3 ON person.pid = nps3.pid
LEFT JOIN nps1 ON person.pid = nps1.pid
LEFT JOIN nps2 ON person.pid = nps2.pid
INNER JOIN ctitle ON ctitle.titlecode = person.prename
INNER JOIN house ON person.hcode = house.hcode and person.pcucodeperson=house.pcucode
INNER JOIN village ON house.villcode = village.villcode and house.pcucode = village.pcucode
WHERE nps1.pid = nps2.pid
AND nps3.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND DATE(nps1.screen_date)>= DATE(nps2.screen_date)
GROUP BY person.pid);
...............................................................................................................................
3.2 " scriptชุดที่ 4" หากลุ่ม สงสัยป่วย HT
....................................................................................
SELECT
person.pcucodeperson AS สถานบริการ,
person.pid,
CONCAT(ctitle.titlename) AS `คำนำหน้า`,
person.fname AS `ชื่อ`,
person.lname AS `สกุล`,
nps4.screen_date,
nps4.hbp_s1,
nps4.hbp_d1,
CASE WHEN nps4.pid = personchronic.pid AND personchronic.chroniccode LIKE 'i%'
THEN 'ปรับเป็นผู้ป่วยเรื้อรังแล้ว' ELSE 'สงสัยป่วยที่เหลือ' END AS 'สถานะผู้สงสัยป่วย',
personchronic.chroniccode,
nps4.bsl,
house.hno as บ้านเลขที่,
village.villno AS หมู่
FROM
person
INNER JOIN ncd_person_ncd_screen nps4 ON person.pid = nps4.pid
INNER JOIN ctitle ON ctitle.titlecode = person.prename
INNER JOIN house ON person.hcode = house.hcode and person.pcucodeperson=house.pcucode
INNER JOIN village ON house.villcode = village.villcode and house.pcucode = village.pcucode
LEFT JOIN personchronic ON nps4.pid = personchronic.pid
WHERE nps4.screen_date BETWEEN'2019-10-01'AND'2020-09-30'
AND nps4.pid NOT IN (SELECT nps3.pid FROM nps3)
AND (nps4.hbp_s1>='140'OR nps4.hbp_d1>='90')
GROUP BY person.pid
ORDER BY สถานะผู้สงสัยป่วย DESC,village.villno;
..............................................................................................................................
จะได้ "กลุ่มสงสัยป่วยHT" และ "กลุ่มที่ปรับเป็นผู้ป่วยเรื้อรังแล้ว".....ประมาณนี้นะ
4.หลังปิดออกจากscpt ทั้งหมดแล้ว ขอเพิ่มเติ อีกนิดเพื่อลดไฟล์ขยะที่ตกค้างจากการรัน แนะนำให้รัน scpt ชุดที่4 ดังนี้
...............................................................
DROP TABLE ncs1,ncs2,ncs3,nps1,nps2,nps3;
.....................................................................................................................................
รันเสร็จก็ปิดออกได้เลยจ้า
ไม่มีความคิดเห็น:
แสดงความคิดเห็น