release new pubpack

This commit is contained in:
Grahame Grieve 2025-01-04 22:34:53 +11:00
parent 69862fdcb7
commit f618d15623
4 changed files with 24 additions and 7 deletions

View File

@ -5218,10 +5218,10 @@ public class StructureDefinitionRenderer extends ResourceRenderer {
}
// ok, now we collect constraints on the value domain, which maybe in sub-elements, though at some point we give up
if (defn.hasFixed()) {
e.getConstraints().add(TableElementConstraint.makeValue(TableElementConstraintType.FIXED, path, defn.getFixed()));
e.getConstraints().add(TableElementConstraint.makeValueVS(TableElementConstraintType.FIXED, path, defn.getFixed(), defn.getBinding().getStrength(), defn.getBinding().getValueSet()));
}
if (defn.hasPattern()) {
e.getConstraints().add(TableElementConstraint.makeValue(TableElementConstraintType.PATTERN, path, defn.getPattern()));
e.getConstraints().add(TableElementConstraint.makeValueVS(TableElementConstraintType.PATTERN, path, defn.getPattern(), defn.getBinding().getStrength(), defn.getBinding().getValueSet()));
}
if (defn.hasMinValue() || defn.hasMaxValue()) {
e.getConstraints().add(TableElementConstraint.makeRange(TableElementConstraintType.RANGE, path, defn.getMinValue(), defn.getMaxValue()));
@ -5229,7 +5229,7 @@ public class StructureDefinitionRenderer extends ResourceRenderer {
if (defn.hasMaxLength()) {
e.getConstraints().add(TableElementConstraint.makeValue(TableElementConstraintType.MAXLENGTH, path, defn.getMaxLengthElement()));
}
if (defn.hasBinding() && defn.getBinding().hasValueSet() && (!cardinality || (diffDefn != null && diffDefn.hasBinding())) && !defn.hasFixed()) {
if (defn.hasBinding() && defn.getBinding().hasValueSet() && (!cardinality || (diffDefn != null && diffDefn.hasBinding())) && !defn.hasFixedOrPattern()) {
e.getConstraints().add(TableElementConstraint.makeBinding(TableElementConstraintType.BINDING, path, defn.getBinding().getStrength(), defn.getBinding().getValueSet()));
}
}

View File

@ -225,6 +225,16 @@ public class ElementTable {
return self;
}
public static TableElementConstraint makeValueVS(TableElementConstraintType type, String path, DataType value, BindingStrength strength, String valueSet) {
TableElementConstraint self = new TableElementConstraint();
self.type = type;
self.path = path;
self.value = value;
self.strength = strength;
self.valueSet = valueSet;
return self;
}
public static TableElementConstraint makeRange(TableElementConstraintType type, String path, DataType value, DataType value2) {
TableElementConstraint self = new TableElementConstraint();
self.type = type;
@ -597,12 +607,16 @@ public class ElementTable {
private void renderBindingConstraint(XhtmlNode x, TableElementConstraint c) {
String name = c.path == null ? "value" : c.path;
x.code().tx(name);
renderBinding(x, c, " is bound to ");
}
private void renderBinding(XhtmlNode x, TableElementConstraint c, String phrase) {
ValueSet vs = context.getContext().findTxResource(ValueSet.class, c.valueSet);
if (vs == null) {
x.tx(" is bound to an unknown valueset ");
x.tx(phrase+"an unknown valueset ");
x.code().tx(c.valueSet);
} else {
x.tx(" is bound to ");
x.tx(phrase);
x.ah(vs.getWebPath()).tx(vs.present());
try {
ValueSetExpansionOutcome exp = context.getContext().expandVS(vs, true, false);
@ -688,6 +702,9 @@ public class ElementTable {
break;
}
renderValue(x, c.value);
if (c.strength != null && c.valueSet != null) {
renderBinding(x, c, " from ");
}
}
public void renderValue(XhtmlNode x, DataType v) throws IOException {

View File

@ -6,6 +6,6 @@ public class CommonPackages {
public static final String VER_XVER = "0.1.0";
public static final String ID_PUBPACK = "hl7.fhir.pubpack";
public static final String VER_PUBPACK = "0.2.0";
public static final String VER_PUBPACK = "0.2.1";
}

View File

@ -372,7 +372,7 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
public String getLatestVersion(String id) throws IOException {
for (PackageServer nextPackageServer : getPackageServers()) {
// special case:
if (!(Utilities.existsInList(id, CommonPackages.ID_PUBPACK, "hl7.terminology.r5") && PackageServer.PRIMARY_SERVER.equals(nextPackageServer.getUrl()))) {
if (!(Utilities.existsInList(id, CommonPackages.ID_PUBPACK, "hl7.terminology.r5") && PackageServer.SECONDARY_SERVER.equals(nextPackageServer.getUrl()))) {
PackageClient pc = new PackageClient(nextPackageServer);
try {
return pc.getLatestVersion(id);