health-data-standards 3.5.2 → 3.5.3

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