Class: USCoreTestKit::Generator::SuiteGenerator
- Inherits:
-
Object
- Object
- USCoreTestKit::Generator::SuiteGenerator
show all
- Defined in:
- lib/us_core_test_kit/generator/suite_generator.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(ig_metadata, base_output_dir) ⇒ SuiteGenerator
Returns a new instance of SuiteGenerator.
15
16
17
18
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 15
def initialize(ig_metadata, base_output_dir)
self.ig_metadata = ig_metadata
self.base_output_dir = base_output_dir
end
|
Instance Attribute Details
#base_output_dir ⇒ Object
Returns the value of attribute base_output_dir.
13
14
15
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 13
def base_output_dir
@base_output_dir
end
|
Returns the value of attribute ig_metadata.
13
14
15
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 13
def ig_metadata
@ig_metadata
end
|
Class Method Details
.generate(ig_metadata, base_output_dir) ⇒ Object
8
9
10
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 8
def generate(ig_metadata, base_output_dir)
new(ig_metadata, base_output_dir).generate
end
|
Instance Method Details
#base_output_file_name ⇒ Object
41
42
43
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 41
def base_output_file_name
'us_core_test_suite.rb'
end
|
#capability_statement_file_name ⇒ Object
105
106
107
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 105
def capability_statement_file_name
"../../custom_groups/#{ig_metadata.ig_version}/capability_statement_group"
end
|
#capability_statement_group_id ⇒ Object
109
110
111
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 109
def capability_statement_group_id
"us_core_#{ig_metadata.reformatted_version}_capability_statement"
end
|
#class_name ⇒ Object
45
46
47
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 45
def class_name
'USCoreTestSuite'
end
|
#clinical_notes_guidance_file_name ⇒ Object
113
114
115
116
117
118
119
120
121
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 113
def clinical_notes_guidance_file_name
if ig_metadata.ig_version == 'v3.1.1'
'../../custom_groups/v3.1.1/clinical_notes_guidance_group'
elsif ig_metadata.ig_version[1].to_i < 8
'../../custom_groups/v4.0.0/clinical_notes_guidance_group'
else
'../../custom_groups/v8.0.0/clinical_notes_guidance_group'
end
end
|
#clinical_notes_guidance_group_id ⇒ Object
123
124
125
126
127
128
129
130
131
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 123
def clinical_notes_guidance_group_id
if ig_metadata.reformatted_version == 'v311'
'us_core_v311_clinical_notes_guidance'
elsif ig_metadata.ig_version[1].to_i < 8
'us_core_v400_clinical_notes_guidance'
else
'us_core_v800_clinical_notes_guidance'
end
end
|
#fhir_api_group_id ⇒ Object
61
62
63
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 61
def fhir_api_group_id
"us_core_#{ig_metadata.reformatted_version}_fhir_api"
end
|
#generate ⇒ Object
86
87
88
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 86
def generate
File.write(output_file_name, output)
end
|
#granular_scopes_file_name ⇒ Object
133
134
135
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 133
def granular_scopes_file_name
"../../custom_groups/#{ig_metadata.ig_version}/smart_granular_scopes_group"
end
|
#granular_scopes_id ⇒ Object
137
138
139
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 137
def granular_scopes_id
"us_core_#{ig_metadata.reformatted_version}_smart_granular_scopes"
end
|
#group_file_list ⇒ Object
100
101
102
103
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 100
def group_file_list
@group_file_list ||=
groups.map { |group| group.file_name.delete_suffix('.rb') }
end
|
#group_id_list ⇒ Object
95
96
97
98
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 95
def group_id_list
@group_id_list ||=
groups.map(&:id)
end
|
#groups ⇒ Object
90
91
92
93
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 90
def groups
ig_metadata.ordered_groups
.reject { |group| SpecialCases.exclude_group? group }
end
|
#ig_identifier ⇒ Object
69
70
71
72
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 69
def ig_identifier
version = ig_metadata.ig_version[1..] "hl7.fhir.us.core##{version}"
end
|
#ig_link ⇒ Object
74
75
76
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 74
def ig_link
Naming.ig_link(ig_metadata.ig_version)
end
|
#module_name ⇒ Object
49
50
51
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 49
def module_name
"USCore#{ig_metadata.reformatted_version.upcase}"
end
|
#output ⇒ Object
37
38
39
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 37
def output
@output ||= ERB.new(template, trim_mode: '-').result(binding)
end
|
#output_file_name ⇒ Object
53
54
55
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 53
def output_file_name
File.join(base_output_dir, base_output_file_name)
end
|
#screening_assessment_file_name ⇒ Object
141
142
143
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 141
def screening_assessment_file_name
"../../custom_groups/#{ig_metadata.ig_version}/screening_assessment_group"
end
|
#screening_assessment_id ⇒ Object
145
146
147
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 145
def screening_assessment_id
"us_core_#{ig_metadata.reformatted_version}_screening_assessment"
end
|
#smart_app_launch_file_name ⇒ Object
149
150
151
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 149
def smart_app_launch_file_name
"../../custom_groups/#{ig_metadata.ig_version}/smart_app_launch_group"
end
|
#smart_app_launch_id ⇒ Object
157
158
159
160
161
162
163
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 157
def smart_app_launch_id
if us_core_7_and_above?
"us_core_#{ig_metadata.reformatted_version}_smart_app_launch"
else
'us_core_smart_app_launch'
end
end
|
#stu2_2_smart_app_launch_file_name ⇒ Object
153
154
155
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 153
def stu2_2_smart_app_launch_file_name
"../../custom_groups/#{ig_metadata.ig_version}/smart_app_launch_stu2_2_group"
end
|
#suite_id ⇒ Object
57
58
59
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 57
def suite_id
"us_core_#{ig_metadata.reformatted_version}"
end
|
#template ⇒ Object
33
34
35
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 33
def template
@template ||= File.read(File.join(__dir__, 'templates', 'suite.rb.erb'))
end
|
#title ⇒ Object
65
66
67
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 65
def title
"US Core Server #{ig_metadata.ig_version}"
end
|
#us_core_6_and_above? ⇒ Boolean
78
79
80
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 78
def us_core_6_and_above?
ig_metadata.ig_version[1].to_i > 5
end
|
#us_core_7_and_above? ⇒ Boolean
82
83
84
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 82
def us_core_7_and_above?
ig_metadata.ig_version[1].to_i > 6
end
|
#version_specific_message_filters ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/us_core_test_kit/generator/suite_generator.rb', line 20
def version_specific_message_filters
case ig_metadata.reformatted_version
when 'v610'
[
%r{Observation\.effective\.ofType\(Period\):.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0},
%r{Observation: Slice 'Observation\.effective\[x\]:effectiveDateTime':.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0},
%r{Observation\.effective\.ofType\(Period\)\.(start|end): This element is not allowed by the profile http://hl7.org/fhir/StructureDefinition/dateTime}
]
else
[]
end
end
|