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 kunt u resources valideren 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 een 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 wil gezegd, er worden geen wijzigingen aangebracht in de onveranderbare velden).
Er zijn verschillende manieren om de resource te valideren:
- Optie 1: Een bestaande resource valideren met de validatiebewerking.
- Optie 2: Valideer een nieuwe resource met de validatiebewerking.
- Optie 3: Valideren op resource CREATE of UPDATE met behulp van een header.
Bij de geslaagde validatie van een bestaande of nieuwe resource met de validatiebewerking wordt de resource niet behouden in de FHIR-service. Gebruik Optie 3 om gevalideerde resources te behouden naar de FHIR-service.
De FHIR-service retourneert altijd een OperationOutcome
als validatieresultaten voor een $validate bewerking. Zodra een resource is doorgegeven aan $validate eindpunt, voert de FHIR-service twee stappen uit. 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 een resource is geparseerd, wordt de volledige validatie uitgevoerd als de 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 in het volgende voorbeeld voor het HL7-basisprofiel.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 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 of UPDATE met behulp van een 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 validatie uitvoeren voor Create/Update
het gebruik van de x-ms-profile-validation
header. Ingesteld x-ms-profile-validation
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 een header 'Voorkeur: verwerken' met een strikte waarde. Door deze header in te stellen, wordt er een 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
Notitie
FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.