Wednesday, December 26, 2012

การกำหนดแนวทางเพื่อไม่ไห้เกิดปัญหา ติด Pending Chronic2

การกำหนดแนวทางเพื่อไม่ไห้เกิดปัญหา ติด Pending  Chronic2 (Chronic DM/HT ตายจริง > 500 ราย)

1. ให้หน่วยงานที่รับผิดชอบออกสำรวจข้อมูลประชากรในพื้นที่รับชอบ เกิด, ตาย, ย้าย , การศึกษา, อาชีพ, หมู่เลือด และปรับ ประเภท บุคคล ประกอบด้วย  4 type area  ดังนี้ 
              1=มีชื่ออยู่ในทะเบียนบ้านและอาศัยอยู่จริง 
              2=มีชื่ออยู่ในทะเบียนบ้านแต่ไม่ได้อาศัยอยู่
              3=ไม่มีชื่อในทะเบียนบ้านแต่มาอาศัยอยู่
              4=ไม่มีชื่อ ไม่มีตัว (ผ่านมา) ,นอกเขตรับผิดชอบ,)

2.ทีมเยี่ยมบ้านสำรวจข้อมูลจากนั้นส่งข้อมูลการสำรวจให้ เจ้าหน้าที่ผู้รับผิดชอบ บันทึกข้อมูล ในบัญชี 1

3.ห้องบัตร หากมีข้อมูลผู้ที่เสียชีวิต ให้ ปรับสถานะผู้ป่วย (ใส่สาเหตุการตาย/ติ๊กยกเลิกใช้)

4.Clinic พิเศษ : 
    1. ส่งออกข้อมูลเฉพาะ case chronic ที่ยังรับบริการ หรือที่ดูแลอยู่ และหากมารับบริการอยู่ให้ลงสถานะเป็น เป็น "ยังรักษาอยู่" 
     2.สำหรับผู้ที่เสียชีวิต ให้ ปรับสถานะการรักษาเป็น "เสียชีวิต" และลง"จำหน่าย"
     3.ที่ไม่มารับบริการนานเกิน 1 ปี (และได้ติดตามแล้ว) ให้ปรับสถานะการรักษาเป็น "ขาดการติดต่อ" และ     ลง"จำหน่าย"

* สำหรับแนวทางการติดตามข้อมูล การเสียชีวิต มี 4 ช่องทาง
1. ออกสำรวจ 
2.ขอข้อมูลกับมหาดไทย
3.ข้อมูลจาก สปสช. (โดย สปสช. จะมีให้ Download ช่วงกลางเดือน มกราคม 56 )
4.ใช้วิธีการเอาคนไข้ที่ถูกขึ้นทะเบียน คลีนิคโรคเรื้อรัง  ทั้งหมด มาตรวจสอบ กับ โปรแกรม NHSO UCSearch Client3 Version 3.0  และใช้การตรวจสอบแบบกลุ่ม โดยการนำเลขบัตรประจำตัวประชาชน ส่งข้อมูลไปตรวจสอบ ที่ฐานข้อมูล สปสช. และจะได้สถานะการขึ้นทะเบียน และเสียชีวิต จากนั้นนำเอาเฉพาะข้อมูลผู้เสียชีวิต ไปปรับปรุงสถานะ ของผู้ที่ถูกลงทะเบียนในคลีนิคโรคเรื้อรังต่อไป  

สำหรับ โปรแกรม NHSO UCSearch Client3 Version 3.0 
 โหลดได้จากที่นี่     สำหรับ Win7  NHSO UCSearch Client3 Version 3.0 win7  
                                XP   NHSO_UCSearch_Client3_For_XP

คู่มือการใช้งาน คู่มือการใช้งาน

ไฟล์การต่ออายุ License_Manager ปี 2556 สำหรับเครื่องอ่านบัตร คลิก

***โปรแกรม NHSO_UCSearch_Client V.3



