สงสัยป่วย DM & Pre HT


การหากลุ่มสงสัยป่วย DM และ HT หลังจาก คัดกรอง NCD Screen
เพื่อปรับเป็นกลุ่ม( ปกติ เสี่ยง ป่วย)


    เกณฑ์ที่ใช้แยกกลุ่มที่ผ่านการคัดกรอง ดังนี้
    DM
    • กลุ่มปกติ DM  ระดับนำ้ตาล < = 99
    • กลุ่ม Pre DM ระดับน้ำตาล 100 - 125
    • กลุ่ม สงสัยป่วย DM ระดับน้ำตาล > = 126 
    HT
    • กลุ่มปกติ 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;
      ..................................................................................................................................... 
      รันเสร็จก็ปิดออกได้เลยจ้า

       
      ............................เป็นอันจบ...และแล้วก็หากลุ่มสงสัยป่วยDM @ HT ได้ซะที...บ๊าย........................

      ไม่มีความคิดเห็น:

      https://www.blogs

       kllgnsgkj[jtlm'oahd bfldkb'pdojgaojp mfigjdo;sjgaij misjgo;sjagijwo;