cqm-parsers 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hqmf-model/data_criteria.json +1046 -0
  3. data/lib/hqmf-parser/1.0/data_criteria_oid_xpath.json +91 -0
  4. data/lib/qrda-export/catI-r5/_code.mustache +1 -0
  5. data/lib/qrda-export/catI-r5/_codes.mustache +10 -0
  6. data/lib/qrda-export/catI-r5/_header.mustache +28 -0
  7. data/lib/qrda-export/catI-r5/_measure_section.mustache +59 -0
  8. data/lib/qrda-export/catI-r5/_reporting_period.mustache +23 -0
  9. data/lib/qrda-export/catI-r5/_values.mustache +10 -0
  10. data/lib/qrda-export/catI-r5/qrda1_r5.mustache +137 -0
  11. data/lib/qrda-export/catI-r5/qrda_header/_author.mustache +20 -0
  12. data/lib/qrda-export/catI-r5/qrda_header/_custodian.mustache +17 -0
  13. data/lib/qrda-export/catI-r5/qrda_header/_documentation_of_service_event.mustache +80 -0
  14. data/lib/qrda-export/catI-r5/qrda_header/_information_recipient.mustache +7 -0
  15. data/lib/qrda-export/catI-r5/qrda_header/_legal_authenticator.mustache +25 -0
  16. data/lib/qrda-export/catI-r5/qrda_header/_participant.mustache +7 -0
  17. data/lib/qrda-export/catI-r5/qrda_header/_record_target.mustache +29 -0
  18. data/lib/qrda-export/catI-r5/qrda_templates/adverse_event.mustache +28 -0
  19. data/lib/qrda-export/catI-r5/qrda_templates/allergy_intolerance.mustache +28 -0
  20. data/lib/qrda-export/catI-r5/qrda_templates/assessment_performed.mustache +25 -0
  21. data/lib/qrda-export/catI-r5/qrda_templates/communication_from_patient_to_provider.mustache +29 -0
  22. data/lib/qrda-export/catI-r5/qrda_templates/communication_from_provider_to_patient.mustache +24 -0
  23. data/lib/qrda-export/catI-r5/qrda_templates/communication_from_provider_to_provider.mustache +31 -0
  24. data/lib/qrda-export/catI-r5/qrda_templates/device_applied.mustache +32 -0
  25. data/lib/qrda-export/catI-r5/qrda_templates/device_ordered.mustache +31 -0
  26. data/lib/qrda-export/catI-r5/qrda_templates/diagnosis.mustache +38 -0
  27. data/lib/qrda-export/catI-r5/qrda_templates/diagnostic_study_ordered.mustache +19 -0
  28. data/lib/qrda-export/catI-r5/qrda_templates/diagnostic_study_performed.mustache +29 -0
  29. data/lib/qrda-export/catI-r5/qrda_templates/encounter_ordered.mustache +25 -0
  30. data/lib/qrda-export/catI-r5/qrda_templates/encounter_performed.mustache +41 -0
  31. data/lib/qrda-export/catI-r5/qrda_templates/immunization_aministered.mustache +29 -0
  32. data/lib/qrda-export/catI-r5/qrda_templates/insurance_provider.mustache +11 -0
  33. data/lib/qrda-export/catI-r5/qrda_templates/intervention_ordered.mustache +18 -0
  34. data/lib/qrda-export/catI-r5/qrda_templates/intervention_performed.mustache +25 -0
  35. data/lib/qrda-export/catI-r5/qrda_templates/lab_test_ordered.mustache +18 -0
  36. data/lib/qrda-export/catI-r5/qrda_templates/lab_test_performed.mustache +22 -0
  37. data/lib/qrda-export/catI-r5/qrda_templates/medication_active.mustache +35 -0
  38. data/lib/qrda-export/catI-r5/qrda_templates/medication_administered.mustache +31 -0
  39. data/lib/qrda-export/catI-r5/qrda_templates/medication_discharge.mustache +55 -0
  40. data/lib/qrda-export/catI-r5/qrda_templates/medication_dispensed.mustache +39 -0
  41. data/lib/qrda-export/catI-r5/qrda_templates/medication_ordered.mustache +38 -0
  42. data/lib/qrda-export/catI-r5/qrda_templates/patient_characteristic_expired.mustache +16 -0
  43. data/lib/qrda-export/catI-r5/qrda_templates/physical_exam_performed.mustache +25 -0
  44. data/lib/qrda-export/catI-r5/qrda_templates/procedure_ordered.mustache +19 -0
  45. data/lib/qrda-export/catI-r5/qrda_templates/procedure_performed.mustache +44 -0
  46. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_admission_source.mustache +6 -0
  47. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_anatomical_location_site.mustache +1 -0
  48. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_author.mustache +7 -0
  49. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_author_participation.mustache +7 -0
  50. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_component.mustache +11 -0
  51. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_encounter_diagnosis.mustache +19 -0
  52. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_encounter_facility_location.mustache +16 -0
  53. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_mediation_frequency.mustache +3 -0
  54. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_medication_details.mustache +11 -0
  55. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_ordinality.mustache +1 -0
  56. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_principal_diagnosis.mustache +8 -0
  57. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_reason.mustache +12 -0
  58. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_related_to.mustache +6 -0
  59. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_results.mustache +21 -0
  60. data/lib/qrda-export/catI-r5/qrda_templates/template_partials/_severity.mustache +8 -0
  61. data/lib/tasks/hqmf.rake +170 -0
  62. data/lib/util/hqmf_template_oid_map.json +674 -0
  63. data/lib/util/hqmfr2_template_oid_map.json +390 -0
  64. data/lib/util/hqmfr2cql_template_oid_map.json +390 -0
  65. metadata +64 -1
