Delen via


Importbewerking

Met de importbewerking kunt u FHIR-gegevens® (Fast Healthcare Interoperability Resources) bij hoge doorvoer naar de FHIR-server laden met behulp van de $import bewerking. Import ondersteunt zowel het initiële als het incrementeel laden van gegevens in de FHIR-server.

Met behulp van $import bewerking

Notitie

U moet de rol FHIR-gegevensimporteur hebben op de FHIR-server om $import te kunnen gebruiken.

Als u $import wilt gebruiken, moet u de FHIR-server configureren met behulp van de instructies in het artikel Importinstellingen configureren . De FHIR-gegevens die moeten worden geïmporteerd, moeten worden opgeslagen in resourcespecifieke bestanden in FHIR NDJSON-indeling in de Azure Blob Store.

Zorg ervoor dat voor de importbewerking

  • Alle resources in een bestand moeten van hetzelfde type zijn. Mogelijk hebt u meerdere bestanden per resourcetype.
  • De gegevens die moeten worden geïmporteerd, moeten zich in dezelfde tenant bevinden als van de FHIR-service.
  • Het maximum aantal bestanden dat per bewerking moet worden geïmporteerd, is 10.000.

Opmerking:

  • De importbewerking biedt geen ondersteuning voor voorwaardelijke verwijzingen in resources.
  • Als tijdens de importbewerking meerdere resources dezelfde resource-id delen, wordt slechts één van deze resources willekeurig geïmporteerd. Er is een fout vastgelegd voor de resources die dezelfde resource-id delen.

$import bellen

Maak een POST aanroep naar <<FHIR service base URL>>/$import met de aanvraagheader en hoofdtekst weergegeven:

Aanvraagkoptekst

Prefer:respond-async
Content-Type:application/fhir+json

Hoofdtekst

Parameternaam Description Kaart. Geaccepteerde waarden
invoernotatie Tekenreeks die de naam van de gegevensbronindeling vertegenwoordigt. Momenteel worden alleen FHIR NDJSON-bestanden ondersteund. 1..1 application/fhir+ndjson
mode Waarde voor importmodus 1..1 Gebruik de waarde voor de initiële importmodus InitialLoad . Gebruik IncrementalLoad moduswaarde voor incrementele importmodus. Als er geen moduswaarde wordt opgegeven, wordt standaard de waarde van de incrementeleloadmodus in aanmerking genomen.
input Details van de invoerbestanden. 1..* Een JSON-matrix met drie onderdelen die in de onderstaande tabel worden beschreven.
Naam van invoeronderdeel Description Kaart. Geaccepteerde waarden
type Resourcetype van invoerbestand 1..1 Een geldig FHIR-resourcetype dat overeenkomt met het invoerbestand.
URL Azure Storage-URL van invoerbestand 1..1 URL-waarde van het invoerbestand dat niet kan worden gewijzigd.
etag Etag van het invoerbestand in Azure Storage dat wordt gebruikt om te controleren of de bestandsinhoud niet is gewijzigd. 0..1 Etag-waarde van het invoerbestand dat niet kan worden gewijzigd.

Voorbeeldtekst voor initiële belastingimport:

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "inputFormat",
            "valueString": "application/fhir+ndjson"
        },
        {
            "name": "mode",
            "valueString": "InitialLoad"
        },
        {
            "name": "input",
            "part": [
                {
                    "name": "type",
                    "valueString": "Patient"
                },
                {
                    "name": "url",
                    "valueUri": "https://example.blob.core.windows.net/resources/Patient.ndjson"
                },
                {
                    "name": "etag",
                    "valueUri": "0x8D92A7342657F4F"
                }
            ]
        },
        {
            "name": "input",
            "part": [
                {
                    "name": "type",
                    "valueString": "CarePlan"
                },
                {
                    "name": "url",
                    "valueUri": "https://example.blob.core.windows.net/resources/CarePlan.ndjson"
                }
            ]
        }
    ]
}

Importstatus controleren

Zodra $import is gestart, wordt een lege antwoordtekst met een callback-koppeling geretourneerd in de Content-location header van het antwoord, samen met 202-Accepted de statuscode. Sla deze terugbelkoppeling op om de importstatus te controleren.

Als u de importstatus wilt controleren, voert u de REST-aanroep met de GET methode uit naar de callback-koppeling die in de vorige stap is geretourneerd. U kunt het antwoord interpreteren met behulp van de volgende tabel:

Antwoordcode Hoofdtekst van de reactie Description
202 Geaccepteerd De bewerking wordt nog steeds uitgevoerd.
200 OK De hoofdtekst van het antwoord bevat geen error.url-vermelding Alle resources zijn geïmporteerd.
200 OK De antwoordtekst bevat een fout.url-vermelding Er is een fout opgetreden tijdens het importeren van een aantal resources. Zie de bestanden op error.url voor meer informatie. De rest van de resources is geïmporteerd.
Anders Er is een onherstelbare fout opgetreden en de bewerking is gestopt. Geïmporteerde resources zijn niet teruggedraaid.

