← يتطلب: عمليات الأعمال التكامل متوسط ⏱ 5 ساعات الدورة 13

خدمات تحويل البيانات

Data Transformations

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

1فهم DTL
2إنشاء تحويلات
3استخدام التحويلات الشرطية
4اختبار التحويلات

01 مقدمة في DTL

DTL هي لغة مرئية لتحويل البيانات بين الصيغ المختلفة.

Class MyApp.Transform.HL7ToJSON Extends Ens.DataTransformDTL {
  XData DTL {
    
      
      
    
  }
}

02 Transformations متقدمة

يمكن إنشاء تحويلات معقدة باستخدام DTL.

// تحويل مع loops
XData DTL {
  
    
    
    
      
      
    
    
  
}

// Sub-transform
ClassMethod TransformAddress(source As MyApp.Address, target As MyApp.FormattedAddress) {
  Set target.Street = source.Street
  Set target.City = source.City
  Set target.Country = source.Country
  Set target.Full = source.Street _ ", " _ source.City _ ", " _ source.Country
}
03

تحويلات JSON ومعالجة الأخطاء

يمكنك تحويل البيانات من وإلى JSON باستخدام ObjectScript.

// تحويل HL7 إلى JSON
Class Hospital.Transform.HL7ToJson
{
    ClassMethod Convert(msg As EnsLib.HL7.Message) As %DynamicObject
    {
        Set json = {}
        Set json.messageType = msg.GetValueAt("9")
        Set json.patientId = msg.GetValueAt("PID:3.1")
        Set json.patientName = msg.GetValueAt("PID:5")
        Set json.dob = msg.GetValueAt("PID:7")
        Set json.gender = msg.GetValueAt("PID:8")
        
        // معالجة الأخطاء
        Try {
            Set json.admitDate = msg.GetValueAt("PV1:44")
        } Catch {
            Set json.admitDate = ""
        }
        
        Quit json
    }
}

// تحويل JSON إلى HL7
Class Hospital.Transform.JsonToHL7
{
    ClassMethod Convert(json As %DynamicObject) As EnsLib.HL7.Message
    {
        Set msg = ##class(EnsLib.HL7.Message).%New()
        Do msg.SetValueAt("MSH", "1")
        Do msg.SetValueAt("ADT^A01", "9")
        Do msg.SetValueAt(json.patientId, "PID:3.1")
        Do msg.SetValueAt(json.patientName, "PID:5")
        Do msg.SetValueAt(json.dob, "PID:7")
        Quit msg
    }
}

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

1. ما هو DTL؟

DTL هي Data Transformation Language لتحويل البيانات

ما هو Sub-transform في DTL؟

Sub-transform هو تحويل فرعي يمكن استدعاؤه من تحويلات أخرى لإعادة الاستخدام

ما هي خيارات DTL Transform؟
💡 الشرح

DTL يدعم assign, if, elseif, foreach, subtransform, code, وخيارات أخرى

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

  • DTL هي أداة التحويل الرئيسية في IRIS
  • تحويلات HL7 شائعة في القطاع الصحي
  • FHIR هو المعيار الحديث لتبادل البيانات الصحية
  • معالجة الأخطاء في التحويلات ضرورية لسلامة البيانات
  • يمكنك تحويل البيانات بين أي تنسيقين باستخدام ObjectScript