12 พ.ค. 2020 เวลา 09:05
#SQL For JHCIS ทะเบียนกลุ่มเป้าหมาย FLU 4 กลุ่มจาก 7 กลุ่มเป้าหมาย
- 0-2 ปี
- ผู้สูงอายุอายุ 65 ปีขึ้นไป
- ผู้ที่มีน้ำหนักมากกว่า 100 กิโลกรัม
- กลุ่มโรคเรื้อรัง จาก แฟ้ม CHRONIC
/*--------------------------------------------------*/
#SQL For JHCIS ทะเบียนเด็กอายุ 0-2 ปี เป้าหมาย FLU
SET @getagedate = '2019-10-01';
SELECT person.pid,
CONCAT_WS('-',SUBSTRING(person.idcard,1,1),SUBSTRING(person.idcard,2,4),SUBSTRING(person.idcard,6,5),SUBSTRING(idcard,11,2),SUBSTRING(person.idcard,13,1))AS 'idcard',
CONCAT(ctitle.titlename,person.fname,' ',person.lname) AS 'ชื่อ - นามสกุล',
CONCAT("'",getAgeYearNum(person.birth,@getagedate),'/',getAgeMonthNum(person.birth,@getagedate)) AS 'อายุ ((ป/ด)',
CONCAT("'",house.hno) AS 'บ้านเลขที่',person.birth AS 'วัน เดือน ปี เกิด',village.villno,village.villname
FROM person
LEFT OUTER JOIN house ON person.hcode = house.hcode AND house.pcucode = person.pcucodeperson
LEFT OUTER JOIN ctitle ON person.prename=ctitle.titlecode
LEFT OUTER JOIN village ON house.villcode = village.villcode AND village.pcucode = house.pcucode
LEFT OUTER JOIN csubdistrict ON CONCAT(csubdistrict.provcode,csubdistrict.distcode,csubdistrict.subdistcode)=LEFT(village.villcode,6)
LEFT OUTER JOIN cright ON person.rightcode = cright.rightcode
LEFT OUTER JOIN persondeath ON person.pid = persondeath.pid AND person.pcucodeperson = persondeath.pcucodeperson
WHERE SUBSTRING(house.villcode,7,2)<>'00' and persondeath.pid IS NULL
AND person.typelive IN ('0','1','3')
AND GetAgeYearNum(person.birth,@getagedate) BETWEEN 0 AND 2
ORDER BY village.villno ,person.birth,house.hno DESC;
/*--------------------------------------------------*/
#SQL For JHCIS ทะเบียนผู้สูงอายุอายุ 65 ปีขึ้นไป ตัดตายและ Chronics ออก เป้าหมาย FLU
SET @getagedate = '2019-10-01';
SELECT person.pid,
CONCAT_WS('-',SUBSTRING(person.idcard,1,1),SUBSTRING(person.idcard,2,4),SUBSTRING(person.idcard,6,5),SUBSTRING(idcard,11,2),SUBSTRING(person.idcard,13,1))AS 'idcard',
CONCAT(ctitle.titlename,person.fname,' ',person.lname) AS 'ชื่อ - นามสกุล',
CONCAT("'",getAgeYearNum(person.birth,@getagedate)) AS 'อายุ (ปี)',
CONCAT("'",house.hno) AS 'บ้านเลขที่',person.birth AS 'วัน เดือน ปี เกิด',village.villno,village.villname
FROM person
LEFT OUTER JOIN house ON person.hcode = house.hcode AND house.pcucode = person.pcucodeperson
LEFT OUTER JOIN ncd_person_ncd_screen ON person.pid=ncd_person_ncd_screen.pid
LEFT OUTER JOIN ctitle ON person.prename=ctitle.titlecode
LEFT OUTER JOIN village ON house.villcode = village.villcode AND village.pcucode = house.pcucode
LEFT OUTER JOIN csubdistrict ON CONCAT(csubdistrict.provcode,csubdistrict.distcode,csubdistrict.subdistcode)=LEFT(village.villcode,6)
LEFT OUTER JOIN cright ON person.rightcode = cright.rightcode
LEFT OUTER JOIN persondeath ON person.pid = persondeath.pid AND person.pcucodeperson = persondeath.pcucodeperson
LEFT OUTER JOIN personchronic ON person.pid = personchronic.pid AND person.pcucodeperson = personchronic.pcucodeperson
WHERE SUBSTRING(house.villcode,7,2)<>'00' and persondeath.pid IS NULL and personchronic.pid IS NULL
AND person.typelive IN ('0','1','3')
AND GetAgeYearNum(person.birth,@getagedate) >=65
AND ncd_person_ncd_screen.weight < 100
GROUP BY person.pid
ORDER BY village.villno;
/*--------------------------------------------------*/
#SQL For JHCIS ทะเบียนกลุ่มผู้ที่มีน้ำหนักมากกว่า 100 กิโลกรัม ตัดตายและ Chronics เป้าหมาย FLU
SET @getagedate = '2019-10-01';
SELECT person.pid,CONCAT_WS('-',SUBSTRING(person.idcard,1,1),SUBSTRING(person.idcard,2,4),SUBSTRING(person.idcard,6,5),SUBSTRING(idcard,11,2),SUBSTRING(person.idcard,13,1))AS 'idcard',
CONCAT(ctitle.titlename,person.fname,' ',person.lname) AS 'ชื่อ - นามสกุล',
CONCAT("'",getAgeYearNum(person.birth,@getagedate)) AS 'อายุ (ปี)',
ncd_person_ncd_screen.weight AS 'น้ำหนัก',
CONCAT("'",house.hno) AS 'บ้านเลขที่',person.birth AS 'วัน เดือน ปี เกิด',village.villno,village.villname
FROM person
LEFT OUTER JOIN house ON person.hcode = house.hcode AND house.pcucode = person.pcucodeperson
LEFT OUTER JOIN ncd_person_ncd_screen ON person.pid=ncd_person_ncd_screen.pid
LEFT OUTER JOIN ctitle ON person.prename=ctitle.titlecode
LEFT OUTER JOIN village ON house.villcode = village.villcode AND village.pcucode = house.pcucode
LEFT OUTER JOIN csubdistrict ON CONCAT(csubdistrict.provcode,csubdistrict.distcode,csubdistrict.subdistcode)=LEFT(village.villcode,6)
LEFT OUTER JOIN cright ON person.rightcode = cright.rightcode
LEFT OUTER JOIN persondeath ON person.pid = persondeath.pid AND person.pcucodeperson = persondeath.pcucodeperson
LEFT OUTER JOIN personchronic ON person.pid = personchronic.pid AND person.pcucodeperson = personchronic.pcucodeperson
WHERE ncd_person_ncd_screen.screen_date BETWEEN '2019-10-01' AND '2020-09-30'
AND ncd_person_ncd_screen.weight > 100
AND SUBSTRING(house.villcode,7,2)<>'00' and persondeath.pid IS NULL and personchronic.pid IS NULL;
/*--------------------------------------------------*/
#SQL For JHCIS ทะเบียนกลุ่มโรคเรื้อรัง ใน แฟ้ม Chronic เป้าหมาย FLU
SELECT p.pcucodeperson,p.pid,
CONCAT_WS('-',SUBSTRING(p.idcard,1,1),SUBSTRING(p.idcard,2,4),SUBSTRING(p.idcard,6,5),SUBSTRING(idcard,11,2),SUBSTRING(p.idcard,13,1))AS 'idcard',
concat(c.titlename,' ',p.fname,' ',p.lname) as 'name',
h.hno,v.villno,v.villname,getAgeYearNum(p.birth,current_date) as age,
p.typelive,GROUP_CONCAT(pc.chroniccode) as chronic,
GROUP_CONCAT(cd.diseasenamethai) as chronicthai
FROM personchronic pc
LEFT JOIN person p ON pc.pid=p.pid AND pc.pcucodeperson=pc.pcucodeperson
LEFT JOIN ctitle c ON p.prename = c.titlecode
LEFT JOIN cdisease cd ON pc.chroniccode=cd.diseasecode
LEFT JOIN chospital ch ON pc.cup=ch.hoscode
INNER JOIN house h ON p.pcucodeperson = h.pcucodeperson AND p.hcode = h.hcode
INNER JOIN village v ON h.villcode = v.villcode AND v.villno <>'00'
WHERE p.typelive IN (1,2,3)
AND left(pc.chroniccode,3) BETWEEN 'E10' AND 'E14'
OR left(pc.chroniccode,3) BETWEEN 'I10' AND 'I15'
OR left(pc.chroniccode,3) BETWEEN 'I20' AND 'I25'
OR left(pc.chroniccode,3) BETWEEN 'J41' AND 'J44'
OR left(pc.chroniccode,3) BETWEEN 'I60' AND 'I64'
OR left(pc.chroniccode,3) BETWEEN 'I60' AND 'I64'
OR left(pc.chroniccode,3) IN ('J45')
#AND v.villno='3'
AND p.pid not in (select persondeath.pid from persondeath)#ตัดคนตาย;
GROUP BY p.pid
ORDER BY v.villno;
โฆษณา