รพจศ

วันจันทร์ที่ 22 สิงหาคม พ.ศ. 2559

การเก็บ logfile ของ apache แบบแบ่งเป็นรายวัน


apache accesslog,วิธีแก้ apache access มีขนาดใหญ่
     กราบสวัสดีทุกท่าน ท่ามกลางกระแสการปรับเงินเดือนอันอึมครึม และสวัสดีมิตรรักแฟนเพลง ช่วงนี้ผมยังคงวนเวียนอยู่แถว apache webserver เพราะยังมีอะไรอีกหลายอย่างที่ยังเรียนรู้ไม่หมด คาดว่าคงเอามาเขียนเป็นบันทึกกันลืมได้อีกยาว วันนี้มาพูดกันถึงเรื่องของ logfile ครับ ใครที่ใช้ apache แล้วไม่ได้ไปแก้ค่าให้ตัว apache สร้าง logfile แบบวันต่อวันคงต้องปวดหัวเรื่อง accesslog ของเจ้าตัว apache อยู่ไม่น้อยเพราะมันจะมีขนาดใหญ่ขึ้นทุกวันจนต้องหาโปรแกรมที่สามารถเปิดดู log ขนาดใหญ่ได้ เช่น apachelogviewer ซึ่งจริงๆแล้วเราสามารถกำหนดให้ apache สร้าง logfile เป็นรายวันได้ด้วยการแก้ไขเพียงบรรทัดเดียวในไฟล์  httpd.conf  ดังต่อไปนี้
1.ต้องมี rotatelogslogs ก่อน (ส่วนมากจะอยู่ใน bin แต่คาดว่าน่าจะมีทุกคน)
2.เปิดไฟล์ httpd.conf มาแล้วก็แก้
เป็น linux ก็
CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common   //สร้าง logfile การใช้งาน 86400 วินาที (24 ชั่วโมง)   
CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common    //สร้าง logfile โดยเครื่องหมาย . ในที่นี้คือตัวคั่นระหว่างชื่อไฟล์เช่น logfile.2012.09.18 ก็จะได้ประมาณนี้ครับ 
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common  //อันนี้กำหนดขนาดของ logfile ไม่ให้เกิน 5 M


ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"   //อันนี้กำหนดขนาดของ logfile ไม่ให้เกิน 5 M พร้อมทั้งใส่ปีเดือนวันและเวลา

เป็น windows ก็
CustomLog "|bin/rotatelogs.exe   logs/access.%y-%m-%d.log 86400" common         //ก็จะได้เป็นชื่อไฟล์ เช่น access.2012-09-18.log
พอแก้เสร็จแล้วให้ save แล้ว restart service apache ครับ

*ข้อควรระวัง*
เวลาแก้ไขให้ใช้วิธีใส่เครื่องหมาย # ไว้หน้าคำสั่งเก่าเช่น เพื่อป้องกันความผิดพลาดหากเราเขียนเครื่องหมายผิดไป service apache มันจะไม่ยอม start ให้นะครับ
#CustomLog logs/access.log common Modify by champ 9:35 170955
CustomLog "|bin/rotatelogs.exe logs/access.%y-%m-%d.log 86400" common
ขอให้ภาระกิจลุล่วงครับ ^^

อ้างอิง
http://httpd.apache.org/docs/2.2/programs/rotatelogs.html
เครดิต http://share.psu.ac.th/blog/champy-it/25167

วันอังคารที่ 26 กรกฎาคม พ.ศ. 2559

เพิ่มวัคซีนJEเชื้อเป็น

1.เพิ่มข้อมูลที่ตารางperson_vaccine
2.เพิ่มข้อมูลตาราง epi_vaccine
3.ทำให้วัคซีนรู้จักกันโดยเพิ่มที่ตาราง vaccine_combination
4.ส่งรหัสวัคชีนออก provis ทำให้รู้ว่าเราส่งออก43แฟ้มเป็นรหัสอะไร เพิ่มใน provis_vcctype

วันจันทร์ที่ 25 กรกฎาคม พ.ศ. 2559

SQL วันล่ะเล็กละน้อย

การมารับริการใน รพ
select s.vn,s.hn,s.vstdate,s.vsttime as "มา",s.service3,s.service4 as "ดึงมาซักประวัติ",s.service11 as "บันทึกซักประวัติเสร็จ",s.service5 as "เริ่มตรวจ",

