adjust value set rendering for fragment code systems

This commit is contained in:
Grahame Grieve 2023-11-24 08:51:02 +11:00
parent bb9064a8cc
commit 3cd75ef89e
1 changed files with 11 additions and 6 deletions

View File

@ -187,6 +187,9 @@ public class ValueSetRenderer extends TerminologyRenderer {
if (vs.hasCopyright())
generateCopyright(x, vs);
}
boolean hasFragment = generateContentModeNotices(x, vs.getExpansion(), vs);
generateVersionNotice(x, vs.getExpansion(), vs);
if (ToolingExtensions.hasExtension(vs.getExpansion(), ToolingExtensions.EXT_EXP_TOOCOSTLY)) {
List<Extension> exl = vs.getExpansion().getExtensionsByUrl(ToolingExtensions.EXT_EXP_TOOCOSTLY);
boolean other = false;
@ -203,11 +206,9 @@ public class ValueSetRenderer extends TerminologyRenderer {
if (count == null)
x.para().tx("This value set does not contain a fixed number of concepts");
else
x.para().tx("This value set contains "+count.toString()+" concepts");
x.para().tx("This value set contains "+(hasFragment ? "at least " : "")+count.toString()+" concepts");
}
generateContentModeNotices(x, vs.getExpansion(), vs);
generateVersionNotice(x, vs.getExpansion(), vs);
boolean doLevel = false;
for (ValueSetExpansionContainsComponent cc : vs.getExpansion().getContains()) {
@ -319,12 +320,13 @@ public class ValueSetRenderer extends TerminologyRenderer {
return false;
}
private void generateContentModeNotices(XhtmlNode x, ValueSetExpansionComponent expansion, Resource vs) {
private boolean generateContentModeNotices(XhtmlNode x, ValueSetExpansionComponent expansion, Resource vs) {
generateContentModeNotice(x, expansion, "example", "Expansion based on example code system", vs);
generateContentModeNotice(x, expansion, "fragment", "Expansion based on code system fragment", vs);
return generateContentModeNotice(x, expansion, "fragment", "Expansion based on code system fragment", vs);
}
private void generateContentModeNotice(XhtmlNode x, ValueSetExpansionComponent expansion, String mode, String text, Resource vs) {
private boolean generateContentModeNotice(XhtmlNode x, ValueSetExpansionComponent expansion, String mode, String text, Resource vs) {
boolean res = false;
Multimap<String, String> versions = HashMultimap.create();
for (ValueSetExpansionParameterComponent p : expansion.getParameter()) {
if (p.getName().equals(mode)) {
@ -343,6 +345,7 @@ public class ValueSetRenderer extends TerminologyRenderer {
XhtmlNode p = x.para().style("border: black 1px dotted; background-color: #ffcccc; padding: 8px; margin-bottom: 8px");
p.tx(text+" ");
expRef(p, s, v, vs);
res = true;
}
} else {
for (String v : versions.get(s)) {
@ -351,12 +354,14 @@ public class ValueSetRenderer extends TerminologyRenderer {
div.para().tx(text+"s: ");
ul = div.ul();
first = false;
res = true;
}
expRef(ul.li(), s, v, vs);
}
}
}
}
return res;
}
private boolean checkDoSystem(ValueSet vs, ValueSet src) {