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.