***โปรแกรม NHSO_UCSearch_Client V.3
รวมโปรแกรม 2 โปรแกรม คือ NHSO UCSearch Client Version 1.4.7 และ NHSO UCAuthentication เข้าด้วยกัน โดยที่ผู้ใช้งานไม่ต้องเสียเวลาในการติดตั้งโปรแกรม 2 ครั้งเหมือนเดิม ซึ่งสามารถลดระยะเวลาในการติดตั้งโปรแกรมลงมาก และเมื่อติดตั้งโปรแกรม NHSO UCSearch Client3 Version 3.0 เรียบร้อยแล้ว สามารถใช้งานฟังชั่นหลักมีความสามารถดังนี้ 

                     
  • ตรวจสอบสิทธิจากบัตรประจำตัวประชาชน
  • ตรวจสอบสิทธิ โดยใช้ เลขประจำตัวประชาชน 13 หลัก
  • ตรวจสอบสิทธิ โดยใช้ ชื่อ – สกุล
  • ตรวจสอบสิทธิแบบกลุ่ม
  • ตรวจสอบสิทธิออนไลน์ (UCSearch)
  • ปรับปรุงข้อมูลสิทธิประกันสุขภาพบนบัตร Smart Card

Script หาจำนวนบุคคลในบัญชี 1 (HOSxP)

เนื่องจากมีเพื่อนๆ ถามมาว่า หากต้องการทราบ จำนวนบุคคล ในเขตรับผิดชอบจะต้อง
เขียน Script ยังไง  ผมทำตัวอย่าง... มาดูกันเลย .. 

1. Script หาจำนวนหลังคาเรือน แยกหมู่ (ไม่รวมหมู่ 0)

select v.village_id,v.village_name,count(*)as cc
from house h
left outer join village v on v.village_id =h.village_id
where h.village_id not in(select village_id from village where village_moo ='0')
group by v.village_id

2. Script หาจำนวนบุคคล (type_area เป็น 1 กับ 3) แยกหมู่บ้าน  (ไม่รวมหมู่ 0)

select p.village_id,v.village_name,count(*)as cc
from person p
left outer join village v on v.village_id =p.village_id
where p.house_regist_type_id  in('1','3')
and p.village_id not in(select village_id from village where village_moo ='0')
group by p.village_id

3. Script หาจำนวนบุคคล (type_area เป็น 1 กับ 3) แยกหมู่บ้าน แยกเพศ  (ไม่รวมหมู่ 0)
select p.village_id,v.village_name,p.sex,count(*)as cc
from person p
left outer join village v on v.village_id =p.village_id
where p.house_regist_type_id  in('1','3')
and p.village_id not in(select village_id from village where village_moo ='0')
group by p.village_id ,p.sex





*** น่าจะพอทำกันได้นะครับ

Tuesday, December 25, 2012

พัฒนาระบบสารสนเทศด้านสาธารณสุขจังหวัดเพชรบูรณ์ (PHETCH-IS )


พัฒนาระบบสารสนเทศด้านสาธารณสุขจังหวัดเพชรบูรณ์ (PHETCH-IS)

วันนี้ ทีมสารสนเทศ ของสาธารณสุขจังหวัดเพชรบูรณ์ ได้มาร่วมระดมความคิด การพัฒนาระบบสารสนเทศด้านสาธารณสุข จังหวัดเพชรบูรณ์ (PHETCH-IS) ที่ ห้องประชุม ชมดาว รพ.วิเชียรบุรี


 โดยมีข้อสรุปเป็นรูปแบบในเฟสแรกดังนี้
PHETCH-IS 

P = Population by GIS (Google Map API)
-จำนวนประชากร
  - จากทะเบียนราษฎร์  อำเภอ หมู่บ้าน สถานพยาบาล
- ที่อาศัยอยู่จริง
       -  แยกเพศ แยกอายุ
  - แสดงสิทธิการรักษา

H = Health Index/Indicators
-Health Index
-อัตราเกิด อัตราตาย อัตราเพิ่มตามธรรมชาติ
-อายุคาดเฉลี่ย

-Health Indicators
- แม่และเด็ก 11 ตัวชี้วัด
-ข้อมูลตัวชี้วัดทุกกลุ่มงาน

