25 ธันวาคม 2555

บทที่ 1 การเริ่มใช้งาน iReport

บทที่ 1 การเริ่มต้นเขียน iReport
1.เปิดโปรแกรม iReport
2.ไปที่ File > New > เลือกกระดาษเปล่าแบบตั้งหรือแบบนอน ตามรายงานที่จะสร้าง
3.เลือกกระดาษแนวนอน



4.จะได้ภาพที่เห็น ซึ่งเราจะมาเริ่มขั้นตอนต่อไป


5.นำ SQL มาใส่ในช่องที่มีรูปฐานข้อมูลตามภาพ







23 ธันวาคม 2555

เริ่มต้นการใช้งานโปรแกรม iReport For JHCIS

1.ทำการติดตั้งโปรแกรม iReport 5.0.0 ลงในคอมพิวเตอร์ให้เรียบร้อย ตัวโปรแกรม Download ได้ที่นี่ https://www.dropbox.com/s/xapxjem27hh4sej/iReport-5.0.0-windows-installer.exe เมื่อทำการติดตั้งโปรแกรมสำเร็จแล้ว

2.ทำการปรับแต่งให้ iReport รู้จักกับฐานข้อมูล JHCIS ดังภาพ ถ้าติดต่อฐานข้อมูล JHCIS ไม่ได้ก็จะไม่สามารถใช้งาน iReport ได้

3.ทำการปรับแต่งตัวโปรแกรม iReport ให้มีความสามารถเพิ่มขึ้น แบบว่าเตรียมความพร้อมเพิ่มลูกเล่นลูกฮาอะไรเงี้ย

4.ใส่ Font ทีละตระกูล คือ TH saraban และ tahoma หรืออยากใช้ Font อื่นให้มันสวยงามแปลกตา ก็ add font ลงไปที่ตรงนี้ เตรียม Font ให้ 2 ชนิดตามลิ้ง
https://www.dropbox.com/s/fsvphn695gv67hr/Font.rar

5.นำไฟล์ Lib ที่เตรียมไว้ให้ตามลิ้งด้านล่างไปใส่ใน Folder ของ โปรแกรม JHCIS บริเวรนอกสุด https://www.dropbox.com/s/t08f8g2tn5w945x/lib.rar
เป็นอันครบถ้วนกระบวนความพร้อมใช้ iReport For JHCIS แล้วครับ

-------------------------------------
เริ่มต้นกับการเรียนรู้ iReport For JHCIS คุณนิสิตทั้งหลายต้องมีอุปกรณ์การเรียน การสอน ดังนี้
1.คู่มือการใช้งาน iReport For JHCIS
https://www.dropbox.com/s/57heyjw2og1xgfc/ireport-manual55.zip
2.โปรแกรม iReport 5.0.0
https://www.dropbox.com/s/xapxjem27hh4sej/iReport-5.0.0-windows-installer.exe
3.โปรแกรม Navicat
https://www.dropbox.com/s/2glrneo3b7yxgob/Navicat%20Premium%20Enterprise%20v9.1.8%20%2BKeygen%2BSerial.rar
4.แผนที่โครงสร้างฐานข้อมูล JHCIS ซึ่งเรียกว่า JHCIS Datadic (ตัวล่าสุดเลย)
https://www.dropbox.com/s/of36ixslkq7pw94/JHCIS-Datadic-%E0%B8%9E%E0%B8%A2%2055.rar
ขอให้ นิสิตทั้งหลายเตรียม Download อุปกรณ์การเรียน การสอนให้พร้อม !!!

====================

22 ธันวาคม 2555

วิธีใช้เงื่อนไข IF , Sub-Query ฯลฯใน MySQL เพื่อให้ได้ผลลัพธ์

วิธีใช้เงื่อนไข IF , Sub-Query ฯลฯใน MySQL เพื่อให้ได้ผลลัพธ์

หน้าแรกแท็กแฟ้มบทความโอเพนซอร์สประวัติโดมินิคติดต่อผมวิธีใช้เงื่อนไข IF , Sub-Query ฯลฯใน MySQL เพื่อให้ได้ผลลัพธ์ที่ต้องการ
Blog > วิธีแก้ปัญหาเขียนโปรแกรม > วิธีใช้เงื่อนไข IF , Sub-Query ฯลฯใน MySQL เพื่อให้ได้ผลลัพธ์ที่ต้องการ
Published by DominixZ on April 24, 2011 01:58 am under วิธีแก้ปัญหาเขียนโปรแกรม, เคล็ดลับ

