วันอังคารที่ 5 พฤษภาคม พ.ศ. 2558

บันทึกประวัติการอบรมภายนอกหน่วยงาน


ระบบบันทึกประวัติการอบรมภายนอกหน่วยงาน โจทย์ปัญหาที่ดูเหมือนง่ายแต่ไม่ง่าย  
เดิมระบบนี้หน่วยงานได้คิด  ว่าบุคลากรแต่ละคนที่ไปอบรมคีย์ข้อมูลของใครของมันเลย  ใครไปที่ใหนก็คีย์เอา
แต่มีคำถามต่อมาคืV

  1.     กรณีไปมากกว่า 1 คนในโครงการเดียว  เราจะรู้ว่าโครงการนี้ไปกี่คนได้อย่างไร 
  2.      กรณีไปหลายๆ คนในโครงการเดียวกันจะลดภาระการคีย์ข้อมูลได้อย่างไร 2 -3 คนพอไหว  บางโครงการไป 5-6 คนจะทำอย่างไร่
  3.   แน่ใจได้อย่างไรว่าแต่ละคนที่ไปโครงการนั้นๆ คีย์ข้อมูลถูก

เป็นโจทย์ให้ทีมสารสนเทศต้องคิดในการออกแบบข้อมูลในการคีย์ครั้งนี้

    จึงได้ศึกษาตามกระบวนการทำงานเก่า  ของ HRD  ที่ทำอยู่ปัจจุบัน  พบว่า  ก่อนที่บุคลากรจะไปฝึกอบรม ต้องมีการขออนุมัติทุกครั้งผ่าน HRD อยู่แล้วจึงให้นำข้อมูลการขออนุมัตินั้นมาคีย์ข้อมูลก่อน

กระบวนการจึงเป็นดังนี้

1.  ให้ HRD  คีย์ข้อมูลรายละเอียดโครงการที่ไปฝึกอบรมก่อน
2.  เมื่อ ผู้ใช้ไปอบรมเสร็จแล้วมาคีย์รายละเอียดการฝึกอบรมในโปรแกรมโดยเลือกตามชื่อโครงการที่ไป




วันจันทร์ที่ 27 เมษายน พ.ศ. 2558

โปรแกรมบริหารความเสี่ยง

     ระบบความเสี่ยงเป็นระบบหนึ่งที่สำคัญในระบบคุณภาพ  ซึ่งแต่ละหน่วยงานก็แสวงหาโปรแกรมนำมาใช้ในหน่วยงานเพื่อให้สามารถตอบสนองตัวต่อความต้องการของหน่วยงาน  และเพื่อใช้ในการตอบโจทย์ของอาจารย์ HA เป็นหลัก  อาจารย์ถามอะไรมาเราก็เก็บไว้  และนำมาพัฒนา  ตอบโจทย์ผิดบ้างถูกบ้างก็ว่ากันไป
   โปรแกรมใหนคิดว่าใช้ได้  ก็แสวงหากันมาใช้   เมื่อโปรแกรมที่นำมาใช้ยังไม่ได้ตอบสนองความต้องการของผู้ใช้ภายในหน่วยงานในบางจุด   ทางทีมจึงมีการเริ่มวิเคราะห์แต่ละโปรแกรม หาข้อดึและข้อเสียของแต่ละโปรแกรมแล้วนำมาต่อยอด
    โชคดีที่ทางทีมมีเครือข่ายที่ใจดี  คือรพ.จิตเวชสระแก้วฯ  นำโดย น้องไปร์ ใจดี  ทศพรรษ  แพรสุวรรณ     แจกโปรแกรมความเสี่ยงที่ได้พัฒนาโปรแกรมความเสี่ยง  ของโรงพยาบาลจิตเวชสระแก้วฯ  นำมาให้ทดสอบการใช้งาน     จากที่คุยกับความเสี่ยงคือระบบของรพ.สระแก้วฯ ดีมาก  แต่ยังต้องมีการปรับบางจุดให้เข้ากับหน่วยงาน  
             เช่น 
              -   ระดับของผู้ใช้ แบ่ง เป็น 3 ระดับ
              -   มีการกรองข้อความก่อนส่งไปยังหน่วยงาน
              -  ผังการส่งข้อมูลปรับใหม่
             -  สิทธิการใช้  การเห็นข้อมูล
              - ระบบรายงาน  

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

ตัวอย่างหน้าตาโปรแกรม


หน้าเมื่อ Login  