E = Epidemiology
-แยกตามกลุ่มระบาดวิทยา 80 (เอา 10 อันดับโรค )
-แยกตามระดับพื้นที่
-แยกตามเวลา (สัปดาห์)
-แยกตามบุคล อายุ อาชีพ การศึกษา และเพศ
-โรคเรื้อรัง
-ภัยสุขภาพ
-อุบัติเหตุ

T = Teamwork/Workforces (PPIS)
-บุคลากรจำแนกสาขาวิชาชีพ
-บุคลากรตาม จ.18
-บุคลากรจำแนกตามอายุตัว/อายุราชการ
-บุคลากรจำแนกตามภาครัฐ/เอกชน
-เงินเดือน

C = Cost & Finance
-สถานะการ การเงินการคลัง  (ดึงจากตัวที่จังหวัด วิเคราะห์มาแล้ว )
-รายได้
-ค่าใช้จ่าย
-สินทรัพย์
-หนี้สิน
-ระดับวิกฤติ
-ประสิทธิภาพการบริการ ของ รพ. (12 แฟ้ม ,21 แฟ้ม )
- Bed occupacy Rate
- Bed turnoverate
- LOS
- CMI
-ต้นทุนการบริการ (ข้อมูลจังหวัด วิเคราะห์มาแล้ว )
-Total Cost
-Unit Cost
- การจัดสรรเงิน UC และ NON UC

H = Health facilities
- อุปกรณ์เครื่องมือแพทย์ CT X-RAY รถ Ambulance ,เครื่องล้างไต
- โรงพยาบาลรัฐ/เอกชน
- ความเชี่ยวชาญในด้านต่างๆ
- คลีนิค
- ร้านขายยา

HIS = Health Information System
-Other

 * เป็นข้อสรุปที่ทางทีมงานคิดไว้ แต่ต้องดูทางผู้บริหารอีกที ก็ถือว่าเป็นการเริ่มต้นที่ดี  ก็ติดตามตอนต่อไปนะครับว่าจะไปในทิศทางใด .....

*** โดยมีข้อสรุปว่าใช้ การพัฒนา ผ่าน PHP Web Service (JQuery Mobile)***

Tuesday, December 11, 2012

มาดูวิธีการทำ Table Archive (ตัดแบ่งข้อมูล) กันครับ ...

มาดูวิธีการทำ Table Archive (ตัดแบ่งข้อมูล) กันครับ ...

หากใช้งาน HOSxP มานานๆ หลายๆปี หรือมีการ Dump Database ขนาดใหญ่ๆและมีการใช้งานระบบมานานๆ น่าจะเคยพบอาการที่รู้สึกว่า ระบบจะมีอาการ อืดๆ หรือช่วงเวลาที่มีการใช้งานเยอะๆ (9.00น. -12.00น.)จะพบอาการหน่วงๆ  หลายๆท่านอาจจะคิดว่าเกิดจาก ระบบ Network หรือ Server รวมถึง MySQL จนต้องเปลี่ยน Server หรือ MySQL กันเลยที่เดียว แต่หลังจากเปลี่ยน ระบบก็ยังไม่ดีกว่าเดิมมากนัก (อาจช่วยได้บ้าง 10-30%) แต่ที่สำคัญผมคิดว่ามันเกิดปัญหาจาก Database ที่มีบาง Table ที่มีขนาดใหญ่ มากๆ เช่น opitemrece ,opdscreen , ovst , vn_stat    ก็เคยเรียนรู้ปัญหานี้จาก รพ. แห่งหนึ่งที่มีขนาดของข้อมูลขนาดใหญ่และมี Connection ที่เยอะมากๆ ลองแก้ไขกันแล้ว ก็ยังไม่ดีขึ้น จึงลองปรึกษา อ.MN แห่ง HOSxP และ อ.ได้ มีแนวทางการแก้ปัญหาไว้......ดังนั้น หากท่านพบปัญหาดังกล่าว มาดูวิธีการแก้ปัญหานี้กันเลย (บอกไว้ก่อนว่าอยู่ในช่วงทดสอบ .....นะครับ ทั้งนี้ทั้งนั้นต้องทดสอบกันก่อน บริบทแต่ละที่แตกต่างกันครับ...)


