Egyéni keresési paraméterek meghatározása
Az FHIR-specifikáció® olyan keresési paramétereket határoz meg, amelyek az összes erőforrásra vonatkoznak. Emellett az FHIR számos olyan keresési paramétert határoz meg, amelyek bizonyos erőforrásokra vonatkoznak. Előfordulhat azonban, hogy egy erőforrás olyan elemére is szeretne keresni, amelyet az FHIR-specifikáció nem határoz meg standard keresési paraméterként. Ez a cikk azt ismerteti, hogyan definiálhatja saját egyéni keresési paramétereit az Azure Health Data Services FHIR szolgáltatásában való használatra.
Feljegyzés
Minden alkalommal, amikor létrehoz, frissít vagy töröl egy keresési paramétert, egy újraindexeléses feladatot kell futtatnia, hogy engedélyezhesse a keresési paramétert az élő éles környezetben. Ismertetjük, hogyan tesztelheti a keresési paramétereket, mielőtt újraindexeli a teljes FHIR szolgáltatásadatbázist.
Új keresési paraméter létrehozása
Új keresési paraméter létrehozásához erőforrásra POST
SearchParameter
van szüksége az FHIR szolgáltatásadatbázishoz.
POST {{FHIR_URL}}/SearchParameter
Az alábbi példák egy új egyéni keresési paraméter létrehozását mutatják be.
Új keresési paraméter létrehozása definíciónként a megvalósítási útmutatóban
Az alábbi példakód bemutatja, hogyan adhatja hozzá az US Core Race keresési paramétert az Patient
FHIR szolgáltatásadatbázis erőforrástípusához.
{
"resourceType" : "SearchParameter",
"id" : "us-core-race",
"url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
"version" : "3.1.1",
"name" : "USCoreRace",
"status" : "active",
"date" : "2019-05-21",
"publisher" : "US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "other",
"value" : "http://www.healthit.gov/"
}
]
}
],
"description" : "Returns patients with a race extension matching the specified code.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"code" : "race",
"base" : [
"Patient"
],
"type" : "token",
"expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}
Új keresési paraméter létrehozása hivatkozástípusú erőforrásattribútumokhoz
Az alábbi példakód bemutatja, hogyan hozhat létre egyéni keresési paramétert a MedicationDispense-erőforrások kereséséhez a kiosztás helyétől függően. Ez egy példa arra, hogy egy referenciatípushoz egyéni keresési paramétert ad hozzá.
{
"resourceType": "SearchParameter",
"id": "a3c28d46-fd06-49ca-aea7-5f9314ef0497",
"url": "{{An absolute URI that is used to identify this search parameter}}",
"version": "1.0",
"name": "MedicationDispenseLocationSearchParameter",
"status": "active",
"description": "Search parameter for MedicationDispense by location",
"code": "location",
"base": ["MedicationDispense"],
"target": ["Location"],
"type": "reference",
"expression": "MedicationDispense.location"
}
Feljegyzés
Az új keresési paraméter az FHIR szolgáltatás képességutasításában jelenik meg, POST
miután a keresési paramétert az adatbázishoz nyitja, és újraindexeli az adatbázist. Az in the SearchParameter
capability utasítás megtekintése az egyetlen módja annak, hogy megállapítsa, támogatott-e egy keresési paraméter az FHIR szolgáltatásban. Ha nem találja a SearchParameter
képességi utasítást, akkor is újra kell indexelnie az adatbázist a keresési paraméter aktiválásához. Az újraindexelési művelet aktiválása előtt több keresési paraméter is megadható POST
.
Az SearchParameter
erőforrás fontos elemei a következők:
url
: Egy egyedi kulcs a keresési paraméter leírásához. Az olyan szervezetek, mint a HL7, szabványos URL-formátumot használnak az általuk definiált keresési paraméterekhez, ahogyan az az US Core Race keresési paraméterében is látható.code
: A kódelemben tárolt érték a keresési paraméterhez használt név, amikor egy API-hívás tartalmazza. Az előző példában az "US Core Race" bővítménybenGET {{FHIR_URL}}/Patient?race=<code>
<code>
a megadott kódolási rendszer által beállított értékben kell keresni. Ez a hívás egy adott faj összes betegét lekérné.base
: Azt ismerteti, hogy a keresési paraméter mely erőforrástípusokra vonatkozik. Ha a keresési paraméter az összes erőforrásra vonatkozik, használhatjaResource
azt, ellenkező esetben az összes releváns erőforrástípust listázhatja.target
: Azt ismerteti, hogy a keresési paraméter mely erőforrástípusokkal egyezik meg.type
: A keresési paraméter adattípusát ismerteti. A típust az FHIR szolgáltatás adattípusainak támogatása korlátozza. Ez azt jelenti, hogy nem definiálhat speciális típusú keresési paramétert, és nem definiálhat összetett keresési paramétert , hacsak nem támogatott kombináció.expression
: A keresés értékének kiszámítását ismerteti. A keresési paraméter leírásakor meg kell adnia a kifejezést, annak ellenére, hogy a specifikáció nem írja elő. Ennek az az oka, hogy vagy a kifejezésre vagy az xpath szintaxisra van szüksége, és az FHIR szolgáltatás figyelmen kívül hagyja az xpath szintaxist.
Új keresési paraméterek tesztelése
Bár az éles környezetben nem használhatja az új keresési paramétereket, amíg újraindexelési feladatot nem futtat, a teljes adatbázis újraindexelése előtt többféleképpen is tesztelheti az egyéni keresési paramétereket.
Először tesztelhet egy új keresési paramétert a visszaadott értékek megtekintéséhez. Ha a következő parancsot egy adott erőforráspéldányon futtatja (az erőforrás-azonosító megadásával), a keresési paraméter nevével és a megfelelő elemben tárolt értékkel rendelkező értékpárok listáját kapja vissza. Ez a lista tartalmazza az erőforrás összes keresési paraméterét. Görgetéssel megkeresheti a létrehozott keresési paramétert. A parancs futtatása semmilyen viselkedést nem módosít az FHIR szolgáltatásban.
GET https://{{FHIR_URL}}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex
Ha például egy beteg összes keresési paraméterét meg szeretné keresni:
GET https://{{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex
Az eredmény a következőhöz hasonló:
{
"resourceType": "Parameters",
"id": "8be24e78-b333-49da-a861-523491c3437a",
"meta": {
"versionId": "1"
},
"parameter": [
{
"name": "deceased",
"valueString": "http://hl7.org/fhir/special-values|false"
},
{
"name": "language",
"valueString": "urn:ietf:bcp:47|en-US"
},
{
"name": "race",
"valueString": "2028-9"
}
]
...}
Miután látta, hogy a keresési paraméter a várt módon jelenik meg, újraindexelhet egy erőforrást, hogy tesztelje a keresést az új keresési paraméterrel. Egyetlen erőforrás újraindexeléséhez használja az alábbiakat.
POST https://{{FHIR_URL}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex
A POST
hívás futtatása beállítja a kérelemben megadott erőforráspéldányhoz definiált keresési paraméterek indexeit. Ez a hívás módosítja az FHIR szolgáltatásadatbázist. Most már kereshet, és beállíthatja a x-ms-use-partial-indices
fejlécet true
arra, hogy az FHIR szolgáltatás az indexelt keresési paramétert tartalmazó erőforrások eredményeit adja vissza, még akkor is, ha nem minden ilyen típusú erőforráspéldány indexelt.
A példával folytatva egy beteget indexelhet a következő engedélyezéséhez SearchParameter
:
POST {{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex
Ezután végezze el a tesztkereséseket:
- A beteg számára verseny szerint:
GET {{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true
- Hely (referenciatípus)
{{fhirurl}}/MedicationDispense?location=<locationid referenced in MedicationDispense Resource>
x-ms-use-partial-indices: true
Miután tesztelte az új keresési paramétert, és meggyőződött arról, hogy a várt módon működik, futtassa vagy ütemezze az újraindexelési feladatot, hogy az új keresési paraméterek éles környezetben is használhatók legyenek.
Az FHIR szolgáltatásadatbázis újraindexeléséhez tekintse meg az újraindexelési feladat futtatásával kapcsolatos információkat.
Keresési paraméter frissítése
A keresési paraméter frissítéséhez hozza PUT
létre a keresési paraméter új verzióját. A keresési paraméter azonosítóját meg kell adnia a id
kérelem törzsében PUT
lévő mezőben és a kérési sztringben PUT
.
Feljegyzés
Ha nem tudja a keresési paraméter azonosítóját, akkor a következővel GET {{FHIR_URL}}/SearchParameter
keresheti meg: . Ez az összes egyéni és szabványos keresési paramétert visszaadja. A kívánt keresési paraméter megkereséséhez görgessen végig a listán. A keresést név szerint is korlátozhatja. Az alábbi példakérésben látható módon az egyéni SearchParameter
erőforráspéldány neve a következő USCoreRace
. Ezt az SearchParameter
erőforrást név szerint keresheti meg a következő használatával GET {{FHIR_URL}}/SearchParameter?name=USCoreRace
: .
PUT {{FHIR_URL}}/SearchParameter/{{SearchParameter_ID}}
{
"resourceType" : "SearchParameter",
"id" : "{{SearchParameter_ID}}",
"url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
"version" : "3.1.1",
"name" : "USCoreRace",
"status" : "active",
"date" : "2019-05-21",
"publisher" : "US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "other",
"value" : "http://www.healthit.gov/"
}
]
}
],
"description" : "New Description!",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"code" : "race",
"base" : [
"Patient"
],
"type" : "token",
"expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}
A fenti kérés eredménye egy frissített SearchParameter
erőforrás lesz.
Figyelmeztetés
Legyen óvatos a keresési paraméterek frissítésekor. A meglévő keresési paraméterek módosítása hatással lehet a várt viselkedésre. Javasoljuk, hogy azonnal futtasson egy újraindexelési feladatot.
Keresési paraméter törlése
Ha törölnie kell egy keresési paramétert, használja az alábbiakat.
DELETE {{FHIR_URL}}/SearchParameter/{{SearchParameter_ID}}
Figyelmeztetés
Legyen óvatos a keresési paraméterek törlésekor. A meglévő keresési paraméter törlése hatással lehet a várt viselkedésre. Javasoljuk, hogy azonnal futtasson egy újraindexelési feladatot.
Következő lépések
Ebben a cikkben megtanulta, hogyan hozhat létre egyéni keresési paramétert. Ezután megtudhatja, hogyan indexelheti újra az FHIR szolgáltatásadatbázist. További információk:
Feljegyzés
Az FHIR® a HL7 bejegyzett védjegye, amelyet a HL7 engedélyével használnak.