health-data-standards 3.5.2 → 3.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 693968958852b84cc93930b7b6cf3f9d292491fc
4
- data.tar.gz: 204430a5a3aa971fba9199fc316f83604d0cc1c1
3
+ metadata.gz: f28260b9a20c4a5fa03677dbde72935d0779e1b7
4
+ data.tar.gz: 758234c177f32a11c9606258a38bf83387fe2fb9
5
5
  SHA512:
6
- metadata.gz: 75500d6acc1c7b1c5d441a14c5b745121676300f40029cfc637df75ae1b7e23a37e4a04c5ecd006feb8e0c2678406946fc0d193a5a468820f11a004ab8bfa189
7
- data.tar.gz: bb52d0f4df6937b8800c06a9f2d15597fd34eabce4bc97003e1543e4be3afdf5146008100de817bf44e62d456623d08eedfe69593bdd4e754673b58ac512958a
6
+ metadata.gz: 03f1f77b7b63a7ca367c477dda130c115b8df7ecc2128aab02265c405f0db8b96696b3d09a15cb4f1ae59862142e8268d7900abc2e150d4c71ff9932a4f0dc61
7
+ data.tar.gz: 79d88e0eecd99eddd931977ced5974969a2afee8ae74665721b0740013247183c86bbf75e376891d9427789f56d1a731e3c656631ae1bde4e16ea25095e65500
data/README.md CHANGED
@@ -29,6 +29,10 @@ Change Log
29
29
 
30
30
  * Upgrading to mongoid 4
31
31
 
32
+ 3.5.3 - January 20, 2015
33
+
34
+ * Support for 2014 QRDA Errata Release
35
+
32
36
  3.4.6 - May 15, 2014
33
37
 
34
38
  * QRDA Cat I export now exports medical record number if present
@@ -623,12 +623,6 @@
623
623
  "qrda_name": "Risk Category Assessment",
624
624
  "qrda_oid": "2.16.840.1.113883.10.20.24.3.69"
625
625
  },
626
- {
627
- "hqmf_name": "Diagnostic Study, Result not done",
628
- "hqmf_oid": "2.16.840.1.113883.3.560.1.111",
629
- "qrda_name": "Diagnostic Study Result",
630
- "qrda_oid": "2.16.840.1.113883.10.20.24.3.20"
631
- },
632
626
  {
633
627
  "hqmf_name": "Communication: From Provider to Patient not done",
634
628
  "hqmf_oid": "2.16.840.1.113883.3.560.1.131",
@@ -40,6 +40,14 @@ module HealthDataStandards
40
40
  end
41
41
  end
42
42
 
43
+ def fulfillment_quantity(codes, fulfillmentHistory, dose)
44
+ if (codes["RxNorm"].present?)
45
+ doses = (fulfillmentHistory.quantity_dispensed['value'].to_f / dose['value'].to_f ).to_i
46
+ return "value='#{doses}'"
47
+ else
48
+ return "value='#{fulfillmentHistory.quantity_dispensed['value']}' unit='#{fulfillmentHistory.quantity_dispensed['unit']}'"
49
+ end
50
+ end
43
51
 
44
52
  def value_or_null_flavor(time)
45
53
  if time
@@ -49,6 +57,14 @@ module HealthDataStandards
49
57
  end
50
58
  end
51
59
 
60
+ def dose_quantity(codes, dose)
61
+ if (codes["RxNorm"].present?)
62
+ return "value='1'"
63
+ else
64
+ return "value=#{dose['value']} unit=#{dose['unit']}"
65
+ end
66
+ end
67
+
52
68
  def time_if_not_nil(*args)
53
69
  args.compact.map {|t| Time.at(t).utc}.first
54
70
  end
@@ -64,9 +80,16 @@ module HealthDataStandards
64
80
  def is_bool?(str)
65
81
  return ["true","false"].include? (str || "").downcase
66
82
  end
83
+
84
+ def identifier_for(obj)
85
+ Digest::MD5.hexdigest(obj.to_s).upcase
86
+ end
67
87
 
68
88
  def convert_field_to_hash(field, codes)
69
- codes = codes[0] if codes.is_a? Array
89
+ if codes.is_a? Array
90
+ return codes.collect{ |code| convert_field_to_hash(field, convert_field_to_hash(field, code))}.join("<br>")
91
+ end
92
+
70
93
  if (codes.is_a? Hash)
71
94
  clean_hash = {}
72
95
 
@@ -13,6 +13,7 @@ module HealthDataStandards
13
13
  ip = InsuranceProvider.new
14
14
  value_element = payer_element.at_xpath('cda:value')
15
15
  ip.codes = { 'SOP' => [value_element['code']] } if value_element
16
+ extract_dates(payer_element, ip)
16
17
  ip
17
18
  end
18
19
 
@@ -42,6 +42,7 @@ module HealthDataStandards
42
42
  generate_importer(CDA::ProcedureImporter, "./cda:entry/cda:procedure[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.66']", '2.16.840.1.113883.3.560.1.63'),
43
43
  generate_importer(CDA::ProcedureImporter, "./cda:entry/cda:observation[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.69']", '2.16.840.1.113883.3.560.1.21'), #risk category assessment
44
44
  generate_importer(CDA::ProcedureImporter, "./cda:entry/cda:observation[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.18']", '2.16.840.1.113883.3.560.1.103', 'performed'), #diagnostic study performed
45
+ generate_importer(CDA::ProcedureImporter, "./cda:entry/cda:observation[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.20']", '2.16.840.1.113883.3.560.1.11'), #diagnostic study result
45
46
  generate_importer(DiagnosticStudyOrderImporter, nil, '2.16.840.1.113883.3.560.1.40', 'ordered')]
