QOF 02 ร้อยละผู้ได้รับการคัดกรองและวินิจฉัยเป็นความดันโลหิตสูง
ID | 790 |
---|---|
Parent ID | 53 |
Table Name | _sk_qof60_kpi02_ht |
Title | QOF 02 ร้อยละผู้ได้รับการคัดกรองและวินิจฉัยเป็นความดันโลหิตสูง |
Description | |
Script | #SQL_OPTIONS# PROVIDERS=1 PROVIDER1=43STD PROVIDER1_VALIDATE_TABLES=accident,admission,anc,appointment 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; SET @b_year:='2018'; SET @start_d:=concat(@b_year-1,'-04-01'); SET @end_d:=concat(@b_year,'-03-31'); SET @start_a:='1942-04-01'; SET @end_a:='1982-03-31'; #--------------------------------------------- # ลบและสร้างตารางผลงานคัดกรองจาก ncdscreen #--------------------------------------------- DROP TABLE IF EXISTS _qof61_kpi02_t_ncdscreen; CREATE TABLE IF NOT EXISTS _qof61_kpi02_t_ncdscreen( `HOSPCODE` varchar(5) NOT NULL DEFAULT '', `PID` varchar(15) NOT NULL DEFAULT '', `CID` varchar(13) NOT NULL, `date_serv` date DEFAULT NULL, `SBP_1` int(3) DEFAULT NULL, `DBP_1` int(3) DEFAULT NULL, PRIMARY KEY (`CID`), KEY (`HOSPCODE`,`PID`,`CID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; #--------------------------------------------- # ใส่ข้อมูลผลงานคัดกรองแล้วใส่ cid ให้ทุกบริการ สุดท้ายตัดเหลือ cid เดียว # เรียงลำดับบริการแรก #--------------------------------------------- INSERT IGNORE INTO _qof61_kpi02_t_ncdscreen (SELECT p.HOSPCODE ,p.PID ,p.CID ,n.date_serv,n.SBP_1,n.DBP_1 FROM person p INNER join ncdscreen n on n.HOSPCODE=p.HOSPCODE and n.PID=p.PID where BIRTH BETWEEN @start_a and @end_a and NATION='099' and cid is not null and LENGTH(TRIM(cid))=13 and cid<>'0000000000000' and DATE_SERV BETWEEN @start_d and @end_d and (SBP_1>30 or DBP_1>20) GROUP BY p.cid ORDER BY DATE_SERV # เรียงลำดับบริการแรก ); #--------------------------------------------- # ลบและสร้างตารางเป้าหมาย จาก t_person_db ยังไม่ตัด CID ซ้ำ #--------------------------------------------- DROP TABLE IF EXISTS _qof61_kpi02_tmp_persondb; CREATE TABLE IF NOT EXISTS _qof61_kpi02_tmp_persondb( SELECT check_hosp,pid,cid,typearea from t_person_db where BIRTH BETWEEN @start_a and @end_a and NATION='099' and cid is not null and cid<>'0000000000000' and LENGTH(TRIM(cid))=13 ORDER BY concat(cid,if(typearea in(1,3),1,0),d_update) DESC # เรียงลำดับด้วยคนในเขตฯก่อน หากtypearea1,3 ซ้ำซ้อน ค่อยเรียงด้วย d_update ล่าสุด ); #--------------------------------------------- # ลบและสร้างตารางเป้าหมายและผลงานคัดกรอง #--------------------------------------------- DROP TABLE IF EXISTS _qof61_kpi02_t_HT_screen; CREATE TABLE IF NOT EXISTS _qof61_kpi02_t_HT_screen( `HOSP_DB` varchar(5) NOT NULL DEFAULT '', `CID` varchar(13) NOT NULL, `typearea` varchar(1) DEFAULT NULL, `H_screen` varchar(5) DEFAULT NULL, `date_serv` varchar(255) DEFAULT NULL, `SBP_1` int(3) DEFAULT NULL, `DBP_1` int(3) DEFAULT NULL, `type_dx` varchar(2) DEFAULT NULL, `date_dx` varchar(100) DEFAULT NULL, PRIMARY KEY (`CID`), KEY (`HOSP_DB`,`CID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; #--------------------------------------------- # ใส่กลุ่มเป้าหมายทั้งหมด แล้วตัดให้เหลือ cid เดียว #--------------------------------------------- INSERT IGNORE INTO _qof61_kpi02_t_HT_screen ( SELECT p.check_hosp HOSP_DB ,p.CID ,p.typearea,NULL,NULL,NULL,NULL,NULL,NULL FROM _qof61_kpi02_tmp_persondb p WHERE cid not in(SELECT cid FROM t_dmht WHERE type_dx in('01','03') and left(date_dx,10) < @start_d) GROUP BY p.cid ); #----------------------------------- # นำผลงานคัดกรอง(รวมนอกเขต) เข้าจาก NCDSCREEN #----------------------------------- UPDATE _qof61_kpi02_t_HT_screen s ,_qof61_kpi02_t_ncdscreen n SET s.H_screen=n.hospcode #สถานบริการที่ให้บริการก่อน ,s.date_serv = n.date_serv ,s.SBP_1 = n.SBP_1 ,s.DBP_1 = n.DBP_1 WHERE s.cid=n.cid ; #--------------------------------------------- # ใส่การวินิจฉัยผป.รายใหม่จาก t_dmht เฉพาะคนที่คัดกรองแล้วมีความเสี่ยง #--------------------------------------------- UPDATE _qof61_kpi02_t_HT_screen s ,t_dmht SET s.type_dx=t_dmht.type_dx ,s.date_dx=t_dmht.date_dx WHERE s.cid=t_dmht.cid and t_dmht.type_dx in('01','03') and left(t_dmht.date_dx,10) BETWEEN @start_d and @end_d and (SBP_1>140 or DBP_1>90) ; #--------------------------------------------- # ลบทิ้งก่อน ใช้ร่วมกัน ทั้ง DM & HT #--------------------------------------------- DROP TABLE IF EXISTS _qof61_kpi02_t_ncdscreen; DROP TABLE IF EXISTS _qof61_kpi02_tmp_persondb; SELECT * FROM _qof61_kpi02_t_HT_screen; #PROVIDER1_SQL# |
Script Cron | |
Force Script Cron | 0 |
Active | 1 |
Client Office Type | |
Create Date | 2017-06-12 10:47:27 |
Last Update | 2017-12-28 02:46:07 |
- Home
- About
- Privacy Policy
- Terms of Use
- Contact Us
© 2015. All Rights Reserved.