Merge remote-tracking branch 'origin/master' into do-20240319-languages-dat

This commit is contained in:
dotasek.dev 2024-03-20 10:34:17 -04:00
commit 65ecbea430
31 changed files with 679 additions and 106 deletions

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -1342,6 +1342,23 @@ public class Element extends Base implements NamedItem {
children.add(ne); children.add(ne);
return ne; return ne;
} }
// polymorphic support
if (p.getName().endsWith("[x]")) {
String base = p.getName().substring(0, p.getName().length()-3);
if (name.startsWith(base)) {
String type = name.substring(base.length());
if (p.getContextUtils().isPrimitiveType(Utilities.uncapitalize(type))) {
type = Utilities.uncapitalize(type);
}
if (p.canBeType(type)) {
Element ne = new Element(name, p).setFormat(format);
ne.setType(type);
children.add(ne);
return ne;
}
}
}
} }
throw new Error("Unrecognised property '"+name+"' on "+this.name); throw new Error("Unrecognised property '"+name+"' on "+this.name);
@ -1496,7 +1513,7 @@ public class Element extends Base implements NamedItem {
ext.addElement("valueCode").setValue(lang); ext.addElement("valueCode").setValue(lang);
ext = t.addElement("extension"); ext = t.addElement("extension");
ext.addElement("url").setValue("value"); ext.addElement("url").setValue("content");
ext.addElement("valueString").setValue(translation); ext.addElement("valueString").setValue(translation);
} }

View File