De onderstaande tabel bevat enkele belangrijke velden in de hoofdtekst van het antwoord:

Veld Description
transactionTime Begintijd van de bulkimportbewerking.
output.count Aantal resources dat is geïmporteerd
error.count Aantal resources dat niet is geïmporteerd vanwege een fout
error.url URL van het bestand met details van de fout. Elke error.url is uniek voor een invoer-URL.

Voorbeeldantwoord:

{
    "transactionTime": "2021-07-16T06:46:52.3873388+00:00",
    "request": "https://importperf.azurewebsites.net/$Import",
    "output": [
        {
            "type": "Patient",
            "count": 10000,
            "inputUrl": "https://example.blob.core.windows.net/resources/Patient.ndjson"
        },
        {
            "type": "CarePlan",
            "count": 199949,
            "inputUrl": "https://example.blob.core.windows.net/resources/CarePlan.ndjson"
        }
    ],
    "error": [
        { 
        "type": "OperationOutcome",
        "count": 51,
        "inputUrl": "https://example.blob.core.windows.net/resources/CarePlan.ndjson",
        "url": "https://example.blob.core.windows.net/fhirlogs/CarePlan06b88c6933a34c7c83cb18b7dd6ae3d8.ndjson"
        }
    ]
}

Problemen oplossen

Hier worden stapsgewijze oplossingen beschreven voor enkele foutcodes die tijdens de importbewerking kunnen optreden.

200 OK, maar er is een fout opgetreden met de URL in het antwoord

Gedrag: De importbewerking is voltooid en retourneert 200 OK. Zijn echter error.url aanwezig in de hoofdtekst van het antwoord. Bestanden die aanwezig zijn op de error.url locatie bevatten JSON-fragmenten die vergelijkbaar zijn met het onderstaande voorbeeld:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "details": {
                "text": "Given conditional reference '{0}' does'nt resolve to a resource."
            },
            "diagnostics": "Failed to process resource at line: {0} with stream start offset: {1}"
        }
    ]
}

Oorzaak: NDJSON-bestanden bevatten bronnen met voorwaardelijke verwijzingen, die momenteel niet worden ondersteund door $import.

Oplossing: Vervang de voorwaardelijke verwijzingen naar normale verwijzingen in de NDJSON-bestanden.

400 Ongeldige aanvraag

Gedrag: De importbewerking is mislukt en 400 Bad Request wordt geretourneerd. De antwoordtekst bevat de volgende inhoud:

{
    "resourceType": "OperationOutcome",
    "id": "13876ec9-3170-4525-87ec-9e165052d70d",
    "issue": [
        {
            "severity": "error",
            "code": "processing",
            "diagnostics": "import operation failed for reason: No such host is known. (example.blob.core.windows.net:443)"
        }
    ]
}

Oplossing: Controleer of de koppeling naar de Azure-opslag juist is. Controleer de netwerk- en firewallinstellingen om er zeker van te zijn dat de FHIR-server toegang heeft tot de opslag. Als uw service zich in een VNet bevindt, moet u ervoor zorgen dat de opslag zich in hetzelfde VNet bevindt of in een VNet met peering met het VNet van de FHIR-service.

403 Verboden

Gedrag: De importbewerking is mislukt en 403 Forbidden wordt geretourneerd. De antwoordtekst bevat de volgende inhoud:

{
    "resourceType": "OperationOutcome",
    "id": "bd545acc-af5d-42d5-82c3-280459125033",
    "issue": [
        {
            "severity": "error",
            "code": "processing",
            "diagnostics": "import operation failed for reason: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature."
        }
    ]
}

Oorzaak: We gebruiken een beheerde identiteit voor de verificatie van de bronopslag. Deze fout kan worden veroorzaakt door een ontbrekende of verkeerde roltoewijzing.

Oplossing: Wijs de rol Inzender voor opslagblobgegevens toe aan de FHIR-server volgens de RBAC-handleiding.

500 Interne serverfout

Gedrag: De importbewerking is mislukt en 500 Internal Server Error wordt geretourneerd. De antwoordtekst bevat de volgende inhoud:

{
    "resourceType": "OperationOutcome",
    "id": "0d0f007d-9e8e-444e-89ed-7458377d7889",
    "issue": [
        {
            "severity": "error",
            "code": "processing",
            "diagnostics": "import operation failed for reason: The database '****' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions."
        }
    ]
}

Oorzaak: U hebt de opslaglimiet van de FHIR-service bereikt.

Oplossing: Verminder de grootte van uw gegevens of overweeg Azure API for FHIR, die een hogere opslaglimiet heeft.

Volgende stappen

In dit artikel hebt u geleerd hoe U met de importbewerking FHIR-gegevens kunt importeren naar de FHIR-server met een hoge doorvoer. Zie voor meer informatie over het converteren van gegevens naar FHIR, het exporteren van instellingen voor het instellen van een opslagaccount en het verplaatsen van gegevens naar Azure Synapse

FHIR® is een gedeponeerd handelsmerk van HL7 en wordt gebruikt met de toestemming van HL7.