نظم المعلومات الإدارية. أنماط البحث



في المرة الماضية ، تم وصف الكيانات الأساسية التي يتم استخدامها لتخزين البيانات الطبية في MIS Namedi. اليوم ، نحن نقدم الغطس في عالم قوالب بروتوكولات البحث.

بروتوكول الدراسة - وثيقة صادرة للمريض بين ذراعيه. ما هو القالب؟ الصور الجميلة والحروف الملونة هي مجرد واجهة ، والأساس عبارة عن هيكل مخزّن في قاعدة بيانات. بشكل عام ، يمكنك اختيار أي تنسيق لوصف البيانات المجردة التي تسمح لك بحفظ الهيكل الهرمي. استقرنا على XML.

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

بشكل عام ، يستخدم النظام أكثر من 15 علامة ، ولكل منها مجموعة سماتها الخاصة. باستخدام العلامات الأساسية الموضحة أدناه ، يمكنك إنشاء قالب لأي بروتوكول بحث.

قالب


العنصر الجذر الذي توجد به العلامات المتبقية. باستخدام سمتين ، يشير إلى وجود وموقع الصورة الرئيسية في القالب:

  • معرّف الصورة - معرّف الصورة الموجودة في المستودع ؛
  • موضع الصورة - موقع الصورة. الخيارات: بلا ، أعلى ، أعلى اليسار ، الزاوية اليسرى السفلية ، أعلى اليسار ، أعلى الزاوية. الافتراضي هو لا شيء.

تشريح


يستخدم لعرض جوهر علم التشريح. السمات

  • id - رقم التشريح في قاعدة البيانات ؛
  • حجم الخط ، خط عريض ، تسطير الخط - إعدادات الخط ؛
  • اسم التشريح - يسمح لك بإعادة تعريف اسم التشريح. بشكل افتراضي ، يتم أخذ الاسم من قاعدة البيانات.

تعليق تشريح


تستخدم لعرض تعليق الكيان. السمات

  • comment-id - رقم التعليق في قاعدة البيانات ؛
  • الاستخدام الافتراضي - علامة تشير إلى الحاجة إلى ملء حقل التعليق تلقائيًا بنموذج عبارة قياسي ، تم وضع علامة "افتراضي" عليه. الخيارات صحيحة وكاذبة. الافتراضي كاذب.
  • نوع التعليق - يشير إلى نوع التعليق. الخيارات: تعليق (تعليق) ، استنتاج (استنتاج) ، شكوى (شكوى). الافتراضي هو التعليق.

القياس


تستخدم لعرض أبعاد الكيان. السمات

  • id - رقم القياس في قاعدة البيانات ؛
  • max-width - العرض الإجمالي للعنصر ؛
  • value-width - عرض القائمة المنسدلة للأبعاد المذكورة ؛
  • عرض الوحدة - عرض الوحدات للقياسات العددية ؛
  • اسم القياس - يسمح لك بتجاوز اسم القياس ، المأخوذ من قاعدة البيانات افتراضيًا ؛
  • الحاجة نقاط، إلى نهاية - إلى ما إذا كان نقطة بعد القيم التعداد القياس اللازمة. الخيارات صحيحة وكاذبة. الافتراضي كاذب.
  • اسم فارغ - علامة تسمح بعدم عرض اسم البعد. الخيارات صحيحة وكاذبة. الافتراضي كاذب.
  • إظهار الفاصل الزمني - إشارة لعرض الفاصل الزمني المرجعي. الخيارات صحيحة وكاذبة. الافتراضي هو الصحيح.

تسمية الاستنتاج


تستخدم في نهاية النمط. ونتيجة لذلك ، يتم إضافة خط أخضر على عرض الخط بالكامل وكلمة "خاتمة" معروضة تحته.

يمكن العثور على جميع هذه العلامات ، على سبيل المثال ، في قالب المثانة بالموجات فوق الصوتية:

<template> <anatomy id="119" font-size="10" font-bold="true" font-underline="false" comment=" " /> <measurement id="663" comment="   " /> <measurement id="664" comment="     " /> <measurement id="665" comment="    (  )" /> <anatomy-comment comment-id="94" comment-type="comment" /> <conclusion-label spacing-before="HALF"/> <anatomy-comment comment-id="4" comment-type="conclusion" /> </template> 



نص


مصمم لعرض نص عادي. السمات

  • تسمية النص - النص المعروض ؛
  • الحد الأقصى للعرض - عرض العنصر ؛
  • حجم الخط ، خط عريض ، تسطير الخط - إعدادات الخط ؛
  • اختيار اللون - تمييز باللون الأخضر. الخيارات صحيحة وكاذبة. الافتراضي خطأ.

مجموعة القياس


يُستخدم لعرض مجموعة أبعاد كيان. يمكنك وضع علامات القياس والنص داخل هذه العلامة. السمات

  • id - رقم مجموعة القياس في قاعدة البيانات ؛
  • اختيار اللون - تمييز باللون الأخضر. الخيارات صحيحة وكاذبة. الافتراضي كاذب.
  • متعدد الفواصل - يستخدم لعرض الفترات المرجعية عند وجود قياسين في سطر واحد معهم. الخيارات صحيحة وكاذبة. الافتراضي كاذب.
  • show-through-slash - إظهار القياسات من خلال /. الخيارات الممكنة: صواب وخطأ. الافتراضي خطأ.

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

 <anatomy id="84" font-size="10" font-bold="true" font-underline="false" comment=" "/> <measurement-group id="7"/> <measurement id="429" comment=" "/> <measurement id="430" comment="   "/> <anatomy-comment comment-id="171" comment-type="comment" comment=" "/> 



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

جزء من نموذج الموجات فوق الصوتية BCA
 <line comment="-"> <text text-label=" " /> <text text-label="" max-width="197" is-color-selection="true" /> <text text-label="" max-width="197" is-color-selection="true" /> </line> <anatomy id="261" font-size="10" font-bold="true" font-underline="false" comment="  " /> <measurement-group id="11" multi-interval="true" comment="  :  "> <measurement id="609" unit-width="19" max-width="295" measurement-name="  (Vps)" comment="" /> <measurement id="606" unit-width="19" empty-name="true" comment="" /> </measurement-group> <measurement-group id="12" multi-interval="true" comment="  :  "> <measurement id="610" unit-width="19" max-width="295" measurement-name=" " comment="" /> <measurement id="607" unit-width="19" empty-name="true" comment="" /> </measurement-group> 




لتصور النقش "يسار يمين" ، يتم تضمين علامة النص المألوفة وسطر جديد ، والذي سيتم فك تشفيره أدناه.

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

 <measurement id="1577" max-width="247" need-points-to-end="false" measurement-name=" " /> <measurement-group id="81" show-through-slash="true" multi-interval="true"> <measurement id="1581" unit-width="27" measurement-name=" " comment="  " /> <measurement id="1582" unit-width="27" max-width="190" empty-name="true" comment="  " /> </measurement-group> <measurement id="1621" comment=" " /> 



الخط


جميع العناصر داخل هذه العلامة في سطر واحد. والفرق الرئيسي بين وسم الخط ومجموعة القياس هو أن الخط يجمع بصريًا بين البيانات غير المرتبطة ببعضها البعض. قد تتضمن العلامات التشريح والقياس والنص . تستخدم العلامة سمات التحديد متعدد الألوان والفواصل المتعددة ، التي يتوافق سلوكها مع السمات نفسها في مجموعة القياس .

على سبيل المثال ، يمكن العثور على القياسات التالية في الأشعة المقطعية للدماغ:

جزء من الأشعة المقطعية للدماغ
 <line> <measurement id="2801" measurement-name="  " /> <measurement id="2782" measurement-name="  " /> <measurement id="2781" max-width="145" measurement-name="" comment="  "/> </line> <line> <measurement id="2762" measurement-name=" " /> <measurement id="2763" measurement-name=" " /> <measurement id="2764" max-width="145" measurement-name=" " /> </line> <line> <measurement id="2743" measurement-name=" " /> <text max-width="247" text-label=" " /> </line> <line> <measurement id="2803" max-width="169" measurement-name="" /> <measurement id="2767" value-width="148" comment="  "/> </line> <line> <measurement id="2821" measurement-name="  " /> <measurement id="2841" measurement-name="  " /> </line> 




حسنًا ، هناك عدد قليل من العلامات المتبقية ، لكن دعنا ننتقل إلى كلمات الأغاني ، ثم إلى وصف جاف لـ "الخير" المتبقي.

يتم إرفاق كل قالب بسعر محدد (خدمة). يتم توزيع جميع الأسعار بدورها بين مجموعات الأسعار. والأخيرة مدرجة بالفعل في أي طرائق. على سبيل المثال:

  • العمود الفقري العنقي (الخدمة) - الرقبة (مجموعة الأسعار) - التصوير بالرنين المغناطيسي [MRI] (الطريقة) ؛
  • العمود الفقري العنقي (الخدمة) - الرقبة (مجموعة الأسعار) - التصوير المقطعي المحوسب (CT) (الطريقة) ؛
  • التشاور مع ممارس عام (الخدمة) - العلاج (مجموعة الأسعار) - الاستشارات والتلاعب [CM] (الطريقة) ؛
  • الكلى والغدد الكظرية (الخدمة) - تجويف البطن (مجموعة الأسعار) - الموجات فوق الصوتية [الموجات فوق الصوتية] (الطريقة).

إذا أخذنا في الاعتبار السعر بمزيد من التفاصيل ، فيمكننا تمييز الأنواع التالية له:

  • رئيسي
  • إضافية ؛
  • التحليل.

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

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

عند إنشاء بروتوكول البحث ، يتم أخذ النسخة الحالية من النموذج بعين الاعتبار ، والتي ترتبط بقائمة الأسعار الرئيسية الحالية. إذا دفع المريض ، على سبيل المثال ، خدمة "الموجات فوق الصوتية للبنكرياس" أو "استشارة الطبيب" ، فعندئذٍ لا تطرح أسئلة عند عرضه على الطبيب. ولكن ماذا تفعل إذا لم يتم دفع استشارة طبيب عام فقط ، ولكن أيضًا الفحص؟ كيفية إضافة قالب مرتبط بفحص الطبيب؟

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

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

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

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

منشئ القالب


تستخدم كمرجع لقالب آخر. تحدد السمة id رقم القالب المدرج.

كمثال ، نعطي قوالب اللوزتين اليمنى واليسرى ، والتي يتم استخدامها في القالب لفحص المتخصصين.

نمط اللوز الأيمن
 <template> <line> <anatomy id="524" font-size="10" font-bold="true" font-underline="false" comment=" " /> <measurement id="1542" max-width="112" empty-name="true" comment="  " /> <measurement id="1543" max-width="161" empty-name="true" comment="  " /> </line> <line> <measurement id="1550" measurement-name="" comment="  " /> <measurement id="1551" measurement-name="" comment="  " /> <measurement id="1552" measurement-name="" comment="  " /> </line> </template> 


نمط اللوز الأيسر
 <template> <line> <anatomy id="525" font-size="10" font-bold="true" font-underline="false" comment=" " /> <measurement id="1554" max-width="112" empty-name="true" comment="  " /> <measurement id="1555" max-width="161" empty-name="true" comment="  " /> </line> <line> <measurement id="1556" measurement-name="" comment="  " /> <measurement id="1557" measurement-name="" comment="  " /> <measurement id="1558" measurement-name="" comment="  " /> </line> </template> 


جزء من قالب الفحص المتخصص ، حيث يكون القالب رقم 516 من اللوزتين الأيمن ، و 517 من اللوزتين اليسرى:

 <template-builder id="516"/> <anatomy-comment comment-id="372" comment-type="comment" comment="   " /> <template-builder id="517"/> <anatomy-comment comment-id="373" comment-type="comment" comment="   " /> 



منشئ قالب السعر


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

نموذج استشارة المعالج:

 <template> <price-template-builder id="336"/> <anatomy-comment comment-id="370" comment-type="comment" comment="  " /> <conclusion-label spacing-before="HALF"/> <anatomy-comment comment-id="371" comment-type="conclusion" comment="  " /> </template> 



قالب فحص المعالج
 <template> <anatomy-comment comment-id="358" comment-type="complaint" comment=" " /> <measurement id="8541" comment=" " /> <line> <measurement id="1521" measurement-name="" comment=" " /> <measurement id="1559" measurement-name="" comment=" " /> <measurement id="1560" empty-name="true" comment=" " /> </line> <template-builder id="516"/> <anatomy-comment comment-id="372" comment-type="comment" comment="   " /> <template-builder id="517"/> <anatomy-comment comment-id="373" comment-type="comment" comment="   " /> <line> <measurement id="1181" comment=" " /> <measurement id="1182" measurement-name="" comment=" " /> <measurement id="1183" empty-name="true" comment=" " /> </line> <line> <measurement id="1561" max-width="247" measurement-name="" comment=" " /> <measurement id="1562" measurement-name=" " comment="  " /> <measurement id="1563" max-width="70" empty-name="true" comment="  " /> </line> <line> <measurement id="1564" measurement-name=" " comment="  " /> <measurement id="1565" empty-name="true" comment="  " /> <measurement id="1566" empty-name="true" comment="   " /> </line> <line> <measurement id="1567" measurement-name=" " comment="  " /> <measurement id="1568" empty-name="true" comment="  " /> <measurement id="1569" empty-name="true" comment="   " /> </line> <line> <measurement id="1570" measurement-name=" " comment="  " /> <measurement id="1571" empty-name="true" comment="  " /> <measurement id="1572" comment=""/> </line> <measurement id="1153" max-width="247" need-points-to-end="false" comment="  "/> <line> <measurement id="1573" measurement-name="  " /> <measurement id="1574" comment="   " /> </line> <measurement id="1575" comment=" " /> <measurement id="1576" comment="  " /> <measurement id="1577" max-width="247" need-points-to-end="false" measurement-name=" " /> <measurement-group id="81" show-through-slash="true" multi-interval="true" is-color-selection="false"> <measurement id="1581" unit-width="27" measurement-name=" " comment="  " /> <measurement id="1582" unit-width="27" max-width="190" empty-name="true" comment="  " /> </measurement-group> <line> <measurement id="1578" measurement-name="" comment=" " /> <measurement id="1579" empty-name="true" comment=" " /> <measurement id="1580" empty-name="true" comment=" " /> </line> <measurement id="1621" comment=" " /> <measurement id="1583" comment="   " /> <measurement id="1587" comment=" ()" /> <line> <measurement id="1584" max-width="247" comment=" " /> <measurement id="1585" comment=" " /> <measurement id="1586" max-width="70" empty-name="true" comment=" " /> </line> </template> 




مجموعة الأسعار


يُستخدم لعرض مجموعة الأسعار في قوالب التحليل. قد يحتوي على علامة منشئ السعر . السمات

  • id - رقم مجموعة الأسعار من قاعدة البيانات ؛
  • bgcolor - لون الخلفية ؛
  • fgcolor - لون النص.

ضع في اعتبارك بروتوكول اختبار الدم لقوائم الأسعار المدفوعة حالة الدهون ، الأسبارتات aminotransferase (AcAT) ، alanine aminotransferase (AlAT) ، التستوستيرون الكلي ، استراديول ، البرولاكتين ، هرمون النمو (STH).

