الأدلة التقنية

الترميز الطبي: من ملف المريض إلى المطالبة

كيف يحول المرمز توثيق الطبيب إلى رموز تشخيص وإجراءات ومجموعات DRG، وما الذي يلزم به مجلس الضمان الصحي في السعودية.

الترميز الطبي: من ملف المريض إلى المطالبة

في مقال تبادل البيانات الصحية رأينا أن كل قيمة في السجل الطبي تحمل رمزاً من نظام معروف، فالتحليل له رمز LOINC والتشخيص له رمز ICD، ولكننا لم نسأل: من يكتب رمز التشخيص أصلاً؟ فالطبيب يكتب في ملف المريض «ألم في البطن، والتصوير يظهر التهاب الزائدة، وتم استئصالها بالمنظار»، وشركة التأمين لا تدفع على هذه الجملة، وإنما على رموز محددة لكل تشخيص ولكل إجراء، والوزارة لا تحسب الإحصاءات من النصوص الحرة وإنما من الرموز نفسها. والعمل الذي يحول النص الطبي إلى هذه الرموز يسمى الترميز الطبي Clinical Coding، وهو الحلقة التي تربط ما حدث للمريض بما يدفع للمستشفى.

وهذا هو المقال الثالث في مرحلة التقنية في الصحة، وسوف نتناول فيه ما يلي:

  • ما هو الترميز الطبي، وماذا يفعل المرمز Clinical Coder من لحظة خروج المريض حتى إرسال المطالبة.
  • ICD-10 وICD-11 من منظمة الصحة العالمية، والتعديلات الوطنية مثل ICD-10-CM الأمريكي وICD-10-AM الأسترالي.
  • رموز الإجراءات، وعلاقة SNOMED CT وLOINC برموز الفوترة.
  • مجموعات التشخيص المرتبطة DRG وفكرة ال Casemix، وكيف يحسب المبلغ.
  • الوضع في السعودية من المصادر الرسمية فقط: منصة نفيس NPHIES، والأنظمة التي يلزم بها مجلس الضمان الصحي، ونظام الفوترة السعودي SBS، والتحول إلى AR-DRG.
  • رفض المطالبات Denials وأخطاء الترميز، والتدقيق Audit وكيف يحسب.
  • مختبر صغير على ملفات ICD-10-CM الرسمية: نتحقق من رموز مطالبة ونكسرها برموز غير صالحة.
  • الوظائف والشهادات في هذا المجال.

ما هو الترميز الطبي، ومن هو المرمز؟

الترميز الطبي هو قراءة توثيق الزيارة أو التنويم (ملاحظات الطبيب، وتقرير العملية، ونتائج الفحوص، وملخص الخروج Discharge Summary) ثم اختيار الرموز التي تصف ما حدث بحسب نظام تصنيف Classification معين وقواعده، والشخص الذي يقوم بذلك هو المرمز Clinical Coder. والتشبيه الأقرب هو المحاسب الذي يقرأ فواتير الشركة ثم يضع كل مبلغ في الحساب الصحيح من دليل الحسابات، فالمحاسب لا يخترع حساباً جديداً، والمرمز كذلك لا يكتب رمزاً من عنده، وإنما يختار من قائمة محددة بقواعد مكتوبة، ولا يرمز إلا ما هو موثق في الملف.

وقد يتساءل البعض: لماذا لا يكتب الطبيب الرموز بنفسه؟ والإجابة أن هذا يحدث في بعض العيادات، ولكن قواعد الترميز كثيرة ودقيقة، فهناك تشخيص رئيسي Principal Diagnosis يجب أن يأتي أولاً، وتشخيصات إضافية لها شروط، ورموز مركبة تجمع حالتين في رمز واحد، وما يرمز في العيادات الخارجية يختلف أحياناً عما يرمز في التنويم، والطبيب وقته في علاج المريض. لذلك فالمستشفيات توظف مرمزين متخصصين، وتربطهم بالأطباء بعملية استفسار Physician Query عندما يكون التوثيق غير واضح. والصورة التالية تبين الطريق من ملف المريض إلى المطالبة:

مخطط من ست خطوات: 1 الطبيب يكتب التوثيق في السجل، 2 المرمز يقرأ الملف ويختار رموز التشخيص ICD-10-AM ورموز الإجراءات SBS، 3 إذا كان التوثيق غير واضح يرسل استفساراً للطبيب Physician Query، 4 برنامج التجميع DRG Grouper يحسب مجموعة DRG للتنويم، 5 المطالبة ترسل عبر منصة نفيس NPHIES، 6 شركة التأمين تقبل أو ترفض برمز سبب، والرفض يعود إلى المرمز للتصحيح
المرمز يجلس بين توثيق الطبيب والمطالبة، وأي خطأ في الملف يصل إلى المال

لاحظ في الصورة أن المرمز لا يتعامل مع المريض أبداً، وأن كل ما يملكه هو الملف، لذلك فجودة الترميز لا تتجاوز جودة التوثيق، وهذا هو السبب في أن الجهات التنظيمية تتحدث عن تحسين التوثيق السريري Clinical Documentation Improvement واختصاراً CDI بنفس القدر الذي تتحدث فيه عن الترميز، كما سيأتي.

مثال حقيقي: ماذا يرمز المرمز وماذا يفوته؟

أفضل مثال وجدناه منشوراً من مصدر رسمي هو المثال الذي وضعه مجلس الضمان الصحي في الورقة البيضاء لمنهجية تدقيق الترميز (سبتمبر 2025): مريضة أجريت لها عملية استئصال كيس في المبيض بالمنظار، والمرمز في المستشفى أرسل رمزين فقط، ثم جاء المدقق Auditor وراجع الملف نفسه. والجدول التالي ينقل المقارنة كما في الورقة:

البندما رمزه المرمزما رمزه المدقق
التشخيصN83.2 كيس مبيض آخر أو غير محددN83.2 كما هو
تشخيص إضافيلا يوجدN99.4 التصاقات حوضية بعد إجراء سابق
سبب خارجيلا يوجدY83.6 إزالة عضو آخر (جزئياً أو كلياً)
المكانلا يوجدY92.24 مكان الحدوث: منطقة خدمة صحية في هذه المنشأة
الإجراء الأول35638-04-00 استئصال كيس المبيض بالمنظار من جهة واحدة35638-04-00 كما هو
الإجراء الثانيلا يوجد30393-00-00 فصل التصاقات البطن بالمنظار

في المثال أعلاه لاحظ التالي:

  • الرموز بشكلين مختلفين: التشخيصات بالشكل N83.2 من ICD-10-AM، والإجراءات بالشكل 35638-04-00 من نظام الفوترة السعودي SBS المبني على التصنيف الأسترالي للتدخلات الصحية ACHI، وسوف نشرح الاثنين بعد قليل.
  • المرمز لم يخطئ في ما كتبه، وإنما فاته ما لم يكتبه: الطبيب فصل التصاقات أثناء العملية، والالتصاقات نفسها نتيجة عملية سابقة، وهذا إجراء ثان وتشخيص ثان. وهذا النوع من الخطأ يسمى خطأ الاكتمال Completeness، وهو الأكثر شيوعاً لأنه لا يظهر لأي برنامج تحقق، فكل رمز أرسل صحيح بذاته.
  • الإجراء الناقص قد يغير مجموعة DRG في التنويم، وبالتالي المبلغ، فالخطأ هنا ليس شكلياً.

والدرجة التي حصل عليها هذا الملف في الورقة 75 للدقة و80 للاكتمال، وسوف نرجع إلى طريقة الحساب في قسم التدقيق.

ICD-10 وICD-11 والتعديلات الوطنية

التصنيف الدولي للأمراض International Classification of Diseases واختصاراً ICD تصدره منظمة الصحة العالمية، وهدفه الأصلي الإحصاء: أن تعد الدول الوفيات والأمراض بنفس اللغة فتستطيع المقارنة. والإصدار العاشر ICD-10 هو الذي بنيت عليه أغلب أنظمة الفوترة في العالم، ولكن المنظمة توقفت عن صيانته في 2018 بحسب صفحة الأسئلة الشائعة عن ICD-11، والإصدار الحادي عشر ICD-11 دخل حيز التنفيذ في 1 يناير 2022.

والمشكلة أن ICD-10 الأصلي من منظمة الصحة العالمية عام جداً للفوترة، فرمز مثل E11 (السكري من النوع الثاني) لا يقول هل معه مضاعفات في الكلى أو العين، والمستشفى يريد أن يثبت أن المريض أصعب حتى يحصل على المبلغ المناسب. لذلك أصدرت دول تعديلات وطنية National Modifications تضيف خانات وتفاصيل، وأشهرها:

  • ICD-10-CM في الولايات المتحدة: بحسب صفحة المركز الوطني للإحصاءات الصحية NCHS فالمركز هو المسؤول عن هذا التعديل، ومنظمة الصحة العالمية التي تملك ICD-10 هي التي أذنت له بتطويره. والرمز فيه من 3 إلى 7 خانات، والملفات تتحدث كل سنة مالية تبدأ في 1 أكتوبر، وملفات السنة المالية 2027 التي ننزلها في المختبر تنطبق على الزيارات من 1 أكتوبر 2026 حتى 30 سبتمبر 2027 بحسب صفحة CMS.
  • ICD-10-AM في أستراليا، ويأتي في حزمة واحدة مع التصنيف الأسترالي للتدخلات الصحية ACHI ومعايير الترميز الأسترالية Australian Coding Standards واختصاراً ACS، وتصدرها هيئة IHACPA. وهذه الحزمة هي التي تعتمدها السعودية كما سيأتي، وهي ليست ملفات مفتوحة للتنزيل، فبحسب صفحة المنتجات والتراخيص فالدول التي تستخدمها تحتاج اتفاقية ترخيص مع الهيئة، وهي اتفاقية بين حكومة وحكومة.

أما ICD-11 فهو ليس تحديثاً بسيطاً، وإنما تصميم جديد بني للأنظمة الرقمية من البداية: فيه بحسب دليل الانتقال إلى ICD-11 نحو 17 ألف فئة تشخيصية وأكثر من 100 ألف مصطلح في الفهرس، وفيه فكرة جديدة اسمها الربط اللاحق Postcoordination: رمز أساسي Stem Code يمكن استخدامه وحده، ورموز امتداد Extension Codes تضيف تفاصيل مثل الشدة أو الموضع في الجسم ولا تستخدم وحدها أبداً، وتربط بالرمز الأساسي بالعلامة &، ويربط رمزان أساسيان يصفان حالة واحدة بالعلامة / كما في وثيقة صيغة التجميع. ورخصته بحسب ملف الترخيص هي CC BY-ND 3.0 IGO، أي تستطيع استخدامه ونشره مع ذكر المصدر دون أن تعدل فيه.

والصورة التالية تضع أشكال الرموز التي سوف تقابلها بجانب بعضها:

أربع بطاقات: ICD-10-CM مثاله E11.22 السكري من النوع الثاني مع مرض الكلى المزمن، أول ثلاث خانات هي الفئة E11 وما بعد النقطة التفاصيل، ومن 3 إلى 7 خانات. ICD-10-AM مثاله N83.2 من مثال مجلس الضمان، ويستخدم في السعودية بالإصدار العاشر. ICD-11 رمز أساسي Stem Code ومعه رموز امتداد Extension Codes بالعلامة & ورمزان أساسيان بالعلامة /. ورمز إجراء SBS مثاله 30571-00-00 استئصال الزائدة بثلاث مجموعات من الأرقام. وفي الأسفل SNOMED CT في السجل السريري يربط بالتصنيف عبر جداول الربط Maps
كل نظام له شكل رمز مختلف، فلا تخزن الرمز في قاعدة البيانات دون اسم نظامه وإصداره

رموز الإجراءات: ما الذي فعله الطبيب؟