เนื่องจากผมจะต้องทำ Report พร้อมมีสมการบางอย่าง เพื่อเป็นการคำนวณ ซึ่งผมใช้ PHP กับ MySQL เป็นหลัก โดยปัญหาที่มักจะเกิดบ่อยๆก็คือ “ดึงข้อมูลจาก Database มาคำนวณที่ PHP แล้วก็เอามาเรียงใส่ Array ใหม่เป็นข้อมูลชุดใหม่” และยังมีเหตุการอื่นๆอีกเช่น ไม่ยอม Join Table แล้ว GET ข้อมูลจาก Table หนึ่งไปใส่อีก Table หนึ่งทำให้ Performance ช้าอีก

วันนี้ผมเลยขอแนะนำตัวที่เราได้ใช้บ่อยๆกันใน MySQL กันนะครับผมก็พึงลองสดๆร้อนๆเลย

CASE
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END

จริงๆผมสับสนระหว่าง CASE กับ IF แต่พอใช้แล้วก็เข้าใจขึ้น โดยผมมองว่า CASE คือการ FILTER ข้อมูล แต่ IF เป็นเงื่อนไข แต่ปกติเราเขียนโปรแกรมมักใช้ IF เป็นการ FILTER ข้อมูล แต่ใน Database มักแยกกันชัดเจน ยกตัวอย่าง เช่น if(number == 1) ใน php ที่จริงคือ CASE WHEN number = 1 ทำนองนั้นครับ ตัวอย่างที่ชัดเจนคือ

SELECT page_id , SUM(CASE WHEN score = 1 THEN 1 ELSE 0 END) AS good , SUM(CASE WHEN score = 0 THEN 1 ELSE 0 END) AS neutral , SUM(CASE WHEN score = -1 THEN 1 ELSE 0 END) AS bad
FROM sentiments

โดยใน Table มี Field หนึ่งที่เก็บ score ซึ่งส่วนใหญ่แบ่งเป็น 1 , 0 , -1 ซึ่งผมต้องการ 3 เลขนี้ขึ้นมาใน Row เดียวผมเลยต้องใช้วิธีนี้ เพราะมันจะเกี่ยวโยงกับ Subquery เพื่อนำไปใช้ต่อในการคำนวณ ดังนั้นมันเลยเป็นสิ่งจำเป็นที่ต้องได้ค่าเหล่านี้มาอยู่ใน Row เดียว

IF
IF(expr1,expr2,expr3)
เป็นการใส่เงื่อนไขอย่างที่อธิบายก่อนหน้านี้ โดยวิธีใช้คือ IF(SUM(score) < 80,IF(SUM(score) < 50,’F',’C'),’A') มันก็คือ IF ELSE ใน PHP นั้นเอง แต่สิ่งเดียวที่มันทำไม่ได้คือ IF(score == 1,’YES’,'NO’) ทำนองนี้ เน้นอีกครั้งนะครับ ทำไม่ได้ ดังนั้นเราเลยต้องใช้ CASE มาผสมกัน

อื่นๆ
อาจจะมีบางคนไม่รู้ว่า จริงๆแล้ว SQL สามารถ + – * / ( ) ได้ยกตัวอย่าง เช่น SELECT page_id , score/100 FROM sentiments เป็นต้น

รู้พื้นฐานแล้วแต่ก็คงยังไม่พอต้องผสมให้เป็น
โดยผมจะลองยกตัวอย่าง Query ซ้อน Query มาให้ดูสักอันจากของจริงนะครับ

SELECT page_id,create_date, IF(ABS((((good/devideval) + (neutral/devideval)) – ((bad/devideval) + (neutral/devideval)))) > 7,IF((((good/devideval) + (neutral/devideval)) – ((bad/devideval) + (neutral/devideval))) >0,1,-1),0) AS score
FROM
(
SELECT page_id , SUM(CASE WHEN score = 1 THEN 1 ELSE 0 END) AS good ,SUM(CASE WHEN score = 0 THEN 1 ELSE 0 END) AS neutral , SUM(CASE WHEN score = -1 THEN 1 ELSE 0 END) AS bad , COUNT(score) as total , (COUNT(score) / 100) as devideval , DATE(created_at) AS create_date
FROM `sentiments`
WHERE user_id = 1 GROUP BY page_id,DATE(created_at)
) AS sentiment_result

