N์CDScreen ปี 2560-64

  scpt ร้อยละการscreen แยกรายหมู่บ้าน ปี2564  คลิก

scpt NcdScreen64  คลิก
scpt NCDSCREEN64 แยกตรวจtype ปชก.@DMHT คลิก

ก่อนอื่นไปปรับให้ JHCIS เด้งDiag อัตโนมัติกันก่อน  ตามนี้

1.1 ให้ login ด้วย ADM-MDA

1.2 กำหนดค่าเริ่มต้น

1.3 Option การวินิจฉัยโรค

1.4 คลิกเลือก "วินิจฉัย Z code"  เป็นอันจบ การตั้งค่า diag auto จ้า

2.วิธีคัดกรอง NCD  อายุ 35 ปี ขึ้นไป >> GO!

2.1.เข้าหน้า บริการ 


2.2.ค้นหารายชื่อและเข้าข้อมูลเบื้องต้น คีย์ ตามหมายเลข 1,2,3,4.5และเข้า NCDScreen ที่หมายเลข 6






2.3.เติม ผลการตรวจน้ำตาล (1) และวิธีตรวจระดับน้ำตาล เช่น DTX (อดอาหาร) จากนั้น บันทึก บุหรี (2) และเครื่องดื่มอัลกอฮอล์ (3) และ บันทึก (4) แล้วก็ปิด X ออกมาได้เลยจ้า


2.4.เสร็จแล้วเข้า คัดกรองภาวะซึมเศร้า (จะคัดกรองร่วมด้วยก็ได้..หากไม่ได้คัดกรอง ก็ผ่าน..ไปที่ Diag คะ)


2.5.โรคที่คัดกรอง (1) และ ผลการคัดกรอง (2) และ ปิด X ออก



2.6. Diag ตามนี้นะค่ะ  ( Z13.1,Z13.6และ Z13.8) หากคัดกรองซึมเศร้าด้วยจะเพิ่มมาอีกตัวคือ 'Z13.3'  รวมแล้ว มี 3-4 ตัว (เดิมแจ้งไว้ 3 ตัว) และหากพบตัวอื่นเด้งมาให้พิจารณาลบออกหากไม่ได้ให้บริการจริง 

แก้ไขเพิ่มเติม ตั้งแต่ ปี 2562 เป็นต้นมา ท่านสามารถใส่รหัสโรคเรื้อรัง หรือโรคอื่นๆที่มีรหัสขึ้นต้น ด้วย A-T ร่วมกับรหัส Z11.0-13.9 (เพื่อการคัดกรอง)ได้จ้า
 แต่ทั้งนี้ให้ตรวจสอบ กฎ สนย>>>คลิกความน่าเชื่อถือ (กฎB1)

  ## ส่วนที่เหลือ....เติมตามลูกศรได้เลยจ้า



2.7.ข้อกำหนดคือ อายุ 35 ปี ขึ้นไป type 1และ 3 นะ  รวมทั้ง
ผู้ป่วย เบาหวานและความดันโลหิตสูงก็screen ได้นะจ๊ะ   (นอกนั้นไม่ต้องคีย์จ้า)

8 กรณีปัญหา  (ตามรูปด้านล่าง) หากมีการคีย์กลุ่มที่ไม่อยู่ในช่วง อายุ 35 ปี ขึ้นไป จะ มีกรอบเด้งขี้นมาเตือน ให้ ท่าน คลิก ยกเลิก แต่หากหลงไปคลิ๊ก ตกลงไปแล้ว ก็ให้ยกเลิกการคัดกรองค่ะ  ..
หมายเหตุ  หากใช้น้องๆ คีย์แล้วเผอไปเติม ตัวเลขค่าน้ำตาล  ..ก็ไม่ต้อง worri  เพราะ jhcis เขากันตายไว้ให้แล้วคือ จะไม่ส่งออกในกลุ่มที่ ต่ำกว่า 35 ลงมา (สรุปคือ ลุยได้เลย..จ้า)




