mirror of
https://github.com/hapifhir/org.hl7.fhir.core.git
synced 2025-03-08 20:49:16 +00:00
fix issue with complex extension snapshot goes into 3rd level when it doesn't need to
This commit is contained in:
parent
a4fd92633d
commit
0999c8d460
@ -983,9 +983,9 @@ public class ProfileComparer extends CanonicalResourceComparer {
|
||||
String leftColor = !combined.hasLeft() ? COLOR_NO_ROW_LEFT : combined.hasErrors() ? COLOR_DIFFERENT : null;
|
||||
String rightColor = !combined.hasRight() ? COLOR_NO_ROW_LEFT : combined.hasErrors() ? COLOR_DIFFERENT : null;
|
||||
if (combined.hasLeft()) {
|
||||
nc = utilsRight.genElementNameCell(gen, combined.getLeft().getDef(), "??", true, corePath, prefix, root, false, false, combined.getLeft().getSrc(), typesRow, row, false, ext, used , ref, sName);
|
||||
nc = utilsRight.genElementNameCell(gen, combined.getLeft().getDef(), "??", true, corePath, prefix, root, false, false, combined.getLeft().getSrc(), typesRow, row, false, ext, used , ref, sName, null);
|
||||
} else {
|
||||
nc = utilsRight.genElementNameCell(gen, combined.getRight().getDef(), "??", true, corePath, prefix, root, false, false, combined.getRight().getSrc(), typesRow, row, false, ext, used , ref, sName);
|
||||
nc = utilsRight.genElementNameCell(gen, combined.getRight().getDef(), "??", true, corePath, prefix, root, false, false, combined.getRight().getSrc(), typesRow, row, false, ext, used , ref, sName, null);
|
||||
}
|
||||
if (combined.hasLeft()) {
|
||||
frame(utilsRight.genElementCells(gen, combined.getLeft().getDef(), "??", true, corePath, prefix, root, false, false, combined.getLeft().getSrc(), typesRow, row, true, ext, used , ref, sName, nc, false, false, null), leftColor);
|
||||
|
@ -1593,10 +1593,16 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||
StructureDefinition dt = getTypeForElement(differential, diffCursor, profileName, diffMatches, outcome, webUrl);
|
||||
contextName = dt.getUrl();
|
||||
int start = diffCursor;
|
||||
while (differential.getElement().size() > diffCursor && pathStartsWith(differential.getElement().get(diffCursor).getPath(), cpath+"."))
|
||||
if (differential.getElement().get(diffCursor).getPath().equals(cpath)) {
|
||||
diffCursor++;
|
||||
processPaths(indent+" ", result, dt.getSnapshot(), differential, 1 /* starting again on the data type, but skip the root */, start, dt.getSnapshot().getElement().size()-1,
|
||||
diffCursor-1, url, getWebUrl(dt, webUrl, indent), profileName, cpath, outcome.getPath(), trimDifferential, contextName, resultPathBase, false, null, null, redirector, srcSD);
|
||||
}
|
||||
while (differential.getElement().size() > diffCursor && pathStartsWith(differential.getElement().get(diffCursor).getPath(), cpath+".")) {
|
||||
diffCursor++;
|
||||
}
|
||||
if (diffCursor > start) {
|
||||
processPaths(indent+" ", result, dt.getSnapshot(), differential, 1 /* starting again on the data type, but skip the root */, start, dt.getSnapshot().getElement().size()-1,
|
||||
diffCursor-1, url, getWebUrl(dt, webUrl, indent), profileName, cpath, outcome.getPath(), trimDifferential, contextName, resultPathBase, false, null, null, redirector, srcSD);
|
||||
}
|
||||
}
|
||||
baseCursor++;
|
||||
} else {
|
||||
@ -4144,7 +4150,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||
used.used = true;
|
||||
if (logicalModel && element.hasRepresentation(PropertyRepresentation.XMLATTR))
|
||||
sName = "@"+sName;
|
||||
Cell nc = genElementNameCell(gen, element, profileBaseFileName, snapshot, corePath, imagePath, root, logicalModel, allInvariants, profile, typesRow, row, hasDef, ext, used, ref, sName);
|
||||
Cell nc = genElementNameCell(gen, element, profileBaseFileName, snapshot, corePath, imagePath, root, logicalModel, allInvariants, profile, typesRow, row, hasDef, ext, used, ref, sName, all);
|
||||
genElementCells(gen, element, profileBaseFileName, snapshot, corePath, imagePath, root, logicalModel, allInvariants, profile, typesRow, row, hasDef, ext, used, ref, sName, nc, mustSupport, true, rc);
|
||||
if (element.hasSlicing()) {
|
||||
if (standardExtensionSlicing(element)) {
|
||||
@ -4256,21 +4262,44 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||
|
||||
public Cell genElementNameCell(HierarchicalTableGenerator gen, ElementDefinition element, String profileBaseFileName, boolean snapshot, String corePath,
|
||||
String imagePath, boolean root, boolean logicalModel, boolean allInvariants, StructureDefinition profile, Row typesRow, Row row, boolean hasDef,
|
||||
boolean ext, UnusedTracker used, String ref, String sName) throws IOException {
|
||||
boolean ext, UnusedTracker used, String ref, String sName, List<ElementDefinition> elements) throws IOException {
|
||||
String hint = "";
|
||||
hint = checkAdd(hint, (element.hasSliceName() ? translate("sd.table", "Slice")+" "+element.getSliceName() : ""));
|
||||
if (hasDef && element.hasDefinition()) {
|
||||
hint = checkAdd(hint, (hasDef && element.hasSliceName() ? ": " : ""));
|
||||
hint = checkAdd(hint, !hasDef ? null : gt(element.getDefinitionElement()));
|
||||
}
|
||||
if (element.hasSlicing()) {
|
||||
sName = "Slices for "+sName;
|
||||
if (element.hasSlicing() && slicesExist(elements, element)) { // some elements set up slicing but don't actually slice, so we don't augment the name
|
||||
sName = "Slices for "+sName;
|
||||
}
|
||||
Cell left = gen.new Cell(null, ref, sName, hint, null);
|
||||
row.getCells().add(left);
|
||||
return left;
|
||||
}
|
||||
|
||||
private boolean slicesExist(List<ElementDefinition> elements, ElementDefinition element) {
|
||||
if (elements == null) {
|
||||
return true;
|
||||
}
|
||||
boolean found = false;
|
||||
int start = elements.indexOf(element);
|
||||
if (start < 0) {
|
||||
return false;
|
||||
}
|
||||
for (int i = start; i < elements.size(); i++) {
|
||||
ElementDefinition ed = elements.get(i);
|
||||
if (ed.getPath().equals(element.getPath())) {
|
||||
if (ed.hasSliceName()) {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
if (ed.getPath().length() < element.getPath().length()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
public List<Cell> genElementCells(HierarchicalTableGenerator gen, ElementDefinition element, String profileBaseFileName, boolean snapshot, String corePath,
|
||||
String imagePath, boolean root, boolean logicalModel, boolean allInvariants, StructureDefinition profile, Row typesRow, Row row, boolean hasDef,
|
||||
boolean ext, UnusedTracker used, String ref, String sName, Cell nameCell, boolean mustSupport, boolean allowSubRows, RenderingContext rc) throws IOException {
|
||||
|
@ -75,7 +75,7 @@ public class PackageHacker {
|
||||
dep.addProperty("hl7.fhir.r4.core", "4.0.1");
|
||||
dep.addProperty("ch.fhir.ig.ch-core", "2.0.0");
|
||||
dep.addProperty("ch.fhir.ig.ch-epr-term", "2.0.4");
|
||||
dep.addProperty("ch.fhir.ig.ch-emed","2.0.0");
|
||||
dep.addProperty("ch.fhir.ig.ch-emed","current");
|
||||
|
||||
// dep.addProperty("hl7.fhir.r4.examples", "4.0.1");
|
||||
// dep.addProperty("hl7.fhir.r4.expansions", "4.0.1");
|
||||
|
Loading…
x
Reference in New Issue
Block a user