module CancerPathologyDataSharingTestKit::BundleParse
def clear_unresolved_references
def clear_unresolved_references @unresolved_references = [] end
def filter_exchange_bundle_resources(parsed_bundle)
def filter_exchange_bundle_resources(parsed_bundle) parsed_bundle.select { |key| pe_bundle_resource_types.include?(key) } end
def find_resource_in_bundle(reference, bundle)
def find_resource_in_bundle(reference, bundle) bundle.entry.find { |res| res.resource.id == reference.split('/').last && res.resource.resourceType == reference.split('/').first }&.resource end
def parse_bundle(bundle)
def parse_bundle(bundle) # TODO: For now, use ResourceType as Key, but determine if profile is indeed better? # But with openslicing, we don't have too many options here... parsed_bundle ||= {} bundle.entry.each do |entry| current_resource = entry.resource next if current_resource.is_a?(FHIR::Reference) # Not a reference, then just add the resoure to parsed bundle parsed_bundle[current_resource.resourceType] ||= [] parsed_bundle[current_resource.resourceType] << current_resource end parsed_bundle end
def pe_bundle_resource_types
def pe_bundle_resource_types PE_BUNDLE_SLICE_RESOURCES.keys end
def unresolved_references
def unresolved_references @unresolved_references ||= [] end