Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med funktionen massborttagning kan du ta bort resurser från en FHIR-tjänst® asynkront. FHIR-tjänsten stöder funktioner för massborttagning med två åtgärder: $bulk-delete och $bulk-delete-soft-deleted. Åtgärden $bulk-delete tar bort resurser i FHIR-tjänsten, med undantag för mjukt borttagna resurser. Om du vill ta bort mjukt raderade FHIR-resurser använder du åtgärden $bulk-delete-soft-deleted.
Konfigurera rubriker och roller för massborttagning
Rubriker
Parametrar för massborttagning av kapacitetshuvudparametrar är:
Acceptera: application/fhir+json
Föredrar: respond-async
Krav för rollen
-
FHIR Data WriterTilldela rollen till en användare eller ett program för att utföra massborttagningsfunktionen. - Tilldela rollen
FHIR Data Contributortill en användare eller ett program för att utföra massborttagningsfunktion med en hårdborttagningsfrågeparameter och massborttagning av mjukt borttagna resurser.
Information om massborttagningsåtgärd
$bulk-delete åtgärd
Du kan köra åtgärden $bulk-delete på systemnivå eller för enskilda resurstyper.
Systemnivå: När du kör åtgärden på systemnivå kan du ta bort FHIR-resurser över alla resurstyper på FHIR-servern.
DELETE [base]/$bulk-deleteEnskilda resurstyper: När du kör åtgärden för enskilda resurstyper kan du ta bort FHIR-resurser som mappas till resurstypen i URL:en.
DELETE [base]/<Resource Type>/$bulk-delete
Anmärkning
Använd operationen $bulk-delete med försiktighet. Du kan inte återställa borttagna resurser. Kör en FHIR-sökning med samma parametrar som massborttagningsjobbet för att verifiera de data som du vill ta bort.
Parametrar för massborttagning
Parametrar låter dig kontrollera beteendet för bulk-borttagningsoperationen och filtrera de resurser som raderas. Använd dessa parametrar för att ange om borttagningen är mjuk eller hård, om historiken ska rensas, vissa resurstyper ska uteslutas, referenser tas bort och filtreras resurser genom att använda FHIR-sökparametrar.
| Parameter | Standardvärde | Beskrivning |
|---|---|---|
| _hardDelete | Falsk | Tar bort en resurs permanent. Om du inte skickar den här parametern eller är inställd hardDelete på false tar åtgärden endast bort resursen mjukt. |
| _purgeHistory | Falsk | Tar bort historikversioner som är associerade med resursen. Den tar inte bort den aktuella versionen av resursen och mjukt borttagna resurser. Obs! När du använder _purgeHistory med parametern inställd på _hardDelete true tas alla versioner som är associerade med resursen bort permanent. |
| excludedResourceTypes | tom | Undantar angivna resurstyper (kommaavgränsade) från att tas bort i en massborttagningsbegäran. Tar till exempel DELETE [base]/$bulk-delete?excludedResourceTypes=patient,observation bort alla resurser på din FHIR-server, förutom resurstyperna Patient och Observation. |
| _remove-referenser | Falsk | Tar bort referenser till resurser som tas bort. Du måste använda den här parametern med _hardDelete=true. När du har använt den här parametern för att ta bort referenser ersätts de borttagna referenserna med följande värde: “display”: “Referenced resource deleted”. Tar till exempel DELETE [base]/Patient/$bulk-delete?_remove-references=true&_hardDelete=true massivt bort alla patientresurser och tar bort referenser till dessa patienter från andra resurser. Så om en observationsresurs refererar till en borttagen patientresurs ersätts referensen till den patienten, som tidigare "subject": { "reference": "Patient/example-patient-id", }var , med "subject": { "display": "Referenced resource deleted" }. |
| _not refererad | tom |
_not-referenced Använd sökparametern för att söka efter resurser som inga andra resurser refererar till. I följande avsnitt finns fler exempel på hur du använder sökparametrar som stöds av FHIR-tjänsten. |
| Sökparametrar som stöds av FHIR-tjänsten | Ange sökvillkor. Åtgärden tar bort resurser som matchar sökvillkoren. Till exempel: address:contains=Meadow subject:Patient.birthdate=1987-02-20. I följande avsnitt finns fler exempel på hur du använder sökparametrar som stöds av FHIR-tjänsten, inklusive hur du använder _include och _revinclude använder massborttagning med referenser, och _not-referenced för att söka efter resurser som inte refereras till av andra resurser. |
Alla parametrar är valfria.
Använd massborttagning med FHIR-sökparametrar
Åtgärden $bulk-delete stöder användning av sökparametrar som stöds av FHIR-tjänsten som frågeparametrar. Singulära borttagningar stöder inte extra parametrar. När du använder massborttagning med FHIR-sökparametrar bör du överväga att använda samma fråga i en FHIR-sökning först, så att du kan verifiera de data som du vill ta bort.
Massborttagning av resurser med referenser
Använd $bulk-delete med _include och _revinclude för att massradera resurser som har referenser. Mer information om _include och _revinclude som sökresultatparametrar finns i Inkludera och RevInclude.
Här är några exempel på hur du använder $bulk-delete med _include och _revinclude:
I följande exempel används _revinclude för att massradera alla patientresurser som senast uppdaterades före den 18 december 2021 och alla resurser som refererar till dessa patienter:
DELETE [base]/Patient/$bulk-delete?_lastUpdated=lt2021-12-18&_revinclude=*:*
I följande exempel används _include för att massradera alla DiagnosticReport-resurser som senast uppdaterades före den 18 december 2021 och alla ServiceRequest-resurser som refereras av dessa DiagnosticReport-resurser (via DiagnosticReport.basedOn-relationen) och alla Encounter-resurser som refereras av dessa ServiceRequest-resurser (via ServiceRequest.encounters-relationen):
DELETE [base]/DiagnosticReport/$bulk-delete?_lastUpdated=lt2021-12-12&_include=DiagnosticReport:based-on:ServiceRequest&_include:iterate=ServiceRequest:encounter
Massborttagning av resurser som inte refereras
Anmärkning
Funktionen _not-referenced är endast tillgänglig i Azure Health Data Services FHIR Server och är inte tillgänglig i Azure API för FHIR.
Genom att använda $bulk-delete med parametern _not-referenced kan du söka efter och ta bort resurser som ingen annan resurs refererar till.
I det här exemplet tas alla patientresurser bort, som inga mötesresurser listar som ett ämne.
DELETE [base]/Patient/$bulk-delete?_not-referenced=Encounter:subject
Detta exempel tar bort alla patientresurser som inte är refererade till av mötesresurser i något fält.
DELETE [base]/Patient/$bulk-delete?_not-referenced=Encounter:*
I det här exemplet tas alla patientresurser bort som inte refereras av mötesresurser och diagnostikrapporter.
DELETE [base]/Patient/$bulk-delete?_not-referenced=Encounter:subject&_not-referenced=DiagnosticReport:subject
Detta exempel raderar alla patientresurser som ingen annan resurs refererar till.
DELETE [base]/Patient/$bulk-delete?_not-referenced=*:*
$bulk-delete-soft-deleted åtgärd
Om du vill ta bort mjukt borttagna resurser i en FHIR-tjänst använder du åtgärden $bulk-delete-soft-deleted . Du kan köra den här åtgärden på systemnivå eller för enskilda resurstyper.
Förstå massborttagningsåtgärdssvar
När du har begärt massborttagning av FHIR-resurser får du ett Content-Location-huvud med den absoluta URL:en för en slutpunkt för efterföljande statusförfrågningar, till exempel en pollningsslutpunkt.
Slutpunkt för avsökning
En begäran till pollningsslutpunkten returnerar ett av fyra resultat beroende på status för bulk-borttagningsjobbet. FHIR-svarets OperationOutcome ger resultatet.
Pågående jobb: Det här resultatet anger att jobbet pågår. Statuskod 202.
Slutförd: Det här resultatet anger att jobbet har slutförts. När du är klar innehåller svaret information om antalet resurser som tagits bort på den enskilda resurstypsnivån. Statuskod 200.
Avbröt: Det här resultatet anger att användaren avbröt jobbet och tillhandahåller information om antalet resurser som tagits bort på den enskilda resursnivån. Statuskod 200.
Misslyckades: Det här resultatet anger att jobbet misslyckades. Statuskoden beror på feltypen.
Exempel på begäran och svar för att fastställa statusbegäran:
{{fhir_url}}/_operations/bulk-delete/<job id>
Här är ett exempelsvar för ett borttagningsjobb som har slutförts:
{
"resourceType": "Parameters",
"parameter": [
{
"name": "ResourceDeletedCount",
"part": [
{
"name": "Practitioner",
"valueInteger64": 10.0
},
{
"name": "Specimen",
"valueInteger64": 7.0
},
{
"name": "Device",
"valueInteger64": 3.0
}
]
}
]
}
Felmeddelanden
Här är en lista över felmeddelanden som kan inträffa om massborttagningen misslyckas.
| HTTP-statuskod | Detaljer | Rekommenderad åtgärd |
|---|---|---|
| 500 | Anslutningen till databasen misslyckades | Lös problemet genom att skapa ett Get Support-ärende. |
| 429 | Begränsningsfel | För Azure API för FHIR kan du öka RU:er och försöka utföra jobbet igen. För Azure Health Data Services FHIR Server kan du försöka ta bort en mindre mängd data i taget. |
Vanliga frågor
Vilka är stegen för lösning om mitt massborttagningsjobb verkar ha fastnat?
Om du vill kontrollera om ett massborttagningsjobb har fastnat kör du en FHIR-sökning med samma parametrar som massborttagningsjobbet och _summary=count. Om antalet resurser minskar fungerar uppgiften. Du kan också avbryta massborttagningsjobbet och försöka igen.
Ser API-interaktioner någon svarstid när ett massborttagningsåtgärdsjobb körs samtidigt?
När du kör en massborttagningsåtgärd kan svarstiden för samtidiga anrop till tjänsten öka. Om du vill undvika en ökning av svarstiden avbryter du massborttagningsjobbet och kör det sedan igen under en period med lägre trafik.
Anmärkning
Om du avbryter och sedan startar om ett massborttagningsjobb återupptas borttagningsprocessen där det stoppades.
Exempel på användningsfall
Du kan använda de olika funktionerna $bulk-delete i tillsammans för att uppfylla olika användningsfall. I följande exempel visas hur du använder $bulk-delete för datakvarhållning.
Anta att du vill ta bort patientdata som är äldre än tre år, tillsammans med alla data som refererar till den patienten. Du vill också ta bort Practitioner-resurser som inte refererar till patientresurser.
Du kan uppnå det här användningsfallet med dessa två anrop.
Ta först bort alla patientresurser som är äldre än tre år, tillsammans med alla data som refererar till den patienten.
DELETE [base] /Patient/$bulk-delete?_lastUpdated=lt{date}&_revinclude=*:*
Ta sedan bort alla Practitioner-resurser som inga patientresurser refererar till.
DELETE [base]/Practitioner/$bulk-delete?_not-referenced=Patient:*
Relaterat innehåll
Anmärkning
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.