בדף הזה מוסבר איך Cloud Healthcare API תומך בהפניות למשאבי FHIR.
סקירה כללית
הפניות למשאבי FHIR הן קישורים חד-כיווניים ממשאב מקור למשאב יעד. אפשר להשתמש בהפניות למשאבי FHIR כדי לקשר בין משאבים. לדוגמה, לסוג המשאב FHIR Observation יש שדה subject מסוג Reference, שאפשר להשתמש בו כדי לקשר למשאב Patient כנושא התצפית.
הפניות למשאבי FHIR יכולות להיות גם מעגליות. לדוגמה, לסוג המשאב FHIR CarePlan יש שדה replaces שיכול להפנות אל CarePlan אחר.
האלמנט הכי חשוב במבנה ההפניה של FHIR הוא reference.
הרכיבים האחרים, כמו display ו-identifier, נשמרים כמו שהם ב-Cloud Healthcare API.
הפורמטים הנתמכים של Reference.reference ב-Cloud Healthcare API כוללים:
הפניה למשאבים מקומיים
הפניות למשאבים מוגדרות כ-RESOURCE_TYPE/RESOURCE_ID.
Cloud Healthcare API תומך גם בהוספה של השם המלא של מאגר FHIR לפני RESOURCE_TYPE/RESOURCE_ID. לדוגמה, FHIR_STORE_NAME/RESOURCE_TYPE/RESOURCE_ID.
אם משתמשים בפורמט הזה, שם החנות צריך להיות זהה למאגר FHIR של הבקשה.
אחרת, הבקשה נדחית בגלל הפניות לא מקומיות.
אפשרות ההגדרה של החנות
FhirStore.disableReferentialIntegrity
שולטת בבדיקת השלמות הרפרנציאלית לאימות הפניה מקומית, שמופעלת כברירת מחדל. מידע נוסף על בדיקת התקינות של ההפניות זמין במאמר תקינות ההפניות ב-FHIR.
קובצי עזר עם גרסאות
Cloud Healthcare API תומך בהפניות לגרסה ספציפית של משאב היעד. כדי לקשר לגרסה ספציפית של משאב היעד, משתמשים בפורמט
אחרי RESOURCE_ID/_history/VERSION_ID] בהפניה המקומית.
כשבדיקת השלמות הרפרנציאלית מופעלת, השרת מוודא שהגרסה ההיסטורית קיימת במאגר FHIR. השיטה
Resource-purge
מסירה גרסאות היסטוריות בלי קשר לשאלה אם יש הפניה אליהן.
הפניות מותנות
במקום לציין באופן מפורש את מזהה משאב היעד, אפשר להשתמש בexecuteBundle בשאילתת חיפוש של הפניה מותנית למשאב היעד, שמובילה למזהה משאב היעד בזמן הבקשה. לדוגמה, Patient?identifier=abc.
אם שאילתת החיפוש לא מתורגמת למשאב יעד או מתורגמת ליותר ממשאב יעד אחד, השרת דוחה את הבקשה, בלי קשר לשאלה אם בדיקת השלמות הרפרנציאלית מופעלת.
כתובת ה-URI מתחילה ב-urn:uuid או ב-urn:oid
כשמשתמשים בשיטה executeBundle עם חבילת עסקאות, אפשר להשתמש במזהה ייחודי אוניברסלי (UUID) או בהפניות למזהה אובייקט(OID) כדי לפתור הפניות למקורות מידע אחרים שנוצרים או מתעדכנים באותה חבילה. מידע נוסף זמין במדריך לניהול חבילות FHIR.
כתובת URL חיצונית מלאה
כתובות URL חיצוניות מלאות כמו http://www.example.com/abc מאוחסנות ללא שינוי בשדה ההפניה. Cloud Healthcare API לא פותר את כתובת ה-URL או מנסה לאמת את התוקף שלה.
אם כתובת ה-URL החיצונית המלאה זהה לכתובת ה-URL המלאה של מאגר FHIR של הבקשה, ההפניה נחשבת להפניה למשאב מקומי.
הפניה למקטע
הפניה למקטע מצביעה על משאב מוכל שמוטמע במשאב. לדוגמה, אם רשומה של Observation (תצפית) מציינת רופא כללי, אבל אין ספרייה של רופאים בפיקוח, אי אפשר ליצור משאב Practitioner (רופא) מלא. הרופא הכללי הוא משאב עצמאי ברשומה Observation. השדות Reference (הפניה) במשאב יכולים להפנות למשאבים מוטבעים באמצעות התבנית #[INLINE_RESOURCE_ID].
בדוגמה הבאה של FHIR R4, p1 ו-p2 הם מזהי משאבים מוטבעים שמפנים אליהם כאל #p1 ו-#p2:
{
"resourceType": "Observation",
"contained": [
{
"resourceType":"Patient",
"id": "p1",
"generalPractitioner": {"reference": "#p2"}
},
{
"resourceType":"Practitioner",
"id": "p2"
}
],
"status": "final",
"subject": {"reference": "#p1"},
"performer": [{"reference": "#p2"}]
}
המשאב [INLINE_RESOURCE_ID] חייב להתקיים כמשאב מוכל בתוך המשאב, אחרת השרת דוחה את הבקשה. אפשר להפנות למשאב הכלול רק מהקונטיינר שלו או ממשאבים אחרים שכלולים באותו קונטיינר.