Subscribe:

Ads 468x60px

:: เพื่อแลกเปลี่ยนเรียนรู้ในงานITที่ใช้ในงานด้านสาธารณสุขของเจ้าหน้าที่สาธารณสุขในจังหวัดสตูล

ถ่ายทอดoppp56

        เป็นคลิปเสียงจากการประชุมการพัฒนาระบบข้อมูลOPPP2556 ในวันที่ 28 มิถุนายน 2555 ณ โรงแรมหรรษา เจบี วิทยากร โดย คุณชัยวัฒน์ จาก สปสช. เอามาให้ผู้ที่ไม่มีโอกาสเข้าฟังได้ศึกษา
ขอบคุณ พี่ Gwagk Chimpleepak  แห่ง สสจปัตตานี เป็นอย่างสูง
clipมีทั้งหมด 5 ตอนนะครับ(ได้รับอนุญาตจากเจ้าของเสียงแล้ว)



ขอขอบคุณพี่อั้น Gwagk Chimpleepak จากใจจริงอีกครั้งครับ
การคิดแต้มใน 21 แฟ้ม ปีงบสปสช 2556 (1กค.55-30มิย.56)

ขอบคุณลุงหนวดที่เผยแพร่ และเจ้าของไฟล์...ด้วยครับ
-ใช้โครงสร้างมาตรฐานข้อมูล 21 แฟ้ม ที่ปรับแก้ใหม่ (เวอร์ชัน 5.0) ซึ่ง สำนักนโยบายและยุทธศาสตร์ จะประกาศใช้ในปีงบประมาณ 2556 วันที่ 1 ตุลาคม 2555 ทั้งนี้ สปสช. เริ่มใช้ชุดมาตรฐานข้อมูล 21 แฟ้ม เวอร์ชัน 5.0 กับข้อมูลที่มีวันที่บริการ(date_serv) ตั้งแต่วันที่ 1 กรกฎาคม 2555
-รับข้อมูลเพียงรูปแบบเดียว เป็นแบบ Zip file ที่รวมข้อมูลทั้ง 21 แฟ้มไว้ด้วยกัน (ยกเลิกการรับข้อมูลแบบ Package) โดยรับ File ในรูปแบบชื่อ F21_HCODE_YYYYMMDDhhmmss.zip
-ช่องทางการรับส่งข้อมูลยังคงใช้รูปแบบและช่องทางเหมือนกับที่ดำเนินการในปี 2555 คือ ให้ โรงพยาบาล ส่งข้อมูลโดยตรงผ่านทางเว็บไซต์ของระบบ OP/PP Individual records คือ http://op.nhso.go.th/op/ ในส่วนของ รพสต./สสช. ให้ส่งข้อมูลมาที่สำนักงานสาธารณสุขจังหวัดสตูลผ่านทางระบบ Provis ของ สสจ.สตูล ที่ http://provis.stno.moph.go.th/
 -เงื่อนไขการรับส่งข้อมูล ในปี 2556 ที่มีการเปลี่ยนแปลง คือ จะมีการประมวลผลแฟ้มเพิ่มเติม เป็น 17 แฟ้ม ที่เหลือจำนวน 4 แฟ้ม จะไม่ประมวลผลใดๆ คือ แฟ้ม APPOINT, CARD, HOME, WOMAN
-การตรวจสอบข้อมูลและการคิดคะแนน ในส่วนของขอมูลการให้บริการผู้ป่วยนอก OP แฟ้มที่ใช้ในการตรวจสอบ คือ SERVICE , DIAG, DRUG, PROCED และการตรวจสอบข้อมูลรายบริการ(รายแฟ้ม)ได้แก่แฟ้ม PERSON, EPI, FP, ANC, MCH, PP, CHRONIC, SURVEIL, NUTRI, DEATH, NCDSCREEN, CHRONICFU, LABFU โดยมีหลักการตรวจสอบและเงื่อนไขที่สำคัญ ในแต่ละแฟ้ม ดังนี้
 แฟ้ม PERSON จะให้มีการจัดส่งได้ปีละ 1 ครั้ง คือให้ส่งได้ในเดือน กรกฎาคม 2555
 แฟ้ม CHRONIC เป็นข้อมูลการลงทะเบียนโรคเรื้อรังของบุคคล ที่อยู่ในเขตรับผิดชอบของสถานบริการ ซึ่งจะต้องทำการจัดส่งได้ปีละ 1 ครั้ง คือให้ส่งได้ในเดือน กรกฎาคม 2555
 แฟ้ม MCH และ PP จะต้อง มีข้อมูล วันที่ดูแลแม่และเด็ก ครบ 2 ครั้ง และให้ส่งข้อมูลที่ดูแลครบ 2 ครั้ง หรือ 3 ครั้ง และส่งได้ครั้งเดียว ถ้าดูแลไม่ครบ 2 ครั้ง หรือ 3 ครั้ง จะไม่มีการประมวลผลคิดคะแนนให้
 แฟ้ม SURVIEL ในส่วนของโรงพยาบาลจะต้องมีการบันทึกและส่งข้อมูลให้ทาง สปสช.ภายในเวลาที่กำหนดคือ 7 วันนับจากวันที่ให้บริการ และในส่าวนของ รพ.สต./สสช. วันที่ส่งข้อมูลคิดจากวันที่ สสจ.ส่งให้ สปสช.
 แฟ้ม Nutri จะตรวจสอบวันที่สำราจ(DATE_SERV)และรอบการจัดส่งข้อมูล (Month)ในกรณีเด็กอายุ 0-5 ปี DATE_SERV=กรกฎาคม ตุลาคม มกราคม และ เมษายน ในกรณีอายุ 6-14 ปี DATE_SERV=กรกฎาคม และ มกราคม
 แฟ้ม CHRONICFU และ LABFU จะตรวจสอบความเชื่อมโยง กับ แฟ้ม CHRONIC โดย CID ของแฟ้ม CHRONICFU และ LABFU จะต้องเชื่อมโยงกับ CID ของแฟ้ม CHRONIC ที่มีการวินิจฉัยเป็น HT และ DM ได้