@ -24,6 +24,10 @@ import org.hl7.fhir.utilities.i18n.LanguageFileProducer;
import org.hl7.fhir.utilities.i18n.LanguageFileProducer.LanguageProducerLanguageSession; import org.hl7.fhir.utilities.i18n.LanguageFileProducer.LanguageProducerLanguageSession;
import org.hl7.fhir.utilities.i18n.LanguageFileProducer.TextUnit; import org.hl7.fhir.utilities.i18n.LanguageFileProducer.TextUnit;
import org.hl7.fhir.utilities.i18n.LanguageFileProducer.TranslationUnit; import org.hl7.fhir.utilities.i18n.LanguageFileProducer.TranslationUnit;
import org.hl7.fhir.utilities.validation.ValidationMessage;
import org.hl7.fhir.utilities.validation.ValidationMessage.IssueSeverity;
import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType;
import org.hl7.fhir.utilities.validation.ValidationMessage.Source;
/** /**
* in here: * in here:
@ -77,7 +81,6 @@ public class LanguageUtils {
} }
} }
} }
private String contextForElement(Element element) { private String contextForElement(Element element) {
throw new Error("Not done yet"); throw new Error("Not done yet");
@ -110,7 +113,7 @@ public class LanguageUtils {
} }
private boolean isTranslatable(Element element) { private boolean isTranslatable(Element element) {
return element.getProperty().isTranslatable() && !Utilities.existsInList(pathForElement(element), "CanonicalResource.version"); return element.getProperty().isTranslatable();
} }
private String pathForElement(Element element) { private String pathForElement(Element element) {
@ -132,11 +135,24 @@ public class LanguageUtils {
return bp; return bp;
} }
public int importFromTranslations(Element resource, Set<TranslationUnit> translations) {
return importFromTranslations(null, resource, translations); public int importFromTranslations(Element resource, List<TranslationUnit> translations) {
return importFromTranslations(null, resource, translations, new HashSet<>());
} }
private int importFromTranslations(Element parent, Element element, Set<TranslationUnit> translations) { public int importFromTranslations(Element resource, List<TranslationUnit> translations, List<ValidationMessage> messages) {
Set<TranslationUnit> usedUnits = new HashSet<>();
int r = importFromTranslations(null, resource, translations, usedUnits);
for (TranslationUnit t : translations) {
if (!usedUnits.contains(t)) {
messages.add(new ValidationMessage(Source.Publisher, IssueType.INFORMATIONAL, t.getId(), "Unused '"+t.getLanguage()+"' translation '"+t.getSrcText()+"' -> '"+t.getTgtText()+"'", IssueSeverity.INFORMATION));
}
}
return r;
}
private int importFromTranslations(Element parent, Element element, List<TranslationUnit> translations, Set<TranslationUnit> usedUnits) {
int t = 0; int t = 0;
if (element.isPrimitive() && isTranslatable(element)) { if (element.isPrimitive() && isTranslatable(element)) {
String base = element.primitiveValue(); String base = element.primitiveValue();
@ -146,13 +162,14 @@ public class LanguageUtils {
t++; t++;
if (!handleAsSpecial(parent, element, translation)) { if (!handleAsSpecial(parent, element, translation)) {
element.setTranslation(translation.getLanguage(), translation.getTgtText()); element.setTranslation(translation.getLanguage(), translation.getTgtText());
usedUnits.add(translation);
} }
} }
} }
} }
for (Element c: element.getChildren()) { for (Element c: element.getChildren()) {
if (!c.getName().equals("designation")) { if (!c.getName().equals("designation")) {
t = t + importFromTranslations(element, c, translations); t = t + importFromTranslations(element, c, translations, usedUnits);
} }
} }
return t; return t;
@ -193,7 +210,7 @@ public class LanguageUtils {
return true; return true;
} }
private Set<TranslationUnit> findTranslations(String path, String src, Set<TranslationUnit> translations) { private Set<TranslationUnit> findTranslations(String path, String src, List<TranslationUnit> translations) {
Set<TranslationUnit> res = new HashSet<>(); Set<TranslationUnit> res = new HashSet<>();
for (TranslationUnit translation : translations) { for (TranslationUnit translation : translations) {
if (path.equals(translation.getId()) && src.equals(translation.getSrcText())) { if (path.equals(translation.getId()) && src.equals(translation.getSrcText())) {
@ -294,7 +311,7 @@ public class LanguageUtils {
} }
public static boolean handlesAsElement(Element element) { public static boolean handlesAsElement(Element element) {
return false; // for now... return true; // for now...
} }
public static List<TranslationUnit> generateTranslations(Resource res, String lang) { public static List<TranslationUnit> generateTranslations(Resource res, String lang) {
@ -334,4 +351,52 @@ public class LanguageUtils {
return cd.getDefinition(); return cd.getDefinition();
} }
} }
public static List<TranslationUnit> generateTranslations(Element e, String lang) {
List<TranslationUnit> list = new ArrayList<>();
generateTranslations(e, lang, list);
return list;
}
private static void generateTranslations(Element e, String lang, List<TranslationUnit> list) {
if (e.getProperty().isTranslatable()) {
String id = e.getProperty().getDefinition().getPath();
String context = e.getProperty().getDefinition().getDefinition();
String src = e.primitiveValue();
String tgt = getTranslation(e, lang);
list.add(new TranslationUnit(lang, id, context, src, tgt));
}
if (e.hasChildren()) {
for (Element c : e.getChildren()) {
generateTranslations(c, lang, list);
}
}
}
private static String getTranslation(Element e, String lang) {
if (!e.hasChildren()) {
return null;
}
for (Element ext : e.getChildren()) {
if ("Extension".equals(ext.fhirType()) && "http://hl7.org/fhir/StructureDefinition/translation".equals(ext.getNamedChildValue("url"))) {
String l = null;
String v = null;
for (Element subExt : ext.getChildren()) {
if ("Extension".equals(subExt.fhirType()) && "lang".equals(subExt.getNamedChildValue("url"))) {
l = subExt.getNamedChildValue("value");
}
if ("Extension".equals(subExt.fhirType()) && "content".equals(subExt.getNamedChildValue("url"))) {
v = subExt.getNamedChildValue("value");
}
}
if (lang.equals(l)) {
return v;
}
}
}
return null;
}
} }

View File

@ -641,14 +641,32 @@ public class Property {
public boolean isTranslatable() { public boolean isTranslatable() {
boolean ok = ToolingExtensions.readBoolExtension(definition, ToolingExtensions.EXT_TRANSLATABLE); boolean ok = ToolingExtensions.readBoolExtension(definition, ToolingExtensions.EXT_TRANSLATABLE);
if (!ok && !Utilities.existsInList(definition.getBase().getPath(), "Reference.reference", "Coding.version", "Identifier.value", "SampledData.offsets", "SampledData.data", "ContactPoint.value")) { if (!ok && !definition.getPath().endsWith(".id") && !Utilities.existsInList(definition.getBase().getPath(), "Resource.id", "Reference.reference", "Coding.version", "Identifier.value", "SampledData.offsets", "SampledData.data", "ContactPoint.value")) {
String t = getType(); String t = getType();
ok = Utilities.existsInList(t, "string", "markdown"); ok = Utilities.existsInList(t, "string", "markdown");
} }
if (Utilities.existsInList(pathForElement(getStructure().getType(), getDefinition().getBase().getPath()), "CanonicalResource.version")) {
return false;
}
return ok; return ok;
}
private String pathForElement(String type, String path) {
// special case support for metadata elements prior to R5:
if (utils.getCanonicalResourceNames().contains(type)) {
String fp = path.replace(type+".", "CanonicalResource.");
if (Utilities.existsInList(fp,
"CanonicalResource.url", "CanonicalResource.identifier", "CanonicalResource.version", "CanonicalResource.name",
"CanonicalResource.title", "CanonicalResource.status", "CanonicalResource.experimental", "CanonicalResource.date",
"CanonicalResource.publisher", "CanonicalResource.contact", "CanonicalResource.description", "CanonicalResource.useContext",
"CanonicalResource.jurisdiction")) {
return fp;
}
}
return path;
} }
public String getXmlTypeName() { public String getXmlTypeName() {
TypeRefComponent tr = type; TypeRefComponent tr = type;
if (tr == null) { if (tr == null) {
@ -677,5 +695,15 @@ public class Property {
return Utilities.existsInList(tr.getWorkingCode(), "Reference", "url", "uri", "canonical"); return Utilities.existsInList(tr.getWorkingCode(), "Reference", "url", "uri", "canonical");
} }
public boolean canBeType(String type) {
for (TypeRefComponent tr : getDefinition().getType()) {
if (type.equals(tr.getWorkingCode())) {
return true;
}
}
return false;
}
} }

View File

@ -590,13 +590,14 @@ public class ValueSetValidator extends ValueSetProcessBase {
break; break;
} }
warningMessage = warningMessage + ", so the code has not been validated"; warningMessage = warningMessage + ", so the code has not been validated";
if (!inExpansion && cs.getContent() != CodeSystemContentMode.FRAGMENT) { // we're going to give it a go if it's a fragment if (!options.isExampleOK() && !inExpansion && cs.getContent() != CodeSystemContentMode.FRAGMENT) { // we're going to give it a go if it's a fragment
throw new VSCheckerException(warningMessage, null, true); throw new VSCheckerException(warningMessage, null, true);
} }
} }
if (cs != null /*&& (cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT)*/) { if (cs != null /*&& (cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT)*/) {
if (!(cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT)) { if (!(cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT ||
(options.isExampleOK() && cs.getContent() == CodeSystemContentMode.EXAMPLE))) {
if (inInclude) { if (inInclude) {
ConceptReferenceComponent cc = findInInclude(code); ConceptReferenceComponent cc = findInInclude(code);
if (cc != null) { if (cc != null) {
@ -608,7 +609,7 @@ public class ValueSetValidator extends ValueSetProcessBase {
} }
} }
// we can't validate that here. // we can't validate that here.
throw new FHIRException("Unable to evaluate based on empty code system"); throw new FHIRException("Unable to evaluate based on code system with status = "+cs.getContent().toCode());
} }
res = validateCode(path, code, cs, null, info); res = validateCode(path, code, cs, null, info);
res.setIssues(issues); res.setIssues(issues);

View File

@ -24,7 +24,7 @@ public class ResourceLanguageFileBuilderTests {
ctxt.cacheResource(new JsonParser().parse(TestingUtilities.loadTestResourceStream("r5", "languages", "StructureDefinition-ed-translatable.json"))); ctxt.cacheResource(new JsonParser().parse(TestingUtilities.loadTestResourceStream("r5", "languages", "StructureDefinition-ed-translatable.json")));
ctxt.cacheResource(new JsonParser().parse(TestingUtilities.loadTestResourceStream("r5", "languages", "StructureDefinition-sd-translatable.json"))); ctxt.cacheResource(new JsonParser().parse(TestingUtilities.loadTestResourceStream("r5", "languages", "StructureDefinition-sd-translatable.json")));
lang.setProfile(ctxt.fetchResource(StructureDefinition.class, "http://hl7.org/tests/fhir/StructureDefinition/sd-translatable")); lang.setProfile(ctxt.fetchResource(StructureDefinition.class, "http://hl7.org/tests/fhir/StructureDefinition/sd-translatable"));
lang.prepare(new XLIFFProducer(Utilities.path("[tmp]", "language")), ctxt, "en", "fr"); lang.prepare(new XLIFFProducer("[tmp]", "language", false), ctxt, "en", "fr");
lang.build(res); lang.build(res);
} }

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -13,8 +13,8 @@ import org.hl7.fhir.utilities.json.parser.JsonParser;
public class JsonLangFileProducer extends LanguageFileProducer { public class JsonLangFileProducer extends LanguageFileProducer {
public JsonLangFileProducer(String folder) { public JsonLangFileProducer(String rootFolder, String folderName, boolean useLangFolder) {
super(folder); super(rootFolder, folderName, useLangFolder);
} }
public JsonLangFileProducer() { public JsonLangFileProducer() {
@ -102,7 +102,7 @@ public class JsonLangFileProducer extends LanguageFileProducer {
} }
private String getFileName(String id, String baseLang) throws IOException { private String getFileName(String id, String baseLang) throws IOException {
return Utilities.path(getFolder(), id+"-"+baseLang+".json"); return Utilities.path(getRootFolder(), getFolderName(), id+"-"+baseLang+".json");
} }
@Override @Override
@ -132,7 +132,7 @@ public class JsonLangFileProducer extends LanguageFileProducer {
entry.add("source", tu.getSrcText()); entry.add("source", tu.getSrcText());
entry.add("target", tu.getTgtText()); entry.add("target", tu.getTgtText());
} }
TextFile.stringToFile(JsonParser.compose(json, true), Utilities.path(getFolder(), filename)); TextFile.stringToFile(JsonParser.compose(json, true), getTargetFileName(targetLang, filename));
} }
} }