التشخيص يجيب عن سؤال «ما مشكلة المريض؟»، والمطالبة تحتاج أيضاً جواب «ماذا فعلنا له؟»، وهذا له أنظمة منفصلة تختلف من دولة لأخرى:

  • ICD-10-PCS في التنويم بالولايات المتحدة، من CMS، وكل رمز فيه سبع خانات بالضبط، وكل خانة محور له معنى ثابت مثل موضع الجسم وطريقة الوصول Approach، وهذا منصوص عليه في إرشادات ICD-10-PCS لسنة 2027.
  • CPT للخدمات التي يقدمها الأطباء في أمريكا، وتملكه وتصونه الجمعية الطبية الأمريكية AMA، واستخدام محتواه في برنامج يحتاج ترخيصاً منها، فلا تضع جدوله في منتجك قبل أن تقرأ شروطها.
  • ACHI في أستراليا، ومنه أخذت السعودية نظام الفوترة السعودي SBS كما سيأتي.

والقاعدة التي تربط النوعين أن الإجراء يجب أن يبرره تشخيص، فإذا أرسل المستشفى رمز إجراء لا يتفق مع التشخيص فهذا سبب رفض له رمز خاص في منصة نفيس، وسوف نراه في قسم الرفض.

أين يقع SNOMED CT وLOINC من رموز الفوترة؟

شرحنا هذه الأنظمة ورخصها في قسم أنظمة الترميز فلن نعيده، والسؤال هنا: إذا كان SNOMED CT أدق من ICD فلماذا لا تدفع شركات التأمين عليه؟ والإجابة في الفرق بين المصطلحات Terminology والتصنيف Classification:

  • المصطلحات مثل SNOMED CT صممت لتسجيل ما يعرفه الطبيب بأدق تفصيل ممكن، فيها مئات الآلاف من المفاهيم وكل مفهوم له علاقات بغيره، وهي ممتازة في السجل نفسه وفي دعم القرار السريري.
  • التصنيف مثل ICD وACHI صمم للعد والدفع: عدد محدود من الفئات، وكل حالة تقع في فئة واحدة فقط بقواعد واضحة، حتى يحسب المستشفى ويحسب الدافع نفس الرقم.

لذلك فالاتجاه الحديث أن يوثق الطبيب بالمصطلحات، ثم ينتقل الترميز إلى التصنيف بجداول ربط Maps يراجعها المرمز، ومن الأمثلة الرسمية على ذلك أن مجلس الضمان الصحي ينشر في صفحة معايير التصنيف السريري ملف ربط بين SBS V3 وSNOMED. أما LOINC فهو اسم الفحص نفسه في نظام المختبر ونتيجته، ولا يستخدم كرمز فوترة، فالمختبر يرسل النتيجة برمز LOINC، والمطالبة على الفحص ترسل برمز الخدمة في نظام الفوترة.

مجموعات التشخيص DRG وفكرة ال Casemix

لنفرض أن مستشفيين نوما مئة مريض كل منهما، الأول أغلب مرضاه حالات ولادة طبيعية، والثاني أغلب مرضاه عمليات قلب، فهل من العدل أن يدفع لهما نفس المبلغ لكل تنويم؟ بالطبع لا، وهل الحل أن يدفع لكل خدمة على حدة Fee for Service؟ هذا يكافئ من يطلب فحوصاً وأياماً أكثر. والحل الذي انتشر في العالم هو مجموعات التشخيص المرتبطة Diagnosis Related Groups واختصاراً DRG، وتعريفها في دليل تطبيق DRG من مجلس الضمان الصحي: نظام يجمع حالات التنويم في فئات متقاربة سريرياً بحسب التشخيص الرئيسي والتشخيصات الإضافية والإجراءات والعمر والجنس ووزن المولود وحالة الخروج، على أن المرضى في المجموعة الواحدة يستهلكون موارد متقاربة.

وكل مجموعة لها وزن نسبي Relative Weight يقيس تكلفتها المتوقعة مقارنة بالتنويم المتوسط، فالوزن 1.00 هو المتوسط، و2.00 ضعفه، و0.50 نصفه، والمبلغ بحسب الدليل نفسه:

DRG Payment = Base Rate x Relative Weight   (subject to applicable adjustments)

والسعر الأساسي Base Rate يتفق عليه المستشفى وشركة التأمين، والوزن يأتي من الجدول الرسمي. أما ال Casemix فهو مزيج الحالات عند المستشفى، ومؤشره المعروف Casemix Index واختصاراً CMI وهو متوسط الأوزان النسبية لكل حالات المستشفى في فترة معينة، فإذا كان أكبر من 1 فالمستشفى يعالج حالات أصعب من المتوسط. والصورة التالية تبين خطوات التجميع في AR-DRG كما يصفها دليل المجلس:

خطوات التجميع: 1 التحقق من الرموز والبيانات وإلا فمجموعة خطأ 960Z أو 961Z أو 963Z، 2 التشخيص الرئيسي يحدد واحدة من 23 فئة تشخيصية رئيسية MDC، 3 الحالات المكلفة جداً مثل التنفس الصناعي الطويل وECMO تذهب إلى Pre-MDC، 4 المجموعة المجاورة ADRG بحسب وجود تدخل جراحي أو علاج دوائي فقط، 5 درجة تعقيد كل تشخيص DCL من 1 إلى 5 تجمع في درجة الحالة ECCS من 0 إلى 31.25 وتحدد الحرف A أو B أو C أو D أو Z، 6 مجموعة DRG نهائية لها وزن نسبي، والمبلغ يساوي السعر الأساسي في الوزن النسبي. وفي الأسفل الأرقام: 803 مجموعة و399 مجموعة مجاورة و23 فئة رئيسية في الإصدار 9.0
التشخيص الرئيسي يختار الفصل، والتدخلات والتشخيصات الإضافية تختار المجموعة والحرف

