uds_plus_test_kit 0.9.1 → 1.0.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/uds_plus_test_kit/examples/condition.ndjson +1 -0
  3. data/lib/uds_plus_test_kit/examples/encounter.ndjson +1 -0
  4. data/lib/uds_plus_test_kit/examples/invalid_condition.ndjson +1 -0
  5. data/lib/uds_plus_test_kit/examples/invalid_encounter.ndjson +1 -0
  6. data/lib/uds_plus_test_kit/examples/invalid_patient.ndjson +2 -0
  7. data/lib/uds_plus_test_kit/examples/manifest.json +76 -14
  8. data/lib/uds_plus_test_kit/examples/observation.ndjson +3 -0
  9. data/lib/uds_plus_test_kit/examples/patient.ndjson +2 -0
  10. data/lib/uds_plus_test_kit/input_resource_tests/read_immunization_test.rb +54 -0
  11. data/lib/uds_plus_test_kit/input_resource_tests/read_lab_test.rb +54 -0
  12. data/lib/uds_plus_test_kit/input_resource_tests/read_med_request_test.rb +54 -0
  13. data/lib/uds_plus_test_kit/input_resource_tests/read_med_statement_test.rb +54 -0
  14. data/lib/uds_plus_test_kit/input_resource_tests/read_related_person_test.rb +54 -0
  15. data/lib/uds_plus_test_kit/input_resource_tests/read_service_request_test.rb +54 -0
  16. data/lib/uds_plus_test_kit/input_resource_tests/read_special_observation_test.rb +54 -0
  17. data/lib/uds_plus_test_kit/input_resource_tests/resource_group.rb +30 -2
  18. data/lib/uds_plus_test_kit/manifest_tests/invalid_type_test.rb +4 -1
  19. data/lib/uds_plus_test_kit/manifest_tests/uds_plus_test_group.rb +16 -2
  20. data/lib/uds_plus_test_kit/post_tests/post_group.rb +59 -0
  21. data/lib/uds_plus_test_kit/post_tests/post_manifest_test.rb +41 -0
  22. data/lib/uds_plus_test_kit/post_tests/read_post_test.rb +32 -0
  23. data/lib/uds_plus_test_kit/uds_plus_test_suite.rb +40 -0
  24. data/lib/uds_plus_test_kit/validate_immunization_test.rb +33 -0
  25. data/lib/uds_plus_test_kit/validate_income_test.rb +7 -10
  26. data/lib/uds_plus_test_kit/validate_lab_test.rb +65 -0
  27. data/lib/uds_plus_test_kit/validate_med_request_test.rb +33 -0
  28. data/lib/uds_plus_test_kit/validate_med_statement_test.rb +33 -0
  29. data/lib/uds_plus_test_kit/validate_related_person_test.rb +33 -0
  30. data/lib/uds_plus_test_kit/validate_service_request_test.rb +33 -0
  31. data/lib/uds_plus_test_kit/validate_sexual_orientation_test.rb +6 -9
  32. data/lib/uds_plus_test_kit/validate_special_observation_test.rb +65 -0
  33. data/lib/uds_plus_test_kit/version.rb +2 -2
  34. metadata +26 -4
  35. data/lib/uds_plus_test_kit/examples/manifest_2.json +0 -101
  36. data/lib/uds_plus_test_kit/examples/manifest_not_deidentified.json +0 -67
