class Crucible::Tests::ConnectathonTerminologyTrackTest
Public Class Methods
new(client1, client2=nil)
click to toggle source
Calls superclass method
Crucible::Tests::BaseTest::new
# File lib/tests/suites/connectathon_terminology_track.rb, line 13 def initialize(client1, client2=nil) super(client1, client2) @tags.append('connectathon') @category = {id: 'connectathon', title: 'Connectathon'} end
Public Instance Methods
check_expansion_for_concepts(vs, ref)
click to toggle source
# File lib/tests/suites/connectathon_terminology_track.rb, line 385 def check_expansion_for_concepts(vs, ref) assert(vs.expansion,'ValueSet should contain expansion.') assert(vs.expansion.contains,'ValueSet.expansion.contains elements are missing.') concepts = vs.expansion.contains.map{|c|c.code} expansion_missing = ref - concepts expansion_added = concepts - ref assert(expansion_missing.empty?,"ValueSet expansion is missing the following concepts: #{expansion_missing}") assert(expansion_added.empty?,"ValueSet expansion contained some unexpected concepts: #{expansion_added}") end
check_response_params(contents,name,attribute,value)
click to toggle source
# File lib/tests/suites/connectathon_terminology_track.rb, line 398 def check_response_params(contents,name,attribute,value) begin doc = Nokogiri::XML(contents) if doc.errors.empty? doc.root.add_namespace_definition('fhir', 'http://hl7.org/fhir') doc.root.add_namespace_definition('xhtml', 'http://www.w3.org/1999/xhtml') e = doc.root.xpath("./fhir:parameter[fhir:name[@value=\"#{name}\"]]/fhir:#{attribute}").first assert(e[:value]==value,"Output parameters do not contain #{name}=#{value}") else hash = JSON.parse(contents) params = hash['parameter'] p = params.select{|p|p['name']==name}.first assert(p[attribute]==value,"Output parameters do not contain #{name}=#{value}") end rescue Exception => e raise AssertionException.new 'Unable to parse response parameters', e.message end end
description()
click to toggle source
# File lib/tests/suites/connectathon_terminology_track.rb, line 9 def description 'Connectathon Terminology Track focuses on the $expand, $validate-code, $lookup, and $translate operations.' end
id()
click to toggle source
# File lib/tests/suites/connectathon_terminology_track.rb, line 5 def id 'ConnectathonTerminologyTrackTest' end
setup()
click to toggle source
# File lib/tests/suites/connectathon_terminology_track.rb, line 19 def setup # find FHIRDefinedType valueset options = { :search => { :flag => false, :compartment => nil, :parameters => { 'name' => 'FHIRDefinedType' } } } @valueset = nil reply = @client.search(FHIR::ValueSet, options) if reply.code==200 && !reply.resource.nil? bundle = reply.resource @valueset = bundle.entry[0].resource if bundle.entry.size > 0 end @resources = Crucible::Generator::Resources.new if @valueset.nil? # The resource was not found, try to create it in case the server # dynamically calculates terminology operations based on local resources codesystem_types = @resources.load_fixture('terminology/codesystem-data-types.json') codesystem_rsrcs = @resources.load_fixture('terminology/codesystem-resource-types.json') valueset_defined = @resources.load_fixture('terminology/valueset-defined-types.json') @codesystem_types_id = @client.create(codesystem_types).id @codesystem_rsrcs_id = @client.create(codesystem_rsrcs).id @valueset_defined_id = @client.create(valueset_defined).id @valueset_defined.id = @valueset_defined_id @valueset = valueset_defined end v2_codesystem = @resources.load_fixture('terminology/v2-codesystem.json') v2_valueset = @resources.load_fixture('terminology/v2-valueset.json') @v2_codesystem_id = @client.create(v2_codesystem).id @v2_valueset_id = @client.create(v2_valueset).id end
teardown()
click to toggle source
# File lib/tests/suites/connectathon_terminology_track.rb, line 58 def teardown @client.destroy(FHIR::ValueSet, @valueset_defined_id) if @valueset_defined_id @client.destroy(FHIR::CodeSystem, @codesystem_types_id) if @codesystem_types_id @client.destroy(FHIR::CodeSystem, @codesystem_rsrcs_id) if @codesystem_rsrcs_id @client.destroy(FHIR::ValueSet, @v2_valueset_id) if @v2_valueset_id @client.destroy(FHIR::CodeSystem, @v2_codesystem_id) if @v2_codesystem_id # CT13 does # DELETE codesystem_simple # CT13 does # DELETE valueset_simple # CT17 does # DELETE conceptmap_created_id end