davinci_dtr_test_kit 0.9.0 → 0.11.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.
- checksums.yaml +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_dinner_questionnaire_package_request_test.rb +97 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_questionnaire_response_save_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb +3 -2
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/prepopulation_attestation_test.rb +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/prepopulation_override_attestation_test.rb +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/rendering_enabled_questions_attestation_test.rb +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_package_group.rb +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_response_save_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_resp_questionnaire_package_request_test.rb +95 -0
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_smart_app_questionnaire_workflow_group.rb +4 -3
- data/lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md +107 -43
- data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +30 -6
- data/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +26 -3
- data/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +33 -7
- data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +26 -10
- data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +59 -14
- data/lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_dinner_order_static.json +1 -1
- data/lib/davinci_dtr_test_kit/fixtures/questionnaire_package.json +1 -1
- data/lib/davinci_dtr_test_kit/mock_auth_server.rb +135 -0
- data/lib/davinci_dtr_test_kit/mock_ehr.rb +32 -12
- data/lib/davinci_dtr_test_kit/mock_payer.rb +2 -21
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_static_group.rb +4 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_libraries_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_expressions_test.rb +3 -3
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_extensions_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_test.rb +1 -0
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_validation_test.rb +5 -3
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +15 -11
- data/lib/davinci_dtr_test_kit/urls.rb +14 -3
- data/lib/davinci_dtr_test_kit/version.rb +1 -1
- metadata +19 -3
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_test.rb +0 -36
@@ -18,6 +18,7 @@ module DaVinciDTRTestKit
|
|
18
18
|
This test may process multiple resources, labeling messages with the corresponding tested resources
|
19
19
|
in the order that they were received.
|
20
20
|
)
|
21
|
+
input :initial_static_questionnaire_request, :access_token, :retrieval_method
|
21
22
|
|
22
23
|
run do
|
23
24
|
skip_if retrieval_method == 'Adaptive', 'Performing only adaptive flow tests - only one flow is required.'
|
@@ -25,8 +26,8 @@ module DaVinciDTRTestKit
|
|
25
26
|
using_manual_entry = false
|
26
27
|
skip_if access_token.nil?, 'No access token provided - required for client flow.'
|
27
28
|
resources = load_tagged_requests(QUESTIONNAIRE_TAG)
|
28
|
-
skip_if resources.
|
29
|
-
perform_request_validation_test(
|
29
|
+
skip_if resources.blank?, 'No request resource received from the client.'
|
30
|
+
assert perform_request_validation_test(
|
30
31
|
resources,
|
31
32
|
:parameters,
|
32
33
|
'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-input-parameters',
|
@@ -34,9 +35,10 @@ module DaVinciDTRTestKit
|
|
34
35
|
using_manual_entry
|
35
36
|
)
|
36
37
|
else
|
38
|
+
# TODO: fix redundant logic here
|
37
39
|
skip_if initial_static_questionnaire_request.nil?, 'No request resource was provided - required for manual flow'
|
38
40
|
request = FHIR.from_contents(initial_static_questionnaire_request)
|
39
|
-
assert_valid_resource(resource: request, profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-input-parameters')
|
41
|
+
assert assert_valid_resource(resource: request, profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-input-parameters')
|
40
42
|
end
|
41
43
|
rescue Inferno::Exceptions::AssertionException => e
|
42
44
|
msg = e.message.to_s.strip
|
@@ -18,30 +18,34 @@ module DaVinciDTRTestKit
|
|
18
18
|
This test may process multiple resources, labeling messages with the corresponding tested resources
|
19
19
|
in the order that they were received.
|
20
20
|
)
|
21
|
+
input :url
|
21
22
|
|
22
23
|
run do
|
23
24
|
skip_if retrieval_method == 'Adaptive', 'Performing only adaptive flow tests - only one flow is required.'
|
24
|
-
|
25
25
|
if initial_static_questionnaire_request.nil?
|
26
26
|
skip_if access_token.nil?, 'No access token provided - required for client flow.'
|
27
27
|
resources = load_tagged_requests(QUESTIONNAIRE_TAG)
|
28
28
|
skip_if resources.nil?, 'No request resource received from the client.'
|
29
|
-
scratch[:
|
29
|
+
scratch[:output_parameters] = resources
|
30
30
|
perform_response_validation_test(
|
31
31
|
resources,
|
32
32
|
:parameters,
|
33
33
|
'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-output-parameters'
|
34
34
|
)
|
35
35
|
else
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
scratch[:
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
36
|
+
request = fhir_operation("#{url}/Questionnaire/$questionnaire-package",
|
37
|
+
body: JSON.parse(initial_static_questionnaire_request),
|
38
|
+
headers: { 'Content-Type': 'application/json' })
|
39
|
+
resource = FHIR.from_contents(request.response[:body])
|
40
|
+
scratch[:output_parameters] = resource
|
41
|
+
assert_response_status([200, 201], response: request.response)
|
42
|
+
assert_resource_type(:parameters, resource:)
|
43
|
+
perform_response_validation_test(
|
44
|
+
[request],
|
45
|
+
:parameters,
|
46
|
+
'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-output-parameters'
|
47
|
+
)
|
48
|
+
questionnaire_bundle = resource.parameter.find { |param| param.resource.resourceType == 'Bundle' }&.resource
|
45
49
|
assert questionnaire_bundle, 'No questionnaire bundle found in the response'
|
46
50
|
assert_valid_resource(resource: questionnaire_bundle, profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/DTR-QPackageBundle')
|
47
51
|
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
|
4
|
+
SMART_CONFIG_PATH = '/fhir/.well-known/smart-configuration'
|
5
|
+
EHR_AUTHORIZE_PATH = '/mock_ehr_auth/authorize'
|
6
|
+
EHR_TOKEN_PATH = '/mock_ehr_auth/token'
|
7
|
+
PAYER_TOKEN_PATH = '/mock_payer_auth/token'
|
5
8
|
QUESTIONNAIRE_PACKAGE_PATH = '/fhir/Questionnaire/$questionnaire-package'
|
6
9
|
NEXT_PATH = '/fhir/Questionnaire/$next-question'
|
7
10
|
QUESTIONNAIRE_RESPONSE_PATH = '/fhir/QuestionnaireResponse'
|
@@ -15,8 +18,16 @@ module DaVinciDTRTestKit
|
|
15
18
|
@base_url ||= "#{Inferno::Application['base_url']}/custom/#{suite_id}"
|
16
19
|
end
|
17
20
|
|
18
|
-
def
|
19
|
-
@
|
21
|
+
def ehr_authorize_url
|
22
|
+
@ehr_authorize_url ||= base_url + EHR_AUTHORIZE_PATH
|
23
|
+
end
|
24
|
+
|
25
|
+
def ehr_token_url
|
26
|
+
@ehr_token_url ||= base_url + EHR_TOKEN_PATH
|
27
|
+
end
|
28
|
+
|
29
|
+
def payer_token_url
|
30
|
+
@payer_token_url ||= base_url + PAYER_TOKEN_PATH
|
20
31
|
end
|
21
32
|
|
22
33
|
def questionnaire_package_url
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: davinci_dtr_test_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Naden
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-
|
13
|
+
date: 2024-07-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: inferno_core
|
@@ -26,6 +26,20 @@ dependencies:
|
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.4.37
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: jwt
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '2.6'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.6'
|
29
43
|
description: Test Kit for the Da Vinci Documentation Templates and Rules (DTR) FHIR
|
30
44
|
Implementation Guide
|
31
45
|
email:
|
@@ -40,6 +54,7 @@ files:
|
|
40
54
|
- lib/davinci_dtr_test_kit/auth_groups/token_request_test.rb
|
41
55
|
- lib/davinci_dtr_test_kit/auth_groups/token_validation_test.rb
|
42
56
|
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_questionnaire_workflow_group.rb
|
57
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_dinner_questionnaire_package_request_test.rb
|
43
58
|
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_questionnaire_response_save_test.rb
|
44
59
|
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb
|
45
60
|
- lib/davinci_dtr_test_kit/client_groups/dinner_static/prepopulation_attestation_test.rb
|
@@ -51,8 +66,8 @@ files:
|
|
51
66
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb
|
52
67
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_response_group.rb
|
53
68
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_response_save_test.rb
|
69
|
+
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_resp_questionnaire_package_request_test.rb
|
54
70
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_smart_app_questionnaire_workflow_group.rb
|
55
|
-
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_test.rb
|
56
71
|
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb
|
57
72
|
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb
|
58
73
|
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_pre_population_test.rb
|
@@ -77,6 +92,7 @@ files:
|
|
77
92
|
- lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_response_dinner_order_static.json
|
78
93
|
- lib/davinci_dtr_test_kit/fixtures/pre_populated_questionnaire_response.json
|
79
94
|
- lib/davinci_dtr_test_kit/fixtures/questionnaire_package.json
|
95
|
+
- lib/davinci_dtr_test_kit/mock_auth_server.rb
|
80
96
|
- lib/davinci_dtr_test_kit/mock_ehr.rb
|
81
97
|
- lib/davinci_dtr_test_kit/mock_payer.rb
|
82
98
|
- lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb
|
data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_test.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative '../../urls'
|
2
|
-
|
3
|
-
module DaVinciDTRTestKit
|
4
|
-
class DTRQuestionnairePackageRequestTest < Inferno::Test
|
5
|
-
include URLs
|
6
|
-
|
7
|
-
id :dtr_questionnaire_package_request
|
8
|
-
title 'Invoke the DTR Questionnaire Package operation'
|
9
|
-
description %(
|
10
|
-
Inferno will wait for a DTR questionnaire package request from the client. Upon receipt, Inferno will generate and
|
11
|
-
send a response.
|
12
|
-
)
|
13
|
-
input :access_token
|
14
|
-
|
15
|
-
run do
|
16
|
-
wait(
|
17
|
-
identifier: access_token,
|
18
|
-
message: %(
|
19
|
-
Invoke the DTR Questionnaire Package operation by sending a POST request to
|
20
|
-
|
21
|
-
`#{questionnaire_package_url}`
|
22
|
-
|
23
|
-
A questionnaire package generated by Inferno will be returned.
|
24
|
-
|
25
|
-
Inferno will wait for the client to complete Questionnaire pre-population. The client should make FHIR GET
|
26
|
-
requests using service base path:
|
27
|
-
|
28
|
-
`#{fhir_base_url}`
|
29
|
-
|
30
|
-
When the DTR application has finished loading the Questionnaire,
|
31
|
-
[Click here](#{resume_pass_url}?token=#{access_token}) to continue.
|
32
|
-
)
|
33
|
-
)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|