@@ -0,0 +1,65 @@
1
+ require 'json'
2
+ require_relative './version'
3
+
4
+ module UDSPlusTestKit
5
+ class ValidateSpecialObservationTest < Inferno::Test
6
+ id :uds_plus_validate_special_observation_test
7
+ title 'Validate UDS+ Special Observation Data'
8
+ description %(
9
+ Test takes the Special Observation resources identified
10
+ (such as uds-special-population-observation) by the import
11
+ manifest, and validates whether they conform to their
12
+ UDS+ Structure Definitions.
13
+ )
14
+
15
+ def data_scratch
16
+ scratch[:data_resources] ||= {}
17
+ end
18
+
19
+ def data_to_test
20
+ data_scratch['Observation'] ||= []
21
+ end
22
+
23
+ run do
24
+ omit_if data_to_test.empty?, "No data of this type was identified."
25
+
26
+ no_resource_of_this_type = true
27
+ identifier_fail_message = %(Resource.meta.profile should contain the HTTP location of the
28
+ resource's Structure Definition. Resource.meta.profile either does
29
+ not exist in this resource, or its contents do not point to a valid
30
+ location for type Observation. **NOTE:**
31
+ If this error occurs, it can trigger a fail for all observation-type tests,
32
+ regardless of whether both tests were meant to run.)
33
+
34
+ data_to_test.each do |resource|
35
+ # All these assertions are to differentaite Observation data between orientation types.
36
+ # A resource is skipped if it is one of the observation types with their own tests.
37
+ type_identifier = resource.to_hash
38
+ assert type_identifier['meta'].present?, identifier_fail_message
39
+
40
+ type_identifier = type_identifier['meta']
41
+ assert type_identifier.is_a?(Hash), identifier_fail_message
42
+ assert type_identifier['profile'].present?, identifier_fail_message
43
+
44
+ type_identifier = type_identifier['profile']
45
+ assert type_identifier.is_a?(Array), identifier_fail_message
46
+ assert !type_identifier.empty?, identifier_fail_message
47
+
48
+
49
+ type_identifier = type_identifier.first
50
+ assert type_identifier.is_a?(String), identifier_fail_message
51
+ if type_identifier.include?("income") || type_identifier.include?("sexual-orientation") || type_identifier.include?("-lab-")
52
+ next
53
+ else
54
+ assert type_identifier.downcase.include?("observation"), identifier_fail_message
55
+ end
56
+
57
+ no_resource_of_this_type = false
58
+
59
+ assert_valid_resource(resource: resource)
60
+ end
61
+
62
+ omit_if no_resource_of_this_type, "No data of this type was identified."
63
+ end
64
+ end
65
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UDSPlusTestKit
4
- VERSION = '0.9.1'
5
- UDS_PLUS_VERSION = '0.3.0'
4
+ VERSION = '1.0.1'
5
+ UDS_PLUS_VERSION = '0.4.1' #'1.0.0'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uds_plus_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leap Orbit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-03 00:00:00.000000000 Z
11
+ date: 2023-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -89,31 +89,53 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - LICENSE
91
91
  - lib/uds_plus_test_kit.rb
92
+ - lib/uds_plus_test_kit/examples/condition.ndjson
93
+ - lib/uds_plus_test_kit/examples/encounter.ndjson
94
+ - lib/uds_plus_test_kit/examples/invalid_condition.ndjson
95
+ - lib/uds_plus_test_kit/examples/invalid_encounter.ndjson
96
+ - lib/uds_plus_test_kit/examples/invalid_patient.ndjson
92
97
  - lib/uds_plus_test_kit/examples/manifest.json
93
- - lib/uds_plus_test_kit/examples/manifest_2.json
94
- - lib/uds_plus_test_kit/examples/manifest_not_deidentified.json
98
+ - lib/uds_plus_test_kit/examples/observation.ndjson
99
+ - lib/uds_plus_test_kit/examples/patient.ndjson
95
100
  - lib/uds_plus_test_kit/input_resource_tests/read_coverage_test.rb
96
101
  - lib/uds_plus_test_kit/input_resource_tests/read_diagnosis_test.rb
97
102
  - lib/uds_plus_test_kit/input_resource_tests/read_encounter_test.rb
103
+ - lib/uds_plus_test_kit/input_resource_tests/read_immunization_test.rb
98
104
  - lib/uds_plus_test_kit/input_resource_tests/read_income_test.rb
105
+ - lib/uds_plus_test_kit/input_resource_tests/read_lab_test.rb
99
106
  - lib/uds_plus_test_kit/input_resource_tests/read_manifest_ind_test.rb
