pvdgm_services 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +29 -0
  3. data/Rakefile +40 -0
  4. data/app/contexts/services/accept_hl7_message_context.rb +32 -0
  5. data/app/contexts/services/application_mds_context.rb +21 -0
  6. data/app/contexts/services/complete_sltc_registration_process_context.rb +23 -0
  7. data/app/contexts/services/create_account_mapping_context.rb +23 -0
  8. data/app/contexts/services/create_configured_account_context.rb +26 -0
  9. data/app/contexts/services/create_configured_facility_context.rb +26 -0
  10. data/app/contexts/services/create_credential_context.rb +23 -0
  11. data/app/contexts/services/create_facility_mapping_context.rb +23 -0
  12. data/app/contexts/services/create_public_key_context.rb +22 -0
  13. data/app/contexts/services/create_service_context.rb +22 -0
  14. data/app/contexts/services/create_service_definition_context.rb +26 -0
  15. data/app/contexts/services/create_sltc_registration_context.rb +24 -0
  16. data/app/contexts/services/create_third_party_context.rb +22 -0
  17. data/app/contexts/services/hl7_message_trimming_context.rb +19 -0
  18. data/app/contexts/services/invoke_service_context.rb +21 -0
  19. data/app/contexts/services/list_sltc_providers_context.rb +22 -0
  20. data/app/contexts/services/mds_file_processing_context.rb +27 -0
  21. data/app/contexts/services/mds_file_upload_context.rb +25 -0
  22. data/app/contexts/services/mds_pull_context.rb +21 -0
  23. data/app/contexts/services/monthly_service_table_cleanup_context.rb +19 -0
  24. data/app/contexts/services/notify_new_registration_context.rb +22 -0
  25. data/app/contexts/services/notify_sltc_provider_change_context.rb +19 -0
  26. data/app/contexts/services/request_sltc_baseline_context.rb +23 -0
  27. data/app/contexts/services/update_account_mapping_context.rb +23 -0
  28. data/app/contexts/services/update_configured_account_context.rb +26 -0
  29. data/app/contexts/services/update_configured_facility_context.rb +26 -0
  30. data/app/contexts/services/update_credential_context.rb +23 -0
  31. data/app/contexts/services/update_facility_mapping_context.rb +23 -0
  32. data/app/contexts/services/update_public_key_context.rb +23 -0
  33. data/app/contexts/services/update_service_context.rb +23 -0
  34. data/app/contexts/services/update_service_definition_context.rb +26 -0
  35. data/app/contexts/services/update_third_party_context.rb +23 -0
  36. data/app/controllers/services/account_mappings_controller.rb +54 -0
  37. data/app/controllers/services/adts_controller.rb +35 -0
  38. data/app/controllers/services/application_controller.rb +17 -0
  39. data/app/controllers/services/assessment_requests_controller.rb +48 -0
  40. data/app/controllers/services/available_files_controller.rb +19 -0
  41. data/app/controllers/services/configured_account_base_controller.rb +17 -0
  42. data/app/controllers/services/configured_accounts_controller.rb +59 -0
  43. data/app/controllers/services/configured_facilities_controller.rb +65 -0
  44. data/app/controllers/services/facility_mappings_controller.rb +58 -0
  45. data/app/controllers/services/mds_files_controller.rb +75 -0
  46. data/app/controllers/services/mds_pull_accounts_controller.rb +57 -0
  47. data/app/controllers/services/public_keys_controller.rb +50 -0
  48. data/app/controllers/services/service_base_controller.rb +18 -0
  49. data/app/controllers/services/service_definition_base_controller.rb +31 -0
  50. data/app/controllers/services/service_definitions_controller.rb +59 -0
  51. data/app/controllers/services/services_controller.rb +56 -0
  52. data/app/controllers/services/sltc_providers_controller.rb +15 -0
  53. data/app/controllers/services/sltc_registrations_controller.rb +74 -0
  54. data/app/controllers/services/status_masking.rb +17 -0
  55. data/app/controllers/services/third_parties_controller.rb +47 -0
  56. data/app/controllers/services/third_party_base_controller.rb +17 -0
  57. data/app/controllers/services/validation_controller.rb +17 -0
  58. data/app/helpers/services/application_helper.rb +8 -0
  59. data/app/helpers/services/assessment_request_helper.rb +19 -0
  60. data/app/helpers/services/available_files_helper.rb +27 -0
  61. data/app/helpers/services/mds_pull_accounts_helper.rb +27 -0
  62. data/app/helpers/services/sltc_registrations_helper.rb +15 -0
  63. data/app/mailers/services_mailer.rb +57 -0
  64. data/app/models/services/abaqis_mds_push.rb +51 -0
  65. data/app/models/services/account_mapping.rb +10 -0
  66. data/app/models/services/application_api.rb +19 -0
  67. data/app/models/services/assessment_request.rb +18 -0
  68. data/app/models/services/available_file.rb +73 -0
  69. data/app/models/services/configured_account.rb +26 -0
  70. data/app/models/services/configured_facility.rb +16 -0
  71. data/app/models/services/credential.rb +9 -0
  72. data/app/models/services/facility_mapping.rb +12 -0
  73. data/app/models/services/ftp_server.rb +69 -0
  74. data/app/models/services/hl7_inbound_service.rb +47 -0
  75. data/app/models/services/hl7_message.rb +27 -0
  76. data/app/models/services/isc_code.rb +15 -0
  77. data/app/models/services/isc_code_lookup.rb +75 -0
  78. data/app/models/services/mds_assessment.rb +371 -0
  79. data/app/models/services/mds_content.rb +55 -0
  80. data/app/models/services/mds_pull.rb +41 -0
  81. data/app/models/services/mds_pull_account.rb +192 -0
  82. data/app/models/services/mds_push.rb +24 -0
  83. data/app/models/services/mds_upload.rb +64 -0
  84. data/app/models/services/mds_upload_content.rb +148 -0
  85. data/app/models/services/mds_ws_response.rb +21 -0
  86. data/app/models/services/mds_ws_response_handler.rb +31 -0
  87. data/app/models/services/pcc_mds_pull.rb +77 -0
  88. data/app/models/services/provider_change.rb +26 -0
  89. data/app/models/services/public_key.rb +11 -0
  90. data/app/models/services/service.rb +20 -0
  91. data/app/models/services/service_definition.rb +37 -0
  92. data/app/models/services/service_implementation.rb +29 -0
  93. data/app/models/services/sltc_api.rb +179 -0
  94. data/app/models/services/sltc_api_exception.rb +54 -0
  95. data/app/models/services/sltc_mds_pull.rb +230 -0
  96. data/app/models/services/sltc_registration.rb +23 -0
  97. data/app/models/services/third_party.rb +18 -0
  98. data/app/roles/services/account_mapping_creator.rb +13 -0
  99. data/app/roles/services/account_mapping_updator.rb +12 -0
  100. data/app/roles/services/configured_account_creator.rb +13 -0
  101. data/app/roles/services/configured_account_updater.rb +12 -0
  102. data/app/roles/services/configured_facility_creator.rb +13 -0
  103. data/app/roles/services/configured_facility_updater.rb +12 -0
  104. data/app/roles/services/credential_creator.rb +11 -0
  105. data/app/roles/services/credential_updater.rb +20 -0
  106. data/app/roles/services/facility_mapping_creator.rb +13 -0
  107. data/app/roles/services/facility_mapping_updater.rb +11 -0
  108. data/app/roles/services/hl7_adt_message_saver.rb +15 -0
  109. data/app/roles/services/hl7_message_trimmer.rb +14 -0
  110. data/app/roles/services/mds_assessment_categorizer.rb +71 -0
  111. data/app/roles/services/mds_file_processor.rb +86 -0
  112. data/app/roles/services/mds_notifications.rb +44 -0
  113. data/app/roles/services/monthly_service_table_cleaner.rb +19 -0
  114. data/app/roles/services/new_registration_notifier.rb +11 -0
  115. data/app/roles/services/public_key_creator.rb +14 -0
  116. data/app/roles/services/public_key_updater.rb +12 -0
  117. data/app/roles/services/service_creator.rb +13 -0
  118. data/app/roles/services/service_definition_creator.rb +13 -0
  119. data/app/roles/services/service_definition_updater.rb +12 -0
  120. data/app/roles/services/service_invoker.rb +25 -0
  121. data/app/roles/services/service_updater.rb +11 -0
  122. data/app/roles/services/sltc_baseline_requestor.rb +19 -0
  123. data/app/roles/services/sltc_provider_change_notifier.rb +25 -0
  124. data/app/roles/services/sltc_provider_lister.rb +13 -0
  125. data/app/roles/services/sltc_registration_completer.rb +81 -0
  126. data/app/roles/services/sltc_registration_saver.rb +13 -0
  127. data/app/roles/services/submit_mds_file_for_processing.rb +28 -0
  128. data/app/roles/services/third_party_creator.rb +13 -0
  129. data/app/roles/services/third_party_updater.rb +12 -0
  130. data/app/utils/services/file_upload_handler.rb +33 -0
  131. data/app/utils/services/mds_upload_filters.rb +26 -0
  132. data/app/utils/services/mds_xml_file_parser.rb +104 -0
  133. data/app/utils/services/upload_file.rb +13 -0
  134. data/app/validators/isc_code_validator.rb +42 -0
  135. data/app/validators/mds_birthdate_validator.rb +37 -0
  136. data/app/validators/mds_date_validator.rb +8 -0
  137. data/app/validators/mds_integer_validator.rb +15 -0
  138. data/app/validators/mds_version_validator.rb +16 -0
  139. data/app/validators/state_code_validator.rb +9 -0
  140. data/app/views/layouts/services/application.html.erb +14 -0
  141. data/app/views/services/account_mappings/index.json.jbuilder +9 -0
  142. data/app/views/services/account_mappings/show.json.jbuilder +7 -0
  143. data/app/views/services/assessment_requests/index.json.jbuilder +11 -0
  144. data/app/views/services/available_files/index.json.jbuilder +13 -0
  145. data/app/views/services/configured_accounts/index.json.jbuilder +13 -0
  146. data/app/views/services/configured_accounts/show.json.jbuilder +11 -0
  147. data/app/views/services/configured_facilities/index.json.jbuilder +13 -0
  148. data/app/views/services/configured_facilities/show.json.jbuilder +11 -0
  149. data/app/views/services/facility_mappings/index.json.jbuilder +10 -0
  150. data/app/views/services/facility_mappings/show.json.jbuilder +8 -0
  151. data/app/views/services/mds_files/create.builder +10 -0
  152. data/app/views/services/mds_pull_accounts/index.json.jbuilder +11 -0
  153. data/app/views/services/public_keys/index.json.jbuilder +8 -0
  154. data/app/views/services/public_keys/show.json.jbuilder +6 -0
  155. data/app/views/services/service_definitions/index.json.jbuilder +17 -0
  156. data/app/views/services/service_definitions/show.json.jbuilder +16 -0
  157. data/app/views/services/services/index.json.jbuilder +6 -0
  158. data/app/views/services/services/show.json.jbuilder +4 -0
  159. data/app/views/services/sltc_providers/index.json.jbuilder +10 -0
  160. data/app/views/services/sltc_registrations/index.json.jbuilder +10 -0
  161. data/app/views/services/third_parties/index.json.jbuilder +7 -0
  162. data/app/views/services/third_parties/show.json.jbuilder +5 -0
  163. data/app/views/services_mailer/burying_job.html.erb +20 -0
  164. data/app/views/services_mailer/delaying_job.html.erb +20 -0
  165. data/app/views/services_mailer/notify_sltc_client_registration.html.erb +39 -0
  166. data/app/views/services_mailer/notify_sltc_client_registration_invalid_request_type.html.erb +8 -0
  167. data/app/views/services_mailer/notify_sltc_client_registration_request_invalid.html.erb +10 -0
  168. data/app/views/services_mailer/notify_sltc_client_registration_validation_errors.html.erb +13 -0
  169. data/app/views/services_mailer/notify_sltc_provider_changes.html.erb +26 -0
  170. data/app/views/services_mailer/notify_support_about_no_mds_pull.html.erb +6 -0
  171. data/config/routes.rb +48 -0
  172. data/db/migrate/20140102000000_create_services_engine_tables.rb +131 -0
  173. data/db/migrate/20140517184450_new_services_columns.rb +24 -0
  174. data/db/migrate/20140525142842_new_configured_provider_table.rb +18 -0
  175. data/db/migrate/20140714172442_add_error_column_to_hl7_messages.rb +5 -0
  176. data/db/migrate/20140730164152_mds_upload_tables.rb +78 -0
  177. data/db/sql_data/service_data_setup.sql +24 -0
  178. data/lib/services/engine.rb +40 -0
  179. data/lib/services/version.rb +3 -0
  180. data/lib/services.rb +4 -0
  181. data/lib/tasks/services_tasks.rake +40 -0
  182. data/spec/dummy/README.rdoc +261 -0
  183. data/spec/dummy/Rakefile +7 -0
  184. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  185. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  186. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  187. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  188. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  189. data/spec/dummy/config/application.rb +60 -0
  190. data/spec/dummy/config/boot.rb +10 -0
  191. data/spec/dummy/config/database.yml +29 -0
  192. data/spec/dummy/config/environment.rb +5 -0
  193. data/spec/dummy/config/environments/development.rb +35 -0
  194. data/spec/dummy/config/environments/production.rb +68 -0
  195. data/spec/dummy/config/environments/test.rb +32 -0
  196. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  197. data/spec/dummy/config/initializers/email.rb +1 -0
  198. data/spec/dummy/config/initializers/inflections.rb +15 -0
  199. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  200. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  201. data/spec/dummy/config/initializers/session_store.rb +8 -0
  202. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  203. data/spec/dummy/config/locales/en.yml +5 -0
  204. data/spec/dummy/config/routes.rb +4 -0
  205. data/spec/dummy/config.ru +4 -0
  206. data/spec/dummy/db/schema.rb +237 -0
  207. data/spec/dummy/db/sql_data/services_isc_codes.sql +878 -0
  208. data/spec/dummy/log/test.log +3498 -0
  209. data/spec/dummy/public/404.html +26 -0
  210. data/spec/dummy/public/422.html +26 -0
  211. data/spec/dummy/public/500.html +25 -0
  212. data/spec/dummy/public/favicon.ico +0 -0
  213. data/spec/dummy/script/rails +6 -0
  214. data/spec/models/abaqis_mds_push_spec.rb +120 -0
  215. data/spec/models/available_file_spec.rb +234 -0
  216. data/spec/models/configured_account_spec.rb +39 -0
  217. data/spec/models/ftp_server_spec.rb +221 -0
  218. data/spec/models/isc_code_lookup_spec.rb +125 -0
  219. data/spec/models/isc_code_spec.rb +5 -0
  220. data/spec/models/mds_assessment_spec.rb +1070 -0
  221. data/spec/models/mds_pull_account_spec.rb +468 -0
  222. data/spec/models/mds_pull_spec.rb +48 -0
  223. data/spec/models/mds_push_spec.rb +43 -0
  224. data/spec/models/mds_ws_response_spec.rb +54 -0
  225. data/spec/models/pcc_mds_pull_spec.rb +273 -0
  226. data/spec/models/service_implementation_spec.rb +88 -0
  227. data/spec/models/sltc_api_exception_spec.rb +136 -0
  228. data/spec/models/sltc_api_spec.rb +192 -0
  229. data/spec/models/sltc_mds_pull_spec.rb +776 -0
  230. data/spec/roles/account_mapping_creator_spec.rb +40 -0
  231. data/spec/roles/account_mapping_updator_spec.rb +16 -0
  232. data/spec/roles/configured_account_creator_spec.rb +40 -0
  233. data/spec/roles/configured_account_updater_spec.rb +16 -0
  234. data/spec/roles/configured_facility_creator_spec.rb +40 -0
  235. data/spec/roles/configured_facility_updater_spec.rb +16 -0
  236. data/spec/roles/credential_creator_spec.rb +23 -0
  237. data/spec/roles/credential_updater_spec.rb +38 -0
  238. data/spec/roles/facility_mapping_creator_spec.rb +40 -0
  239. data/spec/roles/facility_mapping_updater_spec.rb +16 -0
  240. data/spec/roles/hl7_adt_message_saver_spec.rb +35 -0
  241. data/spec/roles/hl7_message_trimmer_spec.rb +31 -0
  242. data/spec/roles/monthly_service_table_cleaner_spec.rb +27 -0
  243. data/spec/roles/new_registration_notifier_spec.rb +18 -0
  244. data/spec/roles/service_ceator_spec.rb +34 -0
  245. data/spec/roles/service_definition_creator_spec.rb +40 -0
  246. data/spec/roles/service_definition_updater_spec.rb +16 -0
  247. data/spec/roles/service_invoker_spec.rb +22 -0
  248. data/spec/roles/service_updater_spec.rb +17 -0
  249. data/spec/roles/sltc_baseline_requestor_spec.rb +30 -0
  250. data/spec/roles/sltc_provider_lister_spec.rb +27 -0
  251. data/spec/roles/sltc_registration_completer_spec.rb +187 -0
  252. data/spec/roles/sltc_registration_saver_spec.rb +34 -0
  253. data/spec/roles/third_party_creator_spec.rb +34 -0
  254. data/spec/roles/third_party_updater_spec.rb +17 -0
  255. data/spec/spec_helper.rb +72 -0
  256. metadata +581 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a3a2f56c0586f9c4f1b6a8acc4bf954a703383ec