3.scrpt มี 4 ตัว
 3.1 scrpt จำนวน 35 ปี ขึ้นไปทั้งหมด (ตัดผู้ป่วยเรื้อรัง,ตัดผู้ที่เสียชีวิต) ตามนี้
.............................................................
SELECT person.pid
,ctitle.titlename
,person.fname
,person.lname
,cASe when person.sex = '1' THEN 'ชาย' ELSE 'หญิง' end AS sex
,person.idcard
,getAgeYearNum(person.birth,CURDATE()) AS 'อายุปี'
,concat(substr(person.birth,9,2),'-'
,substr(person.birth,6,2),'-'
,substr(person.birth,1,4) + 543) AS วันเกิด
,house.hno AS บ้านเลขที่
,village.villno AS หมู่ที่
FROM person
LEFT JOIN ctitle ON person.prename = ctitle.titlecode
INNER JOIN house ON person.hcode = house.hcode AND house.pcucode = person.pcucodeperson
INNER JOIN village ON village.pcucode = house.pcucode AND house.villcode = village.villcode
WHERE person.pid NOT IN (select persondeath.pid FROM persondeath)
AND person.pid NOT IN (SELECT personchronic.pid FROM personchronic WHERE (personchronic.chroniccode ='I10' or
personchronic.chroniccode between 'E10' AND 'E15' ))
AND getAgeYearNum(person.birth,'2020-10-01') >= 35
AND person.typelive IN ('1','3')
ORDER BY village.villno,house.hno;
.............................................................

3.2 scrpt จำนวน 35 ปี ขึ้นไป ที่คีย์บริการแล้ว ตามนี้
.............................................................
SELECT
ncd_person_ncd_screen.pcucode,
ncd_person_ncd_screen.pid,
ncd_person_ncd_screen.`no`,
ncd_person_ncd_screen.age_year,
ncd_person_ncd_screen.screen_date,
ncd_person_ncd_screen.visitno,
GROUP_CONCAT(visitdiag.diagcode) AS diagcode
FROM
ncd_person_ncd_screen
LEFT JOIN visitdiag ON ncd_person_ncd_screen.visitno=visitdiag.visitno
WHERE age_year >= '35' AND screen_date BETWEEN '2020-10-01' AND '2021-09-30'
GROUP BY pid
ORDER BY visitdiag.dxtype ASC;

............................................................
3.3 scrpt จำนวน 35 ปี ขึ้นไป ที่ยังไม่คัดกรอง (ที่เหลือต้องตามเก็บ) ตามนี้
............................................................
SELECT person.pid
,ctitle.titlename
,person.fname
,person.lname
,cASe when person.sex = '1' THEN 'ชาย' ELSE 'หญิง' end AS sex
,person.idcard
,getAgeYearNum(person.birth,CURDATE()) AS 'อายุปี'
,concat(substr(person.birth,9,2),'-'
,substr(person.birth,6,2),'-'
,substr(person.birth,1,4) + 543) AS วันเกิด
,house.hno AS บ้านเลขที่
,village.villno AS หมู่ที่
FROM person
LEFT JOIN ctitle ON person.prename = ctitle.titlecode
INNER JOIN house ON person.hcode = house.hcode AND house.pcucode = person.pcucodeperson
INNER JOIN village ON village.pcucode = house.pcucode AND house.villcode = village.villcode
WHERE person.pid NOT IN (select persondeath.pid FROM persondeath)
AND person.pid NOT IN (SELECT personchronic.pid FROM personchronic WHERE (personchronic.chroniccode ='I10' or
personchronic.chroniccode between 'E10' AND 'E15' ))
AND getAgeYearNum(person.birth,'2019-10-01')>= '35'
AND person.typelive IN ('1','3')
AND person.pid not IN (SELECT
ncd_person_ncd_screen.pid
FROM ncd_person_ncd_screen
LEFT JOIN visitdiag ON ncd_person_ncd_screen.visitno=visitdiag.visitno
WHERE age_year >= '35' AND screen_date BETWEEN '2020-10-01' AND '2021-09-30')
ORDER BY village.villno,house.hno;
............................................................

  Scpt NcdScreen64