View File

@ -8,6 +8,7 @@ import java.util.Map;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import org.hl7.fhir.utilities.Utilities;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
@ -143,21 +144,41 @@ public abstract class LanguageFileProducer {
public abstract void finish() throws IOException; public abstract void finish() throws IOException;
} }
private String folder; private String rootFolder;
private String folderName;
private boolean useLangFolder;
public LanguageFileProducer(String folder) { public LanguageFileProducer(String rootFolder, String folderName, boolean useLangFolder) {
super(); super();
this.folder = folder; this.rootFolder = rootFolder;
this.folderName = folderName;
this.useLangFolder = useLangFolder;
} }
public LanguageFileProducer() { public LanguageFileProducer() {
super(); super();
} }
public String getFolder() {
return folder; public String getRootFolder() {
return rootFolder;
} }
public String getFolderName() {
return folderName;
}
public boolean isUseLangFolder() {
return useLangFolder;
}
protected String getTargetFileName(String targetLang, String filename) throws IOException {
return Utilities.path(getRootFolder(), isUseLangFolder() ? targetLang : ".", getFolderName(), filename);
}
public abstract LanguageProducerSession startSession(String id, String baseLang) throws IOException; public abstract LanguageProducerSession startSession(String id, String baseLang) throws IOException;
public abstract void finish(); public abstract void finish();

View File