46
47
 
47
48
  @section_importers[:allergies] = [generate_importer(ProcedureIntoleranceImporter, nil, '2.16.840.1.113883.3.560.1.61'),
@@ -56,7 +57,6 @@ module HealthDataStandards
56
57
  generate_importer(CDA::ResultImporter, "./cda:entry/cda:act[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.34']", '2.16.840.1.113883.3.560.1.47'), #intervention result
57
58
  generate_importer(CDA::ResultImporter, "./cda:entry/cda:observation[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.57']", '2.16.840.1.113883.3.560.1.18'), #physical exam finding
58
59
  generate_importer(CDA::ResultImporter, "./cda:entry/cda:observation[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.28']", '2.16.840.1.113883.3.560.1.88'), #functional status result
59
- generate_importer(CDA::ResultImporter, "./cda:entry/cda:observation[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.20']", '2.16.840.1.113883.3.560.1.111'), #diagnostic study result not done
60
60
  generate_importer(LabResultImporter, nil, '2.16.840.1.113883.3.560.1.12')] #lab result
61
61
 
62
62
  @section_importers[:encounters] = [generate_importer(EncounterPerformedImporter, "./cda:encounter[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.23']", '2.16.840.1.113883.3.560.1.79', 'performed'), #encounter performed
@@ -85,6 +85,7 @@ module HealthDataStandards
85
85
  nrh.build_id_map(doc)
86
86
  @section_importers.each do |section, entry_packages|
87
87
  entry_packages.each do |entry_package|
88
+ # binding.pry if section == :results
88
89
  record.send(section) << entry_package.package_entries(context, nrh)
89
90
  end
90
91
  end
@@ -101,15 +101,15 @@ module HealthDataStandards
101
101
  entry_populations = []
102
102
  cache_entry.population_ids.each do |population_type, population_id|
103
103
  population = populations.find{|pop| pop.id == population_id}
104
- if population.nil? && population_type != 'stratification'
104
+ if population.nil? && population_type != 'stratification' && population_type != 'STRAT'
105
105
  population = Population.new
106
106
  population.type = population_type
107
107
  population.id = population_id
108
108
  populations << population
109
109
  end
110
- unless population_type == 'stratification'
110
+ unless population_type == 'stratification' || population_type == 'STRAT'
111
111
  if cache_entry.is_stratification?
112
- strat_id = cache_entry.population_ids['stratification']
112
+ strat_id = cache_entry.population_ids['STRAT']
113
113
  population.add_stratification(strat_id,cache_entry[population_type])
114
114
  else
115
115
  population.value = cache_entry[population_type]
@@ -36,7 +36,7 @@ module HealthDataStandards
36
36
  end
37
37
 
38
38
  def is_stratification?
39
- population_ids.has_key?('stratification')
39
+ population_ids.has_key?('stratification') || population_ids.has_key?('STRAT')
40
40
  end
41
41
 
42
42
  def is_cv?
data/lib/hqmf-parser.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  # require
2
2
  require 'nokogiri'
3
- require 'pry'
4
3
  require 'json'
5
4
  require 'ostruct'
6
5
  require 'health-data-standards'
@@ -1,16 +1,16 @@
1
1
  <entry>
2
- <act classCode="ACT" moodCode="EVN">
2
+ <act classCode="ACT" moodCode="EVN" <%== negation_indicator(entry) %>>
3
3
  <!-- Communication from patient to provider -->
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
- <%== code_display(entry, 'value_set_map' => value_set_map, 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
6
+ <%== code_display(entry, 'value_set_map' => value_set_map, 'preferred_code_sets' => ['SNOMED-CT'], 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
7
7
  <text><%= entry.description %></text>
8
8
  <statusCode code="completed"/>
9
9
  <effectiveTime>
10
10
  <low <%= value_or_null_flavor(entry.start_time) %>/>
11
11
  <high <%= value_or_null_flavor(entry.end_time) %>/>
12
12
  </effectiveTime>
13
-
13
+
14
14
  <participant typeCode="AUT">
15
15
  <participantRole classCode="PAT">
16
16
  <code code="116154003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Patient"/>
@@ -23,5 +23,7 @@
23
23
  </participantRole>
24
24
  </participant>
25
25
 
26
+ <%== render(:partial => 'reason', :locals => {:entry => entry, :reason_oids=>field_oids["REASON"]}) %>
27
+
26
28
  </act>
27
29
  </entry>
@@ -75,20 +75,7 @@
75
75
  <% end -%>
76
76
 
77
77
  <% if entry.reason.present? -%>
78
- <entryRelationship typeCode="RSON">
79
- <observation classCode="OBS" moodCode="EVN">
80
- <templateId root="2.16.840.1.113883.10.20.24.3.88"/>
81
- <code code="410666004"
82
- codeSystem="2.16.840.1.113883.6.96"
83
- displayName="reason"
84
- codeSystemName="SNOMED CT"/>
85
- <statusCode code="completed"/>
86
- <effectiveTime <%= value_or_null_flavor(entry.start_time) %>/>
87
- <value xsi:type="CD"
88
- code="<%= entry.reason['code'] %>"
89
- codeSystem="<%= HealthDataStandards::Util::CodeSystemHelper.oid_for_code_system(entry.reason['codeSystem'] || entry.reason['code_system']) %>"/>
90
- </observation>
91
- </entryRelationship>
78
+ <%= render partial: "reason", locals: {entry: entry} %>
92
79
  <% end -%>
93
80
  </encounter>
94
81
  </entry>
@@ -12,10 +12,16 @@
12
12
  <low <%= value_or_null_flavor(entry.start_time) %>/>
13
13
  <high <%= value_or_null_flavor(entry.end_time) %>/>
14
14
  </effectiveTime>
15
+
16
+ <% if entry.administrationTiming.present?
17
+ period = entry.administrationTiming['period'] %>
18
+ <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true" operator="A">
19
+ <period value="<%= period['value']%>" unit="<%= period['unit']%>"/>
20
+ </effectiveTime>
21
+ <% end %>
15
22
 
16
23
  <%== render(:partial => 'medication_details', :locals => {:entry => entry, :route_oids=>field_oids["ROUTE"]}) %>
17
24
 
18
-
19
25
  <% if entry.product_form.present? -%>
20
26
  <administrationUnitCode code="<%= entry.product_form['code'] %>" codeSystem="<%= entry.product_form['codeSystem'] %>"/>
21
27
  <% end -%>
@@ -34,5 +40,9 @@
34
40
  </manufacturedProduct>
35
41
  </consumable>
36
42
  <%== render(:partial => 'reason', :locals => {:entry => entry, :reason_oids=>field_oids["REASON"]}) %>
43
+
44
+ <%== render(:partial => 'medication_dispense', :collection => entry.fulfillmentHistory, :locals => {:entry => entry, :value_set_map => value_set_map, :value_set_oid => value_set_oid}) %>
45
+
37
46
  </substanceAdministration>
47
+
38
48
  </entry>
@@ -5,6 +5,14 @@
5
5
  <id root="1.3.6.1.4.1.115" extension="<%= entry.id %>"/>
6
6
  <code code="48768-6" codeSystemName="LOINC" codeSystem="2.16.840.1.113883.6.1" displayName="Payment source"/>
7
7
  <statusCode code="completed"/>
8
+ <effectiveTime>
9
+ <!-- Attribute: Start Datetime -->
10
+ <low <%= value_or_null_flavor(entry.start_time) %>/>
11
+ <% if entry.end_time %>
12
+ <high value="<%= time_if_not_nil(entry.end_time) %>" />
13
+ <% end %>
14
+ </effectiveTime>
8
15
  <%== code_display(entry, 'preferred_code_sets' =>["SOP","Source of Payment Typology"] , 'tag_name' => 'value', 'extra_content' => "xsi:type=\"CD\" sdtc:valueSet=\"2.16.840.1.114222.4.11.3591\"") %>
16
+
9
17
  </observation>
10
18
  </entry>
@@ -18,6 +18,7 @@
18
18
  <entryRelationship typeCode="REFR">
19
19
  <procedure classCode="PROC" moodCode="EVN">
20
20
  <templateId root="2.16.840.1.113883.10.20.24.3.89"/>
21
+ <id extension="<%= identifier_for([entry.id, entry.incision_time]) %>" />
21
22
  <code code="34896006"
22
23
  codeSystem="2.16.840.1.113883.6.96"
23
24
  codeSystemName="SNOMED CT"
@@ -43,12 +43,13 @@
43
43
  <templateId root="2.16.840.1.113883.10.20.24.3.98"/>
44
44
  <!-- This is the templateId for eMeasure Reference QDM -->
45
45
  <templateId root="2.16.840.1.113883.10.20.24.3.97"/>
46
+ <id extension="<%= measure['id'] %>"/>
46
47
  <statusCode code="completed"/>
47
48
  <!-- Containing isBranch external references -->
48
49
  <reference typeCode="REFR">
49
50
  <externalDocument classCode="DOC" moodCode="EVN">
50
51
  <!-- SHALL: This is the version specific identifier for eMeasure: QualityMeasureDocument/id it is a GUID-->
51
- <id root="<%= measure.hqmf_id %>"/>
52
+ <id root="2.16.840.1.113883.4.738" extension="<%= measure.hqmf_id %>"/>
52
53
  <!-- SHOULD This is the title of the eMeasure -->
53
54
  <text><%= measure.title %></text>
54
55
  <!-- SHOULD: setId is the eMeasure version neutral id -->
@@ -11,5 +11,5 @@
11
11
  <% end -%>
12
12
 
13
13
  <% if entry.respond_to?(:dose) && entry.dose.present? -%>
14
- <doseQuantity value="<%= entry.dose['value']%>"/>
14
+ <doseQuantity <%= dose_quantity(entry.codes, entry.dose) %>/>
15
15
  <% end -%>
@@ -0,0 +1,22 @@
1
+
2
+ <entryRelationship typeCode="REFR">
3
+ <supply classCode="SPLY" moodCode="EVN">
4
+ <!-- Medication Dispense template -->
5
+ <templateId root="2.16.840.1.113883.10.20.22.4.18"/>
6
+ <id root="1.3.6.1.4.1.115" extension="<%= UUID.generate %>"/>
7
+ <statusCode code="completed"/>
8
+ <effectiveTime <%= value_or_null_flavor(medication_dispense.dispense_date) %>/>
9
+ <repeatNumber value="1"/>
10
+ <quantity <%= fulfillment_quantity(entry.codes, medication_dispense, entry.dose) %>/>
11
+ <product>
12
+ <manufacturedProduct classCode="MANU">
13
+ <!-- Medication Information (consolidation) template -->
14
+ <templateId root="2.16.840.1.113883.10.20.22.4.23"/>
15
+ <id root="<%= UUID.generate %>"/>
16
+ <manufacturedMaterial>
17
+ <%== code_display(entry, 'preferred_code_sets' =>["RxNorm"], 'value_set_map' => value_set_map, 'extra_content' => "sdtc:valueSet=\"#{value_set_oid}\"") %>
18
+ </manufacturedMaterial>
19
+ </manufacturedProduct>
20
+ </product>
21
+ </supply>
22
+ </entryRelationship>
@@ -4,6 +4,7 @@
4
4
  <entryRelationship typeCode="RSON">
5
5
  <observation classCode="OBS" moodCode="EVN">
6
6
  <templateId root="2.16.840.1.113883.10.20.24.3.88"/>
7
+ <id extension="<%= identifier_for([entry.negation_reason, entry.start_time]) %>" />
7
8
  <code code="410666004"
8
9
  codeSystem="2.16.840.1.113883.6.96"
9
10
  displayName="reason"
@@ -13,6 +13,7 @@
13
13
  <act classCode="ACT" moodCode="EVN">
14
14
  <!-- This is the templateId for Reporting Parameteres Act -->
15
15
  <templateId root="2.16.840.1.113883.10.20.17.3.8"/>
16
+ <id extension="<%= identifier_for([start_date, end_date]) %>" />
16
17
  <code code="252116004" codeSystem="2.16.840.1.113883.6.96" displayName="Observation Parameters"/>
17
18
  <effectiveTime>
18
19
  <low value="<%= start_date.to_formatted_s(:number) %>"/>
@@ -82,7 +82,7 @@
82
82
  <!-- SEX Supplemental Data Reporting for <%= population.type %> <%= population.id %> -->
83
83
 
84
84
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Sex Supplemental Data',
85
- :template_id => '2.16.840.1.113883.10.20.27.3.6', :supplemental_data_code => '184100006',
85
+ :template_ids => ['2.16.840.1.113883.10.20.27.3.6'], :supplemental_data_code => '184100006',
86
86
  :supplemental_data_code_system => '2.16.840.1.113883.6.96', :supplemental_data_value_code => sex,
87
87
  :supplemental_data_value_code_system => '2.16.840.1.113883.5.1', :count => count} %>
88
88
  <% end -%>
@@ -94,7 +94,7 @@
94
94
  <!-- ETHNICITY Supplemental Data Reporting for <%= population.type %> <%= population.id %> -->
95
95
 
96
96
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Ethnicity Supplemental Data',
97
- :template_id => '2.16.840.1.113883.10.20.27.3.7', :supplemental_data_code => '364699009',
97
+ :template_ids => ['2.16.840.1.113883.10.20.27.3.7'], :supplemental_data_code => '364699009',
98
98
  :supplemental_data_code_system => '2.16.840.1.113883.6.96', :supplemental_data_value_code => ethnicity,
99
99
  :supplemental_data_value_code_system => '2.16.840.1.113883.6.238', :count => count} %>
100
100
  <% end -%>
@@ -106,7 +106,7 @@
106
106
  <!-- RACE Supplemental Data Reporting for <%= population.type %> <%= population.id %> -->
107
107
 
108
108
  <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Race Supplemental Data',
109
- :template_id => '2.16.840.1.113883.10.20.27.3.8', :supplemental_data_code => '103579009',
109
+ :template_ids => ['2.16.840.1.113883.10.20.27.3.8'], :supplemental_data_code => '103579009',
110
110
  :supplemental_data_code_system => '2.16.840.1.113883.6.96', :supplemental_data_value_code => race,
111
111
  :supplemental_data_value_code_system => '2.16.840.1.113883.6.238', :count => count} %>
112
112
  <% end -%>
@@ -116,8 +116,8 @@
116
116
  payer_supplimental_data.each do |payer, count| -%>
117
117
 
118
118
  <!-- PAYER Supplemental Data Reporting for<%= population.type %> <%= population.id %> -->
119
- <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Payer Supplemental Data',
120
- :template_id => '2.16.840.1.113883.10.20.27.3.9', :supplemental_data_code => '48768-6',
119
+ <%== render :partial => 'supplemental_data', :locals => {:template_name => 'Payer Supplemental Data',
120
+ :template_ids => ['2.16.840.1.113883.10.20.27.3.9', '2.16.840.1.113883.10.20.24.3.55'], :supplemental_data_code => '48768-6',
121
121
  :supplemental_data_code_system => '2.16.840.1.113883.6.1', :supplemental_data_value_code => payer,
122
122
  :supplemental_data_value_code_system => '2.16.840.1.113883.3.221.5', :count => count} %>
123
123
  <% end -%>
@@ -15,8 +15,9 @@
15
15
  </text>
16
16
  <entry typeCode="DRIV">
17
17
  <act classCode="ACT" moodCode="EVN">
18
- <!-- This is the templateId for Reporting Parameteres Act -->
18
+ <!-- This is the templateId for Reporting Parameters Act -->
19
19
  <templateId root="2.16.840.1.113883.10.20.17.3.8"/>