3.4  scpt ..NCDscreen ปี 64  (รันตัวนี้ตัวเดียวก็ได้นะจะ)..ตามนี้จ้า
...........................................................
SELECT  p.pid,ct.titlename,p.fname,p.lname,getAgeYearNum(p.birth,CURDATE())AS'age',Right(h.villcode,2)as 'moo',nc1.screen_date,pc1.DM,pc2.HT
FROM person p
LEFT JOIN ctitle ct ON p.prename = ct.titlecode
Inner join house h on p.hcode = h.hcode
LEFT JOIN 
(SELECT nc.screen_date,nc.pcucode,nc.pid
FROM ncd_person_ncd_screen nc WHERE nc.screen_date BETWEEN'2020-10-01'AND CURDATE())AS nc1 ON p.pid = nc1.pid
LEFT JOIN
(SELECT pc.pid,pc.chroniccode,case WHEN LEFT(pc.chroniccode,1) = 'e' then 'DM'ELSE '' END AS 'dm' 
FROM personchronic pc WHERE LEFT(pc.chroniccode,1) = 'e') AS pc1 ON p.pid = pc1.pid
LEFT JOIN
(SELECT pc2.pid,pc2.chroniccode,case WHEN LEFT(pc2.chroniccode,1) = 'i' then 'HT'ELSE '' END AS 'HT' 
FROM personchronic pc2 WHERE LEFT(pc2.chroniccode,1) = 'i') AS pc2 ON p.pid = pc2.pid
WHERE getAgeYearNum(p.birth,CURDATE())>='35'
AND p.typelive IN ('1','3') and p.pid not in (SELECT pd.pid FROM persondeath pd)
and (pc1.Dm is null or pc2.Ht is null)#ตัดผู้ป่วยทั้ง DM@HTออก
GROUP BY p.pid;
...........................................................
หมายเหตุ: scpt ข้อ 3.4 นี้ จะได้ รายชื่อกลุ่มเป้าหมาย 35 ปีทั้งหมดที่ต้อง screen NCDปี 2563 ทั้งนี้ตัดคนที่ไม่จำเป็นต้องคัดกรองออก คือ ผู้ป่วยที่เป็นทั้งDM@HT (ทั้ง 2โรค) ..แต่ยังคงไว้คือผู้ป่วยที่เป็น เพียงโรคเดียวเช่น DMหรือ HT อย่างเดียวไว้......ประมาณนี้
EX.
เพิ่มเติม scpt 3.4

        ** ท่าน สามารถ ตรวจสอบกลุ่มเป้าหมายได้อีก โดยการเปลี่ยนที่บรรทัด "and (pc1.Dm is null or pc2.Ht is null)#ตัดผู้ป่วยทั้ง DM@HTออก"
ดังนี้ 
      3.4.1  หาคนที่เป็น DM@HTแต่ดั๊นไปหลง screen ด้วย and (nc1.screen_date is not null and pc1.Dm is not null and pc2.Ht is not null)
      3.4.2 หาคนที่เป็นทั้งDM@HT ซึ่งไม่ต้องนำมา screen ด้วย and pc1.Dm is not null and pc2.Ht is not null 
      3.4.3 หาเฉพาะคนที่ยังไม่screen  ด้วย and (pc1.Dm is null or pc2.Ht is null) and nc1.screen_date is null
     3.4.4 หรือหาคนที่screenแล้ว ด้วย and nc1.screen_date is not null
...........................................................................................................................................


