validation by templateId for CDA

This commit is contained in:
Grahame Grieve 2023-10-20 21:30:25 +11:00
parent 6a78fdd1e0
commit 2f8a5a071e
9 changed files with 256 additions and 96 deletions

View File

@ -424,5 +424,16 @@ public class ContextUtilities implements ProfileKnowledgeProvider {
return null;
}
public StructureDefinition fetchProfileByIdentifier(String tid) {
for (StructureDefinition sd : context.fetchResourcesByType(StructureDefinition.class)) {
for (Identifier ii : sd.getIdentifier()) {
if (tid.equals(ii.getValue())) {
return sd;
}
}
}
return null;
}
}

View File

@ -541,7 +541,17 @@ public abstract class Base implements Serializable, IBase, IElement {
return vi;
}
public boolean hasValidated(StructureDefinition sd, ElementDefinition ed) {
if (validationInfo != null) {
for (ValidationInfo vi : validationInfo) {
if (vi.definition == ed && vi.structure == sd) {
return true;
}
}
}
return false;
}
// validation messages: the validator does not populate these (yet)
public Base addValidationMessage(ValidationMessage msg) {

View File

@ -1010,6 +1010,8 @@ public class I18nConstants {
public static final String XSI_TYPE_WRONG = "XSI_TYPE_WRONG";
public static final String XSI_TYPE_UNNECESSARY = "XSI_TYPE_UNNECESSARY";
public static final String TERMINOLOGY_TX_OID_MULTIPLE_MATCHES = "TERMINOLOGY_TX_OID_MULTIPLE_MATCHES";
public static final String CDA_UNKNOWN_TEMPLATE = "CDA_UNKNOWN_TEMPLATE";
public static final String CDA_UNKNOWN_TEMPLATE_EXT = "CDA_UNKNOWN_TEMPLATE_EXT";
}

View File

@ -976,7 +976,7 @@ ED_INVARIANT_KEY_ALREADY_USED = The constraint key ''{0}'' already exists in the
ED_INVARIANT_NO_EXPRESSION = The constraint ''{0}'' has no computable expression, so validators will not be able to check it
ED_INVARIANT_EXPRESSION_CONFLICT = The constraint ''{0}'' has an expression ''{1}'', which differs from the earlier expression provided of ''{2}'' (invariants are allowed to repeat, but cannot differ)
ED_INVARIANT_EXPRESSION_ERROR = Error in constraint ''{0}'' with expression ''{1}'': {2}
SNAPSHOT_IS_EMPTY = The snapshot for the profile ''{0}'' is empty (which should not happen)
SNAPSHOT_IS_EMPTY = The snapshot for the profile ''{0}'' is empty. This is usually due to a processing logged elsewhere
TERMINOLOGY_TX_HINT = {1}
TERMINOLOGY_TX_WARNING = {1}
SD_ED_TYPE_WRONG_TYPE_one = The element has a type {0} which is different to the type {1} on the base profile {2}
@ -1062,8 +1062,10 @@ LOGICAL_MODEL_QNAME_MISMATCH = The QName ''{0}'' does not match the expected QNa
FHIRPATH_CHOICE_NO_TYPE_SPECIFIER = The expression ''{0}'' refers to an element that is a choice, but doesn''t have an .ofType() so that SQL view runners can pre-determine the full element name
FHIRPATH_CHOICE_SPURIOUS_TYPE_SPECIFIER = The expression ''{0}'' refers to an element that is not a choice, but has an .ofType(). SQL view runners are likely to pre-determine an incorrect full element name
FHIRPATH_NOT_A_COLLECTION = Found a use of a collection operator on something that is not a collection at ''{0}'' - check that there's no mistakes in the expression syntax
TERMINOLOGY_TX_UNKNOWN_OID = The OID ''{0}'' is not known
TERMINOLOGY_TX_UNKNOWN_OID = The OID ''{0}'' is not known, so the code can't be validated
TERMINOLOGY_TX_SYSTEM_NO_CODE = A code with no system has no defined meaning, and it cannot be validated. A system should be provided
XSI_TYPE_WRONG = The xsi:type value ''{0}'' is wrong (should be ''{1}''). Note that xsi:type is unnecessary at this point
XSI_TYPE_UNNECESSARY = xsi:type is unnecessary at this point
TERMINOLOGY_TX_OID_MULTIPLE_MATCHES = The OID ''{0}'' matches multiple code systems ({1})
CDA_UNKNOWN_TEMPLATE = The CDA Template {0} is not known
CDA_UNKNOWN_TEMPLATE_EXT = The CDA Template {0} / {1} is not known

View File

@ -502,12 +502,14 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
public boolean testMode;
private boolean example ;
private IDigitalSignatureServices signatureServices;
private ContextUtilities cu;
public InstanceValidator(@Nonnull IWorkerContext theContext, @Nonnull IEvaluationContext hostServices, @Nonnull XVerExtensionManager xverManager) {
super(theContext, xverManager, false);
start = System.currentTimeMillis();
this.externalHostServices = hostServices;
this.profileUtilities = new ProfileUtilities(theContext, null, null);
cu = new ContextUtilities(theContext);
fpe = new FHIRPathEngine(context);
validatorServices = new ValidatorHostServices();
fpe.setHostServices(validatorServices);
@ -1662,7 +1664,7 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
c.setSystem("urn:oid:"+oid);
ok = false;
if (urls.size() == 0) {
rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid);
warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid);
} else {
rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, CommaSeparatedStringBuilder.join(",", urls));
}
@ -5799,6 +5801,25 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
ok = checkChild(valContext, errors, profile, definition, resource, element, actualType, stack, inCodeableConcept, checkDisplayInContext, ei, extensionUrl, pct, mode) && ok;
}
vi.setValid(ok);
if (!definition.getPath().contains(".") && profile.hasExtension(ToolingExtensions.EXT_PROFILE_STYLE) && "cda".equals(ToolingExtensions.readStringExtension(profile, ToolingExtensions.EXT_PROFILE_STYLE))) {
List<Element> templates = element.getChildren("templateId");
for (Element t : templates) {
String tid = "urn:hl7ii:"+t.getChildValue("root")+(t.hasChild("extension") ? ":"+t.getChildValue("extension") : "");
StructureDefinition sd = cu.fetchProfileByIdentifier(tid);
if (sd == null) {
ok = rule(errors, "2023-10-20", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), false, t.hasChild("extension") ? I18nConstants.CDA_UNKNOWN_TEMPLATE_EXT : I18nConstants.CDA_UNKNOWN_TEMPLATE, t.getChildValue("root"), t.getChildValue("extension")) && ok;
} else {
ElementDefinition ed = sd.getSnapshot().getElementFirstRep();
if (!element.hasValidated(sd, ed)) {
element.addMessage(signpost(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, element.line(), element.col(), stack.getLiteralPath(), I18nConstants.VALIDATION_VAL_PROFILE_SIGNPOST, sd.getVersionedUrl()));
ok = validateElement(valContext, errors, sd, ed, null, null, resource, element, actualType, stack, inCodeableConcept, checkDisplayInContext, extensionUrl, pct, mode) && ok;
}
}
}
}
return ok;
}
@ -6060,13 +6081,15 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
if (defn != null && defn.hasExtension(ToolingExtensions.EXT_BINDING_STYLE)) {
String style = ToolingExtensions.readStringExtension(defn, ToolingExtensions.EXT_BINDING_STYLE);
if ("CDA".equals(style)) {
if (cdaTypeIs(defn, "CS")) {
ok = checkCDACodeSimple(valContext, errors, ei.getPath(), ei.getElement(), profile, checkDefn, stack, defn) && ok;
} else if (cdaTypeIs(defn, "CV") || cdaTypeIs(defn, "PQ")) {
ok = checkCDACoding(errors, ei.getPath(), cdaTypeIs(defn, "PQ"), ei.getElement(), profile, checkDefn, stack, defn, inCodeableConcept, checkDisplayInContext) && ok;
} else if (cdaTypeIs(defn, "CD") || cdaTypeIs(defn, "CE")) {
ok = checkCDACodeableConcept(errors, ei.getPath(), ei.getElement(), profile, checkDefn, stack, defn) && ok;
thisIsCodeableConcept = true;
if (!ei.getElement().hasChild("nullFlavor")) {
if (cdaTypeIs(defn, "CS")) {
ok = checkCDACodeSimple(valContext, errors, ei.getPath(), ei.getElement(), profile, checkDefn, stack, defn) && ok;
} else if (cdaTypeIs(defn, "CV") || cdaTypeIs(defn, "PQ")) {
ok = checkCDACoding(errors, ei.getPath(), cdaTypeIs(defn, "PQ"), ei.getElement(), profile, checkDefn, stack, defn, inCodeableConcept, checkDisplayInContext) && ok;
} else if (cdaTypeIs(defn, "CD") || cdaTypeIs(defn, "CE")) {
ok = checkCDACodeableConcept(errors, ei.getPath(), ei.getElement(), profile, checkDefn, stack, defn) && ok;
thisIsCodeableConcept = true;
}
}
}
}
@ -6180,7 +6203,7 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
boolean ok = true;
String system = null;
String code = element.getNamedChildValue(isPQ ? "unit" : "code");
String oid = element.getNamedChildValue("codeSystem");
String oid = isPQ ? "2.16.840.1.113883.6.8" : element.getNamedChildValue("codeSystem");
if (oid != null) {
Set<String> urls = context.urlsForOid(true, oid);
if (urls.size() != 1) {
@ -6188,7 +6211,7 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
ok = false;
if (urls.size() == 0) {
rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid);
warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid);
} else {
rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, CommaSeparatedStringBuilder.join(",", urls));
}