20
+ <id extension="<%= identifier_for([start_date, end_date]) %>" />
20
21
  <code code="252116004" codeSystem="2.16.840.1.113883.6.96" displayName="Observation Parameters"/>
21
22
  <effectiveTime>
22
23
  <low value="<%= start_date.to_formatted_s(:number) %>"/>
@@ -3,11 +3,17 @@
3
3
  <entryRelationship typeCode="COMP">
4
4
  <observation classCode="OBS" moodCode="EVN">
5
5
  <!-- <%= template_name %> -->
6
- <templateId root="<%= template_id %>"/>
6
+ <% template_ids.each do |tid| %>
7
+ <templateId root="<%= tid %>"/>
8
+ <% end %>
7
9
  <id nullFlavor="NA" />
8
10
  <code code="<%= supplemental_data_code %>"
9
11
  codeSystem="<%= supplemental_data_code_system %>"/>
10
12
  <statusCode code="completed"/>
13
+ <effectiveTime>
14
+ <low nullFlavor="NA"/>
15
+ <high nullFlavor="NA"/>
16
+ </effectiveTime>
11
17
  <% if supplemental_data_value_code == "" || supplemental_data_value_code == "UNK" -%>
12
18
  <value xsi:type="CD"
13
19
  nullFlavor="UNK" />