107
+ - lib/uds_plus_test_kit/input_resource_tests/read_med_request_test.rb
108
+ - lib/uds_plus_test_kit/input_resource_tests/read_med_statement_test.rb
100
109
  - lib/uds_plus_test_kit/input_resource_tests/read_patient_test.rb
101
110
  - lib/uds_plus_test_kit/input_resource_tests/read_procedure_test.rb
111
+ - lib/uds_plus_test_kit/input_resource_tests/read_related_person_test.rb
112
+ - lib/uds_plus_test_kit/input_resource_tests/read_service_request_test.rb
102
113
  - lib/uds_plus_test_kit/input_resource_tests/read_sexual_orientation_test.rb
114
+ - lib/uds_plus_test_kit/input_resource_tests/read_special_observation_test.rb
103
115
  - lib/uds_plus_test_kit/input_resource_tests/resource_group.rb
104
116
  - lib/uds_plus_test_kit/manifest_tests/invalid_type_test.rb
105
117
  - lib/uds_plus_test_kit/manifest_tests/read_data_test.rb
106
118
  - lib/uds_plus_test_kit/manifest_tests/read_manifest_test.rb
107
119
  - lib/uds_plus_test_kit/manifest_tests/uds_plus_test_group.rb
108
120
  - lib/uds_plus_test_kit/manifest_tests/validate_manifest_test.rb
121
+ - lib/uds_plus_test_kit/post_tests/post_group.rb
122
+ - lib/uds_plus_test_kit/post_tests/post_manifest_test.rb
123
+ - lib/uds_plus_test_kit/post_tests/read_post_test.rb
109
124
  - lib/uds_plus_test_kit/uds_plus_test_suite.rb
110
125
  - lib/uds_plus_test_kit/validate_coverage_test.rb
111
126
  - lib/uds_plus_test_kit/validate_diagnosis_test.rb
112
127
  - lib/uds_plus_test_kit/validate_encounter_test.rb
128
+ - lib/uds_plus_test_kit/validate_immunization_test.rb
113
129
  - lib/uds_plus_test_kit/validate_income_test.rb
130
+ - lib/uds_plus_test_kit/validate_lab_test.rb
131
+ - lib/uds_plus_test_kit/validate_med_request_test.rb
132
+ - lib/uds_plus_test_kit/validate_med_statement_test.rb
114
133
  - lib/uds_plus_test_kit/validate_patient_test.rb
115
134
  - lib/uds_plus_test_kit/validate_procedure_test.rb
135
+ - lib/uds_plus_test_kit/validate_related_person_test.rb
136
+ - lib/uds_plus_test_kit/validate_service_request_test.rb
116
137
  - lib/uds_plus_test_kit/validate_sexual_orientation_test.rb
138
+ - lib/uds_plus_test_kit/validate_special_observation_test.rb
117
139
  - lib/uds_plus_test_kit/version.rb
118
140
  homepage: https://github.com/inferno-framework/uds-plus-test-kit
119
141
  licenses:
