mirror of
https://github.com/hapifhir/org.hl7.fhir.core.git
synced 2025-02-09 06:14:45 +00:00
commit
59199075b9
@ -16,8 +16,10 @@ import org.hl7.fhir.utilities.SimpleHTTPClient;
|
||||
import org.hl7.fhir.utilities.SimpleHTTPClient.HTTPResult;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackage;
|
||||
import org.hl7.fhir.utilities.npm.PackageClient;
|
||||
@ -28,10 +30,6 @@ import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class PackageVisitor {
|
||||
|
||||
public interface IPackageVisitorProcessor {
|
||||
@ -140,11 +138,11 @@ public class PackageVisitor {
|
||||
}
|
||||
i++;
|
||||
}
|
||||
JsonObject json = JsonTrackingParser.fetchJson("https://raw.githubusercontent.com/FHIR/ig-registry/master/fhir-ig-list.json");
|
||||
JsonObject json = JsonParser.parseObjectFromUrl("https://raw.githubusercontent.com/FHIR/ig-registry/master/fhir-ig-list.json");
|
||||
i = 0;
|
||||
List<JsonObject> objects = JsonUtilities.objects(json, "guides");
|
||||
List<JsonObject> objects = json.getJsonObjects("guides");
|
||||
for (JsonObject o : objects) {
|
||||
String pid = JsonUtilities.str(o, "npm-name");
|
||||
String pid = o.asString("npm-name");
|
||||
if (pid != null && !cpidSet.contains(pid)) {
|
||||
cpidSet.add(pid);
|
||||
List<String> vList = listVersions(pid);
|
||||
@ -195,11 +193,10 @@ public class PackageVisitor {
|
||||
private Map<String, String> getAllCIPackages() throws IOException {
|
||||
Map<String, String> res = new HashMap<>();
|
||||
if (current) {
|
||||
JsonArray json = JsonTrackingParser.fetchJsonArray("https://build.fhir.org/ig/qas.json");
|
||||
for (JsonElement j : json) {
|
||||
JsonObject o = (JsonObject) j;
|
||||
String url = JsonUtilities.str(o, "repo");
|
||||
res.put(url, JsonUtilities.str(o, "package-id"));
|
||||
JsonArray json = (JsonArray) JsonParser.parseFromUrl("https://build.fhir.org/ig/qas.json");
|
||||
for (JsonObject o : json.asJsonObjects()) {
|
||||
String url = o.asString("repo");
|
||||
res.put(url, o.asString("package-id"));
|
||||
}
|
||||
}
|
||||
return res;
|
||||
@ -220,13 +217,13 @@ public class PackageVisitor {
|
||||
for (PackageInfo i : pc.search(null, null, null, false)) {
|
||||
list.add(i.getId());
|
||||
}
|
||||
JsonObject json = JsonTrackingParser.fetchJson("https://raw.githubusercontent.com/FHIR/ig-registry/master/fhir-ig-list.json");
|
||||
for (JsonObject ig : JsonUtilities.objects(json, "guides")) {
|
||||
list.add(JsonUtilities.str(ig, "npm-name"));
|
||||
JsonObject json = JsonParser.parseObjectFromUrl("https://raw.githubusercontent.com/FHIR/ig-registry/master/fhir-ig-list.json");
|
||||
for (JsonObject ig : json.getJsonObjects("guides")) {
|
||||
list.add(ig.asString("npm-name"));
|
||||
}
|
||||
json = JsonTrackingParser.fetchJson("https://raw.githubusercontent.com/FHIR/ig-registry/master/package-feeds.json");
|
||||
for (JsonObject feed : JsonUtilities.objects(json, "feeds")) {
|
||||
processFeed(list, JsonUtilities.str(feed, "url"));
|
||||
json = JsonParser.parseObjectFromUrl("https://raw.githubusercontent.com/FHIR/ig-registry/master/package-feeds.json");
|
||||
for (JsonObject feed : json.getJsonObjects("feeds")) {
|
||||
processFeed(list, feed.asString("url"));
|
||||
}
|
||||
|
||||
return list;
|
||||
|
@ -7,10 +7,10 @@ import java.io.IOException;
|
||||
|
||||
import org.hl7.fhir.exceptions.FHIRFormatError;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackage;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class CorePackageTools {
|
||||
|
||||
@ -33,7 +33,7 @@ public class CorePackageTools {
|
||||
private void buildXml(String json, String xml, String version) throws FHIRFormatError, IOException {
|
||||
for (File f : new File(Utilities.path(json, "package")).listFiles()) {
|
||||
if (f.getName().endsWith(".json")) {
|
||||
JsonObject j = new JsonTrackingParser().parseJson(f);
|
||||
JsonObject j = JsonParser.parseObject(f);
|
||||
if (j.has("resourceType")) {
|
||||
if ("1.4".equals(version)) {
|
||||
String n = f.getName();
|
||||
|
@ -10,9 +10,8 @@ import java.util.Set;
|
||||
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_40_50;
|
||||
import org.hl7.fhir.exceptions.FHIRFormatError;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
public class ExamplesPackageBuilder {
|
||||
|
||||
@ -25,10 +24,10 @@ public class ExamplesPackageBuilder {
|
||||
Set<String> set = new HashSet<>();
|
||||
for (File f : new File(source).listFiles()) {
|
||||
if (f.getName().endsWith(".json")) {
|
||||
JsonObject obj = JsonTrackingParser.parseJson(new FileInputStream(f));
|
||||
JsonObject obj = JsonParser.parseObject(new FileInputStream(f));
|
||||
if (obj.has("resourceType") && obj.has("id")) {
|
||||
String type = obj.get("resourceType").getAsString();
|
||||
String id = obj.get("id").getAsString();
|
||||
String type = obj.asString("resourceType");
|
||||
String id = obj.asString("id");
|
||||
byte[] content = TextFile.fileToBytes(f);
|
||||
if (type.equals("ConceptMap")) {
|
||||
System.out.println("convert "+f.getName());
|
||||
|
@ -28,10 +28,9 @@ import org.hl7.fhir.r4.utils.ToolingExtensions;
|
||||
import org.hl7.fhir.utilities.SimpleHTTPClient;
|
||||
import org.hl7.fhir.utilities.SimpleHTTPClient.HTTPResult;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
public class ICD11Generator {
|
||||
|
||||
@ -42,12 +41,12 @@ public class ICD11Generator {
|
||||
private void execute(String base, String dest) throws IOException {
|
||||
CodeSystem cs = makeMMSCodeSystem();
|
||||
JsonObject version = fetchJson(Utilities.pathURL(base, "/icd/release/11/mms"));
|
||||
String[] p = version.get("latestRelease").getAsString().split("\\/");
|
||||
String[] p = version.asString("latestRelease").split("\\/");
|
||||
cs.setVersion(p[6]);
|
||||
JsonObject root = fetchJson(url(base, version.get("latestRelease").getAsString()));
|
||||
cs.setDateElement(new DateTimeType(root.get("releaseDate").getAsString()));
|
||||
for (JsonElement child : root.getAsJsonArray("child")) {
|
||||
processMMSEntity(cs, base, child.getAsString(), cs.addConcept(), dest);
|
||||
JsonObject root = fetchJson(url(base, version.asString("latestRelease")));
|
||||
cs.setDateElement(new DateTimeType(root.asString("releaseDate")));
|
||||
for (JsonElement child : root.getJsonArray("child")) {
|
||||
processMMSEntity(cs, base, child.asString(), cs.addConcept(), dest);
|
||||
System.out.println();
|
||||
}
|
||||
new XmlParser(XmlVersion.V1_1).setOutputStyle(OutputStyle.PRETTY).compose(new FileOutputStream(Utilities.path(dest, "icd-11-mms.xml")), cs);
|
||||
@ -55,12 +54,12 @@ public class ICD11Generator {
|
||||
|
||||
cs = makeEntityCodeSystem();
|
||||
root = fetchJson(Utilities.pathURL(base, "/icd/entity"));
|
||||
cs.setVersion(root.get("releaseId").getAsString());
|
||||
cs.setDateElement(new DateTimeType(root.get("releaseDate").getAsString()));
|
||||
cs.setVersion(root.asString("releaseId"));
|
||||
cs.setDateElement(new DateTimeType(root.asString("releaseDate")));
|
||||
cs.setTitle(readString(root, "title"));
|
||||
Set<String> ids = new HashSet<>();
|
||||
for (JsonElement child : root.getAsJsonArray("child")) {
|
||||
processEntity(cs, ids, base, tail(child.getAsString()), dest);
|
||||
for (JsonElement child : root.getJsonArray("child")) {
|
||||
processEntity(cs, ids, base, tail(child.asString()), dest);
|
||||
System.out.println();
|
||||
}
|
||||
new XmlParser(XmlVersion.V1_1).setOutputStyle(OutputStyle.PRETTY).compose(new FileOutputStream(Utilities.path(dest, "icd-11-foundation.xml")), cs);
|
||||
@ -80,34 +79,34 @@ public class ICD11Generator {
|
||||
cc.setDefinition(d);
|
||||
}
|
||||
if (entity.has("inclusion")) {
|
||||
for (JsonElement child : entity.getAsJsonArray("inclusion")) {
|
||||
for (JsonElement child : entity.getJsonArray("inclusion")) {
|
||||
JsonObject co = (JsonObject) child;
|
||||
String v = readString(co, "label");
|
||||
if (v != null) {
|
||||
if (co.has("foundationReference")) {
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/foundation").setCode(tail(co.get("foundationReference").getAsString())).setDisplay(v)).setCode("inclusion");
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/foundation").setCode(tail(co.asString("foundationReference"))).setDisplay(v)).setCode("inclusion");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (entity.has("exclusion")) {
|
||||
for (JsonElement child : entity.getAsJsonArray("exclusion")) {
|
||||
for (JsonElement child : entity.getJsonArray("exclusion")) {
|
||||
JsonObject co = (JsonObject) child;
|
||||
String v = readString(co, "label");
|
||||
if (v != null) {
|
||||
if (co.has("foundationReference")) {
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/foundation").setCode(tail(co.get("foundationReference").getAsString())).setDisplay(v)).setCode("exclusion");
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/foundation").setCode(tail(co.asString("foundationReference"))).setDisplay(v)).setCode("exclusion");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (entity.has("narrowerTerm")) {
|
||||
for (JsonElement child : entity.getAsJsonArray("narrowerTerm")) {
|
||||
for (JsonElement child : entity.getJsonArray("narrowerTerm")) {
|
||||
JsonObject co = (JsonObject) child;
|
||||
String v = readString(co, "label");
|
||||
if (v != null) {
|
||||
if (co.has("narrowerTerm")) {
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/foundation").setCode(tail(co.get("foundationReference").getAsString())).setDisplay(v)).setCode("narrowerTerm");
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/foundation").setCode(tail(co.asString("foundationReference"))).setDisplay(v)).setCode("narrowerTerm");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -115,22 +114,22 @@ public class ICD11Generator {
|
||||
addDesignation(readString(entity, "longDefinition"), cc, "http://id.who.int/icd11/mms/designation", "longDefinition");
|
||||
addDesignation(readString(entity, "fullySpecifiedName"), cc, "http://snomed.info/sct", "900000000000003001");
|
||||
if (entity.has("synonym")) {
|
||||
for (JsonElement j : entity.getAsJsonArray("synonym")) {
|
||||
for (JsonElement j : entity.getJsonArray("synonym")) {
|
||||
String v = readString((JsonObject) j, "label");
|
||||
if (v != null && !v.equals(cc.getDisplay())) {
|
||||
addDesignation(v, cc, "http://id.who.int/icd11/mms/designation", "synonym");
|
||||
}
|
||||
}
|
||||
}
|
||||
for (JsonElement j : entity.getAsJsonArray("parent")) {
|
||||
String v = j.getAsString();
|
||||
for (JsonElement j : entity.getJsonArray("parent")) {
|
||||
String v = j.asString();
|
||||
if (!"http://id.who.int/icd/entity".equals(v)) {
|
||||
cc.addProperty().setValue(new CodeType(tail(v))).setCode("narrowerTerm");
|
||||
}
|
||||
}
|
||||
if (entity.has("child")) {
|
||||
for (JsonElement j : entity.getAsJsonArray("child")) {
|
||||
String v = j.getAsString();
|
||||
for (JsonElement j : entity.getJsonArray("child")) {
|
||||
String v = j.asString();
|
||||
cc.addProperty().setValue(new CodeType(tail(v))).setCode("child");
|
||||
processEntity(cs, ids, base, tail(v), dest);
|
||||
}
|
||||
@ -180,16 +179,16 @@ public class ICD11Generator {
|
||||
System.out.print(".");
|
||||
JsonObject entity = fetchJson(url(base, ref));
|
||||
cc.setId(tail(ref));
|
||||
if (entity.has("code") && !Utilities.noString(entity.get("code").getAsString())) {
|
||||
cc.setCode(entity.get("code").getAsString());
|
||||
} else if (entity.has("blockId") && !Utilities.noString(entity.get("blockId").getAsString())) {
|
||||
cc.setCode(entity.get("blockId").getAsString());
|
||||
if (entity.has("code") && !Utilities.noString(entity.asString("code"))) {
|
||||
cc.setCode(entity.asString("code"));
|
||||
} else if (entity.has("blockId") && !Utilities.noString(entity.asString("blockId"))) {
|
||||
cc.setCode(entity.asString("blockId"));
|
||||
} else {
|
||||
cc.setCode(cc.getId());
|
||||
cc.addProperty().setCode("abstract").setValue(new BooleanType(true));
|
||||
}
|
||||
if (entity.has("classKind") && !Utilities.noString(entity.get("classKind").getAsString()) && !"category".equals(entity.get("classKind").getAsString())) {
|
||||
cc.addProperty().setCode("kind").setValue(new CodeType(entity.get("classKind").getAsString()));
|
||||
if (entity.has("classKind") && !Utilities.noString(entity.asString("classKind")) && !"category".equals(entity.asString("classKind"))) {
|
||||
cc.addProperty().setCode("kind").setValue(new CodeType(entity.asString("classKind")));
|
||||
}
|
||||
cc.setDisplay(readString(entity, "title"));
|
||||
StringBuilder defn = new StringBuilder();
|
||||
@ -203,7 +202,7 @@ public class ICD11Generator {
|
||||
if (entity.has("inclusion")) {
|
||||
defn.append(". Includes: ");
|
||||
boolean first = true;
|
||||
for (JsonElement child : entity.getAsJsonArray("inclusion")) {
|
||||
for (JsonElement child : entity.getJsonArray("inclusion")) {
|
||||
if (first) first = false;
|
||||
else defn.append(", ");
|
||||
defn.append(readString((JsonObject) child, "label"));
|
||||
@ -212,7 +211,7 @@ public class ICD11Generator {
|
||||
if (entity.has("exclusion")) {
|
||||
defn.append(". Excludes: ");
|
||||
boolean first = true;
|
||||
for (JsonElement child : entity.getAsJsonArray("exclusion")) {
|
||||
for (JsonElement child : entity.getJsonArray("exclusion")) {
|
||||
if (first) first = false;
|
||||
else defn.append(", ");
|
||||
JsonObject co = (JsonObject) child;
|
||||
@ -220,7 +219,7 @@ public class ICD11Generator {
|
||||
if (v != null) {
|
||||
defn.append(v);
|
||||
if (co.has("linearizationReference")) {
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/mms").setCode(tail(co.get("linearizationReference").getAsString())).setDisplay(v)).setCode("exclusion");
|
||||
cc.addProperty().setValue(new Coding().setSystem("http://id.who.int/icd11/mms").setCode(tail(co.asString("linearizationReference"))).setDisplay(v)).setCode("exclusion");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -231,33 +230,33 @@ public class ICD11Generator {
|
||||
addProperty(readString(entity, "codingNote"), cc, "codingNote");
|
||||
if (entity.has("indexTerm")) {
|
||||
// CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder("; ");
|
||||
// for (JsonElement child : entity.getAsJsonArray("indexTerm")) {
|
||||
// for (JsonElement child : entity.getJsonArray("indexTerm")) {
|
||||
// processIndexTerm(cc, b, (JsonObject) child);
|
||||
// }
|
||||
// if (b.length() > 0) {
|
||||
// cc.addProperty().setCode("terms").setValue(new StringType(b.toString()));
|
||||
// }
|
||||
for (JsonElement child : entity.getAsJsonArray("indexTerm")) {
|
||||
for (JsonElement child : entity.getJsonArray("indexTerm")) {
|
||||
processIndexTerm(cc, (JsonObject) child);
|
||||
}
|
||||
}
|
||||
if (entity.has("postcoordinationScale")) {
|
||||
for (JsonElement child : entity.getAsJsonArray("postcoordinationScale")) {
|
||||
for (JsonElement child : entity.getJsonArray("postcoordinationScale")) {
|
||||
JsonObject o = (JsonObject) child;
|
||||
String name = tail(o.get("axisName").getAsString());
|
||||
String name = tail(o.asString("axisName"));
|
||||
ConceptPropertyComponent prop = cc.addProperty();
|
||||
prop.setCode("postcoordinationScale");
|
||||
prop.setValue(new CodeType(name));
|
||||
ToolingExtensions.addBooleanExtension(prop, "http://id.who.int/icd11/extensions/required", o.get("requiredPostcoordination").getAsBoolean());
|
||||
ToolingExtensions.addBooleanExtension(prop, "http://id.who.int/icd11/extensions/repeats", o.get("allowMultipleValues").getAsBoolean());
|
||||
ToolingExtensions.addBooleanExtension(prop, "http://id.who.int/icd11/extensions/required", o.asBoolean("requiredPostcoordination"));
|
||||
ToolingExtensions.addBooleanExtension(prop, "http://id.who.int/icd11/extensions/repeats", o.asBoolean("allowMultipleValues"));
|
||||
if (o.has("scaleEntity")) {
|
||||
ToolingExtensions.addUriExtension(prop, "http://id.who.int/icd11/extensions/valueSet", buildValueSet(cs, cc.getCode(), name, o, dest));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (entity.has("child")) {
|
||||
for (JsonElement child : entity.getAsJsonArray("child")) {
|
||||
processMMSEntity(cs, base, child.getAsString(), cc.addConcept(), dest);
|
||||
for (JsonElement child : entity.getJsonArray("child")) {
|
||||
processMMSEntity(cs, base, child.asString(), cc.addConcept(), dest);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -279,8 +278,8 @@ public class ICD11Generator {
|
||||
vs.setStatus(cs.getStatus());
|
||||
ConceptSetComponent inc = vs.getCompose().addInclude();
|
||||
inc.setSystem(cs.getUrl());
|
||||
for (JsonElement e : o.getAsJsonArray("scaleEntity")) {
|
||||
inc.addFilter().setProperty("concept").setOp(FilterOperator.ISA).setValue(tail(e.getAsString()));
|
||||
for (JsonElement e : o.getJsonArray("scaleEntity")) {
|
||||
inc.addFilter().setProperty("concept").setOp(FilterOperator.ISA).setValue(tail(e.asString()));
|
||||
}
|
||||
new XmlParser(XmlVersion.V1_1).setOutputStyle(OutputStyle.PRETTY).compose(new FileOutputStream(Utilities.path(dest, "vs-" + id + ".xml")), vs);
|
||||
return url;
|
||||
@ -328,12 +327,12 @@ public class ICD11Generator {
|
||||
}
|
||||
|
||||
private String readString(JsonObject obj, String name) {
|
||||
JsonObject p = obj.getAsJsonObject(name);
|
||||
JsonObject p = obj.getJsonObject(name);
|
||||
if (p == null) {
|
||||
return null;
|
||||
}
|
||||
if (p.has("@value")) {
|
||||
return p.get("@value").getAsString();
|
||||
return p.get("@value").asString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -400,7 +399,7 @@ public class ICD11Generator {
|
||||
http.addHeader("Accept-Language", "en");
|
||||
HTTPResult res = http.get(source, "application/json");
|
||||
res.checkThrowException();
|
||||
return JsonTrackingParser.parseJson(res.getContent());
|
||||
return JsonParser.parseObject(res.getContent());
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
package org.hl7.fhir.convertors.misc;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class JsonProcessor {
|
||||
public static void main(String[] args) throws Exception {
|
||||
@ -13,9 +14,9 @@ public class JsonProcessor {
|
||||
}
|
||||
|
||||
private void process(String source) throws IOException {
|
||||
JsonObject json = JsonTrackingParser.parseJsonFile(source);
|
||||
JsonObject json = JsonParser.parseObjectFromFile(source);
|
||||
process(json);
|
||||
JsonTrackingParser.write(json, new File(source), true);
|
||||
JsonParser.compose(json, new FileOutputStream(source), true);
|
||||
|
||||
}
|
||||
|
||||
@ -178,11 +179,11 @@ public class JsonProcessor {
|
||||
}
|
||||
|
||||
private void process(JsonObject json, String name) {
|
||||
JsonObject j = json.getAsJsonObject(name);
|
||||
JsonObject j = json.getJsonObject(name);
|
||||
if (j == null) {
|
||||
System.out.println("Can't find "+name);
|
||||
} else {
|
||||
j.addProperty("modifier", true);
|
||||
j.add("modifier", true);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -29,13 +29,12 @@ import org.hl7.fhir.convertors.factory.VersionConvertorFactory_30_50;
|
||||
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_40_50;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.VersionUtilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackageIndexBuilder;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class NpmPackageVersionConverter {
|
||||
|
||||
@ -105,7 +104,7 @@ public class NpmPackageVersionConverter {
|
||||
if (!e.getKey().equals("package/package.json")) {
|
||||
byte[] cnv = e.getValue();
|
||||
try {
|
||||
JsonObject json = JsonTrackingParser.parseJson(e.getValue());
|
||||
JsonObject json = JsonParser.parseObject(e.getValue());
|
||||
if (json.has("resourceType")) {
|
||||
cnv = convertResource(e.getKey(), e.getValue());
|
||||
}
|
||||
@ -174,11 +173,11 @@ public class NpmPackageVersionConverter {
|
||||
}
|
||||
|
||||
private byte[] convertPackage(byte[] cnt) throws IOException {
|
||||
JsonObject json = JsonTrackingParser.parseJson(cnt);
|
||||
currentVersion = json.getAsJsonArray("fhirVersions").get(0).getAsString();
|
||||
String name = JsonUtilities.str(json, "name");
|
||||
JsonObject json = JsonParser.parseObject(cnt);
|
||||
currentVersion = json.getJsonArray("fhirVersions").get(0).asString();
|
||||
String name = json.asString("name");
|
||||
json.remove("name");
|
||||
json.addProperty("name", name + "." + vCode);
|
||||
json.add("name", name + "." + vCode);
|
||||
json.remove("fhirVersions");
|
||||
json.remove("dependencies");
|
||||
JsonArray fv = new JsonArray();
|
||||
@ -186,8 +185,8 @@ public class NpmPackageVersionConverter {
|
||||
fv.add(version);
|
||||
JsonObject dep = new JsonObject();
|
||||
json.add("dependencies", dep);
|
||||
dep.addProperty(VersionUtilities.packageForVersion(version), version);
|
||||
return JsonTrackingParser.write(json).getBytes(Charsets.UTF_8);
|
||||
dep.add(VersionUtilities.packageForVersion(version), version);
|
||||
return JsonParser.composeBytes(json);
|
||||
}
|
||||
|
||||
private byte[] convertResource(String n, byte[] cnt) {
|
||||
|
@ -7,7 +7,8 @@ import java.util.List;
|
||||
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
/*
|
||||
Copyright (c) 2011+, HL7, Inc.
|
||||
@ -38,11 +39,6 @@ import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
|
||||
*/
|
||||
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class PackageMaintainer {
|
||||
|
||||
|
||||
@ -96,11 +92,10 @@ public class PackageMaintainer {
|
||||
if (f.isDirectory())
|
||||
strip(f);
|
||||
else if (f.getName().endsWith(".json")) {
|
||||
JsonObject json = JsonTrackingParser.parseJson(f);
|
||||
JsonObject json = JsonParser.parseObject(f);
|
||||
if (json.has("resourceType") && json.has("text")) {
|
||||
json.remove("text");
|
||||
Gson gson = new GsonBuilder().create();
|
||||
String src = gson.toJson(json);
|
||||
String src = JsonParser.compose(json);
|
||||
TextFile.stringToFile(src, f.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
@ -5,12 +5,10 @@ import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonProperty;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackage;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
|
||||
public class XMLPackageConvertor {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
@ -26,13 +24,13 @@ public class XMLPackageConvertor {
|
||||
System.out.println("Package " + f.getAbsolutePath());
|
||||
NpmPackage p = NpmPackage.fromPackage(new FileInputStream(f));
|
||||
if (p.getNpm().has("dependencies")) {
|
||||
JsonObject dep = p.getNpm().getAsJsonObject("dependencies");
|
||||
if (dep.entrySet().isEmpty()) {
|
||||
JsonObject dep = p.getNpm().getJsonObject("dependencies");
|
||||
if (dep.getProperties().isEmpty()) {
|
||||
System.out.println(" Dependencies: none");
|
||||
} else {
|
||||
System.out.println(" Dependencies:");
|
||||
for (Entry<String, JsonElement> e : dep.entrySet()) {
|
||||
System.out.println(" " + e.getKey() + ": " + e.getValue().getAsString());
|
||||
for (JsonProperty e : dep.getProperties()) {
|
||||
System.out.println(" " + e.getName() + ": " + e.getValue().toString());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -17,13 +17,12 @@ import org.hl7.fhir.convertors.factory.VersionConvertorFactory_40_50;
|
||||
import org.hl7.fhir.convertors.misc.xver.CorePackageVersionConvertor.BaseConvertor;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.VersionUtilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackage;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackage.NpmPackageFolder;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class CorePackageVersionConvertor {
|
||||
|
||||
@ -582,13 +581,13 @@ public class CorePackageVersionConvertor {
|
||||
}
|
||||
|
||||
private byte[] convertPackage(byte[] cnt, String version) throws IOException {
|
||||
JsonObject json = JsonTrackingParser.parseJson(cnt);
|
||||
JsonObject json = JsonParser.parseObject(cnt);
|
||||
json.remove("fhir-version-list");
|
||||
JsonArray vl = new JsonArray();
|
||||
json.add("fhirVersions", vl);
|
||||
vl.add(version);
|
||||
json.addProperty("name", JsonUtilities.str(json, "name")+".as."+VersionUtilities.getNameForVersion(version).toLowerCase());
|
||||
json.addProperty("title", JsonUtilities.str(json, "title")+" (as Version "+VersionUtilities.getNameForVersion(version).toLowerCase()+")");
|
||||
return JsonTrackingParser.write(json).getBytes(StandardCharsets.UTF_8);
|
||||
json.add("name", json.asString("name")+".as."+VersionUtilities.getNameForVersion(version).toLowerCase());
|
||||
json.add("title", json.asString("title")+" (as Version "+VersionUtilities.getNameForVersion(version).toLowerCase()+")");
|
||||
return JsonParser.composeBytes(json);
|
||||
}
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
|
||||
public static SimpleWorkerContext fromPackage(NpmPackage pi, IContextResourceLoader loader) throws FileNotFoundException, IOException, FHIRException {
|
||||
SimpleWorkerContext res = new SimpleWorkerContext();
|
||||
res.setAllowLoadingDuplicates(true);
|
||||
res.version = pi.getNpm().get("version").getAsString();
|
||||
res.version = pi.getNpm().asString("version");
|
||||
res.loadFromPackage(pi, loader);
|
||||
return res;
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
|
||||
public static SimpleWorkerContext fromPackage(NpmPackage pi, IContextResourceLoader loader) throws FileNotFoundException, IOException, FHIRException {
|
||||
SimpleWorkerContext res = new SimpleWorkerContext();
|
||||
res.setAllowLoadingDuplicates(true);
|
||||
res.version = pi.getNpm().get("version").getAsString();
|
||||
res.version = pi.getNpm().asString("version");
|
||||
res.loadFromPackage(pi, loader);
|
||||
return res;
|
||||
}
|
||||
|
@ -216,7 +216,7 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
|
||||
public static SimpleWorkerContext fromPackage(NpmPackage pi, IContextResourceLoader loader) throws FileNotFoundException, IOException, FHIRException {
|
||||
SimpleWorkerContext res = new SimpleWorkerContext();
|
||||
res.setAllowLoadingDuplicates(true);
|
||||
res.version = pi.getNpm().get("version").getAsString();
|
||||
res.version = pi.getNpm().asString("version");
|
||||
res.loadFromPackage(pi, loader);
|
||||
res.finishLoading();
|
||||
return res;
|
||||
|
@ -250,7 +250,7 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
|
||||
public SimpleWorkerContext fromPackage(NpmPackage pi, IContextResourceLoader loader) throws IOException, FHIRException {
|
||||
SimpleWorkerContext context = getSimpleWorkerContextInstance();
|
||||
context.setAllowLoadingDuplicates(allowLoadingDuplicates);
|
||||
context.version = pi.getNpm().get("version").getAsString();
|
||||
context.version = pi.getNpm().asString("version");
|
||||
context.loadFromPackage(pi, loader);
|
||||
context.finishLoading();
|
||||
return build(context);
|
||||
|
@ -790,7 +790,7 @@ public class ProfileDrivenRenderer extends ResourceRenderer {
|
||||
if ("DomainResource.contained".equals(child.getBase().getPath())) {
|
||||
if (round2) {
|
||||
for (BaseWrapper v : p.getValues()) {
|
||||
if (!RendererFactory.hasSpecificRenderer(v.fhirType())) {
|
||||
if (v.getBase() != null && !RendererFactory.hasSpecificRenderer(v.fhirType())) {
|
||||
x.hr();
|
||||
RenderingContext ctxt = context.copy();
|
||||
ctxt.setContained(true);
|
||||
|
@ -4,6 +4,7 @@ import org.hl7.fhir.r5.model.DomainResource;
|
||||
import org.hl7.fhir.r5.model.Resource;
|
||||
import org.hl7.fhir.r5.renderers.utils.BaseWrappers.ResourceWrapper;
|
||||
import org.hl7.fhir.r5.renderers.utils.RenderingContext;
|
||||
import org.hl7.fhir.r5.renderers.utils.RenderingContext.GenerationRules;
|
||||
import org.hl7.fhir.r5.renderers.utils.Resolver.ResourceContext;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
|
||||
@ -145,5 +146,17 @@ public class RendererFactory {
|
||||
"CapabilityStatement", "CompartmentDefinition", "ImplementationGuide", "Library", "NamingSystem", "OperationDefinition",
|
||||
"Questionnaire", "SearchParameter", "StructureDefinition", "ActorDefinition", "Requirements");
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a list of renderers that return something different in IG mode, and the implementation guide
|
||||
* publisher will regenerate the narrative for the IG mode
|
||||
* @param rt
|
||||
* @return
|
||||
*/
|
||||
public static boolean hasIGSpecificRenderer(String rt) {
|
||||
|
||||
return Utilities.existsInList(rt, "ValueSet", "CapabilityStatement", "Questionnaire");
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -62,16 +62,14 @@ import org.hl7.fhir.r5.model.ImplementationGuide.ImplementationGuideDependsOnCom
|
||||
import org.hl7.fhir.utilities.CommaSeparatedStringBuilder;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonString;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackageIndexBuilder;
|
||||
import org.hl7.fhir.utilities.npm.ToolsVersion;
|
||||
import org.hl7.fhir.utilities.npm.PackageGenerator.PackageType;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
|
||||
public class NPMPackageGenerator {
|
||||
|
||||
public enum Category {
|
||||
@ -118,13 +116,13 @@ public class NPMPackageGenerator {
|
||||
public static NPMPackageGenerator subset(NPMPackageGenerator master, String destFile, String id, String name, Date date, boolean notForPublication) throws FHIRException, IOException {
|
||||
JsonObject p = master.packageJ.deepCopy();
|
||||
p.remove("name");
|
||||
p.addProperty("name", id);
|
||||
p.add("name", id);
|
||||
p.remove("type");
|
||||
p.addProperty("type", PackageType.CONFORMANCE.getCode());
|
||||
p.add("type", PackageType.CONFORMANCE.getCode());
|
||||
p.remove("title");
|
||||
p.addProperty("title", name);
|
||||
p.add("title", name);
|
||||
if (notForPublication) {
|
||||
p.addProperty("notForPublication", true);
|
||||
p.add("notForPublication", true);
|
||||
}
|
||||
|
||||
return new NPMPackageGenerator(destFile, p, date, notForPublication);
|
||||
@ -142,17 +140,16 @@ public class NPMPackageGenerator {
|
||||
String dt = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
|
||||
packageJ = npm;
|
||||
packageManifest = new JsonObject();
|
||||
packageManifest.addProperty("version", npm.get("version").getAsString());
|
||||
packageManifest.addProperty("date", dt);
|
||||
packageManifest.set("version", npm.asString("version"));
|
||||
packageManifest.set("date", dt);
|
||||
if (notForPublication) {
|
||||
packageManifest.addProperty("notForPublication", true);
|
||||
packageManifest.add("notForPublication", true);
|
||||
}
|
||||
npm.addProperty("date", dt);
|
||||
packageManifest.addProperty("name", npm.get("name").getAsString());
|
||||
npm.set("date", dt);
|
||||
packageManifest.set("name", npm.asString("name"));
|
||||
this.destFile = destFile;
|
||||
start();
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
String json = gson.toJson(npm);
|
||||
String json = JsonParser.compose(npm, true);
|
||||
try {
|
||||
addFile(Category.RESOURCE, "package.json", json.getBytes("UTF-8"));
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
@ -183,31 +180,31 @@ public class NPMPackageGenerator {
|
||||
}
|
||||
|
||||
JsonObject npm = new JsonObject();
|
||||
npm.addProperty("name", ig.getPackageId());
|
||||
npm.addProperty("version", ig.getVersion());
|
||||
npm.add("name", ig.getPackageId());
|
||||
npm.add("version", ig.getVersion());
|
||||
igVersion = ig.getVersion();
|
||||
npm.addProperty("tools-version", ToolsVersion.TOOLS_VERSION);
|
||||
npm.addProperty("type", kind.getCode());
|
||||
npm.addProperty("date", dt);
|
||||
npm.add("tools-version", ToolsVersion.TOOLS_VERSION);
|
||||
npm.add("type", kind.getCode());
|
||||
npm.add("date", dt);
|
||||
if (ig.hasLicense()) {
|
||||
npm.addProperty("license", ig.getLicense().toCode());
|
||||
npm.add("license", ig.getLicense().toCode());
|
||||
}
|
||||
npm.addProperty("canonical", canonical);
|
||||
npm.add("canonical", canonical);
|
||||
if (notForPublication) {
|
||||
npm.addProperty("notForPublication", true);
|
||||
npm.add("notForPublication", true);
|
||||
}
|
||||
npm.addProperty("url", web);
|
||||
npm.add("url", web);
|
||||
if (ig.hasTitle()) {
|
||||
npm.addProperty("title", ig.getTitle());
|
||||
npm.add("title", ig.getTitle());
|
||||
}
|
||||
if (ig.hasDescription()) {
|
||||
npm.addProperty("description", ig.getDescription()+ " (built "+dtHuman+timezone()+")");
|
||||
npm.add("description", ig.getDescription()+ " (built "+dtHuman+timezone()+")");
|
||||
}
|
||||
JsonArray vl = new JsonArray();
|
||||
|
||||
npm.add("fhirVersions", vl);
|
||||
for (String v : fhirVersion) {
|
||||
vl.add(new JsonPrimitive(v));
|
||||
vl.add(new JsonString(v));
|
||||
}
|
||||
|
||||
if (kind != PackageType.CORE) {
|
||||
@ -216,15 +213,15 @@ public class NPMPackageGenerator {
|
||||
for (String v : fhirVersion) {
|
||||
String vp = packageForVersion(v);
|
||||
if (vp != null ) {
|
||||
dep.addProperty(vp, v);
|
||||
dep.add(vp, v);
|
||||
}
|
||||
}
|
||||
for (ImplementationGuideDependsOnComponent d : ig.getDependsOn()) {
|
||||
dep.addProperty(d.getPackageId(), d.getVersion());
|
||||
dep.add(d.getPackageId(), d.getVersion());
|
||||
}
|
||||
}
|
||||
if (ig.hasPublisher()) {
|
||||
npm.addProperty("author", ig.getPublisher());
|
||||
npm.add("author", ig.getPublisher());
|
||||
}
|
||||
JsonArray m = new JsonArray();
|
||||
for (ContactDetail t : ig.getContact()) {
|
||||
@ -233,23 +230,22 @@ public class NPMPackageGenerator {
|
||||
if (t.hasName() & (email != null || url != null)) {
|
||||
JsonObject md = new JsonObject();
|
||||
m.add(md);
|
||||
md.addProperty("name", t.getName());
|
||||
md.add("name", t.getName());
|
||||
if (email != null)
|
||||
md.addProperty("email", email);
|
||||
md.add("email", email);
|
||||
if (url != null)
|
||||
md.addProperty("url", url);
|
||||
md.add("url", url);
|
||||
}
|
||||
}
|
||||
if (m.size() > 0)
|
||||
npm.add("maintainers", m);
|
||||
if (ig.getManifest().hasRendering())
|
||||
npm.addProperty("homepage", ig.getManifest().getRendering());
|
||||
npm.add("homepage", ig.getManifest().getRendering());
|
||||
JsonObject dir = new JsonObject();
|
||||
npm.add("directories", dir);
|
||||
dir.addProperty("lib", "package");
|
||||
dir.addProperty("example", "example");
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
String json = gson.toJson(npm);
|
||||
dir.add("lib", "package");
|
||||
dir.add("example", "example");
|
||||
String json = JsonParser.compose(npm, true);
|
||||
try {
|
||||
addFile(Category.RESOURCE, "package.json", json.getBytes("UTF-8"));
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
@ -257,14 +253,14 @@ public class NPMPackageGenerator {
|
||||
packageJ = npm;
|
||||
|
||||
packageManifest = new JsonObject();
|
||||
packageManifest.addProperty("version", ig.getVersion());
|
||||
packageManifest.add("version", ig.getVersion());
|
||||
JsonArray fv = new JsonArray();
|
||||
for (String v : fhirVersion) {
|
||||
fv.add(v);
|
||||
}
|
||||
packageManifest.add("fhirVersion", fv);
|
||||
packageManifest.addProperty("date", dt);
|
||||
packageManifest.addProperty("name", ig.getPackageId());
|
||||
packageManifest.add("date", dt);
|
||||
packageManifest.add("name", ig.getPackageId());
|
||||
|
||||
}
|
||||
|
||||
@ -380,8 +376,7 @@ public class NPMPackageGenerator {
|
||||
OutputStream.close();
|
||||
TextFile.bytesToFile(OutputStream.toByteArray(), destFile);
|
||||
// also, for cache management on current builds, generate a little manifest
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
String json = gson.toJson(packageManifest);
|
||||
String json = JsonParser.compose(packageManifest, true);
|
||||
TextFile.stringToFile(json, Utilities.changeFileExt(destFile, ".manifest.json"), false);
|
||||
}
|
||||
|
||||
|
@ -62,9 +62,9 @@ public class XVerExtensionManager {
|
||||
}
|
||||
}
|
||||
JsonObject root = lists.get(v);
|
||||
JsonObject path = root.getObject(e);
|
||||
JsonObject path = root.getJsonObject(e);
|
||||
if (path == null) {
|
||||
path = root.getObject(e+"[x]");
|
||||
path = root.getJsonObject(e+"[x]");
|
||||
}
|
||||
if (path == null) {
|
||||
return XVerExtensionStatus.Unknown;
|
||||
@ -85,9 +85,9 @@ public class XVerExtensionManager {
|
||||
String verTarget = VersionUtilities.getMajMin(context.getVersion());
|
||||
String e = url.substring(54);
|
||||
JsonObject root = lists.get(verSource);
|
||||
JsonObject path = root.getObject(e);
|
||||
JsonObject path = root.getJsonObject(e);
|
||||
if (path == null) {
|
||||
path = root.getObject(e+"[x]");
|
||||
path = root.getJsonObject(e+"[x]");
|
||||
}
|
||||
|
||||
StructureDefinition sd = new StructureDefinition();
|
||||
@ -116,9 +116,9 @@ public class XVerExtensionManager {
|
||||
populateTypes(path, val, verSource, verTarget);
|
||||
} else if (path.has("elements")) {
|
||||
for (JsonElement i : path.forceArray("elements").getItems()) {
|
||||
JsonObject elt = root.getObject(e+"."+i.toString());
|
||||
JsonObject elt = root.getJsonObject(e+"."+i.asString());
|
||||
if (elt != null) {
|
||||
String s = i.toString().replace("[x]", "");
|
||||
String s = i.asString().replace("[x]", "");
|
||||
sd.getDifferential().addElement().setPath("Extension.extension").setSliceName(s);
|
||||
sd.getDifferential().addElement().setPath("Extension.extension.extension").setMax("0");
|
||||
sd.getDifferential().addElement().setPath("Extension.extension.url").setFixed(new UriType(s));
|
||||
@ -144,7 +144,7 @@ public class XVerExtensionManager {
|
||||
|
||||
public void populateTypes(JsonObject path, ElementDefinition val, String verSource, String verTarget) {
|
||||
for (JsonElement i : path.forceArray("types").getItems()) {
|
||||
String s = i.toString();
|
||||
String s = i.asString();
|
||||
if (!s.startsWith("!")) {
|
||||
if (s.contains("(")) {
|
||||
String t = s.substring(0, s.indexOf("("));
|
||||
|
@ -1,12 +1,13 @@
|
||||
package org.hl7.fhir.utilities.json.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.hl7.fhir.utilities.json.JsonException;
|
||||
|
||||
|
||||
public class JsonArray extends JsonElement {
|
||||
public class JsonArray extends JsonElement implements Iterable<JsonElement> {
|
||||
private List<JsonElement> items = new ArrayList<>();
|
||||
private List<Boolean> noCommas; // validator use
|
||||
private List<Boolean> unQuoted; // validator use
|
||||
@ -15,7 +16,7 @@ public class JsonArray extends JsonElement {
|
||||
List<String> list = new ArrayList<>();
|
||||
for (JsonElement n : items) {
|
||||
if (n instanceof JsonPrimitive) {
|
||||
list.add(n.toString());
|
||||
list.add(n.asJsonPrimitive().getValue());
|
||||
}
|
||||
}
|
||||
return list;
|
||||
@ -25,7 +26,7 @@ public class JsonArray extends JsonElement {
|
||||
return items;
|
||||
}
|
||||
|
||||
public List<JsonObject> asObjects() {
|
||||
public List<JsonObject> asJsonObjects() {
|
||||
List<JsonObject> list = new ArrayList<>();
|
||||
for (JsonElement n : items) {
|
||||
if (n instanceof JsonObject) {
|
||||
@ -79,11 +80,50 @@ public class JsonArray extends JsonElement {
|
||||
|
||||
|
||||
public JsonObject findByStringProp(JsonArray arr, String prop, String value) {
|
||||
for (JsonObject obj : asObjects()) {
|
||||
if (obj.has(prop) && value.equals(obj.getString(prop)))
|
||||
for (JsonObject obj : asJsonObjects()) {
|
||||
if (obj.has(prop) && value.equals(obj.asString(prop)))
|
||||
return obj;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Iterator<JsonElement> iterator() {
|
||||
return items.iterator();
|
||||
}
|
||||
|
||||
public JsonElement get(int i) {
|
||||
return items.get(i);
|
||||
}
|
||||
|
||||
public JsonArray deepCopy() {
|
||||
return (JsonArray) make().copy(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement copy(JsonElement other) {
|
||||
JsonArray o = (JsonArray) other;
|
||||
for (JsonElement p : o.getItems()) {
|
||||
add(p.deepCopy());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement make() {
|
||||
return new JsonArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append("[ ");
|
||||
boolean first = true;
|
||||
for (JsonElement p : items) {
|
||||
if (first) first = false; else b.append(", ");
|
||||
b.append(p.toString());
|
||||
}
|
||||
b.append(" ]");
|
||||
return b.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,6 +8,9 @@ public class JsonBoolean extends JsonPrimitive {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private JsonBoolean() {
|
||||
}
|
||||
|
||||
public JsonElementType elementType() {
|
||||
return JsonElementType.BOOLEAN;
|
||||
}
|
||||
@ -20,6 +23,7 @@ public class JsonBoolean extends JsonPrimitive {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return value ? "true" : "false";
|
||||
}
|
||||
@ -28,4 +32,15 @@ public class JsonBoolean extends JsonPrimitive {
|
||||
public String toString() {
|
||||
return getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement copy(JsonElement other) {
|
||||
value = ((JsonBoolean) other).value;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement make() {
|
||||
return new JsonBoolean();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
package org.hl7.fhir.utilities.json.model;
|
||||
|
||||
public class JsonComment {
|
||||
|
||||
}
|
@ -45,4 +45,71 @@ public abstract class JsonElement {
|
||||
public boolean hasComments() {
|
||||
return comments != null && !comments.isEmpty();
|
||||
}
|
||||
|
||||
public JsonElement deepCopy() {
|
||||
return make().copy(this);
|
||||
}
|
||||
|
||||
protected abstract JsonElement copy(JsonElement jsonElement);
|
||||
protected abstract JsonElement make();
|
||||
|
||||
public boolean isJsonObject() {
|
||||
return elementType() == JsonElementType.OBJECT;
|
||||
}
|
||||
|
||||
public boolean isJsonArray() {
|
||||
return elementType() == JsonElementType.ARRAY;
|
||||
}
|
||||
|
||||
public boolean isJsonPrimitive() {
|
||||
return isJsonBoolean() || isJsonString() || isJsonNull() || isJsonNumber();
|
||||
}
|
||||
|
||||
public boolean isJsonBoolean() {
|
||||
return elementType() == JsonElementType.BOOLEAN;
|
||||
}
|
||||
|
||||
public boolean isJsonString() {
|
||||
return elementType() == JsonElementType.STRING;
|
||||
}
|
||||
|
||||
public boolean isJsonNumber() {
|
||||
return elementType() == JsonElementType.NUMBER;
|
||||
}
|
||||
|
||||
public boolean isJsonNull() {
|
||||
return elementType() == JsonElementType.NULL;
|
||||
}
|
||||
|
||||
public JsonObject asJsonObject() {
|
||||
return isJsonObject() ? (JsonObject) this : null;
|
||||
}
|
||||
|
||||
public JsonArray asJsonArray() {
|
||||
return isJsonArray() ? (JsonArray) this : null;
|
||||
}
|
||||
|
||||
public JsonPrimitive asJsonPrimitive() {
|
||||
return isJsonPrimitive() ? (JsonPrimitive) this : null;
|
||||
}
|
||||
|
||||
public JsonBoolean asJsonBoolean() {
|
||||
return isJsonBoolean() ? (JsonBoolean) this : null;
|
||||
}
|
||||
|
||||
public JsonString asJsonString() {
|
||||
return isJsonString() ? (JsonString) this : null;
|
||||
}
|
||||
|
||||
public JsonNumber asJsonNumber() {
|
||||
return isJsonNumber() ? (JsonNumber) this : null;
|
||||
}
|
||||
|
||||
public JsonNull asJsonNull() {
|
||||
return isJsonNull() ? (JsonNull) this : null;
|
||||
}
|
||||
|
||||
public String asString() {
|
||||
return isJsonPrimitive() ? ((JsonPrimitive) this).getValue() : null;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ public class JsonNull extends JsonPrimitive {
|
||||
return JsonElementType.NULL;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return "null";
|
||||
}
|
||||
@ -15,4 +15,14 @@ public class JsonNull extends JsonPrimitive {
|
||||
public String toString() {
|
||||
return getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement copy(JsonElement other) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement make() {
|
||||
return new JsonNull();
|
||||
}
|
||||
}
|
||||
|
@ -10,10 +10,18 @@ public class JsonNumber extends JsonPrimitive {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public JsonNumber(int value) {
|
||||
this.value = Integer.toString(value);
|
||||
}
|
||||
|
||||
private JsonNumber() {
|
||||
}
|
||||
|
||||
public JsonElementType elementType() {
|
||||
return JsonElementType.NUMBER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
@ -30,4 +38,15 @@ public class JsonNumber extends JsonPrimitive {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement copy(JsonElement other) {
|
||||
value = ((JsonNumber) other).value;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement make() {
|
||||
return new JsonNumber();
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,12 @@
|
||||
package org.hl7.fhir.utilities.json.model;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonException;
|
||||
@ -19,8 +22,8 @@ public class JsonObject extends JsonElement {
|
||||
}
|
||||
|
||||
public JsonObject add(String name, JsonElement value) throws JsonException {
|
||||
check(name != null, "Numm is null");
|
||||
check(value != null, "Numm is null");
|
||||
check(name != null, "Name is null");
|
||||
check(value != null, "Value is null");
|
||||
check(get(name) == null, "Name '"+name+"' already exists");
|
||||
JsonProperty p = new JsonProperty(name, value);
|
||||
properties.add(p);
|
||||
@ -30,8 +33,8 @@ public class JsonObject extends JsonElement {
|
||||
|
||||
// this is used by the parser which can allow duplicates = true (for the validator). You should not otherwise use it
|
||||
public JsonObject addForParser(String name, JsonElement value, boolean noComma, boolean nameUnquoted, boolean valueUnquoted) throws JsonException {
|
||||
check(name != null, "Numm is null");
|
||||
check(value != null, "Numm is null");
|
||||
check(name != null, "Name is null");
|
||||
check(value != null, "Value is null");
|
||||
JsonProperty p = new JsonProperty(name, value);
|
||||
p.setNoComma(noComma);
|
||||
p.setUnquotedName(nameUnquoted);
|
||||
@ -42,13 +45,64 @@ public class JsonObject extends JsonElement {
|
||||
}
|
||||
|
||||
public JsonObject add(String name, String value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
return add(name, new JsonString(value));
|
||||
}
|
||||
|
||||
public JsonObject add(String name, boolean value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
return add(name, new JsonBoolean(value));
|
||||
}
|
||||
|
||||
public JsonObject add(String name, int value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
return add(name, new JsonNumber(value));
|
||||
}
|
||||
|
||||
public JsonObject set(String name, JsonElement value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
check(value != null, "Value is null");
|
||||
JsonProperty p = propMap.get(name);
|
||||
if (p != null) {
|
||||
p.setValue(value);
|
||||
return this;
|
||||
} else {
|
||||
return add(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
public JsonObject set(String name, String value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
JsonProperty p = propMap.get(name);
|
||||
if (p != null) {
|
||||
p.setValue(new JsonString(value));
|
||||
return this;
|
||||
} else {
|
||||
return add(name, new JsonString(value));
|
||||
}
|
||||
}
|
||||
|
||||
public JsonObject set(String name, boolean value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
JsonProperty p = propMap.get(name);
|
||||
if (p != null) {
|
||||
p.setValue(new JsonBoolean(value));
|
||||
return this;
|
||||
} else {
|
||||
return add(name, new JsonBoolean(value));
|
||||
}
|
||||
}
|
||||
|
||||
public JsonObject set(String name, int value) throws JsonException {
|
||||
check(name != null, "Name is null");
|
||||
JsonProperty p = propMap.get(name);
|
||||
if (p != null) {
|
||||
p.setValue(new JsonNumber(value));
|
||||
return this;
|
||||
} else {
|
||||
return add(name, new JsonNumber(value));
|
||||
}
|
||||
}
|
||||
|
||||
public JsonElement get(String name) {
|
||||
if (propMap.containsKey(name)) {
|
||||
@ -62,7 +116,7 @@ public class JsonObject extends JsonElement {
|
||||
return propMap.containsKey(name);
|
||||
}
|
||||
|
||||
public void drop(String name) {
|
||||
public void remove(String name) {
|
||||
if (propMap.containsKey(name)) {
|
||||
propMap.remove(name);
|
||||
properties.removeIf((JsonProperty item) -> name.equals(item.getName()));
|
||||
@ -74,8 +128,8 @@ public class JsonObject extends JsonElement {
|
||||
}
|
||||
|
||||
public String str(String name) {
|
||||
if (has(name)) {
|
||||
return get(name).toString();
|
||||
if (hasPrimitive(name)) {
|
||||
return get(name).asJsonPrimitive().getValue();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
@ -110,27 +164,27 @@ public class JsonObject extends JsonElement {
|
||||
}
|
||||
|
||||
|
||||
public JsonObject getObject(String name) {
|
||||
public JsonObject getJsonObject(String name) {
|
||||
return hasObject(name) ? (JsonObject) get(name) : null;
|
||||
}
|
||||
|
||||
public JsonString getString(String name) {
|
||||
public JsonString getJsonString(String name) {
|
||||
return hasString(name) ? (JsonString) get(name) : null;
|
||||
}
|
||||
|
||||
public JsonBoolean getBoolean(String name) {
|
||||
public JsonBoolean getJsonBoolean(String name) {
|
||||
return hasBoolean(name) ? (JsonBoolean) get(name) : null;
|
||||
}
|
||||
|
||||
public JsonNumber getNumber(String name) {
|
||||
public JsonNumber getJsonNumber(String name) {
|
||||
return hasNumber(name) ? (JsonNumber) get(name) : null;
|
||||
}
|
||||
|
||||
public JsonNull getNull(String name) {
|
||||
public JsonNull getJsonNull(String name) {
|
||||
return hasNull(name) ?(JsonNull) get(name) : null;
|
||||
}
|
||||
|
||||
public JsonArray getArray(String name) {
|
||||
public JsonArray getJsonArray(String name) {
|
||||
return hasArray(name) ? (JsonArray) get(name) : null;
|
||||
}
|
||||
|
||||
@ -148,7 +202,16 @@ public class JsonObject extends JsonElement {
|
||||
}
|
||||
|
||||
public String asString(String name) {
|
||||
return hasPrimitive(name) ? ((JsonPrimitive) get(name)).toString() : null;
|
||||
return hasPrimitive(name) ? ((JsonPrimitive) get(name)).getValue() : null;
|
||||
}
|
||||
|
||||
public String asString(String... names) {
|
||||
for (String n : names) {
|
||||
if (hasPrimitive(n)) {
|
||||
return asString(n);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean asBoolean(String name) {
|
||||
@ -167,25 +230,101 @@ public class JsonObject extends JsonElement {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Instant asDate(String name) {
|
||||
String source = asString(name);
|
||||
if (Utilities.noString(source)) {
|
||||
return null;
|
||||
} else {
|
||||
OffsetDateTime odt = OffsetDateTime.parse(source);
|
||||
return odt.toInstant();
|
||||
}
|
||||
}
|
||||
|
||||
public JsonObject forceObject(String name) throws JsonException {
|
||||
if (has(name) && !hasObject(name)) {
|
||||
drop(name);
|
||||
remove(name);
|
||||
}
|
||||
if (!has(name)) {
|
||||
add(name, new JsonObject());
|
||||
}
|
||||
return getObject(name);
|
||||
return getJsonObject(name);
|
||||
}
|
||||
|
||||
public JsonArray forceArray(String name) throws JsonException {
|
||||
if (has(name) && !hasArray(name)) {
|
||||
drop(name);
|
||||
remove(name);
|
||||
}
|
||||
if (!has(name)) {
|
||||
add(name, new JsonArray());
|
||||
}
|
||||
return getArray(name);
|
||||
return getJsonArray(name);
|
||||
}
|
||||
|
||||
public List<JsonObject> getJsonObjects(String name) {
|
||||
List<JsonObject> res = new ArrayList<>();
|
||||
if (hasArray(name)) {
|
||||
res.addAll(getJsonArray(name).asJsonObjects());
|
||||
} else if (hasObject(name)) {
|
||||
res.add(getJsonObject(name));
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public List<String> getStrings(String name) {
|
||||
List<String> res = new ArrayList<>();
|
||||
if (hasArray(name)) {
|
||||
res.addAll(getJsonArray(name).asStrings());
|
||||
} else if (hasPrimitive(name)) {
|
||||
res.add(asString(name));
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public JsonObject deepCopy() {
|
||||
return (JsonObject) make().copy(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement copy(JsonElement other) {
|
||||
JsonObject o = (JsonObject) other;
|
||||
for (JsonProperty p : o.getProperties()) {
|
||||
add(p.getName(), p.getValue().deepCopy());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement make() {
|
||||
return new JsonObject();
|
||||
}
|
||||
|
||||
public void merge(JsonObject source) {
|
||||
for (JsonProperty pp : source.getProperties()) {
|
||||
if (has(pp.getName())) {
|
||||
JsonElement te = get(pp.getName());
|
||||
if (te.isJsonObject() && pp.getValue().isJsonObject()) {
|
||||
((JsonObject) te).merge((JsonObject) pp.getValue());
|
||||
} else {
|
||||
set(pp.getName(), pp.getValue());
|
||||
}
|
||||
} else {
|
||||
add(pp.getName(), pp.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append("{ ");
|
||||
boolean first = true;
|
||||
for (JsonProperty p : properties) {
|
||||
if (first) first = false; else b.append(", ");
|
||||
b.append(p.toString());
|
||||
}
|
||||
b.append(" }");
|
||||
return b.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,4 +2,9 @@ package org.hl7.fhir.utilities.json.model;
|
||||
|
||||
public abstract class JsonPrimitive extends JsonElement {
|
||||
|
||||
public abstract String getValue();
|
||||
|
||||
public String toJson() {
|
||||
return getValue();
|
||||
}
|
||||
}
|
||||
|
@ -49,5 +49,10 @@ public class JsonProperty {
|
||||
public void setUnquotedValue(boolean unquotedValue) {
|
||||
this.unquotedValue = unquotedValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "\""+name+"\" : "+value.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package org.hl7.fhir.utilities.json.model;
|
||||
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
|
||||
public class JsonString extends JsonPrimitive {
|
||||
private String value;
|
||||
|
||||
@ -8,10 +10,14 @@ public class JsonString extends JsonPrimitive {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private JsonString() {
|
||||
}
|
||||
|
||||
public JsonElementType elementType() {
|
||||
return JsonElementType.STRING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
@ -22,7 +28,23 @@ public class JsonString extends JsonPrimitive {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return value;
|
||||
throw new Error("This should not be called");
|
||||
// return "\""+ Utilities.escapeJson(value)+"\"";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toJson() {
|
||||
return "\""+ Utilities.escapeJson(value)+"\"";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement copy(JsonElement other) {
|
||||
value = ((JsonString) other).value;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonElement make() {
|
||||
return new JsonString();
|
||||
}
|
||||
}
|
||||
|
@ -220,8 +220,11 @@ public class JsonParser {
|
||||
lexer.next();
|
||||
lexer.getStates().push(new State("", true));
|
||||
}
|
||||
else
|
||||
else if (lexer.getType() != null) {
|
||||
throw lexer.error("Unexpected content at start of JSON: "+lexer.getType().toString());
|
||||
} else {
|
||||
throw lexer.error("Unexpected content at start of JSON");
|
||||
}
|
||||
|
||||
if (lexer.getType() != TokenType.Close) {
|
||||
parseProperty();
|
||||
@ -568,7 +571,7 @@ public class JsonParser {
|
||||
int length = 0;
|
||||
for (JsonElement i : arr.getItems()) {
|
||||
if (i instanceof JsonPrimitive) {
|
||||
length = length + i.toString().length();
|
||||
length = length + ((JsonPrimitive)i).toJson().length();
|
||||
}
|
||||
if (i.elementType() == JsonElementType.ARRAY || i.elementType() == JsonElementType.OBJECT
|
||||
|| i.hasComments()) { // 20 is a somewhat arbitrary cut off
|
||||
|
@ -32,8 +32,10 @@ import org.hl7.fhir.utilities.SimpleHTTPClient.HTTPResult;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.VersionUtilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.NpmPackage.NpmPackageFolder;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -67,12 +69,6 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
*/
|
||||
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* This is a package cache manager implementation that uses a local disk cache
|
||||
*
|
||||
@ -420,18 +416,18 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
log(" done.");
|
||||
}
|
||||
pck = loadPackageInfo(packRoot);
|
||||
if (!id.equals(JsonUtilities.str(npm.getNpm(), "name")) || !v.equals(JsonUtilities.str(npm.getNpm(), "version"))) {
|
||||
if (!id.equals(JsonUtilities.str(npm.getNpm(), "name"))) {
|
||||
npm.getNpm().addProperty("original-name", JsonUtilities.str(npm.getNpm(), "name"));
|
||||
if (!id.equals(npm.getNpm().asString("name")) || !v.equals(npm.getNpm().asString("version"))) {
|
||||
if (!id.equals(npm.getNpm().asString("name"))) {
|
||||
npm.getNpm().add("original-name", npm.getNpm().asString("name"));
|
||||
npm.getNpm().remove("name");
|
||||
npm.getNpm().addProperty("name", id);
|
||||
npm.getNpm().add("name", id);
|
||||
}
|
||||
if (!v.equals(JsonUtilities.str(npm.getNpm(), "version"))) {
|
||||
npm.getNpm().addProperty("original-version", JsonUtilities.str(npm.getNpm(), "version"));
|
||||
if (!v.equals(npm.getNpm().asString("version"))) {
|
||||
npm.getNpm().add("original-version", npm.getNpm().asString("version"));
|
||||
npm.getNpm().remove("version");
|
||||
npm.getNpm().addProperty("version", v);
|
||||
npm.getNpm().add("version", v);
|
||||
}
|
||||
TextFile.stringToFile(new GsonBuilder().setPrettyPrinting().create().toJson(npm.getNpm()), Utilities.path(cacheFolder, id + "#" + v, "package", "package.json"), false);
|
||||
TextFile.stringToFile(JsonParser.compose(npm.getNpm(), true), Utilities.path(cacheFolder, id + "#" + v, "package", "package.json"), false);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
@ -570,10 +566,9 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
|
||||
private String getPackageUrlFromBuildList(String packageId) throws IOException {
|
||||
checkBuildLoaded();
|
||||
for (JsonElement n : buildInfo) {
|
||||
JsonObject o = (JsonObject) n;
|
||||
if (packageId.equals(JsonUtilities.str(o, "package-id"))) {
|
||||
return JsonUtilities.str(o, "url");
|
||||
for (JsonObject o : buildInfo.asJsonObjects()) {
|
||||
if (packageId.equals(o.asString("package-id"))) {
|
||||
return o.asString("url");
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -583,8 +578,8 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
checkBuildLoaded();
|
||||
for (JsonElement n : buildInfo) {
|
||||
JsonObject o = (JsonObject) n;
|
||||
if (!specList.containsKey(JsonUtilities.str(o, "package-id"))) {
|
||||
specList.put(JsonUtilities.str(o, "package-id"), JsonUtilities.str(o, "url"));
|
||||
if (!specList.containsKey(o.asString("package-id"))) {
|
||||
specList.put(o.asString("package-id"), o.asString("url"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -609,9 +604,9 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
try {
|
||||
for (String pf : listPackages()) {
|
||||
if (new File(Utilities.path(cacheFolder, pf, "package", "package.json")).exists()) {
|
||||
JsonObject npm = JsonTrackingParser.parseJsonFile(Utilities.path(cacheFolder, pf, "package", "package.json"));
|
||||
if (canonicalUrl.equals(JsonUtilities.str(npm, "canonical"))) {
|
||||
return JsonUtilities.str(npm, "name");
|
||||
JsonObject npm = JsonParser.parseObjectFromFile(Utilities.path(cacheFolder, pf, "package", "package.json"));
|
||||
if (canonicalUrl.equals(npm.asString("canonical"))) {
|
||||
return npm.asString("name");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -630,14 +625,14 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
if (buildInfo != null) {
|
||||
for (JsonElement n : buildInfo) {
|
||||
JsonObject o = (JsonObject) n;
|
||||
if (canonical.equals(JsonUtilities.str(o, "url"))) {
|
||||
return JsonUtilities.str(o, "package-id");
|
||||
if (canonical.equals(o.asString("url"))) {
|
||||
return o.asString("package-id");
|
||||
}
|
||||
}
|
||||
for (JsonElement n : buildInfo) {
|
||||
JsonObject o = (JsonObject) n;
|
||||
if (JsonUtilities.str(o, "url").startsWith(canonical + "/ImplementationGuide/")) {
|
||||
return JsonUtilities.str(o, "package-id");
|
||||
if (o.asString("url").startsWith(canonical + "/ImplementationGuide/")) {
|
||||
return o.asString("package-id");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -649,8 +644,8 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
// special case: current versions roll over, and we have to check their currency
|
||||
try {
|
||||
String url = ciList.get(id);
|
||||
JsonObject json = JsonTrackingParser.fetchJson(Utilities.pathURL(url, "package.manifest.json"));
|
||||
String currDate = JsonUtilities.str(json, "date");
|
||||
JsonObject json = JsonParser.parseObjectFromUrl(Utilities.pathURL(url, "package.manifest.json"));
|
||||
String currDate = json.asString("date");
|
||||
String packDate = p.date();
|
||||
if (!currDate.equals(packDate)) {
|
||||
return null; // nup, we need a new copy
|
||||
@ -678,17 +673,17 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
HTTPResult res = http.get("https://build.fhir.org/ig/qas.json?nocache=" + System.currentTimeMillis());
|
||||
res.checkThrowException();
|
||||
|
||||
buildInfo = (JsonArray) new com.google.gson.JsonParser().parse(TextFile.bytesToString(res.getContent()));
|
||||
buildInfo = (JsonArray) JsonParser.parse(TextFile.bytesToString(res.getContent()));
|
||||
|
||||
List<BuildRecord> builds = new ArrayList<>();
|
||||
|
||||
for (JsonElement n : buildInfo) {
|
||||
JsonObject o = (JsonObject) n;
|
||||
if (o.has("url") && o.has("package-id") && o.get("package-id").getAsString().contains(".")) {
|
||||
String u = o.get("url").getAsString();
|
||||
if (o.has("url") && o.has("package-id") && o.asString("package-id").contains(".")) {
|
||||
String u = o.asString("url");
|
||||
if (u.contains("/ImplementationGuide/"))
|
||||
u = u.substring(0, u.indexOf("/ImplementationGuide/"));
|
||||
builds.add(new BuildRecord(u, o.get("package-id").getAsString(), getRepo(o.get("repo").getAsString()), readDate(o.get("date").getAsString())));
|
||||
builds.add(new BuildRecord(u, o.asString("package-id"), getRepo(o.asString("repo")), readDate(o.asString("date"))));
|
||||
}
|
||||
}
|
||||
Collections.sort(builds, new BuildRecordSorter());
|
||||
@ -735,7 +730,7 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
String aurl = pu;
|
||||
JsonObject json;
|
||||
try {
|
||||
json = JsonTrackingParser.fetchJson(pu);
|
||||
json = JsonParser.parseObjectFromUrl(pu);
|
||||
} catch (Exception e) {
|
||||
String pv = Utilities.pathURL(url, v, "package.tgz");
|
||||
try {
|
||||
@ -746,13 +741,12 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
throw new FHIRException("Error fetching package directly (" + pv + "), or fetching package list for " + id + " from " + pu + ": " + e1.getMessage(), e1);
|
||||
}
|
||||
}
|
||||
if (!id.equals(JsonUtilities.str(json, "package-id")))
|
||||
throw new FHIRException("Package ids do not match in " + pu + ": " + id + " vs " + JsonUtilities.str(json, "package-id"));
|
||||
for (JsonElement e : json.getAsJsonArray("list")) {
|
||||
JsonObject vo = (JsonObject) e;
|
||||
if (v.equals(JsonUtilities.str(vo, "version"))) {
|
||||
aurl = Utilities.pathURL(JsonUtilities.str(vo, "path"), "package.tgz");
|
||||
String u = Utilities.pathURL(JsonUtilities.str(vo, "path"), "package.tgz");
|
||||
if (!id.equals(json.asString("package-id")))
|
||||
throw new FHIRException("Package ids do not match in " + pu + ": " + id + " vs " + json.asString("package-id"));
|
||||
for (JsonObject vo : json.getJsonObjects("list")) {
|
||||
if (v.equals(vo.asString("version"))) {
|
||||
aurl = Utilities.pathURL(vo.asString("path"), "package.tgz");
|
||||
String u = Utilities.pathURL(vo.asString("path"), "package.tgz");
|
||||
return new InputStreamWithSrc(fetchFromUrlSpecific(u, true), u, v);
|
||||
}
|
||||
}
|
||||
@ -776,13 +770,12 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||
throw new FHIRException("Unable to resolve package id " + id);
|
||||
}
|
||||
String pu = Utilities.pathURL(url, "package-list.json");
|
||||
JsonObject json = JsonTrackingParser.fetchJson(pu);
|
||||
if (!id.equals(JsonUtilities.str(json, "package-id")))
|
||||
throw new FHIRException("Package ids do not match in " + pu + ": " + id + " vs " + JsonUtilities.str(json, "package-id"));
|
||||
for (JsonElement e : json.getAsJsonArray("list")) {
|
||||
JsonObject vo = (JsonObject) e;
|
||||
if (JsonUtilities.bool(vo, "current")) {
|
||||
return JsonUtilities.str(vo, "version");
|
||||
JsonObject json = JsonParser.parseObjectFromUrl(pu);
|
||||
if (!id.equals(json.asString("package-id")))
|
||||
throw new FHIRException("Package ids do not match in " + pu + ": " + id + " vs " + json.asString("package-id"));
|
||||
for (JsonObject vo : json.getJsonObjects("list")) {
|
||||
if (vo.asBoolean("current")) {
|
||||
return vo.asString("version");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,15 +66,13 @@ import org.hl7.fhir.utilities.SimpleHTTPClient;
|
||||
import org.hl7.fhir.utilities.SimpleHTTPClient.HTTPResult;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonProperty;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.npm.PackageGenerator.PackageType;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* info and loader for a package
|
||||
*
|
||||
@ -111,13 +109,13 @@ public class NpmPackage {
|
||||
|
||||
public PackageResourceInformation(String root, JsonObject fi) throws IOException {
|
||||
super();
|
||||
id = JsonUtilities.str(fi, "id");
|
||||
resourceType = JsonUtilities.str(fi, "resourceType");
|
||||
url = JsonUtilities.str(fi, "url");
|
||||
version = JsonUtilities.str(fi, "version");
|
||||
filename = Utilities.path(root, JsonUtilities.str(fi, "filename"));
|
||||
supplements = JsonUtilities.str(fi, "supplements");
|
||||
stype = JsonUtilities.str(fi, "type");
|
||||
id = fi.asString("id");
|
||||
resourceType = fi.asString("resourceType");
|
||||
url = fi.asString("url");
|
||||
version = fi.asString("version");
|
||||
filename = Utilities.path(root, fi.asString("filename"));
|
||||
supplements = fi.asString("supplements");
|
||||
stype = fi.asString("type");
|
||||
}
|
||||
public String getId() {
|
||||
return id;
|
||||
@ -146,8 +144,8 @@ public class NpmPackage {
|
||||
|
||||
@Override
|
||||
public int compare(JsonObject o0, JsonObject o1) {
|
||||
String v0 = JsonUtilities.str(o0, "version");
|
||||
String v1 = JsonUtilities.str(o1, "version");
|
||||
String v0 = o0.asString("version");
|
||||
String v1 = o1.asString("version");
|
||||
return v0.compareTo(v1);
|
||||
}
|
||||
}
|
||||
@ -181,14 +179,13 @@ public class NpmPackage {
|
||||
}
|
||||
|
||||
public boolean readIndex(JsonObject index) {
|
||||
if (!index.has("index-version") || (index.get("index-version").getAsInt() != 1)) {
|
||||
if (!index.has("index-version") || (index.asInteger("index-version") != 1)) {
|
||||
return false;
|
||||
}
|
||||
this.index = index;
|
||||
for (JsonElement e : index.getAsJsonArray("files")) {
|
||||
JsonObject file = (JsonObject) e;
|
||||
String type = JsonUtilities.str(file, "resourceType");
|
||||
String name = JsonUtilities.str(file, "filename");
|
||||
for (JsonObject file : index.getJsonObjects("files")) {
|
||||
String type = file.asString("resourceType");
|
||||
String name = file.asString("filename");
|
||||
if (!types.containsKey(type))
|
||||
types.put(type, new ArrayList<>());
|
||||
types.get(type).add(name);
|
||||
@ -301,7 +298,7 @@ public class NpmPackage {
|
||||
}
|
||||
|
||||
public void loadFiles(String path, File source, String... exemptions) throws FileNotFoundException, IOException {
|
||||
this.npm = (JsonObject) new com.google.gson.JsonParser().parse(TextFile.fileToString(Utilities.path(path, "package", "package.json")));
|
||||
this.npm = JsonParser.parseObject(TextFile.fileToString(Utilities.path(path, "package", "package.json")));
|
||||
this.path = path;
|
||||
|
||||
File dir = new File(path);
|
||||
@ -318,7 +315,7 @@ public class NpmPackage {
|
||||
File ij = new File(Utilities.path(f.getAbsolutePath(), ".index.json"));
|
||||
if (ij.exists()) {
|
||||
try {
|
||||
if (!folder.readIndex(JsonTrackingParser.parseJson(ij))) {
|
||||
if (!folder.readIndex(JsonParser.parseObject(ij))) {
|
||||
indexFolder(folder.getName(), folder);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@ -353,7 +350,7 @@ public class NpmPackage {
|
||||
File ij = new File(Utilities.path(f.getAbsolutePath(), ".index.json"));
|
||||
if (ij.exists()) {
|
||||
try {
|
||||
if (!folder.readIndex(JsonTrackingParser.parseJson(ij))) {
|
||||
if (!folder.readIndex(JsonParser.parseObject(ij))) {
|
||||
indexFolder(folder.getName(), folder);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@ -374,7 +371,7 @@ public class NpmPackage {
|
||||
if (!res.folders.get("package").hasFile("package.json") && defType != null) {
|
||||
TextFile.stringToFile("{ \"type\" : \""+defType.getCode()+"\"}", Utilities.path(res.folders.get("package").folder.getAbsolutePath(), "package.json"));
|
||||
}
|
||||
res.npm = (JsonObject) new com.google.gson.JsonParser().parse(new String(res.folders.get("package").fetchFile("package.json")));
|
||||
res.npm = JsonParser.parseObject(new String(res.folders.get("package").fetchFile("package.json")));
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -439,7 +436,7 @@ public class NpmPackage {
|
||||
}
|
||||
}
|
||||
try {
|
||||
npm = JsonTrackingParser.parseJson(folders.get("package").fetchFile("package.json"));
|
||||
npm = JsonParser.parseObject(folders.get("package").fetchFile("package.json"));
|
||||
} catch (Exception e) {
|
||||
throw new IOException("Error parsing "+(desc == null ? "" : desc+"#")+"package/package.json: "+e.getMessage(), e);
|
||||
}
|
||||
@ -482,7 +479,7 @@ public class NpmPackage {
|
||||
}
|
||||
String json = indexer.build();
|
||||
try {
|
||||
folder.readIndex(JsonTrackingParser.parseJson(json));
|
||||
folder.readIndex(JsonParser.parseObject(json));
|
||||
if (folder.folder != null) {
|
||||
TextFile.stringToFile(json, Utilities.path(folder.folder.getAbsolutePath(), ".index.json"));
|
||||
}
|
||||
@ -520,7 +517,7 @@ public class NpmPackage {
|
||||
}
|
||||
zip.close();
|
||||
try {
|
||||
res.npm = JsonTrackingParser.parseJson(res.folders.get("package").fetchFile("package.json"));
|
||||
res.npm = JsonParser.parseObject(res.folders.get("package").fetchFile("package.json"));
|
||||
} catch (Exception e) {
|
||||
throw new IOException("Error parsing "+(desc == null ? "" : desc+"#")+"package/package.json: "+e.getMessage(), e);
|
||||
}
|
||||
@ -561,9 +558,8 @@ public class NpmPackage {
|
||||
List<PackageResourceInformation> res = new ArrayList<PackageResourceInformation>();
|
||||
for (NpmPackageFolder folder : folders.values()) {
|
||||
if (folder.index != null) {
|
||||
for (JsonElement e : folder.index.getAsJsonArray("files")) {
|
||||
JsonObject fi = e.getAsJsonObject();
|
||||
if (Utilities.existsInList(JsonUtilities.str(fi, "resourceType"), types)) {
|
||||
for (JsonObject fi : folder.index.getJsonObjects("files")) {
|
||||
if (Utilities.existsInList(fi.asString("resourceType"), types)) {
|
||||
res.add(new PackageResourceInformation(folder.folder == null ? "@"+folder.getName() : folder.folder.getAbsolutePath(), fi));
|
||||
}
|
||||
}
|
||||
@ -634,21 +630,20 @@ public class NpmPackage {
|
||||
public InputStream loadByCanonicalVersion(String folder, String canonical, String version) throws IOException {
|
||||
NpmPackageFolder f = folders.get(folder);
|
||||
List<JsonObject> matches = new ArrayList<>();
|
||||
for (JsonElement e : f.index.getAsJsonArray("files")) {
|
||||
JsonObject file = (JsonObject) e;
|
||||
if (canonical.equals(JsonUtilities.str(file, "url"))) {
|
||||
if (version != null && version.equals(JsonUtilities.str(file, "version"))) {
|
||||
return load("package", JsonUtilities.str(file, "filename"));
|
||||
for (JsonObject file : f.index.getJsonObjects("files")) {
|
||||
if (canonical.equals(file.asString("url"))) {
|
||||
if (version != null && version.equals(file.asString("version"))) {
|
||||
return load("package", file.asString("filename"));
|
||||
} else if (version == null) {
|
||||
matches.add(file);
|
||||
}
|
||||
}
|
||||
if (matches.size() > 0) {
|
||||
if (matches.size() == 1) {
|
||||
return load("package", JsonUtilities.str(matches.get(0), "filename"));
|
||||
return load("package", matches.get(0).asString("filename"));
|
||||
} else {
|
||||
Collections.sort(matches, new IndexVersionSorter());
|
||||
return load("package", JsonUtilities.str(matches.get(matches.size()-1), "filename"));
|
||||
return load("package", matches.get(matches.size()-1).asString("filename"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -708,7 +703,7 @@ public class NpmPackage {
|
||||
* @return
|
||||
*/
|
||||
public String name() {
|
||||
return JsonUtilities.str(npm, "name");
|
||||
return npm.asString("name");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -716,15 +711,15 @@ public class NpmPackage {
|
||||
* @return
|
||||
*/
|
||||
public String id() {
|
||||
return JsonUtilities.str(npm, "name");
|
||||
return npm.asString("name");
|
||||
}
|
||||
|
||||
public String date() {
|
||||
return JsonUtilities.str(npm, "date");
|
||||
return npm.asString("date");
|
||||
}
|
||||
|
||||
public String canonical() {
|
||||
return JsonUtilities.str(npm, "canonical");
|
||||
return npm.asString("canonical");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -732,7 +727,7 @@ public class NpmPackage {
|
||||
* @return
|
||||
*/
|
||||
public String version() {
|
||||
return JsonUtilities.str(npm, "version");
|
||||
return npm.asString("version");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -740,28 +735,28 @@ public class NpmPackage {
|
||||
* @return
|
||||
*/
|
||||
public String fhirVersion() {
|
||||
if ("hl7.fhir.core".equals(JsonUtilities.str(npm, "name")))
|
||||
return JsonUtilities.str(npm, "version");
|
||||
else if (JsonUtilities.str(npm, "name").startsWith("hl7.fhir.r2.") || JsonUtilities.str(npm, "name").startsWith("hl7.fhir.r2b.") || JsonUtilities.str(npm, "name").startsWith("hl7.fhir.r3.") ||
|
||||
JsonUtilities.str(npm, "name").startsWith("hl7.fhir.r4.") || JsonUtilities.str(npm, "name").startsWith("hl7.fhir.r4b.") || JsonUtilities.str(npm, "name").startsWith("hl7.fhir.r5."))
|
||||
return JsonUtilities.str(npm, "version");
|
||||
if ("hl7.fhir.core".equals(npm.asString("name")))
|
||||
return npm.asString("version");
|
||||
else if (npm.asString("name").startsWith("hl7.fhir.r2.") || npm.asString("name").startsWith("hl7.fhir.r2b.") || npm.asString("name").startsWith("hl7.fhir.r3.") ||
|
||||
npm.asString("name").startsWith("hl7.fhir.r4.") || npm.asString("name").startsWith("hl7.fhir.r4b.") || npm.asString("name").startsWith("hl7.fhir.r5."))
|
||||
return npm.asString("version");
|
||||
else {
|
||||
JsonObject dep = null;
|
||||
if (npm.has("dependencies") && npm.get("dependencies").isJsonObject()) {
|
||||
dep = npm.getAsJsonObject("dependencies");
|
||||
if (npm.hasObject("dependencies")) {
|
||||
dep = npm.getJsonObject("dependencies");
|
||||
if (dep != null) {
|
||||
for (Entry<String, JsonElement> e : dep.entrySet()) {
|
||||
if (Utilities.existsInList(e.getKey(), "hl7.fhir.r2.core", "hl7.fhir.r2b.core", "hl7.fhir.r3.core", "hl7.fhir.r4.core"))
|
||||
return e.getValue().getAsString();
|
||||
if (Utilities.existsInList(e.getKey(), "hl7.fhir.core")) // while all packages are updated
|
||||
return e.getValue().getAsString();
|
||||
for (JsonProperty e : dep.getProperties()) {
|
||||
if (Utilities.existsInList(e.getName(), "hl7.fhir.r2.core", "hl7.fhir.r2b.core", "hl7.fhir.r3.core", "hl7.fhir.r4.core"))
|
||||
return e.getValue().asString();
|
||||
if (Utilities.existsInList(e.getName(), "hl7.fhir.core")) // while all packages are updated
|
||||
return e.getValue().asString();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (npm.has("fhirVersions")) {
|
||||
JsonElement e = npm.get("fhirVersions");
|
||||
if (e.isJsonArray() && e.getAsJsonArray().size() > 0) {
|
||||
return npm.getAsJsonArray("fhirVersions").get(0).getAsString();
|
||||
if (npm.hasArray("fhirVersions")) {
|
||||
JsonArray e = npm.getJsonArray("fhirVersions");
|
||||
if (e.size() > 0) {
|
||||
return e.getItems().get(0).asString();
|
||||
}
|
||||
}
|
||||
if (dep != null) {
|
||||
@ -789,11 +784,11 @@ public class NpmPackage {
|
||||
}
|
||||
|
||||
public String type() {
|
||||
return JsonUtilities.str(npm, "type");
|
||||
return npm.asString("type");
|
||||
}
|
||||
|
||||
public String description() {
|
||||
return JsonUtilities.str(npm, "description");
|
||||
return npm.asString("description");
|
||||
}
|
||||
|
||||
public String getPath() {
|
||||
@ -803,32 +798,32 @@ public class NpmPackage {
|
||||
public List<String> dependencies() {
|
||||
List<String> res = new ArrayList<>();
|
||||
if (npm.has("dependencies")) {
|
||||
for (Entry<String, JsonElement> e : npm.getAsJsonObject("dependencies").entrySet()) {
|
||||
res.add(e.getKey()+"#"+e.getValue().getAsString());
|
||||
for (JsonProperty e : npm.getJsonObject("dependencies").getProperties()) {
|
||||
res.add(e.getName()+"#"+e.getValue().asString());
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public String homepage() {
|
||||
return JsonUtilities.str(npm, "homepage");
|
||||
return npm.asString("homepage");
|
||||
}
|
||||
|
||||
public String url() {
|
||||
return JsonUtilities.str(npm, "url");
|
||||
return npm.asString("url");
|
||||
}
|
||||
|
||||
|
||||
public String title() {
|
||||
return JsonUtilities.str(npm, "title");
|
||||
return npm.asString("title");
|
||||
}
|
||||
|
||||
public String toolsVersion() {
|
||||
return JsonUtilities.str(npm, "tools-version");
|
||||
return npm.asString("tools-version");
|
||||
}
|
||||
|
||||
public String license() {
|
||||
return JsonUtilities.str(npm, "license");
|
||||
return npm.asString("license");
|
||||
}
|
||||
|
||||
// /**
|
||||
@ -841,20 +836,20 @@ public class NpmPackage {
|
||||
// }
|
||||
|
||||
public String getWebLocation() {
|
||||
if (npm.has("url") && npm.get("url").isJsonPrimitive()) {
|
||||
return PackageHacker.fixPackageUrl(npm.get("url").getAsString());
|
||||
if (npm.hasPrimitive("url")) {
|
||||
return PackageHacker.fixPackageUrl(npm.asString("url"));
|
||||
} else {
|
||||
return JsonUtilities.str(npm, "canonical");
|
||||
return npm.asString("canonical");
|
||||
}
|
||||
}
|
||||
|
||||
public InputStream loadResource(String type, String id) throws IOException {
|
||||
NpmPackageFolder f = folders.get("package");
|
||||
JsonArray files = f.index.getAsJsonArray("files");
|
||||
for (JsonElement e : files) {
|
||||
JsonArray files = f.index.getJsonArray("files");
|
||||
for (JsonElement e : files.getItems()) {
|
||||
JsonObject i = (JsonObject) e;
|
||||
if (type.equals(JsonUtilities.str(i, "resourceType")) && id.equals(JsonUtilities.str(i, "id"))) {
|
||||
return load("package", JsonUtilities.str(i, "filename"));
|
||||
if (type.equals(i.asString("resourceType")) && id.equals(i.asString("id"))) {
|
||||
return load("package", i.asString("filename"));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -866,11 +861,11 @@ public class NpmPackage {
|
||||
f = folders.get("package/example");
|
||||
}
|
||||
if (f != null) {
|
||||
JsonArray files = f.index.getAsJsonArray("files");
|
||||
for (JsonElement e : files) {
|
||||
JsonArray files = f.index.getJsonArray("files");
|
||||
for (JsonElement e : files.getItems()) {
|
||||
JsonObject i = (JsonObject) e;
|
||||
if (type.equals(JsonUtilities.str(i, "resourceType")) && id.equals(JsonUtilities.str(i, "id"))) {
|
||||
return load("example", JsonUtilities.str(i, "filename"));
|
||||
if (type.equals(i.asString("resourceType")) && id.equals(i.asString("id"))) {
|
||||
return load("example", i.asString("filename"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -909,7 +904,7 @@ public class NpmPackage {
|
||||
byte[] cnt = indexer.build().getBytes(StandardCharsets.UTF_8);
|
||||
TextFile.bytesToFile(cnt, Utilities.path(dir.getAbsolutePath(), n, ".index.json"));
|
||||
}
|
||||
byte[] cnt = TextFile.stringToBytes(new GsonBuilder().setPrettyPrinting().create().toJson(npm), false);
|
||||
byte[] cnt = TextFile.stringToBytes(JsonParser.compose(npm, true), false);
|
||||
TextFile.bytesToFile(cnt, Utilities.path(dir.getAbsolutePath(), "package", "package.json"));
|
||||
}
|
||||
|
||||
@ -955,7 +950,7 @@ public class NpmPackage {
|
||||
tar.write(cnt);
|
||||
tar.closeArchiveEntry();
|
||||
}
|
||||
byte[] cnt = TextFile.stringToBytes(new GsonBuilder().setPrettyPrinting().create().toJson(npm), false);
|
||||
byte[] cnt = TextFile.stringToBytes(JsonParser.compose(npm, true), false);
|
||||
TarArchiveEntry entry = new TarArchiveEntry("package/package.json");
|
||||
entry.setSize(cnt.length);
|
||||
tar.putArchiveEntry(entry);
|
||||
@ -981,13 +976,13 @@ public class NpmPackage {
|
||||
public String fhirVersionList() {
|
||||
if (npm.has("fhirVersions")) {
|
||||
CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder();
|
||||
if (npm.get("fhirVersions").isJsonArray()) {
|
||||
for (JsonElement n : npm.getAsJsonArray("fhirVersions")) {
|
||||
b.append(n.getAsString());
|
||||
if (npm.hasArray("fhirVersions")) {
|
||||
for (String n : npm.getJsonArray("fhirVersions").asStrings()) {
|
||||
b.append(n);
|
||||
}
|
||||
}
|
||||
if (npm.get("fhirVersions").isJsonPrimitive()) {
|
||||
b.append(npm.get("fhirVersions").getAsString());
|
||||
if (npm.hasPrimitive("fhirVersions")) {
|
||||
b.append(npm.asString("fhirVersions"));
|
||||
}
|
||||
return b.toString();
|
||||
} else
|
||||
@ -997,8 +992,8 @@ public class NpmPackage {
|
||||
public String dependencySummary() {
|
||||
if (npm.has("dependencies")) {
|
||||
CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder();
|
||||
for (Entry<String, JsonElement> e : npm.getAsJsonObject("dependencies").entrySet()) {
|
||||
b.append(e.getKey()+"#"+e.getValue().getAsString());
|
||||
for (JsonProperty e : npm.getJsonObject("dependencies").getProperties()) {
|
||||
b.append(e.getName()+"#"+e.getValue().asString());
|
||||
}
|
||||
return b.toString();
|
||||
} else
|
||||
@ -1080,7 +1075,7 @@ public class NpmPackage {
|
||||
folder.types.get(type).add(name);
|
||||
if ("package".equals(folderName) && "package.json".equals(name)) {
|
||||
try {
|
||||
npm = JsonTrackingParser.parseJson(cnt);
|
||||
npm = JsonParser.parseObject(cnt);
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
@ -1118,11 +1113,11 @@ public class NpmPackage {
|
||||
}
|
||||
|
||||
public boolean isCore() {
|
||||
return Utilities.existsInList(JsonUtilities.str(npm, "type"), "fhir.core", "Core");
|
||||
return Utilities.existsInList(npm.asString("type"), "fhir.core", "Core");
|
||||
}
|
||||
|
||||
public boolean isTx() {
|
||||
return JsonUtilities.str(npm, "name").startsWith("hl7.terminology");
|
||||
return npm.asString("name").startsWith("hl7.terminology");
|
||||
}
|
||||
|
||||
public boolean hasCanonical(String url) {
|
||||
@ -1133,10 +1128,9 @@ public class NpmPackage {
|
||||
String v = url.contains("|") ? url.substring(url.indexOf("|")+1) : null;
|
||||
NpmPackageFolder folder = folders.get("package");
|
||||
if (folder != null) {
|
||||
for (JsonElement e : folder.index.getAsJsonArray("files")) {
|
||||
JsonObject o = (JsonObject) e;
|
||||
if (u.equals(JsonUtilities.str(o, "url"))) {
|
||||
if (v == null || v.equals(JsonUtilities.str(o, "version"))) {
|
||||
for (JsonObject o : folder.index.getJsonObjects("files")) {
|
||||
if (u.equals(o.asString("url"))) {
|
||||
if (v == null || v.equals(o.asString("version"))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -1154,7 +1148,7 @@ public class NpmPackage {
|
||||
if (Utilities.existsInList(name(), "fhir.test.data.r2", "fhir.test.data.r3", "fhir.test.data.r4", "fhir.tx.support.r2", "fhir.tx.support.r3", "fhir.tx.support.r4", "us.nlm.vsac")) {
|
||||
return true;
|
||||
}
|
||||
if (JsonUtilities.bool(npm, "lazy-load")) {
|
||||
if (npm.asBoolean("lazy-load")) {
|
||||
return true;
|
||||
}
|
||||
if (!hasFile("other", "spec.internals")) {
|
||||
@ -1164,7 +1158,7 @@ public class NpmPackage {
|
||||
}
|
||||
|
||||
public boolean isNotForPublication() {
|
||||
return JsonUtilities.bool(npm, "notForPublication");
|
||||
return npm.asBoolean("notForPublication");
|
||||
}
|
||||
|
||||
public InputStream load(PackageResourceInformation p) throws FileNotFoundException {
|
||||
|
@ -6,11 +6,9 @@ import java.io.IOException;
|
||||
import org.hl7.fhir.exceptions.FHIRException;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
/**
|
||||
* This class builds the .index.json for a package
|
||||
@ -25,7 +23,7 @@ public class NpmPackageIndexBuilder {
|
||||
|
||||
public void start() {
|
||||
index = new JsonObject();
|
||||
index.addProperty("index-version", 1);
|
||||
index.add("index-version", 1);
|
||||
files = new JsonArray();
|
||||
index.add("files", files);
|
||||
}
|
||||
@ -33,30 +31,30 @@ public class NpmPackageIndexBuilder {
|
||||
public boolean seeFile(String name, byte[] content) {
|
||||
if (name.endsWith(".json")) {
|
||||
try {
|
||||
JsonObject json = JsonTrackingParser.parseJson(content);
|
||||
JsonObject json = JsonParser.parseObject(content);
|
||||
if (json.has("resourceType")) {
|
||||
// ok we treat it as a resource
|
||||
JsonObject fi = new JsonObject();
|
||||
files.add(fi);
|
||||
fi.addProperty("filename", name);
|
||||
fi.addProperty("resourceType", json.get("resourceType").getAsString());
|
||||
if (json.has("id") && json.get("id").isJsonPrimitive()) {
|
||||
fi.addProperty("id", json.get("id").getAsString());
|
||||
fi.add("filename", name);
|
||||
fi.add("resourceType", json.asString("resourceType"));
|
||||
if (json.hasPrimitive("id")) {
|
||||
fi.add("id", json.asString("id"));
|
||||
}
|
||||
if (json.has("url") && json.get("url").isJsonPrimitive()) {
|
||||
fi.addProperty("url", json.get("url").getAsString());
|
||||
if (json.hasPrimitive("url")) {
|
||||
fi.add("url", json.asString("url"));
|
||||
}
|
||||
if (json.has("version") && json.get("version").isJsonPrimitive()) {
|
||||
fi.addProperty("version", json.get("version").getAsString());
|
||||
if (json.hasPrimitive("version")) {
|
||||
fi.add("version", json.asString("version"));
|
||||
}
|
||||
if (json.has("kind") && json.get("kind").isJsonPrimitive()) {
|
||||
fi.addProperty("kind", json.get("kind").getAsString());
|
||||
if (json.hasPrimitive("kind")) {
|
||||
fi.add("kind", json.asString("kind"));
|
||||
}
|
||||
if (json.has("type") && json.get("type").isJsonPrimitive()) {
|
||||
fi.addProperty("type", json.get("type").getAsString());
|
||||
if (json.hasPrimitive("type")) {
|
||||
fi.add("type", json.asString("type"));
|
||||
}
|
||||
if (json.has("supplements") && json.get("supplements").isJsonPrimitive()) {
|
||||
fi.addProperty("supplements", json.get("supplements").getAsString());
|
||||
if (json.hasPrimitive("supplements")) {
|
||||
fi.add("supplements", json.asString("supplements"));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@ -70,7 +68,7 @@ public class NpmPackageIndexBuilder {
|
||||
}
|
||||
|
||||
public String build() {
|
||||
String res = new GsonBuilder().setPrettyPrinting().create().toJson(index);
|
||||
String res = JsonParser.compose(index, true);
|
||||
index = null;
|
||||
files = null;
|
||||
return res;
|
||||
|
@ -17,12 +17,10 @@ import org.hl7.fhir.utilities.SimpleHTTPClient.HTTPResult;
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.VersionUtilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.model.JsonProperty;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
public class PackageClient {
|
||||
|
||||
@ -81,21 +79,21 @@ public class PackageClient {
|
||||
JsonObject json;
|
||||
try {
|
||||
json = fetchJson(Utilities.pathURL(address, id));
|
||||
JsonObject versions = json.getAsJsonObject("versions");
|
||||
JsonObject versions = json.getJsonObject("versions");
|
||||
boolean hasDates = true;
|
||||
if (versions != null) {
|
||||
for (String v : versions.keySet()) {
|
||||
JsonObject obj = versions.getAsJsonObject(v);
|
||||
Instant d = obj.has("date") ? JsonUtilities.parseDate(obj, "date") : null;
|
||||
for (JsonProperty v : versions.getProperties()) {
|
||||
JsonObject obj = versions.getJsonObject(v.getName());
|
||||
Instant d = obj.hasString("date") ? obj.asDate("date") : null;
|
||||
if (d == null) {
|
||||
hasDates = false;
|
||||
}
|
||||
res.add(new PackageInfo(JsonUtilities.str(obj, "Name", "name"),
|
||||
JsonUtilities.str(obj, "Version", "version"),
|
||||
JsonUtilities.str(obj, "FhirVersion", "fhirVersion"),
|
||||
JsonUtilities.str(obj, "Description", "description"),
|
||||
JsonUtilities.str(obj, "url"),
|
||||
JsonUtilities.str(obj, "canonical"),
|
||||
res.add(new PackageInfo(obj.asString("Name", "name"),
|
||||
obj.asString("Version", "version"),
|
||||
obj.asString("FhirVersion", "fhirVersion"),
|
||||
obj.asString("Description", "description"),
|
||||
obj.asString("url"),
|
||||
obj.asString("canonical"),
|
||||
address, d));
|
||||
}
|
||||
}
|
||||
@ -127,18 +125,17 @@ public class PackageClient {
|
||||
try {
|
||||
JsonArray json = fetchJsonArray(Utilities.pathURL(address, "catalog?")+params.toString());
|
||||
boolean hasDates = true;
|
||||
for (JsonElement e : json) {
|
||||
JsonObject obj = (JsonObject) e;
|
||||
Instant d = obj.has("date") ? JsonUtilities.parseDate(obj, "date") : null;
|
||||
for (JsonObject obj : json.asJsonObjects()) {
|
||||
Instant d = obj.has("date") ? obj.asDate("date") : null;
|
||||
if (d == null) {
|
||||
hasDates = false;
|
||||
}
|
||||
res.add(new PackageInfo(JsonUtilities.str(obj, "Name", "name"),
|
||||
JsonUtilities.str(obj, "Version", "version"),
|
||||
JsonUtilities.str(obj, "FhirVersion", "fhirVersion"),
|
||||
JsonUtilities.str(obj, "Description", "description"),
|
||||
JsonUtilities.str(obj, "url"),
|
||||
JsonUtilities.str(obj, "canonical"),
|
||||
res.add(new PackageInfo(obj.asString("Name", "name"),
|
||||
obj.asString("Version", "version"),
|
||||
obj.asString("FhirVersion", "fhirVersion"),
|
||||
obj.asString("Description", "description"),
|
||||
obj.asString("url"),
|
||||
obj.asString("canonical"),
|
||||
address, d));
|
||||
}
|
||||
if (hasDates) {
|
||||
@ -165,13 +162,13 @@ public class PackageClient {
|
||||
private JsonObject fetchJson(String source) throws IOException {
|
||||
String src = TextFile.streamToString(fetchUrl(source, "application/json"));
|
||||
//System.out.println(src);
|
||||
return (JsonObject) new com.google.gson.JsonParser().parse(src);
|
||||
return JsonParser.parseObject(src);
|
||||
}
|
||||
|
||||
private JsonArray fetchJsonArray(String source) throws IOException {
|
||||
String src = TextFile.streamToString(fetchUrl(source, "application/json"));
|
||||
//System.out.println(src);
|
||||
return (JsonArray) new com.google.gson.JsonParser().parse(src);
|
||||
return (JsonArray) JsonParser.parse(src);
|
||||
}
|
||||
|
||||
public String url(String id, String v) {
|
||||
@ -209,11 +206,11 @@ public class PackageClient {
|
||||
}
|
||||
|
||||
protected PackageInfo getPackageInfoFromJSON(JsonObject o, String name, String canonical, String fhirVersion) {
|
||||
String id = JsonUtilities.str(o, "npm-name");
|
||||
String pname = JsonUtilities.str(o, "name");
|
||||
String pcanonical = JsonUtilities.str(o, "canonical");
|
||||
String description = JsonUtilities.str(o, "description");
|
||||
Instant d = o.has("date") ? JsonUtilities.parseDate(o, "date") : null;
|
||||
String id = o.asString("npm-name");
|
||||
String pname = o.asString("name");
|
||||
String pcanonical = o.asString("canonical");
|
||||
String description = o.asString("description");
|
||||
Instant d = o.has("date") ? o.asDate("date") : null;
|
||||
boolean ok = true;
|
||||
if (ok && !Utilities.noString(name)) {
|
||||
ok = (pname != null && pname.contains(name)) || (description != null && description.contains(name)) || (id != null && id.contains(name));
|
||||
@ -227,15 +224,15 @@ public class PackageClient {
|
||||
|
||||
if (ok) {
|
||||
// if we can find something...
|
||||
for (JsonObject e : JsonUtilities.objects(o, "editions")) {
|
||||
if (fhirVersion == null || fhirVersion.equals(JsonUtilities.str(e, "fhir-version"))) {
|
||||
String v = JsonUtilities.str(e, "ig-version");
|
||||
for (JsonObject e : o.getJsonObjects("editions")) {
|
||||
if (fhirVersion == null || fhirVersion.equals(e.asString("fhir-version"))) {
|
||||
String v = e.asString("ig-version");
|
||||
if (version == null || VersionUtilities.isThisOrLater(version, v)) {
|
||||
version = v;
|
||||
fVersion = e.getAsJsonArray("fhir-version").get(0).getAsString();
|
||||
url = JsonUtilities.str(e, "url");
|
||||
fVersion = e.getJsonArray("fhir-version").get(0).asString();
|
||||
url = e.asString("url");
|
||||
|
||||
String npmPackage = JsonUtilities.str(e, "package");
|
||||
String npmPackage = e.asString("package");
|
||||
if (npmPackage != null && id == null) {
|
||||
id = npmPackage.substring(0, npmPackage.indexOf("#"));
|
||||
}
|
||||
@ -248,8 +245,8 @@ public class PackageClient {
|
||||
|
||||
public List<PackageInfo> listFromRegistry(String name, String canonical, String fhirVersion) throws IOException {
|
||||
List<PackageInfo> result = new ArrayList<>();
|
||||
JsonObject packages = JsonTrackingParser.fetchJson("https://raw.githubusercontent.com/FHIR/ig-registry/master/fhir-ig-list.json?nocache=" + System.currentTimeMillis());
|
||||
for (JsonObject o : JsonUtilities.objects(packages, "guides")) {
|
||||
JsonObject packages = JsonParser.parseObjectFromUrl("https://raw.githubusercontent.com/FHIR/ig-registry/master/fhir-ig-list.json?nocache=" + System.currentTimeMillis());
|
||||
for (JsonObject o : packages.getJsonObjects("guides")) {
|
||||
if (o.has("canonical")) {
|
||||
final PackageInfo packageInfo = getPackageInfoFromJSON(o, name, canonical, fhirVersion);
|
||||
if (packageInfo.getVersion() != null) {
|
||||
@ -265,9 +262,8 @@ public class PackageClient {
|
||||
params.append("dependency="+id.replace("#", "|"));
|
||||
try {
|
||||
JsonArray json = fetchJsonArray(Utilities.pathURL(address, "catalog?")+params.toString());
|
||||
for (JsonElement e : json) {
|
||||
JsonObject obj = (JsonObject) e;
|
||||
list.add(JsonUtilities.str(obj, "Name", "name"));
|
||||
for (JsonObject obj : json.asJsonObjects()) {
|
||||
list.add(obj.asString("Name", "name"));
|
||||
}
|
||||
} catch (IOException e1) {
|
||||
}
|
||||
|
@ -39,14 +39,9 @@ import java.util.List;
|
||||
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
public class PackageGenerator {
|
||||
|
||||
@ -94,11 +89,10 @@ public class PackageGenerator {
|
||||
object = new JsonObject();
|
||||
}
|
||||
|
||||
public PackageGenerator(OutputStream stream, InputStream template) throws JsonSyntaxException, IOException {
|
||||
public PackageGenerator(OutputStream stream, InputStream template) throws IOException {
|
||||
super();
|
||||
this.stream = stream;
|
||||
JsonParser parser = new com.google.gson.JsonParser();
|
||||
object = parser.parse(TextFile.streamToString(template)).getAsJsonObject();
|
||||
object = JsonParser.parseObject(TextFile.streamToString(template));
|
||||
|
||||
}
|
||||
|
||||
@ -107,8 +101,7 @@ public class PackageGenerator {
|
||||
}
|
||||
|
||||
public void commit() throws IOException {
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
String json = gson.toJson(object);
|
||||
String json = JsonParser.compose(object, true);
|
||||
OutputStreamWriter sw = new OutputStreamWriter(stream, "UTF-8");
|
||||
sw.write('\ufeff'); // Unicode BOM, translates to UTF-8 with the configured outputstreamwriter
|
||||
sw.write(json);
|
||||
@ -118,17 +111,17 @@ public class PackageGenerator {
|
||||
|
||||
public PackageGenerator name(String value) {
|
||||
// NOTE: I removed a prefix of "@fhir/" here. What was this for? -JA
|
||||
object.addProperty("name", value);
|
||||
object.add("name", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator version(String value) {
|
||||
object.addProperty("version", value);
|
||||
object.add("version", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator toolsVersion(int value) {
|
||||
object.addProperty("tools-version", value);
|
||||
object.add("tools-version", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -142,44 +135,44 @@ public class PackageGenerator {
|
||||
}
|
||||
|
||||
public PackageGenerator description(String value) {
|
||||
object.addProperty("description", value);
|
||||
object.add("description", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator license(String value) {
|
||||
object.addProperty("license", value);
|
||||
object.add("license", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator homepage(String value) {
|
||||
object.addProperty("homepage", value);
|
||||
object.add("homepage", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator bugs(String value) {
|
||||
object.addProperty("bugs", value);
|
||||
object.add("bugs", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator author(String name, String email, String url) {
|
||||
JsonObject person = new JsonObject();
|
||||
person.addProperty("name", name);
|
||||
person.add("name", name);
|
||||
if (!Utilities.noString(email))
|
||||
person.addProperty("email", email);
|
||||
person.add("email", email);
|
||||
if (!Utilities.noString(url))
|
||||
person.addProperty("url", url);
|
||||
person.add("url", url);
|
||||
object.add("author", person);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator contributor(String name, String email, String url) {
|
||||
JsonObject person = new JsonObject();
|
||||
person.addProperty("name", name);
|
||||
person.add("name", name);
|
||||
if (!Utilities.noString(email))
|
||||
person.addProperty("email", email);
|
||||
person.add("email", email);
|
||||
if (!Utilities.noString(url))
|
||||
person.addProperty("url", url);
|
||||
JsonArray c = object.getAsJsonArray("contributors");
|
||||
person.add("url", url);
|
||||
JsonArray c = object.getJsonArray("contributors");
|
||||
if (c == null) {
|
||||
c = new JsonArray();
|
||||
object.add("contributors", c);
|
||||
@ -189,27 +182,23 @@ public class PackageGenerator {
|
||||
}
|
||||
|
||||
public PackageGenerator dependency(String name, String version) {
|
||||
JsonObject dep = object.getAsJsonObject("dependencies");
|
||||
JsonObject dep = object.getJsonObject("dependencies");
|
||||
if (dep == null) {
|
||||
dep = new JsonObject();
|
||||
object.add("dependencies", dep);
|
||||
}
|
||||
dep.addProperty(name, version);
|
||||
dep.add(name, version);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator file(String name) {
|
||||
JsonArray files = object.getAsJsonArray("files");
|
||||
if (files == null) {
|
||||
files = new JsonArray();
|
||||
object.add("files", files);
|
||||
}
|
||||
files.add(new JsonPrimitive(name));
|
||||
JsonArray files = object.forceArray("files");
|
||||
files.add(name);
|
||||
return this;
|
||||
}
|
||||
|
||||
public PackageGenerator kind(PackageType kind) {
|
||||
object.addProperty("type", kind.getCode());
|
||||
object.add("type", kind.getCode());
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,11 @@ import java.util.Map;
|
||||
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* intenral use only - set the file name to edit in main(), and fill out the edit routine
|
||||
@ -74,14 +75,14 @@ public class PackageHacker {
|
||||
}
|
||||
|
||||
private String nice(JsonObject json) {
|
||||
return new GsonBuilder().setPrettyPrinting().create().toJson(json);
|
||||
return JsonParser.compose(json, true);
|
||||
}
|
||||
|
||||
private void change(JsonObject npm) throws FileNotFoundException, IOException {
|
||||
// fixVersions(npm);
|
||||
// npm.remove("notForPublication");
|
||||
npm.remove("url");
|
||||
npm.addProperty("url", "https://hl7chile.cl/fhir/ig/CoreCL/1.7.0");
|
||||
npm.add("url", "https://hl7chile.cl/fhir/ig/CoreCL/1.7.0");
|
||||
// npm.remove("name");
|
||||
// npm.addProperty("name", "hl7.fhir.uv.smart-app-launch");
|
||||
// npm.remove("canonical");
|
||||
@ -128,7 +129,7 @@ public class PackageHacker {
|
||||
|
||||
private void setProperty(JsonObject npm, String name, String value) {
|
||||
npm.remove("homepage");
|
||||
npm.addProperty("homepage", "http://hl7.org/fhir");
|
||||
npm.add("homepage", "http://hl7.org/fhir");
|
||||
}
|
||||
|
||||
private void fixNames(Map<String, byte[]> content) {
|
||||
|
@ -9,10 +9,9 @@ import java.util.Set;
|
||||
|
||||
import org.hl7.fhir.utilities.TextFile;
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class PackageScanner {
|
||||
|
||||
@ -63,7 +62,7 @@ public class PackageScanner {
|
||||
} catch (Exception e) {
|
||||
fv = "--";
|
||||
}
|
||||
output.add(pck.name()+"\t"+pck.version()+"\t"+pck.canonical()+"\t"+fv+'\t'+pck.fhirVersionList()+'\t'+JsonUtilities.str(json, "kind")+'\t'+JsonUtilities.str(json, "type")+'\t'+JsonTrackingParser.writeDense(json)); } catch (Exception e) {
|
||||
output.add(pck.name()+"\t"+pck.version()+"\t"+pck.canonical()+"\t"+fv+'\t'+pck.fhirVersionList()+'\t'+json.asString("kind")+'\t'+json.asString("type")+'\t'+JsonParser.compose(json)); } catch (Exception e) {
|
||||
System.out.println("Error acessing "+pi.getId()+"#"+piv.getVersion()+": "+e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
package org.hl7.fhir.utilities.npm;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class ResourceRenamer {
|
||||
|
||||
@ -24,13 +24,13 @@ public class ResourceRenamer {
|
||||
}
|
||||
|
||||
private void unbundle(File f) throws IOException {
|
||||
JsonObject j = JsonTrackingParser.parseJson(f);
|
||||
for (JsonObject e : JsonUtilities.objects(j, "entry")) {
|
||||
JsonObject r = e.getAsJsonObject("resource");
|
||||
String rt = r.get("resourceType").getAsString();
|
||||
String id = r.get("id").getAsString();
|
||||
JsonObject j = JsonParser.parseObject(f);
|
||||
for (JsonObject e : j.getJsonObjects("entry")) {
|
||||
JsonObject r = e.getJsonObject("resource");
|
||||
String rt = r.asString("resourceType");
|
||||
String id = r.asString("id");
|
||||
String nn = Utilities.path(Utilities.getDirectoryForFile(f.getAbsolutePath()), rt+"-"+id+".json");
|
||||
JsonTrackingParser.write(r, new File(nn), true);
|
||||
JsonParser.compose(r, new FileOutputStream(nn), true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -39,9 +39,9 @@ public class ResourceRenamer {
|
||||
for (File f : dir.listFiles()) {
|
||||
if (f.getName().endsWith(".json")) {
|
||||
try {
|
||||
JsonObject j = JsonTrackingParser.parseJson(f);
|
||||
String rt = j.get("resourceType").getAsString();
|
||||
String id = j.get("id").getAsString();
|
||||
JsonObject j = JsonParser.parseObject(f);
|
||||
String rt = j.asString("resourceType");
|
||||
String id = j.asString("id");
|
||||
String nn = Utilities.path(Utilities.getDirectoryForFile(f.getAbsolutePath()), rt+"-"+id+".json");
|
||||
File nf = new File(nn);
|
||||
if (!nn.equals(f.getAbsolutePath())) {
|
||||
|
@ -47,7 +47,7 @@ Extension_EXT_URL_Absolute = Extension.url must be an absolute URL
|
||||
Extension_EXT_Unknown = Unknown extension {0}
|
||||
Extension_EXT_Unknown_NotHere = The extension {0} is unknown, and not allowed here
|
||||
Extension_EXT_Url_NotFound = Extension.url is required
|
||||
Extension_EXT_Version_Internal = Extension url ''{0}'' evaluation state illegal
|
||||
Extension_EXT_Version_Internal = Extension url ''{0}'' evaluation state invalid
|
||||
Extension_EXT_Version_Invalid = Extension url ''{0}'' is not valid (invalid Version ''{1}'')
|
||||
Extension_EXT_Version_InvalidId = Extension url ''{0}'' is not valid (invalid Element id ''{1}'')
|
||||
Extension_EXT_Version_NoChange = Extension url ''{0}'' is not valid (Element id ''{1}'' is valid, but cannot be used in a cross-version paradigm because there has been no changes across the relevant versions)
|
||||
@ -184,11 +184,11 @@ Terminology_TX_System_ValueSet2 = The Coding references a value set, not a code
|
||||
Terminology_TX_ValueSet_NotFound = ValueSet {0} not found by validator
|
||||
Terminology_TX_ValueSet_NotFound_CS = Found a reference to a CodeSystem ({0}) where a ValueSet belongs
|
||||
Type_Specific_Checks_DT_Base64_Valid = The value ''{0}'' is not a valid Base64 value
|
||||
Type_Specific_Checks_DT_Boolean_Value = boolean values must be ''true'' or ''false''
|
||||
Type_Specific_Checks_DT_Boolean_Value = Boolean values must be ''true'' or ''false''
|
||||
Type_Specific_Checks_DT_Code_WS = The code ''{0}'' is not valid (whitespace rules)
|
||||
Type_Specific_Checks_DT_DateTime_Reasonable = The value ''{0}'' is outside the range of reasonable years - check for data entry error
|
||||
Type_Specific_Checks_DT_DateTime_Regex = The instant ''{0}'' is not valid (by regex)
|
||||
Type_Specific_Checks_DT_DateTime_TZ = if a date has a time, it must have a timezone
|
||||
Type_Specific_Checks_DT_DateTime_TZ = If a date has a time, it must have a timezone
|
||||
Type_Specific_Checks_DT_DateTime_Valid = Not a valid date/time ({0})
|
||||
Type_Specific_Checks_DT_Date_Valid = Not a valid date ({0})
|
||||
Type_Specific_Checks_DT_Decimal_Range = The value ''{0}'' is outside the range of commonly/reasonably supported decimals
|
||||
@ -207,7 +207,7 @@ Type_Specific_Checks_DT_Integer_Valid = The value ''{0}'' is not a valid integer
|
||||
Type_Specific_Checks_DT_OID_Start = OIDs must start with urn:oid:
|
||||
Type_Specific_Checks_DT_OID_Valid = OIDs must be valid ({0})
|
||||
Type_Specific_Checks_DT_Primitive_Length = value is longer than permitted maximum length of {0}
|
||||
Type_Specific_Checks_DT_Primitive_NotEmpty = @value cannot be empty
|
||||
Type_Specific_Checks_DT_Primitive_NotEmpty = value cannot be empty
|
||||
Type_Specific_Checks_DT_Primitive_Regex = Element value ''{0}'' does not meet regex ''{1}''
|
||||
Type_Specific_Checks_DT_Primitive_ValueExt = Primitive types must have a value or must have child extensions
|
||||
Type_Specific_Checks_DT_Primitive_WS = Primitive types should not only be whitespace
|
||||
@ -238,21 +238,21 @@ Validation_VAL_Profile_MultipleMatches_other = Found multiple matching profiles
|
||||
Validation_VAL_Profile_NoDefinition = No definition found for resource type ''{0}''
|
||||
Validation_VAL_Profile_NoMatch = Unable to find a match for the specified profile among choices: {0}
|
||||
Validation_VAL_Profile_NoSnapshot = StructureDefinition {0} has no snapshot - validation is against the snapshot, so it must be provided
|
||||
Validation_VAL_Profile_NoType = The type of element {0} is not known, which is illegal. Valid types at this point are {1}
|
||||
Validation_VAL_Profile_NoType = The type of element {0} is not known, which is invalid. Valid types at this point are {1}
|
||||
Validation_VAL_Profile_NotAllowed = This element is not allowed by the profile {0}
|
||||
Validation_VAL_Profile_NotSlice = This element does not match any known slice {0} and slicing is CLOSED: {1}
|
||||
Validation_VAL_Profile_OutOfOrder = As specified by profile {0}, Element ''{1}'' is out of order (found after {2})
|
||||
Validation_VAL_Profile_SliceOrder = As specified by profile {0}, Element ''{1}'' is out of order in ordered slice
|
||||
Validation_VAL_Profile_Unknown = Profile reference ''{0}'' has not been checked because it is unknown
|
||||
Validation_VAL_Profile_Unknown = Profile reference ''{0}'' has not been checked because it is unknown
|
||||
VALIDATION_VAL_PROFILE_UNKNOWN_NOT_POLICY = Profile reference ''{0}'' has not been checked because it is unknown, and the validator is set to not fetch unknown profiles
|
||||
VALIDATION_VAL_PROFILE_UNKNOWN_ERROR = Profile reference ''{0}'' has not been checked because it is unknown, and fetching it resulted in the error {1}
|
||||
VALIDATION_VAL_PROFILE_UNKNOWN_ERROR_NETWORK = Profile reference ''{0}'' has not been checked because it is unknown, and the host {1} cannot be found
|
||||
Validation_VAL_Unknown_Profile = Unknown profile {0}
|
||||
VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED = Profile {1} identifies {2} as a dependency (using the extension http://hl7.org/fhir/StructureDefinition/structuredefinition-dependencies), but this profile could not be found
|
||||
XHTML_XHTML_Attribute_Illegal = Illegal attribute name in the XHTML (''{0}'' on ''{1}'')
|
||||
XHTML_XHTML_Element_Illegal = Illegal element name in the XHTML (''{0}'')
|
||||
XHTML_XHTML_Entity_Illegal = Illegal entity in the XHTML (''{0}'')
|
||||
XHTML_XHTML_Image_Reference_Illegal = Illegal Image Reference in the XHTML (''{0}'')
|
||||
XHTML_XHTML_Attribute_Illegal = Invalid attribute name in the XHTML (''{0}'' on ''{1}'')
|
||||
XHTML_XHTML_Element_Illegal = Invalid element name in the XHTML (''{0}'')
|
||||
XHTML_XHTML_Entity_Illegal = Invalid entity in the XHTML (''{0}'')
|
||||
XHTML_XHTML_Image_Reference_Illegal = Invalid Image Reference in the XHTML (''{0}'')
|
||||
XHTML_XHTML_NS_InValid = Wrong namespace on the XHTML (''{0}'', should be ''{1}'')
|
||||
XHTML_XHTML_Name_Invalid = Wrong name on the XHTML (''{0}'') - must start with div
|
||||
_DT_Fixed_Wrong = Value is ''{0}'' but must be ''{1}''
|
||||
@ -307,8 +307,8 @@ Not_done_yet_ValidatorHostServicesresolveFunction_ = Not done yet (ValidatorHost
|
||||
Unable_to_find_base_definition_for_logical_model__from_ = Unable to find base definition for logical model: {0} from {1}
|
||||
Same_id_on_multiple_elements__in_ = Same id ''{0}'' on multiple elements {1}/{2} in {3}
|
||||
No_path_on_element_Definition__in_ = No path on element Definition {0} in {1}
|
||||
needs_a_snapshot = needs a snapshot
|
||||
not_the_right_kind_of_structure_to_generate_schematrons_for = not the right kind of structure to generate schematrons for
|
||||
needs_a_snapshot = Needs a snapshot
|
||||
not_the_right_kind_of_structure_to_generate_schematrons_for = Not the right kind of structure to generate schematrons for
|
||||
Not_handled_yet_sortElements_ = Not handled yet (sortElements: {0}:{1})
|
||||
Unable_to_resolve_profile__in_element_ = Unable to resolve profile {0} in element {1}
|
||||
Cant_have_children_on_an_element_with_a_polymorphic_type__you_must_slice_and_constrain_the_types_first_sortElements_ = Can''t have children on an element with a polymorphic type - you must slice and constrain the types first (sortElements: {0}:{1})
|
||||
@ -318,18 +318,18 @@ Internal_recursion_detection_find_loop_path_recursion____check_paths_are_valid_f
|
||||
Internal_error___type_not_known_ = Internal error - type not known {0}
|
||||
Unable_to_find_element_ = Unable to find element {0}
|
||||
Error_generating_table_for_profile__ = Error generating table for profile {0}: {1}
|
||||
StructureDefinition__at__illegal_constrained_type__from__in_ = StructureDefinition {0} at {1}: illegal constrained type {2} from {3} in {4}
|
||||
StructureDefinition__at__illegal_constrained_type__from__in_ = StructureDefinition {0} at {1}: invalid constrained type {2} from {3} in {4}
|
||||
Error_at__The_target_profile__is_not__valid_constraint_on_the_base_ = Error at {0}#{1}: The target profile {2} is not a valid constraint on the base ({3})
|
||||
Error_in_profile__at__Base_isSummary___derived_isSummary__ = Error in profile {0} at {1}: Base isSummary = {2}, derived isSummary = {3}
|
||||
StructureDefinition__at__illegal_attempt_to_change_a_binding_from__to_ = StructureDefinition {0} at {1}: illegal attempt to change a binding from {2} to {3}
|
||||
Unexpected_condition_in_differential_typeslicetypelistsize__1_at_ = Unexpected condition in differential: type-slice.type-list.size() != 1 at {0}/{1}
|
||||
Unexpected_condition_in_differential_typeslicetypelistsize__10_and_implicit_slice_name_does_not_contain_a_valid_type__at_ = Unexpected condition in differential: type-slice.type-list.size() == 10 and implicit slice name does not contain a valid type (''{0}''?) at {1}/{2}
|
||||
StructureDefinition__at__illegal_attempt_to_change_a_binding_from__to_ = StructureDefinition {0} at {1}: invalid attempt to change a binding from {2} to {3}
|
||||
Unexpected_condition_in_differential_typeslicetypelistsize__1_at_ = Unexpected condition in differential: invalid type at {0}/{1}
|
||||
Unexpected_condition_in_differential_typeslicetypelistsize__10_and_implicit_slice_name_does_not_contain_a_valid_type__at_ = Unexpected condition in differential: implicit slice name does not contain a valid type (''{0}''?) at {1}/{2}
|
||||
Attempt_to_use_a_snapshot_on_profile__as__before_it_is_generated = Attempt to use a snapshot on profile ''{0}'' as {1} before it is generated
|
||||
null_min = null min
|
||||
null_min = Null min
|
||||
_has_children__for_type__in_profile__but_cant_find_type = {0} has children ({1}) for type {2} in profile {3}, but can''t find type
|
||||
_has_children__and_multiple_types__in_profile_ = {0} has children ({1}) and multiple types ({2}) in profile {3}
|
||||
Adding_wrong_path = Adding wrong path
|
||||
Named_items_are_out_of_order_in_the_slice=Named items are out of order in the slice
|
||||
Named_items_are_out_of_order_in_the_slice = Named items are out of order in the slice
|
||||
The_base_snapshot_marks_a_slicing_as_closed_but_the_differential_tries_to_extend_it_in__at__ = The base snapshot marks a slicing as closed, but the differential tries to extend it in {0} at {1} ({2})
|
||||
Not_done_yet = Not done yet
|
||||
Unknown_type__at_ = Unknown type {0} at {1}
|
||||
@ -337,7 +337,7 @@ Differential_walks_into____but_the_base_does_not_and_there_is_not_a_single_fixed
|
||||
Slicing_rules_on_differential__do_not_match_those_on_base___rule___ = Slicing rules on differential ({0}) do not match those on base ({1}) - rule @ {2} ({3})
|
||||
Slicing_rules_on_differential__do_not_match_those_on_base___disciminator___ = Slicing rules on differential ({0}) do not match those on base ({1}) - disciminator @ {2} ({3})
|
||||
Slicing_rules_on_differential__do_not_match_those_on_base___order___ = Slicing rules on differential ({0}) do not match those on base ({1}) - order @ {2} ({3})
|
||||
not_done_yet__slicing__types__ = not done yet - slicing / types @ {0}
|
||||
not_done_yet__slicing__types__ = Not done yet - slicing / types @ {0}
|
||||
Invalid_slicing__there_is_more_than_one_type_slice_at__but_one_of_them__has_min__1_so_the_other_slices_cannot_exist=Invalid slicing: there is more than one type slice at {0}, but one of them ({1}) has min = 1, so the other slices cannot exist
|
||||
Did_not_find_type_root_ = Did not find type root: {0}
|
||||
Error_at_path__Slice_for_type__has_wrong_type_ = Error at path {0}: Slice for type ''{1}'' has wrong type ''{2}''
|
||||
@ -349,7 +349,6 @@ Error_at_path__in__Type_slicing_with_slicingdiscriminatorcount__1 = Error at pat
|
||||
Error_at_path__in__Type_slicing_with_slicingordered__true = Error at path {0} in {1}: Type slicing with slicing.ordered = true
|
||||
Adding_wrong_path_in_profile___vs_ = Adding wrong path in profile {0}: {1} vs {2}
|
||||
_has_no_children__and_no_types_in_profile_ = {0} has no children ({1}) and no types in profile {2}
|
||||
not_done_yet = not done yet
|
||||
Did_not_find_single_slice_ = Did not find single slice: {0}
|
||||
Differential_does_not_have_a_slice__b_of_____in_profile_ = Differential in profile {5} does not have a slice at {6} (on {0}, position {1} of {2} / {3} / {4})
|
||||
Attempt_to_a_slice_an_element_that_does_not_repeat__from__in_ = Attempt to a slice an element that does not repeat: {0}/{1} from {2} in {3}, at element {4} (slice = {5})
|
||||
@ -357,33 +356,33 @@ Unable_to_resolve_reference_to_ = Unable to resolve reference to {0}
|
||||
Unable_to_find_element__in_ = Unable to find element {0} in {1}
|
||||
Unable_to_find_base__for_ = Unable to find base {0} for {1}
|
||||
Adding_wrong_path__outcomegetPath___resultPathBase__ = Adding wrong path - outcome.getPath() = {0}, resultPathBase = {1}
|
||||
Illegal_path__in_differential_in__illegal_characters_ = Illegal path ''{0}'' in differential in {1}: illegal characters []
|
||||
Illegal_path__in_differential_in__illegal_character_ = Illegal path ''{0}'' in differential in {1}: illegal character ''{2}''
|
||||
Illegal_path__in_differential_in__no_unicode_whitespace = Illegal path ''{0}'' in differential in {1}: no unicode whitespace
|
||||
Illegal_path__in_differential_in__name_portion_exceeds_64_chars_in_length = Illegal path ''{0}'' in differential in {1}: name portion exceeds 64 chars in length
|
||||
Illegal_path__in_differential_in__name_portion_mising_ = Illegal path ''{0}'' in differential in {1}: name portion missing (''..'')
|
||||
Illegal_path__in_differential_in__must_start_with_ = Illegal path ''{0}'' in differential in {1}: must start with {2}.{3}
|
||||
Illegal_path__in_differential_in__illegal_characters_ = Invalid path ''{0}'' in differential in {1}: invalid characters []
|
||||
Illegal_path__in_differential_in__illegal_character_ = Invalid path ''{0}'' in differential in {1}: invalid character ''{2}''
|
||||
Illegal_path__in_differential_in__no_unicode_whitespace = Invalid path ''{0}'' in differential in {1}: no unicode whitespace
|
||||
Illegal_path__in_differential_in__name_portion_exceeds_64_chars_in_length = Invalid path ''{0}'' in differential in {1}: name portion exceeds 64 chars in length
|
||||
Illegal_path__in_differential_in__name_portion_mising_ = Invalid path ''{0}'' in differential in {1}: name portion missing (''..'')
|
||||
Illegal_path__in_differential_in__must_start_with_ = Invalid path ''{0}'' in differential in {1}: must start with {2}.{3}
|
||||
No_path_value_on_element_in_differential_in_ = No path value on element in differential in {0}
|
||||
No_path_on_element_in_differential_in_ = No path on element in differential in {0}
|
||||
Unxpected_internal_condition__no_source_on_diff_element = Unexpected internal condition - no source on diff element
|
||||
type_on_first_snapshot_element_for__in__from_ = type on first snapshot element for {0} in {1} from {2}
|
||||
type_on_first_differential_element = type on first differential element!
|
||||
type_on_first_snapshot_element_for__in__from_ = Type on first snapshot element for {0} in {1} from {2}
|
||||
type_on_first_differential_element = Type on first differential element!
|
||||
Circular_snapshot_references_detected_cannot_generate_snapshot_stack__ = Circular snapshot references detected; cannot generate snapshot (stack = {0})
|
||||
Base__Derived_profiles_have_different_types____vs___ = Base & Derived profiles have different types ({0} = {1} vs {2} = {3})
|
||||
Derived_profile__has_no_derivation_value_and_so_cant_be_processed = Derived profile {0} has no derivation value and so can''t be processed
|
||||
Derived_profile__has_no_type = Derived profile {0} has no type
|
||||
Base_profile__has_no_type = Base profile {0} has no type
|
||||
no_derived_structure_provided = no derived structure provided
|
||||
no_base_profile_provided = no base profile provided
|
||||
element_id__null__on_ = element id = null: {0} on {1}
|
||||
element__null_ = element = null: {0}
|
||||
no_derived_structure_provided = No derived structure provided
|
||||
no_base_profile_provided = No base profile provided
|
||||
element_id__null__on_ = Element id = null: {0} on {1}
|
||||
element__null_ = Element = null: {0}
|
||||
getSliceList_should_only_be_called_when_the_element_has_slicing = getSliceList should only be called when the element has slicing
|
||||
Unable_to_resolve_name_reference__at_path_ = Unable to resolve name reference {0} at path {1}
|
||||
Details_for__matching_against_Profile_ = Details for {0} matching against profile {1}
|
||||
Does_not_match_slice_ = Does not match slice ''{0}'' (discriminator: {1})
|
||||
Profile__does_not_match_for__because_of_the_following_profile_issues__ = Profile {0} does not match for {1} because of the following profile issues: {2}
|
||||
This_element_does_not_match_any_known_slice_ = This element does not match any known slice {0}
|
||||
defined_in_the_profile = defined in the profile
|
||||
defined_in_the_profile = Defined in the profile
|
||||
This_does_not_appear_to_be_a_FHIR_resource_unknown_name_ = This does not appear to be a FHIR resource (unknown name ''{0}'')
|
||||
This_cannot_be_parsed_as_a_FHIR_object_no_name = This cannot be parsed as a FHIR object (no name)
|
||||
This_does_not_appear_to_be_a_FHIR_resource_unknown_namespacename_ = This does not appear to be a FHIR resource (unknown namespace/name ''{0}::{1}'')
|
||||
@ -426,16 +425,16 @@ Contained_resource_does_not_appear_to_be_a_FHIR_resource_unknown_name_ = Contain
|
||||
Unknown_Date_format_ = Unknown Date format ''{0}''
|
||||
Unknown_Data_format_ = Unknown Data format ''{0}''
|
||||
No_type_found_on_ = No type found on ''{0}''
|
||||
error_writing_number__to_JSON = error writing number ''{0}'' to JSON
|
||||
error_writing_number__to_JSON = Error writing number ''{0}'' to JSON
|
||||
Unable_to_process_request_for_resource_for___ = Unable to process request for resource for {0} / {1}
|
||||
Resource_type_mismatch_for___ = Resource type mismatch for {0} / {1}
|
||||
not_done_yet_cant_fetch_ = not done yet: can''t fetch {0}
|
||||
not_done_yet_cant_fetch_ = Not done yet: can''t fetch {0}
|
||||
Attempt_to_use_Terminology_server_when_no_Terminology_server_is_available = Attempt to use Terminology server when no Terminology server is available
|
||||
No_ExpansionProfile_provided = No ExpansionProfile provided
|
||||
Can_only_specify_profile_in_the_context = Can only specify profile in the context
|
||||
no_url_in_expand_value_set_2 = no url in expand value set 2
|
||||
no_url_in_expand_value_set = no url in expand value set
|
||||
no_value_set = value set has no url property
|
||||
no_url_in_expand_value_set_2 = No url in expand value set 2
|
||||
no_url_in_expand_value_set = No url in expand value set
|
||||
no_value_set = ValueSet has no url property
|
||||
No_Parameters_provided_to_expandVS = No Parameters provided to expandVS
|
||||
No_Expansion_Parameters_provided = No Expansion Parameters provided
|
||||
Unable_to_resolve_value_Set_ = Unable to resolve value Set {0}
|
||||
@ -474,7 +473,7 @@ Unable_to_resolve_system__no_value_set = Unable to resolve system - no value set
|
||||
This_base_property_must_be_an_Array_not_ = This base property must be an Array, not {0}
|
||||
This_property_must_be_an_Array_not_ = This property must be an Array, not {0}
|
||||
documentmsg = (document)
|
||||
xml_attr_value_invalid = The XML Attribute {0} has an illegal character
|
||||
xml_attr_value_invalid = The XML Attribute {0} has an invalid character
|
||||
xml_encoding_invalid = The XML encoding is invalid (must be UTF-8)
|
||||
xml_stated_encoding_invalid = The XML encoding stated in the header is invalid (must be ''UTF-8'' if stated)
|
||||
XHTML_URL_INVALID = The URL is not valid because ''({1})'': {0}
|
||||
@ -504,13 +503,13 @@ MEASURE_M_LIB_UNKNOWN = The Library {0} could not be resolved, so expression val
|
||||
TYPE_SPECIFIC_CHECKS_CANONICAL_ABSOLUTE = Canonical URLs must be absolute URLs if they are not fragment references ({0})
|
||||
TYPE_SPECIFIC_CHECKS_CANONICAL_CONTAINED = Canonical URLs in contained resources must be absolute URLs if present ({0})
|
||||
MEASURE_MR_SCORE_PROHIBITED_RT = No measureScore when the type of the report is ''data-collection''
|
||||
MEASURE_MR_SCORE_PROHIBITED_MS = No measureScore when the scoring of the mesage is ''cohort''
|
||||
MEASURE_MR_SCORE_PROHIBITED_MS = No measureScore when the scoring of the message is ''cohort''
|
||||
MEASURE_MR_SCORE_REQUIRED = A measureScore is required when the Measure.scoring={0}
|
||||
MEASURE_MR_M_SCORING_UNK = The scoring system in this measure is unknown, so the measureScore values cannot be checked
|
||||
MEASURE_MR_SCORE_UNIT_PROHIBITED = A measureScore for this Measure Scoring ({0}) should not have units
|
||||
MEASURE_MR_SCORE_VALUE_REQUIRED = A value is required when the Measure.scoring = {0}
|
||||
MEASURE_MR_SCORE_VALUE_INVALID_01 = The value is invalid - it must be between 0 and 1
|
||||
MEASURE_MR_SCORE_FIXED = This value is fixed by the Measure to ''{0]''
|
||||
MEASURE_MR_SCORE_FIXED = This value is fixed by the Measure to ''{0}''
|
||||
MEASURE_MR_SCORE_UNIT_REQUIRED = A unit should be present when the scoring type is {0}
|
||||
MEASURE_M_CRITERIA_UNKNOWN = The expression language {0} is not supported, so can''t be validated
|
||||
MEASURE_M_CQL_NOT_FOUND = None of the include CQL Libraries define a function {0}
|
||||
@ -539,7 +538,7 @@ TYPE_SPECIFIC_CHECKS_DT_BASE64_TOO_LONG = Base64 size is {0} bytes which exceeds
|
||||
TYPE_SPECIFIC_CHECKS_DT_DECIMAL_CHARS = Found {0} decimal places which exceeds the stated limit of {1} digits
|
||||
Validation_VAL_Profile_WrongType = Specified profile type was ''{0}'' in profile ''{2}'', but found type ''{1}''
|
||||
Validation_VAL_Profile_WrongType2 = Type mismatch processing profile {0} at path {1}: The element type is {4}, but the profile {3} is for a different type {2}
|
||||
VALIDATION_VAL_ILLEGAL_TYPE_CONSTRAINT = Illegal constraint in profile {0} at path {1} - cannot constrain to type {2} from base types {3}
|
||||
VALIDATION_VAL_ILLEGAL_TYPE_CONSTRAINT = Invalid constraint in profile {0} at path {1} - cannot constrain to type {2} from base types {3}
|
||||
EXTENSION_EXTP_CONTEXT_WRONG_XVER = The extension {0} from FHIR version {3} is not allowed to be used at this point (allowed = {1}; this element is [{2}; this is a warning since contexts may be renamed between FHIR versions)
|
||||
EXTENSION_EXTM_CONTEXT_WRONG_XVER = The modifier extension {0} from FHIR version {3} is not allowed to be used at this point (allowed = {1}; this element is [{2}; this is a warning since contexts may be renamed between FHIR versions)
|
||||
SECURITY_STRING_CONTENT_ERROR = The string value contains text that looks like embedded HTML tags, which are not allowed for security reasons in this context
|
||||
@ -584,7 +583,7 @@ FHIRPATH_LEFT_VALUE_WRONG_TYPE = Error evaluating FHIRPath expression: left oper
|
||||
FHIRPATH_RIGHT_VALUE_one =
|
||||
FHIRPATH_RIGHT_VALUE_other = Error evaluating FHIRPath expression: right operand to {1} can only have 1 value, but has {0} values
|
||||
FHIRPATH_RIGHT_VALUE_WRONG_TYPE = Error evaluating FHIRPath expression: right operand to {0} has the wrong type {1}
|
||||
FHIRPATH_OP_INCOMPATIBLE = Error evaluating FHIRPath expression {0}: left and right operand have incompatible or illegal types ({1}, {2})
|
||||
FHIRPATH_OP_INCOMPATIBLE = Error evaluating FHIRPath expression {0}: left and right operand have incompatible or invalid types ({1}, {2})
|
||||
FHIRPATH_HO_HOST_SERVICES = Internal Error evaluating FHIRPath expression: No host services are provided ({0})
|
||||
FHIRPATH_WRONG_PARAM_TYPE = Error evaluating FHIRPath expression: The parameter type {2} is not legal for {0} parameter {1}. expecting {3}
|
||||
FHIRPATH_ORDERED_ONLY = Error evaluating FHIRPath expression: The function {0} can only be used on ordered collections
|
||||
@ -599,21 +598,21 @@ FHIRPATH_CHECK_FAILED = Error evaluating FHIRPath expression: The check {0} fail
|
||||
FHIRPATH_NO_TYPE = Error evaluating FHIRPath expression: The type ''{0}'' is unknown or not supported at {1}
|
||||
FHIRPATH_DISCRIMINATOR_NAME_ALREADY_SLICED = Error in discriminator at {0}: found a sliced element while resolving the fixed value for one of the slices
|
||||
FHIRPATH_DISCRIMINATOR_THIS_CANNOT_FIND = Problem with use of resolve() - profile {0} on {1} could not be resolved
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_NO_TYPE = illegal use of resolve() in discriminator - no type on element {0}
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_NO_TYPE = Invalid use of resolve() in discriminator - no type on element {0}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_MULTIPLE_TYPES_one =
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_MULTIPLE_TYPES_other = Illegal use of resolve() in discriminator - {0} possible types on {1} (can only be one)
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_NOT_REFERENCE = illegal use of resolve() in discriminator - type on {0} is not Reference {1}
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_MULTIPLE_TYPES_other = Invalid use of resolve() in discriminator - {0} possible types on {1} (can only be one)
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_NOT_REFERENCE = Invalid use of resolve() in discriminator - type on {0} is not Reference {1}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_NO_TARGET_one =
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_NO_TARGET_other = illegal use of resolve() in discriminator - {0} possible target type profiles on {1} (can only be one)
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_NO_TARGET_other = Invalid use of resolve() in discriminator - {0} possible target type profiles on {1} (can only be one)
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_CANT_FIND = Problem with use of resolve() - profile {0} on {1} could not be resolved
|
||||
FHIRPATH_DISCRIMINATOR_TYPE_NONE = illegal use of ofType() in discriminator - no type on element {0}
|
||||
FHIRPATH_DISCRIMINATOR_TYPE_MULTIPLE = illegal use of ofType() in discriminator - Multiple possible types on {0}
|
||||
FHIRPATH_DISCRIMINATOR_NO_CODE = illegal use of ofType() in discriminator - Type has no code on {0}
|
||||
FHIRPATH_DISCRIMINATOR_BAD_NAME = illegal function name {0}() in discriminator
|
||||
FHIRPATH_DISCRIMINATOR_BAD_SYNTAX_GROUP = illegal expression syntax in discriminator (group ''{0}'')
|
||||
FHIRPATH_DISCRIMINATOR_BAD_SYNTAX_CONST = illegal expression syntax in discriminator (const)
|
||||
FHIRPATH_DISCRIMINATOR_TYPE_NONE = Invalid use of ofType() in discriminator - no type on element {0}
|
||||
FHIRPATH_DISCRIMINATOR_TYPE_MULTIPLE = Invalid use of ofType() in discriminator - Multiple possible types on {0}
|
||||
FHIRPATH_DISCRIMINATOR_NO_CODE = Invalid use of ofType() in discriminator - Type has no code on {0}
|
||||
FHIRPATH_DISCRIMINATOR_BAD_NAME = Invalid function name {0}() in discriminator
|
||||
FHIRPATH_DISCRIMINATOR_BAD_SYNTAX_GROUP = Invalid expression syntax in discriminator (group ''{0}'')
|
||||
FHIRPATH_DISCRIMINATOR_BAD_SYNTAX_CONST = Invalid expression syntax in discriminator (const)
|
||||
FHIRPATH_DISCRIMINATOR_CANT_FIND = Unable to resolve discriminator in definitions: {0} in profile {1} on element {2}, looking in profile {3}
|
||||
FHIRPATH_DISCRIMINATOR_CANT_FIND_EXTENSION = Unable to resolve discriminator {0} on {2} found in the definitions because the extension {1} wasn''t found in the profile {3}
|
||||
FHIRPATH_DISCRIMINATOR_NOTYPE = Error in discriminator at {0}: no children, no type
|
||||
@ -640,8 +639,8 @@ RENDER_BUNDLE_HEADER_ENTRY = Entry {0}
|
||||
RENDER_BUNDLE_HEADER_ENTRY_URL = Entry {0} - fullUrl = {1}
|
||||
RENDER_BUNDLE_RESOURCE = Resource {0}:
|
||||
RENDER_BUNDLE_SEARCH = Search:
|
||||
RENDER_BUNDLE_SEARCH_MODE = mode = {0}
|
||||
RENDER_BUNDLE_SEARCH_SCORE = score = {0}
|
||||
RENDER_BUNDLE_SEARCH_MODE = Mode = {0}
|
||||
RENDER_BUNDLE_SEARCH_SCORE = Score = {0}
|
||||
RENDER_BUNDLE_RESPONSE = Response:
|
||||
RENDER_BUNDLE_LOCATION = Location = {0}
|
||||
RENDER_BUNDLE_ETAG = ETag = {0}
|
||||
@ -661,7 +660,7 @@ RENDER_BUNDLE_HEADER_DOC_ENTRY_U = {0}. {1}
|
||||
RENDER_BUNDLE_HEADER_DOC_ENTRY_RD = {0}. {2}/{3}
|
||||
UNABLE_TO_CHECK_IF_THE_PROVIDED_CODES_ARE_IN_THE_VALUE_SET_ = Unable to determine whether the provided codes are in the value set {0} because the value set or a code system it depends on is not known to the validator
|
||||
TERMINOLOGY_TX_SYSTEM_WRONG_HTML = The code system reference {0} is wrong - the code system reference cannot be to an HTML page. This may be the correct reference: {1}
|
||||
TERMINOLOGY_TX_SYSTEM_WRONG_BUILD = The code system reference {0} is wrong - the code system reference cannot be a reference to build.fhir.org. This may be the correct reference: {1}
|
||||
TERMINOLOGY_TX_SYSTEM_WRONG_BUILD = The code system reference {0} is wrong - the code system reference cannot be a reference to build.fhir.org. This may be the correct reference: {1}
|
||||
FHIRPATH_BAD_DATE = Unable to parse Date {0}
|
||||
FHIRPATH_NUMERICAL_ONLY = Error evaluating FHIRPath expression: The function {0} can only be used on integer, decimal or Quantity but found {1}
|
||||
FHIRPATH_DECIMAL_ONLY = Error evaluating FHIRPath expression: The function {0} can only be used on a decimal but found {1}
|
||||
@ -671,7 +670,7 @@ FHIRPATH_FOCUS_one =
|
||||
FHIRPATH_FOCUS_other = Error evaluating FHIRPath expression: focus for {0} can only have one value, but has {0} values
|
||||
REFERENCE_REF_SUSPICIOUS = The syntax of the reference ''{0}'' looks incorrect, and it should be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_NO_ANNOTATIONS = UCUM Codes that contain human readable annotations like {0} can be misleading. Best Practice is not to use annotations in the UCUM code, and rather to make sure that Quantity.unit is correctly human readable
|
||||
XHTML_XHTML_ELEMENT_ILLEGAL_IN_PARA = Illegal element name inside in a paragraph in the XHTML (''{0}'')
|
||||
XHTML_XHTML_ELEMENT_ILLEGAL_IN_PARA = Invalid element name inside in a paragraph in the XHTML (''{0}'')
|
||||
UNSUPPORTED_IDENTIFIER_PATTERN_PROPERTY_NOT_SUPPORTED_FOR_DISCRIMINATOR_FOR_SLICE = Unsupported property {3} on type {2} for pattern for discriminator ({0}) for slice {1}
|
||||
UNSUPPORTED_IDENTIFIER_PATTERN_NO_PROPERTY_NOT_SUPPORTED_FOR_DISCRIMINATOR_FOR_SLICE = Unsupported: no properties with values found on type {2} for pattern for discriminator ({0}) for slice {1}
|
||||
SD_NESTED_MUST_SUPPORT_DIFF = The element {0} has types/profiles/targets that are marked as must support, but the element itself is not marked as must-support. The inner must-supports will be ignored unless the element inherits must-support = true
|
||||
@ -700,10 +699,10 @@ SD_ED_BIND_MULTIPLE_TYPES = The element {0} has a binding, and has multiple type
|
||||
DISCRIMINATOR_BAD_PATH = Error processing path expression for discriminator: {0} (src = ''{1}'')
|
||||
SLICING_CANNOT_BE_EVALUATED = Slicing cannot be evaluated: {0}
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_RESOLVE = Canonical URL ''{0}'' does not resolve
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_RESOLVE_NC = Canonical URL ''{0}'' exists, but can't be loaded, so it can't be checked for validity
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_RESOLVE_NC = Canonical URL ''{0}'' exists, but can''t be loaded, so it can''t be checked for validity
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_TYPE = Canonical URL ''{0}'' refers to a resource that has the wrong type. Found {1} expecting one of {2}
|
||||
CODESYSTEM_CS_NO_SUPPLEMENT = CodeSystem {0} is a supplement, so can't be used as a value in Coding.system
|
||||
CODESYSTEM_CS_SUPP_CANT_CHECK = CodeSystem {0} cannot be found, so can't check if concepts are valid
|
||||
CODESYSTEM_CS_NO_SUPPLEMENT = CodeSystem {0} is a supplement, so can''t be used as a value in Coding.system
|
||||
CODESYSTEM_CS_SUPP_CANT_CHECK = CodeSystem {0} cannot be found, so can''t check if concepts are valid
|
||||
CODESYSTEM_CS_SUPP_INVALID_CODE = The code ''{1}'' is not declared in the base CodeSystem {0} so is not valid in the supplement
|
||||
SD_VALUE_TYPE_IILEGAL = The element {0} has a {1} of type {2}, which is not in the list of allowed types ({3})
|
||||
SD_VALUE_TYPE_REPEAT_HINT = The repeating element has a {1}. The {1} will apply to all the repeats (this has not been clear to all users)
|
||||
@ -711,7 +710,7 @@ SD_VALUE_TYPE_REPEAT_WARNING_DOTNET = The repeating element has a {1} value for
|
||||
SD_NO_TYPES_OR_CONTENTREF = The element {0} has no assigned types, and no content reference
|
||||
CODESYSTEM_CS_UNK_EXPANSION = The code provided ({2}) is not in the value set {0}, and a code is required from this value set. The system {1} is unknown.
|
||||
BUNDLE_SEARCH_NOSELF = SearchSet Bundles should have a self link that specifies what the search was
|
||||
BUNDLE_SEARCH_SELF_NOT_UNDERSTOOD = No types could be determined from the search string, so the types can't be checked
|
||||
BUNDLE_SEARCH_SELF_NOT_UNDERSTOOD = No types could be determined from the search string, so the types can''t be checked
|
||||
BUNDLE_SEARCH_ENTRY_NO_RESOURCE = SearchSet Bundle Entries must have resources
|
||||
BUNDLE_SEARCH_ENTRY_TYPE_NOT_SURE = Unable to determine if this resource is a valid resource type for this search
|
||||
BUNDLE_SEARCH_ENTRY_NO_RESOURCE_ID = Search results must have ids
|
||||
@ -729,30 +728,30 @@ CODESYSTEM_CS_HL7_MISSING_ELEMENT_SHOULD = HL7 Defined CodeSystems SHOULD have a
|
||||
CODESYSTEM_CS_NONHL7_MISSING_ELEMENT = CodeSystems SHOULD have a stated value for the {0} element so that users know the status and meaning of the code system clearly
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL = CodeSystems SHOULD NOT have a stated value for the {0} element when they are a supplement
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL_WRONG = CodeSystem Supplements SHALL have a content value of 'supplement'
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL_MISSING = CodeSystem Supplements with a content value of 'supplement' SHALL have a supplements elemnet that specifies which code system is being supplemented
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL_MISSING = CodeSystem Supplements with a content value of 'supplement' SHALL have a supplements element that specifies which code system is being supplemented
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_NO_QTY = Found {0} of type {2} in the profile validating a Quantity (so it must be a Quantity)
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_SYSTEM_MISMATCH = The minValue in the profile has a system of {0} which is different to the system in the value {1} so the minimum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_CODE_MISMATCH = The minValue in the profile has a system code of {0} which is different to the system code in the value {1} so the minimum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_VALUE = The minValue in the profile doesn't have an actual value, so the minimum value can't be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_VALUE = The quantity doesn't have an actual value, so the minimum value can't be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_VALUE = The minValue in the profile doesn't have an actual value, so the minimum value can''t be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_VALUE = The quantity doesn't have an actual value, so the minimum value can''t be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_SYSTEM = The minValue in the profile has no system so the minimum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_SYSTEM = The value has no system so the minimum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_CODE = The minValue in the profile has no code so the minimum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_CODE = The value has no code so the minimum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_NO_UCUM_SVC = There is no UCUM service, and the UCUM codes aren't identical, so the minimum value can't be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_NO_UCUM_SVC = There is no UCUM service, and the UCUM codes aren't identical, so the minimum value can''t be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_CONVERT = Unable to convert value {0} from unit {1} to minValue unit {2} based on UCUM definitions; minimum value is not valid
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_WRONG = The value in the instance ({2}) is less than the specified minimum value ({3})
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_WRONG_UCUM = The value in the instance ({0} {1}) is less than the specified minValue ({2} {3}) after UCUM conversion
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_NO_QTY = Found {0} of type {2} in the profile validating a Quantity (so it must be a Quantity)
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_SYSTEM_MISMATCH = The maxValue in the profile has a system of {0} which is different to the system in the value {1} so the maximum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_CODE_MISMATCH = The maxValue in the profile has a system code of {0} which is different to the system code in the value {1} so the maximum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_VALUE = The maxValue in the profile doesn't have an actual value, so the maximum value can't be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_VALUE = The quantity doesn't have an actual value, so the maximum value can't be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_VALUE = The maxValue in the profile doesn't have an actual value, so the maximum value can''t be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_VALUE = The quantity doesn't have an actual value, so the maximum value can''t be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_SYSTEM = The maxValue in the profile has no system so the maximum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_SYSTEM = The value has no system so the maximum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_CODE = The maxValue in the profile has no code so the maximum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_CODE = The value has no code so the maximum value cannot be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_NO_UCUM_SVC = There is no UCUM service, and the UCUM codes aren't identical, so the maximum value can't be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_NO_UCUM_SVC = There is no UCUM service, and the UCUM codes aren't identical, so the maximum value can''t be checked
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_CONVERT = Unable to convert value {0} from unit {1} to maxValue unit {2} based on UCUM definitions; maximum value is not valid
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_WRONG = The value in the instance ({2}) is greater than the specified maximum value ({3})
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_WRONG_UCUM = The value in the instance ({0} {1}) is greater than the specified maxValue ({2} {3}) after UCUM conversion
|
||||
@ -779,7 +778,7 @@ MEASURE_SHAREABLE_EXTRA_MISSING = The ShareableMeasure profile recommends that t
|
||||
MEASURE_SHAREABLE_MISSING_HL7 = The ShareableMeasure profile says that the {0} element is mandatory, but it is not found. HL7 Published measures SHALL conform to the ShareableMeasure profile
|
||||
MEASURE_SHAREABLE_EXTRA_MISSING_HL7 = The ShareableMeasure profile recommends that the {0} element is populated, but it is not found. HL7 Published measures SHALL conform to the ShareableMeasure profile
|
||||
TYPE_SPECIFIC_CHECKS_DT_MARKDOWN_HTML = The markdown contains content that appears to be an embedded HTML tag starting at ''{0}''. This will (or SHOULD) be escaped by the presentation layer. The content should be checked to confirm that this is the desired behaviour
|
||||
TYPE_SPECIFIER_ILLEGAL_TYPE = The Type specifier {1} specified an illegal type {0}
|
||||
TYPE_SPECIFIER_ILLEGAL_TYPE = The Type specifier {1} specified an invalid type {0}
|
||||
TYPE_SPECIFIER_ABSTRACT_TYPE = The Type specifier {1} specified an abstract type {0}
|
||||
TYPE_SPECIFIER_NM_ILLEGAL_TYPE = No Type specifier matched, and the underlying type {0} is not valid
|
||||
TYPE_SPECIFIER_NM_ABSTRACT_TYPE = No Type specifier matched, and the underlying type {0} is not abstract
|
||||
|
800
org.hl7.fhir.utilities/src/main/resources/Messages_es.properties
Normal file
800
org.hl7.fhir.utilities/src/main/resources/Messages_es.properties
Normal file
@ -0,0 +1,800 @@
|
||||
#InstanceValidator
|
||||
Bad_file_path_error = \n********************\n* El nombre del fichero especificado, ''{0}'', no existe en el sistema de archivos local.\n* Por favor verifique que sea una ubicación válida.\n********************\n\n
|
||||
Bundle_BUNDLE_Entry_Canonical = La URL canónica ({0}) no puede coincidir con la fullUrl ({1}) salvo en el servidor canónico
|
||||
Bundle_BUNDLE_Entry_Document = El primer elemento de tipo entry en un documento debe ser un recurso Composition
|
||||
Bundle_BUNDLE_Entry_IdUrlMismatch = EL ID del Recurso no coincide con el ID en la fullUrl del elemento entry (''{0}'' vs ''{1}'')
|
||||
Bundle_BUNDLE_Entry_MismatchIdUrl = La URL canónica ({0}) no puede coincidir con el elemento fullUrl ({1}) a menos que el id del recurso ({2}) también coincida
|
||||
Bundle_BUNDLE_Entry_NoFirst = Los documentos o mensajes deben contener al menos un elemento entry
|
||||
Bundle_BUNDLE_Entry_NoFirstResource = No hay ningún recurso en el primer elemento entry
|
||||
Bundle_BUNDLE_Entry_NoFullUrl = El elemento entry del Bundle no tiene elemento fullUrl
|
||||
BUNDLE_BUNDLE_ENTRY_FULLURL_REQUIRED = Excepto para transacciones o lotes , cada elemento entry en un recurso Bundle debe tener un elemento fullUrl cuya identidad es la del recurso contenido en el elemento entry
|
||||
Bundle_BUNDLE_Entry_NoProfile_TYPE = No se ha encontrado el perfil para el recurso {0} de tipo ''{1}''
|
||||
Bundle_BUNDLE_Entry_NoProfile_EXPL = El perfil especificado {2} not ha sido encontrado para el recurso {0} de tipo ''{0}''
|
||||
Bundle_BUNDLE_Entry_NO_LOGICAL_EXPL = El modelo lógico especificado {1} no ha sido encontrado para el recurso ''Binary/{0}''
|
||||
Bundle_BUNDLE_Entry_NotFound = No se puede encontrar ''{0}'' en el recurso Bundle ({1})
|
||||
Bundle_BUNDLE_Entry_Orphan = La Entry {0} no es alcanzable desde la primera entry del Bundle
|
||||
BUNDLE_BUNDLE_ENTRY_REVERSE = La Entry {0} no es alcanzable atravesando hacia adelante desde la primera entry del Bundel, y no es un tipo de recurso que habitualmente se use de esta manera - verifique que no se haya perdido
|
||||
Bundle_BUNDLE_Entry_Type = El tipo ''{0}'' no es válido - no se permiten recursos aquí (permitido = {1})
|
||||
Bundle_BUNDLE_Entry_Type2 = El tipo ''{0}'' no es válido - debe ser {1} (permitido = {2})
|
||||
Bundle_BUNDLE_Entry_Type3_one = El tipo ''{1}'' no es válido - debe ser de tipo {2}
|
||||
Bundle_BUNDLE_Entry_Type3_other = El tipo ''{1}'' no es válido - debe ser uno de estos {0} tipos: {2}
|
||||
Bundle_BUNDLE_FullUrl_Missing = La referencia relativa aparece dentro de un Bundle cuya entry no tiene un elemento fullUrl
|
||||
Bundle_BUNDLE_FullUrl_NeedVersion = Las entradas que coinciden con el elemento fullURL {0} deben declarar los elementos meta/versionId porque son referencias a versión específica
|
||||
Bundle_BUNDLE_MultipleMatches = Hay multiples coincidencias en el Bundle para la referencia {0}
|
||||
Bundle_BUNDLE_Not_Local = La referencia de tipo URN no está contenida localmente dentro del Bundle {0}
|
||||
Bundle_MSG_Event_Count = Se esperaban {0} pero se encontraron {1} elementos event
|
||||
Bundle_Document_Date_Missing = Un documento debe tener un elemento date
|
||||
Bundle_Document_Date_Missing_html = El valor [(type = ''document'') implica (meta.lastUpdated.hasValue())]
|
||||
CapabalityStatement_CS_SP_WrongType = Discordancia de Tipos - El tipo del parametro de busqueda SearchParameter ''{0}'' es {1}, pero el tipo aquí es {2}
|
||||
CodeSystem_CS_VS_IncludeDetails = El CodeSystem {0} tiene un set de valores ''all system'' de {1}, pero el include tiene detalles adicionales
|
||||
CodeSystem_CS_VS_Invalid = El CodeSystem {0} tiene un set de valores ''all system'' de {1}, pero no tiene un solo include
|
||||
CODESYSTEM_CS_VS_EXP_MISMATCH = El CodeSystem {0} tiene un set de valores ''all system'' de {1}, pero es una expansión con la cantidad incorrecta de conceptos (encontrados {2}, esperados {3})
|
||||
CodeSystem_CS_VS_WrongSystem = El CodeSystem {0} tiene un set de valores ''all system'' de {1}, pero no tiene un system coincidente ({2})
|
||||
Extension_EXTP_Context_Wrong = La extensión {0} no está permitida en este punto (permitido = {1}; este elemento es {2})
|
||||
Extension_EXTM_Context_Wrong = El uso de la extensión modificante {0} no es permitido en este punto (permitido = {1}; este elemento es {2})
|
||||
Extension_EXT_Count_Mismatch = Discordancia en la cantidad de extensiones: se esperaban {0} pero se encontraron {1}
|
||||
Extension_EXT_Count_NotFound = Discordancia en la cantidad de extensiones: no se pudo encontrar la extensión: {0}
|
||||
Extension_EXT_Fixed_Banned = No se permiten extensiones, ya que el valor fijo especificado no contiene extensiones
|
||||
Extension_EXT_Modifier_MismatchN = Discordancia en la extension modificante: el elemento extension no esta etiquetado como modificante, pero la extension subyacente si
|
||||
Extension_EXT_Modifier_MismatchY = Discordancia en la extension modificante: el elemento extension está etiquetado como modificante, pero la extension subyacente no
|
||||
Extension_EXT_Modifier_N = La Extensión ''{0}'' no puede ser usada como extension (it''s a modifierExtension)
|
||||
Extension_EXT_Modifier_Y = The Extension ''{0}'' must not be used as a modifierExtension (it''s a regular extension)
|
||||
Extension_EXT_Simple_ABSENT = La definición para la Extensión ''{0}'' es para una extensión simple, asi que debe contener un valor
|
||||
Extension_EXT_Simple_WRONG = La definición para la Extensión ''{0}'' es para una extensión simple, asi que debe contener un valor, no otras extensiones
|
||||
Extension_EXT_SubExtension_Invalid = La url para la sub-extensión ''{0}'' no ha sido definida para la Extensión {1}
|
||||
Extension_EXT_Type = La definición para la Extensión ''{0}'' permite los tipos {1} pero se encontró {2}
|
||||
Extension_EXT_URL_Absolute = El elemento extension.url debe ser una URL absoluta
|
||||
Extension_EXT_Unknown = Extension desconocida {0}
|
||||
Extension_EXT_Unknown_NotHere = La extension {0} es desconocida y no está permitida aquí
|
||||
Extension_EXT_Url_NotFound = El elemento Extension.url es requerido
|
||||
Extension_EXT_Version_Internal = Estado ilegal para el estado de evaluación de la url para la extensión ''{0}''
|
||||
Extension_EXT_Version_Invalid = La url de la Extension ''{0}'' no es válida (Versión inválida ''{1}'')
|
||||
Extension_EXT_Version_InvalidId = La url de la Extension ''{0}'' no es válida (Elemento id inválido ''{1}'')
|
||||
Extension_EXT_Version_NoChange = La url de la extensión ''{0}'' no es válida (El Elemento id ''{1}'' es válido, pero no puede utilizarse en un paradigma entre versiones porque no ha habido cambios entre las versiones relevantes)
|
||||
Fixed_Type_Checks_DT_Address_Line = Esperados {0} pero encontrados {1} elementos line
|
||||
Fixed_Type_Checks_DT_Name_Family = Esperados {0} pero encontrados {1} elementos family
|
||||
Fixed_Type_Checks_DT_Name_Given = Esperados {0} pero encontrados {1} elementos given
|
||||
Fixed_Type_Checks_DT_Name_Prefix = Esperados {0} pero encontrados {1} elementos prefix
|
||||
Fixed_Type_Checks_DT_Name_Suffix = Esperados {0} pero encontrados {1} elementos suffix
|
||||
Internal_INT_Bad_Type = Tipo de valor fijo no gestionado {0}
|
||||
Language_XHTML_Lang_Different1 = El recurso tiene un elemento language ({0}), y el XHTML tiene un etiqueta lang ({1}), pero difieren
|
||||
Language_XHTML_Lang_Different2 = El recurso tiene un elemento language ({0}), y el XHTML tiene una etiqueta xml:lang ({1}), pero difieren
|
||||
Language_XHTML_Lang_Missing1 = El recurso tiene un elemento language, pero el XHTML no tiene etiquetas lang o xml:lang tag (necesita ambos - ver https://www.w3.org/TR/i18n-html-tech-lang/#langvalues)
|
||||
Language_XHTML_Lang_Missing2 = El recurso tiene un elemento language, pero el XHTML no tiene etiqueta lang (necesita ambas lang y xml:lang - ver https://www.w3.org/TR/i18n-html-tech-lang/#langvalues)
|
||||
Language_XHTML_Lang_Missing3 = El recurso tiene un elemento language, pero el XHTML no tiene etiqueta xml:lang (necesita ambas lang and xml:lang - ver https://www.w3.org/TR/i18n-html-tech-lang/#langvalues)
|
||||
Meta_RES_Security_Duplicate = Etiqueta de Seguridad Duplicada {0}
|
||||
MustSupport_VAL_MustSupport = El elemento {0} no está marcado como ''mustSupport'' en el perfil {1}. Considere no usar el elemento, o marcar el elemento como must-Support en el perfil
|
||||
Profile_EXT_Not_Here = La extensión {0} no se puede utilizar en este punto (basado en el invariante contextual ''{1}'')
|
||||
Profile_VAL_MissingElement = El elemento ''{0}'' no se encuentra - es obligatorio en base al valor fijo asignado por el perfil {1}
|
||||
Profile_VAL_NotAllowed = El elemento {0} está presente en la instancia pero no puede ser incluido en el elemento {1} especificado en el perfil
|
||||
Measure_MR_M_None = No se identifica un elemento Measure, asi que no se puede validar contra el elemento Measure
|
||||
Measure_MR_M_NotFound = El elemento Measure ''{0}'' no pudo ser resuelto, asi que no se puede validar contra el elemento Measure
|
||||
Questionnaire_QR_Item_BadOption = El valor provisto ({0}::{1}) no está en el conjunto de valores para las opciones provisto por el cuestionario
|
||||
Questionnaire_QR_Item_Coding = Error {0} validando el elemento Coding contra las opciones del Recurso Questionnaire
|
||||
Questionnaire_QR_Item_CodingNoOptions = No se puede validar la opción del elemento Coding porque no se provee lista de opciones
|
||||
Questionnaire_QR_Item_DateNoOptions = No se puede validar la opción de fecha porque no se ha provisto una lista de opciones
|
||||
Questionnaire_QR_Item_Display = Los items que no sean de tipo DISPLAY no deben tener items - linkId {0}
|
||||
Questionnaire_QR_Item_Group = Los items de tipo GROUP no deben tener respuestas
|
||||
Questionnaire_QR_Item_GroupAnswer = Los items que no sean de tipo GROUP no pueden tener items fuera de las respuestas (use answer.item no .item)
|
||||
Questionnaire_QR_Item_IntNoOptions = No puede validar una respuesta entera porque no se ha provisto una lista de opciones
|
||||
Questionnaire_QR_Item_Missing = No se ha encontrado respuesta para el item requerido ''{0}''
|
||||
Questionnaire_QR_Item_NoCoding = El código {0}::{1} no es una opción valida
|
||||
Questionnaire_QR_Item_NoDate = La fecha {0} no es una opción válida
|
||||
Questionnaire_QR_Item_NoInteger = El entero {0} no es una opción válida
|
||||
Questionnaire_QR_Item_NoLinkId = No hay LinkId, asi que no puede ser validado
|
||||
Questionnaire_QR_Item_NoOptions = No se pueden validar opciones porque no se han provisto opciones
|
||||
Questionnaire_QR_Item_NoOptionsCoding = La lista de opciones no tiene valores de tipo Coding
|
||||
Questionnaire_QR_Item_NoOptionsDate = La lista de opciones no tiene valores de tipo date
|
||||
Questionnaire_QR_Item_NoOptionsInteger = La lista de opciones no tiene valores de tipo integer
|
||||
Questionnaire_QR_Item_NoOptionsString = La lista de opciones no tiene valores de tipo string
|
||||
Questionnaire_QR_Item_NoOptionsTime = La lista de opciones no tiene valores de tipo time
|
||||
Questionnaire_QR_Item_NoString = La cadena {0} no es una opción válida
|
||||
Questionnaire_QR_Item_NoTime = La hora {0} no es una opción válida
|
||||
Questionnaire_QR_Item_NoType = La definición para {0} no contiene un tipo
|
||||
Questionnaire_QR_Item_NotEnabled = El Item tiene una respuesta (2), aun cuando no ha sido habilitado {0}
|
||||
Questionnaire_QR_Item_NotEnabled2 = El Item tiene una respuesta, aun cuando no ha sido habilitado (item.id = ''{0}'')
|
||||
Questionnaire_QR_Item_NotFound = El LinkId ''{0}'' no ha sido encontrado en el cuestionario
|
||||
Questionnaire_QR_Item_OnlyOneA = Solo un item con respuesta se permite para items que tengan este linkId
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
Questionnaire_QR_Item_OnlyOneI_one =
|
||||
Questionnaire_QR_Item_OnlyOneI_other = Solo una respuesta permitida para el linkID {1} pero se encontraron {0} items
|
||||
Questionnaire_QR_Item_Order = Error Estructural: los items están fuera de orden
|
||||
Questionnaire_QR_Item_StringNoOptions = No se puede validar la respuesta de tipo string porque no se ha provisto una lista de opciones
|
||||
Questionnaire_QR_Item_Text = Si el elemento text existe debe coincidir con la definición realizada en el cuestionario para el linkId {0}
|
||||
Questionnaire_QR_Item_TimeNoOptions = No se puede validar la opción de respuesta de tipo time porque no se ha provisto una lista de opciones
|
||||
Questionnaire_QR_Item_WrongType_one = El valor de la respuesta debe ser del tipo {1}
|
||||
Questionnaire_QR_Item_WrongType_other = El valor de la respuesta debe ser de alguno de los {0} tipos {1}
|
||||
Questionnaire_QR_Q_None = No se ha identificado el cuestionario, asi que no se puede realizar la validación contra el cuestionario base
|
||||
Questionnaire_QR_Q_NotFound = La referencia al cuestionario ''{0}'' no pudo ser resuelta, asi que no se puede realizar la validación contra el cuestionario base
|
||||
Questionnaire_Q_EnableWhen_After = El destino de esta regla enableWhen ({0}) aparece luego de la pregunta
|
||||
Questionnaire_Q_EnableWhen_IsInner = Las preguntas con una regla enableWhen no pueden referir a una pregunta interna para su condición enableWhen
|
||||
Questionnaire_Q_EnableWhen_NoLink = Las preguntas con un enableWhen deben tener un valor para el Link de la pregunta
|
||||
Questionnaire_Q_EnableWhen_NoTarget = No se ha podido encontrar un item con el linkId ''{0}'' que se referencia en la regla enableWhen para ''{1}''
|
||||
Questionnaire_Q_EnableWhen_Self = El destino para el enableWhen de esta pregunta no puede referenciarse a si misma
|
||||
Reference_REF_Aggregation = La referencia es {0} que no es soportada por los modos de agregación especificados para la referencia ({1})
|
||||
Reference_REF_BadTargetType = Tipo de Recurso Destino Inválido. Se encontró {0}, pero se esperaba uno de ({1})
|
||||
Reference_REF_BadTargetType2 = El tipo''{0}'' implicito por la URL de la referencia {1} no es un destino válido para este elemento (debe ser uno de {2})
|
||||
Reference_REF_CantMatchChoice = No se puede encontrar una coincidencia para el perfil {0} entre las opciones: {1}
|
||||
Reference_REF_CantMatchType = No se puede encontrar una coincidencia para el perfil {0} (por tipo) entre las opciones: {1}
|
||||
Reference_REF_CantResolve = Incapaz de resolver el recurso con la referencia ''{0}''
|
||||
Reference_REF_CantResolveProfile = Incapaz de resolver el perfil con la referencia ''{0}''
|
||||
Reference_REF_Format1 = Las URLs relativas deben tener el formato [ResourceName]/[id], o se permite una URL de búsqueda ([tipo]?parámetros. Encontrado {0})
|
||||
Reference_REF_Format2 = Las URLs relativas deben tener el formato [ResourceName]/[id]. Encontrado {0}
|
||||
Reference_REF_MultipleMatches = Se han encontrado múltiples perfiles coincidentes para {0} entre las opciones: {1}
|
||||
Reference_REF_NoDisplay = Un elemento Reference sin una refencia o un elemento identifier debe contener un elemento display
|
||||
Reference_REF_NoType = No se puede determinar el tipo del recurso destino
|
||||
Reference_REF_NotFound_Bundle = La referencia dentro del Bundle o recurso contenido no pudo encontrarse en el Bundle o Recurso {0}
|
||||
Reference_REF_ResourceType = La referencia coincidente para la referencia {0} tiene resourceType {1}
|
||||
Reference_REF_WrongTarget = El tipo ''{0}'' no es un destino válido para este elemento (debe ser uno de {1})
|
||||
REFERENCE_REF_WRONGTARGET_LOAD = El tipo ''{2}'' no es un destino válido para el elemento {0} (debe ser {1})
|
||||
Resource_RES_ID_Malformed_Length = El id del recurso es inválido: Muy Largo
|
||||
Resource_RES_ID_Malformed_Chars = El id del recurso es inválido: Caracteres Inválidos
|
||||
Resource_RES_ID_Missing = El recurso requiere un elemento id, pero no se encontró ninguno
|
||||
Resource_RES_ID_Prohibited = El recurso tiene un elemento id, pero no está permitida su inclusión
|
||||
Terminology_PassThrough_TX_Message = {0} para ''{1}#{2}''
|
||||
Terminology_TX_Binding_CantCheck = La Vinculación por referencia URI no pudo ser verificada
|
||||
Terminology_TX_Binding_Missing = Falta la Vinculación con {0} (CodeableConcept)
|
||||
Terminology_TX_Binding_Missing2 = Falta la Vinculación con {0}
|
||||
Terminology_TX_Binding_NoServer = El valor provisto no puede ser validado en ausencia de un servidor terminológico
|
||||
Terminology_TX_Binding_NoSource = La vinculación para {0} no tiene origen, asi que no ha podido ser verificada
|
||||
Terminology_TX_Binding_NoSource2 = La vinculacieon no tiene origen, asi que no puede ser verificada
|
||||
Terminology_TX_Code_NotValid = El código {0} no es un código válido en el sistema de codificación {1}
|
||||
Terminology_TX_Code_Unknown = Código desconocido ({0}#{1})
|
||||
Terminology_TX_Code_ValueSet = No se ha provisto un código, y se requiere un código proveniente del conjunto de valores {0}
|
||||
Terminology_TX_Code_ValueSet_MISSING = No se ha provisto un código, y se requiere un código proveniente del conjunto de valores
|
||||
Terminology_TX_Code_ValueSetMax = No se ha provisto un código, y se requiere un código proveniente del conjunto de valores {0} (conjunto maximo de valores {1})
|
||||
Terminology_TX_Code_ValueSet_Ext =No se ha provisto un código, y se requiere un código proveniente del conjunto de valores {0}
|
||||
Terminology_TX_Coding_Count = Esperados {0} pero encontrados {1} elementos coding
|
||||
Terminology_TX_Confirm_1_CC = No se pudo confirmar que las codificaciones provistas estén en el set de valores{0} y se requieren códigos de este conjunto de valores (class = {1})
|
||||
Terminology_TX_Confirm_2_CC = No se pudo confirmar que las codificaciones provistas estén en el set de valores{0} y deberian provenir de este conjunto de valores a menos que no haya un código apropiado (el validador no pudo juzgar si era o no apropiado) (class = {1})
|
||||
Terminology_TX_Confirm_3_CC = No se pudo confirmar que las codificaciones provistas estén en el set de valores{0} y se recomienda que los códigos provengan de este conjunto de valores (class = {1})
|
||||
Terminology_TX_Confirm_4a = El código provisto ({2}) no está en el conjunto de valores {0}, y un código de este conjunto de valores es requerido: {1}
|
||||
Terminology_TX_Confirm_4b = Los códigos provistos ({2}) no están en el conjunto de valores {0}, y se requiere un código de este conjunto de valores: {1}
|
||||
Terminology_TX_Confirm_5 = No se pudo confirmar que los códigos provistos vengan de este conjunto de valores {0}, y deberian provenir de este conjunto de valores a menos que no haya un código apropiado (el validador no pudo juzgar si era o no apropiado)
|
||||
Terminology_TX_Confirm_6 = No se pudo confirmar que los códigos provistos vengan de este conjunto de valores {0}, y se recomienda que los códigos provengan de este conjunto de valores
|
||||
Terminology_TX_Display_Wrong = El elemento Display deberia ser igual a ''{0}''
|
||||
Terminology_TX_Error_CodeableConcept = Error {0} validando el CodeableConcept
|
||||
Terminology_TX_Error_CodeableConcept_Max = Error {0} validando el CodeableConcept usando maxValueSet
|
||||
Terminology_TX_Error_Coding1 = Error {0} validando Coding
|
||||
Terminology_TX_Error_Coding2 = Error {0} validando Coding: {1}
|
||||
Terminology_TX_NoValid_1_CC = Ninguno de los codings provistos están en el conjunto de valores {0}, y se requiere un código de este conjunto de valores) (codes = {1})
|
||||
Terminology_TX_NoValid_10 = El código provisto no está en el conjunto de valores máximo {0}, y se requiere un código de este conjunto de valores) (code = {1}#{2})
|
||||
Terminology_TX_NoValid_11 = El código provisto no está en el conjunto de valores máximo {0}, y se requiere un código de este conjunto de valores) (code = {1}#{2}), error = {3})
|
||||
Terminology_TX_NoValid_12 = El Coding provisto ({2}) no está en el conjunto de valores{0}, y se requiere un código de este conjunto de valores: {1}
|
||||
Terminology_TX_NoValid_13 = El Coding provisto ({2}) no está en el conjunto de valores{0}, y deberian provenir de este conjunto de valores a menos que no haya un código apropiado (el validador no pudo juzgar si era o no apropiado) {1}
|
||||
Terminology_TX_NoValid_14 = El Coding provisto ({2}) no está en el conjunto de valores{0}, y se recomienda que los códigos provengan de este conjunto de valores {1}
|
||||
Terminology_TX_NoValid_15 = El valor provisto (''{0}'') no pudo ser validado en ausencia de un servidor terminológico
|
||||
Terminology_TX_NoValid_16 = El valor provisto (''{0}'') no está en el conjunto de valores{1}, y se requiere un código de este conjunto de valores) {2}
|
||||
Terminology_TX_NoValid_17 = El valor provisto (''{0}'') no está en el conjunto de valores{1}, y deberian provenir de este conjunto de valores a menos que no haya un código apropiado (el validador no pudo juzgar si era o no apropiado) {2}
|
||||
Terminology_TX_NoValid_18 = El valor provisto (''{0}'') no está en el conjunto de valores{1}, y se recomienda que el código provengan de este conjunto de valores){2}
|
||||
Terminology_TX_NoValid_2_CC = Ninguno de los codings provistos están en el conjunto de valores {0}, y deberian provenir de este conjunto de valores a menos que no haya un código apropiado (el validador no pudo juzgar si era o no apropiado) (codes = {1})
|
||||
Terminology_TX_NoValid_3_CC = Ninguno de los codings provistos están en el conjunto de valores {0}, y se recomienda que los códigos provengan de este conjunto de valores ) (codes = {1})
|
||||
Terminology_TX_NoValid_4 = El Coding provisto ({2}) no está en el conjunto de valores {0}, y se requiere un código de este conjunto de valores {1}
|
||||
Terminology_TX_NoValid_5 = El Coding provisto ({2}) no está en el conjunto de valores {0}, y deberian provenir de este conjunto de valores a menos que no haya un código apropiado (el validador no pudo juzgar si era o no apropiado) {1}
|
||||
Terminology_TX_NoValid_6 = El Coding provisto ({2}) no está en el conjunto de valores {0}, y se recomienda que el código provengan de este conjunto de valores {1}
|
||||
Terminology_TX_NoValid_7 = Ninguno de los códigos provistos pueden ser validados contra el conjunto de valores máximo {0}, (error = {2})
|
||||
Terminology_TX_NoValid_8 = Ninguno de los códigos provistos está en el conjunto de valores máximo {0}, y se requiere un código de este conjunto de valores) (codes = {1})
|
||||
Terminology_TX_NoValid_9 = Ninguno de los códigos provistos pueden ser validados contra el conjunto de valores máximo {0}, (error = {1})
|
||||
Terminology_TX_System_Invalid = URI de Sistema Inválido: {0}
|
||||
Terminology_TX_System_NotKnown = El URI para el Code System ''{0}'' es desconocido asi que el código no puede ser validado
|
||||
Terminology_TX_System_Relative = Coding.system debe ser una referencia absoluta, no una referencia local
|
||||
Terminology_TX_System_Unknown = Sistema de Codificación Desconocido ''{0}''
|
||||
Terminology_TX_System_ValueSet = URI de Sistema Inválido: {0} - no se puede utilizar una URI de conjunto de valores como system
|
||||
Terminology_TX_System_ValueSet2 = El elemento Coding referencia un set de valores, no un sistema de codificación (''{0}'')
|
||||
Terminology_TX_ValueSet_NotFound = El ValueSet {0} no ha sido encontrado por el validador
|
||||
Terminology_TX_ValueSet_NotFound_CS = Se encontró una refeencia a un CodeSystem ({0}) donde corresponde un ValueSet
|
||||
Type_Specific_Checks_DT_Base64_Valid = El valor ''{0}'' no es un valor válido para Base64
|
||||
Type_Specific_Checks_DT_Boolean_Value = Los valores binarios deben ser ''true'' o ''false''
|
||||
Type_Specific_Checks_DT_Code_WS = El código ''{0}'' no es válido (reglas de espacio en blanco)
|
||||
Type_Specific_Checks_DT_DateTime_Reasonable = El valor ''{0}'' está fuera del rango razonable de años - verifique la entrada de datos
|
||||
Type_Specific_Checks_DT_DateTime_Regex = El valor de tipo instant ''{0}'' no es válido (por regex)
|
||||
Type_Specific_Checks_DT_DateTime_TZ = si la fecha tiene una hora, tiene que tener una zona horaria
|
||||
Type_Specific_Checks_DT_DateTime_Valid = No es una fecha/hora válida ({0})
|
||||
Type_Specific_Checks_DT_Date_Valid = No es una fecha válida ({0})
|
||||
Type_Specific_Checks_DT_Decimal_Range = El valor ''{0}'' está fuera del rango razonable/soportado para decimales
|
||||
Type_Specific_Checks_DT_Decimal_Valid = El valor ''{0}'' no es un decimal válido
|
||||
Type_Specific_Checks_DT_Decimal_GT = el valor es mayor que el valor máximo permitido de {0}
|
||||
Type_Specific_Checks_DT_Decimal_LT = el valor es menor que el valor mínimo permitido de {0}
|
||||
Type_Specific_Checks_DT_ID_Valid = El valor de id ''{0}'' no es válido
|
||||
Type_Specific_Checks_DT_Identifier_System = Identifier.system debe ser una referencia absoluta, no una referencia local
|
||||
Type_Specific_Checks_DT_Instant_Valid = No es válido para el tipo instant ({0})
|
||||
Type_Specific_Checks_DT_Integer64_Valid = El valor ''{0}'' no es un integer64 válido
|
||||
Type_Specific_Checks_DT_Integer_GT = el valor es mayor que el valor máximo permitido de {0}
|
||||
Type_Specific_Checks_DT_Integer_LT = el valor es menor que el valor mínimo permitido de {0}
|
||||
Type_Specific_Checks_DT_Integer_LT0 = el valor es menor que el valor mínimo permitido de 0
|
||||
Type_Specific_Checks_DT_Integer_LT1 = el valor es menor que el valor mínimo permitido de 1
|
||||
Type_Specific_Checks_DT_Integer_Valid = El valor ''{0}'' no es un entero válido
|
||||
Type_Specific_Checks_DT_OID_Start = Los OIDs deben empezar con urn:oid:
|
||||
Type_Specific_Checks_DT_OID_Valid = Los OIDs deben ser válidos ({0})
|
||||
Type_Specific_Checks_DT_Primitive_Length = el valor es mas largo que la máxima longitud permitida de {0}
|
||||
Type_Specific_Checks_DT_Primitive_NotEmpty = @value no puede estar vacío
|
||||
Type_Specific_Checks_DT_Primitive_Regex = El valor del elemento ''{0}'' no cumple con el regex ''{1}''
|
||||
Type_Specific_Checks_DT_Primitive_ValueExt = Los tipos primitivos deben tener un valor o tener extensiones asociadas
|
||||
Type_Specific_Checks_DT_Primitive_WS = Los tipos primitivos no pueden ser solo espacio en blanco
|
||||
Type_Specific_Checks_DT_String_Length = el valor es mas largo que la máxima longitud permitida de 1 MB (1048576 bytes)
|
||||
Type_Specific_Checks_DT_String_WS = el valor no puede empezar o terminar con espacios en blanco ''{0}''
|
||||
Type_Specific_Checks_DT_Time_Valid = No es una hora válida ({0})
|
||||
Type_Specific_Checks_DT_URI_OID = Los valores URI no pueden empezar con oid:
|
||||
Type_Specific_Checks_DT_URI_UUID = Los valores URI no pueden empezar con uuid:
|
||||
Type_Specific_Checks_DT_URI_WS = Los valores URI no pueden tener espacios en blanco (''{0}'')
|
||||
Type_Specific_Checks_DT_URL_Resolve = El valor URL ''{0}'' no puede resolverse
|
||||
Type_Specific_Checks_DT_UUID_Strat = Las UUIDs deben empezar con urn:uuid:
|
||||
Type_Specific_Checks_DT_UUID_Valid = UUIDs deben ser válidas y en letra minúscula
|
||||
Validation_BUNDLE_Message = La primera entry en un mensaje tiene que ser un recurso MessageHeader
|
||||
Validation_VAL_Content_Unknown = Contenido No Reconocido {0}
|
||||
Validation_VAL_NoType = Tipo Desconocido {0}
|
||||
Validation_VAL_Profile_MatchMultiple = Perfil {0}, El elemento coincide con más de un slice - {1}, {2}
|
||||
## for the next 4 messages, the available parameters are: 0: profile url, 1: ed.path, 2: ed.id, 3: ed.sliceName, 4: ed.label, 5: element.path, 6: ed.min and optionally 7: actual count
|
||||
Validation_VAL_Profile_Maximum_one = {3}: max permitido = {7}, pero se han encontrado {0} (de {1})
|
||||
Validation_VAL_Profile_Maximum_other = {3}: max permitido = {7}, pero se han encontrado {0} (de {1})
|
||||
Validation_VAL_Profile_Minimum_one = {3}: mínimo requerido = {7}, pero sólo se han encontrado {0} (de {1})
|
||||
Validation_VAL_Profile_Minimum_other = {3}: mínimo requerido = {7}, pero sólo se han encontrado {0} (de {1})
|
||||
Validation_VAL_Profile_NoCheckMax_one = {3}: Se encontró {0} coincidencia, pero es imposible verificar el max permitido ({2}) debido a la falta de validación del particionado (de {1})
|
||||
Validation_VAL_Profile_NoCheckMax_other = {3}: Se encontraron {0} coincidencias, pero es imposible verificar el max permitido ({2}) debido a la falta de validación del particionado (de {1})
|
||||
Validation_VAL_Profile_NoCheckMin_one = {3}: Found {0} match, pero es imposible verificar el mínimo requerido ({2}) debido a la falta de validación del particionado (de {1})
|
||||
Validation_VAL_Profile_NoCheckMin_other = {3}: Se encontraron {0} coincidencias, pero es imposible verificar el mínimo requerido ({2}) debido a la falta de validación del particionado (de {1})
|
||||
Validation_VAL_Profile_MultipleMatches_one = Se han encontrado multiples perfiles coincidentes entre {0} opción: {1}
|
||||
Validation_VAL_Profile_MultipleMatches_other = Se han encontrado multiples perfiles coincidentes entre {0} opciones: {1}
|
||||
Validation_VAL_Profile_NoDefinition = No se encontró la definición para el tipo de recurso ''{0}''
|
||||
Validation_VAL_Profile_NoMatch = Imposible encontrar una coincidencia para el perfil especificado entre las opciones: {0}
|
||||
Validation_VAL_Profile_NoSnapshot = El recurso StructureDefinition {0} no tiene snapshot - la validación se realiza contra el snapshot, asi que debe ser provisto
|
||||
Validation_VAL_Profile_NoType = El tipo de elemento {0} es desconocido, lo cual es ilegal. Los tipos válidos en este punto son {1}
|
||||
Validation_VAL_Profile_NotAllowed = Este elemento no está permitido por el perfil {0}
|
||||
Validation_VAL_Profile_NotSlice = Este elemento no coincide con ninguna partición conocida {0} y las particiones están CERRADAS: {1}
|
||||
Validation_VAL_Profile_OutOfOrder = Según se especifica en el perfil {0}, el elemento ''{1}'' está fuera de orden (encontrado luego de {2})
|
||||
Validation_VAL_Profile_SliceOrder = Según se especifica en el perfil {0}, el elemento ''{1}'' está fuera de orden en la partición ordenada
|
||||
Validation_VAL_Profile_Unknown = La referencia al perfil ''{0}'' no ha sido verificada porque el perfil es desconocido
|
||||
VALIDATION_VAL_PROFILE_UNKNOWN_NOT_POLICY = La referencia al perfil ''{0}'' no ha sido verificada ya que es desconocido, y el validador está configurado para no aceptar perfiles desconocidos
|
||||
VALIDATION_VAL_PROFILE_UNKNOWN_ERROR = La referencia al perfil ''{0}'' no ha sido verificada ya que es desconocido, y se produjo un error {1} al cargarlo
|
||||
VALIDATION_VAL_PROFILE_UNKNOWN_ERROR_NETWORK = La referencia al perfil ''{0}'' no ha sido verificada ya que es desconocido, y el host {1} no pudo ser encontrado
|
||||
Validation_VAL_Unknown_Profile = Perfil desconocido {0}
|
||||
VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED = El perfile {1} identifica {2} como una dependencia (usando la extensión http://hl7.org/fhir/StructureDefinition/structuredefinition-dependencies), pero este perfil no pudo ser encontrado
|
||||
XHTML_XHTML_Attribute_Illegal = Nombre de atributo inválido en el XHTML (''{0}'' en ''{1}'')
|
||||
XHTML_XHTML_Element_Illegal = Nombre de elemento inválido en el XHTML (''{0}'')
|
||||
XHTML_XHTML_Entity_Illegal = Entidad inválido en el XHTML (''{0}'')
|
||||
XHTML_XHTML_Image_Reference_Illegal = Referencia ilegal a imagen en el XHTML (''{0}'')
|
||||
XHTML_XHTML_NS_InValid = Espacio de Nombre Erroneo en XHTML (''{0}'', debe ser ''{1}'')
|
||||
XHTML_XHTML_Name_Invalid = Nombre erróneo en el XHTML (''{0}'') - debe empezar con div
|
||||
_DT_Fixed_Wrong = El valor es ''{0}'' but debe ser ''{1}''
|
||||
All_observations_should_have_an_effectiveDateTime_or_an_effectivePeriod = Todos los recursos Observation deben tener un elemento effectiveDateTime o effectivePeriod
|
||||
All_observations_should_have_a_performer = Todos los recursos Observation deben tener un elemento performer
|
||||
All_observations_should_have_a_subject = Todos los recursos Observation deben tener un elemento subject
|
||||
Unable_to_resolve_slice_matching__no_fixed_value_or_required_value_set = Imposible resolver la particion - no hay valor fijo o conjunto de valores requerido
|
||||
Unable_to_resolve_slice_matching__slice_matching_by_value_set_not_done = Imposible resolver la particion - no se realizó partición por conjunto de valores
|
||||
Problem_processing_expression__in_profile__path__ = Problema procesando la expresión ''{0}'' en el perfil ''{1}'' en el path ''{2}'': {3}
|
||||
Unable_to_find_element_with_id_ = Imposible encontrar un elemento con id ''{0}''
|
||||
Slice_encountered_midway_through_set_path___id___ = Partición encontrada dentro del conjunto (path = {0}, id = {1}); {2}
|
||||
Unable_to_resolve_actual_type_ = Imposible resolver el tipo {0}
|
||||
Unsupported_version_R1 = Versión No Soportada R1
|
||||
Unsupported_version_R2 = Versión No Soportada R2
|
||||
Unsupported_version_R2B = Versión No Soportada R2B
|
||||
Unsupported_fixed_value_type_for_discriminator_for_slice__ = Tipo de valor fijo no soportado para el discriminador ({0}) para la partición {1}: {2}
|
||||
Unsupported_CodeableConcept_pattern__extensions_are_not_allowed__for_discriminator_for_slice_ = Patrón para CodeableConcept no soportado - las extensiones no se permiten para el discriminador ({0}) de la partición {1}
|
||||
Unsupported_CodeableConcept_pattern__must_have_at_least_one_coding__for_discriminator_for_slice_ = Patrón para CodeableConcept no soportado - must have at least one coding - para el discriminador ({0}) de la partición {1}
|
||||
Unsupported_CodeableConcept_pattern__using_text__for_discriminator_for_slice_ = Patrón para CodeableConcept no soportado - usa text - para el discriminador ({0}) de la partición {1}
|
||||
Unsupported_Identifier_pattern__extensions_are_not_allowed__for_discriminator_for_slice_ = Patrón de Identifier no soportado - las extensiones no se permiten - para el discriminador ({0}) de la partición {1}
|
||||
Unsupported_fixed_pattern_type_for_discriminator_for_slice__ = Tipo de patrón de valor fijo no soportado para el discriminador ({0}) para la partición {1}: {2}
|
||||
Problem_evaluating_slicing_expression_for_element_in_profile__path__fhirPath___ = Problema evaluando la expresión de partición para el elemento en el perfil {0} path {1} (fhirPath = {2}): {3}
|
||||
Could_not_match_discriminator_for_slice_in_profile_one = No se encontró coincidencia para el discriminador ({0}) para la partición {1} en el perfil {2} - el discriminador {3} no tiene valor fijo, enlace o una declaración de existencia
|
||||
Could_not_match_discriminator_for_slice_in_profile_other = No se encontraron coincidencias con discriminadores ({1}) para la partición {2} en el perfil {3} - Ninguno de los {0} discriminadores {4} tiene valor fijo, enlace o una declaración de existencia
|
||||
Discriminator__is_based_on_element_existence_but_slice__neither_sets_min1_or_max0 = El discriminador ({0}) está basado en la existencia de un elemento, pero la partición {1} no define cardinalidad min>=1 o max=0
|
||||
Profile_based_discriminators_must_have_a_type_with_a_profile__in_profile_ = Los discriminadores basados en perfiles deben tener un tipo con un perfil ({0} en el perfil {1})
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
Profile_based_discriminators_must_have_only_one_type__in_profile_one =
|
||||
Profile_based_discriminators_must_have_only_one_type__in_profile_other = Los discriminadores basados en perfiles deben tener un solo tipo ({1} en el perfil {2}) pero se han encontrado {0} tipos
|
||||
Profile_based_discriminators_must_have_a_type__in_profile_ = Los discriminadores basados en perfiles deben tener un tipo ({0} en el perfil {1})
|
||||
Discriminator__is_based_on_type_but_slice__in__has_no_types = El discriminador ({0}) se basa en tipo, pero la partición {1} en {2} no tiene tipos
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
Discriminator__is_based_on_type_but_slice__in__has_multiple_types_one =
|
||||
Discriminator__is_based_on_type_but_slice__in__has_multiple_types_other = El discriminador ({1}) está basado en tipos, pero la partición {2} en {3} tiene {0} tipos: {4}
|
||||
Found__items_for__resolving_discriminator__from_ = Se han encontrado {0} items para {1} resolviendo el discriminator {2} de {3}
|
||||
Unable_to_find__resolving_discriminator__from_ = Imposible encontrar {0} resolviendo el discriminador {1} de {2}
|
||||
Unable_to_find_resource__at__resolving_discriminator__from_ = Imposible encontrar el recurso {0} en {1} resolviendo el discriminador {2} de {3}
|
||||
No_reference_resolving_discriminator__from_ = No se encontró referencia resolviendo el discriminador {0} de {1}
|
||||
Unable_to_resolve_element__in_profile_ = Imposible resolver el elemento {0} en el perfil {1}
|
||||
Unable_to_resolve_profile_ = Imposible resolver el perfil {0}
|
||||
Resource_resolution_services_not_provided = Los servicios de resolución de recurso no han sido provistos
|
||||
Unrecognised_extension_context_ = Contexto de extensión no reconocido {0}
|
||||
Unable_to_locate_the_profile__in_order_to_validate_against_it = Imposible localizar el perfil ''{0}'' para utilizarlo en validación
|
||||
Reference__refers_to_a__not_a_ValueSet = La referencia {0} apunta a un {1} no a un ValueSet
|
||||
Not_done_yet_ValidatorHostServicesconformsToProfile_when_item_is_not_an_element = No realizado aun (ValidatorHostServices.conformsToProfile), cuando el item no es un elemento
|
||||
Not_supported_yet = No soportado aún
|
||||
Unable_to_resolve_ = Imposible resolver la referencia{0}
|
||||
Not_done_yet__resolve__locally_2 = No realizado aún - resolver {0} localmente (2)
|
||||
Not_done_yet_ValidatorHostServicesexecuteFunction = No realizado aún (ValidatorHostServices.executeFunction)
|
||||
Not_done_yet_ValidatorHostServicescheckFunction = No realizado aún (ValidatorHostServices.checkFunction)
|
||||
Not_done_yet_ValidatorHostServicesresolveFunction_ = No realizado aún (ValidatorHostServices.resolveFunction): {0}
|
||||
Unable_to_find_base_definition_for_logical_model__from_ = Imposible encontrar la definición base para el modelo lógico: {0} de {1}
|
||||
Same_id_on_multiple_elements__in_ = El mismo id ''{0}'' en múltiples elementos {1}/{2} en {3}
|
||||
No_path_on_element_Definition__in_ = No hay path en la definición del elemento {0} en {1}
|
||||
needs_a_snapshot = requiere un snapshot
|
||||
not_the_right_kind_of_structure_to_generate_schematrons_for = no es la clase de estructura para la cual generar schematrons
|
||||
Not_handled_yet_sortElements_ = No soportado aún (sortElements: {0}:{1})
|
||||
Unable_to_resolve_profile__in_element_ = Imposible resolver el perfil {0} en elemento {1}
|
||||
Cant_have_children_on_an_element_with_a_polymorphic_type__you_must_slice_and_constrain_the_types_first_sortElements_ = Un elemento polimórfico no puede tener hijos- debe particionar y restringir los tipos antes (sortElements: {0}:{1})
|
||||
Unable_to_find_profile__at_ = Imposible encontrar el perfil ''{0}'' a {1}
|
||||
Unhandled_situation_resource_is_profiled_to_more_than_one_option__cannot_sort_profile = Situación no controlada: el recurso está perfilado a mas de una opción - no se puede ordenar el perfil
|
||||
Internal_recursion_detection_find_loop_path_recursion____check_paths_are_valid_for_path_ = Detección de recursión interna: ciclo de recursion find() detectado > {0} - verifique que las paths sean válidas (para path {1}/{2})
|
||||
Internal_error___type_not_known_ = Error interno - tipo desconocido {0}
|
||||
Unable_to_find_element_ = Incapaz de encontrar elemento {0}
|
||||
Error_generating_table_for_profile__ = Error generando la tabla para el perfil {0}: {1}
|
||||
StructureDefinition__at__illegal_constrained_type__from__in_ = StructureDefinition {0} en {1}: tipo restringido inválido {2} de {3} en {4}
|
||||
Error_at__The_target_profile__is_not__valid_constraint_on_the_base_ = Error en {0}#{1}: El perfil destino {2} no es una restricción válida sobre la base ({3})
|
||||
Error_in_profile__at__Base_isSummary___derived_isSummary__ = Error en perfiles {0} de {1}: El recurso Base isSummary = {2}, derivado isSummary = {3}
|
||||
StructureDefinition__at__illegal_attempt_to_change_a_binding_from__to_ = StructureDefinition {0} en {1}: intento inválido de cambiar una vinculación terminológica de {2} a {3}
|
||||
Unexpected_condition_in_differential_typeslicetypelistsize__1_at_ = Condición inesperada en el diferencial en {0}/{1}
|
||||
Unexpected_condition_in_differential_typeslicetypelistsize__10_and_implicit_slice_name_does_not_contain_a_valid_type__at_ = Condición inesperada en el diferencial y el nombre implícito de la partición no contiene un tipo válido (''{0}''?) en {1}/{2}
|
||||
Attempt_to_use_a_snapshot_on_profile__as__before_it_is_generated = Intento de usar un snapshot en el perfil ''{0}'' como {1} antes que se genere
|
||||
null_min = min nulo
|
||||
_has_children__for_type__in_profile__but_cant_find_type = {0} tiene hijos ({1}) para el tipo {2} en el perfil {3}, pero no pudo encontrarse el tipo
|
||||
_has_children__and_multiple_types__in_profile_ = {0} tiene hijos ({1}) y multiples tipos ({2}) en el perfil {3}
|
||||
Adding_wrong_path = Agregando un path erroneo
|
||||
Named_items_are_out_of_order_in_the_slice=Los items nominados están fuera de orden en la partición
|
||||
The_base_snapshot_marks_a_slicing_as_closed_but_the_differential_tries_to_extend_it_in__at__ = El snapshot base marca la partición como cerrada, pero el diferencial trata de extenderlo en {0}, en {1} ({2})
|
||||
Not_done_yet = No implementado aún
|
||||
Unknown_type__at_ = Unknown type {0} at {1}
|
||||
Differential_walks_into____but_the_base_does_not_and_there_is_not_a_single_fixed_type_The_type_is__This_is_not_handled_yet = La recorrida del diferencial llega a ''{0} (@ {1})'', pero el recurso base no, y no hay un único tipo fijo. El tipo es {2}. Esto no está soportado aún
|
||||
Slicing_rules_on_differential__do_not_match_those_on_base___rule___ = Las reglas de partición en el diferencial ({0}) no coinciden con aquellos en el recurso base ({1}) - regla @ {2} ({3})
|
||||
Slicing_rules_on_differential__do_not_match_those_on_base___disciminator___ = Las reglas de partición en el diferencial ({0}) no coinciden con aquellos en el recurso base ({1}) - disciminador @ {2} ({3})
|
||||
Slicing_rules_on_differential__do_not_match_those_on_base___order___ = Las reglas de partición en el diferencial ({0}) no coinciden con aquellos en el recurso base ({1}) - orden @ {2} ({3})
|
||||
not_done_yet__slicing__types__ = no implementado aún - particiones / tipos @ {0}
|
||||
Invalid_slicing__there_is_more_than_one_type_slice_at__but_one_of_them__has_min__1_so_the_other_slices_cannot_exist=Partición inválida: hay mas de una partición por tipo en {0}, pero una de ellas ({1}) tiene cardinalidad min = 1, asi que el resto de las particiones no puede existir
|
||||
Did_not_find_type_root_ = No se encontró el tipo raiz : {0}
|
||||
Error_at_path__Slice_for_type__has_wrong_type_ = Error en el path{0}: La partición para el tipo ''{1}'' es del tipo incorrecto ''{2}''
|
||||
Error_at_path__Slice_for_type__has_more_than_one_type_ = Error en el path{0}: La partición para el tipo ''{1}'' tiene más de un tipo ''{2}''
|
||||
Error_at_path__Slice_name_must_be__but_is_ = Error en el path{0}: El nombre de la particiópn debe ser ''{1}'' pero es ''{2}''
|
||||
Error_at_path__in__Type_slicing_with_slicingdiscriminatorpath__this = Error en el path {0} in {1}: La partición por tipo con slicing.discriminator.path != ''$this''
|
||||
Error_at_path__in__Type_slicing_with_slicingdiscriminatortype__type = Error en el path {0} in {1}: La partición por tipo con slicing.discriminator.type != ''type''
|
||||
Error_at_path__in__Type_slicing_with_slicingdiscriminatorcount__1 = Error en el path {0} in {1}: La partición por tipo con slicing.discriminator.count() > 1
|
||||
Error_at_path__in__Type_slicing_with_slicingordered__true = Error en el path{0} en {1}: La partición por tipo con slicing.ordered = true
|
||||
Adding_wrong_path_in_profile___vs_ = Se agrego el path incorrecto en el perfil {0}: {1} vs {2}
|
||||
_has_no_children__and_no_types_in_profile_ = {0} no tiene hijos ({1}) y no hay tipos en el perfil {2}
|
||||
not_done_yet = no implementado aún
|
||||
Did_not_find_single_slice_ = No se encontró una partición única: {0}
|
||||
Differential_does_not_have_a_slice__b_of_____in_profile_ = El diferencian en el perfil {5} no tiene una partición en {6} (en {0}, posición {1} de {2} / {3} / {4})
|
||||
Attempt_to_a_slice_an_element_that_does_not_repeat__from__in_ = Intento de particionar un elemento que no tiene repeticiones: {0}/{1} de {2} en {3}, en el elemento {4} (partición = {5})
|
||||
Unable_to_resolve_reference_to_ = Imposible resolver la referencia a {0}
|
||||
Unable_to_find_element__in_ = Imposible encontrar el elemento {0} en {1}
|
||||
Unable_to_find_base__for_ = Imposible encontrar la base {0} para {1}
|
||||
Adding_wrong_path__outcomegetPath___resultPathBase__ = Se agregó un path erróneo - outcome.getPath() = {0}, resultPathBase = {1}
|
||||
Illegal_path__in_differential_in__illegal_characters_ = Path inválido ''{0}'' en el diferencial en {1}: caracteres inválidos []
|
||||
Illegal_path__in_differential_in__illegal_character_ = Path inválido ''{0}'' en el diferencial en {1}: caracter inválido ''{2}''
|
||||
Illegal_path__in_differential_in__no_unicode_whitespace = Path inválido ''{0}'' en el diferencial en {1}: no unicode whitespace
|
||||
Illegal_path__in_differential_in__name_portion_exceeds_64_chars_in_length = Path inválido ''{0}'' en el diferencial en {1}: name portion exceeds 64 chars in length
|
||||
Illegal_path__in_differential_in__name_portion_mising_ = Path inválido ''{0}'' en el diferencial en {1}: falta la parte del nombre (''..'')
|
||||
Illegal_path__in_differential_in__must_start_with_ = Path inválido ''{0}'' en el diferencial en {1}: debe comenzar con {2}.{3}
|
||||
No_path_value_on_element_in_differential_in_ = No hay valor de path en el elemento en el diferencial en {0}
|
||||
No_path_on_element_in_differential_in_ = No hay path en el elemento en el diferencial en {0}
|
||||
Unxpected_internal_condition__no_source_on_diff_element = Condicion interna inesperada, no hay origen en un elemento del diferencial
|
||||
type_on_first_snapshot_element_for__in__from_ = el tipo del primer elemento del snapshot para {0} en {1} de {2}
|
||||
type_on_first_differential_element = tipo en el primer elemento del diferencial!
|
||||
Circular_snapshot_references_detected_cannot_generate_snapshot_stack__ = Referencias circulares detectadas en el snapshot, no se puede generar el snapshot (stack = {0})
|
||||
Base__Derived_profiles_have_different_types____vs___ = Los perfiles base y derivados tienen tipos distintos ({0} = {1} vs {2} = {3})
|
||||
Derived_profile__has_no_derivation_value_and_so_cant_be_processed = El perfil derivado {0} no tiene valor de derivación por lo cual no puede ser procesado
|
||||
Derived_profile__has_no_type = El perfil derivado {0} no tiene tipo
|
||||
Base_profile__has_no_type = El perfil basee {0} no tiene tipo
|
||||
no_derived_structure_provided = no se provee la estructura derivada
|
||||
no_base_profile_provided = no se provee el perfil base
|
||||
element_id__null__on_ = element id = nulo: {0} en {1}
|
||||
element__null_ = element = nulo: {0}
|
||||
getSliceList_should_only_be_called_when_the_element_has_slicing = getSliceList debe ser llamada cuando el elemento está particionado
|
||||
Unable_to_resolve_name_reference__at_path_ = Imposible resolver la referencia al nombre {0} en el path {1}
|
||||
Details_for__matching_against_Profile_ = Detalles para {0} coincidente con el perfil {1}
|
||||
Does_not_match_slice_ = No coincide con la partición ''{0}'' (discriminador: {1})
|
||||
Profile__does_not_match_for__because_of_the_following_profile_issues__ = El perfil {0} no coincide para {1} por los siguientes problemas del perfil: {2}
|
||||
This_element_does_not_match_any_known_slice_ = Este elemento no coincide con ninguna partición conocida {0}
|
||||
defined_in_the_profile = definido en el perfil
|
||||
This_does_not_appear_to_be_a_FHIR_resource_unknown_name_ = Esto no parece ser un recurso FHIR (nombre desconocido ''{0}'')
|
||||
This_cannot_be_parsed_as_a_FHIR_object_no_name = Esto no puede ser parseado como un objeto FHIR (sin nombre)
|
||||
This_does_not_appear_to_be_a_FHIR_resource_unknown_namespacename_ = Esto no parece ser un recurso FHIR (espacio de nombres/nombre desconocido ''{0}::{1}'')
|
||||
This__cannot_be_parsed_as_a_FHIR_object_no_namespace = Esto ''{0}'' no puede ser parseado como un objeto FHIR (sin espacio de nombres)
|
||||
Unable_to_find_resourceType_property = Imposible encontrar la propiedad resourceType
|
||||
Error_analizando_JSON_the_primitive_value_must_be_a_string = Error analizando JSON: el valor primitivo debe ser de tipo string
|
||||
Error_analizando_JSON_the_primitive_value_must_be_a_number = Error analizando JSON: el valor primitivo debe ser de tipo number
|
||||
Error_analizando_JSON_the_primitive_value_must_be_a_boolean = Error analizando JSON: el valor primitivo debe ser de tipo boolean
|
||||
Error_analizando_XHTML_ = Error analizando XHTML: {0}
|
||||
This_property_must_be_an_object_not_ = Esta propiedad debe ser un objeto, no {0} ({1} en {2})
|
||||
This_property_must_be_an_simple_value_not_ = Esta propiedad debe ser un valor simple, no {0} ({1} en {2})
|
||||
This_property_must_be__not_ = Esta propiedad {2} debe ser {0}, no {1} (en {3})
|
||||
This_property_must_be_an_Array_not_ = Esta propiedad {1} debe ser un Array JSON, no {0} (en {2})
|
||||
OBJECT_CANNOT_BE_KEYED_ARRAY_CHILD_COUNT = Este objeto no puede ser un array json con claves porque no tiene dos hijos en la definición (children = {0})
|
||||
OBJECT_CANNOT_BE_KEYED_ARRAY_PROP_NAME = Este objeto está definido como un Array json con claves pero la definición no denomina al primer elemento hijo como la clave (children = {0})
|
||||
OBJECT_CANNOT_BE_KEYED_ARRAY_PROP_TYPE = Este objeto está definido como un Array json con claves pero la propiedad clave definida no es un tipo primitivo (children = {0}, type = {1})
|
||||
OBJECT_CANNOT_BE_KEYED_ARRAY_NO_CHOICE = Este objeto está definido como un Array json con claves pero la propidad valor designada en las definiciones es una opción - esto no está soportado (valor property = {0})
|
||||
OBJECT_CANNOT_BE_KEYED_ARRAY_NO_LIST = Este objeto está definido como un Array json con claves pero la propiedad valor designada en las definiciones es una lista - esto no está soportado (valor property = {0})
|
||||
Unrecognised_property_ = Propiedad No Reconocida ''{0}''
|
||||
Object_must_have_some_content = El objeto debe tener algún contenido
|
||||
Error_analizando_JSON_ = Error analizando JSON: {0}
|
||||
Node_type__is_not_allowed = El tipo de nodo {0} no está permitido
|
||||
CDATA_is_not_allowed = CDATA no está permitido
|
||||
Undefined_element_ = Elemento indefinido ''{0}''
|
||||
Undefined_attribute__on__for_type__properties__ = Atributo indefinido ''@{0}'' en {1} para el tipo {2}
|
||||
Text_should_not_be_present = El elemento Text no debe estar presente (''{0}'')
|
||||
Wrong_namespace__expected_ = Espacio de nombres erróneo - se esperaba ''{0}''
|
||||
Element_must_have_some_content = El elemento debe tener algun contenido
|
||||
No_processing_instructions_allowed_in_resources = No se permiten instrucciones de procesamiento dentro de los recursos
|
||||
Unknown_resource_type_missing_rdfstype = Tipo de recurso desconocido (falta rdfs:type)
|
||||
reference_to__cannot_be_resolved = La referencia a {0} no puede ser resuelta
|
||||
This_property_must_be_a_URI_or_bnode_not_ = Esta propiedad debe ser una URI o bnode, no {0}
|
||||
This_property_must_be_a_Literal_not_ = Esta propiedad debe ser un Literal, no {0}
|
||||
Unrecognised_predicate_ = Predicado desconocido ''{0}''
|
||||
Error_analizando_Turtle_ = Error analizando Turtle: {0}
|
||||
Unexpected_datatype_for_rdfstype = Tipo de datos no esperado para rdfs:type
|
||||
Attempt_to_replace_element_name_for_a_nonchoice_type= Intento de reemplazar un nombre de elemento por un tipo que no es una opción
|
||||
Wrong_type_for_resource = Tipo incorrecto para el recurso
|
||||
Contained_resource_does_not_appear_to_be_a_FHIR_resource_unknown_name_ = El recurso contenido no parece ser un recurso FHIR (nombre desconocido ''{0}'')
|
||||
Unknown_Date_format_ = Formato de Fecha desconocido ''{0}''
|
||||
Unknown_Data_format_ = Formato de Datos desconocido ''{0}''
|
||||
No_type_found_on_ = No se encontro el tipo en ''{0}''
|
||||
error_writing_number__to_JSON = error escribiendo el número ''{0}'' en JSON
|
||||
Unable_to_process_request_for_resource_for___ = Imposible procesar la solicitud para el recurso para {0} / {1}
|
||||
Resource_type_mismatch_for___ = Tipo de recurso no coincidente para {0} / {1}
|
||||
not_done_yet_cant_fetch_ = No implementado aun: no se puede cargar {0}
|
||||
Attempt_to_use_Terminology_server_when_no_Terminology_server_is_available = Intento de utilizar el servidor terminológico pero no hay ninguno disponible
|
||||
No_ExpansionProfile_provided = No se provee ExpansionProfile
|
||||
Can_only_specify_profile_in_the_context = Solo se puede especificar perfil en el contexto
|
||||
no_url_in_expand_value_set_2 = no hay url el conjunto de valores expandido 2
|
||||
no_url_in_expand_value_set = no hay url en el conjunto de valores expandido
|
||||
no_value_set = El conjunto de valores carece de propiedad url
|
||||
No_Parameters_provided_to_expandVS = No se proveen parametros para expandVS
|
||||
No_Expansion_Parameters_provided = No se proveen parametros de expansion
|
||||
Unable_to_resolve_value_Set_ = Incapaz de resolver el conjunto de valores {0}
|
||||
Delimited_versions_have_exact_match_for_delimiter____vs_ = Las versiones delimitadas tienen una coincidencia exacta con el delimitador ''{0}'' : {1} vs {2}
|
||||
Duplicate_Resource_ = Recurso duplicado {0} de tipo {3} (versión existente {2}, nueva versión {1})
|
||||
DUPLICATE_RESOURCE_VERSION = Recurso duplicado {0} Versión {1} de tipo {2}
|
||||
Error_expanding_ValueSet_running_without_terminology_services = Error expandiendo el ValueSet: corriendo sin servicios terminológicos
|
||||
Error_validating_code_running_without_terminology_services = Error validando código: corriendo sin servicios terminológicos
|
||||
Unable_to_validate_code_without_using_server = Imposible validar el código sin usar el servidor
|
||||
Profile___Error_generating_snapshot = Perfil {0} ({1}). Error generando el snapshot
|
||||
Profile___element__Error_generating_snapshot_ = Perfil {0} ({1}), elemento {2}. Error generando snapshot: {3}
|
||||
Profile___base__could_not_be_resolved = Perfil {0} ({1}) la base {2} no puede ser resuelta
|
||||
Profile___has_no_base_and_no_snapshot = Perfil {0} ({1}) no tiene base ni snapshot
|
||||
No_validator_configured = No se ha configurado el validador
|
||||
Parser_Type__not_supported = El tipo de Parser {0} no es soportado
|
||||
Version_mismatch_The_context_has_version__loaded_and_the_new_content_being_loaded_is_version_ = Discordancia de versión. El contexto tiene la versión {0} cargada, y el nuevo contenido cargado tiene la versión {1}
|
||||
Error_reading__from_package__ = Error leyendo {0} del paquete {1}#{2}: {3}
|
||||
Error_analizando_ = Error analizando {0}:{1}
|
||||
Unable_to_connect_to_terminology_server_Use_parameter_tx_na_tun_run_without_using_terminology_services_to_validate_LOINC_SNOMED_ICDX_etc_Error__ = Incapaz de conectar al servicio terminológico. Use el parámetro ''-tx n/a'' para correr sin servicios terminológicos para validar LOINC, SNOMED, ICD-X etc. Error = {0}
|
||||
Display_Name_for__should_be_one_of__instead_of_one = El nombre de display para {1}#{2} debe ser ''{3}'', no ''{4}''
|
||||
Display_Name_for__should_be_one_of__instead_of_other = El nombre de display para {1}#{2} debe ser uno de estas opciones {0} de ''{3}'', no ''{4}''
|
||||
Unknown_Code__in_ = Código desconocido {0} en {1}
|
||||
UNKNOWN_CODE__IN_FRAGMENT = Código desconocido {0} en {1} - note que el sistema de codificación está etiquetado como fragmento, así que el código puede ser válido mas allá del fragmento
|
||||
Code_found_in_expansion_however_ = El código se encontró en la expansión, sin embargo: {0}
|
||||
None_of_the_provided_codes_are_in_the_value_set_ = Ninguno de los códigos provistos está en el conjunto de valores {0}
|
||||
Coding_has_no_system__cannot_validate = El Coding no tiene sistema - no puede ser validado
|
||||
Unable_to_handle_system__concept_filter_with_op__ = Incapaz de manejar el sistema {0} filtro de concepto con op = {1}
|
||||
Unable_to_handle_system__filter_with_property__ = Incapaz de manejar el sistema {0} filtro con property = {1}
|
||||
Unable_to_resolve_system__value_set_has_include_with_no_system = Incapaz de resolver el sistema - conjunto de valores {0} include #{1} no tiene system
|
||||
Unable_to_resolve_system__value_set_has_include_with_unknown_system = Incapaz de resolver el sistema - conjunto de valores {0} include #{1} tiene system {2} desconocido, y el servidor devuelve error {3}
|
||||
Unable_to_resolve_system__value_set_has_include_with_filter = Incapaz de resolver el sistema - conjunto de valores {0} include #{1} tiene un filtro en system {2}
|
||||
Unable_to_resolve_system__value_set_has_imports = Incapaz de resolver el sistema - el conjunto de valores tiene imports
|
||||
Unable_to_resolve_system__value_set_has_multiple_matches = Incapaz de resolver el sistema - el conjunto de valores expandido tiene multiples coincidencias: {0}
|
||||
Unable_to_resolve_system__value_set_has_no_includes_or_expansion = Incapaz de resolver el sistema - el conjunto de valores {0} no tiene include o expansio
|
||||
Unable_to_resolve_system__no_value_set = Incapaz de resolver el sistema - no tiene conjunto de valores
|
||||
This_base_property_must_be_an_Array_not_ = Esta propiedad base debe ser un Array, no {0}
|
||||
This_property_must_be_an_Array_not_ = Esta propiedad debe ser un Array, no {0}
|
||||
documentmsg = (documento)
|
||||
xml_attr_value_invalid = El atributo XML {0} tiene un caracter inválido
|
||||
xml_encoding_invalid = La codificación de XML es inválida (debe ser UTF-8)
|
||||
xml_stated_encoding_invalid = La codificación de XML declarada en la cabecera es inválida (debe ser ''UTF-8'' si se declara)
|
||||
XHTML_URL_INVALID = La URL no es válida porque ''({1})'': {0}
|
||||
MEASURE_MR_GRP_NO_CODE = El grupo debe tener un código que coincide con la definición del grupo en la medida
|
||||
MEASURE_MR_GRP_UNK_CODE = El código para este grupo no tiene coincidencia en la definición de la medida
|
||||
MEASURE_MR_GRP_DUPL_CODE = El código para este grupo está duplicado con otro grupo
|
||||
MEASURE_MR_GRP_MISSING_BY_CODE = El MeasureReport no incluye un grupo para el grupo {0}
|
||||
MEASURE_MR_GRP_NO_USABLE_CODE = Ninguno de los códigos provistos se puede utilizar para comparar - necesita completar system y code en al menos un elemento code
|
||||
MEASURE_MR_GRP_NO_WRONG_CODE = El codigo provisto ({0}) no coincide con el codigo definido para el reporte ({1})
|
||||
DUPLICATE_ID = Valor de id duplicado ''{0}''
|
||||
TERMINOLOGY_TX_SYSTEM_NO_CODE = Un código sin sistema no tiene un significado definido. El elemento system debe estar presente
|
||||
MEASURE_MR_GRP_POP_NO_CODE = El grupo debe tener un código que coincida con el código presente en la definicion poblacional incluida en la medida
|
||||
MEASURE_MR_GRP_POP_UNK_CODE = El código para este grupo de población no coincide con ninguno en la definición de la medida
|
||||
MEASURE_MR_GRP_POP_DUPL_CODE = El código para este grupo poblacional está duplicado en otro grupo
|
||||
MEASURE_MR_GRP_POP_MISSING_BY_CODE = El recurso MeasureReport no incluye un grupo poblacional para el grupo {0}
|
||||
MEASURE_MR_GRP_POP_COUNT_MISMATCH = Discordania entre count {0} y la cantidad de pacientes {1}
|
||||
MEASURE_MR_GRP_POP_NO_SUBJECTS = Reportes donde el tipo es ''subject-list'' no tiene pacientes listados
|
||||
MEASURE_MR_GRP_POP_NO_COUNT = Count debe estar preseente para reportes donde el tipo es ''subject-list''
|
||||
MEASURE_M_NO_GROUPS = Una medida debe contener como mínimo un grupo
|
||||
MEASURE_M_GROUP_CODE = Los grupos deben tener códigos donde hay mas de un grupo
|
||||
MEASURE_M_GROUP_POP = Los grupos de las medidas deben definir al menos una población
|
||||
MEASURE_M_GROUP_STRATA = Los grupos de las medidas deben tener al menos un estratificador
|
||||
MEASURE_M_GROUP_POP_NO_CODE = Un grupo de poblacion en una medida debe tener un codigo cuando hay mas de una población definida
|
||||
MEASURE_M_GROUP_STRATA_NO_CODE = Un estratificador de un grupo de medidas debe tener un codigo cuando hay mas de una población definida
|
||||
MEASURE_M_GROUP_STRATA_COMP_NO_CODE = Un componente de un estratificador de un grupo de medidas debe tener un codigo cuando hay mas de una población definida
|
||||
MEASURE_M_LIB_UNKNOWN = La Library {0} no pudo ser resuelta, asi que la expresión de validación puede no ser correcta
|
||||
TYPE_SPECIFIC_CHECKS_CANONICAL_ABSOLUTE = Las URL canónicas deben ser URLs absolutas si no son fragmentos de referencias ({0})
|
||||
TYPE_SPECIFIC_CHECKS_CANONICAL_CONTAINED = Las URL canónicas en recursos contenidos deben ser URLs absolutas si están presentes ({0})
|
||||
MEASURE_MR_SCORE_PROHIBITED_RT = No deberia haber measureScore donde el tipo de reporte es ''data-collection''
|
||||
MEASURE_MR_SCORE_PROHIBITED_MS = No deberia haber measureScore cuando el scoring del mensaje es ''cohort''
|
||||
MEASURE_MR_SCORE_REQUIRED = Se requiere un elemento measureScore cuando Measure.scoring={0}
|
||||
MEASURE_MR_M_SCORING_UNK = El sistema de scoring en esta medida es desconocido por lo que el valor de measureScore no puede ser verificado
|
||||
MEASURE_MR_SCORE_UNIT_PROHIBITED = Un measureScore para esta Measure Scoring ({0}) no deberia tener unidades
|
||||
MEASURE_MR_SCORE_VALUE_REQUIRED = Se requiere un valor cuando Measure.scoring = {0}
|
||||
MEASURE_MR_SCORE_VALUE_INVALID_01 = El valor es inválido - debe ser entre 0 y 1
|
||||
MEASURE_MR_SCORE_FIXED = Este valor está fijado por el recurso Measure a {0}
|
||||
MEASURE_MR_SCORE_UNIT_REQUIRED = La unidad debe estar presente cuando el tipo de scoring es {0}
|
||||
MEASURE_M_CRITERIA_UNKNOWN = El lenguaje para expresiones {0} no es soportado, asi que no puede ser validado
|
||||
MEASURE_M_CQL_NOT_FOUND = Ninguna de las bibliotecas CQL define un una función {0}
|
||||
MEASURE_M_CRITERIA_CQL_NO_LIB = No CQL Libraries found on this Measure
|
||||
MEASURE_M_CRITERIA_CQL_ONLY_ONE_LIB = Si la expresión CQL no incluye un espacio de nombres solo puede haber un Library para la medida
|
||||
MEASURE_M_CRITERIA_CQL_LIB_NOT_FOUND = No hay Library para el espacio de nombres {0}
|
||||
MEASURE_M_CRITERIA_CQL_LIB_DUPL = Multiples bibliotecas encontradas para el espacio de nombres {0}
|
||||
MEASURE_M_CRITERIA_CQL_ERROR = Error en {0}: ''{1}''
|
||||
MEASURE_M_CRITERIA_CQL_NO_ELM = Error en {0}: No se encontreo una versión compilada de CQL
|
||||
MEASURE_M_CRITERIA_CQL_ELM_NOT_VALID = = Error en {0}: La versión compilada de CQL no es válida
|
||||
MEASURE_M_CRITERIA_CQL_NOT_FOUND = La función {1} no existe en la biblioteca {0}
|
||||
XHTML_URL_EMPTY = La URL está vacía
|
||||
XHTML_URL_INVALID_CHARS_one = La URL contiene Caracteres Inválidos ({1})
|
||||
XHTML_URL_INVALID_CHARS_other = La URL contiene {0} Caracteres Inválidos ({1})
|
||||
TERMINOLOGY_TX_SYSTEM_HTTPS = La URL de sistema ''{0}'' comienza erróneamente con https: en lugar de http:
|
||||
CODESYSTEM_CS_NO_VS_NOTCOMPLETE = Revisar odos los conjuntos de valores All Codes - los CodeSystems incompletos no deberian tener especificado ''All Codes''
|
||||
TYPE_SPECIFIC_CHECKS_DT_IDENTIFIER_IETF_SYSTEM_VALUE = si identifier.system es ''urn:ietf:rfc:3986'', entonces identifier.value debe ser un URI completo (debe empezar con un scheme)
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_SIZE_INVALID = El tamaño declarado del adjunto {0} no es válido
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_SIZE_CORRECT = El tamaño declarado del adjunto {0} no coincide con el tamaño verdadero del adjunto {1}
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_NO_FETCHER = El tamaño declarado del adjunto no puede ser verificado porque el validador no puede acceder a la red (url = {0})
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_UNKNOWN_URL_SCHEME = El tamaño declarado del adjunto no puede ser verificado porquethe el validador no entiend como acceder a {0}
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_URL_ERROR = El tamaño declarado del adjunto no puede ser verificado porque hubo un error accediendo a {0}: {1}
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_TOO_LONG = El tamaño declarado del adjunto {0} bytes lo cual excede el límite de {1} bytes
|
||||
TYPE_SPECIFIC_CHECKS_DT_ATT_NO_CONTENT = Los adjuntos tienen datos y/o url, o sino DEBEN tener contentType y/o language
|
||||
TYPE_SPECIFIC_CHECKS_DT_BASE64_TOO_LONG = El tamaño del Base64 es {0} bytes lo cual excede el límite definido de {1} bytes
|
||||
TYPE_SPECIFIC_CHECKS_DT_DECIMAL_CHARS = Se encontraron {0} posiciones decimales lo cual excede el límite definido de {1} dígitos
|
||||
Validation_VAL_Profile_WrongType = El tipo de perfil especificado fue ''{0}'' en el perfil ''{2}'', pero se han encontrado tipo ''{1}''
|
||||
Validation_VAL_Profile_WrongType2 = Disonancia de tipos procesando el perfil {0} en el path {1}: El tipo de elemento es {4}, pero el perfil {3} es para un tipo diferente {2}
|
||||
VALIDATION_VAL_ILLEGAL_TYPE_CONSTRAINT = Restricción inválida en el perfil {0} en el path {1} - no se puede restringir a tipo {2} desde los tipos base {3}
|
||||
EXTENSION_EXTP_CONTEXT_WRONG_XVER = La extensión {0} de la versión FHIR {3} no se puede utilizar en este punto (permitido = {1}; este elemento es [{2}; esto es una advertencia ya que los contextos pueden haber sido renombrados entre versiones de FHIR)
|
||||
EXTENSION_EXTM_CONTEXT_WRONG_XVER = The modifier extension {0} from FHIR version {3} no se puede utilizar en este punto (permitido = {1}; este elemento es [{2}; esto es una advertencia ya que los contextos pueden haber sido renombrados entre versiones de FHIR)
|
||||
SECURITY_STRING_CONTENT_ERROR = El valor de la cadena contiene texto que parece ser etiquetas HTML embebidas, que no pueden ser incluidas por razones de seguridad en este contexto
|
||||
SECURITY_STRING_CONTENT_WARNING = El valor de la cadena contiene texto que parece ser etiquetas HTML embebidas. Si este contenido se presenta en HTML sin el procesamiento adecuado, puede ser un riesgo de seguridad
|
||||
ALL_OK = TODO OK
|
||||
SEARCHPARAMETER_NOTFOUND = Imposible encontrar el parámetro de búsqueda base {0} asi que no puede validarse que este SearchParameter sea una derivacion correcta del mismo
|
||||
SEARCHPARAMETER_BASE_WRONG = El tipo de recurso {1} no está listado como base en el SearchParameter está derivado de ({0})
|
||||
SEARCHPARAMETER_TYPE_WRONG = El tipo {1} es diferente al tipo {0} en el SearchParameter derivado
|
||||
SEARCHPARAMETER_EXP_WRONG = La expresión ''{2}'' no es compatible con la expresión ''{1}'' en el SearchParameter derivedFrom {0}, y esto indica que la relación de derivación no es válida
|
||||
VALUESET_NO_SYSTEM_WARNING = No se especifica System, así que los Conceptos y Filtros no pueden ser verificados
|
||||
VALUESET_INCLUDE_INVALID_CONCEPT_CODE = El código {1} no es válido en el sistema {0}
|
||||
VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER = El código {2} no es válido en el sistema {0} versión {1}
|
||||
VALUESET_UNC_SYSTEM_WARNING = Se especificó el sistema desconocido ''{0}'', así que los Conceptos y Filtros no pueden ser verificados (Detalles: {1})
|
||||
VALUESET_UNC_SYSTEM_WARNING_VER = Se especificó un sistema/versión desconocido ''{0}'', así que los Conceptos y Filtros no pueden ser verificados (Detalles: {1})
|
||||
Extension_PROF_Type = La definición del perfil ''{0}'' permite el tipo {1} pero se han encontrado tipo {2}
|
||||
TYPE_CHECKS_PATTERN_CC = El patrón [system {0}, code {1}, y display ''{2}''] definidos en el perfil {3} no se han encontrado. Problemas: {4}
|
||||
TYPE_CHECKS_PATTERN_CC_US = El patrón [system {0}, code {1}, display ''{2}'' y userSelected {5}] definidos en el perfil {3} no se han encontrado. Problemas: {4}
|
||||
TYPE_CHECKS_FIXED_CC = El patrón [system {0}, code {1}, y display ''{2}''] definidos en el perfil {3} no se han encontrado. Problemas: {4}
|
||||
TYPE_CHECKS_FIXED_CC_US = El patrón [system {0}, code {1}, display ''{2}'' y userSelected {5}] definidos en el perfil {3} no se han encontrado. Problemas: {4}
|
||||
VALIDATION_VAL_GLOBAL_PROFILE_UNKNOWN = La referencia al perfil global ''{0}'' desde la IG {1} no pudo ser resuelta asi que no ha sido verificada
|
||||
VALIDATION_VAL_PROFILE_SIGNPOST_BASE = Validar el recurso contra el perfil
|
||||
VALIDATION_VAL_PROFILE_SIGNPOST = Validar el recurso contra el perfil {0}
|
||||
VALIDATION_VAL_PROFILE_SIGNPOST_META = Validar el recurso contra el perfil {0} (por el elemento meta)
|
||||
VALIDATION_VAL_PROFILE_SIGNPOST_DEP = Validar el recurso contra el perfil {0} (por http://hl7.org/fhir/StructureDefinition/structuredefinition-dependencies en {1})
|
||||
VALIDATION_VAL_PROFILE_SIGNPOST_BUNDLE_PARAM = Validar el recurso contra el perfil {0} - provisto como un parámetro del bundle
|
||||
VALIDATION_VAL_PROFILE_SIGNPOST_GLOBAL = Validar el recurso contra el perfil {0} - un perfil global en {1}
|
||||
ERROR_GENERATING_SNAPSHOT = Error generando el Snapshot: {0} (esto usualmente ocurre por problemas en el diferencial)
|
||||
SNAPSHOT_EXISTING_PROBLEM = El snapshot generado tiene una cantidad de elementos distinta {1} que el snapshot originalmente provisto {0}
|
||||
FHIRPATH_LOCATION = (en {0})
|
||||
FHIRPATH_UNKNOWN_CONTEXT = Contexto desconocido evaluando la expresión FHIRPath: {0}
|
||||
FHIRPATH_UNKNOWN_CONTEXT_ELEMENT = Elemento de contexto desconocido evaluando la expresión FHIRPath: {0}
|
||||
FHIRPATH_ALIAS_COLLECTION = Intento de generar un alias para una colección, no un singleton evaluando una expresión FHIRPath
|
||||
FHIRPATH_UNKNOWN_NAME = Error evaluando la expresión FHIRPath: El nombre {0} no es válido para ninguno de los posibles tipos: {1}
|
||||
FHIRPATH_UNKNOWN_CONSTANT = Error evaluando la expresión FHIRPath: Constante FHIR Inválida {0}
|
||||
FHIRPATH_CANNOT_USE = Error evaluando la expresión FHIRPath: No puede utilizar {0} en este contexto porque {1}
|
||||
FHIRPATH_CANT_COMPARE = Error evaluando la expresión FHIRPath: No se pueden comparar valores de tipo {0} y {1}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_LEFT_VALUE_one =
|
||||
FHIRPATH_LEFT_VALUE_other = Error evaluando la expresión FHIRPath: el operando a la izquierda de {1} puede tener solo 1 valor pero tiene {0} valores
|
||||
FHIRPATH_LEFT_VALUE_WRONG_TYPE = Error evaluando la expresión FHIRPath: el operando a la izquierda de {0} tiene el tipo incorrecto {1}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_RIGHT_VALUE_one =
|
||||
FHIRPATH_RIGHT_VALUE_other = Error evaluando la expresión FHIRPath: el operando a la derecha de {1} puede tener solo 1 valor pero tiene {0} valores
|
||||
FHIRPATH_RIGHT_VALUE_WRONG_TYPE = Error evaluando la expresión FHIRPath: el operando a la derecha de {0} tiene el tipo incorrecto {1}
|
||||
FHIRPATH_OP_INCOMPATIBLE = Error evaluating FHIRPath expression {0}: los operandos a la izquierda y a la derecha tienen tipos incompatibles o inválidos ({1}, {2})
|
||||
FHIRPATH_HO_HOST_SERVICES = Internal Error evaluando la expresión FHIRPath: No se proveen servicios de host ({0})
|
||||
FHIRPATH_WRONG_PARAM_TYPE = Error evaluando la expresión FHIRPath: El tipo de parametro {2} no es válido para {0} parametro {1}. esperando {3}
|
||||
FHIRPATH_ORDERED_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para colecciones ordenadas
|
||||
FHIRPATH_REFERENCE_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para los tipos string, uri, canonical or Reference pero se han encontrado {1}
|
||||
FHIRPATH_CODED_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para los tipos string, code, uri, Coding, CodeableConcept pero se han encontrado {1}
|
||||
FHIRPATH_STRING_ORD_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para colecciones ordenadas de tipo string, uri, code, id pero se han encontrado {1}
|
||||
FHIRPATH_STRING_SING_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para string, uri, code, id pero se han encontrado {1}
|
||||
FHIRPATH_NO_COLLECTION = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para un valor singleton, pero se han encontrado {1}
|
||||
FHIRPATH_NOT_IMPLEMENTED = Error evaluando la expresión FHIRPath: La función {0} no fue implementada
|
||||
FHIRPATH_PARAM_WRONG = Error evaluando la expresión FHIRPath: El tipo de expresión {0} no está soportado {1} para la función {2}
|
||||
FHIRPATH_CHECK_FAILED = Error evaluando la expresión FHIRPath: La verificación {0} falló
|
||||
FHIRPATH_NO_TYPE = Error evaluando la expresión FHIRPath: El tipo ''{0}'' es desconocido o no soportado en {1}
|
||||
FHIRPATH_DISCRIMINATOR_NAME_ALREADY_SLICED = Error en el discriminador en {0}: se encontró un elemento particionado mientras se resolvía un valor fijo para una de las particiones
|
||||
FHIRPATH_DISCRIMINATOR_THIS_CANNOT_FIND = Problema con el uso de resolve() - el perfil {0} en {1} no pudo ser resuelta
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_NO_TYPE = uso ilegal de resolve() en el discriminador - elemento sin tipo en {0}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_MULTIPLE_TYPES_one =
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_MULTIPLE_TYPES_other = Uso Ilegal de resolve() en el discriminador - {0} tipos posibles en {1} (puede ser uno solo)
|
||||
FHIRPATH_DISCRIMINATOR_RESOLVE_NOT_REFERENCE = Uso Ilegal de resolve() en el discriminador - el tipo en {0} no es Reference {1}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_NO_TARGET_one =
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_NO_TARGET_other = Uso Ilegal de resolve() en el discriminador - {0} perfiles destino posibles de tipo en {1} (solo puede ser uno)
|
||||
FHIRPATH_RESOLVE_DISCRIMINATOR_CANT_FIND = Problema con el uso de resolve() - el perfil {0} en {1} no pudo ser resuelta
|
||||
FHIRPATH_DISCRIMINATOR_TYPE_NONE = Uso ilegal de ofType() en el discriminador - no hay tipo en el elemento {0}
|
||||
FHIRPATH_DISCRIMINATOR_TYPE_MULTIPLE = Uso ilegal de ofType() en el discriminador- Multiples posibles tipos en {0}
|
||||
FHIRPATH_DISCRIMINATOR_NO_CODE = Uso ilegal de ofType() en el discriminador - Type no tiene codigo en {0}
|
||||
FHIRPATH_DISCRIMINATOR_BAD_NAME = Nombre de función ilegal {0}() en el discriminador
|
||||
FHIRPATH_DISCRIMINATOR_BAD_SYNTAX_GROUP = expresión sintáctica ilegal en el discriminador (group ''{0}'')
|
||||
FHIRPATH_DISCRIMINATOR_BAD_SYNTAX_CONST = expresión sintáctica ilegal en el discriminador (const)
|
||||
FHIRPATH_DISCRIMINATOR_CANT_FIND = Imposible resolver el discriminador en las definiciones: {0} en el perfil {1} en el elemento {2}, buscando en el perfil {3}
|
||||
FHIRPATH_DISCRIMINATOR_CANT_FIND_EXTENSION = Imposible resolver el discriminador{0} en {2} encontrado en las definiciones porque la extension {1} no ha sido encontrada en el perfil {3}
|
||||
FHIRPATH_DISCRIMINATOR_NOTYPE = Error en el discriminador en {0}: no tiene hijos ni tipo
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_DISCRIMINATOR_MULTIPLE_TYPES_one =
|
||||
FHIRPATH_DISCRIMINATOR_MULTIPLE_TYPES_other = Error en el discriminador en {1}: no tiene hijos , {0} tipos
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_DISCRIMINATOR_MULTIPLE_PROFILES_one =
|
||||
FHIRPATH_DISCRIMINATOR_MULTIPLE_PROFILES_other = Error en el discriminador en {1}: no tiene hijos, {0} perfiles de tipo
|
||||
FHIRPATH_UNABLE_BOOLEAN = Imposible evaluar como boolean : {0}
|
||||
XHTML_XHTML_DOCTYPE_ILLEGAL = XHTML Malformado: Se encontró una declaración DocType, y no están permitidas (Protección contra la Vulnerabilidad de seguridad XXE)
|
||||
PACKAGE_VERSION_MISMATCH = Discordancia de versión de FHIR en el paquete {0}: la versión es {2} pero debe ser {1} (path: {3})
|
||||
VALUESET_REFERENCE_UNKNOWN = El conjunto de valores a importar {0} no pudo ser encontrado por lo que no puede verificarse
|
||||
VALUESET_REFERENCE_INVALID_TYPE = The conjunto de valores a importar {0} apunta a un recurso de tipo {1} que no es válido
|
||||
SD_MUST_HAVE_DERIVATION = El recurso StructureDefinition {0} debe tener una derivación, ya que tiene un elemento baseDefinition
|
||||
VALIDATION_VAL_PROFILE_OTHER_VERSION = El perfil es para una versión diferente de FHIR ({0}) así que fue ignorado
|
||||
VALIDATION_VAL_PROFILE_THIS_VERSION_OK = El perfil es para esta versión de FHIR- Todo OK
|
||||
VALIDATION_VAL_PROFILE_THIS_VERSION_OTHER = El perfil es para esta versión de FHIR, pero es de tipo inválido {0}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
BUNDLE_BUNDLE_ENTRY_MULTIPLE_PROFILES_one =
|
||||
BUNDLE_BUNDLE_ENTRY_MULTIPLE_PROFILES_other = {0} perfiles encontrados para el recurso {1}. No hay soporte para más de uno por el monmento. (Type {2}: {3})
|
||||
RENDER_BUNDLE_HEADER_ROOT = Bundle {0} De tipo {1}
|
||||
RENDER_BUNDLE_HEADER_ENTRY = Entry {0}
|
||||
RENDER_BUNDLE_HEADER_ENTRY_URL = Entry {0} - FullURL = {1}
|
||||
RENDER_BUNDLE_RESOURCE = Recurso {0}:
|
||||
RENDER_BUNDLE_SEARCH = Búsqueda:
|
||||
RENDER_BUNDLE_SEARCH_MODE = mode = {0}
|
||||
RENDER_BUNDLE_SEARCH_SCORE = score = {0}
|
||||
RENDER_BUNDLE_RESPONSE = Respuesta:
|
||||
RENDER_BUNDLE_LOCATION = Location = {0}
|
||||
RENDER_BUNDLE_ETAG = ETag = {0}
|
||||
RENDER_BUNDLE_LAST_MOD = LastModified = {0}
|
||||
RENDER_BUNDLE_REQUEST = Request:
|
||||
RENDER_BUNDLE_IF_NON_MATCH = If-None-Match = {0}
|
||||
RENDER_BUNDLE_IF_MOD = If-Modified-Since = {0}
|
||||
RENDER_BUNDLE_IF_MATCH = If-Match = {0}
|
||||
RENDER_BUNDLE_IF_NONE = If-None-Exist = {0}
|
||||
BUNDLE_RULE_NONE = Sin reglas
|
||||
BUNDLE_RULE_UNKNOWN = LA regla del Bundle refiere a un recurso inválido {0}
|
||||
BUNDLE_RULE_INVALID_INDEX = El indice de la regla de Bundle no es válido ({0})
|
||||
BUNDLE_RULE_PROFILE_UNKNOWN = El perfil de reglas del Bundle {1} es desconocido para {0}
|
||||
RENDER_BUNDLE_DOCUMENT_CONTENT = Contenido adicional del documento
|
||||
RENDER_BUNDLE_HEADER_DOC_ENTRY_URD = {0}. {1} ({2}/{3})
|
||||
RENDER_BUNDLE_HEADER_DOC_ENTRY_U = {0}. {1}
|
||||
RENDER_BUNDLE_HEADER_DOC_ENTRY_RD = {0}. {2}/{3}
|
||||
UNABLE_TO_CHECK_IF_THE_PROVIDED_CODES_ARE_IN_THE_VALUE_SET_ = Imposible determinar si los códigos provistos están en el conjunto de valores {0} porque el conjunto de valores o un sistema de codificación del que depende es desconocido por el validador
|
||||
TERMINOLOGY_TX_SYSTEM_WRONG_HTML = La referencia al sistema de codificación {0} es errónea - no puede apuntar a una página HTML. Esta puede ser la referencia correcta: {1}
|
||||
TERMINOLOGY_TX_SYSTEM_WRONG_BUILD = La referencia al sistema de codificación {0} es errónea - no puede apuntar a build.fhir.org. Esta puede ser la referencia correcta: {1}
|
||||
FHIRPATH_BAD_DATE = Imposible analizar el elemento Date {0}
|
||||
FHIRPATH_NUMERICAL_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para los tipos integer, decimal o Quantity pero se han encontrado {1}
|
||||
FHIRPATH_DECIMAL_ONLY = Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para un elemento decimal pero se han encontrado {1}
|
||||
FHIRPATH_CONTINUOUS_ONLY= Error evaluando la expresión FHIRPath: La función {0} solo puede ser utilizada para un elemento decimal o fecha pero se han encontrado {1}
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
FHIRPATH_FOCUS_one =
|
||||
FHIRPATH_FOCUS_other = Error evaluando la expresión FHIRPath: el foco para {0} puede tener solo un valor, pero tiene {0} valores
|
||||
REFERENCE_REF_SUSPICIOUS = La sintaxis de la referencia ''{0}'' parece incorrecta y debe ser verificada
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_NO_ANNOTATIONS = Los códigos UCUM que contiene anotaciones legibles por humanos como {0} pueden ser engañosas. La mejor práctica es no usar anotaciones en los códigos UCUM, y asegurarse que Quantity.unit es correctamente legible por humanos
|
||||
XHTML_XHTML_ELEMENT_ILLEGAL_IN_PARA = Nombre de elemento ilegal en un párrafo en el XHTML (''{0}'')
|
||||
UNSUPPORTED_IDENTIFIER_PATTERN_PROPERTY_NOT_SUPPORTED_FOR_DISCRIMINATOR_FOR_SLICE = Propiedad no soportada {3} en el tipo {2} para el patron del discriminador ({0}) para la partición {1}
|
||||
UNSUPPORTED_IDENTIFIER_PATTERN_NO_PROPERTY_NOT_SUPPORTED_FOR_DISCRIMINATOR_FOR_SLICE = No soportado: no se han encontrado propiedades con valores en el tipo {2} para el patrón para el discriminador ({0}) para la partición {1}
|
||||
SD_NESTED_MUST_SUPPORT_DIFF = El elemento {0} tiene tipos/perfiles/destinos que están marcados como must-support pero el elemento en sí no está marcado como must-support. Los must-support internos serán ignorados a menos que que el elemento herede must-support = true
|
||||
SD_NESTED_MUST_SUPPORT_SNAPSHOT = El elemento {0} tiene tipos/perfiles/destinos que están marcados como must-support pero el elemento en sí no está marcado como must-support.
|
||||
Unable_to_connect_to_terminology_server = Imposible conectarse con el servidor terminológico. Error = {0}
|
||||
SD_ED_TYPE_PROFILE_UNKNOWN = Imposible resolver el perfil {0}
|
||||
SD_ED_TYPE_PROFILE_NOTYPE = Se encontró el perfil {0}, pero es imposible definir a que tipo aplica
|
||||
SD_ED_TYPE_PROFILE_WRONG = El perfil {0} es para el tipo {1}, pero el elemento {3} es de tipo {2}
|
||||
SD_ED_TYPE_PROFILE_IS_MODIFIER = El perfil {0} no es para una extensión modificante pero el elemento {3} es un modificador
|
||||
SD_ED_TYPE_PROFILE_NOT_MODIFIER = El perfil {0} es para una extensión modificante pero el elemento {3} no es un modificador
|
||||
SD_ED_TYPE_PROFILE_WRONG_TARGET = El perfil {0} es para tipo {1}, que no es un {4} (que es requerido porque el elemento {3} es de tipo {2})
|
||||
SD_ED_TYPE_NO_TARGET_PROFILE = El tipo {0} no permite perfiles destino
|
||||
TERMINOLOGY_TX_NOSVC_BOUND_REQ = No se pudo confirmar que los códigos provistos pertenezcan al conjunto de valores requerido {0} porque no hay servicio terminológico
|
||||
TERMINOLOGY_TX_NOSVC_BOUND_EXT = No se pudo confirmar que los códigos provistos pertenezcan al conjunto de valores extensible {0} porque no hay servicio terminológico
|
||||
ARRAY_CANNOT_BE_EMPTY = El vector no puede estar vacío - la propiedad no debe estar presente si no tiene valores
|
||||
XHTML_URL_DATA_NO_DATA = Sin datos en el elemento data de la URL
|
||||
XHTML_URL_DATA_DATA_INVALID_COMMA = Una coma encontrada en el elemento data de la URL: {0}
|
||||
XHTML_URL_DATA_DATA_INVALID = El elemento data debe ser contenido base64 válido URL: {0}
|
||||
XHTML_URL_DATA_MIMETYPE = La porción mimetype de data: URL no es válido ({1}) en la URL: {0}
|
||||
SD_ED_SHOULD_BIND = El elemento {0} tiene un tipo que deberia tener una vinculación terminológica ({1}), pero no está presente
|
||||
SD_ED_SHOULD_BIND_WITH_VS = El elemento {0} tiene un tipo que deberia tener una vinculación terminológica ({1}), pero no tiene definido conjunto de valores
|
||||
SD_ED_BIND_UNKNOWN_VS = La referencia al ValueSet {1} en el elemento {0} no pudo ser resuelta
|
||||
SD_ED_BIND_NOT_VS = La referencia al ValueSet {1} en el elemento apunta a algo que no es un conjunto de valores ({2})
|
||||
SD_ED_BIND_NO_BINDABLE = El elemento {0} tiene una vinculación, pero no se encuentran tipos vinculables {1}
|
||||
SD_ED_BIND_MULTIPLE_TYPES = El elemento {0} tiene una vinculación, y tiene multiples tipos sujetos a ser vinculados ({1}). La vinculación aplicará a todos los elementos contenidos
|
||||
DISCRIMINATOR_BAD_PATH = Error procesando la expresión para el discriminador: {0} (src = ''{1}'')
|
||||
SLICING_CANNOT_BE_EVALUATED = La partición no pudo ser evaluada: {0}
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_RESOLVE = La URL Canónica ''{0}'' no puede resolverse
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_RESOLVE_NC = La URL Canónica ''{0}'' existe pero no puede cargarse, por lo que no puede utilizarse para validación
|
||||
TYPE_SPECIFIC_CHECKS_DT_CANONICAL_TYPE = La URL Canónica''{0}'' refiere a un recurso del tipo erróneo. Se encontró {1} esperando uno de {2}
|
||||
CODESYSTEM_CS_NO_SUPPLEMENT = CodeSystem {0} es un suplemento, asi que no puede usarse en Coding.system
|
||||
CODESYSTEM_CS_SUPP_CANT_CHECK = CodeSystem {0} no se pudo encontrar, por lo que no puede verificarse la validez de los conceptos
|
||||
CODESYSTEM_CS_SUPP_INVALID_CODE = El código ''{1}'' no se declaró en el CodeSystem base {0} asi que no es válido en el suplemento
|
||||
SD_VALUE_TYPE_IILEGAL = El elemento {0} tiene un {1} de tipo {2}, que no está en la lista de tipos permitidos ({3})
|
||||
SD_VALUE_TYPE_REPEAT_HINT = El elemento repetitivo tiene un {1}. El {1} aplicará a todas las repeticiones (esto no ha quedado claro para todos los usuarios)
|
||||
SD_VALUE_TYPE_REPEAT_WARNING_DOTNET = El elemento repetitivo tiene un valor {1} para un tipo primitivo. EL validador DotNet no aplicará esto a todas las repeticiones. Esto es un error
|
||||
SD_NO_TYPES_OR_CONTENTREF = El elemento {0} no tiene tipos asignados, y tampoco referencia a contenido alguno
|
||||
CODESYSTEM_CS_UNK_EXPANSION = El código provisto ({2}) no está en el conjunto de valores {0}, y se requiere un código de este conjunto de valores. El sistema {1} es desconocido.
|
||||
BUNDLE_SEARCH_NOSELF = Los Bundles de tipo searchset deben tener un vinculo de tipo self que especifique cual fue la búsqueda
|
||||
BUNDLE_SEARCH_SELF_NOT_UNDERSTOOD = No se han podido determinar tipos por la cadena de búsqueda, asi que los tipos no pueden ser validados
|
||||
BUNDLE_SEARCH_ENTRY_NO_RESOURCE = Las Entry en los Bundles de tipo searchset deben contener recursos
|
||||
BUNDLE_SEARCH_ENTRY_TYPE_NOT_SURE = Imposible determinar si este recurso es del tipo válido para esta búsqueda
|
||||
BUNDLE_SEARCH_ENTRY_NO_RESOURCE_ID = Los resultados de las búsquedas deben tener id
|
||||
BUNDLE_SEARCH_ENTRY_WRONG_RESOURCE_TYPE_MODE = Este no es un recurso coincidente con lo esperado para la búsqueda ({0} esperando {1})
|
||||
BUNDLE_SEARCH_ENTRY_WRONG_RESOURCE_TYPE_OUTCOME = Este no es un recurso OperationOutcome ({0})
|
||||
BUNDLE_SEARCH_ENTRY_WRONG_RESOURCE_TYPE_NO_MODE = Este no es un tipo de recurso coincidente para la búsqueda (¿hace falta un modo de búsqueda?) ({0} esperando {1})
|
||||
BUNDLE_SEARCH_NO_MODE = Los bundles de tipo searchset deben tener modos de busqueda en los elementos entry
|
||||
INV_FAILED = La regla {0} falló
|
||||
PATTERN_CHECK_STRING = El patrón [{0}] definido en el perfil {1} no fue encontrado. Problemas: {2}
|
||||
TYPE_SPECIFIC_CHECKS_DT_URL_EXAMPLE = No se permiten URLs de ejemplo en este contexto ({0})
|
||||
UNICODE_BIDI_CONTROLS_CHARS_DISALLOWED = La secuencia Unicode tiene caracteres de control bi-di que no se permiten en este contexto: {1}
|
||||
UNICODE_BIDI_CONTROLS_CHARS_MATCH = La secuencia Unicode tiene caracteres de control bi-di inconclusos (see CVE-2021-42574): {1}
|
||||
CODESYSTEM_CS_HL7_MISSING_ELEMENT_SHALL = Los CodeSystems definidos por HL7 DEBEN tener un valor definido para el elemento {0} para que los usuarios conozcan el estado y significado del sistema de codificación claramente
|
||||
CODESYSTEM_CS_HL7_MISSING_ELEMENT_SHOULD = Los CodeSystems definidos por HL7 DEBERIAN tener un valor definido para el elemento {0} para que los usuarios conozcan el estado y significado del sistema de codificación claramente
|
||||
CODESYSTEM_CS_NONHL7_MISSING_ELEMENT = Los CodeSystems no definidos por HL7 DEBERIAN tener un valor definido para el elemento {0} para que los usuarios conozcan el estado y significado del sistema de codificación claramente
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL = Los CodeSystems NO DEBERIAN tener un valor definido para el elemento {0} si son un suplemento
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL_WRONG = Los CodeSystem suplementarios DEBEN tener un valor de content = 'supplement'
|
||||
CODESYSTEM_CS_HL7_PRESENT_ELEMENT_SUPPL_MISSING = Los CodeSystem suplementarios con un valor de content = 'supplement' CodeSystem deben tener un elemento suplements que documenta cual es el code system que suplementan
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_NO_QTY = Encontrado {0} de tipo {2} en el perfil validando un elemento Quantity (para que sea un Quantity)
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_SYSTEM_MISMATCH = El elemento minValue en el perfil tiene un código de system de {0} que es distinto al valor en system {1} asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_CODE_MISMATCH = El elemento minValue en el perfil tiene un código de system code de {0} que es distinto al valor en system {1} asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_VALUE = El elemento minValue en el perfil no tiene un valor, asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_VALUE = La cantidad no tiene un valor, asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_SYSTEM = El minValue en el perfil no tiene system asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_SYSTEM = El valor no tiene sistema asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_CODE = El elemento minValue en el perfil no tiene codigo asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_NO_CODE = El valor no tiene código así que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_NO_UCUM_SVC = No hay servicio UCUM y los códigos UCUM no son idénticos, asi que el valor mínimo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_MIN_NO_CONVERT = Imposible convertir el valor {0} desde unidad {1} a la unidad del elemento minValue {2} basado en definiciones UCUM; el valor mínimo no es válido
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_WRONG = El valor en la instancia ({2}) es menor que el valor mínimo especificado ({3})
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MIN_VALUE_WRONG_UCUM = El valor en la instancia ({0} {1}) es menor que el valor mínimo especificado ({2} {3}) luego de la conversión UCUM
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_NO_QTY = Se encontró {0} de tipo {2} en el perfil validando una cantidad (debe ser de tipo Quantity)
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_SYSTEM_MISMATCH = El elemento maxValue en el perfil tiene un sistema {0} que es diferente al sistema en el valor {1} asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_CODE_MISMATCH = El elemento maxValue en el perfil tiene un codigo de sistema {0} que es distino al valor en system {1} asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_VALUE = El elemento maxValue en el perfil no tiene valor, asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_VALUE = La cantidad no tiene un valor, asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_SYSTEM = El elemento maxValue en el perfil no tiene system asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_SYSTEM = El elemento value no tiene system asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_CODE = El elemento maxValue en el perfil no tiene code asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_NO_CODE = El valor no tiene code asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_NO_UCUM_SVC = No hay servicio UCUM y los códigos UCUM no son idénticos, asi que el valor máximo no puede ser verificado
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_MIN_NO_CONVERT = Imposible convertir {0} de unidad {1} a la unidad del elemento maxValue {2} basado en definiciones UCUM; máximo valor no es válido
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_WRONG = El valor en la instancia ({2}) es mayor que el valor maximo especificado ({3})
|
||||
TYPE_SPECIFIC_CHECKS_DT_QTY_MAX_VALUE_WRONG_UCUM = El valor en la instancia ({0} {1}) es mayor que el valor del elemento maxValue ({2} {3}) luego de la conversión UCUM
|
||||
TYPE_SPECIFIC_CHECKS_DT_BASE64_NO_WS_ERROR = Los valores codificados con Base64 no pueden contener espacios en blanco (por RFC 4648). Notar que los lectores que no validan son invitados a aceptar espacio en blanco de todas maneras.
|
||||
TYPE_SPECIFIC_CHECKS_DT_BASE64_NO_WS_WARNING = Los valores codificados con Base64 no deberían contener espacios en blanco (por RFC 4648). Notar que los lectores que no validan son invitados a aceptar espacio en blanco de todas maneras.
|
||||
SD_DERIVATION_KIND_MISMATCH = La definición de estructura restringe una clase de {0}, pero hay una diferente ({1})
|
||||
VALUESET_IMPORT_UNION_INTERSECTION = Este conjunto de valores tiene un sólo include con multiples conjunto de valores importados. Según el item https://jira.hl7.org/browse/FHIR-25179, ha habido confusión en el pasado sobre si estos conjunto de valores se unen o intersectan. Si este conjunto de valores está contenido en un paquete publicado antes del 31-Marzo-2022, se tratará como una unión, sino como una intersección. Si desea una unión, parta el conjunto de valores importado entre multiples includes
|
||||
TX_SERVER_NO_BATCH_RESPONSE = El servidor devolvió null sobre una solicitud de validación en lote
|
||||
BUNDLE_POSSSIBLE_MATCHES = El Bundle no contiene una coincidencia para {1} según las reglas de la resolución de referencias en Bundles, pero tiene varios recursos que coinciden {0} por tipo de recurso e id
|
||||
BUNDLE_BUNDLE_POSSIBLE_MATCH_NO_FU = La Entry {0} coincide con la referencia {1} por tipo e id pero no coincide el fullUrl del destino {2} por reglas de resolución de Bundle
|
||||
BUNDLE_BUNDLE_POSSIBLE_MATCH_WRONG_FU = La Entry {0} coincide con la referencia {1} por tipo e id pero su fullUrl {2} no coincide el full Url del destino {3} por reglas de resolución de Bundle
|
||||
SD_ILLEGAL_CHARACTERISTICS = Este elemento tiene un {0} pero los tipos {1} no hacen que este tipo de restricción sea relevante
|
||||
SD_VALUE_COMPLEX_FIXED = Para el tipo complejo {0}, considere usar un patrón en lugar de un valor fijo para evitar restringir la instancia más allá de lo imprescindible
|
||||
VALUESET_SHAREABLE_MISSING = El perfil ShareableValueSet dice que el elemento {0} es obligatorio, pero no está presente. Los conjuntos de valores publicados DEBERIAN conformar al perfil ShareableValueSet
|
||||
VALUESET_SHAREABLE_EXTRA_MISSING = El perfil ShareableValueSet recomienda que el elemento {0} se complete, pero no está presente. Los conjuntos de valores publicados DEBERIAN conformar al perfil ShareableValueSet
|
||||
VALUESET_SHAREABLE_MISSING_HL7 = El perfil ShareableValueSet dice que el elemento {0} es obligatorio, pero no se encontró. Los conjuntos de valores publicados por HL7 DEBEN conformar al perfil ShareableValueSet
|
||||
VALUESET_SHAREABLE_EXTRA_MISSING_HL7 = El perfil ShareableValueSet recomienda que el elemento {0} se complete, pero no se encontró.Los conjuntos de valores publicados por HL7 DEBEN conformar al perfil ShareableValueSet
|
||||
CODESYSTEM_SHAREABLE_MISSING = El perfil ShareableValueSet dice que el elemento {0} es obligatorio, pero no está presente. Los conjuntos de valores publicados DEBERIAN conformar al perfil ShareableValueSet
|
||||
CODESYSTEM_SHAREABLE_EXTRA_MISSING = The ShareableCodeSystem profile recommends that the {0} element se complete, pero no está presente. Los conjuntos de valores publicados DEBERIAN conformar al perfil ShareableValueSet
|
||||
CODESYSTEM_SHAREABLE_MISSING_HL7 = El perfil ShareableValueSet dice que el elemento {0} es obligatorio, pero no se encontró. Los conjuntos de valores publicados por HL7 DEBEN conformar al perfil ShareableValueSet
|
||||
CODESYSTEM_SHAREABLE_EXTRA_MISSING_HL7 = El perfil ShareableValueSet recomienda que el elemento {0} se complete, pero no se encontró. Los conjuntos de valores publicados por HL7 DEBEN conformar al perfil ShareableValueSet
|
||||
MEASURE_SHAREABLE_MISSING = El perfil ShareableMeasure dice que el elemento {0} es obligatorio, pero no está presente. Las medidas publicadas DEBERIAN conformar al perfil ShareableMeasure
|
||||
MEASURE_SHAREABLE_EXTRA_MISSING = El perfil ShareableMeasure recomienda que el elemento {0} se complete, pero no está presente. Las medidas publicadas DEBERIAN conformar al perfil ShareableMeasure
|
||||
MEASURE_SHAREABLE_MISSING_HL7 = El perfil ShareableMeasure dice que el elemento {0} es obligatorio, pero no se encontró. Las medidas publicadas por HL7 DEBEN conformar al perfil ShareableMeasure
|
||||
MEASURE_SHAREABLE_EXTRA_MISSING_HL7 = El perfil ShareableMeasure recomienda que el elemento {0} se complete, pero no se encontró. Las medidas publicadas por HL7 DEBEN conformar al perfil ShareableMeasure
|
||||
TYPE_SPECIFIC_CHECKS_DT_MARKDOWN_HTML = El markdown tiene contenido que parece ser un tag de HTML embebido empezando en ''{0}''. Esto será (o DEBIERA ser) be transformado por la capa de presentación. El contenido debería ser verificado para confirmar que esta es la conducta deseada
|
||||
TYPE_SPECIFIER_ILLEGAL_TYPE = El especificador de tipo {1} especificó un tipo ilegal {0}
|
||||
TYPE_SPECIFIER_ABSTRACT_TYPE = El especificador de tipo {1} especificó un tipo abstracto {0}
|
||||
TYPE_SPECIFIER_NM_ILLEGAL_TYPE = Ningún especificador de tipo coincide, y el tipo subyacente {0} no es válido
|
||||
TYPE_SPECIFIER_NM_ABSTRACT_TYPE = Ningún especificador de tipo coincide, y el tipo subyacente {0} no es abstracto
|
||||
ELEMENT_CANNOT_BE_NULL = El elemento no puede ser 'null'
|
||||
#The following error cannot occur for a single item. _one case left intentionally blank.
|
||||
MULTIPLE_LOGICAL_MODELS_one=
|
||||
MULTIPLE_LOGICAL_MODELS_other={0} Modelos Lógicos encontrados en los perfiles provistos, asi que es imposible analizar el modelo lógico(puede ser solo uno, se encontraron {1})
|
||||
UNRECOGNISED_PROPERTY_TYPE = Tipo JSON inválido {0} para el elemento {1}; tipos válidos = {2}
|
||||
UNRECOGNISED_PROPERTY_TYPE_WRONG = Tipo inválido {2} para el elemento {1}; tipos válidos = {3}, tipo JSON = {0}
|
||||
SD_TYPE_MISSING = No se encontró tipo
|
||||
SD_TYPE_NOT_MATCH_NS = El espacio de nombres para el tipo {0} DEBERIA coincidir con el espacio de nombres de la url {1} para la definición del tipo
|
||||
SD_TYPE_NOT_DERIVED = El tipo {0} solo puede ser usado como tipo cuando se restringe la definición base del tipo
|
||||
SD_TYPE_NOT_LOCAL = El tipo {0} no es legal porque no está definida en la especificación FHIR. Otros tipos deben tener un espacio de nombres sobre ellos
|
||||
SD_TYPE_NOT_LOGICAL = El tipo {0} solo puede ser definido si la categoria es 'logical' no {1}
|
||||
SD_CONSTRAINED_TYPE_NO_MATCH = El tipo {0} debe ser el mismo en la estructura base {1} que está siendo restringida
|
||||
SD_SPECIALIZED_TYPE_MATCHES = El tipo {0} no debe ser la misma que el tipo en la estructura base {1} que se está especializando
|
||||
SD_CONSTRAINED_KIND_NO_MATCH = La clase {0} debe ser la misma {1} en la estructura base {3} (tipo base = {2})
|
||||
SD_PATH_TYPE_MISMATCH = El path {1} debe empezar con el tipo de la estructura {0}
|
@ -1,6 +1,12 @@
|
||||
package org.hl7.fhir.utilities;
|
||||
|
||||
import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
@ -8,12 +14,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
|
||||
|
||||
public class DateTimeUtilTests {
|
||||
|
||||
|
@ -1,18 +1,19 @@
|
||||
package org.hl7.fhir.utilities;
|
||||
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.xml.sax.SAXException;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
|
||||
public class DurationUtilTest {
|
||||
|
@ -1,6 +1,8 @@
|
||||
package org.hl7.fhir.utilities;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
@ -8,9 +10,7 @@ import java.io.PrintStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class FileFormatTest {
|
||||
@Test
|
||||
|
@ -1,11 +1,10 @@
|
||||
package org.hl7.fhir.utilities;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class SimpleHTTPClientTest {
|
||||
@Test
|
||||
|
@ -1,9 +1,6 @@
|
||||
package org.hl7.fhir.utilities;
|
||||
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -11,7 +8,10 @@ import java.nio.file.Paths;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Random;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class UtilitiesTest {
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
package org.hl7.fhir.utilities;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class VersionUtilitiesTest {
|
||||
|
||||
|
@ -1,10 +1,8 @@
|
||||
package org.hl7.fhir.utilities.i18n;
|
||||
|
||||
import com.ibm.icu.text.PluralRules;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
@ -12,12 +10,13 @@ import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class I18nBaseTest {
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
package org.hl7.fhir.utilities.i18n;
|
||||
|
||||
import com.ibm.icu.text.PluralRules;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.ibm.icu.text.PluralRules;
|
||||
|
||||
public class ICU4JTests {
|
||||
|
||||
|
@ -26,7 +26,7 @@ public class JsonParserTests {
|
||||
public void testComments2() throws IOException, JsonException {
|
||||
JsonObject obj = JsonParser.parseObject("{\n // some comment \n \"n1\" : \"v1\"\n}\n", true);
|
||||
Assertions.assertEquals(0, obj.getComments().size());
|
||||
JsonString c = obj.getString("n1");
|
||||
JsonString c = obj.getJsonString("n1");
|
||||
Assertions.assertEquals(1, c.getComments().size());
|
||||
Assertions.assertEquals("some comment", c.getComments().get(0));
|
||||
Assertions.assertEquals("{\"n1\":\"v1\"}", JsonParser.compose(obj, false));
|
||||
@ -38,7 +38,7 @@ public class JsonParserTests {
|
||||
JsonObject obj = JsonParser.parseObject("// some comment\n{\n \"n1\" : \"v1\"\n}\n", true);
|
||||
Assertions.assertEquals(1, obj.getComments().size());
|
||||
Assertions.assertEquals("some comment", obj.getComments().get(0));
|
||||
JsonString c = obj.getString("n1");
|
||||
JsonString c = obj.getJsonString("n1");
|
||||
Assertions.assertEquals(0, c.getComments().size());
|
||||
Assertions.assertEquals("{\"n1\":\"v1\"}", JsonParser.compose(obj, false));
|
||||
Assertions.assertEquals("// some comment\n{\n \"n1\" : \"v1\"\n}\n", JsonParser.compose(obj, true));
|
||||
|
@ -1,20 +1,16 @@
|
||||
package org.hl7.fhir.utilities.npm;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||
import org.hl7.fhir.utilities.tests.ResourceLoaderTests;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class PackageClientTest implements ResourceLoaderTests {
|
||||
|
||||
PackageClient packageClient = new PackageClient(PackageClient.PRIMARY_SERVER);
|
||||
@ -32,7 +28,7 @@ public class PackageClientTest implements ResourceLoaderTests {
|
||||
@Test
|
||||
@DisplayName("test getting package from JSON works")
|
||||
public void getPackageInfoFromJSONTest() throws java.io.IOException, URISyntaxException {
|
||||
final JsonObject jsonObject = new Gson().fromJson(new InputStreamReader(getResourceAsInputStream("npm","PackageClient-baseTestCase.json")), JsonObject.class);
|
||||
final JsonObject jsonObject = JsonParser.parseObject(getResourceAsInputStream("npm","PackageClient-baseTestCase.json"));
|
||||
final PackageInfo packageInfo = packageClient.getPackageInfoFromJSON(jsonObject, null, null, null);
|
||||
|
||||
assertExpectedFields(packageInfo);
|
||||
@ -41,7 +37,7 @@ public class PackageClientTest implements ResourceLoaderTests {
|
||||
@Test
|
||||
@DisplayName("test getting package from JSON works")
|
||||
public void getPackageInfoWithIdFromJSONTest() throws java.io.IOException {
|
||||
final JsonObject jsonObject = new Gson().fromJson(new InputStreamReader(getResourceAsInputStream("npm", "PackageClient-testCaseWithId.json")), JsonObject.class);
|
||||
final JsonObject jsonObject = JsonParser.parseObject(getResourceAsInputStream("npm", "PackageClient-testCaseWithId.json"));
|
||||
final PackageInfo packageInfo = packageClient.getPackageInfoFromJSON(jsonObject, null, null, null);
|
||||
|
||||
assertExpectedFields(packageInfo);
|
||||
|
@ -1,14 +1,14 @@
|
||||
package org.hl7.fhir.utilities.tests;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.hl7.fhir.utilities.npm.CachingPackageClient;
|
||||
import org.hl7.fhir.utilities.npm.CommonPackages;
|
||||
import org.hl7.fhir.utilities.npm.PackageInfo;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public class CachingPackageClientTests {
|
||||
|
||||
private static final String SERVER1 = "http://packages.fhir.org";
|
||||
|
@ -1,5 +1,9 @@
|
||||
package org.hl7.fhir.utilities.tests;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.hl7.fhir.utilities.Utilities;
|
||||
import org.hl7.fhir.utilities.npm.CommonPackages;
|
||||
import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager;
|
||||
@ -8,10 +12,6 @@ import org.hl7.fhir.utilities.npm.ToolsVersion;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public class PackageCacheTests {
|
||||
|
||||
@Test
|
||||
|
@ -1,17 +1,12 @@
|
||||
package org.hl7.fhir.utilities.tests;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.transform.TransformerException;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.hl7.fhir.exceptions.FHIRException;
|
||||
import org.hl7.fhir.utilities.xls.XLSXmlNormaliser;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
@ -1,5 +1,9 @@
|
||||
package org.hl7.fhir.utilities.tests;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
|
||||
import org.hl7.fhir.exceptions.FHIRException;
|
||||
import org.hl7.fhir.exceptions.FHIRFormatError;
|
||||
import org.hl7.fhir.utilities.xhtml.XhtmlNode;
|
||||
@ -9,10 +13,6 @@ import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
|
||||
public class XhtmlNodeTest {
|
||||
|
||||
private static final Logger ourLog = LoggerFactory.getLogger(XhtmlNodeTest.class);
|
||||
|
@ -1,13 +1,13 @@
|
||||
package org.hl7.fhir.utilities.tests.execution;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.hl7.fhir.utilities.tests.execution.junit4.JUnit4TestExecutor;
|
||||
import org.hl7.fhir.utilities.tests.execution.junit5.JUnit5ModuleTestExecutor;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class ModuleTestExecutorTests {
|
||||
|
||||
@Test
|
||||
|
@ -1028,6 +1028,7 @@ public class ValidationEngine implements IValidatorResourceFetcher, IValidationP
|
||||
resolvedUrls.put(type+"|"+url, ok);
|
||||
return ok;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
resolvedUrls.put(type+"|"+url, false);
|
||||
return false;
|
||||
}
|
||||
|
@ -4825,7 +4825,7 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
|
||||
} catch (Exception e) {
|
||||
if (STACK_TRACE) { e.printStackTrace(); }
|
||||
crLookups.put(url, new CanonicalResourceLookupResult(e.getMessage()));
|
||||
if (e.getMessage().startsWith("java.net.UnknownHostException:")) {
|
||||
if (e.getMessage() != null && e.getMessage().startsWith("java.net.UnknownHostException:")) {
|
||||
try {
|
||||
warning(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_UNKNOWN_ERROR_NETWORK, profile.primitiveValue(), new URI(url).getHost());
|
||||
} catch (URISyntaxException e1) {
|
||||
|
@ -281,7 +281,7 @@ public class StructureDefinitionValidator extends BaseValidator {
|
||||
case "uuid" :return addCharacteristicsForType(set, "has-length", "can-bind");
|
||||
case "xhtml" :return addCharacteristicsForType(set);
|
||||
case "Address" :return addCharacteristicsForType(set, "do-translations");
|
||||
case "Age" : return addCharacteristicsForType(set, "has-range", "is-continuous");
|
||||
case "Age" : return addCharacteristicsForType(set, "has-range", "is-continuous", "can-bind", "has-units");
|
||||
case "Annotation" :return addCharacteristicsForType(set);
|
||||
case "Attachment" :return addCharacteristicsForType(set, "has-size", "do-translations");
|
||||
case "CodeableConcept" :return addCharacteristicsForType(set, "can-bind", "do-translations");
|
||||
@ -289,14 +289,14 @@ public class StructureDefinitionValidator extends BaseValidator {
|
||||
case "Coding" : return addCharacteristicsForType(set, "can-bind", "do-translations");
|
||||
case "ContactPoint" :return addCharacteristicsForType(set);
|
||||
case "Count" :return addCharacteristicsForType(set, "has-range");
|
||||
case "Distance" :return addCharacteristicsForType(set, "has-range", "is-continuous");
|
||||
case "Duration" : return addCharacteristicsForType(set, "has-range", "is-continuous");
|
||||
case "Distance" :return addCharacteristicsForType(set, "has-range", "is-continuous", "can-bind", "has-units");
|
||||
case "Duration" : return addCharacteristicsForType(set, "has-range", "is-continuous", "can-bind", "has-units");
|
||||
case "HumanName" :return addCharacteristicsForType(set);
|
||||
case "Identifier" : return addCharacteristicsForType(set);
|
||||
case "Money" : return addCharacteristicsForType(set, "has-range", "is-continuous");
|
||||
case "Period" : return addCharacteristicsForType(set);
|
||||
case "Quantity" :return addCharacteristicsForType(set, "has-range", "is-continuous", "can-bind", "has-units");
|
||||
case "Range" :return addCharacteristicsForType(set, "has-units");
|
||||
case "Range" :return addCharacteristicsForType(set, "has-units", "can-bind", "has-units");
|
||||
case "Ratio" :return addCharacteristicsForType(set, "has-units");
|
||||
case "RatioRange" : return addCharacteristicsForType(set, "has-units");
|
||||
case "Reference" : return addCharacteristicsForType(set, "has-target");
|
||||
@ -316,8 +316,8 @@ public class StructureDefinitionValidator extends BaseValidator {
|
||||
case "Resource" :return addCharacteristicsForType(set);
|
||||
case "Extension" :return addCharacteristicsForType(set, "can-bind");
|
||||
case "Narrative" :return addCharacteristicsForType(set);
|
||||
case "MoneyQuantity" :return addCharacteristicsForType(set);
|
||||
case "SimpleQuantity" :return addCharacteristicsForType(set);
|
||||
case "MoneyQuantity" :return addCharacteristicsForType(set, "has-range", "is-continuous", "can-bind", "has-units");
|
||||
case "SimpleQuantity" :return addCharacteristicsForType(set, "has-range", "is-continuous", "can-bind", "has-units");
|
||||
case "MarketingStatus" :return addCharacteristicsForType(set);
|
||||
case "ExtendedContactDetail" :return addCharacteristicsForType(set);
|
||||
case "VirtualServiceDetail" :return addCharacteristicsForType(set);
|
||||
|
2
pom.xml
2
pom.xml
@ -19,7 +19,7 @@
|
||||
|
||||
<properties>
|
||||
<hapi_fhir_version>5.4.0</hapi_fhir_version>
|
||||
<validator_test_case_version>1.1.126</validator_test_case_version>
|
||||
<validator_test_case_version>1.1.127-SNAPSHOT</validator_test_case_version>
|
||||
<junit_jupiter_version>5.7.1</junit_jupiter_version>
|
||||
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>
|
||||
<maven_surefire_version>3.0.0-M5</maven_surefire_version>
|
||||
|
Loading…
x
Reference in New Issue
Block a user