في الصورة أعلاه لاحظ التالي:

  • الإصدار 9.0 من AR-DRG فيه بحسب الدليل 803 مجموعة موزعة على 399 مجموعة مجاورة Adjacent DRG و23 فئة تشخيصية رئيسية Major Diagnostic Category.
  • التشخيصات الإضافية ليست تفاصيل، فكل منها له درجة تعقيد Diagnosis Complexity Level من 1 إلى 5، ومجموعها يكون درجة تعقيد الحالة Episode Clinical Complexity Score التي تختار الحرف الأخير من المجموعة، لذلك فتشخيص إضافي ناقص كما في مثال المبيض قد ينقل الحالة إلى مجموعة أرخص.
  • إذا كان التشخيص الرئيسي غير مقبول كتشخيص رئيسي في دليل التعريفات، أو كانت البيانات متناقضة، فالحالة تذهب إلى مجموعة خطأ Error DRG مثل 961Z ولا يحسب لها مبلغ طبيعي.
  • الدليل ينص على أن التجميع يتم ببرنامج معتمد DRG Grouper فقط، وأن التجميع اليدوي غير مسموح.

وقد يتساءل البعض: أليس هذا يشجع المستشفى على أن يرمز حالات أصعب مما هي؟ والإجابة نعم، وهذا هو الخطر المعروف باسم الترميز الأعلى Upcoding، وتذكره الورقة البيضاء عن DRG من المجلس ضمن الآثار غير المقصودة لهذه الأنظمة، ولذلك يأتي ال DRG دائماً ومعه تدقيق على الترميز.

الوضع في السعودية من المصادر الرسمية

نذكر هنا فقط ما وجدناه في صفحات ووثائق رسمية من مجلس الضمان الصحي CHI ومنصة نفيس عند كتابة المقال، والصورة التالية تجمعه على خط زمني:

خط زمني: 2009 قرار المجلس الصحي السعودي اعتماد ICD-10-AM وACHI وACS، ثم 2022 حتى 2025 مرحلة جاهزية السوق، ثم 1 يناير 2026 بدء العمل بالإصدار الثالث من نظام الفوترة السعودي SBS V3 ب 9,937 رمزاً نشطاً، ثم 2026 و2027 الفوترة الموازية Shadow Billing حيث ترسل مطالبة DRG بجانب مطالبة الخدمات دون أثر على الدفع، ثم 1 يناير 2027 تدقيق خارجي سنوي إلزامي على الترميز، ثم 1 يناير 2028 الدفع بنظام DRG إلزامياً لكل حالات التنويم. وتحت الخط: التشخيصات ICD-10-AM الإصدار العاشر، والإجراءات SBS V3، والتجميع AR-DRG الإصدار 9.0
من اعتماد ICD-10-AM في 2009 إلى الدفع الإلزامي بال DRG في 2028
  • الأنظمة المعتمدة: بحسب دليل تطبيق DRG (الإصدار 1.0، 2026) فالمجلس الصحي السعودي قرر اعتماد ICD-10-AM/ACHI/ACS في 2009، والتشخيصات يجب أن ترمز بالإصدار العاشر من ICD-10-AM، والتدخلات بنظام الفوترة السعودي SBS V3 وفق معايير الترميز الأسترالية، والتجميع ب AR-DRG الإصدار 9.0 الذي حدده المجلس الصحي السعودي نظاماً وطنياً لتصنيف حالات التنويم. ولاحظ أن أستراليا نفسها انتقلت إلى الإصدار الثالث عشر من ICD-10-AM في 1 يوليو 2025 وإلى AR-DRG الإصدار 12.0 بحسب صفحة الإصدار 12.0، فلا تفترض أن الإصدار الأسترالي الأحدث هو المطلوب في المملكة، والمرجع هو ما يعلنه المجلس.
  • نظام الفوترة السعودي SBS: بحسب صفحته في موقع المجلس فهو تعديل على ACHI طوره المجلس بالتوافق مع معايير المجلس الصحي السعودي لترميز الخدمات والتدخلات والإجراءات في التنويم والعيادات. وملخص تحديثات الإصدار الثالث (أكتوبر 2025) ينص على أن التطبيق يبدأ في 1 يناير 2026، وأن عدد الرموز النشطة 9,937 رمزاً، منها 265 رمزاً جديداً، مع إيقاف 412 رمزاً وتعديل وصف 2,459 رمزاً، ومعه لأول مرة قائمة جدولية Tabular List بصيغة كتاب فيها الملاحظات والاستثناءات لكل رمز.
  • منصة نفيس: في قائمة مكونات دليل التنفيذ تجد قائمة قيم ICD-10-AM للتشخيصات بالنظام http://hl7.org/fhir/sid/icd-10-am، ونظام رموز الإجراءات وفيه أمثلة مثل 30571-00-00 لاستئصال الزائدة Appendicectomy، وقوائم فوترة منفصلة للتنويم والعيادات والصيدلية والأسنان والبصريات. وإذا لم تقرأ عن رسائل FHIR التي تحمل هذه الرموز فابدأ ب قسم السياق السعودي في مقال HL7 وFHIR.
  • التحول إلى DRG: الدليل يقسم التطبيق إلى ثلاث مراحل: جاهزية السوق من 2022 إلى 2025، ثم الفوترة الموازية Shadow Billing في 2026 و2027 حيث ترسل مطالبة DRG بجانب مطالبة الخدمات دون أن تؤثر على الدفع، ثم التطبيق الكامل من 1 يناير 2028 حيث يصبح الدفع بنظام DRG إلزامياً لكل حالات التنويم. ويذكر الدليل أن AR-DRG مطبق أصلاً عبر نفيس على حالات المادة الحادية عشرة.
  • الجودة: الدليل يلزم المستشفيات ببرنامج تدقيق داخلي ربع سنوي، وبتدقيق خارجي سنوي من جهات معتمدة من المجلس ابتداء من 1 يناير 2027، وألا تتجاوز مجموعات الخطأ 3% من الحالات المرسلة في أي شهر أثناء الفوترة الموازية.
