Я хочу разрешить пациенту без пола, но записать предупреждение в журнал. Для этого я определяю StructureDefinition со снимком элемента «Patient.Gender» с ограничением с серьезностью «warning».
Это не работает, так как мой валидатор по-прежнему возвращает сообщение об ошибке с серьезностью: «Error».
С другой стороны, если я пытаюсь установить «фатальное» ограничение - ВСЕ мои ошибки исчезают, и мой ресурс внезапно становится действительным, без ошибок / log.
Использование FHIR Release 3 (STU)
Вот моя структура:
{
"id": "Patient.gender",
"path": "Patient.gender",
"short": "male | female | other | unknown",
"definition": "Administrative Gender.",
"comment": "The gender may not match the biological sex as determined by genetics...",
"requirements": "Needed for identification of the individual, in combination with (at least) name and birth date...",
"min": 0,
"max": "1",
"constraint": [
{
"key": "gen-1",
"severity": "warning",
"human": "Something something"
}
],
"type": [
{
"code": "code"
}
],
"isSummary": true,
"binding": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "AdministrativeGender"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
"valueBoolean": true
}
],
"strength": "required",
"description": "The gender of a person used for administrative purposes.",
"valueSetReference": {
"reference": "http://hl7.org/fhir/ValueSet/administrative-gender"
}
},
"mapping": [
{
"identity": "v2",
"map": "PID-8"
},
{
"identity": "rim",
"map": "player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender"
},
{
"identity": "cda",
"map": ".patient.administrativeGenderCode"
}
]
},
И мой валидатор:
// Use DefaultProfileValidationSupport since derived profiles generally
// rely on built-in profiles also being available
DefaultProfileValidationSupport defaultSupport = new DefaultProfileValidationSupport();
// Create a chain that includes both the pre-populated and default. We put
// the pre-populated (custom) support module first so that it takes precedence
FhirInstanceValidator instanceValidator = new FhirInstanceValidator();
ValidationSupportChain support = new ValidationSupportChain(
new VCValidationSupport(fhirContext), defaultSupport);
instanceValidator.setValidationSupport(support);
instanceValidator.setNoTerminologyChecks(true);
validator.registerValidatorModule(instanceValidator);