JHCIS ผู้ป่วยเรื้อรังขาดนัด

ข้อกำหนด "สำคัญ"
ในการนัดผู้ป่วยเรื้อรัง (DM@HT) ให้เลือกจาก 5 หัวข้อ คือ
1.รับยา  2.ฟังผล (follow up) 3.เจาะเลือด(ตรวจโรค) 4.ตรวจน้ำตาล(DTX) 5.วัดความดันฯ
เท่านั้น เนื่องจาก scpt ที่ใช้  รันจาก 5 ตัวนี้จ้า

เริ่มกันเรย
สมมุติ ว่าจะให้บริการคลีนิก โรคเรื้อรัง(DM@HT) เดือน สิงหาคม 2560 
..........................................................
1.scpt หารายชื่อผู้ป่วย(DM@HT) ที่นัดให้บริการ เดือน สิงหาคม 2560 ..ตามนี้
.......................................................
DROP TABLE IF EXISTS v204;
CREATE TABLE v204
SELECT pp1.pid,pp1.titlename,pp1.fname,pp1.lname,pp1.hno,pp1.moo ,vv1.visitdate,vv1.appotype,vv1.appodate
FROM (SELECT p.pid, ct.titlename, p.fname, p.lname, h.hno, RIGHT(h.villcode,2)AS 'moo'
FROM person p INNER JOIN ctitle ct ON p.prename=ct.titlecode
INNER JOIN house h ON p.hcode=h.hcode) AS pp1
JOIN (SELECT v2.pid,GROUP_CONCAT(vp.diagcode)AS 'diagcode',vp.appotype,v2.visitdate,vp.appodate FROM visit v2
INNER JOIN visitdiagappoint vp ON v2.visitno = vp.visitno
WHERE vp.appotype IN ('1','2','4','5','6') AND LEFT(vp.diagcode,1) IN ('e','i')
AND vp.appodate BETWEEN '2017-08-01'AND'2017-08-31'
GROUP BY v2.pid) AS vv1 ON pp1.pid=vv1.pid;
SELECT * FROM v204;
.........................................................
หมายเหตุ : เปลี่ยนวันที่ ตามเดือนที่ต้องการอยากรู้ว่า "นัดเดือนไหน" ได้ที่ตำแหน่ง BETWEEN '2017-08-01'AND '2017-08-31'
......................................................................................
2. และเมื่อให้บริการไปแล้ว(ในเดือนสิงหาคม 2560)  และอยากรู้ว่า ขาดนัดกี่คน ใครบ้าง....ตามนี้
...................................................................................
DROP TABLE IF EXISTS v204;
CREATE TABLE v204
SELECT pp1.pid,pp1.titlename,pp1.fname,pp1.lname,pp1.hno,pp1.moo ,vv1.visitdate,vv1.appotype,vv1.appodate
FROM (SELECT p.pid, ct.titlename, p.fname, p.lname, h.hno, RIGHT(h.villcode,2)AS 'moo'
FROM person p INNER JOIN ctitle ct ON p.prename=ct.titlecode
INNER JOIN house h ON p.hcode=h.hcode) AS pp1
JOIN (SELECT v2.pid,GROUP_CONCAT(vp.diagcode)AS 'diagcode',vp.appotype,v2.visitdate,vp.appodate FROM visit v2
INNER JOIN visitdiagappoint vp ON v2.visitno = vp.visitno
WHERE vp.appotype IN ('1','2') AND LEFT(vp.diagcode,1) IN ('e','i')
AND vp.appodate BETWEEN '2017-08-01'AND'2017-08-31'
GROUP BY v2.pid) AS vv1 ON pp1.pid=vv1.pid;
SELECT v204.pid,v204.titlename,v204.fname,v204.lname,v204.hno,v204.moo
,v204.visitdate AS 'วันรับบริก่ารครั้งก่อน',v204.appotype,v204.appodate AS 'วันนัด'
FROM v204 WHERE v204.pid not IN(SELECT v2.pid FROM visit v2 INNER
JOIN visitdiagappoint vp ON v2.visitno = vp.visitno
WHERE vp.appotype IN ('1','2','4','5','6') AND LEFT(vp.diagcode,1) IN ('e','i')
AND v2.visitdate BETWEEN '2017-08-01'AND'2017-08-31')
ORDER BY v204.moo,v204.pid;
..................................................................................
หมายเหตุ : เปลี่ยนเดือนที่ต้องการอยากรู้ได้ที่ตำแหน่ง  BETWEEN '2017-08-01'AND'2017-08-31
......................................................................................
3.และมีอีกจำพวก คือ ผู้ป่วยมาโดยไม่ได้นัด (มาไม่ตรงนัด)  ..ตามนี้
.......................................................
DROP TABLE IF EXISTS v204;
CREATE TABLE v204
SELECT pp1.pid,pp1.titlename,pp1.fname,pp1.lname,pp1.hno,pp1.moo ,vv1.visitdate,vv1.appotype,vv1.appodate
FROM (SELECT p.pid, ct.titlename, p.fname, p.lname, h.hno, RIGHT(h.villcode,2)AS 'moo'
FROM person p INNER JOIN ctitle ct ON p.prename=ct.titlecode
INNER JOIN house h ON p.hcode=h.hcode) AS pp1
JOIN (SELECT v2.pid,GROUP_CONCAT(vp.diagcode)AS 'diagcode',vp.appotype,v2.visitdate,vp.appodate FROM visit v2
INNER JOIN visitdiagappoint vp ON v2.visitno = vp.visitno
WHERE vp.appotype IN ('1','2','4','5','6') AND LEFT(vp.diagcode,1) IN ('e','i')
AND vp.appodate BETWEEN '2017-08-01'AND'2017-08-31'
GROUP BY v2.pid) AS vv1 ON pp1.pid=vv1.pid;
SELECT * from
(SELECT p.pid,ct.titlename,p.fname,p.lname,h.hno,RIGHT(h.villcode,2)AS 'moo'
FROM person p
INNER JOIN ctitle ct ON p.prename=ct.titlecode
INNER JOIN house h ON p.hcode=h.hcode) AS pp1
JOIN (SELECT v2.pid,GROUP_CONCAT(DISTINCT vp.diagcode)AS 'diagcode',v2.visitdate
FROM visit v2 INNER JOIN visitdiagappoint vp ON v2.visitno = vp.visitno
WHERE vp.appotype IN('1','2','4','5','6') AND LEFT(vp.diagcode,1) IN ('e','i')
AND v2.visitdate BETWEEN '2017-08-01'AND'2017-08-31'
AND v2.pid NOT in (SELECT v204.pid from v204)
GROUP BY v2.pid)AS vv1 ON pp1.pid=vv1.pid GROUP BY pp1.pid;
......................................................
หมายเหตุ : เปลี่ยนเดือนที่ต้องการอยากรู้ได้ที่ตำแหน่ง  BETWEEN '2017-08-01'AND'2017-08-31
......................................................................................
4.สำคัญคือ ให้บริการแล้วอย่าลืมคีย์นัดทุกครั้ง คนไข้จะได้ไม่lost และติดตามการรักษาได้ตลอดจ้า

@@ อย่าลืมว่า งานอะไรก็ตาม สุดท้ายมาลงที่การจัดเก็บข้อมูล (คีย์ข้อมูล....)
     ดังนั้น  คนที่ทำงาน ด้านไอที จึงเสมือน บุคคลที่ปิดทองหลังพระ...ถึงแม้จะไม่มีใครเห็นหรือไม่มีพระจริงๆให้ปิด..แต่ยังคงต้องทำต่อไป เพราะยังมีพระในใจเราอีกองค์ที่เราต้องปิด ..@@


.............เป็นกำลังใจให้ผู้ที่ทำงานไอทีทุกท่านจ้า........





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

https://www.blogs

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