health-data-standards 3.3.0 → 3.4.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.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +16 -0
  3. data/lib/health-data-standards.rb +3 -0
  4. data/lib/health-data-standards/export/helper/cat1_view_helper.rb +1 -1
  5. data/lib/health-data-standards/export/rendering_context.rb +4 -2
  6. data/lib/health-data-standards/export/template_helper.rb +9 -3
  7. data/lib/health-data-standards/import/bulk_record_importer.rb +88 -0
  8. data/lib/health-data-standards/import/cat1/diagnostic_study_order_importer.rb +1 -1
  9. data/lib/health-data-standards/import/cat1/encounter_performed_importer.rb +38 -0
  10. data/lib/health-data-standards/import/cat1/patient_importer.rb +4 -4
  11. data/lib/health-data-standards/import/cat1/procedure_order_importer.rb +2 -2
  12. data/lib/health-data-standards/import/cat1/procedure_performed_importer.rb +1 -0
  13. data/lib/health-data-standards/import/cda/allergy_importer.rb +0 -2
  14. data/lib/health-data-standards/import/cda/encounter_importer.rb +24 -1
  15. data/lib/health-data-standards/import/cda/medical_equipment_importer.rb +8 -1
  16. data/lib/health-data-standards/import/cda/medication_importer.rb +0 -4
  17. data/lib/health-data-standards/import/cda/procedure_importer.rb +23 -2
  18. data/lib/health-data-standards/import/cda/result_importer.rb +1 -0
  19. data/lib/health-data-standards/import/cda/section_importer.rb +2 -5
  20. data/lib/health-data-standards/import/green_c32/encounter_importer.rb +0 -1
  21. data/lib/health-data-standards/import/green_c32/medication_importer.rb +0 -1
  22. data/lib/health-data-standards/import/green_c32/section_importer.rb +1 -5
  23. data/lib/health-data-standards/import/provider_import_utils.rb +15 -1
  24. data/lib/health-data-standards/models/cqm/aggregate_objects.rb +63 -20
  25. data/lib/health-data-standards/models/cqm/query_cache.rb +3 -26
  26. data/lib/health-data-standards/models/encounter.rb +3 -2
  27. data/lib/health-data-standards/models/entry.rb +8 -1
  28. data/lib/health-data-standards/models/insurance_provider.rb +0 -4
  29. data/lib/health-data-standards/models/provider.rb +10 -0
  30. data/lib/health-data-standards/models/record.rb +31 -8
  31. data/lib/health-data-standards/models/transfer.rb +8 -0
  32. data/templates/cat1/_2.16.840.1.113883.10.20.22.4.85.cat1.erb +1 -0
  33. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.101.cat1.erb +6 -3
  34. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.103.cat1.erb +1 -0
  35. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.12.cat1.erb +1 -0
  36. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.13.cat1.erb +1 -0
  37. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.14.cat1.erb +1 -0
  38. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.2.cat1.erb +1 -3
  39. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.20.cat1.erb +6 -2
  40. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.22.cat1.erb +1 -1
  41. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.23.cat1.erb +21 -0
  42. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.28.cat1.erb +6 -2
  43. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.31.cat1.erb +1 -0
  44. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.32.cat1.erb +1 -0
  45. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.34.cat1.erb +1 -0
  46. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.40.cat1.erb +6 -2
  47. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.46.cat1.erb +1 -0
  48. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.54.cat1.erb +1 -0
  49. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.57.cat1.erb +7 -2
  50. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.59.cat1.erb +5 -1
  51. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.66.cat1.erb +3 -3
  52. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.69.cat1.erb +4 -2
  53. data/templates/cat1/_2.16.840.1.113883.10.20.24.3.7.cat1.erb +1 -1
  54. data/templates/cat3/_continuous_variable_value.cat3.erb +2 -2
  55. data/templates/cat3/_measure_data.cat3.erb +19 -19
  56. data/templates/cat3/_performance_rate.cat3.erb +2 -2
  57. data/templates/cat3/show.cat3.erb +7 -5
  58. data/templates/gc32/_advance_directive.gc32.erb +1 -1
  59. data/templates/gc32/_entry_attributes.gc32.erb +1 -1
  60. data/templates/gc32/_insurance_provider.gc32.erb +2 -2
  61. metadata +10 -29
@@ -4,9 +4,7 @@
4
4
  <templateId root="2.16.840.1.113883.10.20.24.3.2"/>