โดยแม้จะเป็น Query ที่ดูยากสักหน่อย แต่ผมจะอธิบาย SELECT ล่างก่อนนะครับโดยจะอ่านเป็นประมาณนี้ครับ

“ให้ทำการเลือก page_id , ผลรวมของ score โดย score มีค่าเป็น 1 ให้มีค่าเป็น 1 อย่างอื่นเป็น 0 , ผลรวมของ score โดย score มีค่าเป็น 0 ให้มีค่าเป็น 1 อย่างอื่นเป็น 0 เป็น good , ผลรวมของ score โดย score มีค่าเป็น 0 ให้มีค่าเป็น 1 อย่างอื่นเป็น 0 เป็น neutral , ผลรวมของ score โดย score มีค่าเป็น -1 ให้มีค่าเป็น 1 อย่างอื่นเป็น 0″

อธิบายเพิ่มเติมตรงส่วนนี้คือ การที่ต้องทำให้ต้องมีค่าเป็น 1 เป็น 0 นั้นเพราะความต้องการของผมคือ “จำนวนนับของ score 1 , 0 และ -1″ เลยต้องทำแบบนั้น จะ COUNT ก็ได้เช่นกัน แต่ผมขี้เกียจแก้ของผมที่ทำได้แล้วเท่านั้นเอง

ส่วนที่เหลือก็ Where ตามปกติ แต่ที่นี้ผมต้องอธิบายเพิ่มเพราะผมนำ SELECT อันล่างไปเป็นข้อมูลของ SELECT ข้างบนดังนั้นตอนนี้ผมเลยมี page_id , good , neutral , bas , total , devideval , create_date ที่สามารถเรียกใช้งานได้ ใน SELECt ด้านบนผมเลยมาทำสมการเลข สังเกตุว่าผมใส่ ( ) ค่อนข้างมาก เพื่อความมั่นใจว่า มันจะหารก่อนแล้วค่อยนำมา + – กันเสร็จแล้วผมก็ยังใช้ IF ELSE ฉบับ MySQL อีกด้วยคือ IF(express,IF(express,result1,result2),result3) ทำนองนั้นครับ

ประโยชน์ที่ได้รับสำหรับการใช้การคำนวณอยู่ใน Database
เร็วไม่เปลื้อง CPU , Memory ในการทำ Array ชุดใหญ่ใน PHP
สำหรับผม Maintenance ทำได้สะดวกกว่าใช้ PHP SQL สลับไปสลับมา
โดยหลักๆคือ 2 ข้อแต่ประโยชน์จะทวีคูณ หากนำไปใช้กับ PHP อย่างเหมาะสม โดยคำเตือนขอเดียวก็คือ “ให้รู้ Limit ของ SQL และไม่จำเป็นต้องตั้งเงื่อนไขว่า จะได้ข้อมูลเหล่านี้ด้วย SQL ล้วนๆ มีบางกรณีของผมซึ่งใช้ Query เดิมได้แต่ต้องนำ good*1 , neutral*0 , bad*-1 แล้วนำมา + กันทั้งหมด ซึ่งตามจริงแล้วการจะได้เช่นนั้นผมจะต้อง SELECT อีกครั้งหนึ่งซึ่งมันสุดโต่งเกินไป ผมเลยหยุดที่ก่อน Step นั้นแล้วเวลานำไปใส่ใน Report ผมก็ใช้ PHP + – เอาแต่ทีนี้มันง่ายแล้วไงครับ เพราะใน Row ก็มี good , neutral , bad มาให้พร้อมแล้วแค่ใส่สมการ เอาไปแสดงผลเป็นอันเสร็จ วันนี้ผมลาไปก่อนหวังว่ามีประโยชน์ไม่น้อยสวัสดีครับ

ปฐมบท iReport For JHCIS