@@ -1,101 +0,0 @@
1
- {
2
- "resourceType": "Parameters",
3
- "id": "example",
4
- "meta": {
5
- "extension": [
6
- {
7
- "url": "http://hl7.org/fhir/StructureDefinition/instance-name",
8
- "valueString": "UDS+ Manifest File Example"
9
- },
10
- {
11
- "url": "http://hl7.org/fhir/StructureDefinition/instance-description",
12
- "valueMarkdown": "This is an example of a Manifest file submitted as a parameter to the UDS+ $import operation."
13
- }
14
- ],
15
- "profile": [
16
- "http://hl7.org/fhir/us/uds-plus/StructureDefinition/uds-plus-import-manifest"
17
- ]
18
- },
19
- "parameter": [
20
- {
21
- "name": "inputFormat",
22
- "valueCode": "application/ndjson"
23
- },
24
- {
25
- "name": "inputSource",
26
- "valueUrl": "http://localhost:4567/"
27
- },
28
- {
29
- "name": "storageDetail",
30
- "valueCode": "https"
31
- },
32
- {
33
- "name": "udsData",
34
- "part": [
35
- {
36
- "name": "type",
37
- "valueCode": "Patient"
38
- },
39
- {
40
- "name": "url",
41
- "valueUrl": "http://localhost:4567/custom/uds_plus/examples/patient"
42
- },
43
- {
44
- "name": "expirationTime",
45
- "valueDateTime": "2022-12-14T07:15:07-08:00"
46
- }
47
- ]
48
- },
49
- {
50
- "name": "udsData",
51
- "part": [
52
- {
53
- "name": "type",
54
- "valueCode": "Condition"
55
- },
56
- {
57
- "name": "url",
58
- "valueUrl": "http://localhost:4567/custom/uds_plus/examples/condition"
59
- },
60
- {
61
- "name": "expirationTime",
62
- "valueDateTime": "2022-12-14T07:15:07-08:00"
63
- }
64
- ]
65
- },
66
- {
67
- "name": "udsData",
68
- "part": [
69
- {
70
- "name": "type",
71
- "valueCode": "Encounter"
72
- },
73
- {
74
- "name": "url",
75
- "valueUrl": "http://localhost:4567/custom/uds_plus/examples/encounter"
76
- },
77
- {
78
- "name": "expirationTime",
79
- "valueDateTime": "2022-12-14T07:15:07-08:00"
80
- }
81
- ]
82
- },
83
- {
84
- "name": "udsData",
85
- "part": [
86
- {
87
- "name": "type",
88
- "valueCode": "Condition"
89
- },
90
- {
91
- "name": "url",
92
- "valueUrl": "http://localhost:4567/custom/uds_plus/examples/condition"
93
- },
94
- {
95
- "name": "expirationTime",
96
- "valueDateTime": "2022-12-14T07:15:07-08:00"
97
- }
98
- ]
99
- }
100
- ]
101
- }
@@ -1,67 +0,0 @@
1
- {
2
- "resourceType": "Parameters",
3
- "id": "example",
4
- "meta": {
5
- "extension": [
6
- {
7
- "url": "http://hl7.org/fhir/StructureDefinition/instance-name",
8
- "valueString": "UDS+ Manifest File Example"
9
- },
10
- {
11
- "url": "http://hl7.org/fhir/StructureDefinition/instance-description",
12
- "valueMarkdown": "This is an example of a Manifest file submitted as a parameter to the UDS+ $import operation."
13
- }
14
- ],
15
- "profile": [
16
- "http://hl7.org/fhir/us/uds-plus/StructureDefinition/uds-plus-import-manifest"
17
- ]
18
- },
19
- "parameter": [
20
- {
21
- "name": "inputFormat",
22
- "valueCode": "application/ndjson"
23
- },
24
- {
25
- "name": "inputSource",
26
- "valueUrl": "http://localhost:4567/"
27
- },
28
- {
29
- "name": "storageDetail",
30
- "valueCode": "https"
31
- },
32
- {
33
- "name": "udsData",
34
- "part": [
35
- {
36
- "name": "type",
37
- "valueCode": "Patient"
38
- },
39
- {
40
- "name": "url",
41
- "valueUrl": "http://localhost:4567/custom/uds_plus/examples/invalid_patient"
42
- },
43
- {
44
- "name": "expirationTime",
45
- "valueDateTime": "2022-12-14T07:15:07-08:00"
46
- }
47
- ]
48
- },
49
- {
50
- "name": "udsData",
51
- "part": [
52
- {
53
- "name": "type",
54
- "valueCode": "Condition"
55
- },
56
- {
57
- "name": "url",
58
- "valueUrl": "http://localhost:4567/custom/uds_plus/examples/invalid_condition"
59
- },
60
- {
61
- "name": "expirationTime",
62
- "valueDateTime": "2022-12-14T07:15:07-08:00"
63
- }
64
- ]
65
- }
66
- ]
67
- }