Löschen einer FHIR-Ressource - AWS HealthLake

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Löschen einer FHIR-Ressource

Die delete FHIR-Interaktion entfernt eine vorhandene FHIR-Ressource aus einem HealthLake Datenspeicher. Weitere Informationen finden Sie deletein der FHIR RESTful R4-API-Dokumentation.

Um eine FHIR-Ressource zu löschen

  1. Sammeln HealthLake region und bewertendatastoreId. Weitere Informationen finden Sie unter Eigenschaften des Datenspeichers abrufen.

  2. Ermitteln Sie den FHIR-Typ, der gelöscht Resource werden soll, und erfassen Sie den zugehörigen id Wert. Weitere Informationen finden Sie unter Ressourcentypen.

  3. Konstruieren Sie mithilfe der gesammelten Werte für HealthLake region und datastoreId eine URL für die Anfrage. Geben Sie auch den Resource FHIR-Typ und den zugehörigen id Typ an. Scrollen Sie über die Schaltfläche Kopieren, um den gesamten URL-Pfad im folgenden Beispiel anzuzeigen.

    DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
  4. Senden Sie die Anforderung . Die delete FHIR-Interaktion verwendet eine DELETE Anfrage mit entweder AWS Signature Version 4 oder SMART bei der FHIR-Autorisierung. Im folgenden curl Beispiel wird eine vorhandene Patient FHIR-Ressource aus einem HealthLake Datenspeicher entfernt. Scrollen Sie über die Schaltfläche Kopieren, um das gesamte Beispiel anzuzeigen.

    SigV4

    SigV4-Autorisierung

    curl --request DELETE \ 'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id' \ --aws-sigv4 'aws:amz:region:healthlake' \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ --header "x-amz-security-token:$AWS_SESSION_TOKEN" \ --header 'Accept: application/json'

    Der Server gibt einen 204 HTTP-Statuscode zurück, der bestätigt, dass die Ressource aus dem HealthLake Datenspeicher entfernt wurde. Wenn eine Löschanforderung fehlschlägt, erhalten Sie eine 400 Reihe von HTTP-Statuscodes, die angeben, warum die Anforderung fehlgeschlagen ist.

    SMART on FHIR

    SMART on FHIR-Autorisierungsbeispiel für den IdentityProviderConfigurationDatentyp.

    { "AuthorizationStrategy": "SMART_ON_FHIR", "FineGrainedAuthorizationEnabled": true, "IdpLambdaArn": "arn:aws:lambda:your-region:your-account-id:function:your-lambda-name", "Metadata": "{\"issuer\":\"https://ehr.example.com\", \"jwks_uri\":\"https://ehr.example.com/.well-known/jwks.json\",\"authorization_endpoint\":\"https://ehr.example.com/auth/authorize\",\"token_endpoint\":\"https://ehr.token.com/auth/token\",\"token_endpoint_auth_methods_supported\":[\"client_secret_basic\",\"foo\"],\"grant_types_supported\":[\"client_credential\",\"foo\"],\"registration_endpoint\":\"https://ehr.example.com/auth/register\",\"scopes_supported\":[\"openId\",\"profile\",\"launch\"],\"response_types_supported\":[\"code\"],\"management_endpoint\":\"https://ehr.example.com/user/manage\",\"introspection_endpoint\":\"https://ehr.example.com/user/introspect\",\"revocation_endpoint\":\"https://ehr.example.com/user/revoke\",\"code_challenge_methods_supported\":[\"S256\"],\"capabilities\":[\"launch-ehr\",\"sso-openid-connect\",\"client-public\",\"permission-v2\"]}" }

    Der Anrufer kann im Autorisierungs-Lambda Berechtigungen zuweisen. Weitere Informationen finden Sie unter OAuth 2.0-Bereiche.

    AWS Console

    1. Melden Sie sich auf der Seite „Abfrage ausführen“ in der HealthLake Konsole an.

    2. Treffen Sie im Abschnitt Abfrageeinstellungen die folgenden Optionen.

    • Datenspeicher-ID — Wählen Sie eine Datenspeicher-ID aus, um eine Abfragezeichenfolge zu generieren.

    • Abfragetyp — wählen SieDelete.

    • Ressourcentyp — Wählen Sie den zu löschenden FHIR-Ressourcentyp aus.

    • Ressourcen-ID — geben Sie die FHIR-Ressourcen-ID ein.

    3. Wählen Sie Abfrage ausführen.