@@ -0,0 +1,6 @@
1
+ <participant typeCode="LOC">
2
+ <participantRole classCode="SDLOC">
3
+ <templateId root="2.16.840.1.113883.10.20.24.3.151" extension="2017-08-01"/>
4
+ <code {{> _code}}/>
5
+ </participantRole>
6
+ </participant>
@@ -0,0 +1,7 @@
1
+ <author>
2
+ <templateId root="2.16.840.1.113883.10.20.24.3.155" extension="2017-08-01"/>
3
+ {{{author_time}}}
4
+ <assignedAuthor>
5
+ <id nullFlavor="NA"/>
6
+ </assignedAuthor>
7
+ </author>
@@ -0,0 +1,7 @@
1
+ <author>
2
+ <templateId root="2.16.840.1.113883.10.20.22.4.119"/>
3
+ {{{author_time}}}
4
+ <assignedAuthor>
5
+ <id nullFlavor="NA"/>
6
+ </assignedAuthor>
7
+ </author>
@@ -0,0 +1,11 @@
1
+ <entryRelationship typeCode="REFR">
2
+ <observation classCode="OBS" moodCode="EVN">
3
+ <!-- Component -->
4
+ <templateId root="2.16.840.1.113883.10.20.24.3.149" extension="2017-08-01" />
5
+ <id root="{{random_id}}"/>
6
+ {{#code}}
7
+ <code {{> _code}}/>
8
+ {{/code}}
9
+ {{{result_value}}}
10
+ </observation>
11
+ </entryRelationship>
@@ -0,0 +1,19 @@
1
+ <entryRelationship typeCode="REFR">
2
+ <act classCode="ACT" moodCode="EVN">
3
+ <templateId extension="2015-08-01" root="2.16.840.1.113883.10.20.22.4.80"/>
4
+ <code code="29308-4" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="Diagnosis"/>
5
+ <entryRelationship typeCode="SUBJ">
6
+ <observation classCode="OBS" moodCode="EVN">
7
+ <!-- Problem observation template -->
8
+ <templateId extension="2015-08-01" root="2.16.840.1.113883.10.20.22.4.4"/>
9
+ <id root="{{random_id}}"/>
10
+ <code code="29308-4" codeSystem="2.16.840.1.113883.6.1">
11
+ <translation code="282291009" codeSystem="2.16.840.1.113883.6.96"/>
12
+ </code>
13
+ <statusCode code="completed"/>
14
+ {{{relevant_period}}}
15
+ <value {{> _code}} xsi:type="CD"/>
16
+ </observation>
17
+ </entryRelationship>
18
+ </act>
19
+ </entryRelationship>
@@ -0,0 +1,16 @@
1
+ <participant typeCode="LOC">
2
+ <!-- Facility Location template -->
3
+ <templateId extension="2017-08-01" root="2.16.840.1.113883.10.20.24.3.100"/>
4
+ <time>
5
+ {{{facility_period}}}
6
+ </time>
7
+ <participantRole classCode="SDLOC">
8
+ {{#code}}
9
+ <code {{> _code}}/>
10
+ {{/code}}
11
+ <telecom nullFlavor="UNK"/>
12
+ <playingEntity classCode="PLC">
13
+ <name/>
14
+ </playingEntity>
15
+ </participantRole>
16
+ </participant>
@@ -0,0 +1,3 @@
1
+ <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true" operator="A">
2
+ <period value="1" unit="d"/>
3
+ </effectiveTime>
@@ -0,0 +1,11 @@
1
+ {{#route}}
2
+ <routeCode {{> _code}}/>
3
+ {{/route}}
4
+ {{#negated}}
5
+ <doseQuantity nullFlavor="NA"/>
6
+ {{/negated}}
7
+ {{^negated}}
8
+ {{#dosage}}
9
+ <doseQuantity value="{{value}}" unit="{{unit}}"/>
10
+ {{/dosage}}
11
+ {{/negated}}
@@ -0,0 +1,8 @@
1
+ <entryRelationship typeCode="REFR">
2
+ <observation classCode="OBS" moodCode="EVN">
3
+ <templateId root="2.16.840.1.113883.10.20.24.3.152" extension="2017-08-01"/>
4
+ <id root="{{random_id}}"/>
5
+ <code code="8319008" codeSystem="2.16.840.1.113883.6.96" displayName="Principal Diagnosis" codeSystemName="SNOMED"/>
6
+ <value {{> _code}} xsi:type="CD"/>
7
+ </observation>
8
+ </entryRelationship>
@@ -0,0 +1,12 @@
1
+ <entryRelationship typeCode="RSON">
2
+ <observation classCode="OBS" moodCode="EVN">
3
+ <templateId root="2.16.840.1.113883.10.20.24.3.88" extension="2014-12-01"/>
4
+ <id root="1.3.6.1.4.1.115" extension="{{random_id}}" />
5
+ <code code="77301-0" codeSystem="2.16.840.1.113883.6.1" displayName="reason" codeSystemName="LOINC"/>
6
+ <statusCode code="completed"/>
7
+ {{#relevantPeriod}}
8
+ {{{relevant_period}}}
9
+ {{/relevantPeriod}}
10
+ <value {{> _code}} xsi:type="CD"/>
11
+ </observation>
12
+ </entryRelationship>
@@ -0,0 +1,6 @@
1
+ <sdtc:inFulfillmentOf1 typeCode="FLFS">
2
+ <sdtc:templateId root="2.16.840.1.113883.10.20.24.3.150" extension="2017-08-01"/>
3
+ <sdtc:actReference classCode="ACT" moodCode="EVN">
4
+ <sdtc:id root="1.3.6.1.4.1.115" extension="{{{as_id}}}"/>
5
+ </sdtc:actReference>
6
+ </sdtc:inFulfillmentOf1>
@@ -0,0 +1,21 @@
1
+ <entryRelationship typeCode="REFR">
2
+ <observation classCode="OBS" moodCode="EVN">
3
+ <!-- Conforms to C-CDA R2 Result Observation (V2) -->
4
+ <templateId root="2.16.840.1.113883.10.20.22.4.2" extension="2015-08-01"/>
5
+ <!-- Result (QRDA I R3) -->
6
+ <templateId root="2.16.840.1.113883.10.20.24.3.87" extension="2016-02-01"/>
7
+ <id root="1.3.6.1.4.1.115" extension="{{random_id}}"/>
8
+ {{> _codes}}
9
+ <statusCode code="completed"/>
10
+ {{#relevantPeriod}}
11
+ {{{relevant_period}}}
12
+ {{/relevantPeriod}}
13
+ {{^relevantPeriod}}
14
+ {{#authorDatetime}}
15
+ {{{author_effective_time}}}
16
+ {{/authorDatetime}}
17
+ {{/relevantPeriod}}
18
+ {{{result_value}}}
19
+ </observation>
20
+ </entryRelationship>
21
+
@@ -0,0 +1,8 @@
1
+ <entryRelationship typeCode="REFR">
2
+ <observation classCode="OBS" moodCode="EVN">
3
+ <templateId root="2.16.840.1.113883.10.20.22.4.8" extension="2014-06-09" />
4
+ <code code="SEV" codeSystem="2.16.840.1.113883.5.4" />
5
+ <statusCode code="completed" />
6
+ <value xsi:type="CD" {{> _code}}/>
7
+ </observation>
8
+ </entryRelationship>
@@ -0,0 +1,170 @@
1
+ require 'pathname'
2
+ require 'fileutils'
3
+ require 'json'
4
+ require 'hqmf-parser'
5
+
6
+ namespace :hqmf do
7
+
8
+ desc 'Parse all xml files to JSON and save them to ./tmp'
9
+ task :parse_all, [:path, :version] do |t, args|
10
+
11
+ raise "You must specify the HQMF XML file path to convert" unless args.path
12
+
13
+
14
+ FileUtils.mkdir_p File.join(".","tmp",'json','all')
15
+ path = File.expand_path(args.path)
16
+ version = args.version || HQMF::Parser::HQMF_VERSION_1
17
+
18
+ Dir.glob(File.join(path,'**','*.xml')) do |measure_def|
19
+ puts "####################################"
20
+ puts "### processing: #{measure_def}..."
21
+ puts "####################################"
22
+ if (version == HQMF::Parser::HQMF_VERSION_1)
23
+ doc = HQMF::Parser::V1Parser.new.parse(File.open(file).read, version)
24
+ else
25
+ doc = HQMF::Parser::V2Parser.new.parse(File.open(file).read, version)
26
+ end
27
+ filename = Pathname.new(measure_def).basename
28
+
29
+ File.open(File.join(".","tmp",'json','all',"#{filename}.json"), 'w') {|f| f.write(doc.to_json.to_json(max_nesting: 100).gsub(/",/,"\",\n")) }
30
+ puts "\n"
31
+ end
32
+
33
+ end
34
+
35
+ desc 'Parse specified xml file to JSON and save it to ./tmp'
36
+ task :parse, [:file,:version] do |t, args|
37
+ FileUtils.mkdir_p File.join(".","tmp",'json')
38
+
39
+ raise "You must specify the HQMF XML file to convert" unless args.file
40
+
41
+ version = args.version || HQMF::Parser::HQMF_VERSION_1
42
+ file = File.expand_path(args.file)
43
+ filename = Pathname.new(file).basename
44
+
45
+ if (version == HQMF::Parser::HQMF_VERSION_1)
46
+ doc = HQMF::Parser::V1Parser.new.parse(File.open(file).read, version)
47
+ else
48
+ doc = HQMF::Parser::V2Parser.new.parse(File.open(file).read, version)
49
+ end
50
+ outfile = File.join(".","tmp",'json',"#{filename}.json")
51
+ File.open(outfile, 'w') {|f| f.write(JSON.pretty_generate(doc.to_json, max_nesting: 100)) }
52
+
53
+ puts "wrote result to: #{outfile}"
54
+
55
+ end
56
+
57
+ desc 'Parse specified xml file to V1 JSON and save it to ./tmp'
58
+ task :parse_v1, [:file] do |t, args|
59
+ FileUtils.mkdir_p File.join(".","tmp",'json')
60
+
61
+ raise "You must specify the HQMF XML file to convert" unless args.file
62
+
63
+ file = File.expand_path(args.file)
64
+ filename = Pathname.new(file).basename
65
+
66
+ doc = HQMF1::Document.new(File.open(file).read).to_json
67
+ outfile = File.join(".","tmp",'json',"#{filename}_v1.json")
68
+ File.open(outfile, 'w') {|f| f.write(JSON.pretty_generate(doc.to_json, max_nesting: 100)) }
69
+ puts "wrote result to: #{outfile}"
70
+
71
+ end
72
+
73
+ desc 'Convert V1 JSON to V2 JSON and save it to ./tmp'
74
+ task :convert, [:file] do |t, args|
75
+ FileUtils.mkdir_p File.join(".","tmp",'json')
76
+
77
+ raise "You must specify the V1 JSON file to convert" unless args.file
78
+
79
+ file = File.expand_path(args.file)
80
+ filename = Pathname.new(file).basename
81
+
82
+ converted = HQMF::DocumentConverter.convert(JSON.parse(File.open(file).read,:symbolize_names => true))
83
+
84
+ outfile = File.join(".","tmp",'json',"#{filename}_v2.json")
85
+
86
+ File.open(outfile, 'w') {|f| f.write(JSON.pretty_generate(converted.to_json, max_nesting: 100)) }
87
+ puts "wrote result to: #{outfile}"
88
+
89
+ end
90
+
91
+ desc 'Convert specified HQMF V1 xml file to HQMF V2 and save it to ./tmp'
92
+ task :upgrade, [:file] do |t, args|
93
+ FileUtils.mkdir_p File.join(".","tmp",'xml')
94
+
95
+ raise "You must specify the HQMF XML file to convert" unless args.file
96
+
97
+ version = HQMF::Parser::HQMF_VERSION_1
98
+ file = File.expand_path(args.file)
99
+ filename = Pathname.new(file).basename
100
+
101
+ doc = HQMF::Parser::V1Parser.new.parse(File.open(file).read, version)
102
+
103
+ hqmf_xml = HQMF2::Generator::ModelProcessor.to_hqmf(doc)
104
+ xml = Nokogiri.XML(hqmf_xml) do |config|
105
+ config.default_xml.noblanks
106
+ end
107
+
108
+ outfile = File.join(".","tmp",'xml',"#{filename}")
109
+ File.open(outfile, 'w') {|f| f.write(xml.to_xml(:indent => 2)) }
110
+
111
+ puts "wrote result to: #{outfile}"
112
+
113
+ end
114
+
115
+ desc 'Convert specified HQMF V1 xml file to HQMF V2 and save it to ./tmp'
116
+ task :upgrade_all, [:dir] do |t, args|
117
+ outdir = File.join(".","tmp",'xml','upgrade')
118
+ FileUtils.mkdir_p outdir
119
+
120
+ raise "You must specify the HQMF XML directory to convert" unless args.dir
121
+
122
+
123
+ Dir.glob(File.join(args.dir,'**','*.xml')) do |file|
124
+ version = HQMF::Parser::HQMF_VERSION_1
125
+ file = File.expand_path(file)
126
+ filename = "#{Pathname.new(file).basename('.*')}_R2.xml"
127
+
128
+ doc = HQMF::Parser::V1Parser.new.parse(File.open(file).read, version)
129
+
130
+ hqmf_xml = HQMF2::Generator::ModelProcessor.to_hqmf(doc)
131
+ xml = Nokogiri.XML(hqmf_xml) do |config|
132
+ config.default_xml.noblanks
133
+ end
134
+
135
+ outfile = File.join(outdir,"#{filename}")
136
+ File.open(outfile, 'w') {|f| f.write(xml.to_xml(:indent => 2)) }
137
+
138
+ puts "wrote result to: #{outfile}"
139
+ end
140
+
141
+
142
+ end
143
+
144
+ desc 'Roundtrip specified HQMF V2 xml file through the model and back to HQMF V2 and save it to ./tmp'
145
+ task :roundtrip, [:file] do |t, args|
146
+ FileUtils.mkdir_p File.join(".","tmp",'xml')
147
+
148
+ raise "You must specify the HQMF XML file to roundtrip" unless args.file
149
+
150
+ version = HQMF::Parser::HQMF_VERSION_2
151
+ file = File.expand_path(args.file)
152
+ filename = Pathname.new(file).basename
153
+
154
+ doc = HQMF::Parser::V1Parser.new.parse(File.open(file).read, version)
155
+
156
+ hqmf_xml = HQMF2::Generator::ModelProcessor.to_hqmf(doc)
157
+ xml = Nokogiri.XML(hqmf_xml) do |config|
158
+ config.default_xml.noblanks
159
+ end
160
+
161
+ outfile = File.join(".","tmp",'xml',"#{filename}")
162
+ File.open(outfile, 'w') {|f| f.write(xml.to_xml(:indent => 2)) }
163
+
164
+ puts "wrote result to: #{outfile}"
165
+
166
+ end
167
+
168
+
169
+
170
+ end
@@ -0,0 +1,674 @@
1
+ {
2
+ "2.16.840.1.113883.3.560.1.1001":{
3
+ "definition":"patient_characteristic",
4
+ "status":"",
5
+ "negation":false},
6
+ "2.16.840.1.113883.3.560.1.25":{
7
+ "definition":"patient_characteristic_birthdate",
8
+ "status":"",
9
+ "negation":false},
10
+ "2.16.840.1.113883.3.560.1.400":{
11
+ "definition":"patient_characteristic_birthdate",
12
+ "status":"",
13
+ "negation":false},
14
+ "2.16.840.1.113883.3.560.1.401":{
15
+ "definition":"patient_characteristic_clinical_trial_participant",
16
+ "status":"",
17
+ "negation":false},
18
+ "2.16.840.1.113883.3.560.1.402":{
19
+ "definition":"patient_characteristic_gender",
20
+ "status":"",
21
+ "negation":false},
22
+ "2.16.840.1.113883.3.560.1.403":{
23
+ "definition":"patient_characteristic_ethnicity",
24
+ "status":"",
25
+ "negation":false},
26
+ "2.16.840.1.113883.3.560.1.404":{
27
+ "definition":"patient_characteristic_expired",
28
+ "status":"",
29
+ "negation":false},
30
+ "2.16.840.1.113883.3.560.1.405":{
31
+ "definition":"patient_characteristic_payer",
32
+ "status":"",
33
+ "negation":false},
34
+ "2.16.840.1.113883.3.560.1.406":{
35
+ "definition":"patient_characteristic_race",
36
+ "status":"",
37
+ "negation":false},
38
+ "2.16.840.1.113883.3.560.1.4":{
39
+ "definition":"encounter",
40
+ "status":"",
41
+ "negation":false},
42
+ "2.16.840.1.113883.3.560.1.81":{
43
+ "definition":"encounter",
44
+ "status":"active",
45
+ "negation":false},
46
+ "2.16.840.1.113883.3.560.1.79":{
47
+ "definition":"encounter",
48
+ "status":"performed",
49
+ "negation":false},
50
+ "2.16.840.1.113883.3.560.1.82":{
51
+ "definition":"encounter",
52
+ "status":"performed",
53
+ "negation":false},
54
+ "2.16.840.1.113883.3.560.1.83":{
55
+ "definition":"encounter",
56
+ "status":"ordered",
57
+ "negation":false},
58
+ "2.16.840.1.113883.3.560.1.84":{
59
+ "definition":"encounter",
60
+ "status":"recommended",
61
+ "negation":false},
62
+ "2.16.840.1.113883.3.560.1.179":{
63
+ "definition":"encounter",
64
+ "status":"performed",
65
+ "negation":true},
66
+ "2.16.840.1.113883.3.560.1.182":{
67
+ "definition":"encounter",
68
+ "status":"performed",
69
+ "negation":true},
70
+ "2.16.840.1.113883.3.560.1.181":{
71
+ "definition":"encounter",
72
+ "status":"active",
73
+ "negation":true},
74
+ "2.16.840.1.113883.3.560.1.183":{
75
+ "definition":"encounter",
76
+ "status":"ordered",
77
+ "negation":true},
78
+ "2.16.840.1.113883.3.560.1.184":{
79
+ "definition":"encounter",
80
+ "status":"recommended",
81
+ "negation":true},
82
+ "2.16.840.1.113883.3.560.1.104":{
83
+ "definition":"encounter",
84
+ "status":"",
85
+ "negation":true},
86
+ "2.16.840.1.113883.3.560.1.6":{
87
+ "definition":"procedure",
88
+ "status":"performed",
89
+ "negation":false},
90
+ "2.16.840.1.113883.3.560.1.62":{
91
+ "definition":"procedure",
92
+ "status":"ordered",
93
+ "negation":false},
94
+ "2.16.840.1.113883.3.560.1.63":{
95
+ "definition":"procedure_result",
96
+ "status":"",
97
+ "negation":false},
98
+ "2.16.840.1.113883.3.560.1.60":{
99
+ "definition":"procedure_adverse_event",
100
+ "status":"",
101
+ "negation":false},
102
+ "2.16.840.1.113883.3.560.1.61":{
103
+ "definition":"procedure_intolerance",
104
+ "status":"",
105
+ "negation":false},
106
+ "2.16.840.1.113883.3.560.1.92":{
107
+ "definition":"procedure",
108
+ "status":"recommended",
109
+ "negation":false},
110
+ "2.16.840.1.113883.3.560.1.162":{
111
+ "definition":"procedure",
112
+ "status":"ordered",
113
+ "negation":true},
114
+ "2.16.840.1.113883.3.560.1.163":{
115
+ "definition":"procedure_result",
116
+ "status":"",
117
+ "negation":true},
118
+ "2.16.840.1.113883.3.560.1.160":{
119
+ "definition":"procedure_adverse_event",
120
+ "status":"",
121
+ "negation":true},
122
+ "2.16.840.1.113883.3.560.1.161":{
123
+ "definition":"procedure_intolerance",
124
+ "status":"",
125
+ "negation":true},
126
+ "2.16.840.1.113883.3.560.1.106":{
127
+ "definition":"procedure",
128
+ "status":"performed",
129
+ "negation":true},
130
+ "2.16.840.1.113883.3.560.1.192":{
131
+ "definition":"procedure",
132
+ "status":"recommended",
133
+ "negation":true},
134
+ "2.16.840.1.113883.3.560.1.2":{
135
+ "definition":"diagnosis",
136
+ "status":"active",
137
+ "negation":false},
138
+ "2.16.840.1.113883.3.560.1.24":{
139
+ "definition":"diagnosis",
140
+ "status":"resolved",
141
+ "negation":false},
142
+ "2.16.840.1.113883.3.560.1.32":{
143
+ "definition":"diagnosis",
144
+ "status":"family_history",
145
+ "negation":false},
146
+ "2.16.840.1.113883.3.560.1.23":{
147
+ "definition":"diagnosis",
148
+ "status":"inactive",
149
+ "negation":false},
150
+ "2.16.840.1.113883.3.560.1.33":{
151
+ "definition":"diagnosis_risk_of",
152
+ "status":"",
153
+ "negation":false},
154
+ "2.16.840.1.113883.3.560.1.124":{
155
+ "definition":"diagnosis",
156
+ "status":"resolved",
157
+ "negation":true},
158
+ "2.16.840.1.113883.3.560.1.132":{
159
+ "definition":"diagnosis",
160
+ "status":"family_history",
161
+ "negation":true},
162
+ "2.16.840.1.113883.3.560.1.123":{
163
+ "definition":"diagnosis",
164
+ "status":"inactive",
165
+ "negation":true},
166
+ "2.16.840.1.113883.3.560.1.102":{
167
+ "definition":"diagnosis",
168
+ "status":"active",
169
+ "negation":true},
170
+ "2.16.840.1.113883.3.560.1.133":{
171
+ "definition":"diagnosis_risk_of",
172
+ "status":"",
173
+ "negation":true},
174
+ "2.16.840.1.113883.3.560.1.3":{
175
+ "definition":"diagnostic_study",
176
+ "status":"performed",
177
+ "negation":false},
178
+ "2.16.840.1.113883.3.560.1.11":{
179
+ "definition":"diagnostic_study_result",
180
+ "status":"",
181
+ "negation":false},
182
+ "2.16.840.1.113883.3.560.1.38":{
183
+ "definition":"diagnostic_study_adverse_event",
184
+ "status":"",
185
+ "negation":false},
186
+ "2.16.840.1.113883.3.560.1.39":{
187
+ "definition":"diagnostic_study_intolerance",
188
+ "status":"",
189
+ "negation":false},
190
+ "2.16.840.1.113883.3.560.1.40":{
191
+ "definition":"diagnostic_study",
192
+ "status":"ordered",
193
+ "negation":false},
194
+ "2.16.840.1.113883.3.560.1.103":{
195
+ "definition":"diagnostic_study",
196
+ "status":"performed",
197
+ "negation":true},
198
+ "2.16.840.1.113883.3.560.1.138":{
199
+ "definition":"diagnostic_study_adverse_event",
200
+ "status":"",
201
+ "negation":true},
202
+ "2.16.840.1.113883.3.560.1.139":{
203
+ "definition":"diagnostic_study_intolerance",
204
+ "status":"",
205
+ "negation":true},
206
+ "2.16.840.1.113883.3.560.1.140":{
207
+ "definition":"diagnostic_study",
208
+ "status":"ordered",
209
+ "negation":true},
210
+ "2.16.840.1.113883.3.560.1.111":{
211
+ "definition":"diagnostic_study_result",
212
+ "status":"",
213
+ "negation":true},
214
+ "2.16.840.1.113883.3.560.1.8":{
215
+ "definition":"medication",
216
+ "status":"dispensed",
217
+ "negation":false},
218
+ "2.16.840.1.113883.3.560.1.17":{
219
+ "definition":"medication",
220
+ "status":"ordered",
221
+ "negation":false},
222
+ "2.16.840.1.113883.3.560.1.199":{
223
+ "definition":"medication",
224
+ "status":"discharge",
225
+ "negation":false},
226
+ "2.16.840.1.113883.3.560.1.200":{
227
+ "definition":"medication",
228
+ "status":"discharge",
229
+ "negation":true},
230
+ "2.16.840.1.113883.3.560.1.13":{
231
+ "definition":"medication",
232
+ "status":"active",
233
+ "negation":false},
234
+ "2.16.840.1.113883.3.560.1.14":{
235
+ "definition":"medication",
236
+ "status":"administered",
237
+ "negation":false},
238
+ "2.16.840.1.113883.3.560.1.7":{
239
+ "definition":"medication_adverse_effects",
240
+ "status":"",
241
+ "negation":false},
242
+ "2.16.840.1.113883.3.560.1.1":{
243
+ "definition":"medication_allergy",
244
+ "status":"",
245
+ "negation":false},
246
+ "2.16.840.1.113883.3.560.1.15":{
247
+ "definition":"medication_intolerance",
248
+ "status":"",
249
+ "negation":false},
250
+ "2.16.840.1.113883.3.560.1.77":{
251
+ "definition":"medication",
252
+ "status":"",
253
+ "negation":true},
254
+ "2.16.840.1.113883.3.560.1.78":{
255
+ "definition":"medication",
256
+ "status":"ordered",
257
+ "negation":true},
258
+ "2.16.840.1.113883.3.560.1.108":{
259
+ "definition":"medication",
260
+ "status":"dispensed",
261
+ "negation":true},
262
+ "2.16.840.1.113883.3.560.1.113":{
263
+ "definition":"medication",
264
+ "status":"active",
265
+ "negation":true},
266
+ "2.16.840.1.113883.3.560.1.107":{
267
+ "definition":"medication_adverse_effects",
268
+ "status":"",
269
+ "negation":true},
270
+ "2.16.840.1.113883.3.560.1.101":{
271
+ "definition":"medication_allergy",
272
+ "status":"",
273
+ "negation":true},
274
+ "2.16.840.1.113883.3.560.1.115":{
275
+ "definition":"medication_intolerance",
276
+ "status":"",
277
+ "negation":true},
278
+ "2.16.840.1.113883.3.560.1.114":{
279
+ "definition":"medication",
280
+ "status":"administered",
281
+ "negation":true},
282
+ "2.16.840.1.113883.3.560.1.18":{
283
+ "definition":"physical_exam",
284
+ "status":"",
285
+ "negation":false},
286
+ "2.16.840.1.113883.3.560.1.56":{
287
+ "definition":"physical_exam",
288
+ "status":"ordered",
289
+ "negation":false},
290
+ "2.16.840.1.113883.3.560.1.57":{
291
+ "definition":"physical_exam",
292
+ "status":"performed",
293
+ "negation":false},
294
+ "2.16.840.1.113883.3.560.1.91":{
295
+ "definition":"physical_exam",
296
+ "status":"recommended",
297
+ "negation":false},
298
+ "2.16.840.1.113883.3.560.1.156":{
299
+ "definition":"physical_exam",
300
+ "status":"ordered",
301
+ "negation":true},
302
+ "2.16.840.1.113883.3.560.1.157":{
303
+ "definition":"physical_exam",
304
+ "status":"performed",
305
+ "negation":true},
306
+ "2.16.840.1.113883.3.560.1.191":{
307
+ "definition":"physical_exam",
308
+ "status":"recommended",
309
+ "negation":true},
310
+ "2.16.840.1.113883.3.560.1.118":{
311
+ "definition":"physical_exam",
312
+ "status":"",
313
+ "negation":true},
314
+ "2.16.840.1.113883.3.560.1.12":{
315
+ "definition":"laboratory_test",
316
+ "status":"",
317
+ "negation":false},
318
+ "2.16.840.1.113883.3.560.1.5":{
319
+ "definition":"laboratory_test",
320
+ "status":"performed",
321
+ "negation":false},
322
+ "2.16.840.1.113883.3.560.1.48":{
323
+ "definition":"laboratory_test_adverse_event",
324
+ "status":"",
325
+ "negation":false},
326
+ "2.16.840.1.113883.3.560.1.49":{
327
+ "definition":"laboratory_test_intolerance",
328
+ "status":"",
329
+ "negation":false},
330
+ "2.16.840.1.113883.3.560.1.50":{
331
+ "definition":"laboratory_test",
332
+ "status":"ordered",
333
+ "negation":false},
334
+ "2.16.840.1.113883.3.560.1.90":{
335
+ "definition":"laboratory_test",
336
+ "status":"recommended",
337
+ "negation":false},
338
+ "2.16.840.1.113883.3.560.1.112":{
339
+ "definition":"laboratory_test",
340
+ "status":"",
341
+ "negation":true},
342
+ "2.16.840.1.113883.3.560.1.148":{
343
+ "definition":"laboratory_test_adverse_event",
344
+ "status":"",
345
+ "negation":true},
346
+ "2.16.840.1.113883.3.560.1.149":{
347
+ "definition":"laboratory_test_intolerance",
348
+ "status":"",
349
+ "negation":true},
350
+ "2.16.840.1.113883.3.560.1.150":{
351
+ "definition":"laboratory_test",
352
+ "status":"ordered",
353
+ "negation":true},
354
+ "2.16.840.1.113883.3.560.1.190":{
355
+ "definition":"laboratory_test",
356
+ "status":"recommended",
357
+ "negation":true},
358
+ "2.16.840.1.113883.3.560.1.105":{
359
+ "definition":"laboratory_test",
360
+ "status":"performed",
361
+ "negation":true},
362
+ "2.16.840.1.113883.3.560.1.9":{
363
+ "definition":"care_goal",
364
+ "status":"",
365
+ "negation":false},
366
+ "2.16.840.1.113883.3.560.1.109":{
367
+ "definition":"care_goal",
368
+ "status":"",
369
+ "negation":true},
370
+ "2.16.840.1.113883.3.560.1.30":{
371
+ "definition":"communication_from_patient_to_provider",
372
+ "status":"",
373
+ "negation":false},
374
+ "2.16.840.1.113883.3.560.1.31":{
375
+ "definition":"communication_from_provider_to_patient",
376
+ "status":"",
377
+ "negation":false},
378
+ "2.16.840.1.113883.3.560.1.29":{
379
+ "definition":"communication_from_provider_to_provider",
380
+ "status":"",
381
+ "negation":false},
382
+ "2.16.840.1.113883.3.560.1.130":{
383
+ "definition":"communication_from_patient_to_provider",
384
+ "status":"",
385
+ "negation":true},
386
+ "2.16.840.1.113883.3.560.1.131":{
387
+ "definition":"communication_from_provider_to_patient",
388
+ "status":"",
389
+ "negation":true},
390
+ "2.16.840.1.113883.3.560.1.129":{
391
+ "definition":"communication_from_provider_to_provider",
392
+ "status":"",
393
+ "negation":true},
394
+ "2.16.840.1.113883.3.560.1.10":{
395
+ "definition":"device",
396
+ "status":"applied",
397
+ "negation":false},
398
+ "2.16.840.1.113883.3.560.1.34":{
399
+ "definition":"device_adverse_event",
400
+ "status":"",
401
+ "negation":false},
402
+ "2.16.840.1.113883.3.560.1.35":{
403
+ "definition":"device_allergy",
404
+ "status":"",
405
+ "negation":false},
406
+ "2.16.840.1.113883.3.560.1.36":{
407
+ "definition":"device_intolerance",
408
+ "status":"",
409
+ "negation":false},
410
+ "2.16.840.1.113883.3.560.1.37":{
411
+ "definition":"device",
412
+ "status":"ordered",
413
+ "negation":false},
414
+ "2.16.840.1.113883.3.560.1.80":{
415
+ "definition":"device",
416
+ "status":"recommended",
417
+ "negation":false},
418
+ "2.16.840.1.113883.3.560.1.134":{
419
+ "definition":"device_adverse_event",
420
+ "status":"",
421
+ "negation":true},
422
+ "2.16.840.1.113883.3.560.1.135":{
423
+ "definition":"device_allergy",
424
+ "status":"",
425
+ "negation":true},
426
+ "2.16.840.1.113883.3.560.1.136":{
427
+ "definition":"device_intolerance",
428
+ "status":"",
429
+ "negation":true},
430
+ "2.16.840.1.113883.3.560.1.137":{
431
+ "definition":"device",
432
+ "status":"ordered",
433
+ "negation":true},
434
+ "2.16.840.1.113883.3.560.1.180":{
435
+ "definition":"device",
436
+ "status":"recommended",
437
+ "negation":true},
438
+ "2.16.840.1.113883.3.560.1.110":{
439
+ "definition":"device",
440
+ "status":"applied",
441
+ "negation":true},
442
+ "2.16.840.1.113883.3.560.1.64":{
443
+ "definition":"substance",
444
+ "status":"administered",
445
+ "negation":false},
446
+ "2.16.840.1.113883.3.560.1.68":{
447
+ "definition":"substance",
448
+ "status":"ordered",
449
+ "negation":false},
450
+ "2.16.840.1.113883.3.560.1.65":{
451
+ "definition":"substance_adverse_event",
452
+ "status":"",
453
+ "negation":false},
454
+ "2.16.840.1.113883.3.560.1.67":{
455
+ "definition":"substance_intolerance",
456
+ "status":"",
457
+ "negation":false},
458
+ "2.16.840.1.113883.3.560.1.66":{
459
+ "definition":"substance_allergy",
460
+ "status":"",
461
+ "negation":false},
462
+ "2.16.840.1.113883.3.560.1.93":{
463
+ "definition":"substance",
464
+ "status":"recommended",
465
+ "negation":false},
466
+ "2.16.840.1.113883.3.560.1.165":{
467
+ "definition":"substance_adverse_event",
468
+ "status":"",
469
+ "negation":true},
470
+ "2.16.840.1.113883.3.560.1.167":{
471
+ "definition":"substance_intolerance",
472
+ "status":"",
473
+ "negation":true},
474
+ "2.16.840.1.113883.3.560.1.164":{
475
+ "definition":"substance",
476
+ "status":"administered",
477
+ "negation":true},
478
+ "2.16.840.1.113883.3.560.1.168":{
479
+ "definition":"substance",
480
+ "status":"ordered",
481
+ "negation":true},
482
+ "2.16.840.1.113883.3.560.1.193":{
483
+ "definition":"substance",
484
+ "status":"recommended",
485
+ "negation":true},
486
+ "2.16.840.1.113883.3.560.1.166":{
487
+ "definition":"substance_allergy",
488
+ "status":"",
489
+ "negation":true},
490
+ "2.16.840.1.113883.3.560.1.43":{
491
+ "definition":"intervention_adverse_event",
492
+ "status":"",
493
+ "negation":false},
494
+ "2.16.840.1.113883.3.560.1.44":{
495
+ "definition":"intervention_intolerance",
496
+ "status":"",
497
+ "negation":false},
498
+ "2.16.840.1.113883.3.560.1.45":{
499
+ "definition":"intervention",
500
+ "status":"ordered",
501
+ "negation":false},
502
+ "2.16.840.1.113883.3.560.1.46":{
503
+ "definition":"intervention",
504
+ "status":"performed",
505
+ "negation":false},
506
+ "2.16.840.1.113883.3.560.1.47":{
507
+ "definition":"intervention_result",
508
+ "status":"",
509
+ "negation":false},
510
+ "2.16.840.1.113883.3.560.1.89":{
511
+ "definition":"intervention",
512
+ "status":"recommended",
513
+ "negation":false},
514
+ "2.16.840.1.113883.3.560.1.143":{
515
+ "definition":"intervention_adverse_event",
516
+ "status":"",
517
+ "negation":true},
518
+ "2.16.840.1.113883.3.560.1.144":{
519
+ "definition":"intervention_intolerance",
520
+ "status":"",
521
+ "negation":true},
522
+ "2.16.840.1.113883.3.560.1.145":{
523
+ "definition":"intervention",
524
+ "status":"ordered",
525
+ "negation":true},
526
+ "2.16.840.1.113883.3.560.1.146":{
527
+ "definition":"intervention",
528
+ "status":"performed",
529
+ "negation":true},
530
+ "2.16.840.1.113883.3.560.1.147":{
531
+ "definition":"intervention_result",
532
+ "status":"",
533
+ "negation":true},
534
+ "2.16.840.1.113883.3.560.1.189":{
535
+ "definition":"intervention",
536
+ "status":"recommended",
537
+ "negation":true},
538
+ "2.16.840.1.113883.3.560.1.69":{
539
+ "definition":"symptom",
540
+ "status":"active",
541
+ "negation":false},
542
+ "2.16.840.1.113883.3.560.1.70":{
543
+ "definition":"symptom",
544
+ "status":"assessed",
545
+ "negation":false},
546
+ "2.16.840.1.113883.3.560.1.97":{
547
+ "definition":"symptom",
548
+ "status":"inactive",
549
+ "negation":false},
550
+ "2.16.840.1.113883.3.560.1.98":{
551
+ "definition":"symptom",
552
+ "status":"resolved",
553
+ "negation":false},
554
+ "2.16.840.1.113883.3.560.1.169":{
555
+ "definition":"symptom",
556
+ "status":"active",
557
+ "negation":true},
558
+ "2.16.840.1.113883.3.560.1.170":{
559
+ "definition":"symptom",
560
+ "status":"assessed",
561
+ "negation":true},
562
+ "2.16.840.1.113883.3.560.1.197":{
563
+ "definition":"symptom",
564
+ "status":"inactive",
565
+ "negation":true},
566
+ "2.16.840.1.113883.3.560.1.198":{
567
+ "definition":"symptom",
568
+ "status":"resolved",
569
+ "negation":true},
570
+ "2.16.840.1.113883.3.560.1.41":{
571
+ "definition":"functional_status",
572
+ "status":"",
573
+ "negation":false},
574
+ "2.16.840.1.113883.3.560.1.85":{
575
+ "definition":"functional_status",
576
+ "status":"performed",
577
+ "negation":false},
578
+ "2.16.840.1.113883.3.560.1.86":{
579
+ "definition":"functional_status",
580
+ "status":"ordered",
581
+ "negation":false},
582
+ "2.16.840.1.113883.3.560.1.87":{
583
+ "definition":"functional_status",
584
+ "status":"recommended",
585
+ "negation":false},
586
+ "2.16.840.1.113883.3.560.1.88":{
587
+ "definition":"functional_status_result",
588
+ "status":"",
589
+ "negation":false},
590
+ "2.16.840.1.113883.3.560.1.185":{
591
+ "definition":"functional_status",
592
+ "status":"performed",
593
+ "negation":true},
594
+ "2.16.840.1.113883.3.560.1.186":{
595
+ "definition":"functional_status",
596
+ "status":"ordered",
597
+ "negation":true},
598
+ "2.16.840.1.113883.3.560.1.187":{
599
+ "definition":"functional_status",
600
+ "status":"recommended",
601
+ "negation":true},
602
+ "2.16.840.1.113883.3.560.1.188":{
603
+ "definition":"functional_status_result",
604
+ "status":"",
605
+ "negation":true},
606
+ "2.16.840.1.113883.3.560.1.141":{
607
+ "definition":"functional_status",
608
+ "status":"",
609
+ "negation":true},
610
+ "2.16.840.1.113883.3.560.1.21":{
611
+ "definition":"risk_category_assessment",
612
+ "status":"",
613
+ "negation":false},
614
+ "2.16.840.1.113883.3.560.1.121":{
615
+ "definition":"risk_category_assessment",
616
+ "status":"",
617
+ "negation":true},
618
+ "2.16.840.1.113883.3.560.1.28":{
619
+ "definition":"provider_care_experience",
620
+ "status":"",
621
+ "negation":false},
622
+ "2.16.840.1.113883.3.560.1.128":{
623
+ "definition":"provider_care_experience",
624
+ "status":"",
625
+ "negation":true},
626
+ "2.16.840.1.113883.3.560.1.96":{
627
+ "definition":"patient_care_experience",
628
+ "status":"",
629
+ "negation":false},
630
+ "2.16.840.1.113883.3.560.1.196":{
631
+ "definition":"patient_care_experience",
632
+ "status":"",
633
+ "negation":true},
634
+ "2.16.840.1.113883.3.560.1.59":{
635
+ "definition":"preference_provider",
636
+ "status":"",
637
+ "negation":false},
638
+ "2.16.840.1.113883.3.560.1.58":{
639
+ "definition":"preference_patient",
640
+ "status":"",
641
+ "negation":false},
642
+ "2.16.840.1.113883.3.560.1.94":{
643
+ "definition":"system_characteristic",
644
+ "status":"",
645
+ "negation":false},
646
+ "2.16.840.1.113883.3.560.1.194":{
647
+ "definition":"system_characteristic",
648
+ "status":"",
649
+ "negation":true},
650
+ "2.16.840.1.113883.3.560.1.95":{
651
+ "definition":"provider_characteristic",
652
+ "status":"",
653
+ "negation":false},
654
+ "2.16.840.1.113883.3.560.1.195":{
655
+ "definition":"provider_characteristic",
656
+ "status":"",
657
+ "negation":true},
658
+ "2.16.840.1.113883.3.560.1.71":{
659
+ "definition":"transfer_from",
660
+ "status":"",
661
+ "negation":false},
662
+ "2.16.840.1.113883.3.560.1.72":{
663
+ "definition":"transfer_to",
664
+ "status":"",
665
+ "negation":false},
666
+ "2.16.840.1.113883.3.560.1.171":{
667
+ "definition":"transfer_from",
668
+ "status":"",
669
+ "negation":true},
670
+ "2.16.840.1.113883.3.560.1.172":{
671
+ "definition":"transfer_to",
672
+ "status":"",
673
+ "negation":true}
674
+ }