Importálási művelet

Az importálási művelet lehetővé teszi a Fast Healthcare Interoperability Resources (FHIR®) adatok nagy átviteli sebességgel történő betöltését az FHIR-kiszolgálóra a $import művelettel. Az importálás az FHIR-kiszolgáló kezdeti és növekményes adatbetöltését is támogatja.

$import művelet használata

Megjegyzés

A $import használatához FHIR adatimportőr szerepkörrel kell rendelkeznie az FHIR-kiszolgálón.

A $import használatához konfigurálnia kell az FHIR-kiszolgálót az Importálási beállítások konfigurálása című cikk utasításait követve. Az importálandó FHIR-adatokat erőforrás-specifikus fájlokban kell tárolni FHIR NDJSON formátumban az Azure Blob Store-ban.

Importálási művelet esetén győződjön meg arról, hogy

  • A fájl összes erőforrásának azonos típusúnak kell lennie. Erőforrástípusonként több fájl is lehet.
  • Az importálandó adatoknak ugyanabban a bérlőben kell lenniük, mint az FHIR szolgáltatásnak.
  • Műveletenként legfeljebb 10 000 fájl importálható.

Megjegyzés:

  • Az importálási művelet nem támogatja az erőforrások feltételes hivatkozásait.
  • Az importálási művelet során ha több erőforrás osztozik ugyanazon az erőforrás-azonosítón, akkor a rendszer véletlenszerűen csak az egyik erőforrást importálja. Hiba van naplózva az ugyanazon erőforrás-azonosítóval rendelkező erőforrások esetében.

Hívás $import

Hívás kezdeményezése POST a <<FHIR service base URL>>/$import kérelem fejlécével és törzsével:

Kérelem fejléce

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

Törzs

Paraméter neve Description Kártya. Elfogadott értékek
inputFormat Az adatforrás formátumának nevét jelző sztring. Jelenleg csak az FHIR NDJSON-fájlok támogatottak. 1..1 application/fhir+ndjson
mód Importálási mód értéke 1..1 A kezdeti importáláshoz használja a mód InitialLoad értékét. Növekményes importálási mód esetén használja a IncrementalLoad mód értékét. Ha nincs megadva módérték, a növekményes betöltési mód értéke alapértelmezés szerint figyelembe lesz véve.
bemenet A bemeneti fájlok részletei. 1..* Egy JSON-tömb, amelynek három része az alábbi táblázatban található.
Bemeneti rész neve Description Kártya. Elfogadott értékek
típus Bemeneti fájl erőforrástípusa 1..1 Érvényes FHIR-erőforrástípus , amely megfelel a bemeneti fájlnak.
URL-cím A bemeneti fájl Azure Storage-beli URL-címe 1..1 A nem módosítható bemeneti fájl URL-értéke.
Etag Az Azure Storage bemeneti fájljának etagje, amellyel ellenőrizheti, hogy a fájl tartalma nem változott-e. 0..1 A bemeneti fájl Etag értéke, amely nem módosítható.

Mintatörzs a kezdeti terhelésimportáláshoz:

{
    "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"
                }
            ]
        }
    ]
}

Importálási állapot ellenőrzése

A $import elindítása után a rendszer egy visszahívási hivatkozást tartalmazó üres választörzset ad vissza a Content-location válasz fejlécében az állapotkóddal 202-Accepted együtt. Az importálási állapot ellenőrzéséhez tárolja ezt a visszahívási hivatkozást.

Az importálás állapotának ellenőrzéséhez hajtsa létre a REST-hívást az GET előző lépésben visszaadott visszahívási hivatkozás metódusával. A választ az alábbi táblázat segítségével értelmezheti:

Válaszkód Választörzs Description
202 Elfogadva A művelet továbbra is fut.
200 OK A válasz törzse nem tartalmaz error.url bejegyzést Az összes erőforrás importálása sikerült.
200 OK A válasz törzse tartalmaz néhány error.url bejegyzést Hiba történt néhány erőforrás importálása közben. A részletekért tekintse meg az error.url címen található fájlokat. A többi erőforrás importálása sikerült.
Egyéb Végzetes hiba történt, és a művelet leállt. Az importált erőforrásokat nem sikerült visszahozni.

Az alábbi táblázat néhány fontos mezőt tartalmaz a válasz törzsében:

Mező Leírás
transactionTime A tömeges importálási művelet kezdési időpontja.
output.count A sikeresen importált erőforrások száma
error.count Azon erőforrások száma, amelyek valamilyen hiba miatt nem lettek importálva
error.url A hiba részleteit tartalmazó fájl URL-címe. Minden error.url egyedi a bemeneti URL-címhez.

Mintaválasz:

{
    "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"
        }
    ]
}

Hibaelhárítás

Lehetővé teszi az importálási művelet során esetlegesen előforduló hibakódok részletes megoldását.

200 OK, de hiba történt az URL-címmel kapcsolatban a válaszban

Viselkedés: Az importálási művelet sikeres, és visszaadja a következőt 200 OK: . Ezek error.url azonban megtalálhatók a válasz törzsében. A helyen található fájlok az error.url alábbi példához hasonló JSON-töredékeket tartalmaznak:

{
    "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}"
        }
    ]
}

Okoz: Az NDJSON-fájlok feltételes hivatkozásokat tartalmazó erőforrásokat tartalmaznak, amelyeket a $import jelenleg nem támogatnak.

Megoldás: Cserélje le a feltételes hivatkozásokat a normál hivatkozásokra az NDJSON-fájlokban.

400 Hibás kérelem

Viselkedés: Az importálási művelet sikertelen volt, és 400 Bad Request a rendszer visszaadja. A válasz törzse a következő tartalommal rendelkezik:

{
    "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)"
        }
    ]
}

Megoldás: Ellenőrizze, hogy az Azure Storage-ra mutató hivatkozás helyes-e. Ellenőrizze a hálózati és tűzfalbeállításokat, hogy az FHIR-kiszolgáló hozzáfér-e a tárolóhoz. Ha a szolgáltatás virtuális hálózaton található, győződjön meg arról, hogy a tárterület ugyanabban a virtuális hálózatban van, vagy olyan virtuális hálózatban, amely társviszonyt létesít az FHIR szolgáltatás virtuális hálózatával.

403 – Tiltott

Viselkedés: Az importálási művelet sikertelen volt, és 403 Forbidden a rendszer visszaadja. A válasz törzse a következő tartalommal rendelkezik:

{
    "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."
        }
    ]
}

Okoz: Felügyelt identitást használunk a forrástároló hitelesítéséhez. Ezt a hibát egy hiányzó vagy helytelen szerepkör-hozzárendelés okozhatja.

Megoldás: Az RBAC-útmutatót követve rendelje hozzá a Storage-blobadatok közreműködője szerepkört az FHIR-kiszolgálóhoz.

500 Belső kiszolgálóhiba

Viselkedés: Az importálási művelet sikertelen volt, és 500 Internal Server Error a rendszer visszaadja. A válasz törzse a következő tartalommal rendelkezik:

{
    "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."
        }
    ]
}

Okoz: Elérte az FHIR szolgáltatás tárolási korlátját.

Megoldás: Csökkentse az adatok méretét, vagy fontolja meg az Azure API for FHIR használatát, amely magasabb tárterületkorlátot biztosít.

Következő lépések

Ebből a cikkből megtudhatja, hogy az importálási művelet hogyan teszi lehetővé az FHIR-adatok nagy átviteli sebességgel történő importálását az FHIR-kiszolgálóra. További információ az adatok FHIR-be való konvertálásáról, a tárfiók beállításához szükséges beállítások exportálásáról és az adatok Azure Synapse való áthelyezéséről:

Az FHIR® a HL7 bejegyzett védjegye, amelyet a HL7 engedélyével használnak.