Udostępnij za pośrednictwem


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 (nazywana usługą FHIR) umożliwia weryfikowanie zasobów w profilach w celu sprawdzenia, czy zasoby są zgodne z profilami. Ten artykuł przeprowadzi Cię przez proces sprawdzania $validate poprawności zasobów w profilach.

$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 usłudze 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 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 za pomocą operacji weryfikacji.
  • Opcja 2. Zweryfikuj nowy zasób za pomocą 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 w usłudze FHIR.

Usługa FHIR zawsze zwraca OperationOutcome jako wyniki weryfikacji dla operacji $validate. Usługa FHIR wykonuje weryfikację dwuetapową, gdy zasób zostanie przekazany do punktu końcowego $validate — pierwszym krokiem jest podstawowa weryfikacja, 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.

Opcja 1. Weryfikowanie istniejącego zasobu

Aby zweryfikować istniejący zasób, użyj polecenia $validate 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 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://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 element OperationOutcome w wyniku.

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

Aby włączyć ścisłą walidację, użyj nagłówka "Preferuj obsługę" z wartością ścisłą. Ustawiając ten nagłówek, ostrzeżenie dotyczące walidacji 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 programu $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.