fix rendering of trigger definition using tables inside paragraphs

This commit is contained in:
Grahame Grieve 2023-12-01 16:54:54 +11:00
parent 6e81418308
commit 694251cb85
1 changed files with 53 additions and 22 deletions

View File

@ -1580,31 +1580,62 @@ public class DataRenderer extends Renderer implements CodeResolver {
public void renderTriggerDefinition(XhtmlNode x, TriggerDefinition td) throws FHIRFormatError, DefinitionException, IOException { public void renderTriggerDefinition(XhtmlNode x, TriggerDefinition td) throws FHIRFormatError, DefinitionException, IOException {
XhtmlNode tbl = x.table("grid"); if (x.isPara()) {
x.b().tx("Type");
x.tx(": ");
x.tx(td.getType().getDisplay());
XhtmlNode tr = tbl.tr(); if (td.hasName()) {
tr.td().b().tx("Type"); x.tx(", ");
tr.td().tx(td.getType().getDisplay()); x.b().tx("Name");
x.tx(": ");
x.tx(td.getType().getDisplay());
}
if (td.hasCode()) {
x.tx(", ");
x.b().tx("Code");
x.tx(": ");
renderCodeableConcept(x, td.getCode());
}
if (td.hasTiming()) {
x.tx(", ");
x.b().tx("Timing");
x.tx(": ");
render(x, td.getTiming());
}
if (td.hasCondition()) {
x.tx(", ");
x.b().tx("Condition");
x.tx(": ");
renderExpression(x, td.getCondition());
}
} else {
XhtmlNode tbl = x.table("grid");
if (td.hasName()) { XhtmlNode tr = tbl.tr();
tr = tbl.tr(); tr.td().b().tx("Type");
tr.td().b().tx("Name");
tr.td().tx(td.getType().getDisplay()); tr.td().tx(td.getType().getDisplay());
}
if (td.hasCode()) { if (td.hasName()) {
tr = tbl.tr(); tr = tbl.tr();
tr.td().b().tx("Code"); tr.td().b().tx("Name");
renderCodeableConcept(tr.td(), td.getCode()); tr.td().tx(td.getType().getDisplay());
} }
if (td.hasTiming()) { if (td.hasCode()) {
tr = tbl.tr(); tr = tbl.tr();
tr.td().b().tx("Timing"); tr.td().b().tx("Code");
render(tr.td(), td.getTiming()); renderCodeableConcept(tr.td(), td.getCode());
} }
if (td.hasCondition()) { if (td.hasTiming()) {
tr = tbl.tr(); tr = tbl.tr();
tr.td().b().tx("Condition"); tr.td().b().tx("Timing");
renderExpression(tr.td(), td.getCondition()); render(tr.td(), td.getTiming());
}
if (td.hasCondition()) {
tr = tbl.tr();
tr.td().b().tx("Condition");
renderExpression(tr.td(), td.getCondition());
}
} }
} }