ประวัติการป่วยหรืออาการ่วมอื่นๆ(Symptomco)


JHCIS ช่อง"ประวัติการป่วยหรืออาการร่วมอื่นๆ" ส่วนใหญ่ไม่ค่อยเติมกัน ด้วยเหตุผลหลายประการ  แต่เวลา Audit chart กลับได้คะแนนน้อย เนื่องจากช่องนี้ บังคับให้เติมอาการร่วมและปัจจัยเสี่ยงของผู้ป่วยหรือโรคที่เกี่ยวข้องลงไปด้วย

**แก้ปัญหาเบื้องต้น ดังนี้
1.สร้างบล๊อคตัวอย่าง ด้วย notepad  ประมาณนี้ >>ดาวน์โหลดตัวอย่างSystemco
2.จากนั้นเวลาที่บันทึกข้อมูล ให้ท่านเปิดไฟล์ systemco.txt ตัวนี้ร่วมด้วย และใช้วิธี copy ด้วย Ctrl+C และ Ctrl+V เพื่อ pate ในแต่ละcase ที่ให้บริการ ทั้งนี้ข้อความท่านสามารถ ปรับเปลี่ยน ได้ตามความเหมาะสมและควรให้สัมพันธ์กับอาการโรคที่ผู้ป่วยมารับบริการในครั้งนั้นๆ ด้วยนะ
ขั้นตอน ประมาณนี้

3.Script UPDATE systemco
(ควร Back up JHCISDB ก่อนทุกครั้ง)>>ปฏิบัติ ณ บัด NOW
 *** การอัพเดด ให้อัพเรียงตามลำดับ ชุดที่ 1- ชุดที่ 5 (ห้ามข้ามขั้นตอน เด็ดขาด)
 *** การกำหนดช่วงวันที่ ในscpt ต้องกำหนดให้เป็นช่วงเดียวกัน ทุกชุด ที่ตำแหน่ง "vt.visitdate BETWEEN '2017-05-01'AND'2017-05-31'  ส่วนใหญ่จะอยู่บรรทัดสุดท้าย
3.1 scpt ชุดที่ 1  update ผู้รับบริการ ที่เป็นผู้ป่วยที่มีโรคเรื้อรัง เช่น เบาหวาน ความดันฯ หอบหืด เป็นต้น
..............................................................
DROP TABLE IF EXISTS chk203;
CREATE TABLE chk203
(SELECT pc.pcucodeperson,pc.pid,cdi.diseasenamethai,cdi.diseasecode,
IF(LEFT(pc.chroniccode,1)='E','เบาหวาน',(if(LEFT(pc.chroniccode,3)='i10','ความดันฯ',
if(LEFT(pc.chroniccode,3)=('J45'),'หอบหืด',if(LEFT(pc.chroniccode,2)=('i6'),'หลอดเลือดสมอง',
if(LEFT(pc.chroniccode,2)='i1','ไตจากความดันฯ',IF(LEFT(pc.chroniccode,3)='J43','ถุงลมโป่งพอง',
IF(LEFT(pc.chroniccode,3)='i25','โรคกล้ามเนื้อหัวใจ',
if(LEFT(pc.chroniccode,1)=('N'),'ไตวายเรื้อรัง','มีโรคประจำตัวแต่จำแนกไม่ได้')))))))))AS chd,
IF(ncd.smoke = '1','ไม่สูบบุหรี',(if(ncd.smoke = '2','สูบบุหรี่',''))) AS sko,
IF(ncd.alcohol = '1','ไม่ดื่อมเครื่องดื่มอัลกอฮอล์',(if(ncd.alcohol = '2','ดื่มเครื่องดื่มอัลกอฮอล์',''))) AS alc FROM personchronic pc INNER JOIN cdisease cdi ON pc.chroniccode = cdi.diseasecode
LEFT OUTER JOIN ncd_person_ncd_screen ncd ON ncd.pid=pc.pid WHERE pc.typedischart IN ('03','05') AND pc.pid NOT IN (SELECT persondeath.pid FROM persondeath));
DROP TABLE IF EXISTS k203; CREATE TABLE k203 AS
(SELECT chk203.pcucodeperson,chk203.pid,chk203.diseasenamethai,
CONCAT(GROUP_CONCAT(DISTINCT chk203.chd),'',sko,'',alc)AS tdi
FROM chk203 GROUP BY chk203.pid);
UPDATE visit vt INNER JOIN k203 ON vt.pid= k203.pid
SET vt.symptomsco = k203.tdi WHERE vt.pid=k203.pid AND vt.symptomsco is NULL
AND vt.visitdate BETWEEN '2017-07-01'AND'2017-07-31';
..............................................................
 3.2 scpt ชุดที่ 2 update ผู้รับบริการ ที่เป็นผู้พิการ