Löschen von FHIR-Ressourcen auf der Grundlage von Bedingungen

Bedingtes Löschen ist besonders nützlich, wenn Sie die spezifische FHIR-Ressourcen-ID nicht kennen, aber über andere identifizierende Informationen zu der Ressource verfügen, die Sie löschen möchten.

Mit dem bedingten Löschen können Sie eine vorhandene Ressource anhand von Suchkriterien und nicht anhand der logischen FHIR-ID löschen. Wenn der Server die Löschanforderung verarbeitet, führt er eine Suche mithilfe von Standardsuchfunktionen für den Ressourcentyp durch, um eine einzelne logische ID für die Anforderung aufzulösen.

So funktioniert bedingtes Löschen

Die Aktion des Servers hängt davon ab, wie viele Treffer er findet:

  1. Keine Treffer: Der Server versucht einen normalen Löschvorgang und reagiert entsprechend (404 Not Found für eine nicht existierende Ressource, 204 Kein Inhalt für bereits gelöschte Ressource)

  2. Eine Übereinstimmung: Der Server führt eine normale Löschung der entsprechenden Ressource durch

  3. Mehrere Treffer: Gibt den Fehler 412 Precondition Failed zurück, der darauf hinweist, dass die Kriterien des Clients nicht selektiv genug waren

Reaktionsszenarien

AWS HealthLake verarbeitet bedingte Löschvorgänge mit den folgenden Antwortmustern:

Erfolgreiche Operationen

  • Wenn Ihre Suchkriterien erfolgreich eine einzelne aktive Ressource identifizieren, gibt das System nach Abschluss des Löschvorgangs 204 Kein Inhalt zurück, genau wie bei Standardlöschvorgängen.

ID-basiertes bedingtes Löschen

Beim Ausführen eines bedingten Löschvorgangs auf der id Grundlage zusätzlicher Parameter (createdAt,tag, oder_lastUpdated):

  • 204 Kein Inhalt: Die Ressource wurde bereits gelöscht

  • 404 Nicht gefunden: Die Ressource existiert nicht

  • 409 Konflikt: Die ID stimmt überein, aber andere Parameter stimmen nicht überein

Non-ID-Based Bedingtes Löschen

Wenn nicht id angegeben oder wenn andere Parameter verwendet werden alscreatedAt,tag, oder_lastUpdated:

  • 404 Nicht gefunden: Keine Treffer gefunden

Konfliktsituationen

Verschiedene Szenarien führen zu den Antworten 412 Precondition Failed:

  • Mehrere Ressourcen entsprechen Ihren Suchkriterien (die Kriterien sind nicht spezifisch genug)

  • Versionskonflikte bei der Verwendung von ETag Headern mit If-Match

  • Ressourcenaktualisierungen, die zwischen Such- und Löschvorgängen auftreten

Beispiel für ein erfolgreiches bedingtes Löschen

Im folgenden Beispiel wird eine Patientenressource anhand bestimmter Kriterien gelöscht:

DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?name=peter&birthdate=2000-01-01&phone=1234567890

Mit dieser Anfrage wird eine Patientenressource gelöscht, wobei:

  • Der Name ist „Peter“

  • Geburtsdatum ist der 1. Januar 2000

  • Die Telefonnummer ist 1234567890

Bewährte Methoden

  1. Verwenden Sie spezifische Suchkriterien, um Mehrfachübereinstimmungen und 412-Fehler zu vermeiden.

  2. Ziehen Sie ETag Header für die Versionskontrolle in Betracht, wenn dies für gleichzeitige Änderungen erforderlich ist.

  3. Gehen Sie angemessen mit Fehlerreaktionen um:

    • Für 404: Verfeinern Sie Ihre Suchkriterien

    • Für 412: Spezifizieren Sie die Kriterien oder lösen Sie Versionskonflikte

  4. Bereiten Sie sich auf Zeitkonflikte in Umgebungen mit hoher Parallelität vor, in denen Ressourcen zwischen Such- und Löschvorgängen geändert werden können.