From b94d5567c4f9b1522bcb19810ee0d10c04c032da Mon Sep 17 00:00:00 2001 From: ppazos Date: Sun, 19 Mar 2023 13:22:35 -0300 Subject: [PATCH] fixed tests for JDK11 --- opt.sh | 2 +- .../JsonInstanceCanonicalGenerator2.groovy | 82 ++++++++--------- ...CanonicalGeneratorCardinalityErrors.groovy | 72 +++++++-------- .../RmInstanceGenerator.groovy | 8 +- .../XmlInstanceGenerator.groovy | 32 +++---- .../XmlInstanceGeneratorForCommitter.groovy | 18 ++-- .../openehr/opt/manager/OptManager.groovy | 2 - .../opt/ui_generator/OptUiGenerator.groovy | 14 ++- .../openehr/validation/RmValidator2.groovy | 13 +++ .../cabolabs/openehr/opt/OPTParserTest.groovy | 68 +++++++------- .../openehr/opt/RmValidationTest.groovy | 88 +++++++++---------- .../openehr/opt/ValidationFlowTest.groovy | 74 ++++++++-------- 12 files changed, 240 insertions(+), 233 deletions(-) diff --git a/opt.sh b/opt.sh index 1e5f21b6..96082953 100755 --- a/opt.sh +++ b/opt.sh @@ -1 +1 @@ -java -cp "./lib/*:$GROOVY_HOME/lib/*:build/libs/opt-1.8.19.jar" com.cabolabs.openehr.opt.Main $1 $2 $3 $4 $5 $6 $7 +java -cp "./lib/*:$GROOVY_HOME/lib/*:build/libs/opt-1.8.23.jar" com.cabolabs.openehr.opt.Main $1 $2 $3 $4 $5 $6 $7 diff --git a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGenerator2.groovy b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGenerator2.groovy index c266e579..3d796b8e 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGenerator2.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGenerator2.groovy @@ -52,7 +52,7 @@ class JsonInstanceCanonicalGenerator2 { String time_format = "HH:mm:ss") { /* THIS CANT BE USED UNTIL Groovy 2.5.x, since Grails 3.3.10 uses 2.4.17 we keep building under that version - OLD javadocs by Groovy version + OLD javadocs by Groovy version // https://mrhaki.blogspot.com/2018/06/groovy-goodness-customizing-json-output.html // https://docs.groovy-lang.org/latest/html/gapi/groovy/json/JsonGenerator.Options.html def options = new JsonGenerator.Options() @@ -286,13 +286,13 @@ class JsonInstanceCanonicalGenerator2 { throw new Exception("Error: COMPOSITION is persistent but contains context.") } - + if (category_code == '433') // event { def setting_entry if (!composition_settings[this.opt.langCode]) setting_entry = composition_settings['en'].pick() else setting_entry = composition_settings[this.opt.langCode].pick() - + compo.context = [ start_time: [ value: new Date().toOpenEHRDateTime() @@ -367,7 +367,7 @@ class JsonInstanceCanonicalGenerator2 { if (oa) { - def content = processAttributeChildren(oa, opt.definition.archetypeId) + def content = processAttributeChildren(oa, opt.definition.archetypeId) // it is possible the cardinality upper is lower than the items generated because there are more alternatives // defined than the upper, here we cut the elements to the upper, this check should be on any collection attribute @@ -375,7 +375,7 @@ class JsonInstanceCanonicalGenerator2 { { content = content.take(oa.cardinality.interval.upper) } - + compo.content = content } @@ -428,7 +428,7 @@ class JsonInstanceCanonicalGenerator2 { { capabilities = capabilities.take(oa.cardinality.interval.upper) } - + mobj.capabilities = capabilities } @@ -454,7 +454,7 @@ class JsonInstanceCanonicalGenerator2 { if (oa) { - def contacts = processAttributeChildren(oa, opt.definition.archetypeId) + def contacts = processAttributeChildren(oa, opt.definition.archetypeId) // it is possible the cardinality upper is lower than the items generated because there are more alternatives // defined than the upper, here we cut the elements to the upper, this check should be on any collection attribute @@ -462,7 +462,7 @@ class JsonInstanceCanonicalGenerator2 { { contacts = contacts.take(oa.cardinality.interval.upper) } - + mobj.contacts = contacts } @@ -470,7 +470,7 @@ class JsonInstanceCanonicalGenerator2 { if (oa) { - def identities = processAttributeChildren(oa, opt.definition.archetypeId) + def identities = processAttributeChildren(oa, opt.definition.archetypeId) // it is possible the cardinality upper is lower than the items generated because there are more alternatives // defined than the upper, here we cut the elements to the upper, this check should be on any collection attribute @@ -478,7 +478,7 @@ class JsonInstanceCanonicalGenerator2 { { identities = identities.take(oa.cardinality.interval.upper) } - + mobj.identities = identities } @@ -500,7 +500,7 @@ class JsonInstanceCanonicalGenerator2 { parent_arch_id = o.archetypeId ?: parent_arch_id def mobj = add_LOCATABLE_elements(o, parent_arch_id, o.type == 'C_ARCHETYPE_ROOT') - + def oa = o.attributes.find{ it.rmAttributeName == 'addresses' } if (oa) @@ -513,7 +513,7 @@ class JsonInstanceCanonicalGenerator2 { { addresses = addresses.take(oa.cardinality.interval.upper) } - + mobj.addresses = addresses } // TODO: if there is no constraint, there should be a list with one item generated since it's [1..*] in the RM @@ -637,7 +637,7 @@ class JsonInstanceCanonicalGenerator2 { attrs << "$method"(obj, parent_arch_id) // generate_OBSERVATION(a) } - + return attrs } @@ -940,7 +940,7 @@ class JsonInstanceCanonicalGenerator2 { } */ - def inputStream = getClass().getResourceAsStream(PS +"images"+ PS +"cabolabs_logo.png") + def inputStream = getClass().getResourceAsStream("/images/cabolabs_logo.png") def bytes = inputStream.bytes def _datab64 = bytes.encodeBase64().toString() @@ -963,7 +963,7 @@ class JsonInstanceCanonicalGenerator2 { */ AttributeNode a = o.parent - + def out = [ _type: 'DV_PARSABLE', // TODO: the value should depend on the formalism, we need to have generators to common formalisms @@ -1003,7 +1003,7 @@ class JsonInstanceCanonicalGenerator2 { // TODO: refactor to generate_REAL //println attr_numerator.children[0].item // CReal def num_constraint = attr_numerator.children[0].item.range - + num_lo = (num_constraint.lowerUnbounded ? 0.0f : num_constraint.lower) num_hi = (num_constraint.upperUnbounded ? 1000.0f : num_constraint.upper) @@ -1021,7 +1021,7 @@ class JsonInstanceCanonicalGenerator2 { { // TODO: refactor to generate_REAL def den_constraint = attr_denominator.children[0].item.range - + den_lo = (den_constraint.lowerUnbounded ? 0.0f : den_constraint.lower) den_hi = (den_constraint.upperUnbounded ? 1000.0f : den_constraint.upper) @@ -1144,7 +1144,7 @@ class JsonInstanceCanonicalGenerator2 { value: DataGenerator.duration_value_from_pattern(c_duration.pattern) ] } - + if (c_duration.range) { return [ @@ -1309,7 +1309,7 @@ class JsonInstanceCanonicalGenerator2 { // the first children can be a STRING constraint // check if there is a list constraint and get the first value as the name def value_constraint = name_constraint.children[0].attributes.find { it.rmAttributeName == 'value' } - + // there is a constraint for the name but doesnt have a specific value if (!value_constraint) { @@ -1359,9 +1359,9 @@ class JsonInstanceCanonicalGenerator2 { // archetype_node_id def arch_node_id = (o.archetypeId ?: o.nodeId) - + locatable.archetype_node_id = arch_node_id - + return locatable } @@ -1419,14 +1419,14 @@ class JsonInstanceCanonicalGenerator2 { if (oa) { def items = processAttributeChildren(oa, parent_arch_id) - + // it is possible the cardinality upper is lower than the items generated because there are more alternatives // defined than the upper, here we cut the elements to the upper, this check should be on any collection attribute if (oa.cardinality && oa.cardinality.interval.upper) { items = items.take(oa.cardinality.interval.upper) } - + mobj.items = items } @@ -1441,7 +1441,7 @@ class JsonInstanceCanonicalGenerator2 { def mobj = add_ENTRY_elements(o, parent_arch_id) // adds LOCATABLE fields AttributeNode a = o.parent - + def oa = o.attributes.find { it.rmAttributeName == 'data' } if (oa) { @@ -1470,7 +1470,7 @@ class JsonInstanceCanonicalGenerator2 { def data = processAttributeChildren(oa, parent_arch_id) mobj.data = data[0] } - + return mobj } @@ -1480,7 +1480,7 @@ class JsonInstanceCanonicalGenerator2 { parent_arch_id = o.archetypeId ?: parent_arch_id def mobj = add_ENTRY_elements(o, parent_arch_id) // adds LOCATABLE fields - + def oa = o.attributes.find { it.rmAttributeName == 'data' } if (oa) { @@ -1554,7 +1554,7 @@ class JsonInstanceCanonicalGenerator2 { { mobj.action_archetype_id = 'openEHR-EHR-ACTION\\.sample_action\\.v1' } - + return mobj } @@ -1634,7 +1634,7 @@ class JsonInstanceCanonicalGenerator2 { ] ] ] - + return mobj } @@ -1668,7 +1668,7 @@ class JsonInstanceCanonicalGenerator2 { mobj.events = events } - + return mobj } @@ -1690,7 +1690,7 @@ class JsonInstanceCanonicalGenerator2 { mobj[oa.rmAttributeName] = mattrs[0] } - + return mobj } @@ -1700,7 +1700,7 @@ class JsonInstanceCanonicalGenerator2 { parent_arch_id = o.archetypeId ?: parent_arch_id AttributeNode a = o.parent - + def mobj = add_LOCATABLE_elements(o, parent_arch_id) + generate_attr_DV_DATE_TIME('time') // IM attribute not present in the OPT @@ -1749,10 +1749,10 @@ class JsonInstanceCanonicalGenerator2 { private generate_ITEM_SINGLE(ObjectNode o, String parent_arch_id) { // generate_ITEM_TREE(o, parent_arch_id) - + // parent from now can be different than the parent if if the object has archetypeId parent_arch_id = o.archetypeId ?: parent_arch_id - + def mobj = add_LOCATABLE_elements(o, parent_arch_id, o.type == 'C_ARCHETYPE_ROOT') def oa_item = o.attributes.find{ it.rmAttributeName == 'item' } @@ -1778,7 +1778,7 @@ class JsonInstanceCanonicalGenerator2 { parent_arch_id = o.archetypeId ?: parent_arch_id def mobj = add_LOCATABLE_elements(o, parent_arch_id, o.type == 'C_ARCHETYPE_ROOT') - + def mattr o.attributes.each { oa -> @@ -1798,7 +1798,7 @@ class JsonInstanceCanonicalGenerator2 { parent_arch_id = o.archetypeId ?: parent_arch_id AttributeNode a = o.parent - + def mobj = add_LOCATABLE_elements(o, parent_arch_id, o.type == 'C_ARCHETYPE_ROOT') def mattr @@ -2041,7 +2041,7 @@ class JsonInstanceCanonicalGenerator2 { break case 'list_range': lower_magnitude = lower_primitive.list.sort()[0] // take the lowest value - + if (upper_primitive.range.upper && lower_magnitude > upper_primitive.range.upper) { throw new Exception('The template defines incompatible list constraint for lower and range constraint for upper on an interval') @@ -2086,7 +2086,7 @@ class JsonInstanceCanonicalGenerator2 { // // (upper.range.upperUnbounded || // !lower.range.upperUnbounded && lower.range.upper <= upper.range.upper) - // && + // && // (lower.range.lowerUnbounded || // !upper,range.lowerUnbounded && lower.range.lower <= upper.range.lower // ) @@ -2127,7 +2127,7 @@ class JsonInstanceCanonicalGenerator2 { _type: 'DV_COUNT', magnitude: upper_magnitude ] - + return mobj } @@ -2221,7 +2221,7 @@ class JsonInstanceCanonicalGenerator2 { // // (upper.range.upperUnbounded || // !lower.range.upperUnbounded && lower.range.upper <= upper.range.upper) - // && + // && // (lower.range.lowerUnbounded || // !upper,range.lowerUnbounded && lower.range.lower <= upper.range.lower // ) @@ -2264,7 +2264,7 @@ class JsonInstanceCanonicalGenerator2 { magnitude: upper_magnitude, units: _units ] - + return mobj } @@ -2279,7 +2279,7 @@ class JsonInstanceCanonicalGenerator2 { ] // TODO: refactor with XmlInstanceGEnerator since the code is the same - + // get constraints for DV_COUNT limits def lower_attr = o.attributes.find { it.rmAttributeName == 'lower' } def upper_attr = o.attributes.find { it.rmAttributeName == 'upper' } diff --git a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGeneratorCardinalityErrors.groovy b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGeneratorCardinalityErrors.groovy index 3ea62529..9f9d7c56 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGeneratorCardinalityErrors.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/JsonInstanceCanonicalGeneratorCardinalityErrors.groovy @@ -55,7 +55,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { def JsonInstanceCanonicalGeneratorCardinalityErrors(String datetime_format = "yyyyMMdd'T'HHmmss,SSSZ") { /* THIS CANT BE USED UNTIL Groovy 2.5.x, since Grails 3.3.10 uses 2.4.17 we keep building under that version - OLD javadocs by Groovy version + OLD javadocs by Groovy version // https://mrhaki.blogspot.com/2018/06/groovy-goodness-customizing-json-output.html // https://docs.groovy-lang.org/latest/html/gapi/groovy/json/JsonGenerator.Options.html def options = new JsonGenerator.Options() @@ -130,9 +130,9 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { terminology = TerminologyParser.getInstance() - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_en.xml")) // this works to load the resource from the jar - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_es.xml")) - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_pt.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_en.xml")) // this works to load the resource from the jar + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_es.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_pt.xml")) } /** @@ -274,13 +274,13 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { throw new Exception("Error: COMPOSITION is persistent but contains context.") } - + if (category_code == '433') // event { def setting_entry if (!composition_settings[this.opt.langCode]) setting_entry = composition_settings['en'].pick() else setting_entry = composition_settings[this.opt.langCode].pick() - + compo.context = [ start_time: [ value: formatter.format(new Date()) @@ -353,7 +353,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { if (!oa) throw new Exception("The OPT doesn't have a structure for COMPOSITION.content") - def content = processAttributeChildren(oa, opt.definition.archetypeId) + def content = processAttributeChildren(oa, opt.definition.archetypeId) // it is possible the cardinality upper is lower than the items generated because there are more alternatives // defined than the upper, here we cut the elements to the upper, this check should be on any collection attribute @@ -363,7 +363,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { content = content.take(oa.cardinality.interval.upper) } */ - + compo.content = content return compo @@ -404,7 +404,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { } else { - children = [ a.children[0] ] + children = [ a.children[0] ] } // NOTE: this will generate validations errors for cardinality @@ -446,7 +446,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { attrs << processAttributeChildrenForObject(obj, parent_arch_id) } } - + return attrs } @@ -761,7 +761,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { } */ - def inputStream = getClass().getResourceAsStream(PS +"images"+ PS +"cabolabs_logo.png") + def inputStream = getClass().getResourceAsStream("/images/cabolabs_logo.png") def bytes = inputStream.bytes def _datab64 = bytes.encodeBase64().toString() @@ -813,7 +813,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { // TODO: refactor to generate_REAL //println attr_numerator.children[0].item // CReal def num_constraint = attr_numerator.children[0].item.range - + num_lo = (num_constraint.lowerUnbounded ? 0.0f : num_constraint.lower) num_hi = (num_constraint.upperUnbounded ? 1000.0f : num_constraint.upper) @@ -831,7 +831,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { { // TODO: refactor to generate_REAL def den_constraint = attr_denominator.children[0].item.range - + den_lo = (den_constraint.lowerUnbounded ? 0.0f : den_constraint.lower) den_hi = (den_constraint.upperUnbounded ? 1000.0f : den_constraint.upper) @@ -954,7 +954,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { value: DataGenerator.duration_value_from_pattern(c_duration.pattern) ] } - + if (c_duration.range) { return [ @@ -1119,7 +1119,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { // the first children can be a STRING constraint // check if there is a list constraint and get the first value as the name def value_constraint = name_constraint.children[0].attributes.find { it.rmAttributeName == 'value' } - + // there is a constraint for the name but doesnt have a specific value if (!value_constraint) { @@ -1169,9 +1169,9 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { // archetype_node_id def arch_node_id = (o.archetypeId ?: o.nodeId) - + locatable.archetype_node_id = arch_node_id - + return locatable } @@ -1229,7 +1229,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { if (oa) { def items = processAttributeChildren(oa, parent_arch_id) - + // it is possible the cardinality upper is lower than the items generated because there are more alternatives // defined than the upper, here we cut the elements to the upper, this check should be on any collection attribute /* @@ -1238,7 +1238,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { items = items.take(oa.cardinality.interval.upper) } */ - + mobj.items = items } @@ -1253,7 +1253,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { def mobj = add_ENTRY_elements(o, parent_arch_id) // adds LOCATABLE fields AttributeNode a = o.parent - + def oa = o.attributes.find { it.rmAttributeName == 'data' } if (oa) { @@ -1282,7 +1282,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { def data = processAttributeChildren(oa, parent_arch_id) mobj.data = data[0] } - + return mobj } @@ -1292,7 +1292,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { parent_arch_id = o.archetypeId ?: parent_arch_id def mobj = add_ENTRY_elements(o, parent_arch_id) // adds LOCATABLE fields - + def oa = o.attributes.find { it.rmAttributeName == 'data' } if (oa) { @@ -1366,7 +1366,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { { mobj.action_archetype_id = 'openEHR-EHR-ACTION\\.sample_action\\.v1' } - + return mobj } @@ -1446,7 +1446,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { ] ] ] - + return mobj } @@ -1482,7 +1482,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { mobj.events = events } - + return mobj } @@ -1504,7 +1504,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { mobj[oa.rmAttributeName] = mattrs[0] } - + return mobj } @@ -1514,7 +1514,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { parent_arch_id = o.archetypeId ?: parent_arch_id AttributeNode a = o.parent - + def mobj = add_LOCATABLE_elements(o, parent_arch_id) + // _type, name, archetype_node_id generate_attr_DV_DATE_TIME('time') // IM attribute not present in the OPT @@ -1563,10 +1563,10 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { private generate_ITEM_SINGLE(ObjectNode o, String parent_arch_id) { // generate_ITEM_TREE(o, parent_arch_id) - + // parent from now can be different than the parent if if the object has archetypeId parent_arch_id = o.archetypeId ?: parent_arch_id - + def mobj = add_LOCATABLE_elements(o, parent_arch_id) // _type, name, archetype_node_id def oa_item = o.attributes.find{ it.rmAttributeName == 'item' } @@ -1594,7 +1594,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { //AttributeNode a = o.parent def mobj = add_LOCATABLE_elements(o, parent_arch_id) // _type, name, archetype_node_id - + def mattr o.attributes.each { oa -> @@ -1614,7 +1614,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { parent_arch_id = o.archetypeId ?: parent_arch_id AttributeNode a = o.parent - + def mobj = add_LOCATABLE_elements(o, parent_arch_id) // _type, name, archetype_node_id def mattr @@ -1805,7 +1805,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { break case 'list_range': lower_magnitude = lower_primitive.list.sort()[0] // take the lowest value - + if (upper_primitive.range.upper && lower_magnitude > upper_primitive.range.upper) { throw new Exception('The template defines incompatible list constraint for lower and range constraint for upper on an interval') @@ -1850,7 +1850,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { // // (upper.range.upperUnbounded || // !lower.range.upperUnbounded && lower.range.upper <= upper.range.upper) - // && + // && // (lower.range.lowerUnbounded || // !upper,range.lowerUnbounded && lower.range.lower <= upper.range.lower // ) @@ -1891,7 +1891,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { _type: 'DV_COUNT', magnitude: upper_magnitude ] - + return mobj } @@ -1900,7 +1900,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { def mobj = [ _type: 'DV_INTERVAL' // removed generics because of https://discourse.openehr.org/t/correct-use-of-generic-types-in-xml-and-json/1504/16 ] - + // default included limits mobj.lower_included = true mobj.upper_included = true @@ -1961,7 +1961,7 @@ class JsonInstanceCanonicalGeneratorCardinalityErrors { } mobj.upper_unbounded = upperUnbounded } - + return mobj } diff --git a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/RmInstanceGenerator.groovy b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/RmInstanceGenerator.groovy index e1be0396..49a5727b 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/RmInstanceGenerator.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/RmInstanceGenerator.groovy @@ -188,9 +188,9 @@ class RmInstanceGenerator { terminology = TerminologyParser.getInstance() // TODO: integrate german terminology - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_en.xml")) // this works to load the resource from the jar - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_es.xml")) - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_pt.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_en.xml")) // this works to load the resource from the jar + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_es.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_pt.xml")) } /** @@ -813,7 +813,7 @@ class RmInstanceGenerator { } */ - def inputStream = getClass().getResourceAsStream(PS +"images"+ PS +"cabolabs_logo.png") + def inputStream = getClass().getResourceAsStream("/images/cabolabs_logo.png") def bytes = inputStream.bytes def _datab64 = bytes.encodeBase64().toString() diff --git a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGenerator.groovy b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGenerator.groovy index cf0c0479..f7ec9727 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGenerator.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGenerator.groovy @@ -157,9 +157,9 @@ class XmlInstanceGenerator { terminology.parseTerms(new File("resources"+ PS +"terminology"+ PS +"openehr_terminology_pt.xml")) } */ - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_en.xml")) // this works to load the resource from the jar - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_es.xml")) - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_pt.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_en.xml")) // this works to load the resource from the jar + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_es.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_pt.xml")) } /** @@ -344,7 +344,7 @@ class XmlInstanceGenerator { def setting_entry if (!composition_settings[this.opt.langCode]) setting_entry = composition_settings['en'].pick() else setting_entry = composition_settings[this.opt.langCode].pick() - + builder.context() { start_time() { value( new Date().toOpenEHRDateTime() ) @@ -407,7 +407,7 @@ class XmlInstanceGenerator { } } - + /** * /DATATYPES ----------------------------------------------------------------------------------------------- */ @@ -905,7 +905,7 @@ class XmlInstanceGenerator { // TODO: refactor to generate_REAL //println attr_numerator.children[0].item // CReal def num_constraint = attr_numerator.children[0].item.range - + num_lo = (num_constraint.lowerUnbounded ? 0.0f : num_constraint.lower) num_hi = (num_constraint.upperUnbounded ? 1000.0f : num_constraint.upper) @@ -923,7 +923,7 @@ class XmlInstanceGenerator { { // TODO: refactor to generate_REAL def den_constraint = attr_denominator.children[0].item.range - + den_lo = (den_constraint.lowerUnbounded ? 0.0f : den_constraint.lower) den_hi = (den_constraint.upperUnbounded ? 1000.0f : den_constraint.upper) @@ -1241,7 +1241,7 @@ class XmlInstanceGenerator { def arch_node_id = (o.archetypeId ?: o.nodeId) builder."${a.rmAttributeName}"('xsi:type': o.rmTypeName, archetype_node_id: arch_node_id) { - + add_LOCATABLE_elements(o, parent_arch_id, o.type == 'C_ARCHETYPE_ROOT') oa = o.attributes.find { it.rmAttributeName == 'items' } @@ -1655,7 +1655,7 @@ class XmlInstanceGenerator { // is it arcehtyped or not? def arch_node_id = (o.archetypeId ?: o.nodeId) - + int nodes = 0 builder."${a.rmAttributeName}"('xsi:type': o.rmTypeName, archetype_node_id:arch_node_id) { @@ -1779,7 +1779,7 @@ class XmlInstanceGenerator { // generate valid values simultaneously to be valid and lower <= upper // all the checks for existence of every constraint at each level is needed because most are // optional, and each 'else' would be a 'no_constraint' case. - + // get constraints for DV_COUNT limits def lower_attr = o.attributes.find { it.rmAttributeName == 'lower' } def upper_attr = o.attributes.find { it.rmAttributeName == 'upper' } @@ -1875,7 +1875,7 @@ class XmlInstanceGenerator { break case 'list_range': lower_magnitude = lower_primitive.list.sort()[0] // take the lowest value - + if (upper_primitive.range.upper && lower_magnitude > upper_primitive.range.upper) { throw new Exception('The template defines incompatible list constraint for lower and range constraint for upper on an interval') @@ -1920,7 +1920,7 @@ class XmlInstanceGenerator { // // (upper.range.upperUnbounded || // !lower.range.upperUnbounded && lower.range.upper <= upper.range.upper) - // && + // && // (lower.range.lowerUnbounded || // !upper,range.lowerUnbounded && lower.range.lower <= upper.range.lower // ) @@ -2080,7 +2080,7 @@ class XmlInstanceGenerator { // // (upper.range.upperUnbounded || // !lower.range.upperUnbounded && lower.range.upper <= upper.range.upper) - // && + // && // (lower.range.lowerUnbounded || // !upper,range.lowerUnbounded && lower.range.lower <= upper.range.lower // ) @@ -2125,7 +2125,7 @@ class XmlInstanceGenerator { magnitude(upper_magnitude) units(_units) } - + def _lower_included = true, _upper_included = true, _lower_unbounded = false, @@ -2154,11 +2154,11 @@ class XmlInstanceGenerator { false */ - + // generate valid values simultaneously to be valid and lower <= upper // all the checks for existence of every constraint at each level is needed because most are // optional, and each 'else' would be a 'no_constraint' case. - + // get constraints for DV_COUNT limits def lower_attr = o.attributes.find { it.rmAttributeName == 'lower' } def upper_attr = o.attributes.find { it.rmAttributeName == 'upper' } diff --git a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGeneratorForCommitter.groovy b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGeneratorForCommitter.groovy index 82fa2b96..2d5f70a1 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGeneratorForCommitter.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/instance_generator/XmlInstanceGeneratorForCommitter.groovy @@ -12,8 +12,6 @@ import java.text.SimpleDateFormat */ class XmlInstanceGeneratorForCommitter { - static String PS = File.separator - def opt def writer def builder @@ -103,9 +101,9 @@ class XmlInstanceGeneratorForCommitter { // --------------------------------------------------------------------------------- terminology = TerminologyParser.getInstance() - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_en.xml")) // this works to load the resource from the jar - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_es.xml")) - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_pt.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_en.xml")) // this works to load the resource from the jar + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_es.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_pt.xml")) } /** @@ -291,10 +289,10 @@ class XmlInstanceGeneratorForCommitter { def setting_entry if (!composition_settings[this.opt.langCode]) setting_entry = composition_settings['en'].pick() else setting_entry = composition_settings[this.opt.langCode].pick() - + def m = builder.mkp - - + + builder.context() { start_time() { value('[[COMPOSITION_DATE:::DATETIME:::NOW]]') @@ -553,7 +551,7 @@ class XmlInstanceGeneratorForCommitter { value('[['+ label +':::DATETIME:::NOW]]') } } - + private generate_DV_TIME(ObjectNode o, String parent_arch_id) { /* @@ -650,7 +648,7 @@ class XmlInstanceGeneratorForCommitter { */ - def _dataf = getClass().getResourceAsStream(PS +"images"+ PS +"cabolabs_logo.png").getBytes() + def _dataf = getClass().getResourceAsStream("/images/cabolabs_logo.png").getBytes() def _datab64 = _dataf.encodeBase64().toString() AttributeNode a = o.parent diff --git a/src/main/groovy/com/cabolabs/openehr/opt/manager/OptManager.groovy b/src/main/groovy/com/cabolabs/openehr/opt/manager/OptManager.groovy index 696f6436..8464b92f 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/manager/OptManager.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/manager/OptManager.groovy @@ -19,8 +19,6 @@ class OptManager { // most OS have a file name limit of 255, so that should be the limit of the ns size public static String DEFAULT_NAMESPACE = 'com.cabolabs.openehr_opt.namespaces.default' -// private String baseOptRepoPath = "opts"+ PS - // [namespace -> [optid -> OPT]] private static Map> cache = [:] diff --git a/src/main/groovy/com/cabolabs/openehr/opt/ui_generator/OptUiGenerator.groovy b/src/main/groovy/com/cabolabs/openehr/opt/ui_generator/OptUiGenerator.groovy index 93c7f029..239b1d77 100644 --- a/src/main/groovy/com/cabolabs/openehr/opt/ui_generator/OptUiGenerator.groovy +++ b/src/main/groovy/com/cabolabs/openehr/opt/ui_generator/OptUiGenerator.groovy @@ -18,16 +18,14 @@ class OptUiGenerator { 'DV_ORDINAL', 'DV_DATE', 'DV_DATE_TIME', 'DV_PROPORTION', 'DV_DURATION'] - static String PS = File.separator - String generate(OperationalTemplate opt) { this.opt = opt this.terminology = TerminologyParser.getInstance() - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_en.xml")) // this works to load the resource from the jar - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_es.xml")) - terminology.parseTerms(getClass().getResourceAsStream(PS +"terminology"+ PS +"openehr_terminology_pt.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_en.xml")) // this works to load the resource from the jar + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_es.xml")) + terminology.parseTerms(getClass().getResourceAsStream("/terminology/openehr_terminology_pt.xml")) def writer = new StringWriter() @@ -116,8 +114,8 @@ class OptUiGenerator { // label for intermediate nodes def term = opt.getTerm(parent_arch_id, o.nodeId) - - if (term) + + if (term) label(term) //println o.path @@ -288,7 +286,7 @@ class OptUiGenerator { builder.input(type: 'file', name: node.path, class: node.rmTypeName) break case 'DV_PARSABLE': - builder.textarea(class: node.rmTypeName +' form-control', name:node.path, '') + builder.textarea(class: node.rmTypeName +' form-control', name:node.path, '') break case 'DV_URI': builder.input(type: 'text', class: node.rmTypeName +' form-control', name:node.path) diff --git a/src/main/groovy/com/cabolabs/openehr/validation/RmValidator2.groovy b/src/main/groovy/com/cabolabs/openehr/validation/RmValidator2.groovy index 5cf6dc89..65521521 100644 --- a/src/main/groovy/com/cabolabs/openehr/validation/RmValidator2.groovy +++ b/src/main/groovy/com/cabolabs/openehr/validation/RmValidator2.groovy @@ -1299,8 +1299,21 @@ class RmValidator2 { for (o in os) { //println o.type +" "+ o.rmTypeName + try + { report = validate(parent, d, o, dv_path) + } + catch (Exception e) + { + println e.message + println parent + println d + println o // This should be a CDvQuantity and it's ObjectNode, so the validate method is not found. TODO: check OPT + println o.getClass() + println o.list + println dv_path + } if (report.hasErrors()) { return report diff --git a/src/test/groovy/com/cabolabs/openehr/opt/OPTParserTest.groovy b/src/test/groovy/com/cabolabs/openehr/opt/OPTParserTest.groovy index 9a8c44fd..f4dd9acd 100644 --- a/src/test/groovy/com/cabolabs/openehr/opt/OPTParserTest.groovy +++ b/src/test/groovy/com/cabolabs/openehr/opt/OPTParserTest.groovy @@ -50,7 +50,7 @@ class OPTParserTest extends GroovyTestCase { void testAttributeParentNode() { println "====== testAttributeParentNode ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"Referral.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/Referral.opt" def opt = TestUtils.loadTemplate(path) opt.definition.attributes.each { attr -> println attr.rmAttributeName @@ -62,7 +62,7 @@ class OPTParserTest extends GroovyTestCase { void testEHR_STATUS_anyOPT() { println "========= testEHR_STATUS_anyOPT ===========" - def path = PS +"opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"ehr_status_any_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/ehr_status_any_en_v1.opt" def opt = TestUtils.loadTemplate(path) // incomplete @@ -93,7 +93,7 @@ class OPTParserTest extends GroovyTestCase { void testEHR_STATUS_treeOPT() { println "========= testEHR_STATUS_treeOPT ===========" - def path = PS +"opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"ehr_status_tree_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/ehr_status_tree_en_v1.opt" def opt = TestUtils.loadTemplate(path) // incomplete @@ -127,7 +127,7 @@ class OPTParserTest extends GroovyTestCase { void testEHR_STATUS_codedOPT() { println "========= testEHR_STATUS_codedOPT ===========" - def path = PS +"opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"ehr_status_coded_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/ehr_status_coded_en_v1.opt" def opt = TestUtils.loadTemplate(path) // incomplete @@ -168,7 +168,7 @@ class OPTParserTest extends GroovyTestCase { void testCompleteOPT() { println "========= testCompleteOPT ===========" - def path = PS +"opts"+ PS + 'test_all_types2' + PS +"test_all_types_en_v1.opt" + def path = "opts/"+ 'test_all_types2' + "/test_all_types_en_v1.opt" def opt = TestUtils.loadTemplate(path) // incomplete @@ -190,7 +190,7 @@ class OPTParserTest extends GroovyTestCase { void testTextDescription() { println "========= testTextDescription ===========" - def path = PS +"opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"review.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/review.opt" def opt = TestUtils.loadTemplate(path) opt.complete() def nodes = opt.nodes.findAll{ it.key.endsWith('null_flavour') } @@ -204,7 +204,7 @@ class OPTParserTest extends GroovyTestCase { void testGetText() { println "========= testGetText ===========" - def path = PS +"opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"review.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/review.opt" def opt = TestUtils.loadTemplate(path) opt.complete() def nodes = opt.nodes @@ -222,7 +222,7 @@ class OPTParserTest extends GroovyTestCase { { println "====== testCBooleanParse ======" - def path = PS +"opts"+ PS + 'test_all_types2' + PS +"test_all_types_en_v1.opt" + def path = "opts/"+ 'test_all_types2' + "/test_all_types_en_v1.opt" def opt = TestUtils.loadTemplate(path) opt.nodes.values() @@ -239,8 +239,8 @@ class OPTParserTest extends GroovyTestCase { void testActionPaths() { println "====== testActionPaths ======" - //def path = PS +"opts"+ PS +'test_ism_paths'+ PS +"test_ism_paths.opt" - def path = "opts/test_ism_paths/test_ism_paths.opt" + //def path = "opts/"+'test_ism_paths'+ "/test_ism_paths.opt" + def path = "opts/test_ism_paths/test_ism_paths.opt" // For JDK 11 the resource shouldn't start with / def opt = TestUtils.loadTemplate(path) opt.nodes.values().sort{ it.path }.each { n -> @@ -274,7 +274,7 @@ class OPTParserTest extends GroovyTestCase { void testParseNodesCDvQuantity() { println "====== testParseNodesCDvQuantity ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"lab_results1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/lab_results1.opt" def opt = TestUtils.loadTemplate(path) def cdi = opt.getNodes('/content[archetype_id=openEHR-EHR-OBSERVATION.lab_test-full_blood_count.v1]/data[at0001]/events[at0002]/data[at0003]/items[at0078.4]/value')[0] @@ -324,7 +324,7 @@ class OPTParserTest extends GroovyTestCase { void testParseArchetypeSlot() { println "====== testParseArchetypeSlot ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"signos.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/signos.opt" def opt = TestUtils.loadTemplate(path) //def c = opt.getNode('/content[archetype_id=openEHR-EHR-OBSERVATION.glasgow_coma_scale.v1]/data[at0001]/events[at0002]/data[at0003]/items[at0026]/value/magnitude') @@ -346,7 +346,7 @@ class OPTParserTest extends GroovyTestCase { void testParseNodesCInteger() { println "====== testParseNodesCInteger ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"review.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/review.opt" def opt = TestUtils.loadTemplate(path) def c = opt.getNodes('/content[archetype_id=openEHR-EHR-OBSERVATION.glasgow_coma_scale.v1]/data[at0001]/events[at0002]/data[at0003]/items[at0026]/value/magnitude')[0] @@ -375,7 +375,7 @@ class OPTParserTest extends GroovyTestCase { void testParseNodesCDateTime() { println "====== testParseNodesCDateTime ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"test_all_datatypes_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/test_all_datatypes_en_v1.opt" def opt = TestUtils.loadTemplate(path) @@ -409,7 +409,7 @@ class OPTParserTest extends GroovyTestCase { void testParseNodesCDuration() { println "====== testParseNodesCDuration ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"test_all_datatypes_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/test_all_datatypes_en_v1.opt" def opt = TestUtils.loadTemplate(path) @@ -447,7 +447,7 @@ class OPTParserTest extends GroovyTestCase { void testParseToJSON() { println "====== testParseToJSON ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"Review.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/Review.opt" def opt = TestUtils.loadTemplate(path) // cant handle loops to parent @@ -468,7 +468,7 @@ class OPTParserTest extends GroovyTestCase { void testParseToJSON2() { println "====== testParseToJSON ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"test_all_datatypes_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/test_all_datatypes_en_v1.opt" def opt = TestUtils.loadTemplate(path) def toJson = new JsonSerializer() @@ -479,7 +479,7 @@ class OPTParserTest extends GroovyTestCase { void testParseNodesCDvOrdinal() { println "====== testParseNodesCDvOrdinal ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"review.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/review.opt" def opt = TestUtils.loadTemplate(path) @@ -571,7 +571,7 @@ class OPTParserTest extends GroovyTestCase { { println "====== testParserCodedTextConstraint ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"referral.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/referral.opt" def opt = TestUtils.loadTemplate(path) assertToString(opt.concept, 'Referral') @@ -608,7 +608,7 @@ class OPTParserTest extends GroovyTestCase { { println "====== testParserConstraintRefConstraint ======" - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"amd_assessment.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/amd_assessment.opt" def opt = TestUtils.loadTemplate(path) assertToString(opt.concept, 'AMD assessment') @@ -645,7 +645,7 @@ class OPTParserTest extends GroovyTestCase { void testParseNodesCCodePhrase() { println "====== testParseNodesCCodePhrase ======" - def opt_path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"referral.opt" + def opt_path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/referral.opt" def opt = TestUtils.loadTemplate(opt_path) def category = opt.getNodes('/category/defining_code')[0] @@ -673,7 +673,7 @@ class OPTParserTest extends GroovyTestCase { void testXMLGenerator() { - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"referral.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/referral.opt" def opt = TestUtils.loadTemplate(path) def igen = new XmlInstanceGenerator() def ins = igen.generateXMLCompositionStringFromOPT(opt) @@ -685,7 +685,7 @@ class OPTParserTest extends GroovyTestCase { void testXMLGenerator2() { - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"sample_template_en.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/sample_template_en.opt" def opt = TestUtils.loadTemplate(path) def igen = new XmlInstanceGenerator() def ins = igen.generateXMLCompositionStringFromOPT(opt) @@ -696,7 +696,7 @@ class OPTParserTest extends GroovyTestCase { void testJSONGenerator() { - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"referral.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/referral.opt" def opt = TestUtils.loadTemplate(path) def igen = new JsonInstanceGenerator() def ins = igen.generateJSONCompositionStringFromOPT(opt) @@ -708,7 +708,7 @@ class OPTParserTest extends GroovyTestCase { void testUIGenerator() { - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"encuentro.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/encuentro.opt" def opt = TestUtils.loadTemplate(path) def gen = new OptUiGenerator() def ui = gen.generate(opt) @@ -720,7 +720,7 @@ class OPTParserTest extends GroovyTestCase { void testUIGenerator2() { - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"referral.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/referral.opt" def opt = TestUtils.loadTemplate(path) def gen = new OptUiGenerator() def ui = gen.generate(opt) @@ -732,7 +732,7 @@ class OPTParserTest extends GroovyTestCase { void testUIGeneratorObservationEN() { - def path = PS +"sets"+ PS +"composition_observation_1"+ PS +"composition_observation_en.opt" + def path = "sets"+ "/composition_observation_1"+ "/composition_observation_en.opt" def opt = TestUtils.loadTemplate(path) def gen = new OptUiGenerator() def ui = gen.generate(opt) @@ -740,7 +740,7 @@ class OPTParserTest extends GroovyTestCase { } void testUIGeneratorObservationES() { - def path = PS +"sets"+ PS +"composition_observation_1"+ PS +"composition_observation_es.opt" + def path = "sets"+ "/composition_observation_1"+ "/composition_observation_es.opt" def opt = TestUtils.loadTemplate(path) def gen = new OptUiGenerator() def ui = gen.generate(opt) @@ -775,7 +775,7 @@ class OPTParserTest extends GroovyTestCase { { def tm = TerminologyParser.getInstance() - def terms = tm.parseTerms(new File(getClass().getResource(PS +"terminology"+ PS +"openehr_terminology_en.xml").toURI())) + def terms = tm.parseTerms(new File(getClass().getResource("/terminology"+ "/openehr_terminology_en.xml").toURI())) //println terms assert tm.getRubric('en', '433') == 'event' println tm.getRubric('en', '229') @@ -792,7 +792,7 @@ class OPTParserTest extends GroovyTestCase { //assert 1 == 1 //assert 2 + 2 == 4 : "We're in trouble, arithmetic is broken" - def path = PS +"opts"+ PS + "com.cabolabs.openehr_opt.namespaces.default"+ PS +"referral.opt" + def path = "opts/"+ "com.cabolabs.openehr_opt.namespaces.default"+ "/referral.opt" def opt = TestUtils.loadTemplate(path) assertToString(opt.concept, 'Referral') @@ -840,7 +840,7 @@ class OPTParserTest extends GroovyTestCase { ] ] - def path = PS +"opts"+ PS + OptManager.DEFAULT_NAMESPACE + PS +"test_all_datatypes_en_v1.opt" + def path = "opts/"+ OptManager.DEFAULT_NAMESPACE + "/test_all_datatypes_en_v1.opt" def opt = TestUtils.loadTemplate(path) def collection_attr_nodes = [], // collection attribute nodes in the current OPT @@ -891,7 +891,7 @@ class OPTParserTest extends GroovyTestCase { void testParserTerminologyRefOpt() { - def path = PS +"opts"+ PS +"Terminology ref.opt" + def path = "opts"+ "/Terminology ref.opt" def opt = TestUtils.loadTemplate(path) assertToString(opt.concept, 'Terminology ref') @@ -940,7 +940,7 @@ class OPTParserTest extends GroovyTestCase { void testFlatNodes() { - def path = PS +"opts"+ PS +"Terminology ref.opt" + def path = "opts"+ "/Terminology ref.opt" def opt = TestUtils.loadTemplate(path) opt.getNodes().each { tpath, node -> println node.nodes @@ -951,7 +951,7 @@ class OPTParserTest extends GroovyTestCase { void testParserQuantityUnits() { - def path = PS +"opts"+ PS +"Encuentro.opt" + def path = "opts"+ "/Encuentro.opt" def opt = TestUtils.loadTemplate(path) def termConstraintsMap = opt.nodes.findAll { it.value.rmTypeName == 'DV_QUANTITY' } diff --git a/src/test/groovy/com/cabolabs/openehr/opt/RmValidationTest.groovy b/src/test/groovy/com/cabolabs/openehr/opt/RmValidationTest.groovy index d2890f7e..c789e8f3 100644 --- a/src/test/groovy/com/cabolabs/openehr/opt/RmValidationTest.groovy +++ b/src/test/groovy/com/cabolabs/openehr/opt/RmValidationTest.groovy @@ -15,14 +15,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromXmlComposition() { - String path = PS +"canonical_xml"+ PS +"test_all_datatypes.composition.en.xml" + String path = "/canonical_xml/test_all_datatypes.composition.en.xml" File file = new File(getClass().getResource(path).toURI()) String xml = file.text def parser = new OpenEhrXmlParser() Composition c = (Composition)parser.parseXml(xml) // TODO: add support for S3 repo - String opt_repo_path = PS + "opts" + String opt_repo_path = "/opts" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -38,14 +38,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromXmlComposition2() { - String path = PS +"canonical_xml"+ PS +"test_all_datatypes.composition.en.xml" + String path = "/canonical_xml/test_all_datatypes.composition.en.xml" File file = new File(getClass().getResource(path).toURI()) String xml = file.text def parser = new OpenEhrXmlParser() // TODO: create a quick parser that doesn't calculate paths Composition c = (Composition)parser.parseXml(xml) // TODO: add support for S3 repo - String opt_repo_path = PS + "opts" + String opt_repo_path = "/opts" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -62,14 +62,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonComposition() { - String path = PS +"canonical_json"+ PS +"minimal_action.json" + String path = "/canonical_json/minimal_action.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "opts" + String opt_repo_path = "/opts" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -85,14 +85,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonComposition2() { - String path = PS +"canonical_json"+ PS +"minimal_action.json" + String path = "/canonical_json/minimal_action.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "opts" + String opt_repo_path = "/opts" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -108,14 +108,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonCompositionAllDatatypes() { - String path = PS +"canonical_json"+ PS +"test_all_datatypes_en.json" + String path = "/canonical_json/test_all_datatypes_en.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "opts" + String opt_repo_path = "/opts" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -131,14 +131,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonCompositionAllDatatypes2() { - String path = PS +"canonical_json"+ PS +"test_all_datatypes_en.json" + String path = "/canonical_json/test_all_datatypes_en.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "opts" + String opt_repo_path = "/opts" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -154,14 +154,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonCompositionInvalidCardinalitiesA() { - String path = PS +"rm_validation"+ PS +"0_alternative_types.en.v1_000052_1.json" + String path = "/rm_validation/0_alternative_types.en.v1_000052_1.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "rm_validation" + String opt_repo_path = "/rm_validation" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -177,14 +177,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonCompositionInvalidCardinalitiesA2() { - String path = PS +"rm_validation"+ PS +"0_alternative_types.en.v1_000052_1.json" + String path = "/rm_validation/0_alternative_types.en.v1_000052_1.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "rm_validation" + String opt_repo_path = "/rm_validation" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -200,14 +200,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonCompositionInvalidCardinalitiesB() { - String path = PS +"rm_validation"+ PS +"10_alternative_types.en.v1_000010_1.json" + String path = "/rm_validation/10_alternative_types.en.v1_000010_1.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "rm_validation" + String opt_repo_path = "/rm_validation" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -224,14 +224,14 @@ class RmValidationTest extends GroovyTestCase { void testValidationFromJsonCompositionInvalidCardinalitiesB2() { - String path = PS +"rm_validation"+ PS +"10_alternative_types.en.v1_000010_1.json" + String path = "/rm_validation/10_alternative_types.en.v1_000010_1.json" File file = new File(getClass().getResource(path).toURI()) String json = file.text def parser = new OpenEhrJsonParserQuick() Composition c = (Composition)parser.parseJson(json) // TODO: add support for S3 repo - String opt_repo_path = PS + "rm_validation" + String opt_repo_path = "/rm_validation" OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(opt_repo_path).toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -264,8 +264,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationAdmin1() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_admin_1.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_admin_1.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -292,8 +292,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationAdmin2() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_admin_2.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_admin_2.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -307,8 +307,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationAdmin3() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_admin_3.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_admin_3.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -322,8 +322,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationAdmin4() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_admin_4.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_admin_4.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -338,8 +338,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationAdmin5() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_admin_5.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_admin_5.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -353,8 +353,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationEval1() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_evaluation_1.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_evaluation_1.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -368,8 +368,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationEval2() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_evaluation_2.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_evaluation_2.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -387,8 +387,8 @@ class RmValidationTest extends GroovyTestCase { // in the OPT. void testDataValidationEval3() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_evaluation_3.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_evaluation_3.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -404,8 +404,8 @@ class RmValidationTest extends GroovyTestCase { // beign the code valid. void testDataValidationEval4() { - Composition c = load_compo(PS +"rm_validation"+ PS +"data_validation_evaluation_4.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/data_validation_evaluation_4.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -419,8 +419,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationEPrescriptionFHIR() { - Composition c = load_compo(PS +"rm_validation"+ PS +"eprescription_fhir_invalid_opt.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/eprescription_fhir_invalid_opt.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -435,8 +435,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationMultipleStructured() { - Composition c = load_compo(PS +"rm_validation"+ PS +"test_multiple_structured_1.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/test_multiple_structured_1.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") @@ -451,8 +451,8 @@ class RmValidationTest extends GroovyTestCase { void testDataValidationASSECO() { - Composition c = load_compo(PS +"rm_validation"+ PS +"pulsecomposition.json") - OptManager opt_manager = init_manager(PS + "rm_validation") + Composition c = load_compo("/rm_validation/pulsecomposition.json") + OptManager opt_manager = init_manager("/rm_validation") RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(c, "") diff --git a/src/test/groovy/com/cabolabs/openehr/opt/ValidationFlowTest.groovy b/src/test/groovy/com/cabolabs/openehr/opt/ValidationFlowTest.groovy index e5f145a3..209bc99c 100644 --- a/src/test/groovy/com/cabolabs/openehr/opt/ValidationFlowTest.groovy +++ b/src/test/groovy/com/cabolabs/openehr/opt/ValidationFlowTest.groovy @@ -158,13 +158,13 @@ class ValidationFlowTest extends GroovyTestCase { //println groovy.json.JsonOutput.toJson(ehr.ehr_status) // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR (EHR_STATUS only) - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(ehr.ehr_status, 'com.cabolabs.openehr_opt.namespaces.default') assert !report.errors @@ -282,7 +282,7 @@ class ValidationFlowTest extends GroovyTestCase { ) ) - RmValidator validator = new RmValidator() + RmValidator2 validator = new RmValidator2() RmValidationReport report = validator.dovalidate(ehr) assert report.errors.find{ it.path == '/ehr_id' }.error == 'attribute is not present but is required' @@ -301,7 +301,7 @@ class ValidationFlowTest extends GroovyTestCase { ) ) - RmValidator validator = new RmValidator() + RmValidator2 validator = new RmValidator2() RmValidationReport report = validator.dovalidate(ehr) assert report.errors.find{ it.path == '/ehr_id' }.error == 'attribute is not present but is required' @@ -317,7 +317,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_ehr_status_any_valid() { // LOAD OPT - // def path = PS +"opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"ehr_status_any_en_v1.opt" + // def path = "opts"+ PS + 'com.cabolabs.openehr_opt.namespaces.default' + PS +"ehr_status_any_en_v1.opt" // def opt = TestUtils.loadTemplate(path) // opt.complete() @@ -362,13 +362,13 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(status, 'com.cabolabs.openehr_opt.namespaces.default') assert !report.errors @@ -426,13 +426,13 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(status, 'com.cabolabs.openehr_opt.namespaces.default') //println report.errors @@ -493,13 +493,13 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(status, 'com.cabolabs.openehr_opt.namespaces.default') //println report.errors @@ -542,7 +542,7 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -626,7 +626,7 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -742,7 +742,7 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -792,7 +792,7 @@ class ValidationFlowTest extends GroovyTestCase { ) // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -810,7 +810,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_compo_validation_missing_node() { - String path = PS +"opts"+ PS +"test_validation_missing_node"+ PS +"composition.json" + String path = "/opts/test_validation_missing_node/composition.json" File file = new File(getClass().getResource(path).toURI()) def json_compo = file.text @@ -820,7 +820,7 @@ class ValidationFlowTest extends GroovyTestCase { assert compo // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -856,7 +856,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_compo_minimal_action_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"minimal_action.json" + String path = "/canonical_json/minimal_action.json" File file = new File(getClass().getResource(path).toURI()) def json_compo = file.text @@ -867,7 +867,7 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -882,7 +882,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_compo_test_all_datatypes_en_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"test_all_datatypes_en.json" + String path = "/canonical_json/test_all_datatypes_en.json" File file = new File(getClass().getResource(path).toURI()) def json_compo = file.text @@ -893,7 +893,7 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -908,7 +908,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_compo_test_all_datatypes_en_invalid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"test_all_datatypes_en_constraints_violated.json" + String path = "/canonical_json/test_all_datatypes_en_constraints_violated.json" File file = new File(getClass().getResource(path).toURI()) def json_compo = file.text @@ -919,7 +919,7 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -961,7 +961,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_person_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"demographic"+ PS +"generic_person.json" + String path = "/canonical_json/demographic/generic_person.json" File file = new File(getClass().getResource(path).toURI()) def json_person = file.text @@ -973,7 +973,7 @@ class ValidationFlowTest extends GroovyTestCase { assert person // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) @@ -990,7 +990,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_organization_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"demographic"+ PS +"generic_organization.json" + String path = "/canonical_json/demographic/generic_organization.json" File file = new File(getClass().getResource(path).toURI()) def json_organization = file.text @@ -1005,13 +1005,13 @@ class ValidationFlowTest extends GroovyTestCase { assert organization // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(organization, 'com.cabolabs.openehr_opt.namespaces.default') //println report.errors @@ -1022,7 +1022,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_group_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"demographic"+ PS +"generic_group.json" + String path = "/canonical_json/demographic/generic_group.json" File file = new File(getClass().getResource(path).toURI()) def json_group = file.text @@ -1037,13 +1037,13 @@ class ValidationFlowTest extends GroovyTestCase { // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(group, 'com.cabolabs.openehr_opt.namespaces.default') //println report.errors @@ -1054,7 +1054,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_agent_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"demographic"+ PS +"generic_agent.json" + String path = "/canonical_json/demographic/generic_agent.json" File file = new File(getClass().getResource(path).toURI()) def json_agent = file.text @@ -1068,13 +1068,13 @@ class ValidationFlowTest extends GroovyTestCase { assert agent // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(agent, 'com.cabolabs.openehr_opt.namespaces.default') assert !report.errors @@ -1083,7 +1083,7 @@ class ValidationFlowTest extends GroovyTestCase { void test_role_valid() { // PARSE JSON WITH RM SCHEMA VALIDATION - String path = PS +"canonical_json"+ PS +"demographic"+ PS +"generic_role.json" + String path = "/canonical_json/demographic/generic_role.json" File file = new File(getClass().getResource(path).toURI()) def json_role = file.text @@ -1097,13 +1097,13 @@ class ValidationFlowTest extends GroovyTestCase { assert role // SETUP OPT REPO - OptRepository repo = new OptRepositoryFSImpl(getClass().getResource(PS + "opts").toURI()) + OptRepository repo = new OptRepositoryFSImpl(getClass().getResource("/opts").toURI()) OptManager opt_manager = OptManager.getInstance() opt_manager.init(repo) // SETUP RM VALIDATOR - RmValidator validator = new RmValidator(opt_manager) + RmValidator2 validator = new RmValidator2(opt_manager) RmValidationReport report = validator.dovalidate(role, 'com.cabolabs.openehr_opt.namespaces.default') //println report.errors