cqm-reports 4.1.0 → 4.1.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/Gemfile +1 -2
- data/lib/qrda-export/catIII/_measure_section.mustache +2 -2
- data/lib/qrda-export/helper/aggregate_object_helper.rb +10 -10
- data/lib/qrda-import/base-importers/section_importer.rb +2 -1
- data/lib/util/hqmf_template_helper.rb +4 -4
- metadata +4 -15
- data/lib/qrda-export/catI-r52/qrda1_r52.rb +0 -258
- data/lib/qrda-export/catI-r52/qrda_header/_participant.mustache +0 -8
- data/lib/qrda-export/catI-r52/qrda_header/_record_target.mustache +0 -65
- data/lib/qrda-export/catI-r52/qrda_templates/medication_order.mustache +0 -70
- data/lib/qrda-export/catIII-r2-1/qrda_header/_participant_ehr.mustache +0 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 253b7e13bd3b5c1755304e4ea37ddb94bbe59a4a94692c59c4bf9332ec56a6ee
|
|
4
|
+
data.tar.gz: 22e3f623d94257e68e0902ab7787e2d97305412d85619010b0ee5b52ac66d792
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fad5c31a8d282ed50d4d628bb0ceb3bef287a00a1acf26232766e12db2a080585825cbb65293bea9b5f8818c0fc9b72fb2205f5af34a37a42f8b05bc658a525e
|
|
7
|
+
data.tar.gz: 725ddfa8f662591803a2a578637ebff876597f62c67156b6fad8064fa7b5c7b10a9e82383cbbedfbc96e34b7b77afb7d06705065b5c509a10c071c12f0831fa2
|
data/Gemfile
CHANGED
|
@@ -6,7 +6,7 @@ gem 'protected_attributes_continued'
|
|
|
6
6
|
|
|
7
7
|
group :development, :test do
|
|
8
8
|
gem 'bundler-audit'
|
|
9
|
-
gem 'rubocop', '~> 0.
|
|
9
|
+
gem 'rubocop', '~> 0.93.0', require: false
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
group :development do
|
|
@@ -16,7 +16,6 @@ end
|
|
|
16
16
|
|
|
17
17
|
group :test do
|
|
18
18
|
gem 'cqm-models', '~> 4.0'
|
|
19
|
-
gem 'factory_girl', '~> 4.1.0'
|
|
20
19
|
gem 'tailor', '~> 1.1.2'
|
|
21
20
|
gem 'cane', '~> 2.3.0'
|
|
22
21
|
gem 'codecov'
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<!-- QRDA Category III Measure Section template -->
|
|
12
12
|
<templateId extension="2020-12-01" root="2.16.840.1.113883.10.20.27.2.1"/>
|
|
13
13
|
<!-- QRDA Category III Measure Section - CMS (V4) -->
|
|
14
|
-
<templateId extension="
|
|
14
|
+
<templateId extension="2022-05-01" root="2.16.840.1.113883.10.20.27.2.3"/>
|
|
15
15
|
<code code="55186-1" codeSystem="2.16.840.1.113883.6.1"/>
|
|
16
16
|
<title>Measure Section</title>
|
|
17
17
|
<text>
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
<templateId root="2.16.840.1.113883.10.20.24.3.98"/>
|
|
42
42
|
<!-- SHALL 1..* (one for each referenced measure) Measure Reference and Results template -->
|
|
43
43
|
<templateId extension="2020-12-01" root="2.16.840.1.113883.10.20.27.3.1"/>
|
|
44
|
-
<templateId extension="
|
|
44
|
+
<templateId extension="2022-05-01" root="2.16.840.1.113883.10.20.27.3.17"/>
|
|
45
45
|
<id extension="{{random_id}}" root="1.3.6.1.4.1.115"/>
|
|
46
46
|
<statusCode code="completed"/>
|
|
47
47
|
<!-- Containing isBranch external references -->
|
|
@@ -3,23 +3,23 @@ module Qrda
|
|
|
3
3
|
module Helper
|
|
4
4
|
module PopulationSelectors
|
|
5
5
|
def numerator
|
|
6
|
-
populations.find {|pop| pop.type == 'NUMER'}
|
|
6
|
+
populations.find { |pop| pop.type == 'NUMER' }
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def denominator
|
|
10
|
-
populations.find {|pop| pop.type == 'DENOM'}
|
|
10
|
+
populations.find { |pop| pop.type == 'DENOM' }
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def denominator_exceptions
|
|
14
|
-
populations.find {|pop| pop.type == 'DENEXCEP'}
|
|
14
|
+
populations.find { |pop| pop.type == 'DENEXCEP' }
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def denominator_exclusions
|
|
18
|
-
populations.find {|pop| pop.type == 'DENEX'}
|
|
18
|
+
populations.find { |pop| pop.type == 'DENEX' }
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def population_count(population_type, population_id)
|
|
22
|
-
population = populations.find {|pop| pop.type == population_type && pop.id == population_id}
|
|
22
|
+
population = populations.find { |pop| pop.type == population_type && pop.id == population_id }
|
|
23
23
|
if population
|
|
24
24
|
population.value
|
|
25
25
|
else
|
|
@@ -28,7 +28,7 @@ module Qrda
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def population_id(population_type)
|
|
31
|
-
populations.find {|pop| pop.type == population_type}.id
|
|
31
|
+
populations.find { |pop| pop.type == population_type }.id
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def method_missing(method, *args, &block)
|
|
@@ -64,7 +64,7 @@ module Qrda
|
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def add_stratification(id,value,observation)
|
|
67
|
-
stratifications << Stratification.new(id,value,observation) unless stratifications.find {|st| st.id == id}
|
|
67
|
+
stratifications << Stratification.new(id,value,observation) unless stratifications.find { |st| st.id == id }
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
end
|
|
@@ -91,7 +91,7 @@ module Qrda
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
def is_cv?
|
|
94
|
-
populations.any? {|pop| pop.type == 'MSRPOPL'}
|
|
94
|
+
populations.any? { |pop| pop.type == 'MSRPOPL' }
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
end
|
|
@@ -123,7 +123,7 @@ module Qrda
|
|
|
123
123
|
end
|
|
124
124
|
entry_populations << population if population
|
|
125
125
|
end
|
|
126
|
-
return if population_groups.find {|pg| pg.populations.collect(&:id).compact.sort == entry_populations.collect(&:id).compact.sort }
|
|
126
|
+
return if population_groups.find { |pg| pg.populations.collect(&:id).compact.sort == entry_populations.collect(&:id).compact.sort }
|
|
127
127
|
|
|
128
128
|
pg = PopulationGroup.new
|
|
129
129
|
pg.populations = entry_populations
|
|
@@ -142,7 +142,7 @@ module Qrda
|
|
|
142
142
|
end
|
|
143
143
|
|
|
144
144
|
def is_cv?
|
|
145
|
-
populations.any? {|pop| pop.type == 'MSRPOPL'}
|
|
145
|
+
populations.any? { |pop| pop.type == 'MSRPOPL' }
|
|
146
146
|
end
|
|
147
147
|
end
|
|
148
148
|
end
|
|
@@ -81,7 +81,8 @@ module QRDA
|
|
|
81
81
|
next unless translation_code
|
|
82
82
|
|
|
83
83
|
code_list << translation_code
|
|
84
|
-
|
|
84
|
+
root_code_string = "#{code_list[0].system}:#{code_list[0].code}"
|
|
85
|
+
@warnings << ValidationError.new(message: "Translation code #{translation_code.system}:#{translation_code.code} may not be used for eCQM calculation by a receiving system. Ensure that the root code #{root_code_string} is from an eCQM valueset.",
|
|
85
86
|
location: coded_element.path)
|
|
86
87
|
end
|
|
87
88
|
end
|
|
@@ -3,7 +3,7 @@ module HQMF
|
|
|
3
3
|
# General helpers for working with codes and code systems
|
|
4
4
|
class HQMFTemplateHelper
|
|
5
5
|
|
|
6
|
-
def self.definition_for_template_id(template_id, version="r1")
|
|
6
|
+
def self.definition_for_template_id(template_id, version = "r1")
|
|
7
7
|
template_id_map(version)[template_id]
|
|
8
8
|
end
|
|
9
9
|
|
|
@@ -18,14 +18,14 @@ module HQMF
|
|
|
18
18
|
@id_map[version]
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def self.template_id_by_definition_and_status(definition, status, negation
|
|
21
|
+
def self.template_id_by_definition_and_status(definition, status, negation, version)
|
|
22
22
|
case version
|
|
23
23
|
when "r1"
|
|
24
|
-
kv_pair = template_id_map(version).find {|k, v| v['definition'] == definition &&
|
|
24
|
+
kv_pair = template_id_map(version).find { |k, v| v['definition'] == definition &&
|
|
25
25
|
v['status'] == status &&
|
|
26
26
|
v['negation'] == negation}
|
|
27
27
|
when "r2", "r2cql"
|
|
28
|
-
kv_pair = template_id_map(version).find {|k, v| v['definition'] == definition &&
|
|
28
|
+
kv_pair = template_id_map(version).find { |k, v| v['definition'] == definition &&
|
|
29
29
|
v['status'] == status}
|
|
30
30
|
end
|
|
31
31
|
if kv_pair
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cqm-reports
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.1.
|
|
4
|
+
version: 4.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The MITRE Corporation
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-05-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cqm-models
|
|
@@ -86,20 +86,14 @@ dependencies:
|
|
|
86
86
|
requirements:
|
|
87
87
|
- - ">="
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.
|
|
90
|
-
- - "<"
|
|
91
|
-
- !ruby/object:Gem::Version
|
|
92
|
-
version: 1.15.0
|
|
89
|
+
version: 1.16.2
|
|
93
90
|
type: :runtime
|
|
94
91
|
prerelease: false
|
|
95
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
96
93
|
requirements:
|
|
97
94
|
- - ">="
|
|
98
95
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: 1.
|
|
100
|
-
- - "<"
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: 1.15.0
|
|
96
|
+
version: 1.16.2
|
|
103
97
|
- !ruby/object:Gem::Dependency
|
|
104
98
|
name: uuid
|
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -263,11 +257,6 @@ files:
|
|
|
263
257
|
- lib/qrda-export/catI-r5/qrda_templates/template_partials/_results.mustache
|
|
264
258
|
- lib/qrda-export/catI-r5/qrda_templates/template_partials/_severity.mustache
|
|
265
259
|
- lib/qrda-export/catI-r5/qrda_templates/template_partials/_status.mustache
|
|
266
|
-
- lib/qrda-export/catI-r52/qrda1_r52.rb
|
|
267
|
-
- lib/qrda-export/catI-r52/qrda_header/_participant.mustache
|
|
268
|
-
- lib/qrda-export/catI-r52/qrda_header/_record_target.mustache
|
|
269
|
-
- lib/qrda-export/catI-r52/qrda_templates/medication_order.mustache
|
|
270
|
-
- lib/qrda-export/catIII-r2-1/qrda_header/_participant_ehr.mustache
|
|
271
260
|
- lib/qrda-export/catIII/_continuous_variable_value.mustache
|
|
272
261
|
- lib/qrda-export/catIII/_header.mustache
|
|
273
262
|
- lib/qrda-export/catIII/_measure_data.mustache
|
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
require 'mustache'
|
|
2
|
-
class Qrda1R52 < Mustache
|
|
3
|
-
include Qrda::Export::Helper::DateHelper
|
|
4
|
-
include Qrda::Export::Helper::ViewHelper
|
|
5
|
-
include Qrda::Export::Helper::Cat1ViewHelper
|
|
6
|
-
include Qrda::Export::Helper::PatientViewHelper
|
|
7
|
-
include Qrda::Export::Helper::FrequencyHelper
|
|
8
|
-
include HQMF::Util::EntityHelper
|
|
9
|
-
|
|
10
|
-
self.template_path = __dir__
|
|
11
|
-
|
|
12
|
-
def initialize(patient, measures, options = {})
|
|
13
|
-
@patient = patient
|
|
14
|
-
@qdmPatient = patient.qdmPatient
|
|
15
|
-
@measures = measures
|
|
16
|
-
@provider = options[:provider]
|
|
17
|
-
@patient_address_option = options[:patient_addresses]
|
|
18
|
-
@patient_telecom_option = options[:patient_telecoms]
|
|
19
|
-
@patient_email_option = options[:patient_email]
|
|
20
|
-
@performance_period_start = options[:start_time]
|
|
21
|
-
@performance_period_end = options[:end_time]
|
|
22
|
-
@submission_program = options[:submission_program]
|
|
23
|
-
@medicare_beneficiary_identifier = options[:medicare_beneficiary_identifier]
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def patient_addresses
|
|
27
|
-
@patient_address_option ||= [CQM::Address.new(
|
|
28
|
-
use: 'HP',
|
|
29
|
-
street: ['202 Burlington Rd.'],
|
|
30
|
-
city: 'Bedford',
|
|
31
|
-
state: 'MA',
|
|
32
|
-
zip: '01730',
|
|
33
|
-
country: 'US'
|
|
34
|
-
)]
|
|
35
|
-
JSON.parse(@patient_address_option.to_json)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def patient_telecoms
|
|
39
|
-
@patient_telecom_option ||= [CQM::Telecom.new(
|
|
40
|
-
use: 'HP',
|
|
41
|
-
value: '555-555-2003'
|
|
42
|
-
)]
|
|
43
|
-
JSON.parse(@patient_telecom_option.to_json)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def patient_email
|
|
47
|
-
return unless @patient_email_option
|
|
48
|
-
telecom_email = [CQM::Telecom.new(
|
|
49
|
-
use: 'HP',
|
|
50
|
-
value: @patient_email_option
|
|
51
|
-
)]
|
|
52
|
-
JSON.parse(telecom_email.to_json)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def patient_characteristic_payer
|
|
56
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'payer').to_json)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def patient_characteristic_birthdate
|
|
60
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'birthdate').to_json)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def patient_characteristic_sex
|
|
64
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'gender').to_json)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def patient_characteristic_race
|
|
68
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'race').to_json)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def patient_characteristic_ethnicity
|
|
72
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'ethnicity').to_json)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def adverse_event
|
|
76
|
-
JSON.parse(@qdmPatient.get_data_elements('adverse_event', nil).to_json)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def allergy_intolerance
|
|
80
|
-
JSON.parse(@qdmPatient.get_data_elements('allergy', 'intolerance').to_json)
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def assessment_order
|
|
84
|
-
JSON.parse(@qdmPatient.get_data_elements('assessment', 'order').to_json)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def assessment_performed
|
|
88
|
-
JSON.parse(@qdmPatient.get_data_elements('assessment', 'performed').to_json)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def assessment_recommended
|
|
92
|
-
JSON.parse(@qdmPatient.get_data_elements('assessment', 'recommended').to_json)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def communication_performed
|
|
96
|
-
JSON.parse(@qdmPatient.get_data_elements('communication', 'performed').to_json)
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def diagnosis
|
|
100
|
-
JSON.parse(@qdmPatient.get_data_elements('condition', nil).to_json)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def device_applied
|
|
104
|
-
JSON.parse(@qdmPatient.get_data_elements('device', 'applied').to_json)
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def device_order
|
|
108
|
-
JSON.parse(@qdmPatient.get_data_elements('device', 'order').to_json)
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def device_recommended
|
|
112
|
-
JSON.parse(@qdmPatient.get_data_elements('device', 'recommended').to_json)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def diagnostic_study_order
|
|
116
|
-
JSON.parse(@qdmPatient.get_data_elements('diagnostic_study', 'order').to_json)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def diagnostic_study_performed
|
|
120
|
-
JSON.parse(@qdmPatient.get_data_elements('diagnostic_study', 'performed').to_json)
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def diagnostic_study_recommended
|
|
124
|
-
JSON.parse(@qdmPatient.get_data_elements('diagnostic_study', 'recommended').to_json)
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
def encounter_order
|
|
128
|
-
JSON.parse(@qdmPatient.get_data_elements('encounter', 'order').to_json)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def encounter_performed
|
|
132
|
-
JSON.parse(@qdmPatient.get_data_elements('encounter', 'performed').to_json)
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def encounter_recommended
|
|
136
|
-
JSON.parse(@qdmPatient.get_data_elements('encounter', 'recommended').to_json)
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def family_history
|
|
140
|
-
JSON.parse(@qdmPatient.get_data_elements('family_history', nil).to_json)
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
def immunization_administered
|
|
144
|
-
JSON.parse(@qdmPatient.get_data_elements('immunization', 'administered').to_json)
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
def immunization_order
|
|
148
|
-
JSON.parse(@qdmPatient.get_data_elements('immunization', 'order').to_json)
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
def intervention_order
|
|
152
|
-
JSON.parse(@qdmPatient.get_data_elements('intervention', 'order').to_json)
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
def intervention_performed
|
|
156
|
-
JSON.parse(@qdmPatient.get_data_elements('intervention', 'performed').to_json)
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
def intervention_recommended
|
|
160
|
-
JSON.parse(@qdmPatient.get_data_elements('intervention', 'recommended').to_json)
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def laboratory_test_order
|
|
164
|
-
JSON.parse(@qdmPatient.get_data_elements('laboratory_test', 'order').to_json)
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
def laboratory_test_performed
|
|
168
|
-
JSON.parse(@qdmPatient.get_data_elements('laboratory_test', 'performed').to_json)
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
def laboratory_test_recommended
|
|
172
|
-
JSON.parse(@qdmPatient.get_data_elements('laboratory_test', 'recommended').to_json)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
def medication_active
|
|
176
|
-
JSON.parse(@qdmPatient.get_data_elements('medication', 'active').to_json)
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
def medication_administered
|
|
180
|
-
JSON.parse(@qdmPatient.get_data_elements('medication', 'administered').to_json) + JSON.parse(@qdmPatient.get_data_elements('substance', 'administered').to_json)
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
def medication_discharge
|
|
184
|
-
JSON.parse(@qdmPatient.get_data_elements('medication', 'discharge').to_json)
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
def medication_dispensed
|
|
188
|
-
JSON.parse(@qdmPatient.get_data_elements('medication', 'dispensed').to_json)
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
def medication_order
|
|
192
|
-
JSON.parse(@qdmPatient.get_data_elements('medication', 'order').to_json)
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
def patient_care_experience
|
|
196
|
-
JSON.parse(@qdmPatient.dataElements.where(hqmfOid: { '$in' => HQMF::Util::HQMFTemplateHelper.get_all_hqmf_oids('patient_care_experience', '') }).to_json)
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
def patient_characteristic_clinical_trial_participant
|
|
200
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'clinical_trial_participant').to_json)
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
def patient_characteristic_expired
|
|
204
|
-
JSON.parse(@qdmPatient.get_data_elements('patient_characteristic', 'expired').to_json)
|
|
205
|
-
end
|
|
206
|
-
|
|
207
|
-
def physical_exam_order
|
|
208
|
-
JSON.parse(@qdmPatient.get_data_elements('physical_exam', 'order').to_json)
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
def physical_exam_performed
|
|
212
|
-
JSON.parse(@qdmPatient.get_data_elements('physical_exam', 'performed').to_json)
|
|
213
|
-
end
|
|
214
|
-
|
|
215
|
-
def physical_exam_recommended
|
|
216
|
-
JSON.parse(@qdmPatient.get_data_elements('physical_exam', 'recommended').to_json)
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
def procedure_order
|
|
220
|
-
JSON.parse(@qdmPatient.get_data_elements('procedure', 'order').to_json)
|
|
221
|
-
end
|
|
222
|
-
|
|
223
|
-
def procedure_performed
|
|
224
|
-
JSON.parse(@qdmPatient.get_data_elements('procedure', 'performed').to_json)
|
|
225
|
-
end
|
|
226
|
-
|
|
227
|
-
def procedure_recommended
|
|
228
|
-
JSON.parse(@qdmPatient.get_data_elements('procedure', 'recommended').to_json)
|
|
229
|
-
end
|
|
230
|
-
|
|
231
|
-
def program_participation
|
|
232
|
-
JSON.parse(@qdmPatient.get_data_elements('participation', nil).to_json)
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
def provider_care_experience
|
|
236
|
-
JSON.parse(@qdmPatient.dataElements.where(hqmfOid: { '$in' => HQMF::Util::HQMFTemplateHelper.get_all_hqmf_oids('provider_care_experience', '') }).to_json)
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
def related_person
|
|
240
|
-
JSON.parse(@qdmPatient.get_data_elements('related_person', nil).to_json)
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
def substance_administered
|
|
244
|
-
JSON.parse(@qdmPatient.get_data_elements('substance', 'administered').to_json)
|
|
245
|
-
end
|
|
246
|
-
|
|
247
|
-
def substance_order
|
|
248
|
-
JSON.parse(@qdmPatient.get_data_elements('substance', 'order').to_json)
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
def substance_recommended
|
|
252
|
-
JSON.parse(@qdmPatient.get_data_elements('substance', 'recommended').to_json)
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
def symptom
|
|
256
|
-
JSON.parse(@qdmPatient.get_data_elements('symptom', nil).to_json)
|
|
257
|
-
end
|
|
258
|
-
end
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<participant typeCode="DEV">
|
|
2
|
-
<associatedEntity classCode="RGPR">
|
|
3
|
-
<!-- CMS EHR Certification Number (formerly known as Office of the
|
|
4
|
-
National Coordinator Certification Number). Note, this is a test
|
|
5
|
-
file, and the provided ID is not for a certified product set. -->
|
|
6
|
-
<id extension="0015CPV4ZTB4WBU" root="2.16.840.1.113883.3.2074.1"/>
|
|
7
|
-
</associatedEntity>
|
|
8
|
-
</participant>
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
<recordTarget>
|
|
2
|
-
<patientRole>
|
|
3
|
-
<id extension="{{mrn}}" root="1.3.6.1.4.1.115" />
|
|
4
|
-
{{#medicare_beneficiary_identifier}}
|
|
5
|
-
<id extension="{{medicare_beneficiary_identifier}}" root="2.16.840.1.113883.4.927" />
|
|
6
|
-
{{/medicare_beneficiary_identifier}}
|
|
7
|
-
{{#patient_addresses}}
|
|
8
|
-
<addr use="{{use}}">
|
|
9
|
-
{{#street}}
|
|
10
|
-
<streetAddressLine>{{.}}</streetAddressLine>
|
|
11
|
-
{{/street}}
|
|
12
|
-
<city>{{city}}</city>
|
|
13
|
-
<state>{{state}}</state>
|
|
14
|
-
<postalCode>{{zip}}</postalCode>
|
|
15
|
-
<country>{{country}}</country>
|
|
16
|
-
</addr>
|
|
17
|
-
{{/patient_addresses}}
|
|
18
|
-
{{#patient_telecoms}}
|
|
19
|
-
<telecom use="{{use}}" value="tel:{{value}}"/>
|
|
20
|
-
{{/patient_telecoms}}
|
|
21
|
-
{{#patient_email}}
|
|
22
|
-
<telecom use="{{use}}" value="mailto:{{value}}"/>
|
|
23
|
-
{{/patient_email}}
|
|
24
|
-
<patient>
|
|
25
|
-
{{#patient}}
|
|
26
|
-
<name>
|
|
27
|
-
<given>{{given_name}}</given>
|
|
28
|
-
<family>{{familyName}}</family>
|
|
29
|
-
</name>
|
|
30
|
-
{{/patient}}
|
|
31
|
-
{{#patient_characteristic_sex}}
|
|
32
|
-
{{#dataElementCodes}}
|
|
33
|
-
<administrativeGenderCode {{> _code}}/>
|
|
34
|
-
{{/dataElementCodes}}
|
|
35
|
-
{{/patient_characteristic_sex}}
|
|
36
|
-
{{^patient_characteristic_sex}}
|
|
37
|
-
<administrativeGenderCode nullFlavor="UNK"/>
|
|
38
|
-
{{/patient_characteristic_sex}}
|
|
39
|
-
{{#patient_characteristic_birthdate}}
|
|
40
|
-
{{{birth_date_time}}}
|
|
41
|
-
{{/patient_characteristic_birthdate}}
|
|
42
|
-
{{#patient_characteristic_race}}
|
|
43
|
-
{{#dataElementCodes}}
|
|
44
|
-
<raceCode {{> _code}}/>
|
|
45
|
-
{{/dataElementCodes}}
|
|
46
|
-
{{/patient_characteristic_race}}
|
|
47
|
-
{{^patient_characteristic_race}}
|
|
48
|
-
<raceCode nullFlavor="UNK"/>
|
|
49
|
-
{{/patient_characteristic_race}}
|
|
50
|
-
{{#patient_characteristic_ethnicity}}
|
|
51
|
-
{{#dataElementCodes}}
|
|
52
|
-
<ethnicGroupCode {{> _code}}/>
|
|
53
|
-
{{/dataElementCodes}}
|
|
54
|
-
{{/patient_characteristic_ethnicity}}
|
|
55
|
-
{{^patient_characteristic_ethnicity}}
|
|
56
|
-
<ethnicGroupCode nullFlavor="UNK"/>
|
|
57
|
-
{{/patient_characteristic_ethnicity}}
|
|
58
|
-
<languageCommunication>
|
|
59
|
-
<templateId root="2.16.840.1.113883.3.88.11.83.2" assigningAuthorityName="HITSP/C83"/>
|
|
60
|
-
<templateId root="1.3.6.1.4.1.19376.1.5.3.1.2.1" assigningAuthorityName="IHE/PCC"/>
|
|
61
|
-
<languageCode code="eng"/>
|
|
62
|
-
</languageCommunication>
|
|
63
|
-
</patient>
|
|
64
|
-
</patientRole>
|
|
65
|
-
</recordTarget>
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<entry>
|
|
2
|
-
<!--Medication Order -->
|
|
3
|
-
<substanceAdministration classCode="SBADM" moodCode="RQO" {{{negation_ind}}}>
|
|
4
|
-
<templateId root="2.16.840.1.113883.10.20.22.4.42" extension="2014-06-09"/>
|
|
5
|
-
<!-- Medication, Order template -->
|
|
6
|
-
<templateId root="2.16.840.1.113883.10.20.24.3.47" extension="2019-12-01"/>
|
|
7
|
-
<id root="1.3.6.1.4.1.115" extension="{{object_id}}"/>
|
|
8
|
-
<text>{{description}}</text>
|
|
9
|
-
<statusCode code="active"/>
|
|
10
|
-
{{#relevantPeriod}}
|
|
11
|
-
<!-- QDM Attribute: Relevant Period -->
|
|
12
|
-
{{{medication_duration_effective_time}}}
|
|
13
|
-
{{/relevantPeriod}}
|
|
14
|
-
{{^relevantPeriod}}
|
|
15
|
-
{{#authorDatetime}}
|
|
16
|
-
<!-- QDM Attribute: Relevant Period -->
|
|
17
|
-
{{{medication_duration_author_effective_time}}}
|
|
18
|
-
{{/authorDatetime}}
|
|
19
|
-
{{/relevantPeriod}}
|
|
20
|
-
{{> qrda_templates/template_partials/_medication_details}}
|
|
21
|
-
<consumable>
|
|
22
|
-
<manufacturedProduct classCode="MANU">
|
|
23
|
-
<!-- Medication Information (consolidation) template -->
|
|
24
|
-
<templateId root="2.16.840.1.113883.10.20.22.4.23" extension="2014-06-09"/>
|
|
25
|
-
<id root="{{random_id}}"/>
|
|
26
|
-
<manufacturedMaterial>
|
|
27
|
-
<!-- QDM Attribute: Code -->
|
|
28
|
-
{{> _codes}}
|
|
29
|
-
</manufacturedMaterial>
|
|
30
|
-
</manufacturedProduct>
|
|
31
|
-
</consumable>
|
|
32
|
-
{{#authorDatetime}}
|
|
33
|
-
<!-- QDM Attribute: Author dateTime -->
|
|
34
|
-
{{> qrda_templates/template_partials/_author}}
|
|
35
|
-
{{/authorDatetime}}
|
|
36
|
-
{{#setting}}
|
|
37
|
-
<participant typeCode="LOC">
|
|
38
|
-
<participantRole>
|
|
39
|
-
<!-- QDM Attribute: Setting -->
|
|
40
|
-
<code {{> _code}}/>
|
|
41
|
-
</participantRole>
|
|
42
|
-
</participant>
|
|
43
|
-
{{/setting}}
|
|
44
|
-
{{#prescriber}}
|
|
45
|
-
<!-- QDM Attribute: Prescriber -->
|
|
46
|
-
<participant typeCode="PRF">
|
|
47
|
-
{{> qrda_templates/template_partials/_entity}}
|
|
48
|
-
</participant>
|
|
49
|
-
{{/prescriber}}
|
|
50
|
-
{{#reason}}
|
|
51
|
-
<!-- QDM Attribute: Reason -->
|
|
52
|
-
{{> qrda_templates/template_partials/_reason}}
|
|
53
|
-
{{/reason}}
|
|
54
|
-
{{#negationRationale}}
|
|
55
|
-
<!-- QDM Attribute: Negation Rationale -->
|
|
56
|
-
{{> qrda_templates/template_partials/_reason}}
|
|
57
|
-
{{/negationRationale}}
|
|
58
|
-
{{#daysSupplied}}
|
|
59
|
-
<entryRelationship typeCode="REFR">
|
|
60
|
-
{{> qrda_templates/template_partials/_days_supplied}}
|
|
61
|
-
</entryRelationship>
|
|
62
|
-
{{/daysSupplied}}
|
|
63
|
-
{{#supply}}
|
|
64
|
-
<!-- QDM Attribute: Supply -->
|
|
65
|
-
<entryRelationship typeCode="COMP">
|
|
66
|
-
{{> qrda_templates/template_partials/_medication_supply_request}}
|
|
67
|
-
</entryRelationship>
|
|
68
|
-
{{/supply}}
|
|
69
|
-
</substanceAdministration>
|
|
70
|
-
</entry>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<participant typeCode="DEV">
|
|
2
|
-
<associatedEntity classCode="RGPR">
|
|
3
|
-
<!-- CMS EHR Certification Number (formerly known as Office of the
|
|
4
|
-
National Coordinator Certification Number). Note, this is a test
|
|
5
|
-
file, and the provided ID is not for a certified product set. -->
|
|
6
|
-
<id root="2.16.840.1.113883.3.2074.1" extension="0015CPV4ZTB4WBU"/>
|
|
7
|
-
<code code="129465004" displayName="medical record, device" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED-CT"/>
|
|
8
|
-
</associatedEntity>
|
|
9
|
-
</participant>
|