QOF 07 การคัดกรองภาวะซึมเศร้าในกลุ่มเป้าหมายที่กำหนด
ID | 787 |
---|---|
Parent ID | 53 |
Table Name | _sk_qof60_kpi07_depression |
Title | QOF 07 การคัดกรองภาวะซึมเศร้าในกลุ่มเป้าหมายที่กำหนด |
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 @prov_c := '22'; SET @b_year:=@rep_year; SET @start_d:='2017-04-01'; SET @end_d:='2018-03-31'; ##########เตรียมข้อมูลแฟ้ม specialpp ตามช่วงเวลาที่กำหนด########## DROP TABLE IF EXISTS _qof60_kpi07_tmp_specialpp; CREATE TABLE IF NOT EXISTS _qof60_kpi07_tmp_specialpp( PRIMARY KEY (HOSPCODE,PID,DATE_SERV,PPSPECIAL) ,KEY (cid) ,KEY (hospcode,pid) ,KEY (date_serv) ,KEY (ppspecial) )( SELECT s.HOSPCODE,s.PID,s.SEQ,MIN(s.DATE_SERV) AS 'DATE_SERV',s.SERVPLACE, s.PPSPECIAL,s.PPSPLACE,s.PROVIDER,s.D_UPDATE,p.CID FROM specialpp s LEFT JOIN person p ON s.HOSPCODE=p.HOSPCODE AND s.PID=p.PID WHERE DATE_SERV BETWEEN @start_d AND @end_d AND s.PPSPECIAL IN ('1B026','1B0282','1B0283','1B0284','1B0285') GROUP BY s.HOSPCODE,s.PID ); ##########เตรียมข้อมูลแฟ้ม diag_opd ตามช่วงเวลาที่กำหนด########## #GROUP BY ให้เหลือกวันที่ แรกสุด DROP TABLES IF EXISTS _qof60_kpi07_tmp_diag_opd; CREATE TABLE IF NOT EXISTS _qof60_kpi07_tmp_diag_opd ( KEY(cid),KEY(hospcode),KEY(pid),KEY(seq),KEY(date_serv),KEY(diagcode),KEY(diagtype),KEY(hospcode,pid,seq) ) ENGINE=MyISAM AS( SELECT SQL_BIG_RESULT o.HOSPCODE,o.PID,o.SEQ,MIN(o.DATE_SERV) 'DATE_SERV',o.DIAGTYPE,o.DIAGCODE,o.CLINIC,o.PROVIDER,o.D_UPDATE,p.CID FROM diagnosis_opd o LEFT JOIN t_person_db p ON o.HOSPCODE=p.HOSPCODE AND o.PID=p.PID WHERE DATE_SERV BETWEEN @start_d AND @end_d AND DIAGCODE = 'Z133' GROUP BY o.HOSPCODE,o.PID ); ##########สร้างตารางเก็บข้อมูล แม่ท้อง และผู้สูงอายุ ผู้สูงอายุ########## DROP TABLE IF EXISTS _qof60_kpi07_t_depression; CREATE TABLE IF NOT EXISTS _qof60_kpi07_t_depression ( hospcode varchar(5) DEFAULT NULL, areacode varchar(8) DEFAULT NULL, cid varchar(13) NOT NULL DEFAULT '', pid varchar(15) DEFAULT NULL, age_y int(3) DEFAULT '0', Group_id int(1) DEFAULT '0', Group_name varchar(8) DEFAULT NULL, Typearea varchar(1) DEFAULT NULL, dbpop_Hmain varchar(5) DEFAULT NULL, dbpop_Hsub varchar(5) DEFAULT NULL, dbpop_MainInScl varchar(5) DEFAULT NULL, special_FirstDate date , special_Hosp varchar(5) DEFAULT NULL, special_SEQ varchar(16) DEFAULT NULL, special_Instype varchar(4) DEFAULT NULL, ppsplace varchar(5) DEFAULT NULL, diag_FirstDate date , diag_Hosp varchar(5) DEFAULT NULL, diag_SEQ varchar(16) DEFAULT NULL, diag_type varchar(1) DEFAULT NULL, diag_Diagcode varchar(6) DEFAULT NULL, PRIMARY KEY (hospcode,pid), KEY (hospcode), KEY (cid), KEY (pid), KEY (areacode), KEY (typearea) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ### STEP1### ##################นำเข้าข้อมูลหญิงตั้งครรภ์สัญชาติไทยในเขตรับผิดชอบ ทุกหน่วยบริการ################### #1.ไม่ได้ตัดคนซ้ำตัดซ้ำระหว่างสถานบริการ ## INSERT IGNORE INTO _qof60_kpi07_t_depression( hospcode,areacode,cid,pid,age_y,group_id,typearea ) SELECT pe.hospcode AS HOSPCODE ,p.check_vhid AS areacode ,pe.cid,pe.pid #,age(DATE_FORMAT(CONCAT(@b_year,'0101'),'%Y%m%d'),pe.birth,'y') as age_y ,TIMESTAMPDIFF(YEAR,pe.BIRTH,'2016-04-01') as age_y ,'1' AS group_id ,p.check_typearea AS TYPEAREA FROM t_person_db p ,t_person_anc pe WHERE pe.hospcode=p.HOSPCODE AND pe.pid=p.PID /*ใช้ hospcode ,pid เชื่อมหาข้อมูลแม่*/ #AND substr(p.check_vhid,1,2)=@prov_c #AND p.nation=99 AND p.DISCHARGE=9 #AND p.check_typearea in(1,3,4) ORDER BY check_hosp,check_typearea; UPDATE _qof60_kpi07_t_depression SET group_name = 'หญิงท้อง' WHERE group_id=1; ### STEP2### #######################นำเข้าผู้สูงอายุ 60 ปี ขึ้นไป คนไทย 099 ในพื้นที่ของแต่ละหน่วยบริการ มีชีวิตอยู่################ #1.ไม่ได้ตัดคนซ้ำตัดซ้ำระหว่างสถานบริการ ##2.นำเข้าข้อมูลที่ได้รับบริการในสถานบริการนั้นๆ INSERT IGNORE INTO _qof60_kpi07_t_depression( hospcode,areacode,cid,pid,age_y,group_id,typearea ) SELECT pe.check_hosp HOSPCODE ,pe.check_vhid as areacode ,pe.CID,pe.PID ,p.age_y ,'2' group_id ,pe.check_typearea TYPEAREA FROM t_person_db pe LEFT JOIN t_person_cid p ON pe.CID=p.CID /*จอยเพื่อนำอายุมาใช้งาน*/ WHERE #substr(pe.check_vhid,1,2)=@prov_c #AND pe.nation=99 AND pe.DISCHARGE=9 #AND p.age_y>=60 AND TIMESTAMPDIFF(YEAR,pe.BIRTH,'2016-04-01') >= 60 #AND pe.check_typearea in(1,3) ORDER BY pe.check_hosp,pe.check_typearea; UPDATE _qof60_kpi07_t_depression SET group_name = 'สูงอายุ' WHERE group_id=2; ### STEP3### ###นำเข้าข้อมูลการคัดกรองsหญิงตั้งครรภ์ และ สิทธิรักษาพยาบาลที่ใช้ในขณะรักษาพยาบาล### UPDATE _qof60_kpi07_t_depression z ,_qof60_kpi07_tmp_specialpp t ,service s SET z.special_FirstDate=t.DATE_SERV , z.special_Hosp=t.HOSPCODE ,z.ppsplace=t.ppsplace, z.special_SEQ=s.SEQ, z.special_Instype=s.INSTYPE WHERE z.hospcode=t.HOSPCODE AND z.pid = t.CID AND t.hospcode=s.HOSPCODE AND t.pid=s.PID AND t.seq=s.SEQ AND t.date_serv=s.DATE_SERV AND t.PPSPECIAL IN ('1B026') AND group_id = '1'; ###นำเข้าข้อมูลการคัดกรองผู้สูงอายุ และ สิทธิรักษาพยาบาลที่ใช้ในขณะรักษาพยาบาล### UPDATE _qof60_kpi07_t_depression z ,_qof60_kpi07_tmp_specialpp t ,service s SET z.special_FirstDate=t.DATE_SERV , z.special_Hosp=t.HOSPCODE ,z.ppsplace=t.ppsplace, z.special_SEQ=s.SEQ, z.special_Instype=s.INSTYPE WHERE z.hospcode=t.HOSPCODE AND z.pid=t.PID AND t.hospcode=s.HOSPCODE AND t.pid=s.PID AND t.seq=s.SEQ AND t.date_serv=s.DATE_SERV AND t.PPSPECIAL IN ('1B0282','1B0283','1B0284','1B0285') AND group_id = '2'; ### STEP4### ###นำเข้าข้อมูลสทิธิรักษาพยาบาลจากฐานข้อมูล DBPOP### UPDATE _qof60_kpi07_t_depression z ,dbpop d SET z.dbpop_Hmain=d.HMain , z.dbpop_Hsub=d.Hsub , z.dbpop_MainInScl=d.MainInScl WHERE z.cid=d.PID; ### STEP5### ####นำเข้าข้อมูล diag_opd รหัส Z133 ตามวันที่ที่รับบริการได้รับบริการ specialpp ###### #1.นำเข้าขอมูล diag UPDATE _qof60_kpi07_t_depression z , _qof60_kpi07_tmp_diag_opd d ,service s SET z.diag_Hosp=d.HOSPCODE,z.diag_FirstDate=d.DATE_SERV ,z.diag_SEQ=d.SEQ, z.diag_Diagcode=d.DIAGCODE, z.diag_Type=d.DIAGTYPE WHERE z.hospcode=d.HOSPCODE AND z.pid=d.PID AND d.hospcode=s.HOSPCODE AND d.pid=s.PID AND d.seq=s.SEQ AND d.date_serv=s.DATE_SERV AND d.DIAGCODE = 'Z133'; #####STEP 6 ##### #สร้างตารางเก็บข้อมูล One Recorde DROP TABLE IF EXISTS _qof60_kpi07_t_depression_cid; CREATE TABLE IF NOT EXISTS _qof60_kpi07_t_depression_cid ( hospcode varchar(5) DEFAULT NULL, areacode varchar(8) DEFAULT NULL, cid varchar(13) NOT NULL DEFAULT '', pid varchar(15) DEFAULT NULL, age_y int(3) DEFAULT '0', Group_id int(1) DEFAULT '0', Group_name varchar(8) DEFAULT NULL, Typearea varchar(1) DEFAULT NULL, dbpop_Hmain varchar(5) DEFAULT NULL, dbpop_Hsub varchar(5) DEFAULT NULL, dbpop_MainInScl varchar(5) DEFAULT NULL, special_FirstDate date , special_Hosp varchar(5) DEFAULT NULL, special_SEQ varchar(16) DEFAULT NULL, special_Instype varchar(4) DEFAULT NULL, ppsplace varchar(5) DEFAULT NULL, diag_FirstDate date , diag_Hosp varchar(5) DEFAULT NULL, diag_SEQ varchar(16) DEFAULT NULL, diag_type varchar(1) DEFAULT NULL, diag_Diagcode varchar(6) DEFAULT NULL, PRIMARY KEY (cid), KEY (hospcode), KEY (cid), KEY (pid), KEY (areacode), KEY (typearea) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ################################################## #1.ทำข้อมูลเป็น One Recorde #2. เลือกเอาเฉพาะข้อมูลที่มีวันรับบริการน้อยที่สุด ลงในตาราง #3. ข้อมูลการได้รับบริการจะตรงกับ สถานบริการที่ให้บริการครั้งแรก INSERT IGNORE INTO _qof60_kpi07_t_depression_cid ( SELECT * FROM _qof60_kpi07_t_depression WHERE LENGTH(TRIM(cid))=13 ORDER BY diag_FirstDate ASC ); #####STEP สุดท้าย##### # นับจำนวนข้อมูล แยกรายสถานบริการ SELECT * FROM _qof60_kpi07_t_depression_cid; #PROVIDER1_SQL# |
Script Cron | |
Force Script Cron | 0 |
Active | 1 |
Client Office Type | |
Create Date | 2017-01-29 03:44:50 |
Last Update | 2017-12-27 02:14:48 |
- Home
- About
- Privacy Policy
- Terms of Use
- Contact Us
© 2015. All Rights Reserved.