5
5
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
6
6
  <%== code_display(entry, 'value_set_map' => value_set_map, 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
7
- <text>
8
- <%= entry.description %>
9
- </text>
7
+ <text><%= entry.description %></text>
10
8
  <statusCode code="completed"/>
11
9
  <effectiveTime>
12
10
  <low <%= value_or_null_flavor(entry.start_time) %>/>
@@ -1,3 +1,6 @@
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
1
4
  <entry>
2
5
  <observation classCode="OBS" moodCode="EVN" <%== negation_indicator(entry) %>>
3
6
  <!-- Consolidated Result Observation templateId (Implied Template) -->
@@ -14,7 +17,8 @@
14
17
  <low <%= value_or_null_flavor(entry.start_time) %>/>
15
18
  <high <%= value_or_null_flavor(entry.end_time) %>/>
16
19
  </effectiveTime>
17
- <%== render(:partial => 'result_value', :locals => {:values => [entry.values.first], :result_oids=>result_oids}) %>
20
+ <%== render(:partial => 'result_value', :locals => {:values => [value], :result_oids=>result_oids}) %>
18
21
  <%== render(:partial => 'reason', :locals => {:entry => entry, :reason_oids=>field_oids["REASON"]}) %>
19
22
  </observation>
20
- </entry>
23
+ </entry>
24
+ <% end %>
@@ -5,7 +5,7 @@
5
5
  <!-- Encounter order template -->
6
6
  <templateId root="2.16.840.1.113883.10.20.24.3.22"/>
7
7
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
8
- <%== code_display(entry, 'value_set_map' => value_set_map, 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
8
+ <%== code_display(entry, 'preferred_code_sets' => ['SNOMED-CT', 'ICD-9-CM', 'ICD-10-CM', 'CPT'], 'value_set_map' => value_set_map, 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
9
9
  <text><%= entry.description %></text>
10
10
  <statusCode code="new"/>
11
11
 
@@ -53,6 +53,27 @@
53
53
  </participant>
54
54
  <% end -%>
55
55
 
56
+ <% if entry.respond_to?(:transferFrom) && entry.transferFrom.present? -%>
57
+ <participant typeCode="ORG">
58
+ <time value="<%= entry.transferFrom.time %>"/>
59
+ <participantRole classCode="LOCE">
60
+ <templateId root="2.16.840.1.113883.10.20.24.3.81"/>
61
+ <%== code_display(entry.transferFrom, 'value_set_map' => value_set_map, 'preferred_code_sets' => ['SNOMED-CT', 'ICD-9-CM', 'ICD-10-CM', 'CPT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
62
+ </participantRole>
63
+ </participant>
64
+ <% end -%>
65
+
66
+ <% if entry.respond_to?(:transferTo) && entry.transferTo.present? -%>
67
+ <participant typeCode="DST">
68
+ <time value="<%= entry.transferTo.time %>"/>
69
+ <participantRole classCode="LOCE">
70
+ <!-- Transfer To (Destination) template -->
71
+ <templateId root="2.16.840.1.113883.10.20.24.3.82"/>
72
+ <%== code_display(entry.transferTo, 'value_set_map' => value_set_map, 'preferred_code_sets' => ['SNOMED-CT', 'ICD-9-CM', 'ICD-10-CM', 'CPT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
73
+ </participantRole>
74
+ </participant>
75
+ <% end -%>
76
+
56
77
  <% if entry.reason.present? -%>
57
78
  <entryRelationship typeCode="RSON">
58
79
  <observation classCode="OBS" moodCode="EVN">
@@ -1,3 +1,6 @@
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
1
4
  <entry>
2
5
  <observation classCode="OBS" moodCode="EVN">
3
6
  <!-- Functional Status Result Observation (consolidation) template -->
@@ -15,6 +18,7 @@
15
18
  </effectiveTime>
16
19
 
17
20
  <!-- Result -->
18
- <%== render(:partial => 'result_value', :locals => {:values => [entry.values.first], :result_oids=>result_oids}) %>
21
+ <%== render(:partial => 'result_value', :locals => {:values => [value], :result_oids=>result_oids}) %>
19
22
  </observation>
20
- </entry>
23
+ </entry>
24
+ <% end %>
@@ -6,6 +6,7 @@
6
6
  <templateId root="2.16.840.1.113883.10.20.24.3.31"/>
7
7
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
8
8
  <%== code_display(entry,'value_set_map' => value_set_map, 'preferred_code_sets' => ['LOINC', 'SNOMED-CT', 'ICD-9-CM', 'ICD-10-CM'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
9
+ <text><%= entry.description %></text>
9
10
  <statusCode code="completed"/>
10
11
  <effectiveTime>
11
12
  <low <%= value_or_null_flavor(entry.start_time) %>/>
@@ -5,6 +5,7 @@
5
5
  <templateId root="2.16.840.1.113883.10.20.24.3.32"/>
6
6
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
7
7
  <%== code_display(entry, 'value_set_map' => value_set_map, 'preferred_code_sets' => ['LOINC', 'SNOMED-CT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
8
+ <text><%= entry.description %></text>
8
9
  <statusCode code="completed"/>
9
10
  <effectiveTime>
10
11
  <low <%= value_or_null_flavor(entry.start_time) %>/>
@@ -18,6 +18,7 @@
18
18
  <templateId root="2.16.840.1.113883.10.20.24.3.87"/>
19
19
  <id root="<%= UUID.generate %>"/>
20
20
  <%== code_display(entry, 'value_set_map' => value_set_map, 'preferred_code_sets' => ['LOINC', 'SNOMED-CT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
21
+ <text><%= entry.description %></text>
21
22
  <statusCode code="completed"/>
22
23
  <effectiveTime <%= value_or_null_flavor(entry.start_time) %>/>
23
24
  <% ev = entry.values.first
@@ -1,3 +1,6 @@
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
1
4
  <entry>
2
5
  <!--Laboratory test, result -->
3
6
  <observation classCode="OBS" moodCode="EVN">
@@ -13,6 +16,7 @@
13
16
  <low <%= value_or_null_flavor(entry.start_time) %>/>
14
17
  <high <%= value_or_null_flavor(entry.end_time) %>/>
15
18
  </effectiveTime>
16
- <%== render(:partial => 'result_value', :locals => {:values => [entry.values.first], :result_oids=>result_oids}) %>
19
+ <%== render(:partial => 'result_value', :locals => {:values => [value], :result_oids=>result_oids}) %>
17
20
  </observation>
18
- </entry>
21
+ </entry>
22
+ <% end %>
@@ -22,6 +22,7 @@
22
22
  <participantRole classCode="MANU">
23
23
  <playingEntity classCode="MMAT">
24
24
  <%== code_display(entry,'value_set_map' => value_set_map, 'preferred_code_sets' => ['RxNorm', 'SNOMED-CT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
25
+ <text><%= entry.description %></text>
25
26
  </playingEntity>
26
27
  </participantRole>
27
28
  </participant>
@@ -24,6 +24,7 @@
24
24
  codeSystemName="HL7ActCode"/>
25
25
  <statusCode code="completed"/>
26
26
  <%== code_display(entry, 'tag_name' => 'value', 'preferred_code_sets' => ['SNOMED-CT', 'ICD-9-CM', 'ICD-10-CM'], 'extra_content' => "xsi:type=\"CD\"") %>
27
+ <text><%= entry.description %></text>
27
28
  </observation>
28
29
  </entryRelationship>
29
30
  <% end -%>
@@ -1,3 +1,6 @@
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
1
4
  <entry>
2
5
  <!-- Physical Exam Finding -->
3
6
  <observation classCode="OBS" moodCode="EVN">
@@ -7,12 +10,14 @@
7
10
  <templateId root="2.16.840.1.113883.10.20.24.3.57"/>
8
11
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
9
12
  <%== code_display(entry, 'value_set_map' => value_set_map, 'preferred_code_sets' => ['LOINC', 'SNOMED-CT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
13
+ <text><%= entry.description %></text>
10
14
  <statusCode code="completed"/>
11
15
 
12
16
  <effectiveTime>
13
17
  <low <%= value_or_null_flavor(entry.start_time) %>/>
14
18
  <high <%= value_or_null_flavor(entry.end_time) %>/>
15
19
  </effectiveTime>
16
- <%== render(:partial => 'result_value', :locals => {:values => [entry.values.first], :result_oids=>result_oids}) %>
20
+ <%== render(:partial => 'result_value', :locals => {:values => [value], :result_oids=>result_oids}) %>
17
21
  </observation>
18
- </entry>
22
+ </entry>
23
+ <% end %>
@@ -1,3 +1,6 @@
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
1
4
  <entry>
2
5
  <observation classCode="OBS" moodCode="EVN" <%== negation_indicator(entry) %>>
3
6
  <!-- Procedure Activity Procedure (Consolidation) template -->
@@ -12,6 +15,7 @@
12
15
  <low <%= value_or_null_flavor(entry.start_time) %>/>
13
16
  <high <%= value_or_null_flavor(entry.end_time) %>/>
14
17
  </effectiveTime>
15
- <%== render(:partial => 'result_value', :locals => {:values => [entry.values.first], :result_oids=>result_oids}) %>
18
+ <%== render(:partial => 'result_value', :locals => {:values => [value], :result_oids=>result_oids}) %>
16
19
  </observation>
17
20
  </entry>
21
+ <% end %>
@@ -1,6 +1,6 @@
1
-
2
- <% vals = entry.values || [nil]
3
- vals.each do |value| %>
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
4
4
  <entry>
5
5
  <procedure classCode="PROC" moodCode="EVN">
6
6
  <!-- Consolidated Procedure Activity Procedure TemplateId
@@ -1,5 +1,6 @@
1
- <% vals = entry.values || [nil]
2
- vals.each do |value| %>
1
+ <% vals = entry.values.empty? ? [nil] : entry.values
2
+ vals.each do |value|
3
+ %>
3
4
  <entry>
4
5
  <observation classCode="OBS" moodCode="EVN" <%== negation_indicator(entry) %>>
5
6
  <!-- Consolidation Assessment Scale Observation templateId -->
@@ -8,6 +9,7 @@
8
9
  <templateId root="2.16.840.1.113883.10.20.24.3.69"/>
9
10
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
10
11
  <%== code_display(entry, 'value_set_map' => value_set_map,'preferred_code_sets' => ['LOINC', 'SNOMED-CT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
12
+ <text><%= entry.description %></text>
11
13
  <statusCode code="completed"/>
12
14
 
13
15
  <effectiveTime>
@@ -6,7 +6,7 @@
6
6
  <templateId root="2.16.840.1.113883.10.20.24.3.7"/>
7
7
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
8
8
  <code code="360030002" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="application of device"/>
9
- <text>Device, Applied</text>
9
+ <text><%= entry.description %></text>
10
10
  <statusCode code="completed"/>
11
11
 
12
12
  <effectiveTime>
@@ -5,7 +5,7 @@
5
5
  <originalText>Time Difference</originalText>
6
6
  </code>
7
7
  <statusCode code="completed"/>
8
- <value xsi:type="PQ" value="<%= population.population_count('OBSERV') %>" unit="min"/>
8
+ <value xsi:type="PQ" value="<%= population.value %>" unit="min"/>
9
9
  <methodCode code="MEDIAN"
10
10
  displayName="Median"
11
11
  codeSystem="2.16.840.1.113883.5.84"
@@ -13,7 +13,7 @@
13
13
  <reference typeCode="REFR">
14
14
  <!-- reference to the relevant measure observation in the eMeasure -->
15
15
  <externalObservation classCode="OBS" moodCode="EVN">
16
- <id root="<%= population.population_id('OBSERV') %>"/>
16
+ <id root="<%=population.id %>"/>
17
17
  </externalObservation>
18
18
  </reference>
19
19
  </observation>
@@ -1,5 +1,5 @@
1
1
 
2
- <!-- MEASURE DATA REPORTING FOR <%= population_type %> <%= aggregate_count.population_id(population_type) %> -->
2
+ <!-- MEASURE DATA REPORTING FOR <%= population.type %> <%= population.id %> -->
3
3
  <observation classCode="OBS" moodCode="EVN">
4
4
  <!-- Measure Data template -->
5
5
  <templateId root="2.16.840.1.113883.10.20.27.3.5"/>
@@ -8,7 +8,7 @@
8
8
  displayName="Assertion"
9
9
  codeSystemName="ActCode"/>
10
10
  <statusCode code="completed"/>
11
- <value xsi:type="CD" code="<%= population_type %>"
11
+ <value xsi:type="CD" code="<%= population.type %>"
12
12
  codeSystem="2.16.840.1.113883.5.1063"
13
13
  codeSystemName="ObservationValue"/>
14
14
  <!-- Aggregate Count -->
@@ -19,16 +19,16 @@
19
19
  displayName="rate aggregation"
20
20
  codeSystem="2.16.840.1.113883.5.4"
21
21
  codeSystemName="ActCode"/>
22
- <value xsi:type="INT" value="<%= aggregate_count.population_count(population_type, population_id).round %>"/>
22
+ <value xsi:type="INT" value="<%= population.value.round %>"/>
23
23
  <methodCode code="COUNT"
24
24
  displayName="Count"
25
25
  codeSystem="2.16.840.1.113883.5.84"
26
26
  codeSystemName="ObservationMethod"/>
27
27
  </observation>
28
28
  </entryRelationship>
29
- <% aggregate_count.stratifications.each do |strat| -%>
29
+ <% population.stratifications.each do |strat| -%>
30
30
 
31
- <!-- Startification Reporting Template for <%= population_type %> <%= aggregate_count.population_id(population_type) %> Stratification <%= strat.id %> -->
31
+ <!-- Startification Reporting Template for <%= population.type %> <%= population.id %> Stratification <%= strat.id %> -->
32
32
 
33
33
  <entryRelationship typeCode="COMP">
34
34
  <observation classCode="OBS" moodCode="EVN">
@@ -48,14 +48,14 @@
48
48
  displayName="rate aggregation"
49
49
  codeSystem="2.16.840.1.113883.5.4"
50
50
  codeSystemName="ActCode"/>
51
- <value xsi:type="INT" value="<%= strat.population_count(population_type, population_id).round %>"/>
51
+ <value xsi:type="INT" value="<%= strat.value.round %>"/>
52
52
  <methodCode code="COUNT"
53
53
  displayName="Count"
54
54
  codeSystem="2.16.840.1.113883.5.84"
55
55
  codeSystemName="ObservationMethod"/>
56
56
  </observation>
57
57
  </entryRelationship>
58
- <% if population_type == 'MSRPOPL' -%>
58
+ <% if population.type == 'MSRPOPL' -%>
59
59
  <%== render :partial => 'continuous_variable_value', :locals => {:population => strat} %>
60
60
  <% end -%>
61
61
  <reference typeCode="REFR">
@@ -66,12 +66,12 @@
66
66
  </observation>
67
67
  </entryRelationship>
68
68
  <% end -%>
69
- <% if aggregate_count.supplemental_data.present? -%>
70
- <% sex_supplimental_data = aggregate_count.supplemental_data_for(population_type, "SEX")
69
+ <% if population.supplemental_data.present? -%>
70
+ <% sex_supplimental_data = population.supplemental_data["SEX"]
71
71
  if sex_supplimental_data.present?
72
72
  sex_supplimental_data.each do |sex, count| -%>
73
73
 
74
- <!-- SEX Supplemental Data Reporting for <%= population_type %> <%= aggregate_count.population_id(population_type) %> -->
74
+ <!-- SEX Supplemental Data Reporting for <%= population.type %> <%= population.id %> -->
75
75
 
76
76
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Sex Supplemental Data',
77
77
  :template_id => '2.16.840.1.113883.10.20.27.3.6', :supplemental_data_code => '184100006',
@@ -79,11 +79,11 @@
79
79
  :supplemental_data_value_code_system => '2.16.840.1.113883.5.1', :count => count} %>
80
80
  <% end -%>
81
81
  <% end -%>
82
- <% ethnicity_supplimental_data = aggregate_count.supplemental_data_for(population_type, "ETHNICITY")
82
+ <% ethnicity_supplimental_data = population.supplemental_data["ETHNICITY"]
83
83
  if ethnicity_supplimental_data.present?
84
84
  ethnicity_supplimental_data.each do |ethnicity, count| -%>
85
85
 
86
- <!-- ETHNICITY Supplemental Data Reporting for <%= population_type %> <%= aggregate_count.population_id(population_type) %> -->
86
+ <!-- ETHNICITY Supplemental Data Reporting for <%= population.type %> <%= population.id %> -->
87
87
 
88
88
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Ethnicity Supplemental Data',
89
89
  :template_id => '2.16.840.1.113883.10.20.27.3.7', :supplemental_data_code => '364699009',
@@ -91,11 +91,11 @@
91
91
  :supplemental_data_value_code_system => '2.16.840.1.113883.6.238', :count => count} %>
92
92
  <% end -%>
93
93
  <% end -%>
94
- <% race_supplimental_data = aggregate_count.supplemental_data_for(population_type, "RACE")
94
+ <% race_supplimental_data = population.supplemental_data["RACE"]
95
95
  if race_supplimental_data.present?
96
96
  race_supplimental_data.each do |race, count| -%>
97
97
 
98
- <!-- RACE Supplemental Data Reporting for <%= population_type %> <%= aggregate_count.population_id(population_type) %> -->
98
+ <!-- RACE Supplemental Data Reporting for <%= population.type %> <%= population.id %> -->
99
99
 
100
100
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Race Supplemental Data',
101
101
  :template_id => '2.16.840.1.113883.10.20.27.3.8', :supplemental_data_code => '103579009',
@@ -103,11 +103,11 @@
103
103
  :supplemental_data_value_code_system => '2.16.840.1.113883.6.238', :count => count} %>
104
104
  <% end -%>
105
105
  <% end -%>
106
- <% payer_supplimental_data = aggregate_count.supplemental_data_for(population_type, "PAYER")
106
+ <% payer_supplimental_data = population.supplemental_data["PAYER"]
107
107
  if payer_supplimental_data.present?
108
108
  payer_supplimental_data.each do |payer, count| -%>
109
109
 
110
- <!-- PAYER Supplemental Data Reporting for <%= population_type %> <%= aggregate_count.population_id(population_type) %> -->
110
+ <!-- PAYER Supplemental Data Reporting for<%= population.type %> <%= population.id %> -->
111
111
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Payer Supplemental Data',
112
112
  :template_id => '2.16.840.1.113883.10.20.27.3.9', :supplemental_data_code => '48768-6',
113
113
  :supplemental_data_code_system => '2.16.840.1.113883.6.1', :supplemental_data_value_code => payer,
@@ -115,12 +115,12 @@
115
115
  <% end -%>
116
116
  <% end -%>
117
117
  <% end -%>
118
- <% if population_type == 'MSRPOPL' -%>
119
- <%== render :partial => 'continuous_variable_value', :locals => {:population => aggregate_count} %>
118
+ <% if population.type == 'MSRPOPL' -%>
119
+ <%== render :partial => 'continuous_variable_value', :locals => {:population => aggregate_count.populations.find{|p| p.type == "OBSERV"}}%>
120
120
  <% end -%>
121
121
  <reference typeCode="REFR">
122
122
  <externalObservation classCode="OBS" moodCode="EVN">
123
- <id root="<%= aggregate_count.population_id(population_type) %>"/>
123
+ <id root="<%= population.id %>"/>
124
124
  </externalObservation>
125
125
  </reference>
126
126
  </observation>
@@ -4,10 +4,10 @@
4
4
  displayName="Performance Rate"
5
5
  codeSystemName="2.16.840.1.113883.6.1"/>
6
6
  <statusCode code="completed"/>
7
- <value xsi:type="REAL" value="<%= aggregate_count.performance_rate %>"/>
7
+ <value xsi:type="REAL" value="<%= population_group.performance_rate %>"/>
8
8
  <reference typeCode="REFR">
9
9
  <externalObservation classCode="OBS" moodCode="EVN">
10
- <id root="<%= aggregate_count.numerator.id %>"/>
10
+ <id root="<%= population_group.numerator.id %>"/>
11
11
  <code code="NUMER" displayName="Numerator"
12
12
  codeSystem="2.16.840.1.113883.5.1063"
13
13
  codeSystemName="ObservationValue"/>
@@ -123,16 +123,18 @@ Measure Section
123
123
  </reference>
124
124
 
125
125
  <% result = results[measure['hqmf_id']]
126
- unless result.is_cv? || result.multiple_population_types?
126
+ unless result.is_cv?
127
+ result.population_groups.each do |pg|
127
128
  -%>
128
129
  <component>
129
- <%== render :partial => 'performance_rate', :locals => {:aggregate_count => result} %>
130
+ <%== render :partial => 'performance_rate', :locals => {:population_group => pg} %>
130
131
  </component>
131
- <% end -%>
132
- <% result.top_level_populations.each do |pop|
132
+ <% end
133
+ end -%>
134
+ <% result.populations.each do |pop|
133
135
  unless pop.type == 'OBSERV' -%>
134
136
  <component>
135
- <%== render :partial => 'measure_data', :locals => {:aggregate_count => result, :population_type => pop.type, :population_id => pop.id} %>
137
+ <%== render :partial => 'measure_data', :locals => {:aggregate_count => result, :population => pop} %>
136
138
  </component>
137
139
  <% end
138
140
  end -%>
@@ -1,5 +1,5 @@
1
1
  <advanceDirective xmlns="urn:hl7-org:greencda:c32">
2
2
  <%== gc32_code_display advance_directive, 'preferred_code_sets' => ['SNOMED-CT'] %>
3
3
  <%== gc32_effective_time(advance_directive)%>
4
- <freeText><%= advance_directive.free_text %></freeText>
4
+ <freeText><%= advance_directive.description %></freeText>
5
5
  </advanceDirective>
@@ -6,5 +6,5 @@
6
6
  <% if entry.status_code && !entry.status_code.empty? %>
7
7
  <%== gc32_code_display entry, "tag_name" => "status", "attribute" => "status_code", 'preferred_code_sets' => ['SNOMED-CT', "HL7 ActStatus"] %>
8
8
  <% end %>
9
- <freeText><%=entry.free_text %></freeText>
9
+ <freeText><%=entry.description %></freeText>
10
10
  <%== gc32_effective_time(entry)%>
@@ -22,7 +22,7 @@
22
22
  </guarantor>
23
23
  <% end %>
24
24
  <healthPlanName><%=insurance_provider.name%></healthPlanName>
25
- <% if insurance_provider.free_text%>
26
- <freeText><%= insurance_provider.free_text%></freeText>
25
+ <% if insurance_provider.description%>
26
+ <freeText><%= insurance_provider.description%></freeText>
27
27
  <% end %>
28
28
  </insuranceProvider>
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: health-data-standards
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
5
- prerelease:
4
+ version: 3.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andy Gregorowicz
@@ -13,12 +12,11 @@ authors:
13
12
  autorequire:
14
13
  bindir: bin
15
14
  cert_chain: []
16
- date: 2013-11-07 00:00:00.000000000 Z
15
+ date: 2014-01-23 00:00:00.000000000 Z
17
16
  dependencies:
18
17
  - !ruby/object:Gem::Dependency
19
18
  name: rest-client
20
19
  requirement: !ruby/object:Gem::Requirement
21
- none: false
22
20
  requirements:
23
21
  - - ~>
24
22
  - !ruby/object:Gem::Version
@@ -26,7 +24,6 @@ dependencies:
26
24
  type: :runtime
27
25
  prerelease: false
28
26
  version_requirements: !ruby/object:Gem::Requirement
29
- none: false
30
27
  requirements:
31
28
  - - ~>
32
29
  - !ruby/object:Gem::Version
@@ -34,7 +31,6 @@ dependencies:
34
31
  - !ruby/object:Gem::Dependency
35
32
  name: erubis
36
33
  requirement: !ruby/object:Gem::Requirement
37
- none: false
38
34
  requirements:
39
35
  - - ~>
40
36
  - !ruby/object:Gem::Version
@@ -42,7 +38,6 @@ dependencies:
42
38
  type: :runtime
43
39
  prerelease: false
44
40
  version_requirements: !ruby/object:Gem::Requirement
45
- none: false
46
41
  requirements:
47
42
  - - ~>
48
43
  - !ruby/object:Gem::Version
@@ -50,7 +45,6 @@ dependencies:
50
45
  - !ruby/object:Gem::Dependency
51
46
  name: mongoid
52
47
  requirement: !ruby/object:Gem::Requirement
53
- none: false
54
48
  requirements:
55
49
  - - ~>
56
50
  - !ruby/object:Gem::Version
@@ -58,7 +52,6 @@ dependencies:
58
52
  type: :runtime
59
53
  prerelease: false
60
54
  version_requirements: !ruby/object:Gem::Requirement
61
- none: false
62
55
  requirements:
63
56
  - - ~>
64
57
  - !ruby/object:Gem::Version
@@ -66,7 +59,6 @@ dependencies:
66
59
  - !ruby/object:Gem::Dependency
67
60
  name: activesupport
68
61
  requirement: !ruby/object:Gem::Requirement
69
- none: false
70
62
  requirements:
71
63
  - - ~>
72
64
  - !ruby/object:Gem::Version
@@ -74,7 +66,6 @@ dependencies:
74
66
  type: :runtime
75
67
  prerelease: false
76
68
  version_requirements: !ruby/object:Gem::Requirement
77
- none: false
78
69
  requirements:
79
70
  - - ~>
80
71
  - !ruby/object:Gem::Version
@@ -82,7 +73,6 @@ dependencies:
82
73
  - !ruby/object:Gem::Dependency
83
74
  name: uuid
84
75
  requirement: !ruby/object:Gem::Requirement
85
- none: false
86
76
  requirements:
87
77
  - - ~>
88
78
  - !ruby/object:Gem::Version
@@ -90,7 +80,6 @@ dependencies:
90
80
  type: :runtime
91
81
  prerelease: false
92
82
  version_requirements: !ruby/object:Gem::Requirement
93
- none: false
94
83
  requirements:
95
84
  - - ~>
96
85
  - !ruby/object:Gem::Version
@@ -98,7 +87,6 @@ dependencies:
98
87
  - !ruby/object:Gem::Dependency
99
88
  name: builder
100
89
  requirement: !ruby/object:Gem::Requirement
101
- none: false
102
90
  requirements:
103
91
  - - ~>
104
92
  - !ruby/object:Gem::Version
@@ -106,7 +94,6 @@ dependencies:
106
94
  type: :runtime
107
95
  prerelease: false
108
96
  version_requirements: !ruby/object:Gem::Requirement
109
- none: false
110
97
  requirements:
111
98
  - - ~>
112
99
  - !ruby/object:Gem::Version
@@ -114,7 +101,6 @@ dependencies:
114
101
  - !ruby/object:Gem::Dependency
115
102
  name: nokogiri
116
103
  requirement: !ruby/object:Gem::Requirement
117
- none: false
118
104
  requirements:
119
105
  - - ~>
120
106
  - !ruby/object:Gem::Version
@@ -122,7 +108,6 @@ dependencies:
122
108
  type: :runtime
123
109
  prerelease: false
124
110
  version_requirements: !ruby/object:Gem::Requirement
125
- none: false
126
111
  requirements:
127
112
  - - ~>
128
113
  - !ruby/object:Gem::Version
@@ -130,7 +115,6 @@ dependencies:
130
115
  - !ruby/object:Gem::Dependency
131
116
  name: rubyzip
132
117
  requirement: !ruby/object:Gem::Requirement
133
- none: false
134
118
  requirements:
135
119
  - - '='
136
120
  - !ruby/object:Gem::Version
@@ -138,7 +122,6 @@ dependencies:
138
122
  type: :runtime
139
123
  prerelease: false
140
124
  version_requirements: !ruby/object:Gem::Requirement
141
- none: false
142
125
  requirements:
143
126
  - - '='
144
127
  - !ruby/object:Gem::Version
@@ -146,7 +129,6 @@ dependencies:
146
129
  - !ruby/object:Gem::Dependency
147
130
  name: log4r
148
131
  requirement: !ruby/object:Gem::Requirement
149
- none: false
150
132
  requirements:
151
133
  - - ~>
152
134
  - !ruby/object:Gem::Version
@@ -154,7 +136,6 @@ dependencies:
154
136
  type: :runtime
155
137
  prerelease: false
156
138
  version_requirements: !ruby/object:Gem::Requirement
157
- none: false
158
139
  requirements:
159
140
  - - ~>
160
141
  - !ruby/object:Gem::Version
@@ -162,7 +143,6 @@ dependencies:
162
143
  - !ruby/object:Gem::Dependency
163
144
  name: memoist
164
145
  requirement: !ruby/object:Gem::Requirement
165
- none: false
166
146
  requirements:
167
147
  - - ~>
168
148
  - !ruby/object:Gem::Version
@@ -170,7 +150,6 @@ dependencies:
170
150
  type: :runtime
171
151
  prerelease: false
172
152
  version_requirements: !ruby/object:Gem::Requirement
173
- none: false
174
153
  requirements:
175
154
  - - ~>
176
155
  - !ruby/object:Gem::Version
@@ -204,6 +183,7 @@ files:
204
183
  - lib/health-data-standards/ext/node.rb
205
184
  - lib/health-data-standards/ext/string.rb
206
185
  - lib/health-data-standards/ext/symbol.rb
186
+ - lib/health-data-standards/import/bulk_record_importer.rb
207
187
  - lib/health-data-standards/import/bundle/importer.rb
208
188
  - lib/health-data-standards/import/c32/care_goal_importer.rb
209
189
  - lib/health-data-standards/import/c32/condition_importer.rb
@@ -215,6 +195,7 @@ files:
215
195
  - lib/health-data-standards/import/cat1/diagnostic_study_order_importer.rb
216
196
  - lib/health-data-standards/import/cat1/ecog_status_importer.rb
217
197
  - lib/health-data-standards/import/cat1/encounter_order_importer.rb
198
+ - lib/health-data-standards/import/cat1/encounter_performed_importer.rb
218
199
  - lib/health-data-standards/import/cat1/entry_package.rb
219
200
  - lib/health-data-standards/import/cat1/gestational_age_importer.rb
220
201
  - lib/health-data-standards/import/cat1/insurance_provider_importer.rb
@@ -326,6 +307,7 @@ files:
326
307
  - lib/health-data-standards/models/svs/value_set.rb
327
308
  - lib/health-data-standards/models/telecom.rb
328
309
  - lib/health-data-standards/models/thing_with_codes.rb
310
+ - lib/health-data-standards/models/transfer.rb
329
311
  - lib/health-data-standards/models/treating_provider.rb
330
312
  - lib/health-data-standards/models/vital_sign.rb
331
313
  - lib/health-data-standards/railtie.rb
@@ -541,26 +523,25 @@ files:
541
523
  homepage: https://github.com/projectcypress/health-data-standards
542
524
  licenses:
543
525
  - APL 2.0
526
+ metadata: {}
544
527
  post_install_message:
545
528
  rdoc_options: []
546
529
  require_paths:
547
530
  - lib
548
531
  required_ruby_version: !ruby/object:Gem::Requirement
549
- none: false
550
532
  requirements:
551
- - - ! '>='
533
+ - - '>='
552
534
  - !ruby/object:Gem::Version
553
535
  version: '0'
554
536
  required_rubygems_version: !ruby/object:Gem::Requirement
555
- none: false
556
537
  requirements:
557
- - - ! '>='
538
+ - - '>='
558
539
  - !ruby/object:Gem::Version
559
540
  version: '0'
560
541
  requirements: []
561
542
  rubyforge_project:
562
- rubygems_version: 1.8.25
543
+ rubygems_version: 2.0.6
563
544
  signing_key:
564
- specification_version: 3
545
+ specification_version: 4
565
546
  summary: A library for generating and consuming various healthcare related formats.
566
547
  test_files: []