ปฐมบท iReport For JHCIS
ความคิดที่อยากถ่ายทอดวิชา iReport For JHCIS ยังคงอยู่ในความคิด ไม่ทำออกมาซ๊ะที มีหมออนามัยหลายท่านสนใจใฝ่รู้ วันนี้เลยตัดสินใจแล้วว่าในปี 2556 จะถ่ายทอดวิชา iReport For JHCIS ให้กับพี่น้องหมออนามัยที่ใช้ JHCIS สำหรับผู้ที่อยากจะเขียน Report ใช้เอง โดยใช้วิธีการทำสื่อการสอนลงใน Youtube แล้วค่อยๆเรีนนรู้ น่าจะเป็นประโยชน์ต่อ หมออนามัยที่สนใจใฝ่เรียนรู้น๊ะครับ
ลุงหนวดจะขอใช้ 3 ช่องทางที่เป็นสื่อในการถ่ายทอดความรู้คือ
1.ตั้งกลุ่ม Facebook มาเฉพาะคือกลุ่ม iReport For JHCIS
2.ใช้ Youtube เพื่อทำสื่อการเรียนรู้
3.ใช้ Webbolg ในการสื่อการเรียนการสอน
ปี 2556 จะเป็นปีที่ถ่ายทอดความรู้เรื่อง iReport For JHCIS ให้พี่น้องหมออนามัยที่สนใจแบบเดียวกับลุงหนวด ออกมาคิดเองทำเองใน Report ที่เราอยากได้ใครรู้ครับ



แนวทางการให้รหัสโรค VS แนวทางการให้รหัสหัตถการ