@@ -107,12 +107,13 @@ Measure Section
107
107
  <templateId root="2.16.840.1.113883.10.20.24.3.98"/>
108
108
  <!-- SHALL 1..* (one for each referenced measure) Measure Reference and Results template -->
109
109
  <templateId root="2.16.840.1.113883.10.20.27.3.1"/>
110
+ <id extension="<%= measure['id'] || UUID.generate %>"/>
110
111
  <statusCode code="completed"/>
111
112
  <reference typeCode="REFR">
112
113
  <externalDocument classCode="DOC" moodCode="EVN">
113
114
  <!-- SHALL: required Id but not restricted to the eMeasure Document/Id-->
114
115
  <!-- QualityMeasureDocument/id This is the version specific identifier for eMeasure -->
115
- <id root="<%= measure['hqmf_id'] %>"/>
116
+ <id root="2.16.840.1.113883.4.738" extension="<%= measure['hqmf_id'] %>"/>
116
117
 
117
118
  <!-- SHOULD This is the title of the eMeasure -->
118
119
  <text><%= measure['name'] %></text>
@@ -44,17 +44,16 @@
44
44
  <%
45
45
  (entry.attributes.keys.reject {|key| ['codes', 'time', 'description', 'mood_code', 'values', '_id', '_type', 'start_time', 'end_time', 'status_code', 'negationInd', 'oid'].include? key}).sort.each do |field|
