use of org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent in project org.hl7.fhir.core by hapifhir.
the class NarrativeGenerator method generate.
public void generate(CompartmentDefinition cpd) {
StringBuilder in = new StringBuilder();
StringBuilder out = new StringBuilder();
for (CompartmentDefinitionResourceComponent cc : cpd.getResource()) {
CommaSeparatedStringBuilder rules = new CommaSeparatedStringBuilder();
if (!cc.hasParam()) {
out.append(" <li><a href=\"").append(cc.getCode().toLowerCase()).append(".html\">").append(cc.getCode()).append("</a></li>\r\n");
} else if (!rules.equals("{def}")) {
for (StringType p : cc.getParam()) rules.append(p.asStringValue());
in.append(" <tr><td><a href=\"").append(cc.getCode().toLowerCase()).append(".html\">").append(cc.getCode()).append("</a></td><td>").append(rules.toString()).append("</td></tr>\r\n");
}
}
XhtmlNode x;
try {
x = new XhtmlParser().parseFragment("<div><p>\r\nThe following resources may be in this compartment:\r\n</p>\r\n" + "<table class=\"grid\">\r\n" + " <tr><td><b>Resource</b></td><td><b>Inclusion Criteria</b></td></tr>\r\n" + in.toString() + "</table>\r\n" + "<p>\r\nA resource is in this compartment if the nominated search parameter (or chain) refers to the patient resource that defines the compartment.\r\n</p>\r\n" + "<p>\r\n\r\n</p>\r\n" + "<p>\r\nThe following resources are never in this compartment:\r\n</p>\r\n" + "<ul>\r\n" + out.toString() + "</ul></div>\r\n");
inject(cpd, x, NarrativeStatus.GENERATED);
} catch (Exception e) {
e.printStackTrace();
}
}
use of org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent in project org.hl7.fhir.core by hapifhir.
the class CompartmentDefinition method setProperty.
@Override
public void setProperty(String name, Base value) throws FHIRException {
if (name.equals("url"))
// UriType
this.url = castToUri(value);
else if (name.equals("name"))
// StringType
this.name = castToString(value);
else if (name.equals("status"))
// Enumeration<ConformanceResourceStatus>
this.status = new ConformanceResourceStatusEnumFactory().fromType(value);
else if (name.equals("experimental"))
// BooleanType
this.experimental = castToBoolean(value);
else if (name.equals("publisher"))
// StringType
this.publisher = castToString(value);
else if (name.equals("contact"))
this.getContact().add((CompartmentDefinitionContactComponent) value);
else if (name.equals("date"))
// DateTimeType
this.date = castToDateTime(value);
else if (name.equals("description"))
// StringType
this.description = castToString(value);
else if (name.equals("requirements"))
// StringType
this.requirements = castToString(value);
else if (name.equals("code"))
// Enumeration<CompartmentType>
this.code = new CompartmentTypeEnumFactory().fromType(value);
else if (name.equals("search"))
// BooleanType
this.search = castToBoolean(value);
else if (name.equals("resource"))
this.getResource().add((CompartmentDefinitionResourceComponent) value);
else
super.setProperty(name, value);
}
use of org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent in project org.hl7.fhir.core by hapifhir.
the class JavaResourceGenerator method writeSearchParameterField.
// private void generateImpl(String namenn, ResourceDefn resourceDefn, String jn, ElementDefinition root, String version, Date genDate) throws Exception {
// // TODO - restore this
// // write(" public "+namenn+" get"+namenn+"() {\r\n");
// // write(" return new "+jn+namenn+"Impl(this);\r\n");
// // write(" }\r\n");
// //
// // // now, generate the implementation
// // JavaPatternImplGenerator jrg = new JavaPatternImplGenerator(new FileOutputStream(javaPatternDir+jn+namenn+"Impl.java"), definitions, adornments, enumInfo);
// // jrg.generate(resourceDefn.getRoot(), jn, JavaGenClass.Resource, null, genDate, version, false, null, null, namenn, root);
// // jrg.close();
// //
// }
private void writeSearchParameterField(String name, JavaGenClass clss, boolean isAbstract, SearchParameter sp, String code, String[] theCompositeOf, List<SearchParameter> searchParams, String rn) throws IOException {
String constName = cleanSpName(code).toUpperCase();
/*
* SearchParamDefinition (SP_[name])
*/
write(" /**\r\n");
write(" * Search parameter: <b>" + code + "</b>\r\n");
write(" * <p>\r\n");
write(" * Description: <b>" + sp.getDescription() + "</b><br>\r\n");
write(" * Type: <b>" + sp.getType().toCode() + "</b><br>\r\n");
write(" * Path: <b>" + sp.getExpression() + "</b><br>\r\n");
write(" * </p>\r\n");
write(" */\r\n");
write(" @SearchParamDefinition(name=\"" + code + "\", path=\"" + defaultString(sp.getExpression()) + "\", description=\"" + Utilities.escapeJava(sp.getDescription()) + "\", type=\"" + sp.getType().toCode() + "\"");
if (theCompositeOf != null && theCompositeOf.length > 0) {
write(", compositeOf={");
for (int i = 0; i < theCompositeOf.length; i++) {
if (i > 0) {
write(", ");
}
write("\"" + theCompositeOf[i] + "\"");
}
write("}");
}
Set<String> providesMembershipIn = new TreeSet<String>();
for (CompartmentDefinition next : this.definitions.getCompartments().getList()) {
for (CompartmentDefinitionResourceComponent nextEntry : next.getResource()) {
if (nextEntry.getCode().equals(upFirst(name))) {
for (StringType nextPart : nextEntry.getParam()) {
if (nextPart.toString().equals(code)) {
providesMembershipIn.add(next.getName());
}
}
}
}
}
if (providesMembershipIn.size() > 0) {
write(", providesMembershipIn={ ");
boolean first = true;
for (String next : providesMembershipIn) {
if (first) {
first = false;
} else {
write(", ");
}
write("@ca.uhn.fhir.model.api.annotation.Compartment(name=\"" + upFirst(next) + "\")");
}
write(" }");
}
Set<String> targets = new TreeSet<>();
for (CodeType c : sp.getTarget()) {
targets.add(c.asStringValue());
}
if (targets != null && !targets.isEmpty() && !targets.contains("Any")) {
write(", target={");
boolean first = true;
for (String nextTarget : targets) {
if (first) {
first = false;
} else {
write(", ");
}
write("List".equals(nextTarget) ? "ListResource" : nextTarget);
write(".class");
}
write(" }");
}
write(" )\r\n");
write(" public static final String SP_" + constName + " = \"" + code + "\";\r\n");
String genericTypes = "";
if (theCompositeOf != null && theCompositeOf.length > 0) {
SearchParameter typeDef0 = findSearchParam(searchParams, theCompositeOf[0]);
SearchParameter typeDef1 = findSearchParam(searchParams, theCompositeOf[1]);
genericTypes = "<ca.uhn.fhir.rest.gclient." + upFirst(typeDef0.getType().toCode()) + "ClientParam" + ", ca.uhn.fhir.rest.gclient." + upFirst(typeDef1.getType().toCode()) + "ClientParam>";
}
/*
* Client parameter ([name])
*/
write(" /**\r\n");
write(" * <b>Fluent Client</b> search parameter constant for <b>" + code + "</b>\r\n");
write(" * <p>\r\n");
write(" * Description: <b>" + sp.getDescription() + "</b><br>\r\n");
write(" * Type: <b>" + sp.getType().toCode() + "</b><br>\r\n");
write(" * Path: <b>" + sp.getExpression() + "</b><br>\r\n");
write(" * </p>\r\n");
write(" */\r\n");
write(" public static final ca.uhn.fhir.rest.gclient." + upFirst(sp.getType().toCode()) + "ClientParam" + genericTypes + " " + constName + " = new ca.uhn.fhir.rest.gclient." + upFirst(sp.getType().toCode()) + "ClientParam" + genericTypes + "(SP_" + constName + ");\r\n\r\n");
if (sp.getType() == SearchParamType.REFERENCE && clss == JavaGenClass.Resource && !isAbstract) {
String incName = upFirst(name) + ":" + code;
write("/**\r\n");
write(" * Constant for fluent queries to be used to add include statements. Specifies\r\n");
write(" * the path value of \"<b>" + incName + "</b>\".\r\n");
write(" */\r\n");
write(" public static final ca.uhn.fhir.model.api.Include INCLUDE_" + cleanSpName(code).toUpperCase() + " = new ca.uhn.fhir.model.api.Include(\"" + incName + "\").toLocked();\r\n\r\n");
}
}
use of org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent in project org.hl7.fhir.core by hapifhir.
the class CompartmentDefinitionRenderer method render.
public boolean render(XhtmlNode x, CompartmentDefinition cpd) throws FHIRFormatError, DefinitionException, IOException {
StringBuilder in = new StringBuilder();
StringBuilder out = new StringBuilder();
for (CompartmentDefinitionResourceComponent cc : cpd.getResource()) {
CommaSeparatedStringBuilder rules = new CommaSeparatedStringBuilder();
if (!cc.hasParam()) {
out.append(" <li><a href=\"").append(cc.getCode().toLowerCase()).append(".html\">").append(cc.getCode()).append("</a></li>\r\n");
} else if (!rules.equals("{def}")) {
for (StringType p : cc.getParam()) rules.append(p.asStringValue());
in.append(" <tr><td><a href=\"").append(cc.getCode().toLowerCase()).append(".html\">").append(cc.getCode()).append("</a></td><td>").append(rules.toString()).append("</td></tr>\r\n");
}
}
XhtmlNode xn;
xn = new XhtmlParser().parseFragment("<div><p>\r\nThe following resources may be in this compartment:\r\n</p>\r\n" + "<table class=\"grid\">\r\n" + " <tr><td><b>Resource</b></td><td><b>Inclusion Criteria</b></td></tr>\r\n" + in.toString() + "</table>\r\n" + "<p>\r\nA resource is in this compartment if the nominated search parameter (or chain) refers to the patient resource that defines the compartment.\r\n</p>\r\n" + "<p>\r\n\r\n</p>\r\n" + "<p>\r\nThe following resources are never in this compartment:\r\n</p>\r\n" + "<ul>\r\n" + out.toString() + "</ul></div>\r\n");
x.getChildNodes().addAll(xn.getChildNodes());
return true;
}
use of org.hl7.fhir.r5.model.CompartmentDefinition.CompartmentDefinitionResourceComponent in project org.hl7.fhir.core by hapifhir.
the class CompartmentDefinitionRenderer method render.
public boolean render(XhtmlNode x, CompartmentDefinition cpd) throws FHIRFormatError, DefinitionException, IOException {
StringBuilder in = new StringBuilder();
StringBuilder out = new StringBuilder();
for (CompartmentDefinitionResourceComponent cc : cpd.getResource()) {
CommaSeparatedStringBuilder rules = new CommaSeparatedStringBuilder();
if (!cc.hasParam()) {
out.append(" <li><a href=\"").append(cc.getCode().toLowerCase()).append(".html\">").append(cc.getCode()).append("</a></li>\r\n");
} else if (!rules.equals("{def}")) {
for (StringType p : cc.getParam()) rules.append(p.asStringValue());
in.append(" <tr><td><a href=\"").append(cc.getCode().toLowerCase()).append(".html\">").append(cc.getCode()).append("</a></td><td>").append(rules.toString()).append("</td></tr>\r\n");
}
}
XhtmlNode xn;
xn = new XhtmlParser().parseFragment("<div><p>\r\nThe following resources may be in this compartment:\r\n</p>\r\n" + "<table class=\"grid\">\r\n" + " <tr><td><b>Resource</b></td><td><b>Inclusion Criteria</b></td></tr>\r\n" + in.toString() + "</table>\r\n" + "<p>\r\nA resource is in this compartment if the nominated search parameter (or chain) refers to the patient resource that defines the compartment.\r\n</p>\r\n" + "<p>\r\n\r\n</p>\r\n" + "<p>\r\nThe following resources are never in this compartment:\r\n</p>\r\n" + "<ul>\r\n" + out.toString() + "</ul></div>\r\n");
x.getChildNodes().addAll(xn.getChildNodes());
return true;
}
Aggregations