Sunday, September 21, 2014

FYI ก่อนเริ่มปีงบ 2558 มาเช็ค person ที่มีทะเบียนและอาศัยอยู่ มากกว่า 1 ทีกัน

ก่อนอื่นมาเรียนรู้คำว่า FYI แรกผมก็งง แต่ตอนนี้เข้าใจแหละก็คือ for your information 

เริ่มต้นคือ อยากรู้ว่า ข้อมูลประชากร ที่อยู่ในฐานข้อมูลเรา ไปซ้ำกับข้อมูลคนอื่นบ้างหรือป่าว ง่ายๆๆ แบบว่า ก็เอามารวมกัน ตาราง person แต่ละรพ.สต. รวมถึง รพ.ด้วย โดบผมเติม ฟิว Hoscode เข้าไป 
ผมไม่เอาหมู่ 0 มาเพราะกว่าจะเยอะไป 
ได้ 79000 คน หารลงตัวด้วย  ใส่ hoscode ไว้ท้ายสุด จะได้รู้ว่า person ขอใคร

พอนำเข้าฐานข้อมูลเสร็จ ก็ RUN SQL  หาใน Google มา 2 วันแหละ ก็จะได้ ข้อมูลตามภาพ

SQL

SELECT cid,birthdate,age_y,COUNT(cid) as cc,
MAX(IF(hoscode = 10875, hoscode, NULL)) h10875,
MAX(IF(hoscode = 02600, hoscode, NULL)) h02600,
MAX(IF(hoscode = 02601, hoscode, NULL)) h02601,
MAX(IF(hoscode = 02602, hoscode, NULL)) h02602,
MAX(IF(hoscode = 02603, hoscode, NULL)) h02603,
MAX(IF(hoscode = 02604, hoscode, NULL)) h02604,
MAX(IF(hoscode = 02605, hoscode, NULL)) h02605,
MAX(IF(hoscode = 02606, hoscode, NULL)) h02606, 
MAX(IF(hoscode = 02607, hoscode, NULL)) h02607
from person
WHERE house_regist_type_id = "1"
GROUP BY cid
HAVING cc > 1


ต่อไปก็นำ SQL ไปให้ Yii ทำงาน 

กำหนดสิทธิ การเข้าใช้งาน
จบ
-----------------------------------------------
เหมาะสำหรับการจัดการข้อมูลเริ่มต้นปีงบประมาณ  ครับ เป้าจะได้ไม่เยอะ ไม่หลอกกัน ^_____^
ราตรีสวัส
#keepper

Monday, July 21, 2014

กรณีศึกษา Spam mail Window XP + NOD32 หมดอายุ/คปสอ.จักราช

 จากการ monitor Firewall  วันที่ 21 ก.ค. 2557 เพราะประสบปัญหา firewall ค้างหลายครั้ง พบว่า
มีการใช้งานรับ-ส่งข้อมูล Session IP x.x.x.17 5.2K


ตรวจสอบข้อมูลว่าข้อมูลถูกส่งไปไหน น่าจะเป็น Server Yahoo ที่ USA


 เมื่อตรวจสอบ Application พบว่า เป็นประเภท email

จากการ Remote ผ่าน Team view พบว่า โปรแกรม NOD 32 หมดอายุ ทำการอัพเดท ระบบก็สามารถตรวจจับผู้ร้ายได้มา 3 วัน จบข่าวครับ
a variant of Win32/SpamTool.Agent.NFO trojan
a variant of Win32/Kryptik.VLZ trojan
Win32/Oderoor.A trojan

สรุป:
1. หน่วยงานยังใช้ระบบ ปฏิบัติการ Window XP ซึ่งทาง MS ไม่ได้สนับสนุนเรื่องความปลอดภัยแล้ว
2. โปรแกรมไว้รัส ไม่อัพเดท ทำให้ไม่สามารถ ตรวจจับ ไวรัสได้
3.  เสนอแนะให้มีการอัพเดทโปรแกรมให้เป็นปัจจุบันครับ

@keepper

Tuesday, July 8, 2014

เก็บ รหัสตำบล ไว้ก่อนกันลืม ^_______^

02600 รพ.สต.หนองบัวตะแบง tmbpart = "03" and amppart = "06" and chwpart = "30"
02601 รพ.สต.สีสุก tmbpart = "04" and amppart = "06" and chwpart = "30"
02602 รพ.สต.หนองขาม tmbpart = "05" and amppart = "06" and chwpart = "30"
02603 รพ.สต.บ้านบุ tmbpart = "07" and amppart = "06" and chwpart = "30" and moopart in (1,2,3,6,7,8,10,12,14,15,16)
02604 รพ.สต.โคกพระ tmbpart = "07" and amppart = "06" and chwpart = "30" and moopart in (4,5,9,11,13)
02605 รพ.สต.ละกอ  tmbpart = "10" and amppart = "06" and chwpart = "30"
02606 รพ.สต.คลองเมือง tmbpart = "11" and amppart = "06" and chwpart = "30"

02607 รพ.สต.หินโคน tmbpart = "13" and amppart = "06" and chwpart = "30"

Thursday, May 1, 2014

ทดสอบคำสั่ง update table แบบ Multi row record ใน MySql

ยกตัวอย่าง ผมต้องการเอาข้อมูล HN จากตารางที่ 2 มาใส่ในตารางที่ 1 โดยผมเชื่อมด้วย vn
ตอนแรกผมเชื่อมกับตาราง vn_stat โดยตรงซึ่งข้อมูล ใหญ่มาก     ผมเลยสร้างตารางขึ้นมาใหม่ l_clinic_hn ซึ่งเก็บข้อมูล vn and hn ไว้