ที่มา: http://wwwnno.moph.go.th/oppp/index.php?topic=102.0


ต้องเริ่มต้นอย่างไรบ้าง




pp 56

ปี 55 ส่วนปี 56 เพิ่มเติมอีกเล็กน้อยตาม slide ด้านล่าง

ขอบคุณพี่อั้น แห่ง สสจ.ปัตตานีที่แบ่งปันสิ่งดีๆ
ปีสปสช 1 ก.ค.55-30 มิย 56 สิ่งต้องระวังคือการใช้ Z131,Z136,Z138,R730,R731,R739,R030
เนื่องจากการมีแฟ้มเก็บเฉพาะ NCDSCREEN ไม่จำเป็นต้องมีใน DIAG อีกต่อไป

สถานีอนามัยดีเด่นระดับเขต(เขต7)



รูปสวยๆของสถานีอนามัยดีเด่นระดับเขต(เขต7)
รพ สต.ต้นปรง  อ.ย่านตาขาว จังหวัดตรัง
























เรียนรู้เรื่อง database ของ jhcis

มีโอกาสได้เข้าร่วมอบรม การเขียนรายงานด้วย ireport รุ่นแรก ขอบคุณ เพื่อนๆเหล่าเทพเจทั้งหลายที่ส่งข่าวมา(อ.แรมโบ้เสืออีสาน,ลุงหนวดหมออนามัย,นู๋ตั๊กแห่งเมืองปาย) ขอบคุณศูนย์เทคที่จัดกาสอบรม ขอบคุณพี่ปูแห่ง สสจ.สตูลที่ให้โอกาส คิดว่าความรู้ที่ได้มาจะนำมาศึกษาและเผยแพร่ต่อไปให้กับผู้ที่ประสงค์ที่จะศึกษาทุกท่านโดยไม่ปิดบังใดๆ
ในการเข้าร่วมอบรม มีโอกาสได้เรียนรู้โครงสร้างฐานข้อมูลของjhcis ER diagram ของ database ความสัมพันธ์ระหว่างตารางต่างๆในjhcis ทำให้คำสั่งในการเขียนรายงานของเราถูกต้องยิ่งขึ้น
การอบรมทั้ง 5 วันได้มีโอกาสเจอเพื่อฝูงมากมาย เหนือกลางอีสานใต้ ที่ดีใจเหนือสิ่งอื่นใดคือได้เจอลุงหนวดตัวเป็นๆ (คุยกันเกื่อบปีไม่เคยเห็นแม้แต่หน้าตาหรือรูปภาพ)
สาระสำคัญที่ต้องเน้นในกาเขียนรายงานใน jhcis คือ ในการ join ตาราง ตัวที่เป็นคีย์ต้อง join ให้ครบและถูกต้องไม่เช่นนั้นการแสดงผลของรายงานจะช้ามาก
 เข่น ถ้าจะ join person กะ house ก็ต้อง
select ...from person inner JOIN house on person.pcucodeperson = house.pcucodeperson
                                                                              and person.hcode = house.hcode
                                                                              and right(house.villcode,2) <>'00'

