รหัสติด C ระบบเบิกค่ารักษาผู้ป่วยใน CIPN

ด้วย Check Code แบบใหม่นี้ จะไม่ส่งออกมาทีเดียวทั้งหมด ซึ่งคำอธิบายรหัสจะมีเพียงส่วนที่ติดเท่านั้น ไม่เหมือนกับ CSCD ที่ทุกครั้งที่มีการติด C กลับมา มันจะส่งรหัสทั้งหมดกลับมาด้วย ทำให้เรามี Data อยู่ในมือ เวลาจะหยิบใช้ก็ง่าย ซึ่งผมเองเอารหัสนี้มาใส่ไว้ใน LINE Chatbot ให้มันตอบ เพื่อให้ผู้สื่อสารกันในกลุ่มเข้าใจว่าเรากำลังแก้ปัญหาอะไรอยู่ ไม่ต้องไปเปิดคู่มือ หรือ กระดาษมาอ้างอิงให้เสียเวลา

ข้อมูลต่อไปนี้จะไม่ได้ครบถ้วน สมบูรณ์ ถูกต้อง 100% แต่จะปรับปรุงเรื่อย ๆ

ข้อกำหนดรูปแบบของแฟ้มข้อมูลเบิกค่ารักษาผู้ป่วยใน

(CSMBS In-patient Claim Data File Specification)

🔥 รหัสการปฏิเสธ

รหัสปฏิเสธจะเป็นข้อผิดพลาดเบื้องต้นของไฟล์ จะแจ้ง Error ทันทีหลังจากส่งอีเมล์สำเร็จ โดยเน้นไปที่โครงสร้างของข้อมูล ว่า มีหรือไม่มี และตรงกันหรือไม่ เช่น AN ต้องเหมือนกับชื่อไฟล์, ผลรวมของ DRGCharge เป็นต้น

⚫ 24

an ไม่ตรงกับชื่อแฟ้ม

10689-CIPN-6308414-20200822164321.XML             	[24]

สาเหตุเกิดขึ้นได้ 2 ลักษณะ

  1. เลข AN ไม่ตรงกับชื่อแฟ้ม หรือ ชื่อไฟล์ จริงๆ โดยวิธีตรวจสอบก็เช็คได้โดยเปิดไฟล์ และดูในส่วนของ <IPADT>
  2. ไม่มีข้อมูลใน <IPADT> หรือเป็นบรรทัดโล่ง ๆ

⚫ 31

รูปแบบข้อมูลไม่ถูกต้องตามที่กำหนด 11: empty AuthCode, 12: empty AuthDT

10689-CIPN-6309688-20200822164541.XML             	[31 --- 11,12,]

เกิดจากข้อมูลไม่ครบ ในช่อง AuthCode รหัสตอบรับ จากระบบ แจ้ง/ขออนุมัติ การรับผู้ป่วยใน เช่น
ระบบผู้ป่วยใน สวัสดิการรักษาพยาบาลข้าราชการ ฯลฯ และ AuthDT วันที่และเวลาที่ ได้ AuthCode ตอบรับจากระบบ

⚫ 35

ผลรวมของจำนวนเงินใน DRGCharge ไม่ถูกต้อง

10689-CIPN-6309643-20200822164537.XML             	[35]
<InvAddDiscount>0.00</InvAddDiscount>
<DRGCharge>3363.7500</DRGCharge>
<XDRGClaim>2000.0000</XDRGClaim>

ยอดค่าใช้จ่ายส่วนที่ใช้กับ DRGCharge= SUM(ChargeAmt-Discount) เฉพาะรายการที่ ClaimCat = ‘D’ วิธีการตรวจให้ดูหมวดที่เครมเป็น D โดยดูผลตามสูตรข้างต้น หากเลขไม่เท่ากับ ให้ตรวจสอบเงื่อนไขในการส่งของโปรแกรม ว่าใช้เงื่อนไขใดในการคำนวน DRGCharge

⚫ 36

ผลรวมของจำนวนเงินใน XDRGClaim ไม่ถูกต้อง

