1789 lines
72 KiB
JSON
1789 lines
72 KiB
JSON
[
|
|
{
|
|
"id": "sess_0gbnohlxmp73742g",
|
|
"title": "نظام إدارة عيادة",
|
|
"scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
|
|
"actors": [
|
|
"المريض",
|
|
"موظف الاستقبال",
|
|
"الطبيب",
|
|
"مسؤول النظام"
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "حجز موعد جديد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار حجز موعد جديد.",
|
|
"النظام يعرض الأوقات المتاحة.",
|
|
"المريض يختار الوقت المناسب.",
|
|
"النظام يؤكد حجز الموعد."
|
|
],
|
|
"alternateFlow": [
|
|
"الوقت المختار غير متاح."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "متابعة المواعيد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار متابعة مواعيده.",
|
|
"النظام يعرض قائمة المواعيد القادمة والسابقة.",
|
|
"المريض يستعرض تفاصيل الموعد."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "تسجيل مريض جديد",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار تسجيل مريض جديد.",
|
|
"موظف الاستقبال يدخل بيانات المريض.",
|
|
"النظام يحفظ بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"بيانات المريض غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-04",
|
|
"title": "تحديث بيانات المريض",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يبحث عن المريض.",
|
|
"موظف الاستقبال يعدل بيانات المريض.",
|
|
"النظام يحدث بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-05",
|
|
"title": "إصدار فاتورة",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار إصدار فاتورة.",
|
|
"موظف الاستقبال يحدد الخدمات المقدمة.",
|
|
"النظام يحسب المبلغ الإجمالي.",
|
|
"النظام يصدر الفاتورة."
|
|
],
|
|
"alternateFlow": [
|
|
"الخدمات غير محددة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-06",
|
|
"title": "عرض الملف الطبي",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يبحث عن المريض.",
|
|
"النظام يعرض الملف الطبي للمريض.",
|
|
"الطبيب يستعرض تاريخ المريض الطبي."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-07",
|
|
"title": "إضافة تشخيص ووصفة",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يختار إضافة تشخيص ووصفة.",
|
|
"الطبيب يدخل التشخيص.",
|
|
"الطبيب يضيف الوصفة الطبية.",
|
|
"النظام يحفظ التشخيص والوصفة."
|
|
],
|
|
"alternateFlow": [
|
|
"التشخيص أو الوصفة غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-08",
|
|
"title": "عرض تقرير يومي",
|
|
"actor": "مسؤول النظام",
|
|
"preconditions": "مسؤول النظام مسجل الدخول.",
|
|
"mainFlow": [
|
|
"مسؤول النظام يختار عرض تقرير يومي.",
|
|
"النظام يعرض تقرير بالمواعيد والفواتير.",
|
|
"مسؤول النظام يستعرض التقرير."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-09",
|
|
"title": "إرسال إشعار تذكير بالموعد",
|
|
"actor": "النظام",
|
|
"preconditions": "يوجد موعد قادم للمريض.",
|
|
"mainFlow": [
|
|
"النظام يحدد المواعيد القادمة.",
|
|
"النظام يرسل إشعار تذكير للمريض.",
|
|
"المريض يستقبل الإشعار."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض قام بإلغاء الموعد."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-01",
|
|
"title": "إرسال التذكير بالمواعيد",
|
|
"actor": "نظام خارجي",
|
|
"preconditions": "تتوفر صلاحية نظام خارجي والوصول إلى البيانات اللازمة.",
|
|
"mainFlow": [
|
|
"يفتح نظام خارجي مسار إرسال التذكير بالمواعيد.",
|
|
"يدخل البيانات أو يحدد الخيارات المطلوبة.",
|
|
"يعالج النظام الطلب ويعرض النتيجة أو التأكيد المناسب."
|
|
],
|
|
"alternateFlow": []
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات المريض",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "بيانات المريض عند التسجيل أو التحديث."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "input",
|
|
"name": "الخدمات المقدمة",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "output",
|
|
"name": "فاتورة",
|
|
"source": "النظام",
|
|
"destination": "موظف الاستقبال",
|
|
"description": "الفاتورة النهائية للخدمات المقدمة."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "التشخيص والوصفة",
|
|
"source": "الطبيب",
|
|
"destination": "النظام",
|
|
"description": "معلومات التشخيص والوصفة الطبية."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "الملف الطبي",
|
|
"source": "النظام",
|
|
"destination": "الطبيب",
|
|
"description": "الملف الطبي الكامل للمريض."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "output",
|
|
"name": "تقرير يومي",
|
|
"source": "النظام",
|
|
"destination": "مسؤول النظام",
|
|
"description": "تقرير يومي بالمواعيد والفواتير."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "output",
|
|
"name": "إشعار تذكير بالموعد",
|
|
"source": "النظام",
|
|
"destination": "المريض",
|
|
"description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
|
|
},
|
|
{
|
|
"id": "IO-08",
|
|
"type": "input",
|
|
"name": "التذكير بالمواعيد",
|
|
"source": "نظام خارجي",
|
|
"destination": "النظام",
|
|
"description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
|
|
},
|
|
{
|
|
"id": "IO-09",
|
|
"type": "output",
|
|
"name": "التذكير بالمواعيد",
|
|
"source": "النظام",
|
|
"destination": "نظام خارجي",
|
|
"description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
|
|
}
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "حجز موعد جديد",
|
|
"description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "متابعة المواعيد",
|
|
"description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
|
|
"complexity": "بسيطة",
|
|
"fpScore": 3
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "تسجيل مريض جديد",
|
|
"description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-04",
|
|
"name": "تحديث بيانات المريض",
|
|
"description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-05",
|
|
"name": "إصدار فاتورة",
|
|
"description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-06",
|
|
"name": "عرض الملف الطبي",
|
|
"description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-07",
|
|
"name": "إضافة تشخيص ووصفة",
|
|
"description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-08",
|
|
"name": "عرض تقرير يومي",
|
|
"description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-09",
|
|
"name": "إرسال إشعار تذكير بالموعد",
|
|
"description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-10",
|
|
"name": "إرسال التذكير بالمواعيد",
|
|
"description": "تغطي حالة الاستخدام \"إرسال التذكير بالمواعيد\" للفاعل نظام خارجي.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
}
|
|
],
|
|
"planning": {
|
|
"developers": 4,
|
|
"sprintWeeks": 2,
|
|
"hoursPerDay": 8
|
|
},
|
|
"history": [
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "بدأنا مشروعاً جديداً بعنوان \"نظام إدارة عيادة\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
|
|
"stage": "intro",
|
|
"scope": "",
|
|
"actors": [],
|
|
"functionPoints": [],
|
|
"useCases": [],
|
|
"inputOutputs": [],
|
|
"isComplete": false
|
|
}
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "قرأت الملف \"clinic.txt\" واقترحت 4 Actors و9 Use Cases و3 Inputs و4 Outputs. هل تم استيعاب جميع متطلبات النظام بشكل صحيح في حالات الاستخدام والمدخلات/المخرجات؟",
|
|
"stage": "exploration",
|
|
"scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
|
|
"actors": [
|
|
"المريض",
|
|
"موظف الاستقبال",
|
|
"الطبيب",
|
|
"مسؤول النظام"
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "إدارة المواعيد",
|
|
"description": "يشمل حجز المواعيد الجديدة ومتابعتها.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "إدارة المرضى",
|
|
"description": "يشمل تسجيل المرضى وتحديث بياناتهم.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "إدارة الفواتير",
|
|
"description": "يشمل إصدار الفواتير بناءً على الخدمات.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-04",
|
|
"name": "إدارة الملفات الطبية",
|
|
"description": "يشمل عرض الملف الطبي وإضافة التشخيص والوصفة.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-05",
|
|
"name": "إدارة التقارير",
|
|
"description": "يشمل عرض التقارير اليومية.",
|
|
"complexity": "بسيطة",
|
|
"fpScore": 3
|
|
},
|
|
{
|
|
"id": "FP-06",
|
|
"name": "إشعارات المواعيد",
|
|
"description": "إرسال إشعارات تذكير بالموعد.",
|
|
"complexity": "بسيطة",
|
|
"fpScore": 3
|
|
}
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "حجز موعد جديد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار حجز موعد جديد.",
|
|
"النظام يعرض الأوقات المتاحة.",
|
|
"المريض يختار الوقت المناسب.",
|
|
"النظام يؤكد حجز الموعد."
|
|
],
|
|
"alternateFlow": [
|
|
"الوقت المختار غير متاح."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "متابعة المواعيد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار متابعة مواعيده.",
|
|
"النظام يعرض قائمة المواعيد القادمة والسابقة.",
|
|
"المريض يستعرض تفاصيل الموعد."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "تسجيل مريض جديد",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار تسجيل مريض جديد.",
|
|
"موظف الاستقبال يدخل بيانات المريض.",
|
|
"النظام يحفظ بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"بيانات المريض غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-04",
|
|
"title": "تحديث بيانات المريض",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يبحث عن المريض.",
|
|
"موظف الاستقبال يعدل بيانات المريض.",
|
|
"النظام يحدث بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-05",
|
|
"title": "إصدار فاتورة",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار إصدار فاتورة.",
|
|
"موظف الاستقبال يحدد الخدمات المقدمة.",
|
|
"النظام يحسب المبلغ الإجمالي.",
|
|
"النظام يصدر الفاتورة."
|
|
],
|
|
"alternateFlow": [
|
|
"الخدمات غير محددة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-06",
|
|
"title": "عرض الملف الطبي",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يبحث عن المريض.",
|
|
"النظام يعرض الملف الطبي للمريض.",
|
|
"الطبيب يستعرض تاريخ المريض الطبي."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-07",
|
|
"title": "إضافة تشخيص ووصفة",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يختار إضافة تشخيص ووصفة.",
|
|
"الطبيب يدخل التشخيص.",
|
|
"الطبيب يضيف الوصفة الطبية.",
|
|
"النظام يحفظ التشخيص والوصفة."
|
|
],
|
|
"alternateFlow": [
|
|
"التشخيص أو الوصفة غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-08",
|
|
"title": "عرض تقرير يومي",
|
|
"actor": "مسؤول النظام",
|
|
"preconditions": "مسؤول النظام مسجل الدخول.",
|
|
"mainFlow": [
|
|
"مسؤول النظام يختار عرض تقرير يومي.",
|
|
"النظام يعرض تقرير بالمواعيد والفواتير.",
|
|
"مسؤول النظام يستعرض التقرير."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-09",
|
|
"title": "إرسال إشعار تذكير بالموعد",
|
|
"actor": "النظام",
|
|
"preconditions": "يوجد موعد قادم للمريض.",
|
|
"mainFlow": [
|
|
"النظام يحدد المواعيد القادمة.",
|
|
"النظام يرسل إشعار تذكير للمريض.",
|
|
"المريض يستقبل الإشعار."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض قام بإلغاء الموعد."
|
|
]
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات المريض",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "بيانات المريض عند التسجيل أو التحديث."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "input",
|
|
"name": "الخدمات المقدمة",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "output",
|
|
"name": "فاتورة",
|
|
"source": "النظام",
|
|
"destination": "موظف الاستقبال",
|
|
"description": "الفاتورة النهائية للخدمات المقدمة."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "التشخيص والوصفة",
|
|
"source": "الطبيب",
|
|
"destination": "النظام",
|
|
"description": "معلومات التشخيص والوصفة الطبية."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "الملف الطبي",
|
|
"source": "النظام",
|
|
"destination": "الطبيب",
|
|
"description": "الملف الطبي الكامل للمريض."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "output",
|
|
"name": "تقرير يومي",
|
|
"source": "النظام",
|
|
"destination": "مسؤول النظام",
|
|
"description": "تقرير يومي بالمواعيد والفواتير."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "output",
|
|
"name": "إشعار تذكير بالموعد",
|
|
"source": "النظام",
|
|
"destination": "المريض",
|
|
"description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
|
|
}
|
|
],
|
|
"isComplete": false
|
|
}
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "تم اعتماد الهيكل الأولي: 4 Actors، 9 Use Cases، و7 Inputs/Outputs. أصبح لدينا أساس جيد للتقدير؛ هل تريد تثبيت التقدير الحالي وتوليد التقرير أم إضافة تفاصيل تقنية أخرى؟",
|
|
"stage": "evaluation",
|
|
"scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
|
|
"actors": [
|
|
"المريض",
|
|
"موظف الاستقبال",
|
|
"الطبيب",
|
|
"مسؤول النظام"
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "حجز موعد جديد",
|
|
"description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "متابعة المواعيد",
|
|
"description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
|
|
"complexity": "بسيطة",
|
|
"fpScore": 3
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "تسجيل مريض جديد",
|
|
"description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-04",
|
|
"name": "تحديث بيانات المريض",
|
|
"description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-05",
|
|
"name": "إصدار فاتورة",
|
|
"description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-06",
|
|
"name": "عرض الملف الطبي",
|
|
"description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-07",
|
|
"name": "إضافة تشخيص ووصفة",
|
|
"description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-08",
|
|
"name": "عرض تقرير يومي",
|
|
"description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-09",
|
|
"name": "إرسال إشعار تذكير بالموعد",
|
|
"description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
}
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "حجز موعد جديد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار حجز موعد جديد.",
|
|
"النظام يعرض الأوقات المتاحة.",
|
|
"المريض يختار الوقت المناسب.",
|
|
"النظام يؤكد حجز الموعد."
|
|
],
|
|
"alternateFlow": [
|
|
"الوقت المختار غير متاح."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "متابعة المواعيد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار متابعة مواعيده.",
|
|
"النظام يعرض قائمة المواعيد القادمة والسابقة.",
|
|
"المريض يستعرض تفاصيل الموعد."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "تسجيل مريض جديد",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار تسجيل مريض جديد.",
|
|
"موظف الاستقبال يدخل بيانات المريض.",
|
|
"النظام يحفظ بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"بيانات المريض غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-04",
|
|
"title": "تحديث بيانات المريض",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يبحث عن المريض.",
|
|
"موظف الاستقبال يعدل بيانات المريض.",
|
|
"النظام يحدث بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-05",
|
|
"title": "إصدار فاتورة",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار إصدار فاتورة.",
|
|
"موظف الاستقبال يحدد الخدمات المقدمة.",
|
|
"النظام يحسب المبلغ الإجمالي.",
|
|
"النظام يصدر الفاتورة."
|
|
],
|
|
"alternateFlow": [
|
|
"الخدمات غير محددة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-06",
|
|
"title": "عرض الملف الطبي",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يبحث عن المريض.",
|
|
"النظام يعرض الملف الطبي للمريض.",
|
|
"الطبيب يستعرض تاريخ المريض الطبي."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-07",
|
|
"title": "إضافة تشخيص ووصفة",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يختار إضافة تشخيص ووصفة.",
|
|
"الطبيب يدخل التشخيص.",
|
|
"الطبيب يضيف الوصفة الطبية.",
|
|
"النظام يحفظ التشخيص والوصفة."
|
|
],
|
|
"alternateFlow": [
|
|
"التشخيص أو الوصفة غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-08",
|
|
"title": "عرض تقرير يومي",
|
|
"actor": "مسؤول النظام",
|
|
"preconditions": "مسؤول النظام مسجل الدخول.",
|
|
"mainFlow": [
|
|
"مسؤول النظام يختار عرض تقرير يومي.",
|
|
"النظام يعرض تقرير بالمواعيد والفواتير.",
|
|
"مسؤول النظام يستعرض التقرير."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-09",
|
|
"title": "إرسال إشعار تذكير بالموعد",
|
|
"actor": "النظام",
|
|
"preconditions": "يوجد موعد قادم للمريض.",
|
|
"mainFlow": [
|
|
"النظام يحدد المواعيد القادمة.",
|
|
"النظام يرسل إشعار تذكير للمريض.",
|
|
"المريض يستقبل الإشعار."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض قام بإلغاء الموعد."
|
|
]
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات المريض",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "بيانات المريض عند التسجيل أو التحديث."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "input",
|
|
"name": "الخدمات المقدمة",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "output",
|
|
"name": "فاتورة",
|
|
"source": "النظام",
|
|
"destination": "موظف الاستقبال",
|
|
"description": "الفاتورة النهائية للخدمات المقدمة."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "التشخيص والوصفة",
|
|
"source": "الطبيب",
|
|
"destination": "النظام",
|
|
"description": "معلومات التشخيص والوصفة الطبية."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "الملف الطبي",
|
|
"source": "النظام",
|
|
"destination": "الطبيب",
|
|
"description": "الملف الطبي الكامل للمريض."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "output",
|
|
"name": "تقرير يومي",
|
|
"source": "النظام",
|
|
"destination": "مسؤول النظام",
|
|
"description": "تقرير يومي بالمواعيد والفواتير."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "output",
|
|
"name": "إشعار تذكير بالموعد",
|
|
"source": "النظام",
|
|
"destination": "المريض",
|
|
"description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
|
|
}
|
|
],
|
|
"isComplete": false
|
|
}
|
|
},
|
|
{
|
|
"role": "user",
|
|
"text": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد."
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "أصبح لدينا أساس جيد للتقدير؛ هل تريد تثبيت التقدير الحالي وتوليد التقرير أم إضافة تفاصيل تقنية أخرى؟",
|
|
"stage": "evaluation",
|
|
"scope": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
|
|
"actors": [
|
|
"المريض",
|
|
"موظف الاستقبال",
|
|
"الطبيب",
|
|
"مسؤول النظام"
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "حجز موعد جديد",
|
|
"description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "متابعة المواعيد",
|
|
"description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
|
|
"complexity": "بسيطة",
|
|
"fpScore": 3
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "تسجيل مريض جديد",
|
|
"description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-04",
|
|
"name": "تحديث بيانات المريض",
|
|
"description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-05",
|
|
"name": "إصدار فاتورة",
|
|
"description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-06",
|
|
"name": "عرض الملف الطبي",
|
|
"description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-07",
|
|
"name": "إضافة تشخيص ووصفة",
|
|
"description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-08",
|
|
"name": "عرض تقرير يومي",
|
|
"description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-09",
|
|
"name": "إرسال إشعار تذكير بالموعد",
|
|
"description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-10",
|
|
"name": "إرسال التذكير بالمواعيد",
|
|
"description": "تغطي حالة الاستخدام \"إرسال التذكير بالمواعيد\" للفاعل نظام خارجي.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
}
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "حجز موعد جديد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار حجز موعد جديد.",
|
|
"النظام يعرض الأوقات المتاحة.",
|
|
"المريض يختار الوقت المناسب.",
|
|
"النظام يؤكد حجز الموعد."
|
|
],
|
|
"alternateFlow": [
|
|
"الوقت المختار غير متاح."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "متابعة المواعيد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار متابعة مواعيده.",
|
|
"النظام يعرض قائمة المواعيد القادمة والسابقة.",
|
|
"المريض يستعرض تفاصيل الموعد."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "تسجيل مريض جديد",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار تسجيل مريض جديد.",
|
|
"موظف الاستقبال يدخل بيانات المريض.",
|
|
"النظام يحفظ بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"بيانات المريض غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-04",
|
|
"title": "تحديث بيانات المريض",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يبحث عن المريض.",
|
|
"موظف الاستقبال يعدل بيانات المريض.",
|
|
"النظام يحدث بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-05",
|
|
"title": "إصدار فاتورة",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار إصدار فاتورة.",
|
|
"موظف الاستقبال يحدد الخدمات المقدمة.",
|
|
"النظام يحسب المبلغ الإجمالي.",
|
|
"النظام يصدر الفاتورة."
|
|
],
|
|
"alternateFlow": [
|
|
"الخدمات غير محددة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-06",
|
|
"title": "عرض الملف الطبي",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يبحث عن المريض.",
|
|
"النظام يعرض الملف الطبي للمريض.",
|
|
"الطبيب يستعرض تاريخ المريض الطبي."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-07",
|
|
"title": "إضافة تشخيص ووصفة",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يختار إضافة تشخيص ووصفة.",
|
|
"الطبيب يدخل التشخيص.",
|
|
"الطبيب يضيف الوصفة الطبية.",
|
|
"النظام يحفظ التشخيص والوصفة."
|
|
],
|
|
"alternateFlow": [
|
|
"التشخيص أو الوصفة غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-08",
|
|
"title": "عرض تقرير يومي",
|
|
"actor": "مسؤول النظام",
|
|
"preconditions": "مسؤول النظام مسجل الدخول.",
|
|
"mainFlow": [
|
|
"مسؤول النظام يختار عرض تقرير يومي.",
|
|
"النظام يعرض تقرير بالمواعيد والفواتير.",
|
|
"مسؤول النظام يستعرض التقرير."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-09",
|
|
"title": "إرسال إشعار تذكير بالموعد",
|
|
"actor": "النظام",
|
|
"preconditions": "يوجد موعد قادم للمريض.",
|
|
"mainFlow": [
|
|
"النظام يحدد المواعيد القادمة.",
|
|
"النظام يرسل إشعار تذكير للمريض.",
|
|
"المريض يستقبل الإشعار."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض قام بإلغاء الموعد."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-01",
|
|
"title": "إرسال التذكير بالمواعيد",
|
|
"actor": "نظام خارجي",
|
|
"preconditions": "تتوفر صلاحية نظام خارجي والوصول إلى البيانات اللازمة.",
|
|
"mainFlow": [
|
|
"يفتح نظام خارجي مسار إرسال التذكير بالمواعيد.",
|
|
"يدخل البيانات أو يحدد الخيارات المطلوبة.",
|
|
"يعالج النظام الطلب ويعرض النتيجة أو التأكيد المناسب."
|
|
],
|
|
"alternateFlow": []
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات المريض",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "بيانات المريض عند التسجيل أو التحديث."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "input",
|
|
"name": "الخدمات المقدمة",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "output",
|
|
"name": "فاتورة",
|
|
"source": "النظام",
|
|
"destination": "موظف الاستقبال",
|
|
"description": "الفاتورة النهائية للخدمات المقدمة."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "التشخيص والوصفة",
|
|
"source": "الطبيب",
|
|
"destination": "النظام",
|
|
"description": "معلومات التشخيص والوصفة الطبية."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "الملف الطبي",
|
|
"source": "النظام",
|
|
"destination": "الطبيب",
|
|
"description": "الملف الطبي الكامل للمريض."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "output",
|
|
"name": "تقرير يومي",
|
|
"source": "النظام",
|
|
"destination": "مسؤول النظام",
|
|
"description": "تقرير يومي بالمواعيد والفواتير."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "output",
|
|
"name": "إشعار تذكير بالموعد",
|
|
"source": "النظام",
|
|
"destination": "المريض",
|
|
"description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
|
|
},
|
|
{
|
|
"id": "IO-08",
|
|
"type": "input",
|
|
"name": "التذكير بالمواعيد",
|
|
"source": "نظام خارجي",
|
|
"destination": "النظام",
|
|
"description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
|
|
},
|
|
{
|
|
"id": "IO-09",
|
|
"type": "output",
|
|
"name": "التذكير بالمواعيد",
|
|
"source": "النظام",
|
|
"destination": "نظام خارجي",
|
|
"description": "أضف تكاملاً بسيطاً مع بوابة رسائل SMS لإرسال التذكير بالمواعيد"
|
|
}
|
|
],
|
|
"isComplete": false
|
|
}
|
|
}
|
|
],
|
|
"srsDraft": {
|
|
"summary": "نظام لإدارة عيادة طبية صغيرة، يتضمن إدارة المرضى والمواعيد والملفات الطبية والفواتير، مع إشعارات للمرضى.",
|
|
"actors": [
|
|
"المريض",
|
|
"موظف الاستقبال",
|
|
"الطبيب",
|
|
"مسؤول النظام"
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "حجز موعد جديد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار حجز موعد جديد.",
|
|
"النظام يعرض الأوقات المتاحة.",
|
|
"المريض يختار الوقت المناسب.",
|
|
"النظام يؤكد حجز الموعد."
|
|
],
|
|
"alternateFlow": [
|
|
"الوقت المختار غير متاح."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "متابعة المواعيد",
|
|
"actor": "المريض",
|
|
"preconditions": "المريض مسجل في النظام.",
|
|
"mainFlow": [
|
|
"المريض يختار متابعة مواعيده.",
|
|
"النظام يعرض قائمة المواعيد القادمة والسابقة.",
|
|
"المريض يستعرض تفاصيل الموعد."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "تسجيل مريض جديد",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار تسجيل مريض جديد.",
|
|
"موظف الاستقبال يدخل بيانات المريض.",
|
|
"النظام يحفظ بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"بيانات المريض غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-04",
|
|
"title": "تحديث بيانات المريض",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يبحث عن المريض.",
|
|
"موظف الاستقبال يعدل بيانات المريض.",
|
|
"النظام يحدث بيانات المريض."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-05",
|
|
"title": "إصدار فاتورة",
|
|
"actor": "موظف الاستقبال",
|
|
"preconditions": "موظف الاستقبال مسجل الدخول.",
|
|
"mainFlow": [
|
|
"موظف الاستقبال يختار إصدار فاتورة.",
|
|
"موظف الاستقبال يحدد الخدمات المقدمة.",
|
|
"النظام يحسب المبلغ الإجمالي.",
|
|
"النظام يصدر الفاتورة."
|
|
],
|
|
"alternateFlow": [
|
|
"الخدمات غير محددة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-06",
|
|
"title": "عرض الملف الطبي",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يبحث عن المريض.",
|
|
"النظام يعرض الملف الطبي للمريض.",
|
|
"الطبيب يستعرض تاريخ المريض الطبي."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض غير موجود في النظام."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-07",
|
|
"title": "إضافة تشخيص ووصفة",
|
|
"actor": "الطبيب",
|
|
"preconditions": "الطبيب مسجل الدخول.",
|
|
"mainFlow": [
|
|
"الطبيب يختار إضافة تشخيص ووصفة.",
|
|
"الطبيب يدخل التشخيص.",
|
|
"الطبيب يضيف الوصفة الطبية.",
|
|
"النظام يحفظ التشخيص والوصفة."
|
|
],
|
|
"alternateFlow": [
|
|
"التشخيص أو الوصفة غير مكتملة."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-08",
|
|
"title": "عرض تقرير يومي",
|
|
"actor": "مسؤول النظام",
|
|
"preconditions": "مسؤول النظام مسجل الدخول.",
|
|
"mainFlow": [
|
|
"مسؤول النظام يختار عرض تقرير يومي.",
|
|
"النظام يعرض تقرير بالمواعيد والفواتير.",
|
|
"مسؤول النظام يستعرض التقرير."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-09",
|
|
"title": "إرسال إشعار تذكير بالموعد",
|
|
"actor": "النظام",
|
|
"preconditions": "يوجد موعد قادم للمريض.",
|
|
"mainFlow": [
|
|
"النظام يحدد المواعيد القادمة.",
|
|
"النظام يرسل إشعار تذكير للمريض.",
|
|
"المريض يستقبل الإشعار."
|
|
],
|
|
"alternateFlow": [
|
|
"المريض قام بإلغاء الموعد."
|
|
]
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات المريض",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "بيانات المريض عند التسجيل أو التحديث."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "input",
|
|
"name": "الخدمات المقدمة",
|
|
"source": "موظف الاستقبال",
|
|
"destination": "النظام",
|
|
"description": "قائمة الخدمات لتحديدها عند إصدار الفاتورة."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "output",
|
|
"name": "فاتورة",
|
|
"source": "النظام",
|
|
"destination": "موظف الاستقبال",
|
|
"description": "الفاتورة النهائية للخدمات المقدمة."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "التشخيص والوصفة",
|
|
"source": "الطبيب",
|
|
"destination": "النظام",
|
|
"description": "معلومات التشخيص والوصفة الطبية."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "الملف الطبي",
|
|
"source": "النظام",
|
|
"destination": "الطبيب",
|
|
"description": "الملف الطبي الكامل للمريض."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "output",
|
|
"name": "تقرير يومي",
|
|
"source": "النظام",
|
|
"destination": "مسؤول النظام",
|
|
"description": "تقرير يومي بالمواعيد والفواتير."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "output",
|
|
"name": "إشعار تذكير بالموعد",
|
|
"source": "النظام",
|
|
"destination": "المريض",
|
|
"description": "إشعار يرسله النظام للمريض لتذكيره بموعده."
|
|
}
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "حجز موعد جديد",
|
|
"description": "تغطي حالة الاستخدام \"حجز موعد جديد\" للفاعل المريض.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "متابعة المواعيد",
|
|
"description": "تغطي حالة الاستخدام \"متابعة المواعيد\" للفاعل المريض.",
|
|
"complexity": "بسيطة",
|
|
"fpScore": 3
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "تسجيل مريض جديد",
|
|
"description": "تغطي حالة الاستخدام \"تسجيل مريض جديد\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-04",
|
|
"name": "تحديث بيانات المريض",
|
|
"description": "تغطي حالة الاستخدام \"تحديث بيانات المريض\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-05",
|
|
"name": "إصدار فاتورة",
|
|
"description": "تغطي حالة الاستخدام \"إصدار فاتورة\" للفاعل موظف الاستقبال.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-06",
|
|
"name": "عرض الملف الطبي",
|
|
"description": "تغطي حالة الاستخدام \"عرض الملف الطبي\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-07",
|
|
"name": "إضافة تشخيص ووصفة",
|
|
"description": "تغطي حالة الاستخدام \"إضافة تشخيص ووصفة\" للفاعل الطبيب.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-08",
|
|
"name": "عرض تقرير يومي",
|
|
"description": "تغطي حالة الاستخدام \"عرض تقرير يومي\" للفاعل مسؤول النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
},
|
|
{
|
|
"id": "FP-09",
|
|
"name": "إرسال إشعار تذكير بالموعد",
|
|
"description": "تغطي حالة الاستخدام \"إرسال إشعار تذكير بالموعد\" للفاعل النظام.",
|
|
"complexity": "معقدة",
|
|
"fpScore": 6
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"question": "وجدت 4 Actors و9 Use Cases و3 Inputs و4 Outputs. هل تريد اعتمادها أم تعديلها؟",
|
|
"counts": {
|
|
"actors": 4,
|
|
"useCases": 9,
|
|
"inputs": 3,
|
|
"outputs": 4
|
|
}
|
|
},
|
|
"needsStructureConfirmation": false,
|
|
"isComplete": false,
|
|
"createdAt": "T15:43:22.456Z",
|
|
"updatedAt": "T15:43:30.175Z",
|
|
"stage": "evaluation"
|
|
},
|
|
{
|
|
"id": "sess_d48avqz9mp738ls6",
|
|
"title": "اختبار تنبيه Gemini",
|
|
"scope": "النظام يخدم العميل والموظف ويعرض التقارير.",
|
|
"actors": [
|
|
"الموظف",
|
|
"العميل"
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "خدمة العميل",
|
|
"actor": "العميل",
|
|
"preconditions": "يجب أن يكون العميل مسجلاً أو لديه صلاحية الوصول.",
|
|
"mainFlow": [
|
|
"يقوم العميل بتسجيل الدخول.",
|
|
"يتصفح العميل الخدمات المتاحة.",
|
|
"يختار العميل خدمة معينة.",
|
|
"يقوم العميل بتنفيذ إجراء متعلق بالخدمة (مثل تقديم طلب)."
|
|
],
|
|
"alternateFlow": [
|
|
"في حال عدم وجود صلاحية، يتم توجيه العميل لصفحة التسجيل أو الاتصال بالدعم."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "خدمة الموظف",
|
|
"actor": "الموظف",
|
|
"preconditions": "يجب أن يكون الموظف مسجلاً ولديه الصلاحيات اللازمة.",
|
|
"mainFlow": [
|
|
"يقوم الموظف بتسجيل الدخول.",
|
|
"يستعرض الموظف المهام أو الطلبات الموكلة إليه.",
|
|
"يقوم الموظف بمعالجة طلب أو مهمة.",
|
|
"يسجل الموظف نتيجة المعالجة."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "عرض التقارير",
|
|
"actor": "الموظف",
|
|
"preconditions": "يجب أن يكون الموظف مسجلاً ولديه صلاحية الوصول للتقارير.",
|
|
"mainFlow": [
|
|
"يقوم الموظف بتسجيل الدخول.",
|
|
"يختار الموظف نوع التقرير المطلوب.",
|
|
"يحدد الموظف معايير التقرير (مثل الفترة الزمنية، نوع البيانات).",
|
|
"يعرض النظام التقرير المطلوب."
|
|
],
|
|
"alternateFlow": []
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات تسجيل الدخول للعميل",
|
|
"source": "العميل",
|
|
"destination": "النظام",
|
|
"description": "اسم المستخدم وكلمة المرور للعميل."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "output",
|
|
"name": "قائمة الخدمات المتاحة للعميل",
|
|
"source": "النظام",
|
|
"destination": "العميل",
|
|
"description": "قائمة بالخدمات التي يمكن للعميل الوصول إليها."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "input",
|
|
"name": "تفاصيل طلب العميل",
|
|
"source": "العميل",
|
|
"destination": "النظام",
|
|
"description": "المعلومات التي يقدمها العميل لتقديم طلب."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "بيانات تسجيل الدخول للموظف",
|
|
"source": "الموظف",
|
|
"destination": "النظام",
|
|
"description": "اسم المستخدم وكلمة المرور للموظف."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "قائمة المهام/الطلبات للموظف",
|
|
"source": "النظام",
|
|
"destination": "الموظف",
|
|
"description": "قائمة بالمهام أو الطلبات التي تحتاج معالجة من قبل الموظف."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "input",
|
|
"name": "نتيجة معالجة الموظف",
|
|
"source": "الموظف",
|
|
"destination": "النظام",
|
|
"description": "المعلومات التي يسجلها الموظف بعد معالجة مهمة."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "input",
|
|
"name": "معايير اختيار التقرير",
|
|
"source": "الموظف",
|
|
"destination": "النظام",
|
|
"description": "الفترة الزمنية، نوع البيانات، أو أي فلاتر أخرى للتقرير."
|
|
},
|
|
{
|
|
"id": "IO-08",
|
|
"type": "output",
|
|
"name": "التقرير المطلوب",
|
|
"source": "النظام",
|
|
"destination": "الموظف",
|
|
"description": "البيانات المجمعة والمعروضة في شكل تقرير."
|
|
}
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "خدمة العميل",
|
|
"description": "تمكين العميل من التفاعل مع النظام.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "خدمة الموظف",
|
|
"description": "تمكين الموظف من التفاعل مع النظام وإدارة العمليات.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "عرض التقارير",
|
|
"description": "توفير تقارير للموظفين أو الإدارة.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
}
|
|
],
|
|
"planning": {
|
|
"developers": 3,
|
|
"sprintWeeks": 2,
|
|
"hoursPerDay": 8
|
|
},
|
|
"history": [
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "بدأنا مشروعاً جديداً بعنوان \"اختبار تنبيه Gemini\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
|
|
"stage": "intro",
|
|
"scope": "",
|
|
"actors": [],
|
|
"functionPoints": [],
|
|
"useCases": [],
|
|
"inputOutputs": [],
|
|
"isComplete": false
|
|
}
|
|
},
|
|
{
|
|
"role": "user",
|
|
"text": "النظام يخدم العميل والموظف ويعرض التقارير."
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "ما هي العمليات الرئيسية التي يقوم بها العميل في هذا النظام؟",
|
|
"stage": "evaluation",
|
|
"scope": "النظام يخدم العميل والموظف ويعرض التقارير.",
|
|
"actors": [
|
|
"الموظف",
|
|
"العميل"
|
|
],
|
|
"functionPoints": [
|
|
{
|
|
"id": "FP-01",
|
|
"name": "خدمة العميل",
|
|
"description": "تمكين العميل من التفاعل مع النظام.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-02",
|
|
"name": "خدمة الموظف",
|
|
"description": "تمكين الموظف من التفاعل مع النظام وإدارة العمليات.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
},
|
|
{
|
|
"id": "FP-03",
|
|
"name": "عرض التقارير",
|
|
"description": "توفير تقارير للموظفين أو الإدارة.",
|
|
"complexity": "متوسطة",
|
|
"fpScore": 4
|
|
}
|
|
],
|
|
"useCases": [
|
|
{
|
|
"id": "UC-01",
|
|
"title": "خدمة العميل",
|
|
"actor": "العميل",
|
|
"preconditions": "يجب أن يكون العميل مسجلاً أو لديه صلاحية الوصول.",
|
|
"mainFlow": [
|
|
"يقوم العميل بتسجيل الدخول.",
|
|
"يتصفح العميل الخدمات المتاحة.",
|
|
"يختار العميل خدمة معينة.",
|
|
"يقوم العميل بتنفيذ إجراء متعلق بالخدمة (مثل تقديم طلب)."
|
|
],
|
|
"alternateFlow": [
|
|
"في حال عدم وجود صلاحية، يتم توجيه العميل لصفحة التسجيل أو الاتصال بالدعم."
|
|
]
|
|
},
|
|
{
|
|
"id": "UC-02",
|
|
"title": "خدمة الموظف",
|
|
"actor": "الموظف",
|
|
"preconditions": "يجب أن يكون الموظف مسجلاً ولديه الصلاحيات اللازمة.",
|
|
"mainFlow": [
|
|
"يقوم الموظف بتسجيل الدخول.",
|
|
"يستعرض الموظف المهام أو الطلبات الموكلة إليه.",
|
|
"يقوم الموظف بمعالجة طلب أو مهمة.",
|
|
"يسجل الموظف نتيجة المعالجة."
|
|
],
|
|
"alternateFlow": []
|
|
},
|
|
{
|
|
"id": "UC-03",
|
|
"title": "عرض التقارير",
|
|
"actor": "الموظف",
|
|
"preconditions": "يجب أن يكون الموظف مسجلاً ولديه صلاحية الوصول للتقارير.",
|
|
"mainFlow": [
|
|
"يقوم الموظف بتسجيل الدخول.",
|
|
"يختار الموظف نوع التقرير المطلوب.",
|
|
"يحدد الموظف معايير التقرير (مثل الفترة الزمنية، نوع البيانات).",
|
|
"يعرض النظام التقرير المطلوب."
|
|
],
|
|
"alternateFlow": []
|
|
}
|
|
],
|
|
"inputOutputs": [
|
|
{
|
|
"id": "IO-01",
|
|
"type": "input",
|
|
"name": "بيانات تسجيل الدخول للعميل",
|
|
"source": "العميل",
|
|
"destination": "النظام",
|
|
"description": "اسم المستخدم وكلمة المرور للعميل."
|
|
},
|
|
{
|
|
"id": "IO-02",
|
|
"type": "output",
|
|
"name": "قائمة الخدمات المتاحة للعميل",
|
|
"source": "النظام",
|
|
"destination": "العميل",
|
|
"description": "قائمة بالخدمات التي يمكن للعميل الوصول إليها."
|
|
},
|
|
{
|
|
"id": "IO-03",
|
|
"type": "input",
|
|
"name": "تفاصيل طلب العميل",
|
|
"source": "العميل",
|
|
"destination": "النظام",
|
|
"description": "المعلومات التي يقدمها العميل لتقديم طلب."
|
|
},
|
|
{
|
|
"id": "IO-04",
|
|
"type": "input",
|
|
"name": "بيانات تسجيل الدخول للموظف",
|
|
"source": "الموظف",
|
|
"destination": "النظام",
|
|
"description": "اسم المستخدم وكلمة المرور للموظف."
|
|
},
|
|
{
|
|
"id": "IO-05",
|
|
"type": "output",
|
|
"name": "قائمة المهام/الطلبات للموظف",
|
|
"source": "النظام",
|
|
"destination": "الموظف",
|
|
"description": "قائمة بالمهام أو الطلبات التي تحتاج معالجة من قبل الموظف."
|
|
},
|
|
{
|
|
"id": "IO-06",
|
|
"type": "input",
|
|
"name": "نتيجة معالجة الموظف",
|
|
"source": "الموظف",
|
|
"destination": "النظام",
|
|
"description": "المعلومات التي يسجلها الموظف بعد معالجة مهمة."
|
|
},
|
|
{
|
|
"id": "IO-07",
|
|
"type": "input",
|
|
"name": "معايير اختيار التقرير",
|
|
"source": "الموظف",
|
|
"destination": "النظام",
|
|
"description": "الفترة الزمنية، نوع البيانات، أو أي فلاتر أخرى للتقرير."
|
|
},
|
|
{
|
|
"id": "IO-08",
|
|
"type": "output",
|
|
"name": "التقرير المطلوب",
|
|
"source": "النظام",
|
|
"destination": "الموظف",
|
|
"description": "البيانات المجمعة والمعروضة في شكل تقرير."
|
|
}
|
|
],
|
|
"isComplete": false
|
|
}
|
|
}
|
|
],
|
|
"srsDraft": null,
|
|
"needsStructureConfirmation": false,
|
|
"isComplete": false,
|
|
"createdAt": "T15:44:32.070Z",
|
|
"updatedAt": "T15:44:38.363Z",
|
|
"stage": "evaluation"
|
|
},
|
|
{
|
|
"id": "sess_v6ltq57omp82lu2i",
|
|
"title": "شقق",
|
|
"scope": "",
|
|
"actors": [],
|
|
"useCases": [],
|
|
"inputOutputs": [],
|
|
"functionPoints": [],
|
|
"planning": {
|
|
"developers": 3,
|
|
"sprintWeeks": 2,
|
|
"hoursPerDay": 8
|
|
},
|
|
"history": [
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "بدأنا مشروعاً جديداً بعنوان \"شقق\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
|
|
"stage": "intro",
|
|
"scope": "",
|
|
"actors": [],
|
|
"functionPoints": [],
|
|
"useCases": [],
|
|
"inputOutputs": [],
|
|
"isComplete": false
|
|
}
|
|
}
|
|
],
|
|
"srsDraft": null,
|
|
"needsStructureConfirmation": false,
|
|
"isComplete": false,
|
|
"createdAt": "T08:14:35.898Z",
|
|
"updatedAt": "T08:14:35.902Z",
|
|
"stage": "intro"
|
|
},
|
|
{
|
|
"id": "sess_2rrqdd24mp82mmm7",
|
|
"title": "ser",
|
|
"scope": "",
|
|
"actors": [],
|
|
"useCases": [],
|
|
"inputOutputs": [],
|
|
"functionPoints": [],
|
|
"planning": {
|
|
"developers": 3,
|
|
"sprintWeeks": 2,
|
|
"hoursPerDay": 8
|
|
},
|
|
"history": [
|
|
{
|
|
"role": "assistant",
|
|
"payload": {
|
|
"reply": "بدأنا مشروعاً جديداً بعنوان \"ser\". هل تود أن تبدأ برفع ملف SRS، أم تصف لي الهدف العام للمشروع مباشرة؟",
|
|
"stage": "intro",
|
|
"scope": "",
|
|
"actors": [],
|
|
"functionPoints": [],
|
|
"useCases": [],
|
|
"inputOutputs": [],
|
|
"isComplete": false
|
|
}
|
|
}
|
|
],
|
|
"srsDraft": null,
|
|
"needsStructureConfirmation": false,
|
|
"isComplete": false,
|
|
"createdAt": "T08:15:12.895Z",
|
|
"updatedAt": "T08:15:12.915Z",
|
|
"stage": "intro"
|
|
}
|
|
] |