Operacja walidacji: Omówienie

Ważne

Usługa Azure API for FHIR zostanie wycofana 30 września 2026 r. Postępuj zgodnie ze strategiami migracji, aby przejść do usługi Azure Health Data Services FHIR do tej daty. Ze względu na wycofanie usługi Azure API for FHIR nowe wdrożenia nie będą możliwe od 1 kwietnia 2025 r. Usługa FHIR usług Azure Health Data Services to rozwinięta wersja usługi Azure API for FHIR, która umożliwia klientom zarządzanie usługami FHIR, DICOM i MedTech z integracją z innymi usługami platformy Azure.

W artykule dotyczącym profilów sklepów w usłudze Azure API for FHIR przedstawiono podstawy profilów FHIR i przechowywanie ich. Ten artykuł przeprowadzi Cię przez proces sprawdzania $validate poprawności zasobów w profilach. Weryfikowanie zasobu względem profilu oznacza sprawdzenie, czy zasób jest zgodny z profilem, w tym specyfikacje wymienione w Resource.meta.profile przewodniku implementacji lub w przewodniku implementacji.

$validate to operacja w zasobach fast healthcare Interoperability Resources (FHIR), która umożliwia zapewnienie, że zasób FHIR® jest zgodny z podstawowymi wymaganiami dotyczącymi zasobów lub określonym profilem. Ta operacja gwarantuje, że dane w interfejsie Azure API for FHIR mają oczekiwane atrybuty i wartości. Aby uzyskać informacje na temat operacji weryfikacji, odwiedź stronę specyfikacji HL7 FHIR. Na specyfikację można określić tryb za pomocą $validatepolecenia , takiego jak tworzenie i aktualizowanie:

  • create: usługa Azure API for FHIR sprawdza, czy zawartość profilu jest unikatowa od istniejących zasobów i że można ją utworzyć jako nowy zasób.
  • update: Sprawdza, czy profil jest aktualizacją dla nominowanego istniejącego zasobu (nie wprowadzono żadnych zmian w polach niezmiennych).

Istnieją różne sposoby weryfikacji zasobu:

  • Zweryfikuj istniejący zasób za pomocą operacji weryfikacji.
  • Zweryfikuj nowy zasób za pomocą operacji weryfikacji.
  • Zweryfikuj przy użyciu nagłówka CREATE/UPDATE zasobu.

Interfejs API platformy Azure dla standardu FHIR zawsze zwraca OperationOutcome wartość jako wyniki weryfikacji dla operacji $validate. Usługa Azure API for FHIR wykonuje weryfikację dwuetapową, gdy zasób zostanie przekazany do $validate punktu końcowego — pierwszym krokiem jest podstawowa walidacja, aby upewnić się, że zasób można przeanalizować. Podczas analizowania zasobów należy naprawić poszczególne błędy przed przejściem do następnego kroku. Po pomyślnym przeanalizowaniu zasobu pełna walidacja jest przeprowadzana w drugim kroku.

Uwaga

Wszelkie zestawy wartości, które mają być używane do walidacji, muszą zostać przekazane do serwera FHIR.  Obejmuje to wszystkie zestawy wartości, które są częścią specyfikacji FHIR, a także wszystkie zestawy wartości zdefiniowane w przewodnikach implementacji.  Obsługiwane są tylko w pełni rozwinięte zestawy wartości zawierające pełną listę wszystkich kodów.  Wszelkie definicje zestawu wartości, które odwołują się do źródeł zewnętrznych, nie są obsługiwane.

Weryfikowanie istniejącego zasobu

Aby zweryfikować istniejący zasób, użyj polecenia $validate w żądaniu GET :

GET http://<your Azure API for FHIR base URL>/{resource}/{resource ID}/$validate

Na przykład:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

W tym przykładzie walidujesz istniejący zasób a6e11662-def8-4dde-9ebc-4429e68d130e Pacjenta względem podstawowego zasobu Pacjenta. Jeśli jest to prawidłowe, otrzymasz przykładowy OperationOutcome kod, taki jak poniższy:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

Jeśli zasób jest nieprawidłowy, zostanie wyświetlony kod błędu i komunikat o błędzie ze szczegółowymi informacjami na temat tego, dlaczego zasób jest nieprawidłowy. Przykład OperationOutcome jest zwracany z komunikatami o błędach i może wyglądać podobnie do następującego przykładu kodu:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient.identifier[1]"
            ]
        },
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient"
            ]
        }
    ]
}

W tym przykładzie zasób nie był zgodny z podanym profilem pacjenta, który wymagał wartości identyfikatora pacjenta i płci.

Jeśli chcesz określić profil jako parametr, możesz określić kanoniczny adres URL profilu do zweryfikowania, na przykład w poniższym przykładzie dla profilu podstawowego HL7 dla heartrateelementu :

GET https://myAzureAPIforFHIR.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

Weryfikowanie nowego zasobu

Jeśli chcesz zweryfikować nowy zasób, który przekazujesz do usługi Azure API for FHIR, możesz wykonać POST żądanie: serwer zawsze zwróci element OperationOutcome w wyniku.

POST http://<your Azure API for FHIR base URL>/{Resource}/$validate

Na przykład:

POST https://myAzureAPIforFHIR.azurehealthcareapis.com/Patient/$validate

To żądanie zweryfikuje zasób. W przypadku zasobów weryfikacji nie są tworzone w usłudze FHIR, należy wysłać żądanie POST bez $validate, aby utworzyć zasób.

Zweryfikuj przy użyciu nagłówka CREATE/UPDATE zasobu.

Domyślnie usługa Azure API for FHIR jest skonfigurowana do rezygnacji z weryfikacji zasobu Create/Update. Ta funkcja umożliwia weryfikowanie elementu przy Create/Updateużyciu nagłówka x-ms-profile-validation . Ustaw wartość "x-ms-profile-validation" na wartość true na potrzeby walidacji.

Uwaga

W usłudze FHIR typu open source można zmienić ustawienie konfiguracji serwera w obszarze CoreFeatures.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

Następne kroki

W tym artykule przedstawiono sposób weryfikowania zasobów pod kątem profilów przy użyciu programu $validate. Aby dowiedzieć się więcej o innych obsługiwanych funkcjach interfejsu API platformy Azure for FHIR, zobacz

FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.