ยอดค่าใช้จ่ายเบิกนอก DRG = ยอดรวมของ Min(ClaimAmt, ChargeAmt-Discount) เฉพาะรายการที่ ClaimCat = ‘T’


🔥 รหัสผลการตรวจรับ ติด C 🔴🟠🟡🟢🔵🟣🟤⚫

หลังจากส่งผ่านเบื้องต้นแล้ว จะใช้เวลาในการประมวลผลข้อมูลที่ส่งเป็นเวลา 1 วันทำงาน หรือ 24 ชม หลังจากส่ง โดยรหัสนี้จะเป็นเลข 3 ตัว การตรวจสอบจะลงลึกในแต่ละโครงสร้าง มีการตรวจสอบ ICD-9, ICD-10 การตรวจสอบ STDCode และ CSCode ว่าอยู่ในช่วงที่กำหนดหรือไม่ ราคาเป็นไปตามที่กำหนดหรือไม่ ผลรวมต่างๆ เป็นต้น

🔴 201

ไม่มี รหัสการวินิจฉัยโรคหลัก

🔴 202

มีรหัสการวินิจฉัยโรคหลักมากกว่า 1 รหัส (คำแนะนำ:ลดรหัสการวินิจฉัยโรคหลักให้เหลือ 1 รหัส แล้วส่งใหม่)

🟠 314

จำนวนวันนอนที่เบิกค่าห้องฯ มากกว่าที่ได้จากวัน เวลาที่รับไว้/จำหน่าย

314:44#43 หมายถึง มีการเบิก 44 วัน แต่นับได้จริงแค่ 43 วัน ให้ตรวจสอบวัน เวลา ที่รับไว้และจำหน่วย กับที่ใช้เบิกค่าห้องค่าอาหาร หากไม่สอดคล้องแก้ไขให้ถูกต้องและส่งใหม่

314:44#43 หมายถึง มีการเบิก 44 วัน แต่นับได้จริงแค่ 43 วัน ให้ตรวจสอบวัน เวลา ที่รับไว้และจำหน่วย กับที่ใช้เบิกค่าห้องค่าอาหาร หากไม่สอดคล้องแก้ไขให้ถูกต้องและส่งใหม่

🟠 303

ค่าห้องและอาหารที่เบิกเกินจำนวนวันนอน

🟠 333

เบิกค่าใช้จ่ายรายการย่อย (ค่าห้องฯ, อวัยวะเทียมฯ) เกินอัตราที่กำหนด (คำแนะนำ:แก้ไขจำนวนเงินเบิกสำหรับรหัส ค่าห้องฯ อวัยวะเทียมและอุปกรณ์ฯ แล้วส่งใหม่)

359|2020-06-05T12:00:00|02|SPIN3|โลหะดามกระดูกสันหลังส่วนอกเอว 3 ระดับ|1|50000.0000|50000.0000|0.0000|0|0|CS|02|7208||7208|T|2005-02-10|50000.0000|50000.0000

ตัวอย่างข้างต้นระบุราคาไว้ ClaimUP และ ClaimAmt เท่ากับ 50000 ซึ่งเกินกว่าราคาตาม rate ที่กรมบัญชีกลางกำหนด ราคาที่ บก. ให้เบิกคือ 25000 ตามเอกสาร “ปรับปรุงบัญชีรายการ…” 7208 7.2.8 โลหะดามกระดูกสันหลัง ส่วนอก,เอว (PDS) (ระดับแรกไม่เกิน 25000, ระดับถัดไปไม่เกิน 12500 ต่อระดับ)

⭐⭐⭐SOLUTION ⭐⭐⭐

ถ้าเงื่อนไขในการส่งเบิก ใช้ราคาตาม rate ส่ง จะไม่พบปัญหานี้ ซึ่งรหัส 333 กับ 648 อาจจะติดมาพร้อมกัน โดยมีเงื่อนไขว่า ราคาเกิน rate ติด 333 แต่ถ้าราคาน้อยกว่า rate ติด 648 สิ่งสำคัญก็คือ ข้อมูล 8 คอลั่มท้าย สามารถใช้ข้อมูลจาก equipdev_ ได้ทั้งหมดเลย เพียงแค่การอ้างอิงจาก code เท่านั้น