****มาทำความเข้าใจกันก่อนว่า ฐานไม่เล็กลง แต่ตารางจะถูกซอยข้อมูลเก่า ๆ ออกจากตารางหลัก ทำให้ทำงานและประมวลผลและ ปรับโครงสร้างฐานข้อมูลในตารางสำคัญได้ง่ายขึ้นครับ..เหมาะกับ รพ.ที่ใช้งานระบบมาเกิน 5 ปี และมี visit เกิน 150000 ต่อปี ขึ้นไปครับ...ถ้ามีข้อมูลน้อย ก็ไม่ต้องใช้ครับ..ย้ำว่าทดสอบกับเครื่องทดสอบ กันก่อนที่จะทำจริง ของใหม่ Not Warranty ...

หากเข้าใจกันแล้ว ไปกันเลย ...


อันดับแรก เข้าไปตามนี้ครับ





จากนั้นไปเลือก Table Archive




จากนั้นเข้า ไปตามนี้



จากนั้นเข้าไปเลือกตารางที่ต้องการทำ Table Archive  หลังจากเลือกแล้วให้รอ ให้ระบบ คำนวณ จำนวน Record ของข้อมูล โดยจะแยกเป็นปี(หากมีข้อมูลจำนวณมาก จะใช้เวลานาน กรุณารอ... ไปหากาแฟกินสักถ้วย ...) และระบบจะให้ทำกับข้อมูลย้อนหลัง ที่เกิน 5 ปีเท่านั้น ....




โปรแกรม จะคำนวณข้อมูลออกเป็นปีๆให้ จากภาพ เนื่องจากผมได้ทดสอบย้ายไปแล้ว 2 ปี (2006,2007)เลยทำให้ ไม่แสดง หากเลือก Tab History จะแสดงปีที่ได้แบ่งไปแล้ว ให้คลิกเลือกปี ที่ต้องการตัดแบ่ง



คลิก ยืนยันการทำ จากนั้น โปรแกรม จะทำการ ย้ายข้อมูลไปที่ ไปที่ตารางใหม่ ใน Database เดียวกัน   เพราะฉนั้นขนาด DB ยังเท่าเดิม เพียงแค่ ตัดตารางหลักตามปีที่ต้องการไปเท่า ให้เหลือข้อมูลไว้ในตารางใช้งานแค่ 5 ปี แต่ใน Patient EMR สามารถดูข้อมูลได้ .....ในขั้นตอนการตัด จะใช้เวนาน เพราะจะมีการ ทำ Trigger แล้วจะ Clone ตารางไปยัง tmp Table เช่น tmp_opitemrece จากนั้น ค่อยตัดข้อมูล เมือตัดข้อมูลเสร็จ จะ rename กลับมาเป็น opitemrece อีกที รวมกับข้อมูลที่เปลี่ยนแปลง จาก Trigger (ขั้นตอนเหมือนกับ Alter Table เพราะฉนั้นจะใช้เวลานานตามขนาดของข้อมูล แม้ว่าข้อมูลที่ต้องการตัดมีเพียง 100 Record ก็ตาม ... โปรด ระมัดระวังครับ ระบบจะหน่วงแน่นอน ....) 



หลังจากตัดจะได้ ข้อมูลที่ ตัดดังภาพ และสามารถนำข้อมูลที่ตัด นำกลับไปยัง ตารางหลัก โดยคลิกเลือกรายการ จากนั้นคลิกที่ ปุ่ม  Undo archive




*** ก็พอจะเห็นภาพ และวิธีการทำนะครับ จะดีไม่ดียังไง  ท่านก็ลองทดสอบ และวินิจฉัยกันเองนะครับ ของใหม่ Not Warranty  ย้ำว่าทดสอบกับเครื่องทดสอบ กันก่อนที่จะทำจริง จะได้รู้ปัญหา..และที่สำคัญ แต่ละที่ไม่เหมือนกัน และถ้ามีข้อมูลน้อยไม่เกิดปัญหาก็ไม่มีความจำเป็นที่จะต้องทำด้วยครับ ***


