Weryfikowanie zasobów FHIR względem profilów w usługach Azure Health Data Services

W artykule dotyczącym profilów sklepów w usłudze FHIR przedstawiono podstawy profilów FHIR i przechowywanie ich. Usługa FHIR w usługach Azure Health Data Services (niniejszym nazywana usługą FHIR) umożliwia weryfikowanie zasobów względem profilów w celu sprawdzenia, czy zasoby są zgodne z profilami. Ten artykuł przeprowadzi Cię przez $validate proces sprawdzania poprawności zasobów pod kątem profilów.

$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 zapewnia, że dane w usłudze FHIR mają oczekiwane atrybuty i wartości. Aby uzyskać informacje na temat operacji weryfikacji, odwiedź specyfikację HL7 FHIR. Na specyfikację można określić tryb za pomocą polecenia $validate, takiego jak tworzenie i aktualizowanie:

  • create: interfejs API platformy Azure 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:

  • Opcja 1. Zweryfikuj istniejący zasób przy użyciu operacji weryfikacji.
  • Opcja 2. Zweryfikuj nowy zasób przy użyciu operacji weryfikacji.
  • Opcja 3. Sprawdzanie poprawności zasobu CREATE/ UPDATE przy użyciu nagłówka .

Po pomyślnej weryfikacji istniejącego/nowego zasobu z operacją weryfikacji zasób nie jest utrwalany w usłudze FHIR. Użyj opcji 3: Zweryfikuj zasób CREATE/ UPDATE przy użyciu nagłówka, aby utrwalić pomyślnie zweryfikowany zasób do usługi FHIR.

Usługa FHIR zawsze zwraca OperationOutcome wynik weryfikacji dla operacji $validate. Usługa FHIR wykonuje weryfikację dwuetapową, gdy zasób zostanie przekazany do punktu końcowego $validate — 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, zanim przejdziesz dalej do następnego kroku. Po pomyślnym przeanalizowaniu zasobu pełna walidacja jest przeprowadzana w drugim kroku.

Uwaga

Wszystkie zestawy wartości, które mają być używane do walidacji, należy przekazać do serwera FHIR. Obejmuje to wszystkie zestawy wartości, które są częścią specyfikacji FHIR, a także wszelkie 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. Wszystkie definicje zestawu wartości, które odwołują się do źródeł zewnętrznych, nie są obsługiwane.

Opcja 1. Weryfikowanie istniejącego zasobu

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

GET http://<your FHIR service 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 Pacjent względem podstawowego zasobu Pacjenta. Jeśli jest to prawidłowe, otrzymasz OperationOutcome taki przykład kodu:

{
    "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 o tym, 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 weryfikacji, na przykład następujący przykład dla profilu podstawowego HL7 dla heartrateelementu :

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

Opcja 2. Weryfikowanie nowego zasobu

Jeśli chcesz zweryfikować nowy zasób przekazywany do serwera, możesz wykonać POST żądanie:

POST http://<your FHIR service base URL>/{Resource}/$validate

Na przykład:

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

To żądanie najpierw zweryfikuje zasób. Nowy zasób określony w żądaniu zostanie utworzony po weryfikacji. Serwer zawsze zwróci wynik OperationOutcome .

Opcja 3. Sprawdzanie poprawności zasobu CREATE/UPDATE przy użyciu nagłówka

Możesz wybrać, kiedy chcesz zweryfikować zasób, taki jak zasób CREATE lub UPDATE. Domyślnie usługa FHIR jest skonfigurowana do rezygnacji z walidacji zasobu Create/Update. Ta funkcja umożliwia zweryfikowanie 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
        }
}

Aby włączyć ścisłą walidację, użyj nagłówka "Preferuj obsługę" z wartością ścisłą. Po ustawieniu tego nagłówka ostrzeżenie o weryfikacji zostanie zgłoszone jako błąd.

Następne kroki

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

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