Запрос ExportDicomData API Google Cloud Healthcare для учебников GitHub никогда не завершается
Я пробую AutoML Vision of ML Codelabs в учебниках по GitHub API Cloud Healthcare. https://github.com/GoogleCloudPlatform/healthcare/blob/master/imaging/ml_codelab/breast_density_auto_ml.ipynb
Я запустил код ячейки данных Export DICOM в разделе "Преобразовать DICOM в JPEG", и запрос, а также весь исходный код ячейки были выполнены успешно.
Но ожидание завершения операции истекло и никогда не заканчивается. (Состояние запроса ExportDicomData на странице набора данных остается "Работающим" в течение дня. Я делал много раз, но все запросы были сложены, оставаясь "Работающими". Несколько раз я пытался сделать это с нуля, и результаты были такими же.)
Я сделал так далеко:
1) Удалите "output_config", поскольку происходит ошибка INVALID ARGUMENT. https://github.com/GoogleCloudPlatform/healthcare/issues/133
2) Включить Cloud Resource Manager API, поскольку это необходимо.
Это код ячейки.
# Path to export DICOM data.
dicom_store_url = os.path.join(HEALTHCARE_API_URL, 'projects', project_id, 'locations', location, 'datasets', dataset_id, 'dicomStores', dicom_store_id)
path = dicom_store_url + ":export"
# Headers (send request in JSON format).
headers = {'Content-Type': 'application/json'}
# Body (encoded in JSON format).
# output_config = {'output_config': {'gcs_destination': {'uri_prefix': jpeg_folder, 'mime_type': 'image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50'}}}
output_config = {'gcs_destination': {'uri_prefix': jpeg_folder, 'mime_type': 'image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50'}}
body = json.dumps(output_config)
resp, content = http.request(path, method='POST', headers=headers, body=body)
assert resp.status == 200, 'error exporting to JPEG, code: {0}, response: {1}'.format(resp.status, content)
print('Full response:\n{0}'.format(content))
# Record operation_name so we can poll for it later.
response = json.loads(content)
operation_name = response['name']
Это результат ожидания.
Waiting for operation completion...
Full response:
{
"name": "projects/my-datalab-tutorials/locations/us-central1/datasets/sample-dataset/operations/18300485449992372225",
"metadata": {
"@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
"apiMethodName": "google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData",
"createTime": "2019-08-18T10:37:49.809136Z"
}
}
AssertionErrorTraceback (most recent call last)
<ipython-input-18-1a57fd38ea96> in <module>()
21 timeout = time.time() + 10*60 # Wait up to 10 minutes.
22 path = os.path.join(HEALTHCARE_API_URL, operation_name)
---> 23 _ = wait_for_operation_completion(path, timeout)
<ipython-input-18-1a57fd38ea96> in wait_for_operation_completion(path, timeout)
15
16 print('Full response:\n{0}'.format(content))
---> 17 assert success, "operation did not complete successfully in time limit"
18 print('Success!')
19 return response
AssertionError: operation did not complete successfully in time limit
Версия API v1beta1.
Мне было интересно, есть ли у кого-нибудь предложение.
Спасибо.
1 ответ
Было недавнее обновление кодовых таблиц. Сообщение об ошибке связано с тайм-аутом в кодовой таблице, а не с фактической операцией. Это было исправлено в обновлении. Пожалуйста, дайте мне знать, если у вас по-прежнему возникают какие-либо проблемы!
После того, как несколько раз продолжал пытаться и продолжал бежать одну ночь, это наконец-то получилось. Я не знаю почему.