แนวทางการให้รหัสโรค 
1.)   ให้รหัสโรค  ตามโรคที่พบจริงเท่านั้น ห้ามให้รหัสเกินความจำเป็นหรือให้เผื่อไว้โดยเฉพาะรหัสกลุ่มสร้างเสริมสุขภาพ  ถ้ามาตรวจด้วยอาการของโรค ห้ามลง รหัสกลุ่มสร้างเสริมสุขภาพและรหัสการตรวจร่างกายต่างๆ  เช่น ตรวจสุขภาพ,วัดความดัน ฯลฯ เพราะเป็นงาน Routine และไม่เป็นไปตามแนวทางในการให้รหัสโรค
2.)   บริการที่เกิดขึ้น ณ หน่วยบริการใด ให้ถือเป็นผลงานและข้อมูลของหน่วยบริการนั้น  กรณีทีมสหวิชาชีพจากโรงพยาบาล  ลงไปให้บริการที่ PCU ให้ถือว่าบริการและข้อมูลนั้นเป็นผลงานของ PCU ที่ลงไป  ห้ามนำมาบันทึกเป็นผลงานของโรงพยาบาล
3.)   ถ้าการเจ็บป่วยครั้งนี้  สามารถระบุสาเหตุของโรคได้ชัดเจนโรคเดียว  ให้วินิจฉัยโรคที่พบ ตามมาตรฐาน ICD10 เป็นรหัสโรคหลัก (Dx Type1) เพียงรหัสเดียว
4.)   กรณีเจ็บป่วยครั้งนี้ สามารถระบุสาเหตุของโรคได้มากกว่า 1 โรค ให้ระบุ  โรคที่หนักที่สุด ซึ่งเป็นสาเหตุที่ทำให้ผู้ป่วยมาพบในครั้งนี้ เป็นโรคหลัก  ส่วนโรคอื่นๆเป็นโรคร่วม (ให้เฉพาะที่จำเป็น)
5.)   ถ้าการเจ็บป่วยครั้งนี้  ไม่สามารถระบุโรคได้ชัดเจน  ให้วินิจฉัยตามอาการ โดยให้รหัสเป็นโรคหลัก ตามอาการที่พบหนักสุด ส่วนอาการอื่นๆที่พบให้ลง Dx Type4 other เพราะสถานีอนามัยจะไม่มีกลุ่มโรคประเภท2,3 จะมีเฉพาะในโรงพยาบาลเท่านั้น( แต่ถ้าสามารถระบุโรคได้ชัดเจนแล้ว การให้รหัสโรค ตามอาการ ก็ไม่มีความจำเป็น ) การวินิจฉัยโรคตามอาการควรลงเฉพาะอาการหลักๆที่พบก็พอ
6.)   กรณีวินิจฉัยโรค/ให้รหัสโรคในกลุ่มอุบัติเหตุ  ให้ลงรหัส สาเหตุของการเกิดอุบัติทุกครั้ง(รหัส V,W,X,Y)·กรณีอุบัติเหตุแล้วเกิดบาดแผล  ให้ระบุตำแหน่งที่เกิดบาดแผลด้วย(เฉพาะวันแรก)·กรณีคนไข้อุบัติเหตุแล้วมาทำแผล/ตัดไหม ในวันถัดๆมา(ไม่ใช่วันแรก) ให้ลงรหัสโรคตามกิจกรรมที่มารับบริการเท่านั้น เช่น ทำแผล   ห้าม ลงรหัสเหมือนวันแรกที่เกิดอุบัติเหตุโดยเด็ดขาด ยกเว้น จะเกิดอุบัติเหตุซ้ำซ้อนจริงๆอีกครั้ง (ไม่ต้องลงรหัสโรคอุบัติเหตุ,ไม่ต้องลงรหัสตำแหน่งบาดแผล,ไม่ต้องลงรหัสสาเหตุการเกิดอุบัติเหตุ(V,W,X,Y) ลงแค่มา ทำแผล(Z480) ก็พอ )
7.)   กรณี ผู้ป่วยมา Follow Up หรือ มาตามนัด เพื่อติดตามการรักษา
ถ้าเป็นโรคเรื้อรัง  เช่น เบาหวาน,ความดัน ฯลฯ ให้ลงรหัสโรคเดิม
ถ้าเป็นการนัด โรคอื่นๆ  ให้ประเมินตามอาการ ในการมาครั้งนี้
หายดีแล้ว  ลงรหัส  Z09.9
ดีขึ้นแต่ยังไม่หาย ลงรหัส  Z54.8
คงที่เหมือนเดิม ให้ลงรหัสโรคเดิม
แต่ถ้ามาครั้งนี้พบโรคใหม่หรือป่วยเป็นโรคใหม่ ให้ถือว่าผู้ป่วยมารับบริการเป็นคนไข้ตามปกติ ให้ลง
โรคใหม่ที่พบ เป็นรหัสโรคหลัก ส่วนโรคเรื้อรังเดิมให้ลงรหัสเป็นโรคอื่นๆ(Dx Type4 other)
(เพราะสถานีอนามัยจะไม่มีกลุ่มโรคประเภท2,3 จะมีเฉพาะในโรงพยาบาลเท่านั้น)
ถ้าไม่ใช่โรคเรื้อรังไม่ต้องลง
ส่วนผลประเมินตามนัดครั้งนี้  ถ้าพบโรคใหม่แล้วไม่ต้องลงรหัส(Z09.9,Z54.8)
8.)   กรณี ตรวจรักษาแล้ว  ต้องส่งต่อ(Refer)ไป รพ.แม่ข่าย
ให้ลงรหัสโรคหรือรหัสอาการที่ตรวจพบ  ตามแนวทางให้รหัสโรคข้างต้น
ลงรหัส Z75.3 เพื่อระบุว่า  ส่งตัวไปรักษาที่อื่น
ถ้าในโปรแกรมมีเมนูบันทึกระบบ Refer ให้บันทึกในงาน Refer ตามระบบปกติด้วย
9.)   กรณีไม่ได้ป่วย แต่มารับบริการอย่างอื่นๆ เช่น รับบริการตรวจสุขภาพเด็ก 0-72 เดือน(Z00.1) นักเรียน(Z10.8) ตรวจสุขภาพประชาชนทั่วไป(Z00.0) ฉีดวัคซีน(ตามชนิดวัคซีน) วางแผนครอบครัว(Z30.4) ตรวจสุขภาพฟัน (Z01.2),ฝากครรภ์(ครรภ์แรกZ34.0,ครรภ์ต่อมาZ34.9) ตรวจภาวะโภชนาการ,ตรวจพัฒนาการ(Z00.1) ฯลฯ ให้ลงรหัส ส่งเสริมสุขภาพ(Z00-99) ตามกิจกรรม  ที่ได้ให้บริการจริงๆ
ถ้ามารับบริการสร้างเสริมสุขภาพ แล้ว ตรวจพบโรค  ให้ลงรหัสโรคที่พบ เป็นโรคหลัก(Dx Type1)
ส่วนการให้บริการสร้างเสริมสุขภาพที่มา เป็นรหัสโรคอื่นๆ(Dx Type4)
** ระวัง ข้อมูลมารับบริการสร้างเสริมสุขภาพ แล้วป่วยเกินจริง (มา PP แล้ว เป็น OP กี่%) **
** ระวัง การให้บริการส่งเสริมสุขภาพ หลายกิจกรรม เกินความเป็นจริง ต่อ 1 Visit **
ถ้าทำหลายๆกิจกรรม  ให้ลงกิจกรรมหลักที่มา เป็นรหัสโรคหลัก ส่วนรหัสกิจกรรมอื่นๆ ให้ลงเป็น
รหัสอื่นๆ (Dx Type4)  เช่น มาฝากครรภ์(ครรภ์ที่2) แล้วฉีดวัคซีน(dTANC) และ เจาะเลือดตรวจ VDRL
มาฝากครรภ์(ครรภ์ที่2)  เป็น Dx Type1  รหัสกิจกรรม Z34.9
ฉีดวัคซีน(dTANC) เป็น Dx Type4  รหัสกิจกรรม Z23.5,Z23.6
เจาะเลือดตรวจ VDRL เป็น Dx Type4  รหัสกิจกรรม Z11.3
10.)    กรณีบริการนอกหน่วยบริการ เช่น  รณรงค์ตรวจสุขภาพ,ตรวจคัดกรองความเสี่ยง,อนามัยโรงเรียน เยี่ยมบ้าน,หน่วยบริจาคโลหิต เหล่านี้ไม่ถือว่าเป็น ผู้ป่วยนอก  แต่เป็นกิจกรรมบริการสร้างเสริมสุขภาพหรือบริการสร้างเสริมสุขภาพเชิงรุก และโดยปกติจะมีระบบการบันทึกผลงานเฉพาะงานนั้นๆ(หมายความว่า กิจกรรมอะไรก็ลงบันทึกตามกิจกรรมงานนั้นๆ)  ข้อมูลจะไม่เกี่ยวข้องกันกับผู้ป่วยนอกหรือบริการในหน่วยบริการตามระบบปกติ
แต่ถ้ามีการนำมาบันทึกในระบบข้อมูลผู้ป่วยนอก  ให้บันทึกเป็น ลงรหัส ส่งเสริมสุขภาพ(Z00-99)
ตามกิจกรรมหลักที่ทำเพียง 1 รหัสเท่านั้น  ห้ามลงรหัสโรคเด็ดขาด แม้จะพบโรคก็ตาม  แต่การบันทึกในโปรแกรมตามระบบงานของกิจกรรมนั้นๆ  ให้ลงรายละเอียดข้อมุลให้ครบถ้วนทุกอย่าง  
เช่น  บันทึกNCD ตรวจคัดกรองสุขภาพ ถ้าพบป่วยเป็นโรคอะไร? ก็ลงตามนั้น  แต่การลงบันทึกข้อมูล
ผู้ป่วยนอก ให้ถือว่าทำเพียงกิจกรรมตรวจคัดกรองสุขภาพ จึงลงเพียงรหัส Z000 เท่านั้น
ออกอนามัยโรงเรียน จะตรวจหู,ตรวจตา,ตรวจเหา,ตรวจผิวหนังฯลฯ ทั้งหมดนั้น  ถือว่า เป็นกิจกรรม
อนามัยโรงเรียน  ให้ลงรหัสเพียง Z10.8 รหัสเดียวเท่านั้น
- หัตถการต่างๆ  ไม่ต้องลง เพราะ ไม่ใช่หัตถการเพื่อการรักษาและการตรวจร่างกายต่างๆ
ไม่ถือว่าเป็นการทำหัตถการ
ตรวจคัดกรองความเสี่ยงสารเคมีตกค้างใน กลุ่มเกษตรกร
ลงรหัส Z100 การตรวจสุขภาพด้านอาชีวอนามัย
- ไม่ต้องลงหัตถการ เพราะ การตรวจร่างกายต่างๆ  ไม่ถือว่าเป็นการทำหัตถการ
- การเจาะเลือดปลายนิ้วเพื่อตรวจหาสารเคมีตกค้าง ไม่ใช่หัตถการเพื่อการรักษา แต่เป็นกระบวน
การในการตรวจ เพื่อหาสาเหตุโรค เป็นงาน Routine ของโรคนั้นๆ
ตรวจคัดกรองสุขภาพกลุ่มเสี่ยง 15 ปีขึ้นไป ให้ลงรหัส Z000ตรวจสุขภาพทั่วไป
o ระวังข้อมูล Over ตรวจสุขภาพเกินจริง(1ปีเขาตรวจสุขภาพกี่ครั้ง)  ถ้าคนป่วยรับการตรวจรักษาโรคห้ามลงว่ามาตรวจสุขภาพโดยเด็ดขาด
o การตรวจสุขภาพร่างกายทั่วไปไม่ต้องลงหัตถการ เพราะ การตรวจร่างกายต่างๆ  ไม่ถือว่าเป็นการทำหัตถการ
o การเจาะเลือดปลายนิ้วเพื่อตรวจหาเบาหวาน ไม่ใช่หัตถการเพื่อการรักษา แต่เป็นกระบวน
การในการตรวจ เพื่อหาพยาธิสภาพของโรค เป็นงาน Routine ของโรคนั้นๆ
การติดตามเยี่ยมบ้านคนไข้
o ถือเป็นการติดตามผลการรักษาและประเมินสภาพสิ่งแวดล้อมคนไข้
ให้ลงรหัส  Z099 (การตรวจติดตามผลหลังการรักษาภาวะอื่นที่ไม่ระบุรายละเอียด)เป็นโรคหลัก(Dx   Type1) เพียง 1 รหัสโรคเท่านั้น(แม้จะป่วยเป็นโรคอะไรก็ตาม)
** ไม่ต้องลงรหัสโรคเรื่อรัง หรือ โรคร่วมอื่น แต่สามารถลงรายการจ่ายยาหรือกิจกรรมฟื้นฟูหรือหัตถการ
ที่มีการให้บริการแก่คนไข้จริงๆได้ (ถ้ามี)
11.)     งานทันตกรรม  ถือเป็นบริการข้อมูลผู้ป่วยนอก ซึ่งจะมีทั้งกิจกรรม ทันตส่งเสริมสุขภาพ เช่น  ตรวจ
สุขภาพฟัน(Z012) และ ผู้ป่วยทางทันตกรรม
แนวทางการให้รหัสทางทันตกรรม ยึดตามแนวทางการให้รหัสโรคตาม ICD10 เช่นเดียวกับบริการ
ของผู้ป่วยนอกทั่วไป
12.) งานบริการแพทย์แผนไทย  ถือว่า เป็นบริการพิเศษ ที่เพิ่มเข้ามาในระบบของหน่วยบริการ  บริการ
แพทย์แผนไทย  มีทั้งบริการในหน่วยบริการและบริการเชิงรุกในชุมชน  ซึ่งผู้ที่จะให้การวินิจฉัยโรค
แพทย์แผนไทยและให้บริการแพทย์แผนไทยจะต้องเป็น  ผู้ผ่านการอบรมหรือจบหลักสูตรทางด้านนี้
โดยเฉพาะ
แนวทางการให้รหัสโรคแพทย์แผนไทย มีหลักการเช่นเดียวกันกับการให้รหัสโรคแผนปัจจุบัน
แต่ใช้รหัสที่ต่างกันเท่านั้น
การให้รหัสโรคแพทย์แผนไทย  อ้างอิงจากศูนย์รหัสมาตรฐานกลางเว็บ http://thcc.or.th
ซึ่งจะขึ้นต้นด้วยอักษร U  ซึ่งผู้จะให้รหัสโรคนี้ต้องเป็นผู้ผ่านการอบรมหรือจบหลักสูตรทางด้าน
แพทย์แผนไทยโดยเฉพาะ
งานบริการแพทย์แผนไทยเชิงรุก นอกหน่วยบริการ ให้ลงเหมือนกับการติดตามเยี่ยมบ้าน(รหัส Z099) แล้วจึงลงรหัส หัตถการ ของแพทย์แผนไทยตามปกติ
13.) บริการฟื้นฟูสภาพและกายภาพบำบัด  โดยนักกายภาพ เป็นบริการเพิ่มสำหรับบางหน่วยบริการที่มี
นักกายภาพบำบัด  ซึ่ง ลักษณะบริการจะคล้ายๆกับแพทย์แผนไทย  ซึ่งมีทั้งบริการในหน่วยบริการ
และบริการเชิงรุกในชุมชน
ส่วนใหญ่บริการของกายภาพบำบัด จะเป็นกิจกรรมหรือหัตถการ เพื่อการฟื้นฟูสภาพและเพื่อการรักษา
การให้รหัสโรค ควรเป็นเจ้าหน้าหน้าที่ผู้ตรวจรักษาโรคทั่วไป เป็นคนลงวินิจฉัยโรค แล้วส่งต่อ
คนไข้ให้ นักกายภาพบำบัดช่วยตรวจเพิ่มเติมเพื่อ ให้บริการตามแนวทางของนักกายภาพบำบัด
งานบริการฟูสภาพและกายภาพบำบัด นอกหน่วยบริการ ให้ลงเหมือนกับการติดตามเยี่ยมบ้าน
(รหัส Z099) แล้วจึงลงรหัส หัตถการ ของกิจกรรมฟื้นฟูสภาพ/กายภาพบำบัดตามปกติ