s.service12 as "บันทึกตรวจเสร็จ",s.service6 as "บันทึกรายการยา MOD2",s.service7 as "ออกใบเสร็จรับเงิน" ,
sec_to_time(time_to_sec(service6)-time_to_sec(vsttime)) as total_time

from service_time s
where s.vstdate between "2016-01-01" and "2016-06-01"
and s.service3 is not null and s.service6 is not null
and s.service3 >= "08:00:00" and s.service3 <= "16:00:00"
and s.service6 > s.service3
and s.service6 > service5
order by s.vn

วันอังคารที่ 29 ธันวาคม พ.ศ. 2558

การเขียนรายงาน HOSxp เบื้องต้น ฉบับที่ 1

  ไม่ว่าโปรแกรมอะไรที่มีการเขียนขึ้นมาใช้ ฟังก์ชันที่ขาดไม่ได้ในการทำงานคือ การออกรายงานวันนี้เรามาดูกันว่าการเขียนรายงานในHosxp ทำอย่างไรบ้าง ในที่นี้ขอข้ามการแนะนำโปรแกรมที่ใช้ออกแบบรายงาน มาเริ่มกันเลย
       1. เข้าโปรแกรมออกรายงานซึ่งมีมาให้พร้อมกับการติดตั้งHoxp เปิดโปรแกรมขึ้นมาจะได้หน้าตาแบบนี้แล้วเลือก Custom Report

        2. ในขั้นแรกให้เลือกรายงานมาสักตัวหนึ่งขึ้นมาก่อน แล้วกด ที่ปุ่มDesign เพื่อเข้าไปเปลี่ยนชื่อ รายงาน แล้วกดปิดรายงานนั้นออกไป
จะมีปุ่มSave Report ขึ้นมาให้ทำการเปลี่ยนชื่อรายงานเป็นอย่างอื่น แล้วกด Save Report ตัวอย่าง เปลี่ยนชื่อจาก CUSTOM-  รายงาน สรุปค่ารักษาพยาบาลส่วนต่าง แยกตามสิทธิเกณฑ์คงค้าง และรายสิทธิ1 >>CUSTOM-รายงานผู้มารับบริการ ที่แผนกผู้ป่วยนอก แล้วบันทึก ระบบจะทำการสร้างรายงาน
ให้ใหม่โดยยังมีรายงานเดิมอยู่ เหมือนกับทำการคัดลอกรายงานในชื่อใหม่

3. ค้นหารายงานที่เราทำการเปลี่ยนชื่อไว้  
กดNext
ให้ทำการวางScript หรือ SQL ที่ทำการQuery แล้วลงไปแทนอันเดิม แล้วให้ลากคลุม Parameterที่จะใช้ส่งค่า แล้วทำการกดปุ่ม + ด้านบน  ถ้าส่งวันที่ไปเวลาเราเรียกใช้รายงานจะมีpop upให้เราเลือกวันที่ไปด้วย เช่น


เลือก NEXT  จะได้ดังรูป คือระบบจะทำตามคำสั่งSQLที่เราวางไว้ก่อนหน้าแล้วแสดงข้อมูลขึ้นมา


แล้วกดปุ่ม Design  แล้วทำการลบข้อมูลเก่าออกให้หมดจะได้หน้ารายงานว่างๆ
จากนั้นให้ทำการลากข้อมูลมาใส่ได้ตามอัธยาศัย ข้อมูลจะอยู่ที่ด้านขวามือ






ทำการpreview ดูก่อนได้แล้วทำการSaveเลย จบขั้นต้น







วันศุกร์ที่ 25 ธันวาคม พ.ศ. 2558

Select ข้อมูลให้มี 0ติดมาข้างหน้า เช่น 0000005

จากปัญหาที่เราไม่สามารถเลือกข้อมูลคนไข้ให้ครบ บางที่ใช้ 7 หลัก บางที่ใช้ 9 หลัก แต่บังเอิญทางที่ต้องส่งข้อมูลเขาต้องส่งข้อมูลเป็นเลข 9 หลัก โดยให้เติม 0 เข้าไปข้างหน้า เอาแล้วๆ ทำไงน้อ
ลองใช้คำสั่งดังต่อไปนี้ปัญหาจะหมดไป

LPAD(String,Lent,Place String)
        string = ฟิวด์ข้อมูลที่เราเลือก
        Lent = ขนาดของตัวเลขที่จะเติมให้เต็ม
        Place String = ตัวอักขระที่จะเพิ่มเข้าไป