Share via


Verifiera FHIR-resurser mot profiler i Azure Health Data Services

I butiksprofilerna i FHIR-tjänstartikeln gick du igenom grunderna i FHIR-profiler och lagrade dem. FHIR-tjänsten i Azure Health Data Services (kallas härmed FHIR-tjänsten) tillåter validering av resurser mot profiler för att se om resurserna överensstämmer med profilerna. Den här artikeln vägleder dig genom hur du använder $validate för att verifiera resurser mot profiler.

$validate är en åtgärd i FHIR® (Fast Healthcare Interoperability Resources) som gör att du kan se till att en FHIR-resurs överensstämmer med de grundläggande resurskraven eller en angiven profil. Den här åtgärden säkerställer att data i FHIR-tjänsten har förväntade attribut och värden. Information om valideringsåtgärd finns i HL7 FHIR-specifikation. Enligt specifikation kan läge anges med $validate, till exempel skapa och uppdatera:

  • create: Azure API för FHIR kontrollerar att profilinnehållet är unikt från befintliga resurser och att det är acceptabelt att skapas som en ny resurs.
  • update: Kontrollerar att profilen är en uppdatering mot den angivna befintliga resursen (det är inga ändringar som görs i de oföränderliga fälten).

Det finns olika sätt som du kan använda för att verifiera resursen:

  • Alternativ 1: Verifiera en befintlig resurs med verifieringsåtgärd.
  • Alternativ 2: Verifiera en ny resurs med verifieringsåtgärd.
  • Alternativ 3: Verifiera resursen CREATE/UPDATE med huvudet.

Vid valideringen av en befintlig/ny resurs med verifieringsåtgärden sparas inte resursen i FHIR-tjänsten. Använd alternativ 3: Verifiera resursen CREATE/UPDATE med hjälp av huvudet för att bevara en verifierad resurs till FHIR-tjänsten.

FHIR-tjänsten returnerar alltid ett OperationOutcome som valideringsresultat för $validate åtgärd. FHIR-tjänsten utför tvåstegsvalidering när en resurs skickas till $validate slutpunkt – det första steget är en grundläggande validering för att säkerställa att resursen kan parsas. Under resursparsning måste enskilda fel åtgärdas innan du fortsätter till nästa steg. När resursen har parsats utförs fullständig validering som ett andra steg.

Anteckning

Alla värden som ska användas för validering måste laddas upp till FHIR-servern. Detta inkluderar alla värden som ingår i FHIR-specifikationen, samt alla ValueSets som definierats i implementeringsguider. Endast fullständigt expanderade valuesets som innehåller en fullständig lista över alla koder stöds. ValueSet-definitioner som refererar till externa källor stöds inte.

Alternativ 1: Verifiera en befintlig resurs

Om du vill verifiera en befintlig resurs använder du $validate i en GET begäran:

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

Exempel:

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

I det här exemplet verifierar du den befintliga patientresursen a6e11662-def8-4dde-9ebc-4429e68d130e mot basresursen patient. Om det är giltigt visas ett OperationOutcome exempel på följande kod:

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

Om resursen inte är giltig får du en felkod och ett felmeddelande med information om varför resursen är ogiltig. Ett exempel OperationOutcome returneras med felmeddelanden och kan se ut som i följande kodexempel:

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

I det här exemplet överensstämde inte resursen med den angivna patientprofilen, vilket krävde ett patientidentifierarvärde och kön.

Om du vill ange en profil som en parameter kan du ange den kanoniska URL:en för profilen som ska verifieras mot, till exempel följande exempel för HL7-basprofilen för heartrate:

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

Alternativ 2: Verifiera en ny resurs

Om du vill verifiera en ny resurs som du laddar upp till servern kan du göra en POST begäran:

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

Exempel:

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

Den här begäran verifierar först resursen. En ny resurs som du anger i begäran skapas efter valideringen. Servern returnerar alltid ett OperationOutcome som resultat.

Alternativ 3: Verifiera på resursen CREATE/UPDATE med huvudet

Du kan välja när du vill verifiera resursen, till exempel på resursen CREATE eller UPDATE. Som standard är FHIR-tjänsten konfigurerad för att avanmäla validering på resursen Create/Update. Den här funktionen gör det möjligt att verifiera på Create/Update, med hjälp av x-ms-profile-validation huvudet. Ange "x-ms-profile-validation" till true för validering.

Anteckning

I FHIR-tjänsten med öppen källkod kan du ändra serverkonfigurationsinställningen under CoreFeatures.

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

Om du vill aktivera strikt validering använder du "Prefer: handling"-huvudet med värdet strikt. Genom att ange det här huvudet rapporteras verifieringsvarningen som ett fel.

Nästa steg

I den här artikeln har du lärt dig hur du verifierar resurser mot profiler med hjälp av $validate. Mer information om de andra FHIR-funktioner som stöds finns i

FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.