public static String ns(String n) { return Utilities.isAbsoluteUrl(n) ? n : FHIR_NS+n; }
public static String sdNs(String type, String overrideVersionNs) { if (Utilities.isAbsoluteUrl(type)) return type; else if (overrideVersionNs != null) return Utilities.pathURL(overrideVersionNs, type); else return "http://hl7.org/fhir/StructureDefinition/"+type; }
@Override public StructureDefinition fetchTypeDefinition(String typeName) { if (Utilities.isAbsoluteUrl(typeName)) return fetchResource(StructureDefinition.class, typeName); else return fetchResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/"+typeName); }
private ValueSet resolveBindingReference(DomainResource ctxt, String reference, String uri) { if (reference != null) { if (reference.startsWith("#")) { for (Resource c : ctxt.getContained()) { if (c.getId().equals(reference.substring(1)) && (c instanceof ValueSet)) return (ValueSet) c; } return null; } else { long t = System.nanoTime(); if (!Utilities.isAbsoluteUrl(reference)) reference = resolve(uri, reference); ValueSet fr = context.fetchResource(ValueSet.class, reference); txTime = txTime + (System.nanoTime() - t); return fr; } } else return null; }
private StructureDefinition getProfileForType(String type, List<TypeRefComponent> list) { for (TypeRefComponent tr : list) { String url = tr.getCode(); if (!Utilities.isAbsoluteUrl(url)) url = "http://hl7.org/fhir/StructureDefinition/" + url; String qualifiedType = "http://hl7.org/fhir/StructureDefinition/" + type; long t = System.nanoTime(); StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); sdTime = sdTime + (System.nanoTime() - t); if (sd != null && (sd.getType().equals(type) || sd.getUrl().equals(qualifiedType)) && sd.hasSnapshot()) return sd; } return null; }
private ElementDefinition resolveType(String type, List<TypeRefComponent> list) { for (TypeRefComponent tr : list) { String url = tr.getCode(); if (!Utilities.isAbsoluteUrl(url)) url = "http://hl7.org/fhir/StructureDefinition/" + url; long t = System.nanoTime(); StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); sdTime = sdTime + (System.nanoTime() - t); if (sd != null && (sd.getType().equals(type) || sd.getUrl().equals(type)) && sd.hasSnapshot()) return sd.getSnapshot().getElement().get(0); } return null; }
if (Utilities.isAbsoluteUrl(uri) || uri.startsWith("ValueSet/")) {
private Element resolveInBundle(List<Element> entries, String ref, String fullUrl, String type, String id) { if (Utilities.isAbsoluteUrl(ref)) {
private Element resolveInBundle(List<Element> entries, String ref, String fullUrl, String type, String id) { if (Utilities.isAbsoluteUrl(ref)) {
private Element resolveInBundle(List<Element> entries, String ref, String fullUrl, String type, String id) { if (Utilities.isAbsoluteUrl(ref)) {
private WrapperElement resolveInBundle(List<WrapperElement> entries, String ref, String fullUrl, String type, String id) { if (Utilities.isAbsoluteUrl(ref)) {
private ValueSet resolveBindingReference(DomainResource ctxt, Type reference, String uri) { if (reference instanceof UriType) { long t = System.nanoTime(); ValueSet fr = context.fetchResource(ValueSet.class, ((UriType) reference).getValue().toString()); txTime = txTime + (System.nanoTime() - t); return fr; } else if (reference instanceof Reference) { String s = ((Reference) reference).getReference(); if (s.startsWith("#")) { for (Resource c : ctxt.getContained()) { if (c.getId().equals(s.substring(1)) && (c instanceof ValueSet)) return (ValueSet) c; } return null; } else { long t = System.nanoTime(); String ref = ((Reference) reference).getReference(); if (!Utilities.isAbsoluteUrl(ref)) ref = resolve(uri, ref); ValueSet fr = context.fetchResource(ValueSet.class, ref); txTime = txTime + (System.nanoTime() - t); return fr; } } else return null; }
public QName getQN(StructureDefinition sd, ElementDefinition edc, String t, boolean chase) throws FHIRException { QName qn = new QName(); qn.type = Utilities.isAbsoluteUrl(t) ? tail(t) : t; if (Utilities.isAbsoluteUrl(t)) { String ns = root(t); if (ns.equals(root(sd.getUrl())))
private boolean matchesType(StructureMap map, String actualType, String statedType) throws FHIRException { // check the aliases for (StructureMapStructureComponent imp : map.getStructure()) { if (imp.hasAlias() && statedType.equals(imp.getAlias())) { StructureDefinition sd = worker.fetchResource(StructureDefinition.class, imp.getUrl()); if (sd != null) statedType = sd.getType(); break; } } if (Utilities.isAbsoluteUrl(actualType)) { StructureDefinition sd = worker.fetchResource(StructureDefinition.class, actualType); if (sd != null) actualType = sd.getType(); } if (Utilities.isAbsoluteUrl(statedType)) { StructureDefinition sd = worker.fetchResource(StructureDefinition.class, statedType); if (sd != null) statedType = sd.getType(); } return actualType.equals(statedType); }
} else { String ctxt = context.substring(0, context.indexOf('.')); if (Utilities.isAbsoluteUrl(resourceType)) { ctxt = resourceType.substring(0, resourceType.lastIndexOf("/")+1)+ctxt;
if (tr.getCode().equals(t)) ok = true; if (Utilities.isAbsoluteUrl(tr.getCode())) { StructureDefinition sdt = context.fetchResource(StructureDefinition.class, tr.getCode()); if (sdt != null && sdt.getType().equals(t)) {
private void produceAttribute(StructureDefinition sd, ElementDefinition ed, ElementDefinition edc, String lang) throws IOException, FHIRException { TypeRefComponent t = edc.getTypeFirstRep(); String name = tailDot(edc.getPath()); String min = String.valueOf(edc.getMin()); String max = edc.getMax(); // todo: check it's a code... // if (!max.equals("1")) // throw new FHIRException("Illegal cardinality \""+max+"\" for attribute "+edc.getPath()); if (Utilities.isAbsoluteUrl(t.getCode())) throw new FHIRException("Only FHIR primitive types are supported for attributes ("+t.getCode()+")"); String typeNs = namespaces.get("http://hl7.org/fhir"); String type = t.getCode(); w(" <xs:attribute name=\""+name+"\" use=\""+(min.equals("0") || edc.hasFixed() || edc.hasDefaultValue() ? "optional" : "required")+"\" type=\""+typeNs+":"+type+(typeNs.equals("fhir") ? "-primitive" : "")+"\""+ (edc.hasFixed() ? " fixed=\""+edc.getFixed().primitiveValue()+"\"" : "")+(edc.hasDefaultValue() && !edc.hasFixed() ? " default=\""+edc.getDefaultValue().primitiveValue()+"\"" : "")+""); if (annotations && edc.hasDefinition()) { ln(">"); ln(" <xs:annotation>"); ln(" <xs:documentation xml:lang=\""+lang+"\">"+Utilities.escapeXml(edc.getDefinition())+"</xs:documentation>"); ln(" </xs:annotation>"); ln(" </xs:attribute>"); } else ln("/>"); }
BindingResolution br = pkp.resolveBinding(definition.getBinding()); c.getPieces().add(checkForNoChange(definition.getBinding(), gen.new Piece(null, "Binding: ", null).addStyle("font-weight:bold"))); c.getPieces().add(checkForNoChange(definition.getBinding(), gen.new Piece(br.url == null ? null : Utilities.isAbsoluteUrl(br.url)? br.url : corePath+br.url, br.display, null))); if (definition.getBinding().hasStrength()) { c.getPieces().add(checkForNoChange(definition.getBinding(), gen.new Piece(null, " (", null)));
BindingResolution br = pkp.resolveBinding(definition.getBinding()); c.getPieces().add(checkForNoChange(definition.getBinding(), gen.new Piece(null, "Binding: ", null).addStyle("font-weight:bold"))); c.getPieces().add(checkForNoChange(definition.getBinding(), gen.new Piece(br.url == null ? null : Utilities.isAbsoluteUrl(br.url)? br.url : corePath+br.url, br.display, null))); if (definition.getBinding().hasStrength()) { c.getPieces().add(checkForNoChange(definition.getBinding(), gen.new Piece(null, " (", null)));
BindingResolution br = pkp.resolveBinding(ed, ved.getBinding(), ved.getPath()); c.getPieces().add(checkForNoChange(ved.getBinding(), gen.new Piece(null, translate("sd.table", "Binding")+": ", null).addStyle("font-weight:bold"))); c.getPieces().add(checkForNoChange(ved.getBinding(), gen.new Piece(br.url == null ? null : Utilities.isAbsoluteUrl(br.url) || !pkp.prependLinks() ? br.url : corePath+br.url, br.display, null))); if (ved.getBinding().hasStrength()) { c.getPieces().add(checkForNoChange(ved.getBinding(), gen.new Piece(null, " (", null)));