Class: Oddb2xml::FHIR::MedicinalProduct

Inherits:
Object
  • Object
show all
Defined in:
lib/oddb2xml/fhir_support.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource) ⇒ MedicinalProduct

Returns a new instance of MedicinalProduct.



197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/oddb2xml/fhir_support.rb', line 197

def initialize(resource)
  @names = {}
  resource["name"]&.each do |name|
    lang = name.dig("usage", 0, "language", "coding", 0, "code")
    @names[lang] = name["productName"]
  end

  # Get ATC code (classification[0])
  @atc_code = resource.dig("classification", 0, "coding", 0, "code")

  # Get product classification (generic/reference) (classification[1])
  @classification = resource.dig("classification", 1, "coding", 0, "code")
  
  # Get IT codes (Index Therapeuticus) from classification with correct system
  @it_codes = []
  resource["classification"]&.each do |cls|
    cls["coding"]&.each do |coding|
      if coding["system"]&.include?("index-therapeuticus")
        # Format IT code from "080300" to "08.03.00" or "08.03."
        it_code = format_it_code(coding["code"])
        @it_codes << it_code if it_code
      end
    end
  end
end

Instance Attribute Details

#atc_codeObject (readonly)

Returns the value of attribute atc_code.



195
196
197
# File 'lib/oddb2xml/fhir_support.rb', line 195

def atc_code
  @atc_code
end

#classificationObject (readonly)

Returns the value of attribute classification.



195
196
197
# File 'lib/oddb2xml/fhir_support.rb', line 195

def classification
  @classification
end

#it_codesObject (readonly)

Returns the value of attribute it_codes.



195
196
197
# File 'lib/oddb2xml/fhir_support.rb', line 195

def it_codes
  @it_codes
end

#namesObject (readonly)

Returns the value of attribute names.



195
196
197
# File 'lib/oddb2xml/fhir_support.rb', line 195

def names
  @names
end

Instance Method Details

#it_codeObject



235
236
237
238
# File 'lib/oddb2xml/fhir_support.rb', line 235

def it_code
  # Return first IT code (primary), formatted like "08.03.00"
  @it_codes.first
end

#name_deObject



223
224
225
# File 'lib/oddb2xml/fhir_support.rb', line 223

def name_de
  @names["de-CH"] || @names["de"]
end

#name_frObject



227
228
229
# File 'lib/oddb2xml/fhir_support.rb', line 227

def name_fr
  @names["fr-CH"] || @names["fr"]
end

#name_itObject



231
232
233
# File 'lib/oddb2xml/fhir_support.rb', line 231

def name_it
  @names["it-CH"] || @names["it"]
end