5. 63-หาเด็กที่ยังไม่ได้รับยาน้ำเสริมธาตุเหล็ก

Update Delete

ID816
Parent ID60
Table Name63_iron_syrup_epi
Title5. 63-หาเด็กที่ยังไม่ได้รับยาน้ำเสริมธาตุเหล็ก
Description
Script#SQL_OPTIONS#
PROVIDERS=1
PROVIDER1=43STD
PROVIDER1_VALIDATE_TABLES=ncdscreen,t_person_db
SCRIPT_FLOW=SQL
#SQL_OPTIONS#

#PROVIDER1_SQL#


SET @provcode = :provcode;
SET @rep_year = :rep_year;
SET @hoscode = :hoscode;
SET @hosname = :hosname;
SET @hostype = :hostype;
SET @address = :address;
SET @subdistcode = :subdistcode;
SET @distcode = :distcode;
SET @level_service = :level_service;

#หาเด็กที่ยังไม่ได้รับยาน้ำเสริมธาตุเหล็ก
# by IT chonburi

SET @b_year :=(SELECT yearprocess FROM pk_byear LIMIT 1);
SET @prov_c := (SELECT provincecode FROM sys_config LIMIT 1);
SET @start_d :=concat(@b_year-1,'1001');
SET @end_d :=concat(@b_year,'0731');
SET @hct_d :=concat(@b_year-1,'0701');

# กลุ่ม 6 - 8 เดือน
SELECT SQL_BIG_RESULT
@b_year AS B_YEAR,
@prov_c AS PROV_C,
cchangwat.changwatname AS PROV_N, /* ชื่อจังหวัด */
chospital.distcode AS AMPUR_C , /* รหัสอำเภอ */
campur.ampurname AS AMPUR_N , /* ชื่ออำเภอ */
POP.vhid AS VHID,
CONCAT(POP.HOSPCODE,chospital.hosname) AS HOSP_N , /*ชื่อหน่วยบริการ */
POP.CID,POP.PID,POP.`NAME`,POP.LNAME,POP.BIRTH as BIRTHDAY,
POP.TYPEAREA

,CASE WHEN epi.SEQ is not null THEN TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) ELSE null end as AGE_M_EPI /*'อายุ(เดือน) ณวันที่รับบริการepi' */
,CASE WHEN epi.SEQ is not null THEN concat(epi.HOSPCODE,'-',epi.SEQ) ELSE null end as SEQ_EPI
,CASE WHEN epi.SEQ is not null THEN epi.DATE_SERV ELSE null end as DATE_SERV_EPI
,epi.VACCINETYPE
#,DR.DIDSTD as DRUG_N /* ยาน้ำเสริมธาตุเหล็ก' */
#,DR.date_serv as DATE_SERV_DRUG
,'6-8M' as GroupAge /* เป้าหมาย 4 ช่วง 6-8M,9-11M,12-17M,18-24M */

FROM t_person_db POP
INNER JOIN chospital ON chospital.hoscode = POP.HOSPCODE
INNER JOIN cchangwat ON cchangwat.changwatcode = @prov_c
INNER JOIN campur ON campur.ampurcodefull = CONCAT(chospital.provcode,chospital.distcode)
INNER JOIN epi on POP.HOSPCODE = epi.HOSPCODE and POP.PID = epi.PID
AND epi.hospcode=epi.VACCINEPLACE AND epi.seq IS NOT NULL
AND epi.VACCINETYPE NOT in('111','112','113','114','115','106')
and epi.DATE_SERV BETWEEN @start_d and @end_d

Left JOIN tmp_drug_opd DR ON DR.HOSPCODE=POP.HOSPCODE AND DR.PID=POP.PID
AND SUBSTR(DR.DIDSTD,1,19) IN(
'1004890000008103305'
,'1004890000009501305'
,'1004974140020403305'
,'1004974140008008305'
,'1004890000009507305'
,'2020301200871801305'
,'1004880000086342304'
,'1004880000012801308'
,'1004880000042031217'
,'1004880000012801304' )
AND DR.date_serv BETWEEN @start_d AND @end_d

WHERE
(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) BETWEEN 6 AND 8)
and (epi.DATE_SERV BETWEEN @start_d and @end_d)
and POP.NATION = '099' AND POP.DISCHARGE = '9'
and DR.DIDSTD IS NULL #กรณีอยากตัดเฉพาะเด็กที่ไม่ได้รับยาน้ำ


group by POP.HOSPCODE,POP.CID #POP.PID
#order by DR.date_serv,epi.DATE_SERV,(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV)) asc;

Union
# กลุ่ม 9- 11 เดือน
SELECT SQL_BIG_RESULT
@b_year AS B_YEAR,
@prov_c AS PROV_C,
cchangwat.changwatname AS PROV_N, /* ชื่อจังหวัด */
chospital.distcode AS AMPUR_C , /* รหัสอำเภอ */
campur.ampurname AS AMPUR_N , /* ชื่ออำเภอ */
POP.vhid AS VHID,
CONCAT(POP.HOSPCODE,chospital.hosname) AS HOSP_N , /*ชื่อหน่วยบริการ */
POP.CID,POP.PID,POP.`NAME`,POP.LNAME,POP.BIRTH as BIRTHDAY,
POP.TYPEAREA

,CASE WHEN epi.SEQ is not null THEN TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) ELSE null end as AGE_M_EPI /*'อายุ(เดือน) ณวันที่รับบริการepi' */
,CASE WHEN epi.SEQ is not null THEN concat(epi.HOSPCODE,'-',epi.SEQ) ELSE null end as SEQ_EPI
,CASE WHEN epi.SEQ is not null THEN epi.DATE_SERV ELSE null end as DATE_SERV_EPI
,epi.VACCINETYPE
#,DR.DIDSTD as DRUG_N /* ยาน้ำเสริมธาตุเหล็ก' */
#,DR.date_serv as DATE_SERV_DRUG
,'9-11M' as GroupAge /* เป้าหมาย 4 ช่วง 6-8M,9-11M,12-17M,18-24M */

FROM t_person_db POP
INNER JOIN chospital ON chospital.hoscode = POP.HOSPCODE
INNER JOIN cchangwat ON cchangwat.changwatcode = @prov_c
INNER JOIN campur ON campur.ampurcodefull = CONCAT(chospital.provcode,chospital.distcode)
INNER JOIN epi on POP.HOSPCODE = epi.HOSPCODE and POP.PID = epi.PID
AND epi.hospcode=epi.VACCINEPLACE AND epi.seq IS NOT NULL
AND epi.VACCINETYPE NOT in('111','112','113','114','115','106')
and epi.DATE_SERV BETWEEN @start_d and @end_d

Left JOIN tmp_drug_opd DR ON DR.HOSPCODE=POP.HOSPCODE AND DR.PID=POP.PID
AND SUBSTR(DR.DIDSTD,1,19) IN(
'1004890000008103305'
,'1004890000009501305'
,'1004974140020403305'
,'1004974140008008305'
,'1004890000009507305'
,'2020301200871801305'
,'1004880000086342304'
,'1004880000012801308'
,'1004880000042031217'
,'1004880000012801304' )
AND DR.date_serv BETWEEN @start_d AND @end_d

WHERE
(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) BETWEEN 9 AND 11)
and (epi.DATE_SERV BETWEEN @start_d and @end_d)
and POP.NATION = '099' AND POP.DISCHARGE = '9'
and DR.DIDSTD IS NULL #กรณีอยากตัดเฉพาะเด็กที่ไม่ได้รับยาน้ำ


group by POP.HOSPCODE,POP.CID #POP.PID
#order by DR.date_serv,epi.DATE_SERV,(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV)) asc;

Union
# กลุ่ม 12- 17 เดือน
SELECT SQL_BIG_RESULT
@b_year AS B_YEAR,
@prov_c AS PROV_C,
cchangwat.changwatname AS PROV_N, /* ชื่อจังหวัด */
chospital.distcode AS AMPUR_C , /* รหัสอำเภอ */
campur.ampurname AS AMPUR_N , /* ชื่ออำเภอ */
POP.vhid AS VHID,
CONCAT(POP.HOSPCODE,chospital.hosname) AS HOSP_N , /*ชื่อหน่วยบริการ */
POP.CID,POP.PID,POP.`NAME`,POP.LNAME,POP.BIRTH as BIRTHDAY,
POP.TYPEAREA

,CASE WHEN epi.SEQ is not null THEN TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) ELSE null end as AGE_M_EPI /*'อายุ(เดือน) ณวันที่รับบริการepi' */
,CASE WHEN epi.SEQ is not null THEN concat(epi.HOSPCODE,'-',epi.SEQ) ELSE null end as SEQ_EPI
,CASE WHEN epi.SEQ is not null THEN epi.DATE_SERV ELSE null end as DATE_SERV_EPI
,epi.VACCINETYPE
#,DR.DIDSTD as DRUG_N /* ยาน้ำเสริมธาตุเหล็ก' */
#,DR.date_serv as DATE_SERV_DRUG
,'12-17M' as GroupAge /* เป้าหมาย 4 ช่วง 6-8M,9-11M,12-17M,18-24M */

FROM t_person_db POP
INNER JOIN chospital ON chospital.hoscode = POP.HOSPCODE
INNER JOIN cchangwat ON cchangwat.changwatcode = @prov_c
INNER JOIN campur ON campur.ampurcodefull = CONCAT(chospital.provcode,chospital.distcode)
INNER JOIN epi on POP.HOSPCODE = epi.HOSPCODE and POP.PID = epi.PID
AND epi.hospcode=epi.VACCINEPLACE AND epi.seq IS NOT NULL
AND epi.VACCINETYPE NOT in('111','112','113','114','115','106')
and epi.DATE_SERV BETWEEN @start_d and @end_d

