Share via


FHIR-resources valideren op profielen in Azure Health Data Services

In het artikel Winkelprofielen in de FHIR-service hebt u de basisbeginselen van FHIR-profielen doorlopen en deze opgeslagen. Met de FHIR-service in Azure Health Data Services (hierbij de FHIR-service genoemd) kunnen resources worden geverifieerd op basis van profielen om te zien of de resources voldoen aan de profielen. In dit artikel wordt uitgelegd hoe u resources kunt valideren $validate op basis van profielen.

$validate is een bewerking in Fast Healthcare Interoperability Resources (FHIR®) waarmee u ervoor kunt zorgen dat een FHIR-resource voldoet aan de basisresourcevereisten of een opgegeven profiel. Deze bewerking zorgt ervoor dat de gegevens in de FHIR-service de verwachte kenmerken en waarden hebben. Ga naar HL7 FHIR Specification voor informatie over de validatiebewerking. Per specificatie kan modus worden opgegeven met $validate, zoals maken en bijwerken:

  • create: Azure API for FHIR controleert of de profielinhoud uniek is ten opzichte van de bestaande resources en of het acceptabel is om te worden gemaakt als een nieuwe resource.
  • update: Controleert of het profiel een update is op basis van de benoemde bestaande resource (er worden geen wijzigingen aangebracht in de onveranderbare velden).

Er zijn verschillende manieren om resources te valideren:

  • Optie 1: Een bestaande resource valideren met de validatiebewerking.
  • Optie 2: Een nieuwe resource valideren met de validatiebewerking.
  • Optie 3: Valideren op resource CREATE/UPDATE met behulp van header.

Bij een geslaagde validatie van een bestaande/nieuwe resource met de validatiebewerking wordt de resource niet persistent gemaakt in de FHIR-service. Gebruik optie 3: valideren op resource CREATE/UPDATE met behulp van header, om de gevalideerde resource te behouden in de FHIR-service.

FHIR-service retourneert altijd een OperationOutcome als de validatieresultaten voor $validate bewerking. FHIR-service voert validatie in twee stappen uit, zodra een resource wordt doorgegeven aan $validate eindpunt. De eerste stap is een basisvalidatie om ervoor te zorgen dat de resource kan worden geparseerd. Tijdens het parseren van resources moeten afzonderlijke fouten worden opgelost voordat u verdergaat met de volgende stap. Zodra de resource is geparseerd, wordt de volledige validatie uitgevoerd als tweede stap.

Notitie

Waardensets die voor validatie moeten worden gebruikt, moeten worden geüpload naar de FHIR-server. Dit omvat waardenets die deel uitmaken van de FHIR-specificatie, evenals waardesets die zijn gedefinieerd in implementatiehandleidingen. Alleen volledig uitgevouwen waardenets die een volledige lijst met alle codes bevatten, worden ondersteund. ValueSet-definities die verwijzen naar externe bronnen worden niet ondersteund.

Optie 1: Een bestaande resource valideren

Als u een bestaande resource wilt valideren, gebruikt u $validate in een GET aanvraag:

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

Bijvoorbeeld:

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

In dit voorbeeld valideert u de bestaande patiëntresource a6e11662-def8-4dde-9ebc-4429e68d130e op basis van de patiëntresource. Als deze geldig is, krijgt u een OperationOutcome zoals het volgende codevoorbeeld:

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

Als de resource niet geldig is, krijgt u een foutcode en een foutbericht met details over waarom de resource ongeldig is. Een voorbeeld OperationOutcome wordt geretourneerd met foutberichten en kan eruitzien als het volgende codevoorbeeld:

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

In dit voorbeeld voldoet de resource niet aan het opgegeven patiëntenprofiel, waarvoor een waarde voor patiënt-id en geslacht is vereist.

Als u een profiel als parameter wilt opgeven, kunt u de canonieke URL opgeven voor het profiel waarop moet worden gevalideerd, zoals het volgende voorbeeld voor het HL7-basisprofiel voor heartrate:

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

Optie 2: Een nieuwe resource valideren

Als u een nieuwe resource wilt valideren die u uploadt naar de server, kunt u een POST aanvraag uitvoeren:

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

Bijvoorbeeld:

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

Met deze aanvraag wordt eerst de resource gevalideerd. Nieuwe resource die u opgeeft in de aanvraag, wordt gemaakt na validatie. De server retourneert altijd een OperationOutcome als resultaat.

Optie 3: Valideren op resource CREATE/UPDATE met behulp van header

U kunt kiezen wanneer u uw resource wilt valideren, bijvoorbeeld op resource CREATE of UPDATE. De FHIR-service is standaard geconfigureerd om u af te melden voor validatie voor de resource Create/Update. Met deze mogelijkheid kunt u valideren op Create/Update, met behulp van de x-ms-profile-validation header. Stel x-ms-profile-validation in op true voor validatie.

Notitie

In de opensource-FHIR-service kunt u de serverconfiguratie-instelling wijzigen onder CoreFeatures.

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

Als u strikte validatie wilt inschakelen, gebruikt u de header 'Voorkeur: verwerking' met de waarde strikt. Als u deze header instelt, wordt de validatiewaarschuwing gerapporteerd als een fout.

Volgende stappen

In dit artikel hebt u geleerd hoe u resources kunt valideren op basis van profielen met behulp van $validate. Zie voor meer informatie over de andere functies die door de FHIR-service worden ondersteund

FHIR® is een gedeponeerd handelsmerk van HL7 en wordt gebruikt met toestemming van HL7.