في مقال تبادل البيانات الصحية رأينا أن كل قيمة في السجل الطبي تحمل رمزاً من نظام معروف، فالتحليل له رمز 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 عندما يكون التوثيق غير واضح. والصورة التالية تبين الطريق من ملف المريض إلى المطالبة:

لاحظ في الصورة أن المرمز لا يتعامل مع المريض أبداً، وأن كل ما يملكه هو الملف، لذلك فجودة الترميز لا تتجاوز جودة التوثيق، وهذا هو السبب في أن الجهات التنظيمية تتحدث عن تحسين التوثيق السريري 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-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 كما يصفها دليل المجلس:

في الصورة أعلاه لاحظ التالي:
- الإصدار 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 ومنصة نفيس عند كتابة المقال، والصورة التالية تجمعه على خط زمني:

- الأنظمة المعتمدة: بحسب دليل تطبيق 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% من الحالات المرسلة في أي شهر أثناء الفوترة الموازية.
التدقيق: كيف يحسب المجلس جودة الترميز؟
بحسب الورقة البيضاء لمنهجية التدقيق فالتدقيق الخارجي له مجالان: دقة الترميز وهي 90% من الدرجة، ومراجعة عملية الترميز في المنشأة (السياسات والاستفسارات والتدريب ومقابلة المرمز) وهي 10%. وكل ملف يبدأ بمئة نقطة وتخصم منه نقاط بحسب نوع الخطأ وشدته (بسيط أو متوسط أو كبير)، ولا يحسب في الملف الواحد إلا خطأ واحد لكل رمز. وفي مثال المبيض خصمت النقاط على الرموز الأربعة الناقصة بحسب جداول الأخطاء في المنهجية (10 نقاط لكل من ثلاثة منها و15 للإجراء الناقص)، فخرج الملف ب 75 للدقة و80 للاكتمال.
ودرجة النجاح بحسب الورقة 70 في السنة الأولى و80 في الثانية، ومن السنة الثالثة فالمنشأة التي تتجاوز 96 تأخذ شهادة صالحة 18 شهراً، ومن بين 90 و95 تأخذ شهادة صالحة 12 شهراً، ومن لا ينجح يعاد تدقيقه خلال ثلاثة أشهر. وهذا يعني للمطور أن نظام المستشفى يجب أن يحفظ لكل مطالبة الرموز التي أرسلت والرموز بعد التصحيح ومن غيرها ولماذا، تماماً كما شرحنا في مقال سجل التدقيق، وإلا فلن يستطيع أحد أن يجيب المدقق.
رفض المطالبات وأخطاء الترميز
عندما ترفض شركة التأمين بنداً في المطالبة فهي ترجع معه سبباً مرمزاً، ومنصة نفيس تنشر قائمة هذه الأسباب في نظام رموز أسباب التسوية، وكثير منها أخطاء ترميز أو توثيق مباشرة:
| الرمز | السبب كما في القائمة | ماذا يعني للمرمز |
|---|---|---|
AD-1-4 | Diagnosis is inconsistent with service/procedure | الإجراء لا يبرره التشخيص المرسل، وغالباً لأن التشخيص الصحيح موجود في الملف ولم يرمز |
AD-3-5 | Diagnosis is inconsistent with patient's age | رمز لا يناسب عمر المريض، مثل رمز خاص بحديثي الولادة لمريض بالغ |
AD-3-8 | Service/procedure is inconsistent with patient's gender | إجراء خاص بجنس لا يطابق جنس المريض في المطالبة |
AD-3-2 | Use bundled code | تفكيك خدمة لها رمز واحد يجمعها إلى عدة رموز، وهذا يسمى Unbundling |
AD-2-4 | Duplicate service/procedure code based on the date | نفس الخدمة مرتين في نفس اليوم |
AD-3-4 | Incorrect DRG calculated | مجموعة DRG لا تطابق الرموز المرسلة |
SE-1-7 | Type of diagnosis is inadequate or missing | لم يحدد أي تشخيص هو الرئيسي وأيها إضافي |
MN-1-1 | Service is not clinically justified based on clinical practice guideline, without additional supporting diagnosis | الخدمة تحتاج تشخيصاً إضافياً يبررها، وهذا خطأ اكتمال في الغالب |
ومن هذه القائمة تستطيع أن تقسم أخطاء الترميز إلى أربعة أنواع: رمز خاطئ Inaccurate، ورمز ناقص Incomplete وهو ما رأيته في مثال المبيض، وترتيب خاطئ مثل وضع تشخيص إضافي مكان التشخيص الرئيسي، وترميز أعلى من الموثق Upcoding أو أقل منه Undercoding. والنوع الأخير هو الأخطر لأنه يتحول من خطأ إلى احتيال عندما يكون منظماً.
توثيق الطبيب 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.txt91c6c9d1117764ce72375a0f3a5493b1725dafbc1ab283b55799076c9e194965 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.9XE11 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.