علت افزایش هزینه فراخوانی وبسرویس های پادیوم چیست؟

سلام
شارژ پنل پادیوم با این ادعا که هر چندماه 20 میایون تومان مصرف دارد به بنده سپرده شد ولی ما ماهانه بیش از 25 میلیون تومان مصرف داریم:
شرحی از مصرف سه ماهه گذشته:

از تاریخ: چهارشنبه، ۳۰ فروردین ۱۴۰۲
تا تاریخ: شنبه، ۳۰ اردیبهشت ۱۴۰۲
دفعات استفاده از وبسرویس ها: 10,768 بار
هزینه استفاده: 259,000,000 ریال

31 اردیبهشت ، 1402
هزینه استفاده: 2 میلیون تومان

01 خرداد ، 1402
هزینه استفاده: 2 میلیون تومان

از تاریخ: سه‌شنبه، ۲ خرداد ۱۴۰۲
تا تاریخ: یک‌شنبه، ۲۸ خرداد ۱۴۰۲
دفعات استفاده از وبسرویس ها: 10,107 بار
هزینه استفاده: 259,000,000 ریال

از تاریخ: چهارشنبه، یک‌شنبه، ۲۸ خرداد ۱۴۰۲
تا تاریخ: شنبه، سه‌شنبه، 27 تیر ۱۴۰۲
دفعات استفاده از وبسرویس ها: 9,685 بار
هزینه استفاده: 245,566,100 ریال

مصرف 28 خرداد تا 27 تیرماه را برای نمونه بررسی کردیم:
وبسرویس های مورد استفاده:
* تشخیص نوع و چرخش و زاویه مدرک
* خواندن اطلاعات کارت ملی جدید
* دریافت آخرین مدرک تحصیلی با شماره نظام پزشکی
* دریافت شماره های نظام پزشکی یک عضو با کد ملی
* دریافت نام و نام خانوادگی با شماره نظام پزشکی
* لیست طرح های اشتراک کاربر
نمودار فراخوانی این وبسرویس ها:

قیمت هربار صدا زدن بسرویس ها هم در تصویر زیر هست.

1 پسندیده

همانطور که از تصویر مشخص هست دریافت شماره نظام پزشکی یک عضو با کد ملی 8845 بار در یکماه گذشته فراخوانی شده است.

روی جدول podium دیتابیس clinic کوئری زدیم
SELECT Count(), result FROM podiums
WHERE created_at >= ‘2023-06-20 00:00:00’
GROUP BY result HAVING(COUNT(
)>1);

در یکماه گذشته 6351 بار نتیجه “شماره نظام برای این کدملی یافت نشد” را داریم.

با توجه به تحلیل بالا و اینکه تعداد کل فراخوانی 9,685 بار بوده است به این نتیجه میرسیم که احتمالا بیش از 65 درصد فراخوانی وبسرویس “دریافت شماره نظام پزشکی” (معادل 161,027,522 ریال) برای فردی که پزشک نیست انجام می شود.

با توجه به تحلیل بالا، احتمال 2 حالت وجود دارد:

  • بیمار اشتباها در فرآِیند ثبت نام پزشک قرار میگیرد
  • در فرآیند ثبت نام پزشک اشتباها این api کال میشود

برای بررسی بیشتر فرآیند ثبت نام پزشکان را تحلیل میکنم و نتیجه را داخل تاپیک میگذارم

من میدونم که پادیوم دو جا اجرا میشود.
یکی توی doctors هست که پزشک از طریق dr.paziresh24.com اقدام به ثبت نام میکند.
یکی هم توی پنل مراکز لوکال هست که از پادیوم استعلام سنجی صورت میگیرد.

1 پسندیده

یک وبسرویس داریم که وبسرویس پادیوم را کال می کنه.
Route::get('inquiry/podium', [DoctorController::class, 'podiumInquiryData']);

کسی میدونه این کجاها استفاده میشه؟
@sar.sadr
@erfanzamanzade
@amirjavad_afrugh
@sajad_nyn

این از مراکز لوکال اجرا میشه فکر کنم. آقای افروغ بیشتر در جریان هستند. @amirjavad_afrugh

1 پسندیده

کد این مورد کجاست؟

از لاگ کیبانا متوجه شدیم در سه ماه گذشته فقط 1400 فراخوانی این وبسرویس داشتیم.
پس احتمالا مشکل از مورد مراکز نیست و باید فرآیند ثبت نام پزشک مربوط به این مورد را بررسی کنیم.

همان طوری که اقای صدر بهش اشاره کردند استعلام پادیوم در دکتراپ و مراکز اتفاق میوفتد
ما یک وب سرویس برای استعلام کدملی به کد نظام داریم که عملا گلوگاه ورودی پزشک هست که با توجه به اماری که شما منتشر کردید تعداد قابل توجهی پزشک نیستند و به همین خاطر وب سرویس های بعدی که شامل موارد زیر هست استفاده نمیشود.

۱. تبدیل کد ملی به کد نظام پزشکی که در بالا بهش اشاره شد (کد محصول : 45682)

۲. تبدیل کد نظام به اطلاعات هویتی پزشک مانند نام و نام خانوادگی و … (کد محصول: 113625)

۳. تبدیل کد نظام به اطلاعات تخصص و مدارک پزشک (کد محصول: 115027)

لازم به ذکر است که اطلاعات ادرس و شماره مطب قبلا از پادیوم دریافت میشده ولی در حال حاضر فقط از اطلاعات کرال شده نظام پزشکی استفاده میشود.

