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.



234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
# File 'lib/oddb2xml/fhir_support.rb', line 234

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.



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

def atc_code
  @atc_code
end

#classificationObject (readonly)

Returns the value of attribute classification.



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

def classification
  @classification
end

#it_codesObject (readonly)

Returns the value of attribute it_codes.



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

def it_codes
  @it_codes
end

#namesObject (readonly)

Returns the value of attribute names.



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

def names
  @names
end

Instance Method Details

#it_codeObject



272
273
274
275
# File 'lib/oddb2xml/fhir_support.rb', line 272

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

#name_deObject



260
261
262
# File 'lib/oddb2xml/fhir_support.rb', line 260

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

#name_frObject



264
265
266
# File 'lib/oddb2xml/fhir_support.rb', line 264

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

#name_itObject



268
269
270
# File 'lib/oddb2xml/fhir_support.rb', line 268

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