🟠 331

รหัสค่าใช้จ่ายรายการย่อย (ค่าห้องฯ, อวัยวะเทียมฯ,..) ใช้ไม่ได้
(คำแนะนำ:รหัสค่าใช้จ่ายรายการย่อย หมายถึงรหัสค่าห้องฯ อวัยวะเทียมฯ และยารักษาโรคมะเร็ง ที่ต้องบันทึกรายละเอียดระดับรายการ)

🟠 350

รหัสค่าใช้จ่ายรายการย่อยหรืออัตรา (ค่าห้องฯ, อวัยวะเทียมฯ,..) ที่ใช้ อยู่นอกช่วงเวลาที่ประ
(คำแนะนำ:ตรวจสอบวันรับไว้/จำหน่าย และรหัสค่าห้องฯ อวัยวะเทียมฯ และยารักษาโรคมะเร็ง เพราะบางรายการมีกำหนดเริ่มใช้ และสิ้นสุด)

🟡 467

กรณีใช้เลขอนุมัติฯ HN ไม่ตรงกับที่ใช้ขอหมายเลข (คำแนะนำ:เป็นกรณีขอเลขอนุมัติฯ ทาง Web page อาจมีการแจ้ง HN ผิด หรือบันทึกผิด)

🟢 602

ในข้อมูล BillItem: วันที่ปรับปรุงล่าสุด (DateRev) ของรหัส CSCode/StdCode ใช้ไม่ได้หรือไม่มี

*| - C 6306405 , ชื่อ นามสกุล: 602:2113 

ติดรหัส 602 : ของรหัส StdCode ที่ 2113 ให้เรามาดูไฟล์ equipdev_ เพื่อเปรียบเทียบ ดูช่อง daterev ว่าใช่ 20050210 หรือไม่ ถ้าไม่ใช่ ก็แสดงว่าต้อง update ข้อมูลในตาราง EQUIP_CIPN ใหม่

⭐⭐⭐SOLUTION ⭐⭐⭐

ให้ไปดูการ map รหัส CSCode/StdCode ของกรมบัญชีกลาง ว่าอัพเดทเป็นปัจจุบันแล้วหรือยัง? ข้อมูลชุดนี้หาได้จาก www.chi.or.th ลิงค์ในหน้าแรกจะใช้ชื่อว่า “ปรับปรุงบัญชีรายการยารักษาโรคมะเร็งและยาอื่น ๆ ที่เบิกเพิ่มนอก DRG ในสวัสดิการค่ารักษาพยาบาลข้าราชการ (ฉบับปรับปรุงประจำเดือน …………) ” ไฟล์นี้จะมีการเปลี่ยนแปลงอยู่ตลอด จึงควรตรวจสอบอย่างสม่ำเสมอ ให้เป็นปัจจุบัน ซึ่งในระบบ HOMC จะใช้ตาราง EQUIP_CIPN ในการเก็บ ซึ่งเงื่อนไขในการตรวจสอบคือตรวจสอบตาม StdCode และดู DateRev ที่มี dateexp เป็นค่า NULL (หมายถึงรายการนี้ใช้ได้ ยังไม่หมดอายุ) ตารางของไฟล์ equipdev_6308-1 จะหน้าตาเป็นแบบนี้

🟢 604

ในข้อมูล BillItem: รหัสหมวด (BillGrCS) ไม่มี หรือใช้ไม่ได้

*| - C 6305062 , ชื่อ นามสกุล: 602:21201,612:AMB,612:STE,612:W/H,604,201

⭐⭐⭐SOLUTION ⭐⭐⭐

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

🟢 612

ในข้อมูล BillItem: วันที่ให้บริการ อยู่นอกช่วงการเป็นผู้ป่วยใน (คำแนะนำ:วันที่ให้บริการ (ServDate) ต้องอยู่ในช่วงระหว่างวันที่รับไว้และจำหน่าย)