46
46
  field_value = convert_field_to_hash(field, entry.attributes[field])
47
-
48
47
  %>
49
48
  <% if field_value && !field_value.empty? %>
50
49
  <dl>
51
50
  <% if field_value.is_a? Hash %>
52
51
  <dt><b><%= field.titleize %>:</b></dt>
53
52
  <% field_value.keys.sort.reverse.each do |fieldkey| %>
54
- <dd><%= fieldkey %>: <i><%= field_value[fieldkey] %></i></dd>
53
+ <dd><%= fieldkey %>: <i><%== field_value[fieldkey] %></i></dd>
55
54
  <% end %>
56
55
  <% else %>
57
- <dt><b><%= field.titleize %></b>: <%= field_value%></dt>
56
+ <dt><b><%= field.titleize %></b>: <%== field_value%></dt>
58
57
  <% end %>
59
58
  <dl>
60
59
  <% end %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: health-data-standards
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.2
4
+ version: 3.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Gregorowicz
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-09-23 00:00:00.000000000 Z
15
+ date: 2015-01-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rest-client
@@ -489,6 +489,7 @@ files:
489
489
  - templates/cat1/_id.cat1.erb
490
490
  - templates/cat1/_measures.cat1.erb
491
491
  - templates/cat1/_medication_details.cat1.erb
492
+ - templates/cat1/_medication_dispense.cat1.erb
492
493
  - templates/cat1/_ordinality.cat1.erb
493
494
  - templates/cat1/_organization.cat1.erb
494
495
  - templates/cat1/_patient_data.cat1.erb
@@ -580,7 +581,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
580
581
  version: '0'
581
582
  requirements: []
582
583
  rubyforge_project:
583
- rubygems_version: 2.2.0
584
+ rubygems_version: 2.4.3
584
585
  signing_key:
585
586
  specification_version: 4
586
587
  summary: A library for generating and consuming various healthcare related formats.