scpt เพิ่มเติม  ปี2564
1.ร้อยละการscreen แยกรายหมู่บ้าน
...........................
SELECT  P.pcucodeperson,Right(h.villcode,2)as 'moo',COUNT(DISTINCT p.pid)AS'ทั้งหมด',
sum(CASE WHEN nc1.screen_date IS NULL THEN 1 ELSE '' END) AS 'เหลือยังไม่screen'
,ROUND((COUNT(DISTINCT p.pid)-sum(CASE WHEN nc1.screen_date IS NULL THEN 1 ELSE '' END))*100 / COUNT(DISTINCT p.pid),2) AS 'ร้อยละscreenแล้ว'
FROM person p
LEFT JOIN ctitle ct ON p.prename = ct.titlecode
Inner join house h on p.hcode = h.hcode
LEFT JOIN 
(SELECT nc.screen_date,nc.pcucode,nc.pid
FROM ncd_person_ncd_screen nc WHERE nc.screen_date BETWEEN'2020-10-01'AND CURDATE())AS nc1 ON p.pid = nc1.pid
LEFT JOIN
(SELECT pc.pid,pc.chroniccode,case WHEN LEFT(pc.chroniccode,1) = 'e' then 'DM'ELSE '' END AS 'dm' 
FROM personchronic pc WHERE LEFT(pc.chroniccode,1) = 'e') AS pc1 ON p.pid = pc1.pid
LEFT JOIN
(SELECT pc2.pid,pc2.chroniccode,case WHEN LEFT(pc2.chroniccode,1) = 'i' then 'HT'ELSE '' END AS 'HT' 
FROM personchronic pc2 WHERE LEFT(pc2.chroniccode,1) = 'i') AS pc2 ON p.pid = pc2.pid
WHERE getAgeYearNum(p.birth,CURDATE())>= '35'
AND p.typelive IN ('1','3') and p.pid not in (SELECT pd.pid FROM persondeath pd)
and (pc1.Dm is null or pc2.Ht is null)#ตัดผู้ป่วยทั้ง DM@HTออก
GROUP BY h.villcode
ORDER BY moo;
...........................
ex.


*****ปัญหาอื่นๆคือ กลุ่มส่งสัยป่วยที่คีย์แล้ว จะกลับไปดูรายชื่อได้ที่ไหน อิอิ  อยากรู้คลิก฿฿ หากลุมสงสัยป่วย฿฿

................................แล้วพบกันใหม่..จ้า...............................


HOME


4 ความคิดเห็น:

Unknown กล่าวว่า...

ขอ Script เป้าหมายและผลการคัดกรอง 2Q อายุ 15 ปีขึ้นไป พร้อมรายชื่อ และ Script ที่ยังไม่ได้คัดกรอง 2Q พร้อมรายชื่อ ขอบคุณครับ

บ้านโพธิ์ กล่าวว่า...

ให้ใช้ scpt "3.4 scpt ..NCDscreen ปี 63 (รันตัวนี้ตัวเดียวก็ได้นะจะ)..ตามนี้จ้า"
ที่บรรทัด WHERE getAgeYearNum(p.birth,CURDATE())>='35'
เปลี่ยนเป็นช่วงอายุที่ต้องการเช่น ตัวอย่างอายุ 15-34 ปี ให้เป็น ดังนี้
WHERE getAgeYearNum(p.birth,CURDATE()) between '15' and '34'

Unknown กล่าวว่า...

สอบถามหน่อยครับ ถ้าเอาเฉพาะสัญชาติไทย ต้องเขียนเพิ่มยังไงครับ เพราะแถวที่ผมอยู่ มีบัตร10ปี บัตร5ปีที่ไม่ใช่สัญชาติไทย อยู่ในทะเบียนบ้านด้วยครับ

บ้านโพธิ์ กล่าวว่า...

ให้ใช้ scpt "3.4 scpt ..NCDscreen ปี 63 (รันตัวนี้ตัวเดียวก็ได้นะจะ)..ตามนี้จ้า"
.ใต้บรรทัด WHERE getAgeYearNum(p.birth,CURDATE())>='35'
ให้เพิ่มอีก 1 แถว ตามนี้ เช่น
1.หาเฉพาะคนไทย >> and p.nation = 99
2.หาเฉพาะเชื้อชาติไทย >> and p.origin = 99
3.หาเฉพาะคนสัญชาติอื่น >> and p.nation != 99
4.หาเฉพาะคนเชื้อชาติอื่น >> and p.origin != 99

https://www.blogs

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