Quotas et limites

L'API Cloud Healthcare impose des limites à l'utilisation des ressources pour différentes raisons. Il s'agit, par exemple, de préserver la communauté des utilisateurs de Google Cloud en empêchant les pics d'utilisation imprévus. Des quotas d'essai gratuit sont également proposés dans Google Cloud. Ils offrent un accès limité aux utilisateurs qui souhaitent explorer Google Cloud, y compris l'API Cloud Healthcare.

Les quotas de l'API Cloud Healthcare sont fixés par projet pour chaque région ou emplacement multirégional. Si vous épuisez votre quota pour une région donnée, l'utilisation de l'API Cloud Healthcare dans les autres régions n'est pas affectée.

Vérifier vos quotas et votre utilisation

Les quotas sont des limites qui s'appliquent au stockage (également appelées "limites d'entrée") et aux opérations.

Pour vérifier les quotas disponibles pour les ressources de votre projet, accédez à la page Quotas de la console Google Cloud.

Pour afficher uniquement les quotas de l'API Cloud Healthcare, sélectionnez Service dans la liste déroulante Table de filtrage, puis API Cloud Healthcare.

Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que votre utilisation de l'API Cloud Healthcare s'accroît, les quotas peuvent augmenter en conséquence. Si vous prévoyez une augmentation notable de votre utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quota sur la page Quotas de la console Google Cloud. Aucuns frais ne s'appliquent lorsque vous demandez une augmentation de quota. Vos coûts n'augmentent que si vous utilisez plus de ressources.

Limites de ressources

L'API Cloud Healthcare limite la taille du contenu d'une requête, par exemple la taille d'une image radio dans une requête DICOM. Vous ne pouvez pas demander la modification d'une limite imposée à une ressource. Toutefois, dans certaines situations, vous pouvez effectuer une opération d'importation pour importer un contenu excédant la limite imposée à une ressource.

Le tableau ci-dessous indique les limites imposées aux ressources et sujettes à modification.

Modalité Taille limite des requêtes
DICOM
  • Transaction en magasin: illimitée. Toutes les autres méthodes : 10 Mo.
  • Opérations Store transaction ou Retrieve transaction : le délai d'inactivité expire si l'opération dure plus d'une heure.
  • Les méthodes Search transaction ont un décalage maximal de 1 000 000 de résultats, ainsi qu'une limite de 5 000 résultats pour les études/séries et 50 000 pour les instances.
  • Anonymisation : l'anonymisation ne peut pas traiter les fichiers DICOM d'une taille supérieure à 1 Go en cas de masquage de pixels.
  • Les fichiers DICOM ingérés ne doivent pas dépasser 2 Go par tag. Cette limite inclut les données PixelData encodées au format natif.
  • Lors du transcodage de données DICOM, la taille du fichier ne doit pas dépasser 1 Go, et la taille de trame ne doit pas dépasser 150 Mo.
  • dicomStores.import : la taille maximale du fichier est de 20 Go.
FHIR executeBundle : 50 Mo. Autres méthodes : 10 Mo
HL7v2 10 Mo

Si vous tentez de traiter un contenu plus volumineux que la limite autorisée pour la ressource, une erreur se produit.

Utiliser des opérations d'importation pour les contenus excédant les limites de ressources

Les opérations d'importation vous permettent de traiter des contenus dont la taille est supérieure à la limite imposée aux ressources. Lors d'une opération d'importation, la taille du contenu n'est limitée que par la taille de stockage maximale de 5 To autorisée pour les objets individuels sur Google Cloud. Les opérations d'importation sont soumises à des quotas de stockage qui déterminent leur durée. Vous pouvez effectuer une opération d'importation si vous souhaitez, par exemple, stocker de nombreuses instances DICOM dans un datastore DICOM, sans être soumis à la limite de taille des requêtes. Au lieu d'importer les instances au moyen des méthodes Store Transaction disponibles, vous pouvez les importer dans un bucket Cloud Storage, puis les importer dans le datastore DICOM.

Pour connaître les étapes détaillées de l'importation de données DICOM au moyen d'une opération d'importation, consultez la page Importer et exporter des données DICOM à l'aide de Cloud Storage.

Pour connaître les étapes détaillées de l'importation de ressources FHIR au moyen d'une opération d'importation, consultez la page Importer et exporter des ressources FHIR à l'aide de Cloud Storage.