⚠️
لم نجد في صفحات المجلس المنشورة تاريخ بدء الإصدارين الأول والثاني من SBS بوثيقة رسمية نستطيع ربطها، ولا تفاصيل نهائية عن مؤشرات الجاهزية لعام 2028 (فالنسخة المنشورة من الدليل فيها أرقام لم تكتمل صياغتها)، لذلك لم نذكرها. وإذا كان مشروعك يعتمد عليها فارجع إلى صفحة معايير التصنيف السريري أو راسل المجلس على العناوين المنشورة فيها.

التدقيق: كيف يحسب المجلس جودة الترميز؟

بحسب الورقة البيضاء لمنهجية التدقيق فالتدقيق الخارجي له مجالان: دقة الترميز وهي 90% من الدرجة، ومراجعة عملية الترميز في المنشأة (السياسات والاستفسارات والتدريب ومقابلة المرمز) وهي 10%. وكل ملف يبدأ بمئة نقطة وتخصم منه نقاط بحسب نوع الخطأ وشدته (بسيط أو متوسط أو كبير)، ولا يحسب في الملف الواحد إلا خطأ واحد لكل رمز. وفي مثال المبيض خصمت النقاط على الرموز الأربعة الناقصة بحسب جداول الأخطاء في المنهجية (10 نقاط لكل من ثلاثة منها و15 للإجراء الناقص)، فخرج الملف ب 75 للدقة و80 للاكتمال.

ودرجة النجاح بحسب الورقة 70 في السنة الأولى و80 في الثانية، ومن السنة الثالثة فالمنشأة التي تتجاوز 96 تأخذ شهادة صالحة 18 شهراً، ومن بين 90 و95 تأخذ شهادة صالحة 12 شهراً، ومن لا ينجح يعاد تدقيقه خلال ثلاثة أشهر. وهذا يعني للمطور أن نظام المستشفى يجب أن يحفظ لكل مطالبة الرموز التي أرسلت والرموز بعد التصحيح ومن غيرها ولماذا، تماماً كما شرحنا في مقال سجل التدقيق، وإلا فلن يستطيع أحد أن يجيب المدقق.

رفض المطالبات وأخطاء الترميز

عندما ترفض شركة التأمين بنداً في المطالبة فهي ترجع معه سبباً مرمزاً، ومنصة نفيس تنشر قائمة هذه الأسباب في نظام رموز أسباب التسوية، وكثير منها أخطاء ترميز أو توثيق مباشرة:

الرمزالسبب كما في القائمةماذا يعني للمرمز
AD-1-4Diagnosis is inconsistent with service/procedureالإجراء لا يبرره التشخيص المرسل، وغالباً لأن التشخيص الصحيح موجود في الملف ولم يرمز
AD-3-5Diagnosis is inconsistent with patient's ageرمز لا يناسب عمر المريض، مثل رمز خاص بحديثي الولادة لمريض بالغ
AD-3-8Service/procedure is inconsistent with patient's genderإجراء خاص بجنس لا يطابق جنس المريض في المطالبة
AD-3-2Use bundled codeتفكيك خدمة لها رمز واحد يجمعها إلى عدة رموز، وهذا يسمى Unbundling
AD-2-4Duplicate service/procedure code based on the dateنفس الخدمة مرتين في نفس اليوم
AD-3-4Incorrect DRG calculatedمجموعة DRG لا تطابق الرموز المرسلة
SE-1-7Type of diagnosis is inadequate or missingلم يحدد أي تشخيص هو الرئيسي وأيها إضافي
MN-1-1Service is not clinically justified based on clinical practice guideline, without additional supporting diagnosisالخدمة تحتاج تشخيصاً إضافياً يبررها، وهذا خطأ اكتمال في الغالب

ومن هذه القائمة تستطيع أن تقسم أخطاء الترميز إلى أربعة أنواع: رمز خاطئ Inaccurate، ورمز ناقص Incomplete وهو ما رأيته في مثال المبيض، وترتيب خاطئ مثل وضع تشخيص إضافي مكان التشخيص الرئيسي، وترميز أعلى من الموثق Upcoding أو أقل منه Undercoding. والنوع الأخير هو الأخطر لأنه يتحول من خطأ إلى احتيال عندما يكون منظماً.

📌
في 14 يناير 2026 أعلنت وزارة العدل الأمريكية أن شركات تابعة ل Kaiser Permanente وافقت على دفع 556 مليون دولار لتسوية اتهامات بأنها بين 2009 و2018 ضغطت على الأطباء لإضافة تشخيصات إلى ملفات المرضى بعد الزيارة عبر ملاحق Addenda، وتشخيصات لا علاقة لها بالزيارة نفسها، حتى ترتفع مدفوعات تعديل المخاطر Risk Adjustment في برنامج Medicare Advantage. والتسوية تنص على أنها اتهامات لم يصدر فيها حكم بالمسؤولية. والدرس للمطور: النظام الذي يقترح على الطبيب تشخيصات ليضيفها بعد الزيارة يجب أن يسجل من اقترح ومن أضاف ومتى، وأن يكون كل رمز مرتبطاً بتوثيق في نفس الزيارة.

توثيق الطبيب CDI والاستفسار

القاعدة الأولى في الترميز أن المرمز لا يرمز إلا ما هو موثق، فإذا كتب الطبيب «سكري» فقط فالمرمز لا يستطيع أن يضيف أن معه مرضاً في الكلى حتى لو كانت نتيجة الكلى في الملف، وإنما يرسل للطبيب استفساراً Physician Query يسأل فيه دون أن يوجه الإجابة. ولهذا يوجد برنامج تحسين التوثيق السريري CDI، ومجلس الضمان الصحي ينشر له خارطة طريق في صفحة معايير التصنيف، ودليل DRG يطلب من المستشفيات منسقاً للتوثيق وعملية استفسار موثقة ومتابعة لمؤشر CMI.

وهنا دور المطور في نظام المستشفى: شاشة التوثيق التي تسمح بنص حر فقط تنتج ملفات يصعب ترميزها، والشاشة التي تجبر الطبيب على اختيار رمز من قائمة طويلة تنتج رموزاً عامة غير محددة لأن الطبيب يختار أول ما يظهر. والحل الأنسب هو توثيق منظم في الأجزاء المهمة (التشخيص الرئيسي، والإجراءات، والمضاعفات)، مع حفظ النص الحر كما هو، ومع مكان لاستفسارات المرمز وإجابات الطبيب داخل نفس الملف.