*| - C 6305062 , ชื่อ นามสกุล: 602:21201,612:AMB,612:STE,612:W/H,604,201

68|2020-04-11T11:00:00|14|W/H|ward home program|1|100.0000|100.0000|0.0000|0|0|CS|14|W/H||W/H|D|0000-00-00|100.0000|100.0000

⭐⭐⭐SOLUTION ⭐⭐⭐

จากการตรวจสอบพบว่าผู้ป่วยในรายนี้เข้า 2020-04-07T23:44:00 ออก 2020-04-11T11:00:00 ซึ่งด้วยข้อจำกัดบางอย่าง บางโปรแกรมจะไม่เก็บ TIMESTAMP เอาไว้ แต่จะแยกเก็บเป็น Date, Time ซึ่ง Time ก็เก็บแบบ HH:MM เท่านั้น การนำมาใช้มันจึงค่อนข้างลำบาก เวลาต้องหา Range ช่วงเวลา ซึ่งปัญหานี้อาจจะต้องทบทวนเงื่อนไขในการตรวจสอบของ สกส. ว่า วันที่ Discharge กับ ServDate เป็นวันและเวลาเดียวกันได้หรือไม่? ซึ่งถ้ามองจาก ข้อมูลข้างต้นแล้ว อาจจะไม่ได้ ต้องไปแก้เรื่องการคีย์ข้อมูลด้วยอีกส่วนหนึ่ง การคีย์ย้อนหลังก็สำคัญที่อาจทำให้เกิด Error นี้ขึ้นมาได้

🟢 640

ในข้อมูล BillItem: ClaimAmt # Qty*ClaimUP

*| - C 6305205  , คนึง ทวีธัญญ์: 602:21201,640:ROOM3,604,201

37|2020-04-14T14:00:00|01|ROOM3|ค่าห้อง ICU และค่าอาหาร (STROKE)|2|600.0000|1200.0000|0.0000|0|0|CS|01|21201||21201|T|2007-02-14|1200.0000|1200.0000

จากตัวอย่างข้างต้นจะเห็นว่า จำนวน Qty = 2 ClaimUP = 1200 แต่ ClaimAmt = 1200 ซึ่งจากสูตรข้างต้นนั้น จำนวนที่ถูกก็ต้องเป็น 2400 แต่ทั้งนี้ ไม่ได้ผิดที่จำนวนอย่างเดียว หากสังเกตให้ดีจะพบว่าข้อมูลชุดนี้ติดรหัส 602 มาด้วย ซึ่งนั่นก็แปลว่า ทั้งช่อง ClaimUP และ ClaimAmt ผิดทั้งคู่

⭐⭐⭐SOLUTION ⭐⭐⭐

ต้องแก้ที่ระบบดึงข้อมูล ตรวจสอบเงื่อนไขการคำนวน และ ที่มาของข้อมูลให้ถูกต้อง หากหมวด ClaimCat = T ให้ดูว่า ClaimUP ตรงตามราคาที่กรมบัญชีกลางกำหนดหรือไม่ หากตรงตามนั้นแหละ ให้ตรวจสอบยอด ClaimAmt ว่าเป็นไปตามสูตรข้างต้นหรือไม่ โดยอาจจะใช้ Excel ตรวจสอบด้วยสูตรแบบนี้ =IF(T2=(F2*S2),"","FALSE")

🟢 648

ในข้อมูล BillItem: ClaimCat = T แต่ ClaimUp # ราคาต่อหน่วยที่ บก กำหนด

⭐⭐⭐SOLUTION ⭐⭐⭐

ClaimCat คือ ประเภทการเบิก มีอยู่ 3 ประเภทหลัก ๆ คือ T = Tariff D = DRG X = Exempt สาเหตุของรหัส 648 คือ ราคา ClaimUp อัตราเบิกได้ของรายการนี้ตาม ClaimSys + (CSCode หรือ STDCode) กรณี ClaimCat = ‘D’ ให้ระบุเป็น 0.00

Cover vector created by rawpixel.com – www.freepik.com