Pour connaître les étapes détaillées de l'importation de messages HL7v2 au moyen d'une opération d'importation, consultez la page Importer des messages HL7v2 à partir de Cloud Storage.

Demander la modification d'un quota

Pour demander la modification d'un quota, vous devez disposer de l'autorisation serviceusage.quotas.update. Elle est incluse par défaut pour les rôles prédéfinis suivants : propriétaire, éditeur et administrateur de quotas.

  1. Accédez à la page Quotas.

    Accéder à la section "Quotas"

  2. Sur la page Quotas, sélectionnez les quotas que vous souhaitez modifier. Si vous souhaitez afficher uniquement les quotas de l'API Cloud Healthcare, cliquez sur Service dans la liste déroulante Filtrer le tableau, puis sélectionnez API Cloud Healthcare.

  3. Cochez les cases correspondant aux quotas que vous souhaitez modifier.

  4. En haut de la page, cliquez sur le bouton Modifier les quotas.

  5. Remplissez le formulaire et cliquez sur Suivant.

  6. Saisissez les limites que vous souhaitez, puis cliquez sur Suivant.

  7. Cliquez sur Envoyer la requête.

Par défaut, les demandes de réduction de quota sont refusées. Si vous souhaitez réduire votre quota, répondez à l'e-mail de l'assistance en précisant vos besoins. Un conseiller répondra à votre demande.

Vous recevrez une réponse de l'équipe API Cloud Healthcare dans les 24 à 48 heures suivant votre demande.

Prévoyez une demande de ressources supplémentaires au moins quelques jours à l'avance pour qu'elle soit traitée en temps voulu.

Limites de quota

Les sections suivantes décrivent les quotas associés aux datastores et aux opérations de l'API Cloud Healthcare.

Quotas DICOM

Le tableau suivant décrit les quotas de l'API Cloud Healthcare associés aux magasins DICOM et aux opérations DICOM.

Nom de la métrique Nom à afficher Description
dicomweb_ops Nombre d'opérations DICOMweb par minute et par région Inclut les méthodes suivantes :
  • Toutes les méthodes projects.locations.datasets.dicomStores.studies dans v1beta1 et v1
  • Toutes les méthodes projects.locations.datasets.dicomStores.studies.series dans v1beta1 et v1
  • Toutes les méthodes projects.locations.datasets.dicomStores.studies.series.instances dans v1beta1 et v1
  • Toutes les méthodes projects.locations.datasets.dicomStores.studies.series.instances.frames dans v1beta1 et v1
dicom_structured_storage_bytes Entrée de stockage DICOM structurée en octets par minute et par région Octets structurés, sous la forme de tags DICOM et de métadonnées associées, envoyés à l'API Cloud Healthcare lors du traitement des opérations dicomweb_ops.
dicom_store_ops Nombre d'opérations de magasin DICOM par minute et par région Opérations sur le magasin DICOM, et non sur les données DICOM. Inclut les méthodes suivantes:
dicom_store_lro_ops Nombre d'opérations de longue durée du magasin DICOM par minute et par région Opérations sur le magasin DICOM, et non sur des données DICOM, qui renvoient une opération de longue durée. Inclut les méthodes suivantes:
dicom_structured_storage_operations_bytes Entrée de stockage DICOM structurée pour les opérations de longue durée en octets par minute et par région Octets structurés, sous la forme de tags DICOM et de métadonnées associées, envoyés à l'API Cloud Healthcare lors du traitement des opérations dicom_store_lro_ops.

Quotas FHIR

Le tableau suivant décrit les quotas de l'API Cloud Healthcare associés aux magasins FHIR et aux opérations FHIR.

Nom de la métrique Nom à afficher Description
fhir_ops Nombre d'opérations FHIR par minute et par région Valeur exprimée en unités, chaque unité correspondant à une requête envoyée à n'importe quelle méthode projects.locations.datasets.fhirStores.fhir dans v1beta1 et v1.
fhir_read_ops Nombre d'opérations de lecture FHIR par minute et par région Mesurée en unités, où une unité correspond à une requête de lecture sur une ressource FHIR individuelle.

Inclut les méthodes suivantes:

v1beta1: v1:
fhir_write_ops Nombre d'opérations d'écriture FHIR par minute et par région Mesurée en unités, où une unité correspond à une requête de création, de mise à jour ou de suppression sur une ressource FHIR individuelle.

Inclut les méthodes suivantes:

v1beta1: v1:
fhir_search_ops Nombre d'opérations de recherche FHIR par minute et par région Mesurée en unités, où une unité est une requête de recherche sur un type de ressource FHIR pour laquelle la recherche ne nécessite pas de résoudre les références, sauf lorsque _include est utilisé. Par exemple, une recherche Observation?subject:Patient.identifier=system|value consomme deux unités de quota fhir_search_ops, car elle nécessite deux recherches, l'une sur la ressource Observation et l'autre sur la ressource Patient, en utilisant subject comme référence.

Inclut les méthodes suivantes:

v1beta1: v1:
fhir_storage_egress_bytes Sortie du stockage FHIR en octets par minute et par région Valeur exprimée en unités, où une unité correspond à un octet lu par l'API Cloud Healthcare lors du traitement des opérations fhir_read_ops, fhir_write_ops et fhir_search_ops.
fhir_storage_bytes Entrée de stockage FHIR en octets par minute et par région Octets envoyés à l'API Cloud Healthcare lors du traitement des opérations fhir_ops.
fhir_store_ops Nombre d'opérations du store FHIR par minute et par région Opérations sur le store FHIR, et non sur les données FHIR.

Inclut les méthodes suivantes:
fhir_store_lro_ops Nombre d'opérations de longue durée du store FHIR par minute et par région Opérations sur le store FHIR, et non sur les données FHIR, qui renvoient une opération de longue durée.

Inclut les méthodes suivantes:
fhir_storage_operations_bytes Entrée de stockage FHIR pour les opérations de longue durée en octets par minute et par région Octets envoyés à l'API Cloud Healthcare lors du traitement des opérations fhir_store_lro_ops.

Une même requête peut consommer plusieurs unités de quota. Par exemple, une requête de recherche GET utilisant Observation?subject:Patient.identifier=system|value comme paramètre de recherche consomme deux unités de quota fhir_search_ops. Deux opérations de recherche sont effectuées, l'une sur la ressource Observation et l'autre sur la ressource Patient, en utilisant le subject comme référence.

Si une requête de suppression conditionnelle utilisant Observation?status=canceled comme critère de recherche recherche et supprime six ressources d'observation, les unités de quota suivantes sont consommées:

  • Une unité de quota fhir_search_ops, car la requête de recherche GET n'est effectuée que sur un seul type de ressource FHIR : la ressource Observation. La requête renvoie toutes les ressources Observation correspondant aux critères de recherche.
  • Six unités de quota fhir_write_ops, car il y a un total de six opérations DELETE sur les ressources d'observation supprimées.

Exécuter la consommation de quota du bundle

Pour envoyer une requête d'exécution de groupe, quel que soit le quota utilisé par la requête, votre projet Google Cloud doit disposer d'au moins une unité disponible pour chacun des quotas suivants:

  • fhir_read_ops
  • fhir_write_ops
  • fhir_search_ops

Si ces quotas ne sont pas disponibles, la demande d'exécution de bundle échoue.

Par exemple, si vous envoyez une requête fhir.executeBundle avec un lot de transactions contenant 100 opérations POST, chacune d'entre elles créant une ressource FHIR, l'API Cloud Healthcare vérifie d'abord qu'au moins une unité de quota est disponible pour fhir_read_ops, fhir_write_ops et fhir_search_ops. Si la vérification réussit, l'API Cloud Healthcare exécute le bundle et crée les ressources FHIR, qui consomment au total 100 unités de quota fhir_write_ops.

Prenons l'exemple du bundle de transactions suivant, qui utilise une référence conditionnelle pour créer une ressource Observation si reference existe:

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "request": {
        "method": "POST",
        "url": "Observation"
      },
      "resource": {
        "resourceType": "Observation",
        "subject": {
          "reference": "Patient?identifier=a1b2c3d4e5"
        }
      }
    }
  ]
}

Lorsque vous exécutez le bundle, l'API Cloud Healthcare vérifie d'abord qu'au moins une unité de quota est disponible pour fhir_read_ops, fhir_write_ops et fhir_search_ops. Si la vérification réussit, l'API Cloud Healthcare exécute le groupe. Les unités de quota suivantes sont consommées:

  • Un élément fhir_write_ops pour créer la ressource Observation.
  • Une valeur fhir_search_ops, car une seule opération de recherche est effectuée sur la référence Patient?identifier=a1b2c3d4e5.