หน้าจอส่วนของ การ Login ด้วยUser ผู้ดูแล



     สำหรับผู้สนใจในตัวโปรแกรมความเสี่ยง  สามารถเข้าไปไปศึกษาและดาวน์โหลดได้ในกลุ่มนี่ Facebook ตามลิ้งค์นี้ครับ   https://www.facebook.com/groups/1682089378699345/




วันศุกร์ที่ 24 เมษายน พ.ศ. 2558

การออกแบบระบบการฝึกอบรมภายในหน่วยงาน

   การเก็บประวัติการฝึกอบรบภายในหน่วยงานนั้นเป็นโจทย์หนึ่งที่หน่วยงานคิดแก้ปัญหาในการคีย์ข้อมูลที่ซ้ำซ้อนอย่างไร  ลดการคีย์ข้อมูลอย่างไร  

- เงื่อนไขคือ 1 โครงการสามารถมีคนเข้าได้หลายคน
-  ในหนึ่งโครงการสามารถจัดได้หลายวัน  1 คนอาจเข้าร่วมโครงการจำนวนชั่วโมงได้ไม่เท่ากัน

การออกแบบการจัดเก็บ  จึงใช้แนวคิดในการ
1. สร้างตารางสำหรับจัดเก็บข้อมูลของโครงการ
2. สร้างตารางการฝึกอบรมของบุคลากร  โดยเชื่อมโยงข้อมูลระหว่างตาราง โดยใช้รหัสโครงการเป็นตัวเชื่อม

การใชังาน
1. บันทึกรายละเอียดของโครงการที่จัดก่อน
2. เลือกบันทึกบุคลากรที่เข้าอบรบ  โดยเงื่อนไข  สามารถแก้ไขวัน  และแก้ไขเวลาที่เข้าได้


1. บันทึกรายละเอียดโครงการ



2.  ค้นหาโครงการเพื่อบันทึกข้อมูลบุคลากร


3.บันทึกผู้เข้าร่วมโครงการ

         ผังการทำงานช่วงต้นจะฝ่าย HRD  เป็นผู้คีย์ข้อมูลก่อนเนื่องจากปัจจุบันเป็นงานที่ต้องทำอยู่แล้ว
เป้าหมายถัดไปคีย์ให้ผู้จัดโครงการเป็นผู้คีย์ข้อมูล

       หน้าการจัดอาจจะไม่ซับซ้อนมากนัก  ทางทีมพยายามคิดเพื่อหาทางแก้ไขปัญหาเพื่อลดการซ้ำซ้อนของการคีย์ข้อมูล ท่านใดสนใจเมื่อโปรแกรมเสร็จแล้ว จะแจกเหมือนเดิมครับ

เพราะมีคนเคยสอนผมว่า  "การได้รับอาจจะมีความสุข  แต่การได้ให้มีความสุขยิ่งกว่าครับ"



วันอาทิตย์ที่ 22 กุมภาพันธ์ พ.ศ. 2558

คำสั่ง Select ซ้อน SELECT คำสั่งในการหาข้อมูลการลาแยกประเภท



SELECT a.empno as empno,a.firstname as fistname ,a.lastname as lastname ,d.depName as dep,po.posname as posname,
(select sum(amount) FROM WORK WHERE a.empno=enpid and typela = 1) t1,
(select sum(amount) FROM WORK WHERE a.empno=enpid and typela = 2) t2 ,
(select sum(amount) from WORK where a.empno=enpid and typela = 3) t3 ,
(select sum(amount) from WORK where a.empno=enpid and typela = 4) t4 ,
(select sum(amount) from WORK where a.empno=enpid and typela = 5) t5 ,
(select sum(amount) from WORK where a.empno=enpid and typela = 6) t6 ,
(select sum(amount) from WORK where a.empno=enpid and typela = 7) t7 ,
(select count(typela) from WORK where a.empno=enpid and typela=1) l1 ,
(select count(typela) from WORK where a.empno=enpid and typela=2) l2 ,
(select count(typela) from WORK where a.empno=enpid and typela=3) l3 ,
(select count(typela) from WORK where a.empno=enpid and typela=4) l4 ,
(select count(typela) from WORK where a.empno=enpid and typela=5) l5 ,
(select count(typela) from WORK where a.empno=enpid and typela=6) l6 ,
(select count(typela) from WORK where a.empno=enpid and typela=7) l7 ,
(select sum(total) from timela where a.empno=empno ) time1 ,
(select count(*) from timela where a.empno=empno ) time2
from emppersonal a
left outer join department d on d.depid=a.depId
left outer join posid po on po.posId=a.posid  
LEFT OUTER JOIN work w on w.enpid=a.empno
GROUP BY a.empno