01 مقدمة في DTL
DTL هي لغة مرئية لتحويل البيانات بين الصيغ المختلفة.
Class MyApp.Transform.HL7ToJSON Extends Ens.DataTransformDTL {
XData DTL {
}
}DTL هي لغة مرئية لتحويل البيانات بين الصيغ المختلفة.
Class MyApp.Transform.HL7ToJSON Extends Ens.DataTransformDTL {
XData DTL {
}
}يمكن إنشاء تحويلات معقدة باستخدام 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
}يمكنك تحويل البيانات من وإلى 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 يدعم assign, if, elseif, foreach, subtransform, code, وخيارات أخرى