fix up validation of value set for code system and expansions
This commit is contained in:
parent
836863e372
commit
d837214c66
|
@ -38,15 +38,30 @@ public class CodeSystemValidator extends BaseValidator {
|
|||
vs = null;
|
||||
}
|
||||
if (vs != null) {
|
||||
if (rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), vs.hasCompose() && !vs.hasExpansion(), I18nConstants.CODESYSTEM_CS_VS_MISMATCH, url, vsu))
|
||||
if (rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), vs.getCompose().getInclude().size() == 1, I18nConstants.CODESYSTEM_CS_VS_INVALID, url, vsu))
|
||||
if (rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), vs.hasCompose(), I18nConstants.CODESYSTEM_CS_VS_INVALID, url, vsu)) {
|
||||
if (rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), vs.getCompose().getInclude().size() == 1, I18nConstants.CODESYSTEM_CS_VS_INVALID, url, vsu)) {
|
||||
if (rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), vs.getCompose().getInclude().get(0).getSystem().equals(url), I18nConstants.CODESYSTEM_CS_VS_WRONGSYSTEM, url, vsu, vs.getCompose().getInclude().get(0).getSystem())) {
|
||||
rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), !vs.getCompose().getInclude().get(0).hasValueSet()
|
||||
&& !vs.getCompose().getInclude().get(0).hasConcept() && !vs.getCompose().getInclude().get(0).hasFilter(), I18nConstants.CODESYSTEM_CS_VS_INCLUDEDETAILS, url, vsu);
|
||||
if (vs.hasExpansion()) {
|
||||
int count = countConcepts(cs);
|
||||
rule(errors, IssueType.BUSINESSRULE, stack.getLiteralPath(), vs.getExpansion().getContains().size() == count, I18nConstants.CODESYSTEM_CS_VS_EXP_MISMATCH, url, vsu, count, vs.getExpansion().getContains().size());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // todo... try getting the value set the other way...
|
||||
}
|
||||
|
||||
private int countConcepts(Element cs) {
|
||||
List<Element> concepts = cs.getChildrenByName("concept");
|
||||
int res = concepts.size();
|
||||
for (Element concept : concepts) {
|
||||
res = res + countConcepts(concept);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue