คำสั่งที่ 1 ปรับข้อมูลของ type area ของตาราง PATIENT = PERSON
1> update patient,person set patient.type_area = person.house_regist_type_id where patient.cid = person.cid ;
คำสั่งที่ 2 ปรับข้อมูลบุคคลในตาราง patient ที่ไม่มีรายชื่อในตาราง person ให้มี type_area เป็น 4 ทุกราย
2> update patient set type_area = 4 where cid not in(select cid from person) ;
วันพฤหัสบดีที่ 30 เมษายน พ.ศ. 2558
วันพุธที่ 26 มีนาคม พ.ศ. 2557
ข้อมูลในบัญชี 1 เพิ่มเองโดยไม่ทราบสาเหตุ
ก่อนอื่นต้องขสวัสดีอย่างเป็นทางการกับผู้รักการอ่านนะครับ _/\_ "สวัสดีครับ" ^.^
วันนี้ผมได้รับแจ้งจากเจ้าหน้าที่ฝ่าย PCU ครับว่า "ข้อมูลในบัญชี 1 เพิ่มขึ้น และประชากรใน บ้านเลขที่ 1 ของแต่ละหมู่ มันมีจำนวนมากกว่าปกติ !"?. เป็นคำถามที่ผมเองก็ไม่รู้เหมือนกัน ฮ่าๆๆ.....
ผมได้พยายามจำลองเหตุการที่อาจจะเกิดขึ้นโดยพอจะสรุปออกมาดังนี้นะครับ
1. มีคนมาเพิ่มข้อมูลของแต่ละหมู่เองโดยไม่ได้แจ้งให้เจ้าหน้าที่ทราบ(เจ้าหน้าที่ของ PCU เอง)
2. เกิดจากโปรแกรมเพิ่มเองโดยอัตโนมัติ ...... (ในข้อนี้ผมคิดเล่นๆครับ)
3. เกิดจากการเพิ่มโดยตั้งใจที่จะแกล้งกันเฉยๆ ..... (อันนี้ก็ขำๆ)
เฮ้อ.....คิดไม่ออกจริงๆครับ .......... แต่ก็ไม่ได้เกินความพยายามของเราจริงๆครับ .. ผมก็เจอจนได้ครับ
สาเหตุจริงๆก็คือ ....... การเพิ่มบุคคลใหม่ในส่วนของห้องบัตร(งานเวชระเบียน) ครับ เป็นการเข้าใจไม่ถูกของเจ้าหน้าที่ห้องบัตร ครับ
วันนี้ผมได้รับแจ้งจากเจ้าหน้าที่ฝ่าย PCU ครับว่า "ข้อมูลในบัญชี 1 เพิ่มขึ้น และประชากรใน บ้านเลขที่ 1 ของแต่ละหมู่ มันมีจำนวนมากกว่าปกติ !"?. เป็นคำถามที่ผมเองก็ไม่รู้เหมือนกัน ฮ่าๆๆ.....
ผมได้พยายามจำลองเหตุการที่อาจจะเกิดขึ้นโดยพอจะสรุปออกมาดังนี้นะครับ
1. มีคนมาเพิ่มข้อมูลของแต่ละหมู่เองโดยไม่ได้แจ้งให้เจ้าหน้าที่ทราบ(เจ้าหน้าที่ของ PCU เอง)
2. เกิดจากโปรแกรมเพิ่มเองโดยอัตโนมัติ ...... (ในข้อนี้ผมคิดเล่นๆครับ)
3. เกิดจากการเพิ่มโดยตั้งใจที่จะแกล้งกันเฉยๆ ..... (อันนี้ก็ขำๆ)
เฮ้อ.....คิดไม่ออกจริงๆครับ .......... แต่ก็ไม่ได้เกินความพยายามของเราจริงๆครับ .. ผมก็เจอจนได้ครับ
สาเหตุจริงๆก็คือ ....... การเพิ่มบุคคลใหม่ในส่วนของห้องบัตร(งานเวชระเบียน) ครับ เป็นการเข้าใจไม่ถูกของเจ้าหน้าที่ห้องบัตร ครับ
จากภาพจะเห็นว่า มีสองปุ่มให้เลือกนะครับ เรามาทำความเข้าใจกันนะครับว่าเขาคืออะไร!!!
อยู่ในเขตรับผิดชอบ หมายถึง เป็นคนที่มี type_area เป็น 1 เมื่อเทียบกับข้อมูลแฟ้ม person (เมื่อเพิ่มคนที่มีที่อยู่ในเขตรับผิดชอบของ PCU ผู้ที่เพิ่มคนใหม่ในระบบต้องติ๊กเป็น อยู่ในเขตรับผิดชอบเท่านั้น ห้ามลืม ถ้าลืมคนที่ถูกเพิ่มจะไปอยู่ที่บ้านเลขที่ 1 และหมู่คือไปตามที่ลงข้อมูลครับ)
อยู่ในเขต CUPS หมายถึง เป็นคนที่มี type_area เป็น 4 เมื่อเทียบกับข้อมูลแฟ้ม person แต่ว่าผู้ที่ถูกเพิ่มอยู่ใน cup ของแต่ละอำเถอนะครับ
กรณีที่ผู้ถูกเพิ่มไม่อยู่ในเกณฑ์ของทั้งสองข้อนี้ก็ไม่ต้องติ๊กอะไร เพราะนั่นคือผู้ป่วยนอกเขตจริงๆ
ขอจบการแก้การปวดหัวเพียงเท่านี้ก่อนนะครับ มีอะไรใหม่ๆคงได้มาแลกเปลี่ยนเรียนรู้กันนะครับผม
%%%%%%%%%%%%% ขอให้โชคดีครับ _/\_ %%%%%%%%%%%%%%%
วันศุกร์ที่ 21 มีนาคม พ.ศ. 2557
ChronicFU กับการส่งออก Foot+Ratina
หลังจากที่ใช้ความพยายามมาหลายครั้งกับการแก้ไขเรื่องของตาราง ChronicFu ทีได้ทำการคีย์ข้อมูลการตรวจ ตา(Ratina) และ ตรวจ เท้า(Foot) ทำให้เกิดข้อสังเกตุที่ว่า " ทำไมข้อมูลไม่ออกอย่างที่ควรเป็น "
ก๊าก ! ข้อมูลออกครับ แต่ช่อง Foot + Ratina เป็น 2 และ 8 (ซึ่งแปลว่า ไม่ได้ตรวจ) งานเข้าแน่ๆ
> ในที่สุดก็เจอ ตอ ... จากการสันนิฐาน ว่าการลงข้อมูลคงเข้าใจอะไรกันผิดแน่ๆเลยทำให้ส่งข้อมูลไม่ออกทั้งๆที่คีย์หมดแล้ว
พระเอก ของงานนี้คือตาราง 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 แฟ้มไฟล์อีกรอบนะครับ
%%%% ขอให้โชคดีครับ _/\_ %%%%
เริ่มมีงานเข้าแล้ว!!
สิ่งแรกที่ต้องคิดคือ ใครเป็นคนลงข้อมูล และลงข้อมูลยังไง สุดท้ายจะรู้ได้อย่างไรว่าลงข้อมูลแล้ว ?
> ผมได้เริ่มจากลองส่งออก 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 แฟ้มไฟล์อีกรอบนะครับ
%%%% ขอให้โชคดีครับ _/\_ %%%%
วันพุธที่ 27 กุมภาพันธ์ พ.ศ. 2556
Windows 7 กับการจัดเรียงข้อมูลบน HDD
Windows 7 กับการจัดเรียงข้อมูลบน HDD (Defragmenter)
ก่อนอื่นต้องขอกล่าวคำว่าสวัสดีก่อนนะครับ ^.^ เรื่องต่อไปนี้ผมจะขอกล่าวในส่วนของการใช้งานเครื่องมือที่สำเร็จรูปที่มาในระบบปฏิบัติการ วินโดว์ เซเว่น ครับ .. มาเริ่มกันเลยดีกว่านะครับ
หมายเหตุ : การ Defragmenter เป็นการจัดเรียงข้อมูลที่อยู่บน ฮาร์ดดิสท์เราให้สามารถเรียกใช้งานได้เร็ว
ก่อนอื่นต้องขอกล่าวคำว่าสวัสดีก่อนนะครับ ^.^ เรื่องต่อไปนี้ผมจะขอกล่าวในส่วนของการใช้งานเครื่องมือที่สำเร็จรูปที่มาในระบบปฏิบัติการ วินโดว์ เซเว่น ครับ .. มาเริ่มกันเลยดีกว่านะครับ
เข้าไปที่เมนู สตาร์ท >> All program >> Accessories >> System Tool >> Disk Defragmenter
สามารถตั้งเวลาได้ด้วยครับ วาว! เจ๋งจริงๆ ครับพี่น้อง
%%%%%% ขอบคุณครับที่เข้ามาแวะชมครับ ผม %%%%%%
สมัครสมาชิก:
บทความ (Atom)