این استعلامات در دو مورد استفاده میشود

  • پروژه دکتر اپ و هنگام ثبت نام پزشک
Route::post('/center', [CenterController::class, 'store'])->name('createCenter')
  • در مراکز لوکال هنگام ثبت مشخصات پزشک وهمچنین اصلاح مشخصات پزشکان تعریف شده قبلی مراکز
Route::get('inquiry/podium', [DoctorController::class, 'podiumInquiryData']);

پ.ن : البته موردی که به صورت خیلی پایین اتفاق میوفتد زمانی هست که شماره موبایل با کد ملی پزشک باهم همخوانی نداشته باشد و ما از وب سرویس های دریافت مشخصات پزشک از طریق تصویر کارت ملی وی استفاده میکنیم (کد محصول: 1353772 و 1336224)

1 پسندیده

کیبانا میگه در سه ماه گذشته 10700 تا درخواست با متد POST برای آدرس api.paziresh24.com/center داشتیم.
پس احتمالا مشکل از این مورد هم نباشه!

که در این تصویر کیبانا برای 2023-06-10 تعداد 924 فراخوانی را نشان میده
image

و کوئری در جدول podium دیتابیس clinic میگه 309 بار ذخیره شده

به این شک کردم که هر درخواست را سه بار میفرستیم ولی مهندس صادقی نژآد میگن احتمالا رکورد هایی تکراری هستند و در این جدول ثبت نشدند.

در مورد مانیتورینگ باید بگم که ما از وب سرویس بیدون کارمز با کد محصول 40112 استفاده میکنیم که بدون کارمزد اطلاعات سرویس ها رو برای ما برمیگردونه و مشخصا خروجی رو با توجه به شرایطی که لحاظ کردیم به متن تبدیل میکنیم و در گروه تلگرامی منتشر میشود.

Route::get('/charge-check', [MonitorController::class, 'podiumChargeCheck']);

فانکشن doctorDataFromNationalCodeسه جا استفاده شده.
لطفا با توجه به تصویر راهنمایی بفرمایید مربوط به چه کارهایی میشه؟
@erfanzamanzade
@amirjavad_afrugh

به جز route ی که توسط مراکز استفاده میشه اینم هست

POST ->  https://api.paziresh24.com/V1/doctor/center

توی این متد هم استفاده میشه که چک کردم route خاصی بهش اشاره نمیکنه

FillDoctorInformation->handle

این route رو به نظرم چک کنید توی nginx به جای دیگه ای نرفته باشه، چیزی توی پروژه دکترز با این route نمیبینم

ممنون
من اشتباه آدرس api.paziresh24.com/center را نوشتم ولی در کیبانا (تصویر) */center را زدم که شامل /V1/doctor/center هم میشه.

جاهایی که استفاده میشه :

  • برای استعلام پزشک در مراکز
  • ثبت نام پزشک مطبی در dr.paziresh24.com

سومین پارامتری که توی عکس هستش (FillDoctorInformation.Php) وقتی داخل فایل رو سرچ کردم، این api داخل تابع updateInformationFromPodium استفاده شده، که این تابع داخل آدرس /profile متد get هستش

میشه در مورد علت انجام اینکار توی این مسیر (فکر میکنم وب سرویس نمایش پروفایل هستش) بگی چرا این کار رو انجام دادیم؟

@erfanzamanzade @amirjavad_afrugh

من متوجه اینکه این middleware هست نشده بودم
بعد از هربار استعلام خروجی توی دیتابیس ذخیره میشه و توی middleware ی که داره از FillDoctorInformation این استفاده میشه دیتا عملا توی دیتابیس ذخیره شده و از دیتابیس میخونه

1 پسندیده

با بررسی متوجه شدیم اگر کسی سعی کند به عنوان پزشک با کد نظام پزشکی اشتباه ثبت نام کند یکبار وبسرویس پادیوم را فراخوانی می کند. (هر شماره موبایل یکبار)
و یکی از جاهایی که به صفحه ثبت نام هدایت می شود دکمه من دکتر فلانی هستم برای پزشکان بالک هست.
مطابق تصویر زیر مشخصات ایونت را برداشتیم و در اسپلانک سرچ کردیم (به نظر میاد این اونت فقط برای این دکمه ثبت شده)



لینک اسپلانک مربوطه:
https://splnkpanel.paziresh24.com/en-GB/app/search/search?q=search%20index%3D*%20event_type%3D"doctor-profile"%20event_group%3D"register"|%20stats%20count%20by%20data.current_url&display.page.search.mode=smart&dispatch.sample_ratio=1&earliest=-24h%40h&latest=now&display.page.search.tab=statistics&display.general.type=statistics&display.statistics.sortColumn=count&display.statistics.sortDirection=desc&sid=1689690562.5130308

همانطور که ملاحظه می کنید 8,868 events در 24 ساعت گذشته رخ داده و مثلا برای دکتر ناهید توکلی 54 بار رخ داده که احتمالا بیماران با این دکمه گمراه شده و روی این دکمه کلیک و سپس اقدام به وارد کردن اطلاعات در صفحه ثبت نام پزشک می کنند.
لذا درخواست دارم با استفاده از گوگل اوپتیمایز برای یک هفته این دکمه را غیرفعال و مصرف شارژ پادیوم را بررسی کنیم.
@ebrahimghane
@anahitamansoori

لینک اول در تصویر با 54 بار رخداد

1 پسندیده