davinci_crd_test_kit 0.9.0 → 0.9.1
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_crd_test_kit/card_responses/propose_alternate_request.json +2 -52
- data/lib/davinci_crd_test_kit/card_responses/request_form_completion.json +46 -31
- data/lib/davinci_crd_test_kit/cards_validation.rb +8 -4
- data/lib/davinci_crd_test_kit/client_hooks_group.rb +22 -660
- data/lib/davinci_crd_test_kit/client_tests/appointment_book_receive_request_test.rb +17 -6
- data/lib/davinci_crd_test_kit/client_tests/client_appointment_book_group.rb +70 -0
- data/lib/davinci_crd_test_kit/client_tests/client_encounter_discharge_group.rb +71 -0
- data/lib/davinci_crd_test_kit/client_tests/client_encounter_start_group.rb +70 -0
- data/lib/davinci_crd_test_kit/client_tests/client_order_dispatch_group.rb +70 -0
- data/lib/davinci_crd_test_kit/client_tests/client_order_select_group.rb +72 -0
- data/lib/davinci_crd_test_kit/client_tests/client_order_sign_group.rb +71 -0
- data/lib/davinci_crd_test_kit/client_tests/decode_auth_token_test.rb +43 -23
- data/lib/davinci_crd_test_kit/client_tests/encounter_discharge_receive_request_test.rb +19 -6
- data/lib/davinci_crd_test_kit/client_tests/encounter_start_receive_request_test.rb +18 -6
- data/lib/davinci_crd_test_kit/client_tests/hook_request_optional_fields_test.rb +26 -10
- data/lib/davinci_crd_test_kit/client_tests/hook_request_required_fields_test.rb +20 -11
- data/lib/davinci_crd_test_kit/client_tests/hook_request_valid_context_test.rb +14 -10
- data/lib/davinci_crd_test_kit/client_tests/hook_request_valid_prefetch_test.rb +27 -110
- data/lib/davinci_crd_test_kit/client_tests/order_dispatch_receive_request_test.rb +18 -6
- data/lib/davinci_crd_test_kit/client_tests/order_select_receive_request_test.rb +18 -6
- data/lib/davinci_crd_test_kit/client_tests/order_sign_receive_request_test.rb +18 -6
- data/lib/davinci_crd_test_kit/client_tests/retrieve_jwks_test.rb +66 -29
- data/lib/davinci_crd_test_kit/client_tests/submitted_response_validation.rb +44 -0
- data/lib/davinci_crd_test_kit/client_tests/token_header_test.rb +45 -14
- data/lib/davinci_crd_test_kit/client_tests/token_payload_test.rb +43 -26
- data/lib/davinci_crd_test_kit/crd_client_suite.rb +0 -4
- data/lib/davinci_crd_test_kit/hook_request_field_validation.rb +240 -50
- data/lib/davinci_crd_test_kit/mock_service_response.rb +134 -120
- data/lib/davinci_crd_test_kit/routes/hook_request_endpoint.rb +26 -42
- data/lib/davinci_crd_test_kit/server_encounter_discharge_group.rb +24 -0
- data/lib/davinci_crd_test_kit/server_encounter_start_group.rb +24 -0
- data/lib/davinci_crd_test_kit/server_order_select_group.rb +24 -0
- data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_received_test.rb +4 -1
- data/lib/davinci_crd_test_kit/server_tests/service_request_optional_fields_validation_test.rb +8 -10
- data/lib/davinci_crd_test_kit/server_tests/service_request_required_fields_validation_test.rb +5 -10
- data/lib/davinci_crd_test_kit/tags.rb +6 -6
- data/lib/davinci_crd_test_kit/version.rb +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33d5aca05287041b83a61c18d2874c880d2a4b36dff0c75bf685f4a2255143cf
|
4
|
+
data.tar.gz: 9ac83e3c423292fab7d7d55283dc62659a3fb9b8b0f34da9ee0a9d7301503d1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8812040e78df937da8396ad14de78c1d3d1dcfda6845055c6836134f8bfb685dcd6e22d1375d95499d7809048ace137d51e0be771bb148d5b22e493189fa061f
|
7
|
+
data.tar.gz: fbea542ee6bae0754b8cee0c40ce5dbc4cd154503e0fc52396f4a5781ed60cf5e64d0818a1356cfa7a472a1b654aee2cd0f827b92484c01975c4fd23e9794baf
|
@@ -15,57 +15,7 @@
|
|
15
15
|
"suggestions": [
|
16
16
|
{
|
17
17
|
"label": "Replace order with a health assessment first",
|
18
|
-
"actions": [
|
19
|
-
{
|
20
|
-
"type": "create",
|
21
|
-
"description": "Order for patient health assessment",
|
22
|
-
"resource": {
|
23
|
-
"resourceType": "ServiceRequest",
|
24
|
-
"status": "draft",
|
25
|
-
"intent": "order",
|
26
|
-
"category": [
|
27
|
-
{
|
28
|
-
"coding": [
|
29
|
-
{
|
30
|
-
"system": "http://snomed.info/sct",
|
31
|
-
"code": "409063005",
|
32
|
-
"display": "Counselling"
|
33
|
-
}
|
34
|
-
]
|
35
|
-
}
|
36
|
-
],
|
37
|
-
"code": {
|
38
|
-
"coding": [
|
39
|
-
{
|
40
|
-
"system": "http://snomed.info/sct",
|
41
|
-
"code": "225885004",
|
42
|
-
"display": "Health assessment (procedure)"
|
43
|
-
}
|
44
|
-
]
|
45
|
-
},
|
46
|
-
"subject": {
|
47
|
-
"reference": "http://example.org/fhir/Patient/123"
|
48
|
-
},
|
49
|
-
"occurrenceTiming": {
|
50
|
-
"repeat": {
|
51
|
-
"boundsDuration": {
|
52
|
-
"value": 3,
|
53
|
-
"unit": "months",
|
54
|
-
"system": "http://unitsofmeasure.org",
|
55
|
-
"code": "mo"
|
56
|
-
},
|
57
|
-
"frequency": 1,
|
58
|
-
"period": 1,
|
59
|
-
"periodUnit": "mo"
|
60
|
-
}
|
61
|
-
},
|
62
|
-
"authoredOn": "2019-02-15",
|
63
|
-
"requester": {
|
64
|
-
"reference": "http://example.org/fhir/PractitionerRole/987"
|
65
|
-
}
|
66
|
-
}
|
67
|
-
}
|
68
|
-
]
|
18
|
+
"actions": []
|
69
19
|
}
|
70
20
|
]
|
71
|
-
}
|
21
|
+
}
|
@@ -14,12 +14,12 @@
|
|
14
14
|
"selectionBehavior": "any",
|
15
15
|
"suggestions": [
|
16
16
|
{
|
17
|
-
"label"
|
18
|
-
"actions"
|
17
|
+
"label": "Add 'completion of the ABC form' to your task list (possibly for reassignment)",
|
18
|
+
"actions": [
|
19
19
|
{
|
20
|
-
"type"
|
21
|
-
"description"
|
22
|
-
"resource"
|
20
|
+
"type": "create",
|
21
|
+
"description": "Add version 2 of the XYZ form to the clinical system's repository (if it doesn't already exist)",
|
22
|
+
"resource": {
|
23
23
|
"resourceType": "Questionnaire",
|
24
24
|
"id": "XYZ",
|
25
25
|
"url": "http://example.org/Questionnaire/XYZ",
|
@@ -178,42 +178,57 @@
|
|
178
178
|
}
|
179
179
|
},
|
180
180
|
{
|
181
|
-
"type"
|
182
|
-
"description"
|
183
|
-
"resource"
|
184
|
-
"resourceType"
|
185
|
-
"status"
|
186
|
-
"intent"
|
187
|
-
"code"
|
188
|
-
"coding"
|
181
|
+
"type": "create",
|
182
|
+
"description": "Add 'Complete ABC form' to the task list",
|
183
|
+
"resource": {
|
184
|
+
"resourceType": "Task",
|
185
|
+
"status": "ready",
|
186
|
+
"intent": "order",
|
187
|
+
"code": {
|
188
|
+
"coding": [
|
189
189
|
{
|
190
|
-
"system"
|
191
|
-
"code"
|
190
|
+
"system": "http://hl7.org/fhir/uv/sdc/CodeSystem/temp",
|
191
|
+
"code": "complete-questionnaire"
|
192
192
|
}
|
193
193
|
]
|
194
194
|
},
|
195
|
-
"description"
|
196
|
-
"for"
|
197
|
-
"reference"
|
195
|
+
"description": "Complete XYZ form for local retention",
|
196
|
+
"for": {
|
197
|
+
"reference": "http://example.org/fhir/Patient/123"
|
198
198
|
},
|
199
|
-
"authoredOn"
|
200
|
-
"
|
199
|
+
"authoredOn": "2018-08-09",
|
200
|
+
"requester": {
|
201
|
+
"reference": "http://example.org/fhir/Organization/payer"
|
202
|
+
},
|
203
|
+
"input": [
|
201
204
|
{
|
202
|
-
"type"
|
203
|
-
"text"
|
205
|
+
"type": {
|
206
|
+
"text": "questionnaire",
|
207
|
+
"coding": [
|
208
|
+
{
|
209
|
+
"system": "http://hl7.org/fhir/uv/sdc/CodeSystem/temp",
|
210
|
+
"code": "questionnaire"
|
211
|
+
}
|
212
|
+
]
|
204
213
|
},
|
205
|
-
"valueCanonical"
|
214
|
+
"valueCanonical": "http://example.org/Questionnaire/XYZ"
|
206
215
|
},
|
207
216
|
{
|
208
|
-
"type"
|
209
|
-
"text"
|
217
|
+
"type": {
|
218
|
+
"text": "afterCompletion",
|
219
|
+
"coding": [
|
220
|
+
{
|
221
|
+
"system": "http://hl7.org/fhir/us/davinci-crd/CodeSystem/temp",
|
222
|
+
"code": "after-completion-action"
|
223
|
+
}
|
224
|
+
]
|
210
225
|
},
|
211
|
-
"valueCodeableConcept"
|
212
|
-
"coding"
|
226
|
+
"valueCodeableConcept": {
|
227
|
+
"coding": [
|
213
228
|
{
|
214
|
-
"system"
|
215
|
-
"code"
|
216
|
-
"display"
|
229
|
+
"system": "http://hl7.org/fhir/us/davinci-crd/CodeSystem/temp",
|
230
|
+
"code": "prior-auth-include",
|
231
|
+
"display": "Include in prior authorization"
|
217
232
|
}
|
218
233
|
]
|
219
234
|
}
|
@@ -224,4 +239,4 @@
|
|
224
239
|
]
|
225
240
|
}
|
226
241
|
]
|
227
|
-
}
|
242
|
+
}
|
@@ -191,17 +191,21 @@ module DaVinciCRDTestKit
|
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
194
|
+
def response_label(index = nil)
|
195
|
+
"Server response #{index}"
|
196
|
+
end
|
197
|
+
|
194
198
|
def perform_cards_validation(cards, response_index = 0)
|
195
199
|
unless cards
|
196
|
-
add_message('error', "
|
200
|
+
add_message('error', "#{response_label(response_index + 1)} did not have the `cards` field.")
|
197
201
|
return
|
198
202
|
end
|
199
203
|
unless cards.is_a?(Array)
|
200
|
-
add_message('error', "`cards` field of
|
204
|
+
add_message('error', "`cards` field of #{response_label(response_index + 1).downcase} is not an array.")
|
201
205
|
return
|
202
206
|
end
|
203
207
|
warning do
|
204
|
-
assert cards.present?, "
|
208
|
+
assert cards.present?, "#{response_label(response_index + 1)} has no decision support."
|
205
209
|
end
|
206
210
|
cards_check(cards)
|
207
211
|
end
|
@@ -219,7 +223,7 @@ module DaVinciCRDTestKit
|
|
219
223
|
service_response = JSON.parse(request.response_body)
|
220
224
|
perform_cards_validation(service_response['cards'], index)
|
221
225
|
rescue JSON::ParserError
|
222
|
-
add_message('error', "Invalid JSON:
|
226
|
+
add_message('error', "Invalid JSON: #{response_label(response_index + 1).downcase} is not a valid JSON.")
|
223
227
|
end
|
224
228
|
end
|
225
229
|
|