Egyéni keresési paraméterek meghatározása az Azure API for FHIR-hez

A Fast Healthcare Interoperability Resources (FHIR®) specifikációja keresési paramétereket határoz meg az összes erőforráshoz és keresési paraméterhez, amelyek egy adott erőforrás(ok)ra vonatkoznak. Vannak azonban olyan forgatókönyvek, amelyekben érdemes lehet egy olyan erőforrás egy elemére keresni, amelyet az FHIR specifikáció nem határoz meg standard keresési paraméterként. Ez a cikk azt ismerteti, hogyan határozhatja meg az Azure API for FHIR-ben használandó saját keresési paramétereket .

Megjegyzés

Minden alkalommal, amikor létrehoz, frissít vagy töröl egy keresési paramétert, újraindexeléses feladatot kell futtatnia, hogy a keresési paraméter éles környezetben használható legyen. Az alábbiakban bemutatjuk, hogyan tesztelheti a keresési paramétereket a teljes FHIR-kiszolgáló újraindexelése előtt.

Új keresési paraméter létrehozása

Új keresési paraméter létrehozásához az POST erőforrást SearchParameter kell létrehoznia az adatbázishoz. Az alábbi kód példája bemutatja, hogyan adhatja hozzá az US Core Race SearchParametert az Patient erőforráshoz.

POST {{FHIR_URL}}/SearchParameter

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

Megjegyzés

Az új keresési paraméter az FHIR-kiszolgáló képességutasításában jelenik meg, miután KÖZZÉTETTe a keresési paramétert az adatbázisba , és újraindexelte az adatbázist. SearchParameter Az in the 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-kiszolgálón. Ha a keresési paramétert úgy találja meg, hogy rákeres a keresési paraméterre, de nem látja azt a képességutasításban, akkor is indexelnie kell a keresési paramétert. Az újraindexelési művelet aktiválása előtt több keresési paramétert is közzétehet.

A fontos elemei SearchParameter:

  • url: A keresési paramétert leíró egyedi kulcs. Számos szervezet, például a HL7, szabványos URL-formátumot használ az általuk definiált keresési paraméterekhez, ahogy az az US Core versenykeresési paraméterében fent látható.

  • code: A kódban tárolt érték az, amelyet a kereséskor használni fog. A fenti példában egy adott faj összes betegének lekéréséhez keressen GET {FHIR_URL}/Patient?race=<code> rá. A kódnak egyedinek kell lennie azon erőforrás(ok) esetében, amelyekre a keresési paraméter vonatkozik.

  • alap: Leírja, hogy a keresési paraméter mely erőforrás(ok)ra vonatkozik. Ha a keresési paraméter az összes erőforrásra vonatkozik, használhatja Resourceazt; ellenkező esetben az összes releváns erőforrást listázhatja.

  • type: A keresési paraméter adattípusát ismerteti. A típust az Azure API for FHIR támogatása korlátozza. Ez azt jelenti, hogy nem definiálhat Speciális típusú keresési paramétert, és nem adhat meg összetett keresési paramétert , hacsak nem támogatott kombináció.

  • kifejezés: 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 Azure API for FHIR figyelmen kívül hagyja az xpath szintaxist.

Keresési paraméterek tesztelése

Bár éles környezetben nem használhatja a keresési paramétereket, amíg újraindexelési feladatot nem futtat, többféleképpen is tesztelheti a keresési paramétereket a teljes adatbázis újraindexelése előtt.

Először tesztelheti az új keresési paramétert, hogy lássa, milyen értékeket ad vissza. Ha az alábbi parancsot egy adott erőforráspéldányon futtatja (az azonosítójuk megadásával), visszaadja az értékpárok listáját a keresési paraméter nevével és az adott beteg számára tárolt értékkel. Ez tartalmazza az erőforrás összes keresési paraméterét, és görgetéssel megkeresheti a létrehozott keresési paramétert. A parancs futtatása semmilyen viselkedést nem módosít az FHIR-kiszolgálón.

GET https://{{FHIR_URL}}/{{RESOURCE}}/{{RESOUCE_ID}}/$reindex

Például egy beteg összes keresési paraméterének megkereséséhez:

GET https://{{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex

Az eredmény így fog kinézni:

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

Ha azt látja, hogy a keresési paraméter a várt módon jelenik meg, újraindexelhet egy erőforrást az elem keresésének teszteléséhez. Először egyetlen erőforrást fog újraindexelni:

POST https://{{FHIR_URL}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex

Ennek futtatásával beállítja az adott erőforrástípushoz definiált adott erőforrás keresési paramétereinek indexeit. Ezzel frissíti az FHIR-kiszolgálót. Most már kereshet, és beállíthatja a részleges indexek használata fejlécet true (igaz) értékre, ami azt jelenti, hogy olyan eredményeket ad vissza, ahol az erőforrások bármelyike indexeli a keresési paramétert, még akkor is, ha nem minden ilyen típusú erőforrás indexelt.

A fenti példával folytatva indexelhet egy beteget az US Core Race SearchParameterengedélyezéséhez:

POST https://{{FHIR_URL}/Patient/{{PATIENT_ID}}/$reindex

Ezután keressen rá azokra a betegekre, akiknek egy adott faja van:

GET https://{{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true

Miután elvégezte a tesztelést, és meggyőződett arról, hogy a keresési paraméter a várt módon működik, futtassa vagy ütemezze az újraindexelt feladatot, hogy a keresési paraméterek az FHIR-kiszolgálón éles használati esetekben is használhatók legyenek.

Keresési paraméter frissítése

A keresési paraméter frissítéséhez használja a parancsot PUT a keresési paraméter új verziójának létrehozásához. A kérés törzsének elemébe id és a PUT hívásba bele kell foglalnia SearchParameter ID a PUT elemet.

Megjegyzés

Ha nem tudja a keresési paraméter azonosítóját, rákereshet. A használatával GET {{FHIR_URL}}/SearchParameter visszaadja az összes egyéni keresési paramétert, és a keresési paramétert görgetve megkeresheti a szükséges keresési paramétert. A keresést név szerint is korlátozhatja. Az alábbi példában a névre kereshet a paranccsal USCoreRace: 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"
}

Az eredmény egy frissítve SearchParameter lesz, és a verzió növekszik.

Figyelmeztetés

Legyen óvatos az adatbázisban már indexelt SearchParameterek frissítésekor. A meglévő SearchParameter viselkedésének módosítása hatással lehet a várt viselkedésre. Javasoljuk, hogy azonnal futtasson egy újraindexeléses feladatot.

Keresési paraméter törlése

Ha törölnie kell egy keresési paramétert, használja a következőt:

Delete {{FHIR_URL}}/SearchParameter/{SearchParameter ID}

Figyelmeztetés

Legyen óvatos az adatbázisban már indexelt SearchParameterek törlésekor. A meglévő SearchParameter viselkedésének módosítása hatással lehet a várt viselkedésre. Javasoljuk, hogy azonnal futtasson egy újraindexeléses feladatot.

Következő lépések

Ebben a cikkben megtanulta, hogyan hozhat létre keresési paramétert. A következő lépésben megtudhatja, hogyan indexelheti újra az FHIR-kiszolgálót.

Az FHIR® a HL7 bejegyzett védjegye, és a HL7 engedélyével használják.