مختبر: نتحقق من رموز مطالبة بالملفات الرسمية

ملفات ICD-10-AM مرخصة كما ذكرنا فلا نستطيع استخدامها في مختبر عام، لذلك نستخدم ملفات ICD-10-CM للسنة المالية 2027 من صفحة CMS، والفكرة نفسها تنطبق على أي تصنيف. والملفات منشورة للتنزيل دون شروط مكتوبة في الصفحة، وسياسة CDC تنص على أن أغلب محتواها في الملكية العامة Public Domain مع ذكر المصدر، ولكن تذكر أن ICD-10 الأصلي ملك لمنظمة الصحة العالمية التي أذنت بالتعديل الأمريكي، فإذا كنت سوف تضع الملفات في منتج تجاري خارج أمريكا فراجع شروط الاستخدام أولاً. وإذا لم يكن Docker مثبتاً لديك فقد شرحنا تثبيته في دليل تثبيت Docker على Ubuntu.

نبدأ بتنزيل الملف والتأكد منه:

mkdir -p lab-mc && cd lab-mc
curl -sLO https://www.cms.gov/files/zip/2027-code-descriptions-tabular-order.zip
sha256sum 2027-code-descriptions-tabular-order.zip
unzip -q 2027-code-descriptions-tabular-order.zip
cp "Code Descriptions/icd10cm_order_2027.txt" "Code Descriptions/icd10cm_codes_addenda_2027.txt" .
wc -l "Code Descriptions/icd10cm_codes_2027.txt" icd10cm_order_2027.txt
grep -E "^[0-9]+ E11 " icd10cm_order_2027.txt
91c6c9d1117764ce72375a0f3a5493b1725dafbc1ab283b55799076c9e194965  2027-code-descriptions-tabular-order.zip
   74879 Code Descriptions/icd10cm_codes_2027.txt
   98403 icd10cm_order_2027.txt
  173282 total
04306 E11     0 Type 2 diabetes mellitus                                     Type 2 diabetes mellitus

في المخرج أعلاه لاحظ التالي:

  • ملف الرموز فيه 74,879 رمزاً، وهي الرموز الصالحة للفوترة فقط، أما ملف الترتيب Order File ففيه 98,403 سطراً لأنه يضم أيضاً العناوين Headers مثل E11.
  • العمود الثالث في ملف الترتيب هو علامة الفوترة: 0 عنوان لا يرسل في مطالبة، و1 رمز صالح للفوترة، وهذا موضح في ملف PDF المرفق مع الملفات نفسها.
  • الرموز في الملفات دون النقطة، فالرمز E11.22 مكتوب E1122، والنقطة للعرض فقط.

والسكربت التالي يقرأ الملفين ويعرض شجرة الرموز تحت بادئة معينة، ويتحقق من رموز مطالبة واحداً واحداً: هل الرمز موجود؟ هل هو صالح للفوترة أم عنوان؟ هل حذف في تحديث هذه السنة؟ احفظه في icd_check.py:

# icd_check.py: explore the official ICD-10-CM FY2027 files and check the codes of a claim against them.
#   python icd_check.py tree E112            -> the codes under a prefix, with the billable flag
#   python icd_check.py check E11.22 N18.3 E11 D69.1 ...   -> is each code valid for a visit on or after 1 Oct 2026?
# Files (from the CMS "2027 Code Descriptions in Tabular Order" zip): icd10cm_order_2027.txt, icd10cm_codes_addenda_2027.txt
import sys

ORDER = {}                                   # code -> (billable, long title)
for line in open("icd10cm_order_2027.txt", encoding="utf-8"):
    code, billable, title = line[6:13].strip(), line[14] == "1", line[77:].strip()
    ORDER[code] = (billable, title)

CHANGES = {}                                 # what changed this fiscal year (Add / Delete / Revise)
for line in open("icd10cm_codes_addenda_2027.txt", encoding="utf-8"):
    kind, _, rest = line.partition(":")
    kind = kind.replace(" from", "").strip()          # "Revise from:" / "Revise to:" pairs count once
    if kind in ("Add", "Delete", "Revise"):
        parts = rest.split(None, 1)
        CHANGES[parts[0]] = (kind, parts[1].strip() if len(parts) > 1 else "")

def show(code):
    return code if len(code) <= 3 else code[:3] + "." + code[3:]

cmd, args = sys.argv[1], [a.upper().replace(".", "") for a in sys.argv[2:]]
if cmd == "tree":
    for code, (billable, title) in ORDER.items():
        if code.startswith(args[0]):
            print(f"{show(code):9} {'billable' if billable else 'header  '}  {title}")
elif cmd == "check":
    for code in args:
        if code in ORDER and ORDER[code][0]:
            print(f"{show(code):9} OK      {ORDER[code][1]}")
        elif code in ORDER:
            subs = [show(c) for c in ORDER if c.startswith(code) and c != code and ORDER[c][0]]
            was = " (billable until 30 Sep 2026)" if CHANGES.get(code, ("",))[0] == "Delete" else ""
            print(f"{show(code):9} REJECT  header, not billable{was}; choose one of {len(subs)} codes: {', '.join(subs[:4])} ...")
        elif CHANGES.get(code, ("",))[0] == "Delete":
            print(f"{show(code):9} REJECT  deleted on 1 Oct 2026 ({CHANGES[code][1]})")
        else:
            print(f"{show(code):9} REJECT  not an ICD-10-CM FY2027 code")
    print(f"FY2027 changes in the addenda: " + ", ".join(f"{k} {sum(1 for v in CHANGES.values() if v[0] == k)}" for k in ("Add", "Delete", "Revise")))

ونشغله في Container بايثون بإصدار محدد، أولاً لنرى شجرة السكري مع أمراض الكلى، ثم لمطالبة فيها رموز صحيحة:

docker run --rm --name lab-mc-check -v "$PWD:/work" -w /work python:3.13.16-slim \
  sh -c 'python icd_check.py tree E112; echo; python icd_check.py check E11.22 N18.30 Z79.84'
E11.2     header    Type 2 diabetes mellitus with kidney complications
E11.21    billable  Type 2 diabetes mellitus with diabetic nephropathy
E11.22    billable  Type 2 diabetes mellitus with diabetic chronic kidney disease
E11.29    billable  Type 2 diabetes mellitus with other diabetic kidney complication

E11.22    OK      Type 2 diabetes mellitus with diabetic chronic kidney disease
N18.30    OK      Chronic kidney disease, stage 3 unspecified
Z79.84    OK      Long term (current) use of oral hypoglycemic drugs
FY2027 changes in the addenda: Add 190, Delete 30, Revise 4

هذه مطالبة مريض سكري من النوع الثاني مع مرض كلى مزمن في المرحلة الثالثة يأخذ دواء فموياً، ولاحظ أن الرمز E11.22 رمز مركب Combination Code يجمع السكري والكلى، والسبب أن إرشادات ICD-10-CM لسنة 2027 تنص على أن كلمة «with» في عناوين التصنيف تعني أن العلاقة بين الحالتين مفترضة حتى لو لم يكتبها الطبيب صراحة، إلا إذا كتب أنهما غير مرتبطتين، فلا ترسل E11.9 (سكري دون مضاعفات) مع رمز الكلى.

نكسر المطالبة: خمسة رموز يرفضها النظام

الآن نرسل رموزاً يكتبها الناس فعلاً: الفئة دون تفاصيل، ورمز كان صالحاً حتى الأسبوع الماضي، ورمز حذف، ورمز مخترع:

docker run --rm --name lab-mc-check -v "$PWD:/work" -w /work python:3.13.16-slim \
  python icd_check.py check E11 N18.3 I42.0 S23.420A E11.9X
E11       REJECT  header, not billable; choose one of 87 codes: E11.00, E11.01, E11.10, E11.11 ...
N18.3     REJECT  header, not billable; choose one of 3 codes: N18.30, N18.31, N18.32 ...
I42.0     REJECT  header, not billable (billable until 30 Sep 2026); choose one of 3 codes: I42.00, I42.01, I42.09 ...
S23.420A  REJECT  deleted on 1 Oct 2026 (Sprain of sternoclavicular (joint) (ligament), initial encounter)
E11.9X    REJECT  not an ICD-10-CM FY2027 code
FY2027 changes in the addenda: Add 190, Delete 30, Revise 4

في المخرج أعلاه لاحظ التالي:

  • E11 وN18.3 عناوين وليست رموزاً صالحة للفوترة، فالأول تحته 87 رمزاً، والثاني يجب أن تحدد فيه المرحلة الفرعية. وهذا أشهر خطأ في الأنظمة التي تكتفي بأول ثلاث خانات.
  • I42.0 (اعتلال عضلة القلب التوسعي) كان رمزاً صالحاً حتى 30 سبتمبر 2026، ثم أصبح عنواناً تحته ثلاثة رموز أدق، فالنظام الذي لم يحدث جداوله في 1 أكتوبر سوف يرسل رمزاً يرفض.
  • S23.420A حذف تماماً في هذا التحديث، والسطر الأخير يبين حجم التغيير في سنة واحدة: 190 رمزاً جديداً و30 رمزاً محذوفاً و4 رموز تغير وصفها.
  • E11.9X رمز غير موجود أصلاً، وهذا ما سوف تراه كثيراً عندما تطلب الرموز من نموذج لغة، كما في مقال الترميز بمساعدة الذكاء الاصطناعي.

والدرس للمطور أن جدول الرموز ليس بيانات ثابتة، وإنما بيانات لها إصدار وتاريخ بدء وتاريخ انتهاء، والتحقق يجب أن يتم بالإصدار الذي يطابق تاريخ الخدمة وليس تاريخ اليوم، فمطالبة عن زيارة في سبتمبر 2026 تتحقق بملفات 2026، ونفس الشيء ينطبق على SBS في المملكة عندما انتقل من الإصدار الثاني إلى الثالث في 1 يناير 2026.

الوظائف والشهادات

الترميز من الوظائف التي تجمع المعرفة الطبية (التشريح ووظائف الأعضاء والمصطلحات الطبية) مع الدقة في القواعد، وأشهر الأدوار فيه:

  • المرمز Clinical Coder: يرمز ملفات التنويم أو العيادات، وغالباً يبدأ بالعيادات ثم ينتقل إلى التنويم لأنه أعقد.
  • المدقق Coding Auditor: يراجع عينات من عمل المرمزين ويحسب الدرجات بالمنهجية المعتمدة.
  • أخصائي تحسين التوثيق CDI Specialist: يراجع الملفات أثناء التنويم ويرسل الاستفسارات للأطباء قبل الخروج.
  • أدوار في دورة الإيرادات Revenue Cycle Management: متابعة الرفض والاعتراض Appeal وتحليل أسبابه.
  • أدوار تقنية: من يبني أنظمة السجل وبرامج التجميع وأدوات الترميز بمساعدة الحاسب، وهذا ما يعنينا كمطورين.

أما الشهادات فهي مرتبطة بالتصنيف المستخدم في البلد:

  • في السعودية: دليل DRG من مجلس الضمان الصحي يطلب أن يكون الترميز في التنويم من مرمزين يحملون شهادة معتمدة من المجلس أو في طريقهم إليها، ويذكر في معايير الجاهزية لعام 2028 أن كل المرمزين يجب أن يحملوا شهادة سارية في ICD-10-AM/ACHI/ACS بالإصدار العاشر من جهة تدريب معتمدة من المجلس، وأن تجدد كل ثلاث سنوات أو عند اعتماد إصدار جديد. والورقة البيضاء للتدقيق تذكر أخلاقيات الترميز الصادرة عن جمعية HIMAA الأسترالية ضمن ما يراجع في المنشأة.
  • AHIMA الأمريكية: شهادة CCA للمبتدئين، واختبارها بحسب صفحتها 105 أسئلة في ساعتين، وشهادة CCS للمحترفين وتغطي ICD-10-CM وICD-10-PCS وCPT، واختبارها 107 أسئلة في أربع ساعات، وتشترط خبرة أو دراسة محددة.
  • AAPC الأمريكية: أشهر شهاداتها CPC للترميز في العيادات، وصفحة الدعم تذكر أن أغلب اختباراتها 100 سؤال في أربع ساعات.