@ -15,8 +15,8 @@ public class PoGetTextProducer extends LanguageFileProducer {
private int filecount; private int filecount;
private boolean incLangInFilename; private boolean incLangInFilename;
public PoGetTextProducer(String folder) { public PoGetTextProducer(String rootFolder, String folderName, boolean useLangFolder) {
super(folder); super(rootFolder, folderName, useLangFolder);
} }
public PoGetTextProducer() { public PoGetTextProducer() {
@ -142,7 +142,7 @@ public class PoGetTextProducer extends LanguageFileProducer {
} }
private String getFileName(String id, String baseLang, String targetLang) throws IOException { private String getFileName(String id, String baseLang, String targetLang) throws IOException {
return Utilities.path(getFolder(), id+(incLangInFilename ? "-"+baseLang+"-"+targetLang+".po" : "")); return Utilities.path(getRootFolder(), getFolderName(), id+(incLangInFilename ? "-"+baseLang+"-"+targetLang+".po" : ""));
} }
public boolean isIncLangInFilename() { public boolean isIncLangInFilename() {
@ -167,11 +167,20 @@ public class PoGetTextProducer extends LanguageFileProducer {
if (tu.getContext1() != null) { if (tu.getContext1() != null) {
ln(po, "#. "+tu.getContext1()); ln(po, "#. "+tu.getContext1());
} }
ln(po, "msgid \""+tu.getSrcText()+"\""); ln(po, "msgid \""+stripEoln(tu.getSrcText())+"\"");
ln(po, "msgstr \""+(tu.getTgtText() == null ? "" : tu.getTgtText())+"\""); ln(po, "msgstr \""+(tu.getTgtText() == null ? "" : stripEoln(tu.getTgtText()))+"\"");
ln(po, ""); ln(po, "");
} }
TextFile.stringToFile(po.toString(), Utilities.path(getFolder(), filename)); TextFile.stringToFile(po.toString(), getTargetFileName(targetLang, filename));
}
private String stripEoln(String s) {
s = s.replace("\r\n\r\n", " ").replace("\n\n", " ").replace("\r\r", " ");
s = s.replace("\r\n", " ").replace("\n", " ").replace("\r", " ");
// // yes, the double escaping is intentional here - it appears necessary
// s = s.replace("\\r\\n\\r\\n", " ").replace("\\n\\n", " ").replace("\\r\\r", " ");
// s = s.replace("\\r\\n", " ").replace("\\n", " ").replace("\\r", " ");
return s;
} }

View File

@ -39,7 +39,7 @@ public class XLIFFProducer extends LanguageFileProducer {
ln(" </body>"); ln(" </body>");
ln(" </file>"); ln(" </file>");
ln("</xliff>"); ln("</xliff>");
TextFile.stringToFile(xml.toString(), Utilities.path(getFolder(), id+".xliff")); TextFile.stringToFile(xml.toString(), Utilities.path(getRootFolder(), getFolderName(), id+".xliff"));
filecount++; filecount++;
} }
@ -80,8 +80,8 @@ public class XLIFFProducer extends LanguageFileProducer {
private int filecount; private int filecount;
public XLIFFProducer(String folder) { public XLIFFProducer(String rootFolder, String folderName, boolean useLangFolder) {
super(folder); super(rootFolder, folderName, useLangFolder);
} }
public XLIFFProducer() { public XLIFFProducer() {
@ -163,7 +163,7 @@ public class XLIFFProducer extends LanguageFileProducer {
ln(xml, " </body>"); ln(xml, " </body>");
ln(xml, " </file>"); ln(xml, " </file>");
ln(xml, "</xliff>"); ln(xml, "</xliff>");
TextFile.stringToFile(xml.toString(), Utilities.path(getFolder(), filename)); TextFile.stringToFile(xml.toString(), getTargetFileName(targetLang, filename));
} }

View File

@ -22,6 +22,7 @@ public class ValidationOptions {
private boolean useValueSetDisplays; private boolean useValueSetDisplays;
private boolean englishOk = true; private boolean englishOk = true;
private boolean activeOnly = false; private boolean activeOnly = false;
private boolean exampleOK = false;
private FhirPublication fhirVersion; private FhirPublication fhirVersion;
public ValidationOptions(FhirPublication fhirVersion) { public ValidationOptions(FhirPublication fhirVersion) {
@ -270,6 +271,19 @@ public class ValidationOptions {
return this; return this;
} }
public boolean isExampleOK() {
return exampleOK;
}
public ValidationOptions setExampleOK(boolean exampleOK) {
this.exampleOK = exampleOK;
return this;
}
public ValidationOptions withExampleOK() {
return setExampleOK(true);
}
public ValidationOptions copy() { public ValidationOptions copy() {
ValidationOptions n = new ValidationOptions(fhirVersion); ValidationOptions n = new ValidationOptions(fhirVersion);
n.langs = langs == null ? null : langs.copy(); n.langs = langs == null ? null : langs.copy();
@ -282,13 +296,14 @@ public class ValidationOptions {
n.membershipOnly = membershipOnly; n.membershipOnly = membershipOnly;
n.useValueSetDisplays = useValueSetDisplays; n.useValueSetDisplays = useValueSetDisplays;
n.displayWarningMode = displayWarningMode; n.displayWarningMode = displayWarningMode;
n.exampleOK = exampleOK;
return n; return n;
} }
public String toJson() { public String toJson() {
return "\"langs\":\""+( langs == null ? "" : langs.toString())+"\", \"useServer\":\""+Boolean.toString(useServer)+"\", \"useClient\":\""+Boolean.toString(useClient)+"\", "+ return "\"langs\":\""+( langs == null ? "" : langs.toString())+"\", \"useServer\":\""+Boolean.toString(useServer)+"\", \"useClient\":\""+Boolean.toString(useClient)+"\", "+
"\"guessSystem\":\""+Boolean.toString(guessSystem)+"\", \"activeOnly\":\""+Boolean.toString(activeOnly)+"\", \"membershipOnly\":\""+Boolean.toString(membershipOnly)+"\", \"displayWarningMode\":\""+Boolean.toString(displayWarningMode)+"\", \"versionFlexible\":\""+Boolean.toString(versionFlexible)+"\""; "\"guessSystem\":\""+Boolean.toString(guessSystem)+"\", \"activeOnly\":\""+Boolean.toString(activeOnly)+(exampleOK ? "\", \"exampleOK\":\""+Boolean.toString(exampleOK) : "")+"\", \"membershipOnly\":\""+Boolean.toString(membershipOnly)+"\", \"displayWarningMode\":\""+Boolean.toString(displayWarningMode)+"\", \"versionFlexible\":\""+Boolean.toString(versionFlexible)+"\"";
} }
public String langSummary() { public String langSummary() {

View File

@ -577,8 +577,8 @@ SEARCHPARAMETER_TYPE_WRONG = The type {1} is different to the type {0} in the de
SEARCHPARAMETER_EXP_WRONG = The expression ''{2}'' is not compatible with the expression ''{1}'' in the derivedFrom SearchParameter {0}, and this likely indicates that the derivation relationship is not valid SEARCHPARAMETER_EXP_WRONG = The expression ''{2}'' is not compatible with the expression ''{1}'' in the derivedFrom SearchParameter {0}, and this likely indicates that the derivation relationship is not valid
SEARCHPARAMETER_MISSING_COMPONENTS = When the SearchParameter has a type of 'composite', then the SearchParameter must define two or more components SEARCHPARAMETER_MISSING_COMPONENTS = When the SearchParameter has a type of 'composite', then the SearchParameter must define two or more components
VALUESET_NO_SYSTEM_WARNING = No System specified, so Concepts and Filters can't be checked VALUESET_NO_SYSTEM_WARNING = No System specified, so Concepts and Filters can't be checked
VALUESET_INCLUDE_INVALID_CONCEPT_CODE = The code ''{1}'' is not valid in the system {0} VALUESET_INCLUDE_INVALID_CONCEPT_CODE = The code ''{1}'' is not valid in the system {0} ({2})
VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER = The code ''{2}'' is not valid in the system {0} version {1} VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER = The code ''{2}'' is not valid in the system {0} version {1} ({2})
VALUESET_EXAMPLE_SYSTEM_HINT = Example System ''{0}'' specified, so Concepts and Filters can''t be checked VALUESET_EXAMPLE_SYSTEM_HINT = Example System ''{0}'' specified, so Concepts and Filters can''t be checked
VALUESET_EXAMPLE_SYSTEM_ERROR = Example System ''{0}'' specified, which is illegal. Concepts and Filters can''t be checked VALUESET_EXAMPLE_SYSTEM_ERROR = Example System ''{0}'' specified, which is illegal. Concepts and Filters can''t be checked
VALUESET_UNC_SYSTEM_WARNING = Unknown System ''{0}'' specified, so Concepts and Filters can''t be checked (Details: {1}) VALUESET_UNC_SYSTEM_WARNING = Unknown System ''{0}'' specified, so Concepts and Filters can''t be checked (Details: {1})
@ -1137,7 +1137,7 @@ CODESYSTEM_PROPERTY_SYNONYM_CHECK = The synonym ''{0}'' is not also defined in t
CODESYSTEM_PROPERTY_DUPLICATE_CODE = A property is already defined with the code ''{0}'' CODESYSTEM_PROPERTY_DUPLICATE_CODE = A property is already defined with the code ''{0}''
CODESYSTEM_PROPERTY_URI_CODE_MISMATCH = The URI ''{0}'' is normally assigned the code ''{1}''. Using the code ''{2}'' will usually create confusion in ValueSet filters etc CODESYSTEM_PROPERTY_URI_CODE_MISMATCH = The URI ''{0}'' is normally assigned the code ''{1}''. Using the code ''{2}'' will usually create confusion in ValueSet filters etc
CODESYSTEM_PROPERTY_URI_TYPE_MISMATCH = Wrong type ''{2}'': The URI ''{0}'' identifies a property that has the type ''{1}'' CODESYSTEM_PROPERTY_URI_TYPE_MISMATCH = Wrong type ''{2}'': The URI ''{0}'' identifies a property that has the type ''{1}''
CODESYSTEM_PROPERTY_UNKNOWN_CODE = This property has only (''{0}'') a code and no URI, so it has no clearly defined meaning in the terminology ecosystem CODESYSTEM_PROPERTY_UNKNOWN_CODE = This property has only a code (''{0}'') and not a URI, so it has no clearly defined meaning in the terminology ecosystem
CODESYSTEM_PROPERTY_KNOWN_CODE_SUGGESTIVE = This property has only the standard code (''{0}'') but not the standard URI ''{1}'', so it has no clearly defined meaning in the terminology ecosystem CODESYSTEM_PROPERTY_KNOWN_CODE_SUGGESTIVE = This property has only the standard code (''{0}'') but not the standard URI ''{1}'', so it has no clearly defined meaning in the terminology ecosystem
CODESYSTEM_PROPERTY_CODE_TYPE_MISMATCH = Wrong type ''{2}'': The code ''{0}'' identifies a property that has the type ''{1}'' CODESYSTEM_PROPERTY_CODE_TYPE_MISMATCH = Wrong type ''{2}'': The code ''{0}'' identifies a property that has the type ''{1}''
CODESYSTEM_PROPERTY_UNDEFINED = The property ''{0}'' has no definition in CodeSystem.property. Many terminology tools won''t know what to do with it CODESYSTEM_PROPERTY_UNDEFINED = The property ''{0}'' has no definition in CodeSystem.property. Many terminology tools won''t know what to do with it

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -619,9 +619,9 @@ public class ValidationService {
private void transformLangExtract(CliContext cliContext, ValidationEngine validator) throws IOException { private void transformLangExtract(CliContext cliContext, ValidationEngine validator) throws IOException {
String dst = cliContext.getOutput(); String dst = cliContext.getOutput();
Utilities.createDirectory(dst); Utilities.createDirectory(dst);
PoGetTextProducer po = new PoGetTextProducer(Utilities.path(dst)); PoGetTextProducer po = new PoGetTextProducer(dst, ".", false);
XLIFFProducer xliff = new XLIFFProducer(Utilities.path(dst)); XLIFFProducer xliff = new XLIFFProducer(dst, ".", false);
JsonLangFileProducer jl = new JsonLangFileProducer(Utilities.path(dst)); JsonLangFileProducer jl = new JsonLangFileProducer(dst, ".", false);
List<SourceFile> refs = new ArrayList<>(); List<SourceFile> refs = new ArrayList<>();
ValidatorUtils.parseSources(cliContext.getSources(), refs, validator.getContext()); ValidatorUtils.parseSources(cliContext.getSources(), refs, validator.getContext());
@ -652,7 +652,7 @@ public class ValidationService {
String dst = cliContext.getOutput(); String dst = cliContext.getOutput();
Utilities.createDirectory(dst); Utilities.createDirectory(dst);
Set<TranslationUnit> translations = new HashSet<>(); List<TranslationUnit> translations = new ArrayList<>();
for (String input : cliContext.getInputs()) { for (String input : cliContext.getInputs()) {
loadTranslationSource(translations, input); loadTranslationSource(translations, input);
} }
@ -671,7 +671,7 @@ public class ValidationService {
System.out.println("Done - imported "+t+" translations into "+refs.size()+ " in "+dst); System.out.println("Done - imported "+t+" translations into "+refs.size()+ " in "+dst);
} }
private void loadTranslationSource(Set<TranslationUnit> translations, String input) { private void loadTranslationSource(List<TranslationUnit> translations, String input) {
File f = new File(input); File f = new File(input);
if (f.exists()) { if (f.exists()) {
if (f.isDirectory()) { if (f.isDirectory()) {

View File

@ -5761,22 +5761,26 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
} }
if (rule(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), wg != null || url.contains("http://hl7.org/fhir/sid"), I18nConstants.VALIDATION_HL7_WG_NEEDED, ToolingExtensions.EXT_WORKGROUP)) { if (rule(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), wg != null || url.contains("http://hl7.org/fhir/sid"), I18nConstants.VALIDATION_HL7_WG_NEEDED, ToolingExtensions.EXT_WORKGROUP)) {
HL7WorkGroup wgd = HL7WorkGroups.find(wg); if (wg != null) {
if (rule(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), wgd != null, I18nConstants.VALIDATION_HL7_WG_UNKNOWN, wg)) { HL7WorkGroup wgd = HL7WorkGroups.find(wg);
String rpub = "HL7 International / "+wgd.getName(); if (rule(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), wgd != null, I18nConstants.VALIDATION_HL7_WG_UNKNOWN, wg)) {
if (warning(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), pub != null, I18nConstants.VALIDATION_HL7_PUBLISHER_MISSING, wg, rpub)) { String rpub = "HL7 International / "+wgd.getName();
boolean ok = rpub.equals(pub); if (warning(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), pub != null, I18nConstants.VALIDATION_HL7_PUBLISHER_MISSING, wg, rpub)) {
if (!ok && wgd.getName2() != null) { boolean ok = rpub.equals(pub);
ok = ("HL7 International / "+wgd.getName2()).equals(pub); if (!ok && wgd.getName2() != null) {
warningOrError(pub.contains("/"), errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), ok, I18nConstants.VALIDATION_HL7_PUBLISHER_MISMATCH2, wg, rpub, "HL7 International / "+wgd.getName2(), pub); ok = ("HL7 International / "+wgd.getName2()).equals(pub);
} else { warningOrError(pub.contains("/"), errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), ok, I18nConstants.VALIDATION_HL7_PUBLISHER_MISMATCH2, wg, rpub, "HL7 International / "+wgd.getName2(), pub);
warningOrError(pub.contains("/"), errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), ok, I18nConstants.VALIDATION_HL7_PUBLISHER_MISMATCH, wg, rpub, pub); } else {
warningOrError(pub.contains("/"), errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), ok, I18nConstants.VALIDATION_HL7_PUBLISHER_MISMATCH, wg, rpub, pub);
}
} }
} warning(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(),
warning(errors, "2023-09-15", IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), Utilities.startsWithInList( wgd.getLink(), urls), I18nConstants.VALIDATION_HL7_WG_URL, wg, wgd.getLink());
Utilities.startsWithInList( wgd.getLink(), urls), I18nConstants.VALIDATION_HL7_WG_URL, wg, wgd.getLink()); return true;
return true; }
} } else {
return true; // HL7 sid.
}
} }
return false; return false;

View File

@ -439,9 +439,9 @@ public class CodeSystemValidator extends BaseValidator {
if (uses.isEmpty()) { if (uses.isEmpty()) {
// if we have no uses, we're kind of implying that it's the base display, so it should be the same // if we have no uses, we're kind of implying that it's the base display, so it should be the same
if (rlang == null && lang == null) { if (rlang == null && lang == null) {
ok = rule(errors, "2024-03-06", IssueType.BUSINESSRULE, cs.line(), cs.col(), stack.getLiteralPath(), display == null || display.equals(value), I18nConstants.CODESYSTEM_DESIGNATION_DISP_CLASH_NO_LANG, value, display) && ok; warning(errors, "2024-03-06", IssueType.BUSINESSRULE, cs.line(), cs.col(), stack.getLiteralPath(), display == null || display.equals(value), I18nConstants.CODESYSTEM_DESIGNATION_DISP_CLASH_NO_LANG, value, display);
} else if (rlang != null && ((lang == null) || rlang.equals(lang))) { } else if (rlang != null && ((lang == null) || rlang.equals(lang))) {
ok = rule(errors, "2024-03-06", IssueType.BUSINESSRULE, cs.line(), cs.col(), stack.getLiteralPath(), display == null || display.equals(value), I18nConstants.CODESYSTEM_DESIGNATION_DISP_CLASH_LANG, value, display, rlang) && ok; warning(errors, "2024-03-06", IssueType.BUSINESSRULE, cs.line(), cs.col(), stack.getLiteralPath(), display == null || display.equals(value), I18nConstants.CODESYSTEM_DESIGNATION_DISP_CLASH_LANG, value, display, rlang);
} }
} else { } else {
// .... do we care? // .... do we care?

View File

@ -295,15 +295,15 @@ public class ValueSetValidator extends BaseValidator {
System.out.println(" : Validate "+batch.size()+" codes from "+system+" for "+vsid); System.out.println(" : Validate "+batch.size()+" codes from "+system+" for "+vsid);
} }
try { try {
context.validateCodeBatch(ValidationOptions.defaults(), batch, null); context.validateCodeBatch(ValidationOptions.defaults().withExampleOK(), batch, null);
if (parent.isDebug()) { if (parent.isDebug()) {
System.out.println(" : .. "+(System.currentTimeMillis()-t)+"ms"); System.out.println(" : .. "+(System.currentTimeMillis()-t)+"ms");
} }
for (VSCodingValidationRequest cv : batch) { for (VSCodingValidationRequest cv : batch) {
if (version == null) { if (version == null) {
warningOrHint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, cv.getStack().getLiteralPath(), cv.getResult().isOk(), !retired, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE, system, cv.getCoding().getCode()); warningOrHint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, cv.getStack().getLiteralPath(), cv.getResult().isOk(), !retired, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE, system, cv.getCoding().getCode(), cv.getResult().getMessage());
} else { } else {
warningOrHint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, cv.getStack().getLiteralPath(), cv.getResult().isOk(), !retired, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER, system, version, cv.getCoding().getCode()); warningOrHint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, cv.getStack().getLiteralPath(), cv.getResult().isOk(), !retired, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER, system, version, cv.getCoding().getCode(), cv.getResult().getMessage());
} }
} }
} catch (Exception e) { } catch (Exception e) {
@ -333,7 +333,7 @@ public class ValueSetValidator extends BaseValidator {
slv.checkConcept(code, display); slv.checkConcept(code, display);
if (version == null) { if (version == null) {
ValidationResult vv = context.validateCode(ValidationOptions.defaults(), new Coding(system, code, null), null); ValidationResult vv = context.validateCode(ValidationOptions.defaults().withExampleOK(), new Coding(system, code, null), null);
if (vv.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) { if (vv.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) {
if (isExampleUrl(system)) { if (isExampleUrl(system)) {
if (isAllowExamples()) { if (isAllowExamples()) {
@ -347,19 +347,19 @@ public class ValueSetValidator extends BaseValidator {
return false; return false;
} else { } else {
boolean ok = vv.isOk(); boolean ok = vv.isOk();
warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, ok, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE, system, code); warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, ok, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE, system, code, vv.getMessage());
if (vv.getMessage() != null) { if (vv.getMessage() != null) {
hint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, false, vv.getMessage()); hint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, false, vv.getMessage());
} }
} }
} else { } else {
ValidationResult vv = context.validateCode(ValidationOptions.defaults(), new Coding(system, code, null).setVersion(version), null); ValidationResult vv = context.validateCode(ValidationOptions.defaults().withExampleOK(), new Coding(system, code, null).setVersion(version), null);
if (vv.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) { if (vv.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) {
warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stackInc.getLiteralPath(), false, I18nConstants.VALUESET_UNC_SYSTEM_WARNING_VER, system+"#"+version, vv.getMessage()); warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stackInc.getLiteralPath(), false, I18nConstants.VALUESET_UNC_SYSTEM_WARNING_VER, system+"#"+version, vv.getMessage());
return false; return false;
} else { } else {
boolean ok = vv.isOk(); boolean ok = vv.isOk();
warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, ok, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER, system, version, code); warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, ok, I18nConstants.VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER, system, version, code, vv.getMessage());
if (vv.getMessage() != null) { if (vv.getMessage() != null) {
hint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, false, vv.getMessage()); hint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, stack, false, vv.getMessage());
} }

View File

@ -19,3 +19,23 @@ v: {
} }
------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------
{"code" : {
"system" : "http://something/something",
"code" : "something"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"severity" : "error",
"error" : "A definition for CodeSystem 'http://something/something' could not be found, so the code cannot be validated",
"class" : "CODESYSTEM_UNSUPPORTED",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------

View File

@ -443,6 +443,23 @@ v: {
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
}, },
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '1419004' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
},
{ {
"extension" : [{ "extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server", "url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
@ -731,6 +748,23 @@ v: {
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
}, },
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '324252006' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
},
{ {
"extension" : [{ "extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server", "url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
@ -922,6 +956,23 @@ v: {
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
}, },
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '602001' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
},
{ {
"extension" : [{ "extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server", "url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
@ -1452,6 +1503,23 @@ v: {
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
}, },
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '1419004' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
},
{ {
"extension" : [{ "extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server", "url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
@ -6589,6 +6657,23 @@ v: {
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
}, },
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '58108001' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
},
{ {
"extension" : [{ "extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server", "url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
@ -7136,7 +7221,6 @@ v: {
"error" : "Unknown code 'something' in the CodeSystem 'http://snomed.info/sct' version 'http://snomed.info/sct/900000000000207008/version/20240201'", "error" : "Unknown code 'something' in the CodeSystem 'http://snomed.info/sct' version 'http://snomed.info/sct/900000000000207008/version/20240201'",
"class" : "UNKNOWN", "class" : "UNKNOWN",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -7193,10 +7277,89 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
} }
------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "1"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"code" : "1",
"severity" : "error",
"error" : "Unknown code '1' in the CodeSystem 'http://snomed.info/sct' version 'http://snomed.info/sct/900000000000207008/version/20240201'",
"class" : "UNKNOWN",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "error",
"code" : "code-invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "invalid-code"
}],
"text" : "Unknown code '1' in the CodeSystem 'http://snomed.info/sct' version 'http://snomed.info/sct/900000000000207008/version/20240201'"
},
"location" : ["Coding.code"],
"expression" : ["Coding.code"]
}]
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "2"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"code" : "2",
"severity" : "error",
"error" : "Unknown code '2' in the CodeSystem 'http://snomed.info/sct' version 'http://snomed.info/sct/900000000000207008/version/20240201'",
"class" : "UNKNOWN",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "error",
"code" : "code-invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "invalid-code"
}],
"text" : "Unknown code '2' in the CodeSystem 'http://snomed.info/sct' version 'http://snomed.info/sct/900000000000207008/version/20240201'"
},
"location" : ["Coding.code"],
"expression" : ["Coding.code"]
}]
}
}
-------------------------------------------------------------------------------------

View File

@ -15,7 +15,6 @@ v: {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9", "system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0", "version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -53,7 +52,6 @@ v: {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9", "system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0", "version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -91,7 +89,6 @@ v: {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9", "system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0", "version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -123,6 +120,157 @@ v: {
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891" "valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}] }]
}}#### }}####
v: {
"display" : "Nearly every day",
"code" : "Nearly every day",
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "business-rule",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "status-check"
}],
"text" : "Reference to draft CodeSystem http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9|3.0.0"
}
}]
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"code" : "Not-at-all"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "Not at all",
"code" : "Not-at-all",
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "business-rule",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "status-check"
}],
"text" : "Reference to draft CodeSystem http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9|3.0.0"
}
}]
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"code" : "Several-days"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "Several days",
"code" : "Several-days",
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "business-rule",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "status-check"
}],
"text" : "Reference to draft CodeSystem http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9|3.0.0"
}
}]
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"code" : "More than half the days"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "More than half the days",
"code" : "More than half the days",
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"version" : "3.0.0",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "business-rule",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "status-check"
}],
"text" : "Reference to draft CodeSystem http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9|3.0.0"
}
}]
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://hl7.org/fhir/uv/sdc/CodeSystem/CSPHQ9",
"code" : "Nearly every day"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: { v: {
"display" : "Nearly every day", "display" : "Nearly every day",
"code" : "Nearly every day", "code" : "Nearly every day",

View File

@ -469,7 +469,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -493,7 +492,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -561,7 +559,6 @@ v: {
"version" : "http://snomed.info/sct/731000124108/version/20230901", "version" : "http://snomed.info/sct/731000124108/version/20230901",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"inactive" : true, "inactive" : true,
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -580,6 +577,23 @@ v: {
}, },
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
},
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '132037003' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
}] }]
} }
@ -644,7 +658,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -667,7 +680,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -691,7 +703,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -715,7 +726,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -739,7 +749,6 @@ v: {
"error" : "The provided code 'http://snomed.info/sct#106004' was not found in the value set 'http://hl7.org/fhir/ValueSet/clinical-findings--0|5.0.0'", "error" : "The provided code 'http://snomed.info/sct#106004' was not found in the value set 'http://hl7.org/fhir/ValueSet/clinical-findings--0|5.0.0'",
"class" : "UNKNOWN", "class" : "UNKNOWN",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -786,7 +795,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -810,7 +818,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -835,7 +842,6 @@ v: {
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"inactive" : true, "inactive" : true,
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome", "resourceType" : "OperationOutcome",
"issue" : [{ "issue" : [{
@ -854,6 +860,23 @@ v: {
}, },
"location" : ["CodeableConcept.coding[0].code"], "location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"] "expression" : ["CodeableConcept.coding[0].code"]
},
{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-server",
"valueUrl" : "http://tx-dev.fhir.org/r4"
}],
"severity" : "information",
"code" : "invalid",
"details" : {
"coding" : [{
"system" : "http://hl7.org/fhir/tools/CodeSystem/tx-issue-type",
"code" : "code-rule"
}],
"text" : "The code '58108001' is valid but is not active"
},
"location" : ["CodeableConcept.coding[0].code"],
"expression" : ["CodeableConcept.coding[0].code"]
}] }]
} }
@ -876,7 +899,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -900,7 +922,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -924,7 +945,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -948,7 +968,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -972,7 +991,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -996,7 +1014,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -1020,7 +1037,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -1043,7 +1059,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -1066,7 +1081,6 @@ v: {
"system" : "http://snomed.info/sct", "system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201", "version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4", "server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : { "issues" : {
"resourceType" : "OperationOutcome" "resourceType" : "OperationOutcome"
} }
@ -1083,6 +1097,74 @@ v: {
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891" "valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}] }]
}}#### }}####
v: {
"display" : "No status change",
"code" : "260388006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "230993007"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "Worsening",
"code" : "230993007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "385633008"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "Improving (qualifier value)",
"code" : "385633008",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20240201",
"server" : "http://tx-dev.fhir.org/r4",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "260388006"
}, "valueSet" :null, "langs":"en, en-US", "useServer":"true", "useClient":"true", "guessSystem":"false", "activeOnly":"false", "exampleOK":"true", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: { v: {
"display" : "No status change", "display" : "No status change",
"code" : "260388006", "code" : "260388006",

View File

@ -14,14 +14,14 @@
HAPI FHIR HAPI FHIR
--> -->
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>6.3.3-SNAPSHOT</version> <version>6.3.4-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<properties> <properties>
<commons_compress_version>1.26.0</commons_compress_version> <commons_compress_version>1.26.0</commons_compress_version>
<guava_version>32.0.1-jre</guava_version> <guava_version>32.0.1-jre</guava_version>
<hapi_fhir_version>6.4.1</hapi_fhir_version> <hapi_fhir_version>6.4.1</hapi_fhir_version>
<validator_test_case_version>1.5.2</validator_test_case_version> <validator_test_case_version>1.5.3</validator_test_case_version>
<jackson_version>2.16.0</jackson_version> <jackson_version>2.16.0</jackson_version>
<junit_jupiter_version>5.9.2</junit_jupiter_version> <junit_jupiter_version>5.9.2</junit_jupiter_version>
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version> <junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>