Sha256: 5afcb7d40c6dd5ed6314cc39bf03459a38ee56da0d0e5c6e70ec32bd4a7904b8

Contents?: true

Size: 1.83 KB

Versions: 11

Compression:

Stored size: 1.83 KB

Contents

module CarinForBlueButtonTestKit
    class Generator
      module Naming
        COVERAGE = 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Coverage'
        EXPLANATION_OF_BENEFIT = 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-ExplanationOfBenefit'
        ORGANIZATION = 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Organization'
        PATIENT = 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient'
        PRACTITIONER = 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Practitioner'
        RELATED_PERSON = 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-RelatedPerson'
  
        class << self
          def resources_with_multiple_profiles
            ['ExplanationOfBenefit']
          end

          def resources_with_abbreviated_name
            {"ExplanationOfBenefit": 'EOB'}
          end

          def abbreviate_name(group_metadata)
            name = group_metadata.name
            resource = name.split('_').second
            abbreviated_name = resources_with_abbreviated_name[resource.to_sym] || resource
            abbreviated_name ? name.sub(resource, abbreviated_name) : name
          end
  
          def resource_has_multiple_profiles?(resource)
            resources_with_multiple_profiles.include? resource
          end
  
          def snake_case_for_profile(group_metadata)
            resource = group_metadata.resource
            return resource.underscore unless resource_has_multiple_profiles?(resource)
            
            group_metadata.name = abbreviate_name(group_metadata)
            group_metadata.name
              .delete_prefix('C4BB_')
              .underscore
          end
  
          def upper_camel_case_for_profile(group_metadata)
            snake_case_for_profile(group_metadata).camelize
          end
        end
      end
    end
  end
  

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
carin_for_blue_button_test_kit-0.14.0 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.13.3 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.13.2 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.13.1 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.13.0 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.12.1 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.12.0 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.11.2 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.11.1 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.11.0 lib/carin_for_blue_button_test_kit/generator/naming.rb
carin_for_blue_button_test_kit-0.10.0 lib/carin_for_blue_button_test_kit/generator/naming.rb