[SQL] UPDATE clinicmember_cormobidity_screen t1 ,(SELECT * from l_clinic_hn) as t2
SET t1.hn=t2.hn
WHERE t1.vn = t2.vn

Affected rows: 214
Time: 3.777ms

OK  ผ่านครับ
เรียนรู้มาจากเว็บนี้ครับ http://www.ict.buu.ac.th/Blog/Lists/Posts/Post.aspx?ID=1009

Thursday, April 10, 2014

ข้อมูล Service บัญชี 3 หาย /น้องจะโอ

วันนี้รับแจ้งจากน้องที่ทำงาน บอกว่าข้อมูลการให้บริการวันซีนหายไป Key กันอยู่เมื่อวาน วันนี้หายไปเฉยเลย
เอาแล้วไง ยืนยัน 2 เสี่ยงว่า Key ไปเมื่อวานนี้
จากการตรวจสอบข้อมูล จากฐานข้อมูล พบว่าหน้าบัญชี 3 หายไปจริง เอาแล้วไง งานเข้าของจริง

OK ครับกลับมาตั้งสติ อีกครั้ง
สิ่งที่คิดคำถามอยู่ในใจคือ

1. มีอาการลบข้อมูล ออกจากบัญชีใช่ป่าว
2. ไม่รู้อ่ะ คงเกิดขึ้นเองมั้งไฟฟ้าตก ฐานข้อมูลเลยหายไป 5555+



มาดูเฉลยดีกว่า พบว่า ข้อมูล มีการลงทะเบียนซ้ำ 2 ชื่อ จาก person_id
อันบนข้อมูลไม่สมบูรณ์ และยังไม่มีข้อมูล Service ด้วย
ผมได้ทำการลบข้อมูล อันแรกออก

ผล คือ  คืือ ...... ข้อมูลบัญชี 3 ก็ กลับมาแสดงผล ตามเดิมครับ

จบ ครับ
keepper

Thursday, March 27, 2014

กลุ่มเป้าหมายคัดกรองต้อกระจก ผู้สูงอายุ 60 ปีขึ้นไป /น้องจะโอ

SELECT p.person_id,p.cid,p.patient_hn,CONCAT(p.pname,p.fname,"  ",p.lname) as ptname,p.age_y,h.address,v.village_moo,
v.village_name,p.house_id,CONCAT(pp.pname,pp.fname,"  ",pp.lname,"(",m.village_organization_mid,")") as SSM from person p  
LEFT OUTER JOIN village v on v.village_id=p.village_id
LEFT OUTER JOIN house h on h.house_id=p.house_id    
LEFT OUTER JOIN village_organization_member_service s on s.house_id=p.house_id  
LEFT OUTER JOIN village_organization_member m on m.village_organization_mid=s.village_organization_mid    
LEFT OUTER JOIN person pp on pp.person_id=m.person_id  
WHERE p.age_y BETWEEN "60" and "110" and p.person_discharge_id = "9" and p.house_regist_type_id in ("1","3")
and p.village_id <> "1"  
ORDER BY v.village_id,m.village_organization_mid

KPI หากลุ่มเป้าหมายที่จะมาคัดกรอง ดึงจากตาราง Person และดึงชื่อ อสม.ที่รับผิดชอบ ออกมาด้วยเพื่อความสะดวกในการจัดเตรียม กลุ่มเป้าหมายเข้ารับการคัดกรอง ในหมู่บ้าน

Wednesday, March 19, 2014

คลินิคไตเรื้อรัง ค้นหาผู้ป่วยที่ admit pdx N184 and N185 /พี่ไก่

ก่อนอื่นให้หา "N184" and "N185" ขึ้นมาก่อน

SELECT * from an_stat
WHERE pdx BETWEEN "N184" and "N185" and regdate BETWEEN "2009-10-01" and "2010-09-30"

บอกด้วยเงื่อนไขมีภาวะแทรกซ้อน ซีด K สูง และมีภาวะ น้ำเกิน

SELECT * from an_stat
WHERE pdx BETWEEN "N184" and "N185" and regdate BETWEEN "2012-10-01" and "2013-09-30"
and hn in (SELECT hn from an_stat WHERE dx0 BETWEEN "D460" and "D649" or dx0 in ("E875","E877")
or dx1 BETWEEN "D460" and "D649" or dx2 BETWEEN "D460" and "D649" or dx3 BETWEEN "D460" and "D649" or
dx4 BETWEEN "D460" and "D649" or dx5 BETWEEN "D460" and "D649" AND regdate BETWEEN "2011-10-01" and "2012-09-30" )
and hn in (SELECT hn from an_stat WHERE dx0 = "E875" or dx1 = "E875" or dx2 = "E875" or dx3 = "E875" or dx4 = "E875" or dx5 = "E875"
AND regdate BETWEEN "2011-10-01" and "2012-09-30" )
and hn in (SELECT hn from an_stat WHERE dx0 = "E877" or dx1 = "E877" or
dx2 = "E877" or dx3 = "E877" or dx4 = "E877" or dx5 = "E877"
and regdate BETWEEN "2011-10-01" and "2012-09-30" )

By keepper

คำสั้่งเดิม 0 ให้ครบหลัก hn hosxp กรณีพิมพ์จาก Excell

คำสั้่งเดิม 0 ให้ครบหลัก hn hosxp

select lpad(hn,7,'0000') as hn2 from  l_clinic_eye_hn


 

Sample Text

111

Sample Text