แนวทางการให้รหัสหัตถการ
1.)    ให้ลงรหัสหัตถการตามจริง ที่ให้บริการจริงเท่านั้น  ห้ามให้หัตถการเกินจำเป็นหรือเผื่อไว้
2.)    ให้หัตถการเพื่อการรักษาหรือฟื้นฟูสภาพ  ที่สอดคล้องสัมพันธ์กับการวินิจฉัยของโรคเท่านั้น
** ระวัง การทำหัตถการเกินจริง ต่อ 1 ครั้งที่ Visit **
3.)   หัตถการผู้ป่วยนอก
ลงเฉพาะหัตถการเพื่อการรักษาเท่านั้น  เช่น  ล้างตา,ฉีดยา ,เย็บแผล,ทำแผล ,เจาะเลือด,ผ่าฝี,
ตัดไหม,ถอนฟัน,อุดฟัน,การสวนปสสาวะ,การใหน้ำเกลือ ฯลฯ
การทําหัตถการเพื่อการรักษาในที่นี้ ไมรวม
1.การผ่าตัด
2.การตรวจอวัยวะ หรือ การตรวจส่วนต่างๆของร่างกาย โดยมิได้ใช้เครื่องมือทางการแพทย์
รวมทั้งการตรวจร่างกาย Routine เช่น วัดความดัน,วัดปรอท, ชั่งน้ำหนัก,วัดส่วนสูง ฯลฯ
3.การตรวจทางรังสี
4.การตรวจทางหองปฏิบัติการ
5.การดูแล และทําความสะอาดส่วนต่างๆของร่างกาย
การตรวจร่างกาย ทุกชนิด,การตรวจสุขภาพ,การตรวจภาวะโภชนาการ,การตรวจเต้านม,
การตรวจวัดสายตา,การตรวจอื่นๆ ,การให้คำปรึกษา,การเยี่ยมบ้าน,ค่าบริการต่างๆ ฯลฯ
สิ่งเหล่านี้  ไม่ใช่การทำหัตถการ
4.)   หัตถการงานสร้างเสริมสุขภาพ
หัตถการที่เป็นงานสร้างเสริมสุขภาพ  เช่น  มาฉีดวัคซีน,ฉีดยาคุมกำเนิด  จะมีหัตถการฉีดยา
(หยอดยาโปลิโอไม่ถือว่าเป็นหัตถการ), หัตถการใส่ห่วงอนามัย  เป็นต้น
5.)   หัตถการแพทย์แผนไทย
ผู้ที่จะทำหัตถการแพทย์แผนไทยต้องเป็นผู้ผ่านการอบรมหรือจบหลักสูตรทางด้าน
แพทย์แผนไทยโดยเฉพาะ  ดังนั้น  การลงรหัสหัตถการแพทย์แผนไทย ทุกครั้ง จะต้องระบุ
เลขบัตรประจำตัวประชาชน(13หลัก) ของผู้ให้บริการแพทย์แผนไทยด้วยทุกครั้ง
การให้รหัสหัตถการแพทย์แผนไทย ต้องอิงตามศูนย์รหัสมาตรฐานกลางเว็บ http://thcc.or.th
6.)    หัตถการเพื่อการฟื้นฟูสภาพและกายภาพบำบัด
ผู้ที่จะให้บริการ จะต้องเป็นนักกายภาพบำบัดเท่านั้น
รหัสหัตถการเพื่อการฟื้นฟูสภาพและกายภาพบำบัด ให้อ้างอิงตาม ICD9CM และ ICD10TM
การลงรหัสหัตถการเพื่อการฟื้นฟูสภาพและกายภาพบำบัด ทุกครั้ง จะต้องระบุเลขบัตร
ประจำตัวประชาชน(13หลัก) ของนักกายภาพบำบัด ที่ให้บริการด้วยทุกครั้ง