.............................................................
DROP TABLE IF EXISTS c203; CREATE TABLE c203 AS
SELECT pb.pcucodeperson, pb.pid,Pb.typecode,
case when pb.typecode = 101 then 'พิการการมองเห็น'
when  pb.typecode = 102 then 'พิการทางการได้ยิน'
when  pb.typecode = 103 then 'พิการทางกาย'
when  pb.typecode = 104 then 'พิการทางจิตหรือพฤติกรรม'
when  pb.typecode = 105 then 'พิการทางสติปัญญา'
when  pb.typecode = 106 then 'พิการทางการเรียนรู้'
when  pb.typecode = 107 then 'พิการทางออทิสติก' ELSE '' END AS chd,
IF(ncd.smoke = '1','ไม่สูบบุหรี',(if(ncd.smoke = '2','สูบบุหรี่',''))) AS sko,
IF(ncd.alcohol = '1','ไม่ดื่อมเครื่องดื่มอัลกอฮอล์',(if(ncd.alcohol = '2','ดื่มเครื่องดื่มอัลกอฮอล์',''))) AS alc FROM personunable1type pb LEFT OUTER JOIN ncd_person_ncd_screen ncd ON ncd.pid=pb.pid WHERE pb.pid NOT IN (SELECT persondeath.pid FROM persondeath);
DROP TABLE IF EXISTS kk2; CREATE TABLE kk2 AS
(SELECT c203.pcucodeperson,c203.pid,c203.typecode,CONCAT(GROUP_CONCAT(DISTINCT c203.chd),'',sko,'',alc)AS tdi FROM c203 GROUP BY c203.pid);
UPDATE visit vt INNER JOIN kk2 ON vt.pid= kk2.pid SET vt.symptomsco = kk2.tdi
WHERE vt.pid=kk2.pid AND vt.symptomsco is NULL
AND vt.visitdate BETWEEN '2017-07-01'AND'2017-07-31';
............................................................
3.3 scpt ชุดที่ 3 ผู้ป่วยทั่วไป อายุ 15 ปี ขึ้นไปและไม่มีโรคประจำตัวใดๆ
..........................................................
DROP TABLE IF EXISTS pop33;CREATE TABLE pop33
(SELECT ncd.pcucode,ncd.pid,IF(ncd.smoke = '1','ไม่สูบบุหรี',(if(ncd.smoke = '2','สูบบุหรี่',''))) AS so,
IF(ncd.alcohol = '1','ไม่ดื่อมเครื่องดื่มอัลกอฮอล์',(if(ncd.alcohol = '2','ดื่มเครื่องดื่มอัลกอฮอล์',''))) AS ac
FROM ncd_person_ncd_screen ncd WHERE ncd.pid NOT IN (SELECT persondeath.pid FROM persondeath));
DROP TABLE IF EXISTS kok33; CREATE TABLE kok33 AS
(SELECT pop33.pcucode,pop33.pid,CONCAT(GROUP_CONCAT(DISTINCT 'ไม่มีโรคประจำตัวใดๆ'),'',so,'',ac)AS tdi
FROM pop33 GROUP BY pop33.pid);
UPDATE visit vt INNER JOIN kok33 ON vt.pid= kok33.pid INNER JOIN person p ON vt.pid=p.pid
SET vt.symptomsco = kok33.tdi WHERE vt.pid=kok33.pid AND getAgeYearNum(p.birth,CURDATE()) >='15'
AND vt.symptomsco is NULL
AND vt.visitdate BETWEEN '2017-07-01'AND'2017-07-31';
..........................................................
3.4  scpt ชุดที่ 4  อัพเดดผู้รับบริการอายุ 0-15 ปี ร่างกายแข็งแรงและไม่มีโรคประจำตัวใดๆ
.........................................................
update visit vt INNER JOIN person p ON vt.pid=p.pid
SET symptomsco = 'ไม่มีโรคประจำตัวใดๆ ร่างกายแข็งแรงสมบูรณ์ดี'
WHERE vt.pid NOT IN (SELECT personchronic.pid from personchronic)
AND vt.pid NOT IN (SELECT persondeath.pid FROM persondeath)
AND vt.symptomsco IS NULL AND getAgeYearNum(p.birth,CURDATE())<'15'
AND vt.visitdate BETWEEN '2017-07-01'AND'2017-07-31';
........................................................
3.5 scpt ชุดที่ 5 อัพเดด ผู้รับบริการอายุ 0-15 ปี ที่เคยมีโรคประจำตัว
.........................................................
UPDATE visit SET symptomsco = 'ไม่มีโรคประจำตัวใดๆ ไม่สูบบุหรี่ ไม่ดื่มเครื่องดื่มอัลกอฮอล์'
WHERE visit.symptomsco IS NULL AND visit.pid NOT IN (SELECT personchronic.pid FROM personchronic  WHERE personchronic.pid IN ('03','05'))
AND visit.visitdate BETWEEN '2017-07-01'AND'2017-07-31';
.........................................................
4. ตรวจสอบอีกรอบ มีเหลือที่ยังไม่ update หรือไม่  ตามนี้
........................................................
SELECT vt.pcucode,getAgeYearNum(p.birth,CURDATE())AS 'อายุ',
vt.visitno,vt.visitdate,vt.pid,vt.symptomsco
FROM visit vt INNER JOIN person p ON vt.pid=p.pid
WHERE vt.symptomsco IS NULL
AND vt.visitdate BETWEEN '2017-07-01'AND'2017-07-31' GROUP BY vt.pid;
........................................................
......................................๑๑๑...................................
link
1.Audit รพ.สต.
2.Audit แฟ้ม opd รพ.สต.


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

iamissy กล่าวว่า...

thank you so much for new user like me.

https://www.blogs

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