จัดการปัญหา ANC-JHCIS

จัดการปัญหา ANC 
1.ANC ก่อน 12 wk
2.ANC  5 ครั้ง คุณภาพ
3.มารดาหลังคลอด 3 ครั้ง ตามเกณฑ์
4.ANC ลืมจ่ายยาเสริมไอโอดีน
5.ANC แล้วลืมทำคลอด
6.ANC ที่อายุต่ำกว่า 20 ปี
7.ปัญหา ANC ที่พบบ่อย
............................................................................................................................
1.ANC ก่อน 12 wkscpt ชุดที่ 1 "ANC ก่อน 12 wk หรือ เกิน 12wk"
.................................................................
 SELECT va.pid,
ctitle.titlename,
p.fname,
p.lname,
p.idcard,
timestampdiff(year,p.birth,va.datecheck) AS 'อายุ',
house.hno as 'บ้านเลขที่',
village.villno AS หมู่ ,
va.pregno as 'ครรภ์ที่',
va.pregage as 'อายุครรภ์',
va.datecheck as 'วันฝากครรภ์ครั้งแรก',
COUNT(va.pid) AS 'จำนวนANC',
IF(va.pregage<=12,'ก่อน12','เกิน12') AS 'ผ่าน12wk'
FROM person p
INNER JOIN ctitle ON p.prename = ctitle.titlecode
INNER JOIN visitanc va ON va.pid = p.pid AND p.pcucodeperson = va.pcucodeperson
INNER JOIN house ON p.pcucodeperson = house.pcucode AND p.hcode = house.hcode
INNER JOIN village ON house.pcucode = village.pcucode AND house.villcode = village.villcode
WHERE va.ancno=1 AND va.datecheck BETWEEN '2015-04-01' AND CURDATE()
AND right(house.villcode,2)!='00'
GROUP BY va.pid,va.pregno
ORDER BY village.villno,va.pid,va.pregage ASC;
.......................................................................
 จะได้ดังนี้

หมายเหตุ: ข้อมูลตั้งแต่ 2015-04-01 ถึงปัจจุบัน.....หากต้องการดูข้อมูลช่วงอื่นๆสามารถเปลี่ยนได้ ที่ตำแหน่ง BETWEEN '2015-04-01' AND CURDATE()
....................................................................//////.................................................................

2.ANC 5 ครั้งคุณภาพ
scpt ชุดที่ 2 "ANC 5 ครั้งคุณภาพ"
......................................................................
set @START = '2015-04-01' ;#ใส่วันที่เริ่มตัน
set @end = '2016-09-30';#ใส่วันที่สิ้นสุด
SELECT p.pid,
concat(p.prename,' ',p.fname,' ',p.lname) as personname,
p.idcard,timestampdiff(year,p.birth,vp.lmp) AS age,
p.hnomoi,p.villno AS หมู่ ,vp.lmp,vp.edc,t.datedeliver AS วันคลอด,t.pregno,
t1.pregage AS ANC1_p_age,t1.datecheck AS ANCครั้งที่1,
t2.pregage AS ANC2_p_gag,t2.datecheck AS ANCครั้งที่2,
t3.pregage AS ANC3_p_gag,t3.datecheck AS ANCครั้งที่3,
t4.pregage AS ANC4_p_gag,t4.datecheck AS ANCครั้งที่4,
t5.pregage AS ANC5_p_gag,t5.datecheck AS ANCครั้งที่5
FROM
(SELECT * FROM visitancdeliver v WHERE v.datedeliver BETWEEN @START AND @end ORDER BY v.datedeliver ) t
LEFT JOIN visitancpregnancy vp ON vp.pcucodeperson=t.pcucodeperson AND vp.pid=t.pid AND vp.pregno=t.pregno
INNER JOIN (SELECT ps.*,village.villno FROM person ps
INNER JOIN house ON ps.pcucodeperson = house.pcucode AND ps.hcode = house.hcode
INNER JOIN village ON house.pcucode = village.pcucode AND house.villcode = village.villcode where right(house.villcode,2)!='00') p ON p.pid=t.pid AND p.pcucodeperson=t.pcucodeperson
LEFT JOIN (SELECT * FROM visitanc WHERE pregage<=12 GROUP BY pid,pregno) t1 ON t1.pid=t.pid AND t1.pregno=t.pregno
LEFT JOIN (SELECT * FROM visitanc WHERE pregage BETWEEN 18 AND 20 GROUP BY pid,pregno) t2 ON t2.pid=t.pid AND t2.pregno=t.pregno
LEFT JOIN (SELECT * FROM visitanc WHERE pregage BETWEEN 24 AND 28 GROUP BY pid,pregno) t3 ON t3.pid=t.pid AND t3.pregno=t.pregno
LEFT JOIN (SELECT * FROM visitanc WHERE pregage BETWEEN 30 AND 34 GROUP BY pid,pregno) t4 ON t4.pid=t.pid AND t4.pregno=t.pregno
LEFT JOIN (SELECT * FROM visitanc WHERE pregage BETWEEN 36 AND 40 GROUP BY pid,pregno) t5 ON t5.pid=t.pid AND t5.pregno=t.pregno
ORDER BY t.datedeliver DESC;
............................................................
สามารถตรวจสอบได้ทั้ง LMP EDC ครรภ์ที่ และ 5 ครั้งคุณภาพ ครบหรือไม่ ดังนี้

...............................................................//////....................................................................
3.มารดาหลังคลอด 3 ครั้ง ตามเกณฑ์
 scpt ชุดที่ 3 "มารดาหลังคลอด 3 ครั้ง ตามเกณฑ์"
....................................................................
SELECT
vmc.pcucodeperson,
vmc.pid,
vmc.pregno AS 'ครรภ์ที่',
vd.datedeliver AS 'วันคลอด',
vmc.datecare AS 'วันที่ออกเยี่ยม',
DATEDIFF(vmc.datecare,vd.datedeliver) AS 'ระยะห่างเป็นวัน',
CASE WHEN DATEDIFF(vmc.datecare,vd.datedeliver) <= 7 then 'ครั้งที่ 1'
WHEN DATEDIFF(vmc.datecare,vd.datedeliver) BETWEEN '8' AND '15' then 'ครั้งที่2'
WHEN DATEDIFF(vmc.datecare,vd.datedeliver) BETWEEN '16' AND '42' then 'ครั้งที่3' ELSE '' END AS 'ครั้งที่',
vmc.visitno,
vmc.locatecare AS 'สถานที่',
vmc.dateupdate
FROM visitancmothercare vmc
INNER JOIN visitancdeliver vd ON vmc.pcucodeperson = vd.pcucodeperson
AND vmc.pid = vd.pid AND vmc.pregno = vd.pregno
WHERE vmc.datecare BETWEEN '2015-04-01'AND CURDATE()
AND vmc.pcucodeperson = vd.pcucodeperson AND vmc.pid = vd.pid AND vmc.pregno = vd.pregno;
.............................................................................
ตรวจสอบได้ทั้ง pid ,ครรภ์ที่,วันคลอดมวันเยี่ยมหลังคลอด,ครั้งที่ออกเยี่ยม ดังนี้
..........................................................................................
หากต้องการตรวจสอบ จำนวนครั้งที่เยี่ยมไม่ครบ ก็ตามนี้
scpt ชุดที่3.1 "นับจำนวนครั้งออกเยี่ยม"
..........................................................................................
SELECT
vmc.pcucodeperson,
vmc.pid,
vmc.pregno AS 'ครรภ์ที่',
vd.datedeliver AS 'วันคลอด',
COUNT(vmc.datecare) AS 'จำนวนวครั้งที่เยี่ยม'
FROM visitancmothercare vmc
INNER JOIN visitancdeliver vd ON vmc.pcucodeperson = vd.pcucodeperson
AND vmc.pid = vd.pid AND vmc.pregno = vd.pregno
WHERE vmc.datecare BETWEEN '2015-04-01'AND CURDATE()
AND vmc.pcucodeperson = vd.pcucodeperson AND vmc.pid = vd.pid AND vmc.pregno = vd.pregno
GROUP BY vmc.pid
ORDER BY COUNT(vmc.datecare);
.............................................................................................
จะได้ ดังนี้
.............................................................//////......................................................................
4.ANC ลืมจ่ายยาเสริมไอโอดีน
 scpt ชุดที่4 "ลืมจ่ายยาเสริมไอโอดีน)
............................................................................
SELECT
visitanc.pcucodeperson,
visitanc.pid,
visitanc.pregno,
visitanc.datecheck,
visitanc.visitno,
visitanc.pregage,
visitanc.fundus,
visitanc.dateupdate,
visitdrug.drugcode,
visitdrug.unit,
visitdrug.flag18fileexpo,
visitdrug.dateupdate,
cdrug.drugcode24
FROM visitanc
INNER JOIN visitdrug ON visitanc.visitno = visitdrug.visitno
INNER JOIN cdrug ON visitdrug.drugcode = cdrug.drugcode
WHERE visitanc.datecheck BETWEEN '2015-10-01' AND '2016-09-30'
AND cdrug.drugcode24 NOT IN ('201120320037726221700000','201120320037726221781506','201110100019999920381199')
GROUP BY visitanc.pid
ORDER BY visitanc.datecheck;
.....................................................................
หมายเหตุ:ยาที่จ่ายใน ANC + รหัสยา 24 หลัก ประกอบด้วย
1.OBIMIN-AZ  : รหัส 201110100019999920381199
2.Triferdine150 : รหัส 201120320037726221781506 หรือ 201120320037726221700000
ดังนั้น ควรตรวจสอบรหัส 24 หลัก ในยา 2 ตัวนี้ใน JHCIS ก่อนว่า ตรงตามนี้หรือไม่ หากไม่ตรง ส่งออกมาก็ไม่ผ่านจ้า
3.รายชื่อ ANC ที่มีการจ่ายยา 2 ตัวนี้ไปก่อนหน้าจะปรับรหัส 24 หลัก  ให้ท่านเข้าหน้าบริการ-ลบยาเดิมที่เป็น OBIMIN และ Triferdine ออกก่อนแล้วค่อยคีย์ ลงไปใหม่  ดังนี้
  แค่นี้ก็น่าจะผ่าน สำหรับ ยาเสริมไอโอดีน นะจ๊ะ
