← يتطلب: IRIS for Health الصحة متقدم ⏱ 5 ساعات الدورة 19

أكواد ICD-10 والمصطلحات الطبية

ICD-10 & Medical Terminologies

🎯 أهداف التعلم

1فهم ICD-10
2التعامل مع المصطلحات
3ربط الأكواد
4استخدام IRIS للمصطلحات

01 مقدمة في ICD-10

ICD-10 هو التصنيف الدولي للأمراض.

ClassMethod SearchICD(term) {
  Set rs = ##class(%SQL.Statement).%ExecDirect(,
    "SELECT Code, Description FROM ICD10.Description WHERE Description %CONTAINS ?", term)
  While rs.%Next() {
    Write rs.%Get("Code"), ": ", rs.%Get("Description"), !
  }
}

02 التعامل مع المصطلحات الطبية

IRIS يوفر نظام إدارة مصطلحات طبية مدمج.

// البحث في المصطلحات الطبية
ClassMethod SearchTerminology(term, system) {
  Set rs = ##class(%SQL.Statement).%ExecDirect(,
    "SELECT Code, Display, System FROM Terminology.Concept " _
    "WHERE Display %CONTAINS ? AND System = ?", term, system)
  
  While rs.%Next() {
    Write rs.%Get("Code"), " | ", rs.%Get("Display"), " | ", rs.%Get("System"), !
  }
}

// ربط تشخيص بICODE-10
ClassMethod LinkDiagnosis(encounterId, icdCode) {
  Set diag = ##class(HS.SDA3.Diagnosis).%New()
  Set diag.Code = icdCode
  Set diag.SDTB = "ICD-10"
  Set diag.Description = ..GetICDDescription(icdCode)
  
  // حفظ في SDA3
  Set sc = ##class(HS.FHIR.Utils).SaveSDA(diag, "Condition")
  Return sc
}

// أمثلة أكواد ICD-10 شائعة
// I10 - ارتفاع ضغط الدم
// E11 - السكري النوع الثاني
// J06 - التهابات الجهاز التنفسي العلوي
03

تقارير الترميز الطبي

إنشاء تقارير إحصائية للأكواد الطبية المستخدمة.

// تقارير الترميز
Class Hospital.ICD10.Reports
{
    ClassMethod TopDiagnoses(limit As %Integer = 20)
    {
        Write "أكثر ", limit, " تشخيصاً:", !
        Write "═══════════════════════════════════", !
        
        &sql(SELECT TOP :limit ICDCode, COUNT(*) AS Cnt INTO :code, :cnt
             FROM Hospital.Models.Diagnosis
             GROUP BY ICDCode
             ORDER BY Cnt DESC)
        While SQLCODE = 0 {
            &sql(SELECT Description INTO :desc FROM Hospital_ICD10.Codes WHERE Code = :code)
            Write code, " | ", desc, " | عدد: ", cnt, !
            &sql(FETCH)
        }
    }
    
    ClassMethod DepartmentReport()
    {
        Write "تقرير التشخيصات حسب القسم:", !
        &sql(SELECT Department, COUNT(DISTINCT ICDCode) AS UniqueCodes, COUNT(*) AS Total
             INTO :dept, :codes, :total
             FROM Hospital.Models.Diagnosis d
             INNER JOIN Hospital.Models.Patient p ON d.PatientId = p.ID
             GROUP BY Department
             ORDER BY Total DESC)
        While SQLCODE = 0 {
            Write dept, ": ", codes, " كود فريد، ", total, " إجمالي", !
            &sql(FETCH)
        }
    }
}

04 الترميز الطبي الآلي

استخدام AI لاقتراح أكواد ICD-10 تلقائياً من النصوص السريرية.

// اقتراح أكواد ICD-10 من النص السريري
ClassMethod SuggestICDCodes(clinicalText As %String) As %DynamicArray {
  Set suggestions = []
  
  // البحث في قاعدة أكواد ICD-10
  &sql(SELECT Code, Description INTO :code, :desc 
       FROM ICD10.Description 
       WHERE Description %CONTAINS :clinicalText 
       ORDER BY Weight DESC)
  
  While SQLCODE = 0 {
    Do suggestions.%Push({
      "code": (code),
      "description": (desc),
      "confidence": (..CalculateConfidence(clinicalText, desc))
    })
    &sql(FETCH ICD10.Description INTO :code, :desc)
  }
  
  Return suggestions
}

🔗 الربط مع CodeLinc AI: يستخدم CodeLinc من BrainSAIT هذه الخوارزمية للترمز الآلي.

📝 اختبار التحقق

1. ما هو ICD-10؟

التصنيف الدولي للأمراض من منظمة الصحة العالمية

ما هو كود ICD-10 لارتفاع ضغط الدم؟

I10 هو كود ICD-10 لارتفاع ضغط الدم الأساسي (Essential Hypertension)

كم عدد الفئات الرئيسية في ICD-10؟
💡 الشرح

ICD-10 يحتوي على 21 فئة رئيسية (A00-Z99) تغطي جميع الأمراض والظروف الصحية

💡 النقاط الرئيسية

  • ICD-10 هو نظام تصنيف الأمراض الدولي
  • SNOMED CT يغطي المصطلحات السريرية الشاملة
  • LOINC يُستخدم لترميز المختبرات
  • RxNorm يُستخدم لترميز الأدوية
  • الترمزيم الطبي الآلي يقترح أكواداً بناءً على الملاحظات السريرية