Changes relevant to improving the rendering of artifact intros. Specifically:

- ensure that when validating codes against value sets, the valid coding is actually returned
- strip out the new extensions we add for FMM
- improve the rendering of Quantity and Range.  (The former was horrid and the latter wasn't as nice as it could be.)
This commit is contained in:
Lloyd McKenzie 2022-01-04 21:46:57 -07:00
parent 8706b3c4a4
commit 86c3609288
3 changed files with 26 additions and 16 deletions

View File

@ -2087,6 +2087,8 @@ public class ProfileUtilities extends TranslatingUtilities {
private void removeStatusExtensions(ElementDefinition outcome) {
outcome.removeExtension(ToolingExtensions.EXT_FMM_LEVEL);
outcome.removeExtension(ToolingExtensions.EXT_FMM_SUPPORT);
outcome.removeExtension(ToolingExtensions.EXT_FMM_DERIVED);
outcome.removeExtension(ToolingExtensions.EXT_STANDARDS_STATUS);
outcome.removeExtension(ToolingExtensions.EXT_NORMATIVE_VERSION);
outcome.removeExtension(ToolingExtensions.EXT_WORKGROUP);

View File

@ -1139,9 +1139,11 @@ public class DataRenderer extends Renderer {
protected String displayQuantity(Quantity q) {
StringBuilder s = new StringBuilder();
s.append("(system = '").append(TerminologyRenderer.describeSystem(q.getSystem()))
.append("' code ").append(q.getCode())
.append(" = '").append(lookupCode(q.getSystem(), null, q.getCode())).append("')");
s.append(q.hasValue() ? q.getValue() : "?");
if (q.hasUnit())
s.append(" ").append(q.getUnit());
else if (q.hasCode())
s.append(" ").append(q.getCode());
return s.toString();
}
@ -1166,18 +1168,20 @@ public class DataRenderer extends Renderer {
}
public String displayRange(Range q) {
if (!q.hasLow() && !q.hasHigh())
return "?";
StringBuilder b = new StringBuilder();
if (q.hasLow())
b.append(q.getLow().getValue().toString());
else
b.append("?");
b.append("-");
if (q.hasHigh())
b.append(q.getHigh().getValue().toString());
else
b.append("?");
if (q.getLow().hasUnit())
b.append(" "+q.getLow().getUnit());
boolean sameUnits = (q.getLow().hasUnit() && q.getHigh().hasUnit() && q.getLow().getUnit().equals(q.getHigh().getUnit()))
|| (q.getLow().hasCode() && q.getHigh().hasCode() && q.getLow().getCode().equals(q.getHigh().getCode()));
String low = "?";
if (q.hasLow() && q.getLow().hasValue())
low = sameUnits ? q.getLow().getValue().toString() : displayQuantity(q.getLow());
String high = displayQuantity(q.getHigh());
if (high.isEmpty())
high = "?";
b.append(low).append("\u00A0 to \u00A0").append(high);
return b.toString();
}

View File

@ -142,6 +142,7 @@ public class ValueSetCheckerSimple extends ValueSetWorker implements ValueSetChe
}
}
}
Coding foundCoding = null;
if (valueset != null && options.getValueSetMode() != ValueSetMode.NO_MEMBERSHIP_CHECK) {
Boolean result = false;
for (Coding c : code.getCoding()) {
@ -150,6 +151,7 @@ public class ValueSetCheckerSimple extends ValueSetWorker implements ValueSetChe
result = null;
} else if (ok) {
result = true;
foundCoding = c;
}
}
if (result == null) {
@ -163,7 +165,9 @@ public class ValueSetCheckerSimple extends ValueSetWorker implements ValueSetChe
} else if (warnings.size() > 0) {
return new ValidationResult(IssueSeverity.WARNING, warnings.toString());
} else {
return new ValidationResult(IssueSeverity.INFORMATION, null);
ConceptDefinitionComponent cd = new ConceptDefinitionComponent(foundCoding.getCode());
cd.setDisplay(foundCoding.getDisplay());
return new ValidationResult(foundCoding.getSystem(), cd);
}
}