health-data-standards 3.3.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
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: []