Delen via


Aangepaste zoekparameters definiëren voor Azure API for FHIR

Belangrijk

Azure API for FHIR wordt op 30 september 2026 buiten gebruik gesteld. Volg de migratiestrategieën om op die datum over te stappen naar de FHIR-service® van Azure Health Data Services. Vanwege de buitengebruikstelling van Azure API for FHIR zijn nieuwe implementaties vanaf 1 april 2025 niet toegestaan. De FHIR-service van Azure Health Data Services is de ontwikkelde versie van Azure API for FHIR waarmee klanten FHIR-, DICOM- en MedTech-services kunnen beheren met integraties in andere Azure-services.

De FHIR-specificatie® (Fast Healthcare Interoperability Resources) definieert een set zoekparameters voor alle resources en zoekparameters die specifiek zijn voor een resource. Er zijn echter scenario's waarin u kunt zoeken op basis van een element in een resource die niet is gedefinieerd als een standaardzoekparameter door de FHIR-specificatie. In dit artikel wordt beschreven hoe u uw eigen zoekparameters kunt definiëren die moeten worden gebruikt in de Azure API for FHIR.

Notitie

Telkens wanneer u een zoekparameter maakt, bijwerkt of verwijdert, moet u een herindextaak uitvoeren om de zoekparameter in te schakelen voor gebruik in productie. In dit artikel wordt beschreven hoe u zoekparameters kunt testen voordat u de volledige FHIR-server opnieuw indexeert.

Nieuwe zoekparameter maken

Als u een nieuwe zoekparameter wilt maken, maakt u POST de SearchParameter resource naar de database. In het volgende codevoorbeeld ziet u hoe u de US Core Race SearchParameter toevoegt aan de Patient resource.

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

Notitie

De nieuwe zoekparameter wordt weergegeven in de mogelijkheidsinstructie van de FHIR-server nadat u de zoekparameter post naar de database en de database opnieuw hebt geïndexeert. Het weergeven van de in de mogelijkheidsinstructie SearchParameter is de enige manier om te zien of een zoekparameter wordt ondersteund op uw FHIR-server. Als u de zoekparameter kunt vinden, maar deze niet kunt zien in de mogelijkheidsinstructie, moet u de zoekparameter nog steeds indexeren. U kunt meerdere zoekparameters posten voordat u een herindexbewerking activeert.

Belangrijke elementen van een SearchParameter omvatten het volgende.

  • URL: Een unieke sleutel om de zoekparameter te beschrijven. Veel organisaties, zoals HL7, gebruiken een standaard-URL-indeling voor de zoekparameters die ze definiëren, zoals eerder weergegeven in de zoekparameter van de US Core-race.

  • code: De waarde die in code is opgeslagen, is wat u gebruikt bij het zoeken. In het voorgaande voorbeeld zoekt u met GET {FHIR_URL}/Patient?race=<code> alle patiënten van een specifiek ras. De code moet uniek zijn voor de resource waarvoor de zoekparameter van toepassing is.

  • basis: Beschrijft op welke resource de zoekparameter van toepassing is. Als de zoekparameter van toepassing is op alle resources, kunt u deze gebruiken Resource. Anders kunt u alle relevante resources weergeven.

  • type: Beschrijft het gegevenstype voor de zoekparameter. Het type wordt beperkt door de ondersteuning voor de Azure API for FHIR. Dit betekent dat u geen zoekparameter van het type Speciaal kunt definiëren of een samengestelde zoekparameter kunt definiëren, tenzij dit een ondersteunde combinatie is.

  • expressie: Beschrijft hoe u de waarde voor de zoekopdracht berekent. Wanneer u een zoekparameter beschrijft, moet u de expressie opnemen, ook al is deze niet vereist voor de specificatie. Dit komt doordat u de expressie of de xpath-syntaxis nodig hebt en de Azure API for FHIR de xpath-syntaxis negeert.

Zoekparameters testen