وتذكر أن الشهادات الأمريكية تدرس ICD-10-CM وCPT، وهي ليست الأنظمة المستخدمة في المملكة، فإذا كان هدفك العمل في السوق السعودي فالمطلوب بحسب دليل المجلس هو ICD-10-AM/ACHI/ACS وSBS، والأمريكية تفيدك في المبادئ وفي العمل مع جهات أمريكية.

ماذا يعني هذا لمن يبني نظاماً صحياً؟

  • خزن الرمز مع نظامه وإصداره: لا تحفظ العمود code وحده، واحفظ معه النظام (http://hl7.org/fhir/sid/icd-10-am مثلاً) والإصدار وتاريخ الخدمة، والسبب أن N18.3 كان صالحاً في سنة وأصبح عنواناً في أخرى.
  • جداول الرموز بيانات لها دورة حياة: حملها من المصدر الرسمي مع بصمتها Checksum، وخطط لتحديثها في تاريخ معلن (1 أكتوبر في أمريكا، و1 يناير 2026 لإصدار SBS الثالث في المملكة).
  • التحقق قبل الإرسال: وجود الرمز، وهل هو صالح للفوترة، وتوافقه مع العمر والجنس، وأن لكل إجراء تشخيصاً يبرره، فكل رفض تمنعه قبل الإرسال أرخص من رفض يرجع بعد أسابيع.
  • لا تحذف ما غيره المرمز: احفظ الرموز الأصلية والمعدلة ومن عدلها ولماذا، فهذا ما يطلبه التدقيق، وهو أيضاً أفضل بيانات لتدريب أي أداة ترميز لاحقاً.
  • التجميع ببرنامج معتمد: لا تكتب برنامج DRG بنفسك، فدليل المجلس ينص على أن التجميع ببرامج معتمدة فقط، وصفحة معايير التصنيف تذكر الموردين المعتمدين.

تدريب عملي

  • شغل python icd_check.py tree I420 وقارن الرموز الثلاثة تحت اعتلال عضلة القلب التوسعي، ثم ابحث في ملف ال addenda عن بقية الرموز التي تحولت إلى عناوين هذه السنة.
  • أضف إلى السكربت فحصاً بسيطاً: إذا ظهر E11.9 مع أي رمز من N18 في نفس المطالبة فاطبع تحذيراً بأن الرمز المركب E11.22 هو الصحيح غالباً.

الخلاصة

وصلنا لنهاية الموضوع، وأهم ما فيه:

  • الترميز الطبي هو تحويل توثيق الطبيب إلى رموز تشخيص وإجراء بقواعد مكتوبة، والمرمز لا يرمز إلا ما هو موثق، وأكثر أخطائه ما فاته لا ما كتبه.
  • ICD-11 دخل حيز التنفيذ في 2022، ولكن الفوترة في أغلب الدول ما زالت على تعديلات وطنية من ICD-10 مثل ICD-10-CM وICD-10-AM.
  • SNOMED CT للتوثيق الدقيق في السجل، وICD وACHI للعد والدفع، وتربط بينهما جداول ربط يراجعها المرمز، وLOINC اسم الفحص وليس رمز فوترة.
  • ال DRG يجمع حالات التنويم في مجموعات لها أوزان نسبية، والمبلغ هو السعر الأساسي في الوزن، والتشخيص الإضافي الناقص قد يغير المجموعة.
  • في المملكة: ICD-10-AM الإصدار العاشر للتشخيصات، وSBS V3 للإجراءات من 1 يناير 2026، وAR-DRG الإصدار 9.0، وفوترة موازية في 2026 و2027، ودفع إلزامي بال DRG من 1 يناير 2028.
  • جداول الرموز تتغير كل سنة، فتحقق من الرموز بالإصدار الذي يطابق تاريخ الخدمة.
دليلتبادل البيانات الصحية بين الأنظمة: HL7 وFHIRكيف تنتقل نتائج المختبر وبيانات المريض بين أنظمة المستشفى برسائل HL7 وواجهات FHIR، وكيف تبني ذلك وتختبره بنفسك.دليلالترميز الطبي بالذكاء الاصطناعي: أين ينجح وأين يخطئ؟كيف تساعد القواعد ونماذج اللغة المرمز في اختيار الرموز، وكيف تقيس دقتها وتمنعها من اختراع رموز غير موجودة.دليلكيف تعمل شركة ناشئة في الذكاء الاصطناعي الطبي؟ما الذي تحتاجه شركة ذكاء اصطناعي للأشعة غير النموذج: البيانات والتحقق والموافقة والتكامل مع المستشفى، بحسابات حقيقية.دليلAudit Trail: كيف تبني سجل تدقيق لا يقبل العبثكيف تصمم سجلاً يجيب عن سؤال من غير هذه الصلاحية ومتى، وتحميه من الحذف والتعديل بعد كتابته.

سجل التحديثات

  • أكتوبر 2026: كتابة المقال، وتنفيذ المختبر على ملفات ICD-10-CM للسنة المالية 2027 من CMS، مع python:3.13.16-slim على Docker Engine 29.8.0.
نشرة عرب رووت | ArabRoot

معرفة تستحق مكاناً في بريدك.

مقالات مختارة وأدوات مفيدة وأفكار لمشروعك القادم، في رسالة واحدة كل أسبوع.

يمكنك إلغاء الاشتراك متى شئت. الخصوصية

تم استلام طلبك. افتح بريدك واضغط رابط التأكيد لإتمام الاشتراك.