Module: DaVinciDTRTestKit::MockPayer

Included in:
FullEHRNextQuestionEndpoint, FullEHRQuestionnairePackageEndpoint, FullEHRV220NextQuestionEndpoint, FullEHRV220QuestionnairePackageEndpoint
Defined in:
lib/davinci_dtr_test_kit/full_ehr/endpoints/mock_payer.rb,
lib/davinci_dtr_test_kit/server/endpoints/next_question_proxy_endpoint.rb,
lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_next_question_endpoint.rb,
lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_next_question_endpoint.rb,
lib/davinci_dtr_test_kit/server/endpoints/questionnaire_package_proxy_endpoint.rb,
lib/davinci_dtr_test_kit/full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb,
lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_questionnaire_package_endpoint.rb,
lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_next_question_endpoint.rb,
lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_questionnaire_package_endpoint.rb

Defined Under Namespace

Classes: FullEHRNextQuestionEndpoint, FullEHRQuestionnairePackageEndpoint, FullEHRV220NextQuestionEndpoint, FullEHRV220QuestionnairePackageEndpoint, NextQuestionProxyEndpoint, ParseError, QuestionnairePackageProxyEndpoint, SMARTAppNextQuestionEndpoint, SMARTAppQuestionnairePackageEndpoint

Instance Method Summary collapse

Instance Method Details

#build_outcome_param(issues) ⇒ Object



25
26
27
28
29
30
# File 'lib/davinci_dtr_test_kit/full_ehr/endpoints/mock_payer.rb', line 25

def build_outcome_param(issues)
  FHIR::Parameters::Parameter.new(
    name: 'Outcome',
    resource: FHIR::OperationOutcome.new(issue: issues)
  )
end

#find_questionnaire_response(input_parameters) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/davinci_dtr_test_kit/full_ehr/endpoints/mock_payer.rb', line 15

def find_questionnaire_response(input_parameters)
  questionnaire_response_param = input_parameters.try(&:parameter)&.find do |param|
    param.name == 'questionnaire-response'
  end
  return questionnaire_response_param if questionnaire_response_param

  operation_outcome('error', 'business-rule',
                    'Input parameter does not have a `parameter:questionnaire-response` slice.')
end

#operation_outcome(severity, code, text = nil) ⇒ Object



32
33
34
# File 'lib/davinci_dtr_test_kit/full_ehr/endpoints/mock_payer.rb', line 32

def operation_outcome(severity, code, text = nil)
  FHIR::OperationOutcome.new(issue: outcome_issue(severity, code, text))
end

#outcome_issue(severity, code, text = nil) ⇒ Object



36
37
38
39
40
# File 'lib/davinci_dtr_test_kit/full_ehr/endpoints/mock_payer.rb', line 36

def outcome_issue(severity, code, text = nil)
  FHIR::OperationOutcome::Issue.new(severity:, code:).tap do |issue|
    issue.details = FHIR::CodeableConcept.new(text:) if text.present?
  end
end

#parse_fhir_object(str, entity: 'Request') ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/davinci_dtr_test_kit/full_ehr/endpoints/mock_payer.rb', line 5

def parse_fhir_object(str, entity: 'Request')
  FHIR.from_contents(str).tap do |result|
    raise ParseError, "#{entity} does not contain a valid FHIR resource." if result.nil?
  end
rescue ParseError
  raise
rescue StandardError
  raise ParseError, "#{entity} does not contain valid JSON."
end