.............................................................//////......................................................................
 5.ANC แล้วลืมทำคลอด
scpt ชุดที่ 5 "ANC แล้วลืมทำคลอด"
...................................................................
 SELECT
vap.pid,
vap.pregno,
vap.firstdatecheck,
vap.lmp,
vap.edc,
vap.dateupdate,
ctitle.titlename,
person.fname,
person.lname,
person.idcard,
house.hno AS บ้านเลขที่,
SUBSTRING(house.villcode,7,2) as 'หมู่'
FROM
visitancpregnancy vap
INNER JOIN person ON person.pid = vap.pid AND person.pcucodeperson = vap.pcucodeperson
INNER JOIN ctitle ON person.prename = ctitle.titlecode
inner join house on person.pcucodeperson = house.pcucode and person.hcode = house.hcode
WHERE vap.pid NOT IN (SELECT visitancdeliver.pid FROM visitancdeliver)
AND vap.edc BETWEEN '2015-04-01'AND CURDATE()
GROUP BY vap.pid
ORDER BY vap.dateupdate asc;

...............................................................................
หากมีรายชื่อโผล่มา ก็ตามไปดูสักนิดว่า "เราลืมคีย์คลอดจริงหรือเปล่านะ..

............................................................//////.................................................................
6.ANC ที่อายุต่ำกว่า 20 ปี
scpt ชุดที่ 6 "ANC อายุต่ำกว่า 20 ปี"
............................................................................
SELECT
visitancpregnancy.pid,
ctitle.titlename,
person.fname,
person.lname,
person.birth,
getAgeYearNum(person.birth,CURDATE()) AS 'อายุปี',
person.idcard,
visitancpregnancy.pregno,
visitancpregnancy.firstdatecheck,
visitancpregnancy.lmp,
visitancpregnancy.edc,
person.mumoi,
person.hnomoi
FROM
person
INNER JOIN visitancpregnancy ON person.pcucodeperson = visitancpregnancy.pcucodeperson AND person.pid = visitancpregnancy.pid
INNER JOIN ctitle ON person.prename = ctitle.titlecode
WHERE visitancpregnancy.lmp BETWEEN '2015-10-01' and CURDATE()
AND getAgeYearNum(birth,CURDATE()) < 20;
 ..........................................................................
  7.ปัญหา ANC ที่พบบ่อย
1.คีย์สลับกันระหว่าง ครรภ์ที่ 1 ครรภ์ที่2 หรือ ครรภ์ที่3
2.คีย์วันเกิดลูกไม่ตรงกับวันคลอดแม่  (ชื่อลูกจะไม่โผล่ขึ้นมาตอนที่คีย์คลอด)
3.วันดี คืนดี ANC โผล่มาคลอด โดยไม่มีประวัติฝากครรภ์ จากที่ใดๆเลย
    3.1 แก้วิธีที่ 1 ด้วยการขึ้นทะเบียน ยอมเสียแต้ม 5 ครั้งคุณภาพและ 12 wk เพื่อให้เป็นข้อมูลในภาพรวมในปีต่อไป....(ไม่มีอะไร 100%)
    3.2.แก้ วิธีที่ 2 ขึ้นทะเบียน ANC แต่ปรับเป็น Type2  (ควรมีการบันทึกยืนยันและให้มีผู้รับรองว่าไม่อยู่จริงๆนะจ๊ะ..เผื่อพี่ ส. ไปตามแล้วจะยุ่งกันไปใหญ่)
4.ต่างด้าวมาฝากครรภ์.....คลอดแล้ว...ลูกเป็นคนไทย (พ่อไทยแม่อินเตอร์)
   4.1 วิธีแก้ไข เพิ่มเฉพาะเด็ก (เหมือนเพิ่มประชากร และให้ epi ตามปกติ) แต่ไม่ต้องคีย์ เกี่ยวกับ แม่หรือ ANC ใดๆเลย  (เชื่อสิ..)
.............................................................// จบแว้ว //....................................................................

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

https://www.blogs

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