mirror of
https://github.com/hapifhir/org.hl7.fhir.core.git
synced 2025-02-07 21:38:15 +00:00
Merge pull request #1891 from hapifhir/2025-01-gg-duplicate-contained-ids
Add check for duplicate ids on contained resources
This commit is contained in:
commit
6b657b01ed
@ -1188,4 +1188,5 @@ public class I18nConstants {
|
|||||||
public static final String VALIDATION_AI_TEXT_CODE = "VALIDATION_AI_TEXT_CODE";
|
public static final String VALIDATION_AI_TEXT_CODE = "VALIDATION_AI_TEXT_CODE";
|
||||||
public static final String VALIDATION_AI_FAILED = "VALIDATION_AI_FAILED";
|
public static final String VALIDATION_AI_FAILED = "VALIDATION_AI_FAILED";
|
||||||
public static final String VALIDATION_AI_FAILED_LOG = "VALIDATION_AI_FAILED_LOG";
|
public static final String VALIDATION_AI_FAILED_LOG = "VALIDATION_AI_FAILED_LOG";
|
||||||
|
public static final String RESOURCE_DUPLICATE_CONTAINED_ID = "RESOURCE_DUPLICATE_CONTAINED_ID";
|
||||||
}
|
}
|
||||||
|
@ -1219,4 +1219,5 @@ REFERENCE_RESOLUTION_FAILED = Fetching ''{0}'' failed. System details: {1}: {2}
|
|||||||
VALIDATION_AI_TEXT_CODE = Apparent mis-match between code ''{0}'' and text ''{1}'': {3} ({2} confidence)
|
VALIDATION_AI_TEXT_CODE = Apparent mis-match between code ''{0}'' and text ''{1}'': {3} ({2} confidence)
|
||||||
VALIDATION_AI_FAILED = Consulting AI failed: {0}
|
VALIDATION_AI_FAILED = Consulting AI failed: {0}
|
||||||
VALIDATION_AI_FAILED_LOG = Consulting AI failed: {0} (see {1} for further details)
|
VALIDATION_AI_FAILED_LOG = Consulting AI failed: {0} (see {1} for further details)
|
||||||
|
RESOURCE_DUPLICATE_CONTAINED_ID = Duplicate ID for contained resource: {0}
|
||||||
|
|
||||||
|
@ -6375,6 +6375,16 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
|
|||||||
hc = valContext.forContained(element);
|
hc = valContext.forContained(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (special == SpecialElement.CONTAINED) {
|
||||||
|
String id = element.getNamedChildValue("id");
|
||||||
|
if (id == null) {
|
||||||
|
// this is an error handled elsewhere
|
||||||
|
} else {
|
||||||
|
ok = rule(errors, "2025-01-28", IssueType.DUPLICATE, element.line(), element.col(), stack.getLiteralPath(),
|
||||||
|
!stack.getIds().containsKey("!"+id), I18nConstants.RESOURCE_DUPLICATE_CONTAINED_ID, id) && ok;
|
||||||
|
stack.getIds().put("!"+id, element);
|
||||||
|
}
|
||||||
|
}
|
||||||
stack.resetIds();
|
stack.resetIds();
|
||||||
if (special != null) {
|
if (special != null) {
|
||||||
switch (special) {
|
switch (special) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user