เริ่มมีงานเข้าแล้ว!!
สิ่งแรกที่ต้องคิดคือ ใครเป็นคนลงข้อมูล และลงข้อมูลยังไง สุดท้ายจะรู้ได้อย่างไรว่าลงข้อมูลแล้ว ?
> ผมได้เริ่มจากลองส่งออก 21 แฟ้มไฟล์ และลองเปิดไฟล์ Chronicfu.txt ดู
> ในที่สุดก็เจอ ตอ ... จากการสันนิฐาน ว่าการลงข้อมูลคงเข้าใจอะไรกันผิดแน่ๆเลยทำให้ส่งข้อมูลไม่ออกทั้งๆที่คีย์หมดแล้ว
พระเอก ของงานนี้คือตาราง clinic_visit ครับ
วิธีการคือ
1. ต้องดูว่าผู้ป่วยชื่ออะไรบ้างที่ได้รับการคีย์ตรวจ เท้า+ตา บ้าง (โดยดูจากข้อมูลจริงๆที่เจ้าหน้าที่ลงข้อมูลนะครับ.."one stop service ") หรือใช้ sql ตัวนี้รันดูครับ
SELECT clvit.vn as 'VN_CHECK', ov.pdx AS pdx1, ov.vn AS vn1, ovst.vstdate AS vstdate1, pt.hn AS hn1,
pt.pname AS pname1, pt.fname AS fname1, pt.lname AS lname1
FROM vn_stat ov
LEFT JOIN patient pt ON pt.hn = ov.hn
LEFT JOIN ovst ovst ON ov.vn = ovst.vn
LEFT JOIN clinic_visit clvit ON ov.vn = clvit.vn
LEFT JOIN clinicmember clm ON ov.hn = clm.hn
WHERE ((ov.pdx = "Z131") OR (ov.dx0 = "Z131") OR (ov.dx1 = "Z131") OR
(ov.dx2 = "Z131") OR (ov.dx3 = "Z131") OR (ov.dx4 = "Z131") OR
(ov.dx5 = "Z131")) AND ov.vstdate BETWEEN "2014-02-01" AND "2014-02-28"
"จาก script ด้านบน ให้เน้นที่ VN_CHECK ดูนะครับว่ามี อะไรขึ้นรึเปล่า ถ้ามีแสดงว่าคีย์ถูกต้องตามที่ สสจ.แจ้งไป ชี้ชัดๆนะครับ ถ้ามี ข้อมูลไม่ต้องทำต่อข้อ 2. ถ้าไม่มี มาดูกันนะครับว่าจะทำไงต่อ อิอิ ^.^"
2. จากนั้นก็มารัน script อันที่ 2 กันเลยดีกว่านะครับ
ก่อนอื่นต้องทำความเข้าใขก่อนนะครับว่า script นี้ต้องรันแบบระมัดระวังครับเพราะต้องทำครั้งเดียว โดยหลักการคือว่า ผมต้องเอา VN ของคนที่มาตรวจคัดกรอง foot+Ratina ไปเพิ่มที่ตาราง clinic_visit เพราะฉนั้นต้องทำ sql ให้แน่ใจก่อนนะครับว่าถูกต้องจริงๆไม่อย่างนั้น....... ตัวใครตัวเนานะครับ +_+ ! รันเลยแล้วกันไม่เสียเวลาแล้วนะครับ
INSERT into clinic_visit (hn,vn,clinic,visit_type)
SELECT ov.hn ,ovst.vn , if(clm.clinic is null, '001' ,clm.clinic ) ,1
FROM vn_stat ov
left join patient pt on pt.hn = ov.hn
left join ovst ovst on ov.vn = ovst.vn
left join clinic_visit clvit on ov.vn = clvit.vn
left join clinicmember clm on ov.hn = clm.hn and clm.clinic in('001')
WHERE (((ov.pdx = "Z131") OR (ov.dx0 = "Z131") OR (ov.dx1 = "Z131") OR
(ov.dx2 = "Z131") OR (ov.dx3 = "Z131") OR (ov.dx4 = "Z131") OR
(ov.dx5 = "Z131")) AND ov.vstdate BETWEEN "2014-02-01" AND "2014-02-28" )
" ** กดปุ่ม Exec ครั้งเดียวนะครับ เบาๆ เพราะไม่อย่างนั้น จะเพิ่มมากกว่าปกติครับ อิอิ"
3. ทดลองส่งออก 21 แฟ้มไฟล์อีกรอบนะครับ
%%%% ขอให้โชคดีครับ _/\_ %%%%
ในชุดคำสั่ง Insert ข้างล่าง ผมมีความเห็นว่าไม่ควรใช้รหัส ICD10 เป็นตักำหนด แต่น่าจะใช้คลินิกที่ส่งตรวจ (ตามนัดจากครั้งที่แล้ว) [=> คลินิกเบาหวาน/ความดัน...นั่นเอง] มาเป็นตัวกำหนดมากกว่า เพื่อเลียนแบบการทำงานจริงตาม pop up ของโปรแกรม
ตอบลบขอบคุณอาจารย์โก้ที่ชี้แนะครับผม ... ยังไงก็คงฝากผู้ที่นำโค้ดนี้ไปใช้นะครับว่าต้องใช้ด้วยความระมัดระวังนะครับ (โปรดใช้ประสบการณ์ในการใช้งานนะครับ) _/\_
ตอบลบ