Hoewel u de zoekparameters in productie pas kunt gebruiken als u een herindextaak uitvoert, kunt u uw zoekparameters testen voordat u de hele database opnieuw indexeert.

Eerst kunt u de nieuwe zoekparameter testen om te zien welke waarden worden geretourneerd. Door de volgende opdracht uit te voeren op een specifiek resource-exemplaar (door hun id in te voeren), krijgt u een lijst met waardeparen met de naam van de zoekparameter en de waarde die is opgeslagen voor de specifieke patiënt. Dit omvat alle zoekparameters voor de resource. U kunt door de geretourneerde lijst bladeren om de zoekparameter te vinden die u hebt gemaakt. Als u deze opdracht uitvoert, wordt er geen gedrag in uw FHIR-server gewijzigd.

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

Als u bijvoorbeeld alle zoekparameters voor een patiënt wilt zoeken, gebruikt u het volgende.

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

Het resultaat ziet er als volgt uit.

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

Zodra u ziet dat de zoekparameter wordt weergegeven zoals verwacht, kunt u één resource opnieuw indexeren om het zoeken met het element te testen. Eerst indexeer u één resource opnieuw:

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

Als u dit uitvoert, worden de indexen ingesteld voor zoekparameters voor de specifieke resource die u voor dat resourcetype hebt gedefinieerd. Hiermee wordt een update naar de FHIR-server uitgevoerd. U kunt nu de header gedeeltelijke indexen doorzoeken en instellen op true, wat betekent dat er resultaten worden geretourneerd waarbij een van de resources waarop de zoekparameter is geïndexeerd, zelfs als niet alle resources van dat type deze hebben geïndexeerd.

Als u verdergaat met ons voorbeeld, kunt u één patiënt indexeren om de US Core Race SearchParameter als volgt in te schakelen.

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

Zoek vervolgens naar patiënten met een specifieke ras:

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

Nadat u tevreden bent dat uw zoekparameter werkt zoals verwacht, voert u de taak opnieuw uit of plant u deze opnieuw, zodat de zoekparameters kunnen worden gebruikt op de FHIR-server voor gebruiksscenario's in productieomgevingen.

Een zoekparameter bijwerken

Als u een zoekparameter wilt bijwerken, gebruikt PUT u om een nieuwe versie van de zoekparameter te maken. U moet het SearchParameter ID element van de id hoofdtekst van de PUT aanvraag en in het PUT gesprek opnemen.

Notitie

Als u de id voor uw zoekparameter niet weet, kunt u ernaar zoeken. Hiermee GET {{FHIR_URL}}/SearchParameter worden alle aangepaste zoekparameters geretourneerd en kunt u door de lijst bladeren om de zoekparameter te vinden die u nodig hebt. U kunt de zoekopdracht ook beperken op naam. In het volgende voorbeeld kunt u zoeken naar een naam met behulp van 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"
}

Het resultaat is bijgewerkt SearchParameter en de versie wordt verhoogd.

Waarschuwing

Wees voorzichtig bij het bijwerken van SearchParameters die al zijn geïndexeerd in uw database. Het wijzigen van het gedrag van een bestaande SearchParameter kan gevolgen hebben voor het verwachte gedrag. U wordt aangeraden een taak voor opnieuw indexeren onmiddellijk uit te voeren.

Een zoekparameter verwijderen

Als u een zoekparameter wilt verwijderen, gebruikt u het volgende.

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

Waarschuwing

Wees voorzichtig bij het verwijderen van SearchParameters die al zijn geïndexeerd in uw database. Het wijzigen van het gedrag van een bestaande SearchParameter kan gevolgen hebben voor het verwachte gedrag. U wordt aangeraden een taak voor opnieuw indexeren onmiddellijk uit te voeren.

Volgende stappen

In dit artikel hebt u geleerd hoe u een zoekparameter maakt. Hierna leert u hoe u uw FHIR-server opnieuw kunt indexeren.

Notitie

FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.