Delen via


FHIR-resources valideren op profielen in Azure Health Data Services

In het artikel over winkelprofielen in het FHIR-serviceartikel doorloopt u de basisbeginselen van FHIR-profielen en slaat u deze op. 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 $validate u resources kunt valideren 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-specificatie voor informatie over de validatiebewerking. Per specificatie kan de modus worden opgegeven met $validate, zoals maken en bijwerken:

  • create: de FHIR-service controleert of de profielinhoud uniek is 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 voor de genomineerde bestaande resource (dat is geen wijzigingen aangebracht in de onveranderbare velden).

Er zijn verschillende manieren om de resource te valideren:

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

Bij de geslaagde validatie van een bestaande/nieuwe resource met de validatiebewerking wordt de resource niet bewaard in de FHIR-service. Gebruik Optie 3: Valideren op resource CREATE/UPDATE met behulp van header om de gevalideerde resource te behouden naar de FHIR-service.

FHIR Service retourneert altijd een OperationOutcome als validatieresultaten voor $validate bewerking. FHIR-service voert twee stappen uit, zodra een resource is 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 moeten worden gebruikt voor validatie, 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 waardensets 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 $validate u deze in een GET aanvraag:

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

Voorbeeld:

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 basisresource voor patiënten. Als dit geldig is, krijgt u een voorbeeld van de OperationOutcome volgende code:

{
    "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 de patiënt-id en het geslacht is vereist.

Als u een profiel als parameter wilt opgeven, kunt u de canonieke URL voor het profiel opgeven 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 doen:

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

Voorbeeld:

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

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

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

U kunt kiezen wanneer u uw resource wilt valideren, zoals op de resource CREATE of UPDATE. De FHIR-service is standaard geconfigureerd voor het afmelden van validatie voor resources Create/Update. Met deze mogelijkheid kunt u valideren Create/Updateop , met behulp van de x-ms-profile-validation header. Stel x-ms-profile-validation in op waar 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 'Prefer: handling' met een strikte waarde. Door deze header in te stellen, 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 geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.