คอนเซบที่ได้มาคือ คนอยู่ในบ้าน บ้านอยู่ในหมู่บ้าน และไม่ใช่นอกเขต
เรา join กันเรียบร้อยค่อย มา list ดูฟิล์ที่เราต้องการ SQL(select.. from where....)
เมื่อเราเข้าใจคอนเซบแล้วต่อไปคงไม่ยากเกินไปแล้ว สำหรับ database jhcis ที่มีตารางประมาณ 250 ตาราง ไม่เยอะนะถ้าเทียบกับ program ค่ายอื่นๆ
- คอนเซบอีกอย่างของโปรแกรม jhcis เป็น คิดเป็น flow ผู้ป่วยนอกแบบจำง่ายๆก็คือ
ผู้ป่วยเป็นใคร (person) มารับบริการวันไหน (visit) ด้วยโรคอะไร หรือ กิจกรรมอะไร (vistdiag,visitanc,visitepi,.....) พอเข้าใจเรื่อง flow แบบนี้ต่อไปเรื่องการเขียนคำสั่งที่จะไปเอาข้อมูลตามต้องการคงไม่ยาก
นอกจากนี้ใน database jhcis เก็บข้อมูลพื้นฐานที่ไม่มี transection ไว้ในตารางที่ขึ้นต้นด้วย c.... เช่น ctitle เก็บข้มูลคำนำหน้าชื่อ cdrug,cdisease เป็นต้น
ตารางเหล่านี้มีความสัมพันธ์กับตารางที่เป็น trasattion เช่น ใน person เก็บคำนำหน้าชื่อไว้เป็นรหัส หากเราต้องการอ่านคำนำหน้าชื่อนี้ให้รู้เรื่อง เราต้องเอามา join กับ ctitle ก่อน
เกริ่นนำคร่าวๆแต่นี้ก่อนนะครับ
คงมีคนสงสัยว่าทำไมไปอบรม ireport แต่ทำไมไม่พูด ถึง ireport เลย
คำตอบคือ ถ้าไม่เข้าใจคอนเซบการ query หรือ เขียน sql ไม่ได้ก็ไม่สามารถเขียนรายงานด้วย ireport ได้ครับ
------------------------------------------------------------------------------------------------------------------
#หมู่บ้านในเขตรับผิดชอบ
#----------------------------
select v.villcode,v.villname,s.subdistname,d.distname,c.provname
 FROM village v
 inner join cprovince c on left(v.villcode,2) =c.provcode
 inner join cdistrict d on left(v.villcode,2) =d.provcode
 and substring(v.villcode,3,2) =d.distcode
 inner join csubdistrict s on left(v.villcode,2) =s.provcode
 and substring(v.villcode,3,2) =s.distcode
 and substring(v.villcode,5,2) =s.subdistcode

----------------------------------------------------
# ประชากรตากลุ่มอายุ

--------------------------------
select
case when getAgeYearNum(person.birth,CURDATE()) between 0 and 4 then 'gr0-04'
when getAgeYearNum(person.birth,CURDATE()) between 5 and 9 then 'gr05-09'
when getAgeYearNum(person.birth,CURDATE()) between 10 and 14 then 'gr10-14'
when getAgeYearNum(person.birth,CURDATE()) between 15 and 19 then 'gr15-19'
when getAgeYearNum(person.birth,CURDATE()) between 20 and 24 then 'gr20-24'
when getAgeYearNum(person.birth,CURDATE()) between 25 and 29 then 'gr25-29'
when getAgeYearNum(person.birth,CURDATE()) between 30 and 34 then 'gr30-34'
when getAgeYearNum(person.birth,CURDATE()) between 35 and 39 then 'gr35-39'
when getAgeYearNum(person.birth,CURDATE()) between 40 and 44 then 'gr40-44'
when getAgeYearNum(person.birth,CURDATE()) between 45 and 49 then 'gr45-49'
when getAgeYearNum(person.birth,CURDATE()) between 50 and 54 then 'gr50-54'
when getAgeYearNum(person.birth,CURDATE()) between 55 and 59 then 'gr55-59'
when getAgeYearNum(person.birth,CURDATE()) > 60 then 'gr60+'
else '-' end as agegroup
,sum(case when concat(person.pid,person.pcucodeperson) and person.sex = '1' then '1' else '' end )as man
,sum(case when concat(person.pid,person.pcucodeperson) and person.sex = '2' then '1' else '' end )as woman
,sum(case when concat(person.pid,person.pcucodeperson) and person.sex = '1' or '2'then '1' else '' end )as personall
FROM village
INNER JOIN house ON village.villcode = house.villcode AND village.pcucode = house.pcucode
INNER JOIN person ON house.hcode = person.hcode AND house.pcucode = person.pcucodeperson and CONCAT(person.pid,person.pcucodeperson)
NOT IN (SELECT CONCAT(persondeath.pid,persondeath.pcucodeperson) FROM persondeath WHERE deaddate <= CURDATE() or deaddate is not NULL)#ตัดคนตายออกไป
WHERE  RIGHT(house.villcode,2)!= '00'#เป็นหมู่บ้านในเขตบริการ
GROUP BY agegroup;

-----------------------------------------------------------------------

รายงานประจำเดือน ทดลองนะครับ

สอบถามปัญหา

บันทึกกันลืม ลินุกซ์ ของ อ.วิภัทร

จากอ.วิภทร ชมรมopensource มอ.

thaiopensource.org | เปิดโลกอิสระกับโอเพนซอร์ส blogs