این بخش در مورد ارسال و خواندن مقادیر داده است.
ارسال مقادیر داده¶
برای ارسال مقادیر داده می توانید یک درخواست POST به منبع زیر ارسال کنید.
یک مورد رایج برای یکپارچه سازی سیستم، نیاز به ارسال مجموعه ای از مقادیر داده از یک سیستم شخص ثالث به DHIS است. در این مثال، ما از نسخه ی نمایشی DHIS2 در http://play. dhis2. org/demo به عنوان پایه استفاده خواهیم کرد. ما فرض میکنیم که دادههای مبتنی بر مورد را با استفاده از یک کلاینت نرمافزاری ساده که روی تلفنهای همراه اجرا میشود برای مجموعه دادههای مرگومیر در جامعه Ngelehun CHC (در ناحیه Badjia، منطقه بو) برای ماه ژانویه 2014 جمعآوری کردهایم. اکنون ما را جمعآوری کردهایم. داده ها را در یک گزارش آماری قرار دهید و می خواهید آن داده ها را به نمونه DHIS2 ارسال کنید. نشانی وب پایه API آزمایشی http://play. dhis2. org/demo/api است. پیوندهای زیر نسبت به URL پایه هستند.
منبعی که برای هدف ما از ارسال مقادیر داده مناسبتر است، منبع /api/dataValueSets است. مجموعه مقادیر داده، مجموعه ای از مقادیر داده را نشان می دهد که معمولاً از همان فرم ورودی داده گرفته می شوند، رابطه دارند. فرمت به شکل زیر است:
JSON در این قالب پشتیبانی می شود:
CSV در این قالب پشتیبانی می شود:
توجه داشته باشید
لطفاً برای فرمتهای زمانی به بخش تاریخ و دوره بالا مراجعه کنید.
از مثال، می بینیم که ما باید دوره، مجموعه داده ها، واحد سازمانی (امکانات) و عناصر داده ای را که باید گزارش کنیم را شناسایی کنیم.
برای بدست آوردن شناسه مجموعه داده، از منبع /api/dataSets درخواست می کنیم. از آنجا پیوند مرگ و میر را پیدا کرده و دنبال می کنیم< 5 years data set which leads us to /api/dataSets/pBOMPrpg1QX . The resource representation for the Mortality < 5 years data set conveniently advertises links to the data elements which are members of it. From here we can follow these links and obtain the identifiers of the data elements. For brevity we will only report on three data elements: Measles with id f7n9E0hX8qk , Dysentery with id Ix2HsbDMLea and Cholera with id eY5ehpbEsB7 .
آنچه باقی می ماند این است که شناسه واحد سازمان را بدست آوریم. نمایش dataSet به راحتی پیوندی را به واحدهای سازمانی ارائه می دهد که در مورد آن گزارش می دهند، بنابراین ما Ngelehun CHC را جستجو می کنیم و پیوند به نمایندگی HTML را در /api/organisationUnits/DiszpKrYNg8 دنبال می کنیم، که به ما می گوید که شناسه این واحد سازمانی DiszpKrYNg8 است.
با توجه به دادههای مبتنی بر مورد، ما فرض میکنیم که 12 مورد سرخک، 14 مورد اسهال خونی و 16 مورد وبا داریم. ما اکنون اطلاعات کافی را جمع آوری کرده ایم تا بتوانیم پیام مجموعه ارزش داده XML را جمع آوری کنیم:
برای انجام تست عملکردی از ابزار curl استفاده می کنیم که راه آسانی برای انتقال داده ها با استفاده از HTTP فراهم می کند. ابتدا، محتوای XML مجموعه مقدار داده را در فایلی به نام datavalueset. xml ذخیره می کنیم. از دایرکتوری که این فایل در آن قرار دارد، موارد زیر را از خط فرمان فراخوانی می کنیم:
برای ارسال محتوای JSON باید هدر نوع محتوا را مطابق با آن تنظیم کنید:
این فرمان درخواستی را به API وب آزمایشی ارسال می کند، برنامه/xml را به عنوان نوع محتوا تنظیم می کند و با استفاده از admin / region به عنوان نام کاربری/رمز عبور احراز هویت می کند. اگر همه چیز خوب پیش برود، یک کد وضعیت HTTP 200 OK را برمی گرداند. میتوانید با باز کردن ماژول ورود داده در DHIS2 تأیید کنید که دادهها دریافت شدهاند و واحد سازمان، مجموعه دادهها و دوره مورد استفاده در این مثال را انتخاب کنید.
API از معنای عادی برای مدیریت خطا و کدهای وضعیت HTTP پیروی می کند. اگر یک نام کاربری یا رمز عبور نامعتبر وارد کنید، 401 Unauthorized برگردانده می شود. اگر نوع محتوایی غیر از application/xml ارائه کنید، نوع رسانه پشتیبانی نشده 415 برگردانده می شود. اگر محتوای XML مطابق با فضای نام DXF نامعتبر باشد، 400 Bad Request برگردانده می شود. اگر یک شناسه نامعتبر در محتوای XML ارائه دهید، 409 Conflict همراه با یک پیام توصیفی برگردانده می شود.
ارسال انبوهی از مقادیر داده¶
مثال قبلی به ما نشان داد که چگونه مجموعهای از مقادیر دادههای مرتبط را که همان دوره و واحد سازمانی را به اشتراک میگذارند ارسال کنیم. این مثال به ما نشان میدهد که چگونه مقادیر زیادی از دادهها را که لزوماً ارتباط منطقی با هم ندارند ارسال کنیم.
دوباره با منبع /api/dataValueSets تعامل خواهیم داشت. این بار ویژگی های dataSet و completeDate را مشخص نمی کنیم. همچنین، ما ویژگی های period و orgUnit را در عناصر مقدار داده جداگانه به جای عنصر مجموعه ارزش داده بیرونی مشخص می کنیم. این ما را قادر می سازد تا مقادیر داده را برای دوره های مختلف و واحدهای سازمانی ارسال کنیم:
ما با استفاده از curl برای ارسال مقادیر داده در قالب XML آزمایش می کنیم:
توجه داشته باشید که هنگام استفاده از فرمت CSV باید از گزینه داده باینری برای حفظ خطوط شکست در فایل CSV استفاده کنید:
منبع مجموعه مقدار داده یک پاسخ XML را ارائه می دهد که زمانی مفید است که می خواهید تأثیر درخواست خود را تأیید کنید. اولین باری که درخواست مجموعه مقدار داده را در بالای سرور ارسال می کنیم، با خلاصه واردات زیر پاسخ می دهد:
این پیام به ما می گوید که 3 مقدار داده وارد شده است، 1 مقدار داده به روز شده و مقادیر داده صفر نادیده گرفته شده است. بهروزرسانی واحد در نتیجه ارسال آن مقدار داده در مثال قبلی است. اگر یک مقدار داده به یک عنصر داده، دوره، واحد سازمانی یا مجموعه داده غیرموجود ارجاع دهد، نادیده گرفته می شود. در مورد ما، این مقدار منفرد نادیده گرفته شده ناشی از آخرین مقدار داده است که یک مرجع نامعتبر به واحد سازمانی دارد. عنصر مجموعه داده کامل تاریخ تکمیل مجموعه مقدار داده را نشان می دهد، یا اگر هیچ ویژگی عنصر داده ای ارائه نشده باشد، نادرست است.
پارامترهای وارد کردن¶
فرآیند واردات را می توان با استفاده از مجموعه ای از پارامترهای واردات سفارشی کرد:
پارامتر | مقادیر (ابتدا پیش فرض) | شرح |
---|---|---|
dataElementIdScheme | uid |نام |کد |ویژگی: شناسه | ویژگی شی عنصر داده برای استفاده برای نگاشت مقادیر داده. |
orgUnitIdScheme | uid |نام |کد |ویژگی: شناسه | ویژگی شی واحد سازمانی که باید برای نگاشت مقادیر داده استفاده شود. |
categoryOptionComboIdScheme | uid |نام |کد |ویژگی: شناسه | ویژگی دسته بندی گزینه combo و ویژگی اشیاء ترکیبی گزینه برای استفاده برای نگاشت مقادیر داده ها. |
dataSetIdScheme | uid |نام |کد|ویژگی: شناسه | ویژگی شی مجموعه داده برای استفاده برای نگاشت مقادیر داده ها. |
categoryIdScheme | uid |نام |کد|ویژگی: شناسه | ویژگی شی دسته برای استفاده برای نگاشت مقادیر داده ها (فقط ADX). |
categoryOptionIdScheme | uid |نام |کد|ویژگی: شناسه | ویژگی شی گزینه دسته برای استفاده برای نگاشت مقادیر داده ها (فقط ADX). |
idScheme | uid |نام |کد|ویژگی: شناسه | ویژگی هر یک از اشیاء فوق در صورتی که مشخص نشده باشند، برای نگاشت مقادیر داده استفاده می شود. |
preheatCache | نادرست |درست است، واقعی | نشان می دهد که آیا قبل از شروع وارد کردن مقادیر داده، حافظه پنهان ابرداده از قبل بارگیری شود یا خیر، بارهای وارداتی بزرگ را با کاردینالیتی بالای ابرداده سرعت می بخشد. |
dryRun | نادرست |درست است، واقعی | آیا تغییرات را روی سرور ذخیره کنید یا فقط خلاصه واردات را برگردانید. |
استراتژی واردات | ایجاد |به روز رسانی |CREATE_AND_UPDATE |حذف | ذخیره اشیاء همه، وضعیت جدید یا به روز رسانی واردات در سرور. |
skipExistingCheck | نادرست |درست است، واقعی | از بررسی مقادیر داده های موجود صرف نظر کنید. عملکرد را بهبود می بخشد. فقط برای پایگاه های داده خالی یا زمانی که مقادیر داده برای وارد کردن وجود ندارد استفاده کنید. |
skipAudit | نادرست |درست است، واقعی | از ممیزی صرف نظر کنید، به این معنی که مقادیر حسابرسی ایجاد نخواهد شد. عملکرد را به قیمت توانایی حسابرسی تغییرات بهبود می بخشد. به مجوز "F_SKIP_DATA_IMPORT_AUDIT" نیاز دارد. |
ناهمگام | نادرست |درست است، واقعی | نشان می دهد که آیا واردات باید به صورت ناهمزمان یا همزمان انجام شود. اولی برای واردات بسیار بزرگ مناسب است زیرا تضمین میکند که درخواست به پایان نمیرسد، اگرچه سربار عملکرد قابل توجهی دارد. دومی سریعتر است، اما نیاز دارد تا اتصال تا پایان فرآیند ادامه یابد. |
زور | نادرست |درست است، واقعی | نشان می دهد که آیا واردات باید اجباری باشد یا خیر. واردات داده را می توان به دلایل مختلف قفل مجموعه داده رد کرد، به عنوان مثال به دلیل تأیید، دوره ورودی داده، روزهای انقضا، و غیره. با این حال، برای اینکه این پارامتر کار کند، باید یک *superuser* باشد. |
همه پارامترها اختیاری هستند و می توانند به عنوان پارامترهای پرس و جو در URL درخواست به شرح زیر ارائه شوند:
آنها همچنین می توانند به عنوان ویژگی های XML در عنصر مجموعه ارزش داده مانند زیر ارائه شوند. ویژگی های XML پارامترهای رشته پرس و جو را نادیده می گیرند.
توجه داشته باشید که پارامتر preheatCache می تواند تاثیر زیادی بر عملکرد داشته باشد. برای فایلهای وارداتی کوچک، رها کردن آن به false سریع خواهد بود. برای فایلهای وارداتی بزرگ که حاوی تعداد زیادی عناصر داده متمایز و واحدهای سازمانی هستند، تنظیم آن بر روی true سریعتر خواهد بود.
الزامات ارزش داده
واردات ارزش داده از مجموعه ای از انواع ارزش پشتیبانی می کند. برای هر نوع مقدار، یک نیاز خاص وجود دارد. جدول زیر موارد لبه را برای انواع مقادیر فهرست می کند.
نوع ارزش | الزامات | اظهار نظر |
---|---|---|
بولیان | واقعی |درسته |درست |نادرست |نادرست |نادرست |1 |0 |t |f | | زمانی استفاده می شود که مقدار یک مقدار بولی، درست یا نادرست باشد. سرویس واردات اهمیتی نمیدهد که ورودی با حروف بزرگ یا کوچک شروع میشود یا همه آنها بزرگ هستند. |
طرح های شناسایی
با توجه به طرح های شناسه، به طور پیش فرض شناسه های مورد استفاده در پیام های XML از شناسه های شی پایدار DHIS2 استفاده می کنند که به عنوان UID نامیده می شود. در موقعیتهای قابلیت همکاری خاص، ممکن است تجربه کنیم که یک سیستم خارجی شناسههای اشیاء را تعیین میکند. در آن صورت میتوانیم از ویژگی کد واحدهای سازمان و سایر اشیاء برای تنظیم شناسههای ثابت استفاده کنیم. هنگام وارد کردن مقادیر داده، ما باید به جای ویژگی شناسه این اشیاء فراداده، به ویژگی کد ارجاع دهیم. طرح های شناسه را می توان در پیام XML و همچنین در درخواست به عنوان پارامترهای پرس و جو مشخص کرد. برای تعیین آن در بارگذاری XML می توانید این کار را انجام دهید:
جدول پارامترهای بالا توضیح می دهد که چگونه طرح های id را می توان به عنوان پارامترهای پرس و جو مشخص کرد. قوانین زیر برای آنچه اولویت دارد اعمال می شود:
طرح های شناسه تعریف شده در بارگذاری XML یا JSON بر طرح های شناسه تعریف شده به عنوان پارامترهای جستجوی URL اولویت دارند.
طرحهای id خاص مانند dataElementIdScheme یا orgUnitIdScheme بر idScheme عمومی اولویت دارند.
اگر هیچ طرح شناسه صریحی تعریف نشده باشد، طرح شناسه پیشفرض کد برای فرمت ADX و uid برای همه فرمتهای دیگر است.
طرح های شناسایی زیر در دسترس هستند.
ویژگی (به دنبال UID ویژگی)
گزینه ویژگی خاص است و به ویژگی های متا داده ای اشاره دارد که به عنوان منحصر به فرد علامت گذاری شده اند. هنگام استفاده از این گزینه، ویژگی باید بلافاصله با شناسه ویژگی دنبال شود، به عنوان مثال."ویژگی:DnrLSdo4hMl".
وارد کردن مقدار داده ناهمگام
مقادیر داده را می توان به صورت ناهمزمان با ارائه یک پارامتر query async که روی true تنظیم شده است ارسال و وارد کرد:
این یک کار واردات ناهمزمان را آغاز می کند که می توانید وضعیت را در API خلاصه وظایف نظارت کنید. پاسخ API نشان دهنده شناسه منحصر به فرد کار، نوع کار و URL است که می توانید برای نظارت بر وضعیت کار وارداتی استفاده کنید. پاسخ مشابه این خواهد بود:
لطفاً برای اطلاعات بیشتر بخش وضعیت کار ناهمزمان را بخوانید.
فرمت مقدار داده CSV¶
بخش زیر فرمت CSV مورد استفاده در DHIS2 را شرح می دهد. ردیف اول یک ردیف سرصفحه در نظر گرفته می شود و در هنگام وارد کردن نادیده گرفته می شود.
ستون | ضروری | شرح |
عنصر داده | آره | به طور پیش فرض به ID اشاره می کند، همچنین می تواند نام و کد بر اساس طرح شناسه انتخاب شده باشد |
عادت زنانه | آره | در فرمت ISO |
واحد ارگ | آره | به طور پیش فرض به ID اشاره می کند، همچنین می تواند نام و کد بر اساس طرح شناسه انتخاب شده باشد |
ترکیب گزینه دسته | No | به شناسه اشاره دارد |
ترکیب گزینه صفت | No | به ID (از نسخه 2. 16) اشاره دارد |
ارزش | No | ارزش داده |
ذخیره شده توسط | No | به نام کاربری کاربری که مقدار را وارد کرده است اشاره دارد |
اخرین به روز رسانی | No | تاریخ با فرمت ISO |
اظهار نظر | No | نظر متنی رایگان |
پیگیری | No | درست یا غلط |
نمونه ای از یک فایل CSV که می تواند به DHIS2 وارد شود در زیر مشاهده می شود.
ایجاد الگوی مجموعه ارزش داده¶
برای ایجاد یک الگوی مجموعه ارزش داده برای یک مجموعه داده خاص، می توانید از منبع /api/dataSets//dataValueSet استفاده کنید. فرمت های پاسخ XML و JSON پشتیبانی می شوند. مثال:
پارامترهایی که می توانید برای تنظیم بیشتر خروجی استفاده کنید در زیر توضیح داده شده است:
پارامتر پرس و جو | ضروری | شرح |
---|---|---|
عادت زنانه | No | دوره استفاده، بدون هیچ گونه بررسی درج خواهد شد. |
orgUnit | No | واحد سازمان برای استفاده ، از چندین ارگونیت پشتیبانی می کند ، چه از شناسه و هم از کد استفاده می شود. |
اظهار نظر | No | باید نظرات شامل شود ، پیش فرض: بله. |
orgUnitIdScheme | No | طرح واحد سازمان برای استفاده ، پشتیبانی از شناسه |کد |
dataElementIdScheme | No | طرح عنصر داده برای استفاده ، پشتیبانی از شناسه |کد |
خواندن مقادیر داده
برای خواندن مقادیر داده می توانید درخواست دریافت را به منبع زیر ارائه دهید.
مقادیر داده را می توان در قالب XML ، JSON ، CSV و ADX بازیابی کرد. از آنجا که ما می خواهیم داده ها را بخوانیم ، از فعل get http استفاده خواهیم کرد. ما همچنین مشخص خواهیم کرد که ما با استفاده از یک عنوان HTTP با درخواست خود ، به نمایندگی منابع XML علاقه مند هستیم. پارامترهای پرس و جو زیر پذیرفته شده است:
پارامتر | شرح |
---|---|
مجموعه داده | شناسه مجموعه داده. می توان هر تعداد بار تکرار کرد. |
گروه | شناسه گروه عنصر داده. می توان هر تعداد بار تکرار کرد (برای ADX پشتیبانی نمی شود). |
عادت زنانه | شناسه دوره در قالب ISO. می توان هر تعداد بار تکرار کرد. |
تاریخ شروع | تاریخ شروع برای بازه زمانی مقادیر صادرات. |
تاریخ پایان | تاریخ پایان برای بازه زمانی مقادیر صادرات. |
orgUnit | شناسه واحد سازمان. می توان هر تعداد بار تکرار کرد. |
فرزندان | اینکه فرزندان را در سلسله مراتب واحدهای سازمان بگنجانیم. |
گروه orgunitgroup | شناسه گروه واحد سازمان. می توان هر تعداد بار تکرار کرد. |
ویژگی | شناسه Combo گزینه Attribute. می توان هر تعداد بار تکرار کرد. |
از جمله | آیا مقادیر داده حذف شده را شامل می شود. |
اخرین به روز رسانی | فقط مقادیر داده ای را که از زمان تمبر زمان داده شده به روز می شوند ، درج کنید. |
LastUpdatedDuration | فقط مقادیر داده ای را که در مدت زمان مشخص به روز می شوند ، درج کنید. قالب ، جایی است که واحدهای زمانی پشتیبانی شده "D" (روز) ، "H" (ساعت) ، "M" (دقیقه) و "S" (ثانیه) هستند. |
حد | حداکثر تعداد نتایج در پاسخ. |
dataElementIdScheme | ویژگی شیء عنصر داده برای استفاده برای مقادیر داده در پاسخ. |
orgUnitIdScheme | ویژگی شیء واحد org برای استفاده برای مقادیر داده در پاسخ. |
categoryOptionComboIdScheme | ویژگی دسته دسته کوچک موسیقی جاز برای استفاده از مقادیر داده در پاسخ. |
AttributionOptionComboidScheme | ویژگی اشیاء دسته کوچک موسیقی جاز گزینه ویژگی برای استفاده برای مقادیر داده در پاسخ. |
dataSetIdScheme | ویژگی شیء مجموعه داده برای استفاده در پاسخ. |
categoryIdScheme | ویژگی شیء دسته برای استفاده در پاسخ (فقط ADX). |
categoryOptionIdScheme | ویژگی گزینه گزینه دسته برای استفاده در پاسخ (فقط ADX). |
idScheme | خاصیت هر یک از اشیاء فوق در صورت مشخص شدن ، در پاسخ استفاده می شود. اگر مشخص نشده باشد ، IDScheme پیش فرض برای ADX کد است و برای همه قالب های دیگر UID است. |
inputorgunitidscheme | خاصیت شناسایی مورد استفاده برای مقادیر پارامتر Orgunit ارائه شده. شناسه یا کد |
inputdatasetidscheme | ویژگی شناسایی مورد استفاده برای مقادیر پارامتر داده ارائه شده. شناسه یا کد |
InputDateaelementGroupIdscheme | خاصیت شناسایی مورد استفاده برای مقادیر پارامتر DataElementGroup ارائه شده. شناسه یا کد |
inputidscheme | ویژگی شناسایی مورد استفاده برای هر یک از مجموعه داده های ارائه شده ، DataElementGroup ، orgunit ، orgunitgroup ، مقادیر پارامتر AttributeOptionCombo ، مگر اینکه هیچ یک از سه طرح فوق به صراحت این پیش فرض ورودی را نادیده بگیرد. شناسه یا کد |
پارامترهای زیر از لیست بالا لازم است:
- یا مجموعه داده یا DataElementGroup (برای ADX این باید مجموعه داده باشد)
- در هر دو دوره ، StartDate و Enddate ، LastUpdated یا LastUpdatedDuration
- یا orgunit یا orgunitgroup
قالب های پاسخ زیر پشتیبانی می شوند:
با فرض اینکه ما مقادیر داده را مطابق با بخش قبلی به نام ارسال مقادیر داده ، به DHIS2 ارسال کرده ایم ، اکنون می توانیم درخواست خود را برای یک مقدار داده واحد تنظیم کنیم و آن را با استفاده از CURL درخواست کنیم.
ما همچنین می توانیم از پارامترهای پرس و جو خرما شروع و پایان برای درخواست بخش عمده ای از مقادیر داده استفاده کنیم. یعنیهمچنین می توانید مقادیر داده را برای چندین مجموعه داده و واحدهای ارگ و مدت زمان درخواست کنید تا بتوانید بخش های بزرگتر داده را صادر کنید. توجه داشته باشید که پارامتر دوره پرس و جو نسبت به پارامترهای شروع و پایان تاریخ برتری دارد. یک مثال به این شکل است:
برای بازیابی مقادیر داده ای که در 10 روز گذشته ایجاد یا به روز شده اند می توانید درخواست مانند این را ارائه دهید:
پاسخ به این شکل خواهد بود:
شما می توانید داده ها را در قالب JSON مانند این درخواست کنید:
پاسخ چیزی شبیه به این خواهد بود:
توجه داشته باشید که مقادیر داده به آرامی حذف شده اند ، یعنی یک مقدار حذف شده به جای حذف دائمی ، خاصیت حذف شده را بر روی TRUE تنظیم کرده است. این در هنگام ادغام چندین سیستم به منظور برقراری ارتباط حذف مفید است. شما می توانید مقادیر حذف شده را در پاسخ مانند این قرار دهید:
همچنین می توانید داده ها را با فرمت CSV مانند این درخواست کنید:
پاسخ به این شکل خواهد بود:
محدودیت های زیر برای منبع تنظیم ارزش داده ها اعمال می شود:
حداقل یک مجموعه داده باید مشخص شود.
یا حداقل یک دوره یا تاریخ شروع و تاریخ باید مشخص شود.
حداقل یک واحد سازمان باید مشخص شود.
واحدهای سازمان باید در سلسله مراتب واحدهای سازمان کاربر تأیید شده باشند.
حد نمی تواند کمتر از صفر باشد.
ارسال ، خواندن و حذف مقادیر داده های فردی
این مثال نحوه ارسال مقادیر داده های فردی را برای ذخیره در یک درخواست نشان می دهد. این می تواند با ارسال درخواست پست به منبع Datavalues حاصل شود:
پارامترهای پرس و جو زیر برای این منبع پشتیبانی می شوند:
پارامتر پرس و جو | ضروری | شرح |
---|---|---|
de | آره | شناسه عنصر داده |
pe | آره | شناسه دوره |
ou | آره | شناسه واحد سازمان |
co | No | شناسه دسته کوچک موسیقی جاز گزینه دسته بندی ، در صورت حذف از پیش فرض استفاده می شود |
cc | خیر (باید با CP ترکیب شود) | شناسه دسته کوچک موسیقی جاز ویژگی |
cp | خیر (باید با CC ترکیب شود) | شناسه های گزینه دسته بندی ویژگی ، جدا شده با ؛برای مقادیر چندگانه |
ds | No | مجموعه داده ها ، برای بررسی اینکه آیا Post یا Delete برای واحد دوره و سازمان مجاز است. در صورت مشخص شدن ، عنصر داده باید به این مجموعه داده اختصاص یابد. اگر مشخص نشده باشد ، یک مجموعه داده حاوی عنصر داده برای بررسی اینکه آیا این عملیات مجاز است انتخاب می شود. |
ارزش | No | مقدار دادهبرای مقادیر بولی ، موارد زیر پذیرفته می شود: درست |درست |درست |غلط |غلط |غلط |1 |0 |T |F | |
اظهار نظر | No | نظر داده ها |
پیگیری | No | در مورد مقدار داده پیگیری کنید ، مقدار بولی فعلی را تغییر می دهد |
اگر هر یک از شناسه های داده شده نامعتبر باشند ، اگر مقدار داده یا نظر نامعتبر باشد یا داده ها قفل شده باشد ، پاسخ شامل کد وضعیت درگیری 409 و پیام متنی توصیفی خواهد بود. اگر این عملیات به یک مقدار ذخیره شده یا به روز شده منجر شود ، 200 OK بازگردانده می شود. نمونه ای از درخواست به این شکل است:
این منبع همچنین به یک نحو ویژه برای اتصال مقدار به ترکیب گزینه ویژگی اجازه می دهد. این کار را می توان با ارسال شناسه ترکیبی از ویژگی ها ، همراه با شناسه های گزینه های دسته ویژگی که مقدار آن را در ترکیب نشان می دهد ، انجام داد. ترکیب گروه با پارامتر CC مشخص شده است ، در حالی که گزینه های دسته بندی به عنوان یک رشته جدا شده نیمه استعماری با پارامتر CP مشخص می شوند. لازم است اطمینان حاصل شود که گزینه های دسته بندی همه بخشی از ترکیب گروه هستند. یک مثال به این شکل است:
با استفاده از روش GET می توانید مقدار داده را با درخواست بازیابی کنید. پارامترهای مقدار ، اظهار نظر و پیگیری در این زمینه کاربردی نیست:
با استفاده از روش حذف می توانید مقدار داده را با درخواست حذف کنید.
ارسال مقادیر داده های فردی به عنوان payload¶
شما می توانید مقادیر داده های فردی را به عنوان یک بار JSON با استفاده از منبع زیر با استفاده از نوع محتوا: Application/JSON ارسال کنید.
این منبع در صورت وجود مقدار داده جدید ایجاد می کند یا مقدار داده را به روز می کند. قالب JSON Payload در زیر تعریف شده است.
نقطه پایانی پشتیبانی از ترکیب گزینه های ویژگی را در یک ساختار تو در تو پشتیبانی می کند.
اگر مقدار داده با موفقیت ذخیره شود یا به روز شود ، یا در صورت بروز خطای اعتبار سنجی ، کد وضعیت 201 ایجاد خواهد شد.
کار با مقادیر داده پرونده
هنگام برخورد با مقادیر داده که دارای عنصر داده ای از پرونده هستند ، از روش توضیح داده شده در بالا ، انحراف وجود دارد. این مقادیر داده از این نظر خاص است که محتوای مقدار یک مرجع UID به یک شیء Fileresource به جای ثابت خود است. این مقادیر داده دقیقاً مانند سایر مقادیر داده که محتوای متن را ذخیره می کنند ، رفتار می کنند ، اما برای تولید ورودی و خروجی معنی دار باید به گونه ای متفاوت اداره شوند.
دو روش برای ذخیره مقادیر داده منابع فایل وجود دارد.
همانطور که در بخش منبع فایل توضیح داده شده است ، پرونده را در نقطه پایانی/API/DataValues/File بارگذاری کنید. این در نسخه های 2. 36 و بعد کار می کند.
اگر در حال نوشتن کد هستید که باید قبل از 2. 36 با نسخه های DHIS2 سازگار باشد ، روند این است:
همانطور که در بخش منابع پرونده توضیح داده شده است ، پرونده را در نقطه پایانی /API /FilerEsource بارگذاری کنید.
ویژگی شناسه منبع پرونده برگشتی را بازیابی کنید.
شناسه بازیابی شده را با استفاده از خاصیت مقدار داده با استفاده از هر یک از روشهای توضیح داده شده در بالا ذخیره کنید.
فقط روابط یک به یک بین مقادیر داده و منابع پرونده مجاز است. این در داخل به گونه ای اجرا می شود که ذخیره شناسه منبع فایل در چندین مقدار داده مجاز نیست و خطایی را برمی گرداند. حذف مقدار داده منبع فایل ارجاع شده را حذف می کند. حذف مستقیم منابع پرونده امکان پذیر نیست.
اکنون مقدار داده ها می توانند مانند سایر موارد بازیابی شوند اما داده های برگشتی UID منبع پرونده خواهند بود. به منظور بازیابی محتوای واقعی (به معنای فایل که در منبع فایل نقشه برداری شده به مقدار داده ذخیره می شود) درخواست دریافت باید به/api/datavalues/پرونده هایی که آینه پارامترهای پرس و جو را برای خودشان داده می شود ، انجام شود. وادنقطه پایانی/API/DATAVALUES/FILES فقط از درخواست دریافت می کند.
شایان ذکر است که به دلیل مکانیسم ذخیره سازی زیربنایی که به صورت ناهمزمان کار می کند، ممکن است محتوای فایل فوراً برای دانلود از نقطه پایانی /api/dataValues/files آماده نباشد. این امر به ویژه برای فایلهای بزرگ که ممکن است نیاز به آپلودهای زمانبر داشته باشند که در پسزمینه در یک ذخیرهسازی فایل خارجی (بسته به پیکربندی سیستم) انجام میشوند، صادق است. بازیابی فراداده منبع فایل از نقطه پایانی /api/fileResources/ امکان بررسی وضعیت ذخیره سازی محتوا را قبل از اقدام به دانلود آن فراهم می کند.
فرمت داده ADX¶
از نسخه 2. 20 ما پشتیبانی از یک استاندارد بین المللی برای تبادل داده های انبوه به نام ADX را گنجانده ایم. ADX توسط کمیته تحقیقات کیفیت و بهداشت عمومی IHE (ادغام شرکت مراقبت های بهداشتی) توسعه یافته و نگهداری می شود. صفحه ویکی مربوط به فعالیت QRPH را می توان در wiki. ihe. net یافت. ADX هنوز در حال توسعه فعال است و اکنون برای اجرای آزمایشی منتشر شده است. توجه داشته باشید که آنچه در حال حاضر در DHIS2 پیادهسازی میشود، قابلیت خواندن و نوشتن دادههای قالببندی شده ADX است، یعنی آنچه به عنوان بازیگران مصرفکننده محتوا و تولیدکننده محتوا در نمایه ADX توصیف میشود.
ساختار یک پیام داده ADX کاملاً شبیه به چیزی است که ممکن است قبلاً از داده های DXF 2 که قبلاً توضیح داده شد با آن آشنا باشید. چند تفاوت مهم وجود دارد. ما این تفاوت ها را با اشاره به یک مثال کوچک شرح خواهیم داد:
عنصر ریشه ADX¶
عنصر ریشه ADX تنها یک ویژگی اجباری دارد که مهر زمانی صادر شده است. همانند سایر عناصر ADX، طرحواره از این جهت قابل توسعه است که ویژگی های خاص برنامه اضافی را محدود نمی کند.
عنصر گروه ADX¶
برخلاف dxf2، ADX مستلزم این است که مقادیر داده بر اساس orgUnit، period و dataSet گروه بندی شوند. مثال بالا یک گزارش داده برای مجموعه داده "(TB/HIV) VCCT" از پایگاه داده نمایشی آنلاین را نشان می دهد. این مثال از کدها به عنوان شناسه به جای uidهای dhis2 استفاده می کند. هنگام استفاده از ADX کدها شکل ترجیحی شناسه هستند.
ویژگی های orgUnit، period و dataSet در ADX اجباری هستند. عنصر گروه ممکن است دارای ویژگی های اضافی باشد. در اجرای DHIS2 ما، هر ویژگی اضافی به سادگی به واردکننده اصلی منتقل می شود. این بدان معنی است که تمام ویژگی هایی که در حال حاضر در dxf2 معنی دارند (مانند fullDate در مثال بالا) می توانند در ADX استفاده شوند و به همین ترتیب پردازش می شوند.
تفاوت معنی داری بین ADX و DXF2 در روشی است که دوره ها رمزگذاری می شوند. ADX از ISO8601 استفاده دقیق می کند و دوره گزارش را به عنوان (تاریخ | DateTime)/(مدت زمان) رمزگذاری می کند. بنابراین دوره در مثال بالا دوره ای از 1 ماه (P1M) است که از 2015-06-01 آغاز می شود. بنابراین این داده ها برای ژوئن 2015 است. نماد کمی بیشتر لفظ است ، اما بسیار انعطاف پذیر است و به ما امکان می دهد تا از انواع دوره های موجود در DHIS2 پشتیبانی کنیم
تعاریف دوره ADX ¶
دوره ها با تاریخی شروع می شوند که مدت زمان شروع می شود و به دنبال آن "/" و سپس نماد مدت زمان ذکر شده در جدول. در جدول زیر کلیه انواع دوره DHIS2 و نحوه نمایش آنها در ADX ، به همراه مثالهایی ارائه شده است.
نوع دوره | نماد مدت زمان | مثال ها) | مدت زمان (ها) |
---|---|---|---|
روزانه | P1D | 2017-10-01/p1m | 01 اکتبر 2017 |
هفتگی | P7D | 2017-10-02/P7D | اکتبر 02 2017-اکتبر 08-2017 |
چهارشنبه هفتگی | P7D | 2017-10-04/P7D | اکتبر 04 2017-اکتبر 10-2017 |
پنجشنبه هفتگی | P7D | 2017-10-05/P7D | اکتبر 05 2017-اکتبر 011-2017 |
شنبه هفتگی | P7D | 2017-10-07/P7D | اکتبر 07 2017-اکتبر 13-2017 |
یکشنبه هفتگی | P7D | 2017-10-01/P7D | 01 اکتبر 2017-اکتبر 07-2017 |
دو هفته | p14d | 2017-10-02/P14D | اکتبر 02 2017-اکتبر 15 2017 |
ماهانه | P1m | 2017-10-01/p1m | 01 اکتبر 2017-اکتبر 31 2017 |
دو ماهه | P2M | 2017-11-01/p2m | 01 نوامبر 2017-دسامبر 31 2017 |
سه ماه یکبار | P3m | 2017-09-01/p3m | سپتامبر 01 2017-دسامبر 31 2017 |
شش ماهه | P6M | 2017-01-01/P6M 2017-07-01/P6M | 01 ژانویه 2017-ژوئن 30 2017 ژوئیه 01 2017-دسامبر 31 2017 |
آوریل شش ماهه | P6M | 2017-04-01/P6M 2017-10-01/P6M | 01 آوریل 2017-Sep 30 2017 اکتبر 01 2017-Mar 31 2018 |
نوامبر شش ماهه | P6M | 2017-10-01/P6M 2018-05-01/P6M | 01 نوامبر 2017-APR 30 2018 مه 01 2018-اکتبر 31 2018 |
سالانه | P1y | 2017-01-01/P1Y | 01 ژانویه 2017-دسامبر 31 2017 |
ماه آوریل | P1y | 2017-04-01/P1Y | 1 آوریل 2017-Mar 31 2018 |
ماه ژوئیه مالی | P1y | 2017-07-01/P1Y | 1 ژوئیه 2017-30 ژوئن 2018 |
اکتبر مالی | P1y | 2017-10-01/p1y | 01 اکتبر 2017-سپتامبر 30 2018 |
ماه نوامبر | P1y | 2017-11-01/P1Y | 01 نوامبر 2017-اکتبر 31 2018 |
مقادیر داده ADX ¶
عنصر Datavalue در ADX بسیار شبیه به معادل آن در DXF است. ویژگی های اجباری DataElement و مقدار است. ویژگی های orgunit و دوره در Datavalue ظاهر نمی شوند زیرا در سطح گروه مورد نیاز هستند.
مهمترین تفاوت نحوه نمایش تفکیک است. DXF از CaturePtionCombo برای نشان دادن تفکیک داده ها استفاده می کند. در ADX ، تفکیک (به عنوان مثال سن*گروه و جنس) صریحاً به عنوان ویژگی ها بیان می شود. اگر از کد به عنوان طرح شناسه برای طبقه بندی استفاده می کنید ، نه اینکه باید یک کد را به تمام دسته های مورد استفاده برای داده های موجود در مجموعه داده اختصاص دهید ، و علاوه بر این ، آن کد باید از شکلی باشد که برای استفاده به عنوان یک ویژگی XML مناسب باشد. محدودیت دقیق در یک نام ویژگی XML در استاندارد W3C XML شرح داده شده است - در عمل ، این بدان معنی است که هیچ فضایی ، شخصیت های غیر آلفانومی غیر از "*" وجود ندارد و ممکن است با یک نامه شروع نشود. مثال بالا نمونه هایی از کدهای دسته بندی "خوب" ("جنسیت" و "HIV_AGE") را نشان می دهد. در صورت استفاده از نام یا ویژگی به عنوان طرح شناسه ، همین محدودیت ها اعمال می شود.
در ADX ، فقط شناسه های دسته به عنوان ویژگی های XML استفاده می شوند. شناسه های دیگر انواع ابرداده ها به عنوان ویژگی های XML لازم نیست که Usalbe باشند. توجه داشته باشید که این نحو هنگام اختصاص نام ، کدها یا ویژگی های DHIS2 توسط DHIS2 اجرا نمی شود ، اما اگر سعی کنید داده های ADX را وارد کنید و شناسه های دسته بندی یا مناسب نیستند یا مناسب نیستند ، یک پیام خطای آموزنده دریافت خواهید کرد.
مزایای اصلی استفاده از ابعاد صریح داده های تفکیک شده این است که
سیستم تولید کننده داده ها نیازی به هماهنگی با رده بندی در DHIS2 ندارد.
تولید کننده و مصرف کننده می توانند کدهای خود را با یک منبع معتبر شخص 3 ، مانند یک سرویس Verminology ، مطابقت دهند. توجه داشته باشید که در مثال بالا کدهای جنسیت و گروه های سنگی از لیست کد های رصدخانه بهداشت جهانی WHO استفاده می کنند.
توجه داشته باشید که این ویژگی ممکن است بسیار مفید باشد ، به عنوان مثال هنگام تولید داده های تفکیک شده از یک سیستم EMR ، اما ممکن است مواردی وجود داشته باشد که یک نقشه برداری رده بندی آسانتر یا مطلوب تر باشد. اجرای DHIS2 ADX وجود یک ویژگی رده بندی رده بندی را بررسی می کند و در صورت وجود ، از آن در اولویت به ویژگی های ابعاد منفجر شده استفاده می کند. به طور مشابه ، یک ویژگی AttributeOptionCombo در عنصر گروه به روش میراث پردازش می شود. در غیر این صورت ، AttributeOptionCombo می تواند به عنوان دسته های منفجر شده دقیقاً مانند Datavalue رفتار شود.
در مثال ساده فوق ، هر یک از داده های موجود در مجموعه داده دارای ابعاد یکسان (رده combo) هستند تا داده ها کاملاً مستطیل باشند. این لازم نیستمجموعه داده ها ممکن است حاوی داده های دارای دسته های مختلف باشد ، و در نتیجه یک پیام داده ADX به راست و راست (یعنی مقادیر برای داده های مختلف ممکن است تعداد مختلفی از دسته ها داشته باشد.)
وارد کردن داده های ADX ¶
DHIS2 یک نقطه پایانی برای داده های پست ADX در/API/DataValuesets با استفاده از برنامه/XML+ADX به عنوان نوع محتوا قرار می دهد. به عنوان مثال ، از دستور curl زیر می توان برای ارسال داده های مثال بالا به سرور نسخه ی نمایشی DHIS2 استفاده کرد:
توجه داشته باشید که پارامترهای پرس و جو همان است که با داده های DXF استفاده می شود. نقطه پایانی ADX باید تمام پارامترهای DXF موجود را با همان معنایی DXF تفسیر کند.
صادر کردن داده های ADX ¶
DHIS2 یک نقطه پایانی را برای دریافت مجموعه داده های ADX در/API/DataValuesets با استفاده از برنامه/XML+ADX به عنوان نوع محتوای پذیرفته شده قرار می دهد. به عنوان مثال ، از دستور curl زیر می توان برای بازیابی داده های ADX استفاده کرد:
توجه داشته باشید که پارامترهای پرس و جو همان است که با داده های DXF استفاده می شود. تفاوت مهمی در این است که شناسه های مجموعه داده و orgunit ممکن است uids یا کدها باشد.
پیگیری¶
در این بخش داده های علامت گذاری برای پیگیری قرار می گیرد.
پیگیری ارزش داده ها
نقطه پایانی مقدار داده داده ها امکان نشان دادن مقادیر داده را برای پیگیری فراهم می کند.
بار بار در قالب JSON به این شکل است:
زمینه های CategoryOptionCombo و AttributeOptionCombo اختیاری هستند. حداقل بار JSON به این شکل است:
قسمت پیگیری باید به درستی تنظیم شود تا مقدار داده را برای پیگیری و کاذب برای حذف علامت مشخص کند.
اگر این عملیات موفقیت آمیز باشد ، کد وضعیت پاسخ 200 خوب خواهد بود و در صورت بروز خطایی با درخواست ، 409 درگیری.
برای به روزرسانی مقادیر داده برای استفاده پیگیری:
با بار JSON:
هر مورد از بروزرسانی فله دارای همان زمینه ها و الزامات یکسان با نقطه پایانی تک به روز است.
بروزرسانی فله به طور مساوی با 200 OK در موفقیت تأیید می شود یا در صورت بروز خطاهای ورودی ، درگیری 409 را برمی گرداند.
Back to top Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->