View File

@ -1446,6 +1446,25 @@ v: {
"severity" : "error",
"error" : "The CodeSystem is unknown (from Tx-Server)",
"class" : "UNKNOWN",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"code" : "en-US"
}, "url": "http://hl7.org/fhir/ValueSet/all-languages", "version": "4.0.1", "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"true", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "English (Region=United States)",
"code" : "en-US",
"system" : "urn:ietf:bcp:47",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"

View File

@ -2963,7 +2963,6 @@ v: {
"code" : "195967001",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -2985,7 +2984,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'HTN' for http://snomed.info/sct#59621000 - should be one of 5 choices: 'Essential hypertension', 'Idiopathic hypertension', 'Systemic primary arterial hypertension', 'Primary hypertension' or 'Essential hypertension (disorder)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3007,7 +3005,6 @@ v: {
"code" : "396275006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3029,7 +3026,6 @@ v: {
"code" : "78615007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
@ -3100,7 +3096,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Theophylline' for http://snomed.info/sct#66493003 - should be one of 2 choices: 'Product containing theophylline (medicinal product)' or 'Theophylline-containing product' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3122,7 +3117,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Albuterol' for http://snomed.info/sct#91143003 - should be one of 3 choices: 'Product containing salbutamol (medicinal product)', 'Albuterol-containing product' or 'Salbutamol-containing product' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3144,7 +3138,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Prednisone preparation' for http://snomed.info/sct#10312003 - should be one of 2 choices: 'Product containing prednisone (medicinal product)' or 'Prednisone-containing product' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3166,7 +3159,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Hydrochlorothiazide 25mg tablet' for http://snomed.info/sct#376209006 - should be one of 2 choices: 'Hydrochlorothiazide 25 mg oral tablet' or 'Product containing precisely hydrochlorothiazide 25 milligram/1 each conventional release oral tablet (clinical drug)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3188,7 +3180,6 @@ v: {
"code" : "247472004",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3210,7 +3201,6 @@ v: {
"code" : "91936005",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3232,7 +3222,6 @@ v: {
"code" : "56018004",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3254,7 +3243,6 @@ v: {
"code" : "293586001",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3276,7 +3264,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Pruritis' for http://snomed.info/sct#32738000 - should be one of 6 choices: 'Pruritus', 'Itching', 'Itch', 'Itchy', 'Itch of skin' or 'Pruritus (finding)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3298,7 +3285,6 @@ v: {
"code" : "62014003",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3320,7 +3306,6 @@ v: {
"code" : "246075003",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3342,7 +3327,6 @@ v: {
"code" : "73879007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3363,7 +3347,6 @@ v: {
"code" : "84100007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3385,7 +3368,6 @@ v: {
"code" : "84100007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3407,7 +3389,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'MI' for http://snomed.info/sct#22298006 - should be one of 7 choices: 'Myocardial infarction', 'Infarction of heart', 'Cardiac infarction', 'Heart attack', 'Myocardial infarction (disorder)', 'Myocardial infarct' or 'MI - myocardial infarction' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3429,7 +3410,6 @@ v: {
"code" : "399347008",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3451,7 +3431,6 @@ v: {
"code" : "275937001",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3473,7 +3452,6 @@ v: {
"code" : "160274005",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3495,7 +3473,6 @@ v: {
"code" : "266924008",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3517,7 +3494,6 @@ v: {
"code" : "160625004",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3539,7 +3515,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Trivial drinker - less than 1/day' for http://snomed.info/sct#266917007 - should be one of 2 choices: 'Trivial drinker - <1u/day' or 'Trivial drinker - <1u/day (finding)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3561,7 +3536,6 @@ v: {
"code" : "50373000",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3583,7 +3557,6 @@ v: {
"code" : "363808001",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3605,7 +3578,6 @@ v: {
"code" : "60621009",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3627,7 +3599,6 @@ v: {
"code" : "301898006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3649,7 +3620,6 @@ v: {
"code" : "386725007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3671,7 +3641,6 @@ v: {
"code" : "364075005",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3693,7 +3662,6 @@ v: {
"code" : "364074009",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3715,7 +3683,6 @@ v: {
"code" : "86290005",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3737,7 +3704,6 @@ v: {
"code" : "276362002",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3759,7 +3725,6 @@ v: {
"code" : "251076008",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3781,7 +3746,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Systolic BP' for http://snomed.info/sct#271649006 - should be one of 3 choices: 'Systolic blood pressure', 'Systolic blood pressure (observable entity)' or 'SAP - Systolic arterial pressure' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3803,7 +3767,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Diastolic BP' for http://snomed.info/sct#271650006 - should be one of 3 choices: 'Diastolic blood pressure', 'Diastolic blood pressure (observable entity)' or 'DBP - diastolic blood pressure' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3825,7 +3788,6 @@ v: {
"code" : "271807003",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3847,7 +3809,6 @@ v: {
"code" : "32750006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3869,7 +3830,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Chest clear' for http://snomed.info/sct#48348007 - should be one of 3 choices: 'Normal breath sounds', 'Normal respiratory sounds' or 'Normal breath sounds (finding)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3891,7 +3851,6 @@ v: {
"code" : "37931006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3913,7 +3872,6 @@ v: {
"code" : "76863003",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3935,7 +3893,6 @@ v: {
"code" : "88610006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3957,7 +3914,6 @@ v: {
"code" : "277455002",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -3979,7 +3935,6 @@ v: {
"code" : "60721002",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4001,7 +3956,6 @@ v: {
"code" : "282290005",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4023,7 +3977,6 @@ v: {
"code" : "249674001",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4043,7 +3996,6 @@ v: {
"severity" : "error",
"error" : "Unable to find code in http://snomed.info/sct (version http://snomed.info/sct/900000000000207008/version/20230731); Unknown Code '' in the system 'http://snomed.info/sct|http://snomed.info/sct/900000000000207008/version/20230731'; The provided code 'http://snomed.info/sct#' is not in the value set 'http://hl7.org/fhir/ValueSet/@all' (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4065,7 +4017,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Chest-X-ray' for http://snomed.info/sct#56350004 - should be one of 2 choices: 'Routine chest X-ray' or 'Routine chest X-ray (procedure)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4087,7 +4038,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Peak flow' for http://snomed.info/sct#313193002 - should be one of 4 choices: 'Peak flow rate (respiratory)', 'Peak flow rate', 'Peak flow rate (respiratory) (observable entity)' or 'PFR - Peak flow rate' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4109,7 +4059,6 @@ v: {
"code" : "14657009",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4131,7 +4080,6 @@ v: {
"code" : "23426006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4153,7 +4101,6 @@ v: {
"code" : "252472004",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4175,7 +4122,6 @@ v: {
"code" : "223468009",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4197,7 +4143,6 @@ v: {
"code" : "363702006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4219,7 +4164,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Skin of palmer surface of index finger' for http://snomed.info/sct#48856004 - should be one of 3 choices: 'Skin of palmar surface of index finger', 'Skin structure of palmar surface of index finger' or 'Skin structure of palmar surface of index finger (body structure)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4241,7 +4185,6 @@ v: {
"severity" : "error",
"error" : "Wrong Display Name 'Hydrocortisone cream' for http://snomed.info/sct#331646005 - should be one of 2 choices: 'Hydrocortisone creams' or 'Hydrocortisone creams (product)' (for the language(s) 'en') (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -4263,6 +4206,116 @@ v: {
"code" : "185389009",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "78615007",
"display" : "with laterality"
}, "valueSet" :null, "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"false", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "With laterality",
"code" : "78615007",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome",
"issue" : [{
"severity" : "information",
"code" : "invalid",
"details" : {
"text" : "The code '78615007' is valid but is not active"
}
},
{
"severity" : "information",
"code" : "invalid",
"details" : {
"text" : "The code '78615007' is valid but is not active"
}
},
{
"severity" : "information",
"code" : "invalid",
"details" : {
"text" : "The code '78615007' is valid but is not active"
}
},
{
"severity" : "information",
"code" : "invalid",
"details" : {
"text" : "The code '78615007' is valid but is not active"
}
},
{
"severity" : "information",
"code" : "invalid",
"details" : {
"text" : "The code '78615007' is valid but is not active"
}
},
{
"severity" : "information",
"code" : "invalid",
"details" : {
"text" : "The code '78615007' is valid but is not active"
}
}]
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "246075003",
"display" : "causative agent"
}, "valueSet" :null, "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"false", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "Causative agent",
"code" : "246075003",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://snomed.info/sct",
"code" : "363702006",
"display" : "has focus"
}, "valueSet" :null, "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"false", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "Has focus",
"code" : "363702006",
"system" : "http://snomed.info/sct",
"version" : "http://snomed.info/sct/900000000000207008/version/20230731",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"

View File

@ -14,7 +14,6 @@ v: {
"code" : "%",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -36,7 +35,6 @@ v: {
"code" : "L/min",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -58,7 +56,6 @@ v: {
"code" : "%",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -79,7 +76,6 @@ v: {
"severity" : "error",
"error" : "The provided code 'http://unitsofmeasure.org#L/min' is not in the value set 'http://hl7.org/fhir/ValueSet/ucum-vitals-common--0|4.0.1' (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -101,7 +97,6 @@ v: {
"code" : "cm",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -122,7 +117,6 @@ v: {
"severity" : "error",
"error" : "The provided code 'http://unitsofmeasure.org#cm' is not in the value set 'https://bb/ValueSet/BBDemographicAgeUnit--0|20190731' (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -144,7 +138,6 @@ v: {
"code" : "min",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -166,7 +159,6 @@ v: {
"code" : "mmol/L",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -188,7 +180,6 @@ v: {
"code" : "kg",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -210,7 +201,6 @@ v: {
"code" : "kg/m2",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -232,7 +222,6 @@ v: {
"code" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -254,7 +243,6 @@ v: {
"code" : "wk",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -276,7 +264,6 @@ v: {
"code" : "mm[Hg]",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -298,7 +285,6 @@ v: {
"code" : "{capsule}",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -320,7 +306,6 @@ v: {
"code" : "{patch}",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -342,7 +327,6 @@ v: {
"code" : "m",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -363,7 +347,6 @@ v: {
"severity" : "error",
"error" : "The provided code 'http://unitsofmeasure.org#m' is not in the value set 'http://hl7.org/fhir/ValueSet/age-units--0|4.0.1' (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -385,7 +368,6 @@ v: {
"code" : "/min",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -407,7 +389,6 @@ v: {
"code" : "mg",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -429,7 +410,6 @@ v: {
"code" : "mm",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -451,7 +431,6 @@ v: {
"code" : "kg",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -473,7 +452,6 @@ v: {
"code" : "Cel",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -495,7 +473,6 @@ v: {
"code" : "g",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -517,7 +494,6 @@ v: {
"code" : "mm[Hg]{hg}",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -538,7 +514,6 @@ v: {
"severity" : "error",
"error" : "Error processing Unit: 'fmm[Hg]': The unit \"fmm[Hg]\" is unknown at character 1; Unknown Code 'fmm[Hg]' in the system 'http://unitsofmeasure.org'; The provided code 'http://unitsofmeasure.org#fmm[Hg]' is not in the value set 'http://hl7.org/fhir/ValueSet/@all' (from Tx-Server)",
"class" : "UNKNOWN",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
@ -560,6 +535,71 @@ v: {
"code" : "J/C",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://unitsofmeasure.org",
"code" : "h"
}, "valueSet" :null, "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"false", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "h",
"code" : "h",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://unitsofmeasure.org",
"code" : "ar"
}, "valueSet" :null, "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"false", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "ar",
"code" : "ar",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"
}
}
-------------------------------------------------------------------------------------
{"code" : {
"system" : "http://unitsofmeasure.org",
"code" : "l"
}, "valueSet" :null, "langs":"", "useServer":"true", "useClient":"true", "guessSystem":"false", "valueSetMode":"ALL_CHECKS", "displayWarningMode":"false", "versionFlexible":"false", "profile": {
"resourceType" : "Parameters",
"parameter" : [{
"name" : "profile-url",
"valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891"
}]
}}####
v: {
"display" : "l",
"code" : "l",
"system" : "http://unitsofmeasure.org",
"version" : "2.0.1",
"unknown-systems" : "",
"issues" : {
"resourceType" : "OperationOutcome"

View File

@ -20,7 +20,7 @@
<properties>
<guava_version>32.0.1-jre</guava_version>
<hapi_fhir_version>6.4.1</hapi_fhir_version>
<validator_test_case_version>1.4.11</validator_test_case_version>
<validator_test_case_version>1.4.12-SNAPSHOT</validator_test_case_version>
<jackson_version>2.15.2</jackson_version>
<junit_jupiter_version>5.9.2</junit_jupiter_version>
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>