.....By Admin@บ้านนอก  รวบรวมจาก HOSxP.Net




Monday, December 10, 2012

การกำหนดค่า HOSxP เมื่อขึ้น ปีใหม่

การกำหนดค่า HOSxP เมื่อขึ้น ปีใหม่

ก็จะผ่านไปอีก 1 ปีแล้วนะครับ จะขึ้นปีใหม่กันอีกแล้ว ... พอถึงปีใหม่ที่ไร ผมก็จะได้รับโทรศัพท์จากเพื่อนๆ ว่าเมื่อขึ้นปีใหม่แล้วจะต้องปรับอะไรกับโปรแกรม  HOSxP บ้าง... เพราะฉนั้นก่อนที่วันนั้นจะมาถึงเรามาเรียนรู้กันก่อนจะได้ไม่ตื่นเต้นกัน .....

มาดูกันก่อนนะครับว่าสิ่งที่มีการปรับมีอะไรบ้าง
1.HN (สำหรับที่ใดที่มีการนำปี พ.ศ.นำหน้า ถ้าท่านไม่ใช้ แบบนี้ก็ ข้ามไป) ระบบจะออกให้
2.AN ตัวนี้ก็เช่นกันระบบ จะออกให้  เช่น 5600000001

3. เลข XN  ยกตัวอย่าง เช่น ต้องการให้รัน เป็นรูปแบบ  5600000 ให้ไปเพิ่ม   ในตาราง Serial  โดยการไปเพิ่มในตารางตรงๆ ผ่าน SQL Query โดยการเพิ่ม name = xn-2556  และ serial_no =   5600000      หรือใช้คำสั่ง

insert into serial (name,serial_no) values ('xn-2556','5600000')

4.เลข DN  ยกตัวอย่าง เช่น ต้องการให้รัน เป็นรูปแบบ  5600000 ให้ไปเพิ่ม   ในตาราง Serial  โดยการไปเพิ่มในตารางตรงๆ ผ่าน SQL Query โดยการเพิ่ม name = dn-2556  และ serial_no =   5600000      หรือใช้คำสั่ง

insert into serial (name,serial_no) values ('dn-2556','5600000')



5. ส่วน ตาราง Refer จะประกอบไปด้วย เลขส่ง Refer และรับ Refer  โดยใน ตาราง Serial 
   i_refer_number เลข refer เข้า
   o_refer_number เลข refer ออก

*ให้เพิ่ม หลังจาก เที่ยงคืนวันที่ 31 ธันวาคม (ขึ้นปีใหม่แล้ว)

 โดยการไปเพิ่มในตารางตรงๆ ผ่าน SQL Query 
Select * from serial where name in ('i_refer_number','o_refer_number')

แล้วเพิ่ม   และ serial_no =   5600000      หรือใช้คำสั่ง

update serial
set serial_no = '5600000'
where name in ('i_refer_number','o_refer_number')

6. Lab Number (สำหรับที่ใดที่มีการนำปี พ.ศ.นำหน้า ถ้าท่านไม่ใช้ แบบนี้ก็ ข้ามไป)   สามารถไปเพิ่มในตารางตรงๆ ผ่าน SQL Query โดยใช้คำสั่ง 

Select * from serial where name ='lab_order_number'

โดยการเพิ่ม   และ serial_no =   5600000      หรือใช้คำสั่ง


update serial
set serial_no = '5600000'
where name  ='lab_order_number'


7. Finance Number (สำหรับที่ใดที่มีการนำปี พ.ศ.นำหน้า ถ้าท่านไม่ใช้ แบบนี้ก็ ข้ามไป)

  สามารถไปเพิ่มในตารางตรงๆ ผ่าน SQL Query โดยใช้คำสั่ง 

Select * from serial where name ='finance_number''

โดยการเพิ่ม   และ serial_no =   5600000      หรือใช้คำสั่ง


update serial
set serial_no = '5600000'
where name  ='finance_number'

หลักๆ ก็มีแค่นี้ครับ ....หากมีอีกจะมา Update กันต่อไป...