בדף הזה מוסבר איך להשתמש בהגדרה של v1 DicomConfig כדי להסיר פרטי זיהוי ממידע אישי רגיש במופעי DICOM ברמות הבאות:
- ברמת מערך הנתונים באמצעות
datasets.deidentify - ברמת מאגר DICOM באמצעות
dicomStores.deidentify
בדף הזה מוסבר גם איך להחיל מסננים כשמבטלים את הזיהוי של נתונים ברמת מאגר DICOM.
סקירה כללית על הסרת פרטי הזיהוי
הסרת פרטי הזיהוי ברמת מערך הנתונים
כדי להסיר את הפרטים המזהים מנתוני DICOM ברמת מערך הנתונים, קוראים לפעולה datasets.deidentify. קריאה ל-API להסרת פרטי הזיהוי כוללת את הרכיבים הבאים:
- מערך נתוני המקור: מערך נתונים שמכיל מאגרי DICOM עם מופע אחד או יותר שכוללים מידע אישי רגיש. כשמתקשרים לפעולה
deidentify, כל המופעים בכל מאגרי DICOM במערך הנתונים עוברים הסרת פרטים מזהים. - מערך הנתונים של היעד: הסרת הפרטים המזהים לא משפיעה על מערך הנתונים המקורי או על הנתונים שבו. במקום זאת, עותקים של הנתונים המקוריים שעברו הסרת פרטים מזהים נכתבים למערך נתונים חדש שנקרא מערך נתוני היעד.
- מה רוצים להסיר את פרטי הזיהוי שלו: פרמטרים של הגדרה שמציינים איך לעבד את מערך הנתונים. אפשר להגדיר הסרת פרטים מזהים ב-DICOM כדי להסיר פרטים מזהים ממטא-נתונים של מופע DICOM (באמצעות מילות מפתח של תגים) או מטקסט מוטבע בתמונות DICOM. כדי לעשות זאת, צריך לציין את הפרמטרים האלה באובייקט
DeidentifyConfigולבצע את הפעולות הבאות:- הגדרת השדה
configבגוף הבקשה - אחסון שלו ב-Cloud Storage בפורמט JSON וציון המיקום של הקובץ בקטגוריה באמצעות השדה
gcsConfigUriבגוף הבקשה
- הגדרת השדה
רוב הדוגמאות במדריך הזה מראות איך לבטל את הזיהוי של נתוני DICOM ברמת מערך הנתונים.
הסרת פרטי הזיהוי ברמת האחסון של DICOM
הסרת הפרטים המזהים מנתוני DICOM ברמת מאגר DICOM מאפשרת לכם לשלוט טוב יותר בנתונים שמהם יוסרו הפרטים המזהים. לדוגמה, אם יש לכם מערך נתונים עם כמה מאגרי DICOM, אתם יכולים להסיר את הפרטים המזהים מכל מאגר DICOM בהתאם לסוג הנתונים שקיים במאגר.
כדי להסיר פרטי זיהוי מנתוני DICOM במאגר DICOM, צריך להפעיל את השיטה dicomStores.deidentify. קריאה ל-API של הסרת פרטים מזהים כוללת את הרכיבים הבאים:
- מאגר DICOM המקור: מאגר DICOM שמכיל מופע אחד או יותר עם מידע אישי רגיש. כשמתקשרים לפעולה
deidentify, כל המופעים במאגר DICOM עוברים הסרת פרטים מזהים. - מאגר היעד של DICOM: הסרת הפרטים המזהים לא משפיעה על מאגר DICOM המקורי או על הנתונים שלו. במקום זאת, עותקים של הנתונים המקוריים שעברו הסרת פרטים מזהים נכתבים במאגר DICOM של היעד. מאגר ה-DICOM של היעד חייב כבר להיות קיים.
- מה להסיר מהזיהוי: פרמטרים של הגדרה שמציינים איך לעבד את מאגר DICOM. אפשר להגדיר הסרת פרטים מזהים ב-DICOM כדי להסיר פרטים מזהים ממטא-נתונים של מופע DICOM (באמצעות מילות מפתח של תגים) או מטקסט מוטבע בתמונות DICOM. כדי לעשות זאת, צריך לציין את הפרמטרים האלה באובייקט
DeidentifyConfigולהעביר אותו באחת מהדרכים הבאות:- הגדרת השדה
configבגוף הבקשה - אחסון שלו ב-Cloud Storage בפורמט JSON וציון המיקום של הקובץ בקטגוריה באמצעות השדה
gcsConfigUriבגוף הבקשה
- הגדרת השדה
דוגמה לאופן הסרת הפרטים המזהים מנתוני DICOM ברמת מאגר DICOM מופיעה במאמר הסרת פרטים מזהים מנתונים ברמת מאגר DICOM.
מסננים
אפשר להסיר את הפרטים המזהים מקבוצת משנה של נתונים במאגר DICOM על ידי הגדרת קובץ מסנן וציון הקובץ בבקשת dicomStores.deidentify. לדוגמה, אפשר לעיין במאמר הסרת פרטים מזהים מקבוצת משנה של מאגר DICOM.
סקירה כללית של דוגמאות
בדוגמאות שבמדריך הזה נעשה שימוש במופע DICOM יחיד, אבל אפשר גם להסיר פרטים מזהים מכמה מופעים.
בכל אחד מהקטעים הבאים מוצגות דוגמאות לשיטות שונות להסרת פרטים מזהים מנתוני DICOM. לכל דוגמה מצורף פלט של התמונה לאחר הסרת הפרטים המזהים. כל דוגמה משתמשת בתמונה המקורית הבאה כקלט:

אפשר להשוות את תמונת הפלט מכל פעולת הסרת פרטים מזהים לתמונה המקורית הזו כדי לראות את ההשפעות של הפעולה.
הסרת פרטי הזיהוי מתגי DICOM
אפשר להסיר את הפרטים המזהים ממופעי DICOM על סמך מילות מפתח של תגים במטא-נתונים של DICOM. השיטות הבאות לסינון תגים זמינות באובייקט DicomConfig:
-
keepList: רשימת התגים שרוצים לשמור. מסירים את כל התגים האחרים. -
removeList: רשימת התגים להסרה. משאירים את כל התגים האחרים. -
filterProfile: פרופיל סינון תגים שמשמש לקביעה אילו תגים לשמור או להסיר.
לכל דוגמה בקטע הזה מוצג הפלט של המטא-נתונים ששונו במופע DICOM. אלה המטא-נתונים המקוריים של המופע שמשמשים כקלט לכל דוגמה:
[
{
"00020002":{"vr":"UI","Value":["1.2.840.10008.5.1.4.1.1.7"]},
"00020003":{"vr":"UI","Value":["1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"]},
"00020010":{"vr":"UI","Value":["1.2.840.10008.1.2.4.50"]},
"00020012":{"vr":"UI","Value":["1.2.276.0.7230010.3.0.3.6.1"]},
"00020013":{"vr":"SH","Value":["OFFIS_DCMTK_361"]},
"00080005":{"vr":"CS","Value":["ISO_IR 100"]},
"00080016":{"vr":"UI","Value":["1.2.840.10008.5.1.4.1.1.7"]},
"00080018":{"vr":"UI","Value":["1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"]},
"00080020":{"vr":"DA","Value":["20110909"]},
"00080030":{"vr":"TM","Value":["110032"]},
"00080050":{"vr":"SH"},
"00080064":{"vr":"CS","Value":["WSD"]},
"00080070":{"vr":"LO","Value":["Manufacturer"]},
"00080090":{"vr":"PN","Value":[{"Alphabetic":"John Doe"}]},
"00081090":{"vr":"LO","Value":["ABC1"]},
"00100010":{"vr":"PN","Value":[{"Alphabetic":"Ann Johnson"}]},
"00100020":{"vr":"LO","Value":["S1214223-1"]},
"00100030":{"vr":"DA","Value":["19880812"]},
"00100040":{"vr":"CS","Value":["F"]},
"0020000D":{"vr":"UI","Value":["2.25.70541616638819138568043293671559322355"]},
"0020000E":{"vr":"UI","Value":["1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694"]},
"00200010":{"vr":"SH"},
"00200011":{"vr":"IS"},
"00200013":{"vr":"IS"},
"00200020":{"vr":"CS"},
"00280002":{"vr":"US","Value":[3]},
"00280004":{"vr":"CS","Value":["YBR_FULL_422"]},
"00280006":{"vr":"US","Value":[0]},
"00280010":{"vr":"US","Value":[1024]},
"00280011":{"vr":"US","Value":[1024]},
"00280100":{"vr":"US","Value":[8]},
"00280101":{"vr":"US","Value":[8]},
"00280102":{"vr":"US","Value":[7]},
"00280103":{"vr":"US","Value":[0]},
"00282110":{"vr":"CS","Value":["01"]},
"00282114":{"vr":"CS","Value":["ISO_10918_1"]}
}
]
ביטול הזיהוי באמצעות תגי keeplist
כשמציינים תג keeplist באובייקט DicomConfig, התגים הבאים מתווספים כברירת מחדל:
StudyInstanceUIDSeriesInstanceUIDSOPInstanceUIDTransferSyntaxUIDMediaStorageSOPInstanceUIDMediaStorageSOPClassUIDPixelDataRowsColumnsSamplesPerPixelBitsAllocatedBitsStoredHighbitPhotometricInterpretationPixelRepresentationNumberOfFramesPlanarConfigurationPixelAspectRatioSmallestImagePixelValueLargestImagePixelValueRedPaletteColorLookupTableDescriptorGreenPaletteColorLookupTableDescriptorBluePaletteColorLookupTableDescriptorRedPaletteColorLookupTableDataGreenPaletteColorLookupTableDataBluePaletteColorLookupTableDataICCProfileColorSpaceWindowCenterWindowWidthVOILUTFunction
הפעולה deidentify לא מצנזרת את התגים הקודמים. עם זאת, הערכים של חלק מהתגים נוצרים מחדש, כלומר הערכים מוחלפים בערך אחר באמצעות טרנספורמציה דטרמיניסטית.
מידע נוסף מופיע בקטע שמירת אפשרות ה-UID בתקן DICOM. כדי לשמור את הערכים המקוריים של התגים הקודמים, משתמשים באפשרות
SkipIdRedaction.
אם לא מספקים תגים של רשימת שמירה, לא יוסרו תגים של DICOM ממערך הנתונים.
בדוגמאות הבאות מוצגות דרכים להסרת פרטים מזהים ממערך נתונים שמכיל מאגרי DICOM ונתוני DICOM, תוך השארת חלק מהתגים ללא שינוי.
אחרי ששולחים את התמונה אל Cloud Healthcare API, התמונה מוצגת באופן הבא. המטא-נתונים שמוצגים בפינות העליונות של התמונה הוסרו, אבל המידע הרפואי המוגן (PHI) שמוטבע בתמונה בחלק התחתון שלה עדיין מופיע. כדי להסיר גם את הטקסט המוטבע, אפשר לעיין במאמר בנושא הסרת טקסט מוטבע מתמונות.

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בטבלה הבאה אפשר לראות איך השתנו מזהה המחקר, מזהה הסדרה ומזהה המופעים:מטא-נתונים מקוריים של מכונה מטא-נתונים של מופע שהוסרו ממנו פרטים מזהים מזהה מחקר (UID) ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763מזהה ייחודי של סדרה ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710מזהה ייחודי של מופעים ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029 בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
Go
Java
Node.js
Python
ביטול הזיהוי באמצעות תגי removelist
אפשר לציין רשימת הסרה באובייקט DicomConfig. הפעולה deidentify תצנזר רק את התגים שצוינו ברשימה. אם לא מסופקים תגי removelist, פעולת הסרת הפרטים המזהים מתבצעת כרגיל, אבל לא מוסרים תגי DICOM במערך נתוני היעד.
כשמציינים רשימת הסרה, התג OverlayData מתווסף כברירת מחדל כי נתוני שכבת העל עשויים להכיל מידע אישי רגיש.
אי אפשר להוסיף לרשימת ההסרה את התגים שמוספים כברירת מחדל לרשימת השמירה.
בדוגמאות הבאות מוצגות דרכים להסרת פרטים מזהים ממערך נתונים שמכיל מאגרי DICOM ונתוני DICOM, על ידי הסרת כל התגים ברשימת ההסרה. תגים שלא נמצאים ברשימת ההסרה לא משתנים.
אחרי ששולחים את התמונה אל Cloud Healthcare API, התמונה מוצגת באופן הבא. מתוך התגים שצוינו ב-removelist, רק PatientBirthDate
מוסר מהתמונה, כי הוא התג היחיד מ-removelist שתואם למטא-נתונים שגלויים בתמונה.
הסמל PatientBirthDate בפינה העליונה של התמונה הוסר בהתאם להגדרות ברשימת ההסרה, אבל פרטי ה-PHI שמוטבעים בתחתית התמונה נשארו. כדי להסיר גם את הטקסט המוטבע, אפשר לעיין במאמר בנושא הסרת טקסט מוטבע מתמונות.

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בטבלה הבאה אפשר לראות איך השתנו מזהה המחקר, מזהה הסדרה ומזהה המופעים:מטא-נתונים מקוריים של מכונה מטא-נתונים של מופע שהוסרו ממנו פרטים מזהים מזהה מחקר (UID) ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763מזהה ייחודי של סדרה ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710מזהה ייחודי של מופעים ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029 בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
ביטול הזיהוי באמצעות פרופיל של מסנן תגים
במקום לציין אילו תגים להשאיר או להסיר, אפשר להגדיר TagFilterProfile באובייקט DicomConfig. פרופיל של מסנן תגים הוא פרופיל מוגדר מראש שקובע אילו תגים יישמרו, יוסרו או ישונו. TagFilterProfileכאן אפשר לראות את הפרופילים הזמינים.
בדוגמאות הבאות מוצגות דרכים להסרת פרטים מזהים ממערך נתונים שמכיל מאגרי DICOM ונתוני DICOM באמצעות פרופיל סינון התגים ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE.
פרופיל המסנן הזה מסיר תגים על סמך הפרופיל הבסיסי של סודיות המאפיינים בתקן DICOM.
Cloud Healthcare API לא תואם באופן מלא ל-Attribute Confidentiality Basic Profile. לדוגמה, Cloud Healthcare API לא בודק הגבלות של הגדרת אובייקט מידע (IOD) כשבוחרים פעולה לתג.
אחרי ששולחים את התמונה אל Cloud Healthcare API באמצעות ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILEפרופיל סינון התגים, התמונה מוצגת כך: המטא-נתונים שמוצגים בפינות העליונות של התמונה הוסרו, אבל הפרטים הרפואיים האישיים שמוטבעים בתחתית התמונה נשארו.
כדי להסיר גם את הטקסט המוטבע, אפשר לעיין במאמר בנושא עריכת טקסט מוטבע בתמונות.

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בטבלה הבאה אפשר לראות איך השתנו מזהה המחקר, מזהה הסדרה ומזהה המופעים:מטא-נתונים מקוריים של מכונה מטא-נתונים של מופע שהוסרו ממנו פרטים מזהים מזהה מחקר (UID) ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763מזהה ייחודי של סדרה ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710מזהה ייחודי של מופעים ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029 בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
הסרת פרטים מזהים בנתונים במסוף Google Cloud
כדי להסיר פרטים מזהים מנתונים במסוף Google Cloud :
נכנסים לדף Datasets במסוף Google Cloud .
ברשימה פעולות, בוחרים באפשרות הסרת פרטים מזהים בשביל מערך הנתונים שרוצים להסיר ממנו פרטים מזהים.
יוצג הדף De-identify Dataset.
לוחצים על הגדרת מערך נתונים ליעד ומזינים שם למערך הנתונים החדש שבו יישמרו הנתונים שעברו הסרת פרטים מזהים.
בוחרים באפשרות DICOM tag de-identification (הסרת פרטים מזהים מתג DICOM) כדי לבחור את הפרופיל של הנתונים שרוצים להסיר מהם פרטים מזהים. אפשר להסיר את הפרטים המזהים מהנתונים באופן הבא:
-
KEEP_ALL_PROFILE– שמירה של כל המטא תגים של DICOM -
DEIDENTIFY_TAG_CONTENTS– הסרת פרטי הזיהוי מהנתונים במטא תגים -
ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE– הסרת תגי מטא בהתאם לפרופיל הבסיסי בתקן DICOM -
MINIMAL_KEEP_LIST_PROFILE– שמירה רק של תגי המטא הנדרשים לאובייקט DICOM תקין - דילוג על הסרת פרטים מזהים – יצירה מחדש של שדות UID בהתאם לתקן DICOM
-
בוחרים באפשרות DICOM burnt-in text redaction כדי להגדיר איך מתבצעת צנזורה של תמונות במהלך הסרת הפרטים המזהים. אפשר להגדיר את הצנזורה של תמונות באופן הבא:
-
REDACT_NO_TEXT– לא לצנזר טקסט בתמונות -
REDACT_SENSITIVE_TEXT– צנזורה רק של טקסט רגיש בתמונות -
REDACT_ALL_TEXT– צנזורה של כל הטקסט בתמונות
-
לוחצים על De-identify (הסרת פרטים מזהים) כדי להסיר את הפרטים המזהים מהנתונים במערך הנתונים.
הסרת טקסט שמוטבע בתמונות
ה-Cloud Healthcare API יכול לצנזר טקסט רגיש שמוטבע בתמונות. ה-API מזהה נתונים רגישים כמו PHI, ואז מסתיר אותם באמצעות מלבן אטום. ממשק ה-API מחזיר את אותן תמונות DICOM שסיפקתם לו, באותו פורמט, אבל כל טקסט שזוהה כטקסט שמכיל מידע רגיש בהתאם לקריטריונים שלכם, מושמט.
כדי לצנזר טקסט שמוטבע בתמונות, צריך לציין את האפשרות TextRedactionMode בתוך אובייקט ImageConfig. אפשר לעיין בTextRedactionModeמסמכי התיעוד כדי לראות את הערכים האפשריים.
הסרת כל הטקסט שמוטבע בתמונה
בדוגמאות הבאות אפשר לראות איך לצנזר את כל הטקסט שמוטבע בתמונות DICOM במערך נתונים. כדי לעשות את זה, מציינים REDACT_ALL_TEXT בשדה TextRedactionMode.
אחרי ששולחים את התמונה אל Cloud Healthcare API באמצעות האפשרות REDACT_ALL_TEXT, התמונה מופיעה כמו בדוגמה הבאה. הטקסט שמוטבע בתחתית התמונה הוסר, אבל המטא-נתונים בפינות העליונות של התמונה נשארו. כדי להסיר גם את המטא-נתונים, אפשר לעיין במאמר בנושא הסרת פרטים מזהים מתגי DICOM.

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בטבלה הבאה אפשר לראות איך השתנו מזהה המחקר, מזהה הסדרה ומזהה המופעים:מטא-נתונים מקוריים של מכונה מטא-נתונים של מופע שהוסרו ממנו פרטים מזהים מזהה מחקר (UID) ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763מזהה ייחודי של סדרה ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710מזהה ייחודי של מופעים ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
צנזורה רק של טקסט רגיש שמוטבע בתמונה
בדוגמאות הבאות אפשר לראות איך לצנזר טקסט רגיש שמוטבע בתמונות DICOM במערך נתונים. כדי לעשות את זה, מציינים REDACT_SENSITIVE_TEXT בשדה TextRedactionMode.
כשמציינים את REDACT_SENSITIVE_TEXT, המערכת מצנזרת את סוגי המידע שצוינו בסוגי המידע של DICOM שמוגדרים כברירת מחדל. בנוסף, מוחלים שני סוגים נוספים של מידע מותאם אישית לצורך צנזורה של:
- מזהי מטופלים, כמו מספרי תיקים רפואיים (MRN)
- מספרי גישה
בתמונה הבאה מוצגת צילום רנטגן של מטופל ללא צנזורה:

אחרי ששולחים את התמונה אל Cloud Healthcare API באמצעות האפשרות REDACT_SENSITIVE_TEXT, התמונה מופיעה כך:

אפשר לראות את הפעולות הבאות שבוצעו:
- הטקסט
PERSON_NAMEבפינה הימנית התחתונה של התמונה הוסתר - הטקסט
DATEבפינה הימנית התחתונה של התמונה הוסתר
מין המטופל לא הוסתר כי הוא לא נחשב לטקסט רגיש לפי סוגי המידע של DICOM שמוגדרים כברירת מחדל.
REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בטבלה הבאה אפשר לראות איך השתנו מזהה המחקר, מזהה הסדרה ומזהה המופעים:מטא-נתונים מקוריים של מכונה מטא-נתונים של מופע שהוסרו ממנו פרטים מזהים מזהה מחקר (UID) ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763מזהה ייחודי של סדרה ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710מזהה ייחודי של מופעים ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
שילוב של הסרת פרטים מזהים מתגים וצנזור טקסט מוטבע
אתם יכולים לשלב בין הסרת פרטים מזהים באמצעות תגים לבין צנזורה של טקסט שמוטבע בתמונות, כדי להסיר פרטים מזהים ממופעי DICOM ברמת פירוט גבוהה יותר. לדוגמה, אם משלבים את REDACT_ALL_TEXT בשדה TextRedactionMode עם DEIDENTIFY_TAG_CONTENTS בשדה TagFilterProfile, אפשר:
-
REDACT_ALL_TEXT: צנזור של כל הטקסט שמוטבע בתמונה. -
DEIDENTIFY_TAG_CONTENTS: בדיקת תוכן התג והמרת טקסט רגיש. מידע נוסף על אופן הפעולה שלDEIDENTIFY_TAG_CONTENTSזמין במאמר הגדרות ברירת מחדל.
אחרי ששולחים את התמונה אל Cloud Healthcare API באמצעות האפשרויות REDACT_ALL_TEXT ו-DEIDENTIFY_TAG_CONTENTS, התמונה מוצגת באופן הבא. שימו לב לשינויים הבאים:
- השמות בפינה הימנית העליונה ובפינה השמאלית העליונה של התמונה עברו שינוי
באמצעות
CryptoHashConfig - התאריכים בפינה השמאלית העליונה ובפינה הימנית העליונה של התמונה עברו שינוי באמצעות
DateShiftConfig - הטקסט שמוטבע בתחתית התמונה מצונזר

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
שימוש ב-infoTypes ובטרנספורמציות פרימיטיביות עם תגי DICOM
Cloud Healthcare API יכול להשתמש בסוגי מידע (infoTypes) כדי להגדיר אילו נתונים הוא יסרוק כשהוא מבצע הסרת פרטים מזהים בתגים. סוג מידע הוא סוג של מידע אישי רגיש, כמו שם של מטופל, כתובת אימייל, מספר טלפון, מספר זיהוי או מספר כרטיס אשראי.
טרנספורמציות פרימיטיביות הן כללים שמשמשים לטרנספורמציה של ערך קלט. אתם יכולים להתאים אישית את האופן שבו תגי DICOM עוברים דה-אינדיבידואליזציה על ידי החלת טרנספורמציה פרימיטיבית על סוג המידע של כל תג. לדוגמה, אפשר לבטל את הזיהוי של שם המשפחה של מטופל ולהחליף אותו בסדרה של כוכביות באמצעות ציון LAST_NAME infoType עם טרנספורמציית הפרימיטיב CharacterMaskConfig.
סוגי מידע (infoTypes) של DICOM שמוגדרים כברירת מחדל
סוגי המידע (infoTypes) של DICOM שמוגדרים כברירת מחדל ומשמשים להסרת פרטים מזהים ממטא-נתונים הם:
AGECREDIT_CARD_NUMBERDATEEMAIL_ADDRESSIP_ADDRESSLOCATIONMAC_ADDRESSPASSPORTPERSON_NAMEPHONE_NUMBERSWIFT_CODEUS_DRIVERS_LICENSE_NUMBERUS_SOCIAL_SECURITY_NUMBERUS_VEHICLE_IDENTIFICATION_NUMBERUS_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
כשמבטלים את הקישור לזהות של טקסט רגיש בתמונות באמצעות REDACT_SENSITIVE_TEXT, Cloud Healthcare API משתמש בסוגי המידע שצוינו למעלה, אבל מוחלים גם שני סוגי מידע מותאמים אישית נוספים על טקסט רגיש בתמונה כדי:
- מזהים של מטופלים, כמו מספרי תיקים רפואיים (MRN)
- מספרי גישה
אפשרויות טרנספורמציה פרימיטיביות
אפשרויות ההמרה הפרימיטיביות של Cloud Healthcare API כוללות:
-
RedactConfig: מסתיר ערך על ידי הסרתו. -
CharacterMaskConfig: מסתיר מחרוזת באופן מלא או חלקי על ידי החלפת תווים בקלט בתו קבוע שצוין. -
DateShiftConfig: משנה את התאריכים במספר אקראי של ימים, עם אפשרות לשמור על עקביות באותו הקשר. -
CryptoHashConfig: משתמשת ב-SHA-256 כדי להחליף ערכי קלט בייצוג בקידוד Base64 של מחרוזת פלט מגובבת שנוצרה באמצעות מפתח הצפנת נתונים נתון. -
ReplaceWithInfoTypeConfig: מחליפה ערך קלט בשם של סוג המידע שלו.
ציון הגדרות ב-TextConfig
סוגי מידע וטרנספורמציות פרימיטיביות מוגדרים בתוך InfoTypeTransformation, שהוא אובייקט בתוך TextConfig.
סוגי המידע מוזנים למערך infoTypes כערכים מופרדים בפסיקים.
הוספת infoType היא אופציונלית. אם לא מציינים לפחות infoType אחד, הטרנספורמציה חלה על ברירות המחדל של infoType ב-DICOM שנמצאות ב-Cloud Healthcare API.
אם מציינים infoTypes ב-InfoTypeTransformation, צריך לציין לפחות טרנספורמציה פרימיטיבית אחת.
אפשר להחיל InfoTypeTransformation רק על פרופיל DEIDENTIFY_TAG_CONTENTS.
אי אפשר להחיל InfoTypeTransformation על הפרופילים האחרים שמופיעים ב-TagFilterProfile.
בסעיפים הבאים מוסבר איך להשתמש בהמרות הפרימיטיביות שזמינות ב-InfoTypeTransformation
יחד עם infoTypes כדי להתאים אישית את האופן שבו תגי DICOM עוברים דה-איдентификаציה. בדוגמאות נעשה שימוש בתמונת הדוגמה שמופיעה בסקירה כללית של דוגמאות ובמטא-נתונים לדוגמה שמופיעים במאמר הסרת פרטים מזהים מתגי DICOM.
הגדרות ברירת מחדל
כברירת מחדל, כשמגדירים את הפרופיל DEIDENTIFY_TAG_CONTENTS בלי לספק הגדרה כלשהי באובייקט TextConfig, Cloud Healthcare API מחליף את המידע האישי הרגיש באמצעות סוגי המידע (infoTypes) של DICOM שמוגדרים כברירת מחדל.
עם זאת, יש התנהגות שונה לגבי סוגי המידע DATE ו-PERSON_NAME, כפי שמוצג בהמשך:
- התווית
DateShiftConfigמוחלת על טקסט שמסווג כסוג המידעDATE. ב-DateShiftConfigנעשה שימוש בטכניקה של הזזת תאריכים עם הפרש של 100 ימים. - התווית
CryptoHashConfigמוחלת על טקסט שמסווג כסוג המידעPERSON_NAME.CryptoHashConfigמבצע טוקניזציה על ידי יצירת ערך חלופי באמצעות גיבוב קריפטוגרפי.
ההתנהגות הבאה רלוונטית גם כן:
- כל גיל של מטופל שערכו גדול מ-90 או שווה לו מומר ל-90.
- אם לא ניתן להחיל טרנספורמציה בגלל הגבלות בפורמט DICOM, יסופק ערך placeholder שתואם לייצוג הערך (VR) של התג.
- כל ערך אחר שתואם לאחד מסוגי המידע (infoType) שמוגדרים כברירת מחדל ב-DICOM ב-Cloud Healthcare API מוחלף בסוג המידע שלו. לדוגמה,
אם התג
PatientCommentsהכיל את המחרוזת "Ann Johnson went to Anytown Hospital," אז המחרוזת "Anytown" תוחלף ב-LOCATIONinfoType.
בדוגמאות הבאות מוצגת הפלט של שימוש בDEIDENTIFY_TAG_CONTENTS
פרופיל ברירת המחדל במערך נתונים שמכיל מאגרי DICOM ונתוני DICOM. אפשר להשוות את פלט ברירת המחדל לפלטים שמתקבלים כשמשתמשים בשילובים שונים של סוגי מידע עם טרנספורמציות פרימיטיביות שונות. בדוגמאות נעשה שימוש במופע DICOM יחיד, אבל אפשר להסיר את הפרטים המזהים מכמה מופעים.
אחרי ששולחים את התמונה אל Cloud Healthcare API באמצעות פרופיל DEIDENTIFY_TAG_CONTENTS, התמונה מופיעה כך:
שימו לב לשינויים הבאים:
- השמות בפינה הימנית העליונה ובפינה השמאלית העליונה של התמונה עברו שינוי
באמצעות
CryptoHashConfig - התאריכים בפינה השמאלית העליונה ובפינה הימנית העליונה של התמונה עברו שינוי באמצעות
DateShiftConfig

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
RedactConfig
הגדרת redactConfig תגרום להסרת ערך נתון באופן מלא.
להודעה redactConfig אין ארגומנטים. ציון ההודעה מאפשר המרה.
בדוגמאות הבאות מוסבר על הגדרת ברירת המחדל, אבל הן כוללות עכשיו הגדרה של PERSON_NAME infoType עם redactConfig transform. שליחת הבקשה הזו תצנזר את כל השמות ממופע ה-DICOM.
אחרי ששולחים את התמונה ל-Cloud Healthcare API באמצעות הטרנספורמציה redactConfig, התמונה נראית כך:

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
בפלט אפשר לראות שהערכים ב-ReferringPhysicianName (00080090) וב-PatientName (00100010) הוסרו. זה שונה מהדוגמה בהגדרת ברירת המחדל, שבה הערכים האלה עברו טרנספורמציה באמצעות גיבוב קריפטוגרפי.
CharacterMaskConfig
הגדרה של characterMaskConfig מחליפה מחרוזות שתואמות ל-infoTypes שצוינו בתו קבוע שמוגדר. לדוגמה, במקום לצנזר את השם של המטופל או להפוך אותו באמצעות גיבוב קריפטוגרפי, אפשר להחליף את השם בסדרה של כוכביות (*). אפשר לציין את התו הקבוע כערך בשדה maskingCharacter.
בדוגמאות הבאות מוסבר על הגדרת ברירת המחדל, אבל הן כוללות עכשיו הגדרה של LAST_NAME infoType עם characterMaskConfig transform. לא צוין תו קבוע, ולכן ברירת המחדל של ההסתרה היא שימוש בכוכביות.
בדוגמאות נעשה שימוש במופע DICOM יחיד, אבל אפשר לבטל את הזיהוי של כמה מופעים.
אחרי ששולחים את התמונה ל-Cloud Healthcare API באמצעות הטרנספורמציה characterMaskConfig, התמונה נראית כך:

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
בפלט אפשר לראות שהשמות האחרונים ב-ReferringPhysicianName
(00080090) וב-PatientName (00100010) הוחלפו בכוכביות. זה שונה מהדוגמה בהגדרת ברירת המחדל, שבה הערכים האלה עברו טרנספורמציה באמצעות גיבוב קריפטוגרפי.
DateShiftConfig
ממשק Cloud Healthcare API יכול לשנות תאריכים על ידי הזזה שלהם בטווח מוגדר מראש. כדי לשמור על עקביות בהמרות של תאריכים בין הפעלות של הסרת פרטים מזהים, משתמשים ב-DateShiftConfig עם אחת מהאפשרויות הבאות:
- (Deprecated): מפתח גולמי בקידוד Base64 מסוג AES 128/192/256-bit.
- (מומלץ): מפתח עטוף של Cloud Key Management Service (Cloud KMS). במאמר הסרת פרטים מזהים והוספת פרטים מזהים לטקסט רגיש יש דוגמה לשימוש במפתחות עטופים של Cloud KMS.
כדי לפענח את המפתח העטוף של Cloud KMS, צריך להעניק תפקיד עם ההרשאה cloudkms.cryptoKeyVersions.useToDecrypt לחשבון השירות של סוכן השירות של Cloud Healthcare. מומלץ להשתמש בתפקיד Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter). כשמשתמשים ב-Cloud KMS לפעולות קריפטוגרפיות, חלים חיובים. מידע נוסף זמין במחירון של Cloud Key Management Service.
Cloud Healthcare API משתמש במפתח הזה כדי לחשב את ההפרש בין תאריכים, כמו תאריך הלידה של המטופל, בטווח של 100 ימים.
אם לא מספקים מפתח, Cloud Healthcare API יוצר מפתח משלו בכל פעם שמופעלת פעולת הסרת הפרטים המזהים בערכי תאריכים. התוצאה יכולה להיות תאריכים שונים בכל הרצה.
בדוגמאות הבאות מוצגות דרכים להגדיר את סוגי המידע DATE ו-DATE_OF_BIRTH באמצעות טרנספורמציה DateShiftConfig במופע DICOM. אחרי ששולחים את בקשת הסרת הפרטים המזהים אל Cloud Healthcare API, ערכי התאריך במופע ישתנו בטווח של פלוס או מינוס 100 ימים מהערכים המקוריים.
מפתח ההצפנה שסופק, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=, הוא מפתח גולמי בקידוד Base64 באורך 256 ביט, שהוצפן באמצעות AES ונוצר באמצעות הפקודה הבאה. כשמתבקשים, מספקים לפקודה סיסמה ריקה:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
אחרי ששולחים את התמונה ל-Cloud Healthcare API באמצעות הטרנספורמציה dateShiftConfig, התמונה נראית כך:

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
בפלט אפשר לראות שלמאפיינים StudyDate (00080020) ו-PatientBirthDate (00100030) יש ערכים חדשים. השינויים האלה התרחשו כתוצאה משילוב ההפרש של 100 הימים עם הערך cryptoKey שסופק. ערכי התאריך החדשים עקביים עבור המופע הזה בין הפעלות של הסרת הפרטים המזהים, כל עוד מסופק אותו cryptoKey.
CryptoHashConfig
אפשר להשאיר את השדה cryptoHashConfig ריק, או לספק בו את אחד מהערכים הבאים:
- (Deprecated): מפתח גולמי בקידוד Base64 מסוג AES 128/192/256-bit.
- (מומלץ): מפתח עטוף של Cloud Key Management Service (Cloud KMS). במאמר הסרת פרטים מזהים והוספת פרטים מזהים לטקסט רגיש יש דוגמה לשימוש במפתחות עטופים של Cloud KMS.
כדי לפענח את המפתח העטוף של Cloud KMS, צריך להעניק תפקיד עם ההרשאה cloudkms.cryptoKeyVersions.useToDecrypt לחשבון השירות של סוכן השירות של Cloud Healthcare. מומלץ להשתמש בתפקיד Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter). כשמשתמשים ב-Cloud KMS לפעולות קריפטוגרפיות, חלים חיובים. מידע נוסף זמין במחירון של Cloud Key Management Service.
ממשק Cloud Healthcare API יכול להמיר נתונים על ידי החלפת ערכים בגיבובים קריפטוגרפיים (שנקראים גם ערכי סרוגייט). כדי לעשות את זה, צריך לציין הודעה cryptoHashConfig.
אם לא מספקים מפתח, Cloud Healthcare API יוצר מפתח. מערכת Cloud Healthcare API משתמשת במפתח הזה כדי ליצור ערכי תחליף. אם מספקים את אותו מפתח לכל הרצה, Cloud Healthcare API יוצר ערכי סרוגייט עקביים. אם לא מספקים מפתח, Cloud Healthcare API יוצר מפתח חדש בכל פעם שהפעולה מופעלת. שימוש במפתח אחר יניב ערכי סרוגייט שונים.
בדוגמאות הבאות אפשר לראות איך להחיל טרנספורמציה cryptoHashConfig על כל סוגי המידע (infoType) של DICOM שמוגדרים כברירת מחדל ונתמכים ב-Cloud Healthcare API. אחרי שליחת הבקשה להסרת פרטים מזהים, הערכים עם סוג המידע התואם של DICOM ב-Cloud Healthcare API מוחלפים בערכי סרוגייט.
בדוגמה מוצג גם איך לספק מפתח הצפנה כדי ליצור ערכי סרוגייט עקביים בין הפעלות של הסרת פרטים מזהים.
מפתח ההצפנה שסופק, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=, הוא מפתח גולמי בקידוד Base64 באורך 256 ביט, שהוצפן באמצעות AES ונוצר באמצעות הפקודה הבאה. כשמתבקשים, מספקים לפקודה סיסמה ריקה:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
אחרי ששולחים את התמונה ל-Cloud Healthcare API באמצעות הטרנספורמציה cryptoHashConfig, התמונה נראית כך:

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
הטרנספורמציות בפלט עקביות עבור המופע הזה בין הרצות של הסרת הפרטים המזהים, כל עוד מסופק אותו cryptoKey.
ReplaceWithInfoTypeConfig
הגדרה של replaceWithInfoTypeConfig מחליפה את ערכי הקלט בשם של סוג המידע של הערך.
בדוגמאות הבאות אפשר לראות איך להחיל טרנספורמציה replaceWithInfoTypeConfig על כל סוגי המידע (infoType) של DICOM שמוגדרים כברירת מחדל ונתמכים ב-Cloud Healthcare API.
להודעה replaceWithInfoTypeConfig אין ארגומנטים, אבל ציון שלה מאפשר טרנספורמציה.
אחרי ששולחים את התמונה ל-Cloud Healthcare API באמצעות הטרנספורמציה replaceWithInfoTypeConfig, התמונה נראית כך:

REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
תוכן בקשת JSON:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה. - אחרי שהסרת הפרטים המזהים מסתיימת בהצלחה, אפשר לאחזר את המטא-נתונים של המופע שבו הוסרו הפרטים המזהים כדי לראות איך הם השתנו. למכונה שעברה הסרת פרטים מזהים יש מזהה UID חדש של מחקרים, מזהה UID חדש של סדרות ומזהה UID חדש של מכונות, ולכן קודם צריך לחפש את המכונה שעברה הסרת פרטים מזהים במערך הנתונים החדש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- SOURCE_DATASET_LOCATION: המיקום של מערך הנתונים של המקור
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
בעזרת הערכים החדשים, מאחזרים את המטא-נתונים של המכונה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- DESTINATION_DICOM_STORE_ID: המזהה של מאגר DICOM במערך נתוני היעד. המזהה הזה זהה למזהה של מאגר DICOM בקבוצת הנתונים של המקור.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט מכיל את המטא-נתונים החדשים. אפשר להשוות את המטא-נתונים החדשים למטא-הנתונים המקוריים כדי לראות את ההשפעה של השינוי.curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
הסרת פרטים מזהים מנתונים ברמת מאגר DICOM
בדוגמאות הקודמות אפשר לראות איך לבטל את הזיהוי של נתוני DICOM ברמת מערך הנתונים. בקטע הזה מוסבר איך לבטל את זיהוי הנתונים ברמת מאגר DICOM.
כדי לשנות בקשה להסרת פרטים מזהים ממערך נתונים לבקשה להסרת פרטים מזהים ממאגר DICOM, מבצעים את השינויים הבאים:
- משנים את הערך של
destinationDatasetבגוף הבקשה ל-destinationStore - הוספת
dicomStores/DESTINATION_DICOM_STORE_IDבסוף הערך ב-destinationStoreכשמציינים את היעד - הוספת
dicomStores/SOURCE_DICOM_STORE_IDכשמציינים את המיקום של נתוני המקור
לדוגמה:
הסרת פרטים מזהים ברמת מערך הנתונים:
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"
הסרת פרטים מזהים ברמת מאגר DICOM:
"destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID" ... "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
בדוגמאות הבאות מוסבר על שילוב של הסרת פרטים מזהים מתגים וטשטוש טקסט מוטבע, אבל הסרת הפרטים המזהים מתבצעת בחנות DICOM אחת והנתונים שהוסרו מהם הפרטים המזהים מועתקים לחנות DICOM חדשה. לפני שמריצים את הדוגמאות, מאגר ה-DICOM שאליו מתייחסת DESTINATION_DICOM_STORE_ID צריך כבר להתקיים.
המסוף
כדי להסיר את הפרטים המזהים מנתונים במאגר DICOM באמצעות מסוף Google Cloud , צריך לבצע את השלבים הבאים.
נכנסים לדף Datasets במסוף Google Cloud .
לוחצים על מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים.
ברשימת מאגרי DICOM, בוחרים באפשרות הסרת פרטים מזהים מתוך הרשימה פעולות של מאגר DICOM שרוצים להסיר ממנו פרטים מזהים.
מוצג הדף De-identify DICOM store (הסרת פרטים מזהים ממאגר DICOM).
בוחרים באפשרות Set destination data store (הגדרת מאגר נתונים של היעד) ובוחרים את מערך הנתונים ואת מאגר DICOM שבהם יישמרו הנתונים שעברו הסרת פרטים מזהים.
בוחרים באפשרות DICOM tag de-identification (הסרת פרטים מזהים מתג DICOM) כדי להגדיר איך המערכת תסיר את הפרטים המזהים מהנתונים. אפשר להסיר את הפרטים המזהים מהנתונים באופן הבא:
-
KEEP_ALL_PROFILE: שמירה של כל מטא התגים של DICOM -
DEIDENTIFY_TAG_CONTENTS: הסרת פרטי הזיהוי מנתונים בתגי מטא -
ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE: הסרת תגי מטא בהתאם לפרופיל הבסיסי בתקן DICOM -
MINIMAL_KEEP_LIST_PROFILE: משאירים רק את תגי ה-meta שנדרשים לאובייקט DICOM תקין - דילוג על הסרת פרטים מזהים: יצירה מחדש של שדות UID בהתאם לתקן DICOM
-
בוחרים באפשרות DICOM burnt-in text redaction כדי להגדיר איך מתבצעת צנזורה של תמונות במהלך הסרת הפרטים המזהים. אפשר להגדיר את הצנזורה של תמונות באופן הבא:
-
REDACT_NO_TEXT: לא לצנזר טקסט בתמונות -
REDACT_SENSITIVE_TEXT: צנזורה של טקסט רגיש בלבד בתמונות -
REDACT_ALL_TEXT: צנזורה של כל הטקסט בתמונות
-
לוחצים על הסרת פרטים מזהים כדי להסיר את הפרטים המזהים מהנתונים במאגר DICOM.
REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- SOURCE_DICOM_STORE_ID: המזהה של מאגר DICOM שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DICOM_STORE_ID: מזהה מאגר ה-DICOM במערך הנתונים של היעד
תוכן בקשת JSON:
{ "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.
ביטול הזיהוי של תת-קבוצה במאגר DICOM
אפשר להסיר את הפרטים המזהים מקבוצת משנה של נתונים במאגר DICOM על ידי ציון מסנן.
המסנן הוא קובץ מסנן שמציינים כערך בשדה resourcePathsGcsUri באובייקט DicomFilterConfig. קובץ המסנן חייב להיות קיים בקטגוריה של Cloud Storage. אי אפשר לציין קובץ מסנן שקיים במחשב המקומי או במקור אחר. המיקום של הקובץ צריך להיות בפורמט gs://BUCKET/PATH/TO/FILE.
יצירת קובץ מסנן
קובץ מסנן מגדיר אילו קובצי DICOM יבוצע בהם ביטול הזיהוי. אפשר לסנן קבצים ברמות הבאות:
- ברמת המחקר
- ברמת הסדרה
- ברמת המופע
קובץ המסננים מורכב משורה אחת לכל מחקר, סדרה או מופע שרוצים להסיר מהם את הפרטים המזהים. כל שורה צריכה להיות בפורמט /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]].
בסוף כל שורה יש תו מעבר לשורה חדשה: \n או \r\n.
אם לא מציינים מחקר, סדרה או מופע בקובץ המסננים שהועבר כשקוראים לפעולת הסרת הפרטים המזהים, המחקר, הסדרה או המופע לא יוסרו מהם הפרטים המזהים ולא יופיעו במאגר DICOM של היעד.
חובה לציין רק את החלק /studies/STUDY_UID בנתיב. כלומר, אפשר להסיר את הפרטים המזהים ממחקר על ידי ציון /studies/STUDY_UID, או להסיר את הפרטים המזהים מסדרה על ידי ציון /studies/STUDY_UID/series/SERIES_UID.
לדוגמה, קובץ המסנן הבא. קובץ הסינון גורם להסרת פרטי הזיהוי ממחקר אחד, משתי סדרות ומ-3 מקרים פרטניים:
/studies/1.123.456.789
/studies/1.666.333.111/series/123.456\n
/studies/1.666.333.111/series/567.890\n
/studies/1.888.999.222/series/123.456/instances/111\n
/studies/1.888.999.222/series/123.456/instances/222\n
/studies/1.888.999.222/series/123.456/instances/333\n
יצירת קובץ סינון באמצעות BigQuery
בדרך כלל יוצרים קובץ מסנן על ידי ייצוא המטא-נתונים מחנות DICOM ל-BigQuery. כך תוכלו להשתמש ב-BigQuery כדי לראות את מזהי ה-UID של המחקר, הסדרה והמופע של נתוני ה-DICOM בחנות ה-DICOM. לאחר מכן תוכלו לבצע את הפעולות הבאות:
שולחים שאילתה כדי לקבל את מזהי ה-UID של המחקר, הסדרה והמופע שמעניינים אתכם. לדוגמה, אחרי ייצוא המטא-נתונים ל-BigQuery, אפשר להריץ את השאילתה הבאה כדי לשרשר את ה-UID של המחקר, הסדרה והמופע לפורמט שתואם לדרישות של קובץ המסננים:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
אם השאילתה מחזירה קבוצת תוצאות גדולה, אפשר ליצור טבלה חדשה על ידי שמירת תוצאות השאילתה בטבלת יעד ב-BigQuery.
אחרי ששומרים את תוצאות השאילתה בטבלת היעד, אפשר לשמור את התוכן של טבלת היעד בקובץ ולייצא אותו ל-Cloud Storage. הוראות מפורטות מופיעות במאמר בנושא ייצוא נתונים מטבלה. הקובץ שייצאתם הוא קובץ המסנן. תשתמשו במיקום של קובץ הסינון ב-Cloud Storage כשמציינים את המסנן בפעולת הייצוא.
יצירה ידנית של קובץ מסנן
אתם יכולים ליצור קובץ מסנן עם תוכן בהתאמה אישית ולהעלות אותו לקטגוריה של Cloud Storage.
תשתמשו במיקום של קובץ המסנן ב-Cloud Storage כשמציינים את המסנן בפעולת הסרת הפרטים המזהים. בדוגמה הבאה מוצג איך להעלות קובץ מסנן לקטגוריה של Cloud Storage באמצעות הפקודה gcloud storage cp:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
לדוגמה:
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
שימוש במסנן
אחרי שמגדירים את קובץ הסינון, אפשר להעביר אותו כערך לשדה resourcePathsGcsUri באובייקט filterConfig.
בדוגמה הבאה מוסבר על הסרת פרטים מזהים מנתונים ברמת מאגר DICOM, אבל מסופק קובץ מסנן ב-Cloud Storage שקובע אילו משאבי DICOM יוסרו מהם פרטים מזהים.
REST
הסרת פרטי הזיהוי ממערך הנתונים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- SOURCE_DATASET_ID: מזהה מערך הנתונים שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DATASET_ID: המזהה של מערך הנתונים של היעד שאליו נכתבים הנתונים שעברו הסרת פרטים מזהים
- SOURCE_DICOM_STORE_ID: המזהה של מאגר DICOM שמכיל את הנתונים שרוצים להסיר מהם את הפרטים המזהים
- DESTINATION_DICOM_STORE_ID: מזהה מאגר ה-DICOM במערך הנתונים של היעד
- BUCKET/PATH/TO/FILE: המיקום של קובץ הסינון בקטגוריה של Cloud Storage
תוכן בקשת JSON:
{ "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.curl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content- כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.
פתרון בעיות בפעולות להסרת פרטי הזיהוי ב-DICOM
אם מתרחשות שגיאות במהלך פעולת הסרת פרטים מזהים ב-DICOM, השגיאות נרשמות ביומן ב-Cloud Logging. מידע נוסף זמין במאמר צפייה ביומני שגיאות ב-Cloud Logging.
אם כל הפעולה מחזירה שגיאה, אפשר לעיין במאמר בנושא פתרון בעיות בפעולות ארוכות טווח.