Left JOIN tmp_drug_opd DR ON DR.HOSPCODE=POP.HOSPCODE AND DR.PID=POP.PID
AND SUBSTR(DR.DIDSTD,1,19) IN(
'1004890000008103305'
,'1004890000009501305'
,'1004974140020403305'
,'1004974140008008305'
,'1004890000009507305'
,'2020301200871801305'
,'1004880000086342304'
,'1004880000012801308'
,'1004880000042031217'
,'1004880000012801304' )
AND DR.date_serv BETWEEN @start_d AND @end_d

WHERE
(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) BETWEEN 12 AND 17)
and (epi.DATE_SERV BETWEEN @start_d and @end_d)
and POP.NATION = '099' AND POP.DISCHARGE = '9'
and DR.DIDSTD IS NULL #กรณีอยากตัดเฉพาะเด็กที่ไม่ได้รับยาน้ำ


group by POP.HOSPCODE,POP.CID #POP.PID
#order by DR.date_serv,epi.DATE_SERV,(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV)) asc;

Union
# กลุ่ม 18 - 24 เดือน
SELECT SQL_BIG_RESULT
@b_year AS B_YEAR,
@prov_c AS PROV_C,
cchangwat.changwatname AS PROV_N, /* ชื่อจังหวัด */
chospital.distcode AS AMPUR_C , /* รหัสอำเภอ */
campur.ampurname AS AMPUR_N , /* ชื่ออำเภอ */
POP.vhid AS VHID,
CONCAT(POP.HOSPCODE,chospital.hosname) AS HOSP_N , /*ชื่อหน่วยบริการ */
POP.CID,POP.PID,POP.`NAME`,POP.LNAME,POP.BIRTH as BIRTHDAY,
POP.TYPEAREA

,CASE WHEN epi.SEQ is not null THEN TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) ELSE null end as AGE_M_EPI /*'อายุ(เดือน) ณวันที่รับบริการepi' */
,CASE WHEN epi.SEQ is not null THEN concat(epi.HOSPCODE,'-',epi.SEQ) ELSE null end as SEQ_EPI
,CASE WHEN epi.SEQ is not null THEN epi.DATE_SERV ELSE null end as DATE_SERV_EPI
,epi.VACCINETYPE
#,DR.DIDSTD as DRUG_N /* ยาน้ำเสริมธาตุเหล็ก' */
#,DR.date_serv as DATE_SERV_DRUG
,'18-24M' as GroupAge /* เป้าหมาย 4 ช่วง 6-8M,9-11M,12-17M,18-24M */

FROM t_person_db POP
INNER JOIN chospital ON chospital.hoscode = POP.HOSPCODE
INNER JOIN cchangwat ON cchangwat.changwatcode = @prov_c
INNER JOIN campur ON campur.ampurcodefull = CONCAT(chospital.provcode,chospital.distcode)
INNER JOIN epi on POP.HOSPCODE = epi.HOSPCODE and POP.PID = epi.PID
AND epi.hospcode=epi.VACCINEPLACE AND epi.seq IS NOT NULL
AND epi.VACCINETYPE NOT in('111','112','113','114','115','106')
and epi.DATE_SERV BETWEEN @start_d and @end_d

Left JOIN tmp_drug_opd DR ON DR.HOSPCODE=POP.HOSPCODE AND DR.PID=POP.PID
AND SUBSTR(DR.DIDSTD,1,19) IN(
'1004890000008103305'
,'1004890000009501305'
,'1004974140020403305'
,'1004974140008008305'
,'1004890000009507305'
,'2020301200871801305'
,'1004880000086342304'
,'1004880000012801308'
,'1004880000042031217'
,'1004880000012801304' )
AND DR.date_serv BETWEEN @start_d AND @end_d

WHERE
(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV) BETWEEN 18 AND 24)
and (epi.DATE_SERV BETWEEN @start_d and @end_d)
and POP.NATION = '099' AND POP.DISCHARGE = '9'
and DR.DIDSTD IS NULL #กรณีอยากตัดเฉพาะเด็กที่ไม่ได้รับยาน้ำ


group by POP.HOSPCODE,POP.CID #POP.PID
ORDER BY AMPUR_C,HOSP_N,PID,SEQ_EPI ASC;
#order by DR.date_serv,epi.DATE_SERV,(TIMESTAMPDIFF(MONTH,POP.BIRTH,epi.DATE_SERV)) asc;

#PROVIDER1_SQL#
Script Cron
Force Script Cron0
Active1
Client Office Type
Create Date2020-05-14 02:40:05
Last Update2020-06-29 03:55:30