4
+ data.tar.gz: acc46ef43ac04080b1f167b0b811037b6651ac32
5
+ SHA512:
6
+ metadata.gz: 0ca70c8e6a3001f8392e0d996d55b774256cbdeb95e5f2cb7b5a0106550390331a84aad2b7ffb0e74a4219b93fdc9712b170ecd7dd37bdf828807b12b9f81228
7
+ data.tar.gz: 4ca1182b2c3308ac03e2f552fd03773b26f8c4f9d07af47d71a2ba80967da74d87c33bc852af297eaa298945e4aada3ad962f546460dbbc84c55612228a02161
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ Services
2
+ ========
3
+
4
+ This Rails engine provides a number of services that can be added to
5
+ a Rails application:
6
+
7
+ 1. MDS Uploads - Exposes a web services to handle automated uploads.
8
+ 2. MDS Push - Registration of an MDS Push web service
9
+ 3. MDS Pull - Support for a variety of sources from which MDS files can be pulled. (SFTP, SLTC).
10
+ 4. SLTC Registration/Management
11
+ 5. HL7 Message receipt
12
+
13
+ Most of the services can be easily augmented to support additional data sources.
14
+
15
+ Have fun.
16
+
17
+ Testing
18
+ -------
19
+
20
+ There are approximately 267 unit tests available for this engine. To set up and
21
+ run the tests:
22
+
23
+ 1. cd <parent_path>/services
24
+ 2. rake db:create
25
+ 3. rake db:migrate RAILS_ENV=test
26
+ 4. rake app:db:static RAILS_ENV=test # Loads the isc_code tables.
27
+ 5. rspec spec
28
+
29
+ Boom.
data/Rakefile ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env rake
2
+ require 'foreigner'
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
10
+ load 'rails/tasks/engine.rake'
11
+ # load 'lib/tasks/services_tasks.rake'
12
+
13
+ Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
14
+
15
+ begin
16
+ require 'rdoc/task'
17
+ rescue LoadError
18
+ require 'rdoc/rdoc'
19
+ require 'rake/rdoctask'
20
+ RDoc::Task = Rake::RDocTask
21
+ end
22
+
23
+ RDoc::Task.new(:rdoc) do |rdoc|
24
+ rdoc.rdoc_dir = 'rdoc'
25
+ rdoc.title = 'Services'
26
+ rdoc.options << '--line-numbers'
27
+ rdoc.rdoc_files.include('README.rdoc')
28
+ rdoc.rdoc_files.include('lib/**/*.rb')
29
+ end
30
+
31
+
32
+
33
+
34
+ Bundler::GemHelper.install_tasks
35
+
36
+ require 'rspec/core'
37
+ require 'rspec/core/rake_task'
38
+ desc "Run all specs in spec directory (excluding plugin specs)"
39
+ RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
40
+ task :default => :spec
@@ -0,0 +1,32 @@
1
+ module Services
2
+
3
+ class AcceptHl7MessageContext
4
+
5
+ class << self
6
+ attr_accessor :message_processing_context_class
7
+ end
8
+
9
+ attr_accessor :message_type, :message_body
10
+
11
+ def self.call(message_type, body)
12
+ raise "No message processing context class specified" if self.message_processing_context_class.nil?
13
+ AcceptHl7MessageContext.new(message_type, body).call
14
+ end
15
+
16
+ def initialize(message_type, body)
17
+ @message_type = message_type
18
+ @message_body = body
19
+ self.extend Services::Hl7AdtMessageSaver
20
+ end
21
+
22
+ def call
23
+ # Save the raw message information
24
+ persist(message_type, message_body).tap do | msg |
25
+ # Then drop a message on beanstalk to process it
26
+ self.class.message_processing_context_class.ayl_send(:call, msg) if msg.valid?
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,21 @@
1
+ module Services
2
+
3
+ class ApplicationMdsContext
4
+
5
+ TIME_TO_RUN = 36000
6
+ PRIORITY = 500
7
+ ASYNC_SEND_OPTIONS = { :priority => PRIORITY, :time_to_run => TIME_TO_RUN }
8
+
9
+ class << self
10
+ attr_accessor :mds_processing_context
11
+
12
+ def call(mds_upload)
13
+ raise "Must configure an MDS Processing context!" unless mds_processing_context.present?
14
+ mds_processing_context.ayl_send_opts(:call, ASYNC_SEND_OPTIONS, mds_upload)
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+
3
+ class CompleteSltcRegistrationProcessContext
4
+
5
+ attr_accessor :registration, :params
6
+
7
+ def self.call(registration, params)
8
+ CompleteSltcRegistrationProcessContext.new(registration, params).call
9
+ end
10
+
11
+ def initialize(registration, params)
12
+ @registration = registration
13
+ @params = params
14
+ @registration.extend Services::SltcRegistrationCompleter
15
+ end
16
+
17
+ def call
18
+ registration.complete(params)
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+
3
+ class CreateAccountMappingContext
4
+
5
+ attr_accessor :third_party, :params
6
+
7
+ def self.call(third_party, params)
8
+ CreateAccountMappingContext.new(third_party, params).call
9
+ end
10
+
11
+ def initialize(third_party, params)
12
+ @third_party = third_party
13
+ @params = params
14
+ @third_party.extend Services::AccountMappingCreator
15
+ end
16
+
17
+ def call
18
+ third_party.create(params)
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,26 @@
1
+ module Services
2
+
3
+ class CreateConfiguredAccountContext
4
+
5
+ attr_accessor :service_definition, :ca_params, :cred_params
6
+
7
+ def self.call(service_definition, ca_params, cred_params)
8
+ CreateConfiguredAccountContext.new(service_definition, ca_params, cred_params).call
9
+ end
10
+
11
+ def initialize(service_definition, ca_params, cred_params)
12
+ @service_definition = service_definition
13
+ @ca_params = ca_params
14
+ @cred_params = cred_params
15
+ @service_definition.extend Services::ConfiguredAccountCreator
16
+ end
17
+
18
+ def call
19
+ service_definition.create(ca_params).tap do | configured_account |
20
+ CreateCredentialContext.call(configured_account, cred_params) if cred_params.present?
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,26 @@
1
+ module Services
2
+
3
+ class CreateConfiguredFacilityContext
4
+
5
+ attr_accessor :service_definition, :cf_params, :cred_params
6
+
7
+ def self.call(service_definition, cf_params, cred_params)
8
+ CreateConfiguredFacilityContext.new(service_definition, cf_params, cred_params).call
9
+ end
10
+
11
+ def initialize(service_definition, cf_params, cred_params)
12
+ @service_definition = service_definition
13
+ @cf_params = cf_params
14
+ @cred_params = cred_params
15
+ @service_definition.extend Services::ConfiguredFacilityCreator
16
+ end
17
+
18
+ def call
19
+ service_definition.create(cf_params).tap do | configured_facility |
20
+ CreateCredentialContext.call(configured_facility, cred_params) if cred_params.present?
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+
3
+ class CreateCredentialContext
4
+
5
+ attr_accessor :credentialled_object, :params
6
+
7
+ def self.call(credentialled_object, params)
8
+ CreateCredentialContext.new(credentialled_object, params).call
9
+ end
10
+
11
+ def initialize(credentialled_object, params)
12
+ @credentialled_object = credentialled_object
13
+ @params = params
14
+ @credentialled_object.extend Services::CredentialCreator
15
+ end
16
+
17
+ def call
18
+ credentialled_object.add_credential(params)
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+
3
+ class CreateFacilityMappingContext
4
+
5
+ attr_accessor :third_party, :params
6
+
7
+ def self.call(third_party, params)
8
+ CreateFacilityMappingContext.new(third_party, params).call
9
+ end
10
+
11
+ def initialize(third_party, params)
12
+ @third_party = third_party
13
+ @params = params
14
+ @third_party.extend Services::FacilityMappingCreator
15
+ end
16
+
17
+ def call
18
+ third_party.create(params)
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,22 @@
1
+ module Services
2
+
3
+ class CreatePublicKeyContext
4
+
5
+ attr_accessor :params
6
+
7
+ def self.call(params)
8
+ CreatePublicKeyContext.new(params).call
9
+ end
10
+
11
+ def initialize(params)
12
+ @params = params
13
+ self.extend Services::PublicKeyCreator
14
+ end
15
+
16
+ def call
17
+ create(params)
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ module Services
2
+
3
+ class CreateServiceContext
4
+
5
+ attr_accessor :params
6
+
7
+ def self.call(params)
8
+ CreateServiceContext.new(params).call
9
+ end
10
+
11
+ def initialize(params)
12
+ @params = params
13
+ self.extend Services::ServiceCreator
14
+ end
15
+
16
+ def call
17
+ create(params)
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,26 @@
1
+ module Services
2
+
3
+ class CreateServiceDefinitionContext
4
+
5
+ attr_accessor :owner, :sd_params, :cred_params
6
+
7
+ def self.call(owner, sd_params, cred_params)
8
+ CreateServiceDefinitionContext.new(owner, sd_params, cred_params).call
9
+ end
10
+
11
+ def initialize(owner, sd_params, cred_params)
12
+ @owner = owner
13
+ @sd_params = sd_params
14
+ @cred_params = cred_params
15
+ @owner.extend Services::ServiceDefinitionCreator
16
+ end
17
+
18
+ def call
19
+ owner.create(sd_params).tap do | service_definition |
20
+ CreateCredentialContext.call(service_definition, cred_params) if cred_params.present?
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,24 @@
1
+ module Services
2
+
3
+ class CreateSltcRegistrationContext
4
+
5
+ attr_accessor :params
6
+
7
+ def self.call(params)
8
+ CreateSltcRegistrationContext.new(params).call
9
+ end
10
+
11
+ def initialize(params)
12
+ @params = params
13
+ self.extend Services::SltcRegistrationSaver
14
+ end
15
+
16
+ def call
17
+ save_registration(params).tap do | registration |
18
+ NotifyNewRegistrationContext.call(registration) if registration.errors.blank?
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,22 @@
1
+ module Services
2
+
3
+ class CreateThirdPartyContext
4
+
5
+ attr_accessor :params
6
+
7
+ def self.call(params)
8
+ CreateThirdPartyContext.new(params).call
9
+ end
10
+
11
+ def initialize(params)
12
+ @params = params
13
+ self.extend Services::ThirdPartyCreator
14
+ end
15
+
16
+ def call
17
+ create(params)
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,19 @@
1
+ module Services
2
+
3
+ class Hl7MessageTrimmingContext
4
+
5
+ def self.call
6
+ Hl7MessageTrimmingContext.new.call
7
+ end
8
+
9
+ def initialize
10
+ self.extend Hl7MessageTrimmer
11
+ end
12
+
13
+ def call
14
+ trim_messages
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,21 @@
1
+ module Services
2
+
3
+ class InvokeServiceContext
4
+ attr_reader :service
5
+
6
+ def self.call(service)
7
+ InvokeServiceContext.new(service).call
8
+ end
9
+
10
+ def initialize(service)
11
+ @service = service
12
+ @service.extend Services::ServiceInvoker
13
+ end
14
+
15
+ def call
16
+ service.invoke
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,22 @@
1
+ module Services
2
+
3
+ class ListSltcProvidersContext
4
+
5
+ attr_accessor :configured_account
6
+
7
+ def self.call(configured_account)
8
+ ListSltcProvidersContext.new(configured_account).call
9
+ end
10
+
11
+ def initialize(configured_account)
12
+ @configured_account = configured_account
13
+ configured_account.extend Services::SltcProviderLister
14
+ end
15
+
16
+ def call
17
+ configured_account.list_providers
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,27 @@
1
+ module Services
2
+
3
+ class MdsFileProcessingContext
4
+
5
+ attr_reader :mds_upload
6
+
7
+ def self.call(mds_upload)
8
+ MdsFileProcessingContext.new(mds_upload).call
9
+ end
10
+
11
+ def initialize(mds_upload)
12
+ @mds_upload = mds_upload
13
+
14
+ @mds_upload.extend MdsFileProcessor
15
+ end
16
+
17
+ def call
18
+ mds_upload.process
19
+
20
+ # Now tell the application to do its thing
21
+ Services::ApplicationMdsContext.call mds_upload
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,25 @@
1
+ module Services
2
+
3
+ class MdsFileUploadContext
4
+
5
+ attr_reader :uploaded_file, :upload_user, :account, :notify_uploader
6
+
7
+ def self.call(account, upload_user, uploaded_file, notify_uploader=false)
8
+ MdsFileUploadContext.new(account, upload_user, uploaded_file, notify_uploader).call
9
+ end
10
+
11
+ def initialize(account, upload_user, uploaded_file, notify_uploader=false)
12
+ @uploaded_file = uploaded_file
13
+ @upload_user = upload_user
14
+ @account = account
15
+ @notify_uploader = notify_uploader
16
+
17
+ self.extend SubmitMdsFileForProcessing
18
+ end
19
+
20
+ def call
21
+ self.submit_uploaded_file
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,21 @@
1
+ module Services
2
+
3
+ class MdsPullContext
4
+ attr_reader :service
5
+
6
+ def self.call
7
+ MdsPullContext.new.call
8
+ end
9
+
10
+ def initialize
11
+ @service = Services::Service.where(key: Services::Service::MDS_PULL).first
12
+ @service.extend Services::ServiceInvoker
13
+ end
14
+
15
+ def call
16
+ service.invoke
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,19 @@
1
+ module Services
2
+
3
+ class MonthlyServiceTableCleanupContext
4
+
5
+ def self.call
6
+ MonthlyServiceTableCleanupContext.new.call
7
+ end
8
+
9
+ def initialize
10
+ self.extend MonthlyServiceTableCleaner
11
+ end
12
+
13
+ def call
14
+ clean_up_service_tables
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,22 @@
1
+ module Services
2
+
3
+ class NotifyNewRegistrationContext
4
+
5
+ attr_accessor :registration
6
+
7
+ def self.call(registration)
8
+ NotifyNewRegistrationContext.new(registration).call
9
+ end
10
+
11
+ def initialize(registration)
12
+ @registration = registration
13
+ @registration.extend Services::NewRegistrationNotifier
14
+ end
15
+
16
+ def call
17
+ registration.notify
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,19 @@
1
+ module Services
2
+
3
+ class NotifySltcProviderChangeContext
4
+
5
+ def self.call
6
+ NotifySltcProviderChangeContext.new.call
7
+ end
8
+
9
+ def initialize
10
+ self.extend Services::SltcProviderChangeNotifier
11
+ end
12
+
13
+ def call
14
+ self.notify
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+
3
+ class RequestSltcBaselineContext
4
+
5
+ attr_accessor :configured_account, :params
6
+
7
+ def self.call(configured_account, params)
8
+ RequestSltcBaselineContext.new(configured_account, params).call
9
+ end
10
+
11
+ def initialize(configured_account, params)
12
+ @configured_account = configured_account
13
+ @params = params
14
+ @configured_account.extend Services::SltcBaselineRequestor
15
+ end
16
+
17
+ def call
18
+ configured_account.request_baseline(params)
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ module Services
2
+
3
+ class UpdateAccountMappingContext
4
+
5
+ attr_accessor :account_mapping, :params
6
+
7
+ def self.call(account_mapping, params)
8
+ UpdateAccountMappingContext.new(account_mapping, params).call
9
+ end
10
+
11
+ def initialize(account_mapping, params)
12
+ @account_mapping = account_mapping
13
+ @params = params
14
+ @account_mapping.extend Services::AccountMappingUpdator
15
+ end
16
+
17
+ def call
18
+ account_mapping.update(params)
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,26 @@
1
+ module Services
2
+
3
+ class UpdateConfiguredAccountContext
4
+
5
+ attr_accessor :configured_account, :ca_params, :cred_params
6
+
7
+ def self.call(configured_account, ca_params, cred_params)
8
+ UpdateConfiguredAccountContext.new(configured_account, ca_params, cred_params).call
9
+ end
10
+
11
+ def initialize(configured_account, ca_params, cred_params)
12
+ @configured_account = configured_account
13
+ @ca_params = ca_params
14
+ @cred_params = cred_params
15
+ @configured_account.extend Services::ConfiguredAccountUpdater
16
+ end
17
+
18
+ def call
19
+ configured_account.update(ca_params).tap do | configured_account |
20
+ UpdateCredentialContext.call(configured_account, cred_params)
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end