جزء من قالب فحص الدم
 <template> <price-group id="9" bgcolor="#E18C8E" fgcolor="#FFFFFF"> <price-template-builder id="368"/> <price-template-builder id="369"/> <price-template-builder id="370"/> <price-template-builder id="371"/> <price-template-builder id="372"/> <price-template-builder id="373"/> <price-template-builder id="374"/> <price-template-builder id="375"/> <price-template-builder id="379"/> </price-group> <price-group id="10" bgcolor="#E18C8E" fgcolor="#FFFFFF"> <price-template-builder id="380"/> <price-template-builder id="381"/> <price-template-builder id="382"/> <price-template-builder id="383"/> <price-template-builder id="384"/> <price-template-builder id="385"/> <price-template-builder id="716"/> <price-template-builder id="717"/> </price-group> <price-group id="17" bgcolor="#E18C8E" fgcolor="#FFFFFF"> <price-template-builder id="425"/> <price-template-builder id="426"/> <price-template-builder id="427"/> <price-template-builder id="428"/> <price-template-builder id="429"/> <price-template-builder id="430"/> <price-template-builder id="431"/> <price-template-builder id="432"/> </price-group> <price-group id="31" bgcolor="#E18C8E" fgcolor="#FFFFFF"> <price-template-builder id="445"/> <price-template-builder id="446"/> </price-group> <anatomy-comment comment-id="6"/> </template> 


نموذج حالة الدهون (الرقم في قاعدة البيانات - 379):

 <template> <measurement id="36" comment=""/> <measurement id="37" comment=" "/> <measurement id="38" comment="    ()"/> <measurement id="39" comment="    ()"/> <measurement id="40" comment="     ("/> <measurement id="41" comment=" "/> </template> 

قالب ألانين أمينوترانسفيراز (AlAT) (الرقم في قاعدة البيانات - 381):

 <template> <measurement id="43" comment=" ()"/> </template> 



يحتوي النظام على عدة سمات يمكن العثور عليها في جميع العلامات:

  • التعليق - يتم تجاهله من قبل النظام ويعمل كعلامة للمطور ؛
  • تباعد قبل - تباعد أسطر إضافي. الخيارات الممكنة: لا شيء ، نصف ، كامل. الافتراضي هو NONE؛
  • is-short - يشير إلى نوع السلسلة: عادي (خطأ) أو قصير (صحيح). الافتراضي خطأ.

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

قالب الموجات فوق الصوتية للغدة الدرقية
 <template image-id="5" need-warning="true" image-position="left-top-corner"> <anatomy id="22" font-size="10" font-bold="true" font-underline="false" is-short="true" comment=" "/> <line is-short="true" spacing-before="HALF"> <measurement id="310" max-width="156" comment=""/> <measurement id="341" max-width="156" comment=""/> </line> <line is-short="true"> <measurement id="308" max-width="156" comment=""/> <measurement id="342" max-width="156" comment=""/> </line> <template-builder id="253" is-short="true"/> <template-builder id="254" is-short="true"/> <measurement id="307" is-short="true" measurement-name=" " spacing-before="HALF" /> <measurement id="309" measurement-name="   " /> <anatomy-comment comment-id="9" comment-type="comment" spacing-before="HALF" /> <conclusion-label spacing-before="HALF"/> <anatomy-comment comment-id="8" comment-type="conclusion" /> </template> 


نمط الفص الأيمن:

 <template> <anatomy id="24" font-size="10" font-bold="true" font-underline="false" spacing-before="HALF" is-short="true" comment=" "/> <measurement-group id="2" is-color-selection="true" is-short="true"/> </template> 

قالب الفص الأيسر:

 <template> <anatomy id="23" font-size="10" font-bold="true" font-underline="false" spacing-before="HALF" is-short="true" comment=" "/> <measurement-group id="1" is-color-selection="true" is-short="true"/> </template> 



لقد ذكرنا بالفعل أن العديد من التحولات تحدث مع شخص طوال الحياة. العلامات المتبقية هي فقط لوصفها ، وسيتم النظر فيها في المرة القادمة.

Source: https://habr.com/ru/post/ar416645/


All Articles