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.