Class: FHIR::QuantitiesUcum
- Defined in:
- lib/rubrics/quantities_ucum.rb
Constant Summary collapse
- IGNORE =
[ 'TestScript','Task','StructureDefinition','SearchParameter','Questionnaire','QuestionnaireResponse','Parameters','OperationDefinition', 'Group','ExplanationOfBenefit','Contract','Conformance','Claim','ActivityDefinition' ]
- CHECK =
[ 'VisionPrescription','SupplyDelivery','Substance','Specimen','Sequence','Observation','NutritionRequest', 'MedicationStatement','MedicationOrder','MedicationDispense','MedicationAdministration','Medication','Immunization','CarePlan' ]
Class Method Summary collapse
- .check_fields(fhir_model) ⇒ Object
-
.check_quantity(quantity) ⇒ Object
This method checks whether or not the quantity uses UCUM.
Methods inherited from Rubrics
Class Method Details
.check_fields(fhir_model) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rubrics/quantities_ucum.rb', line 32 def self.check_fields(fhir_model) results = { :eligible_fields => 0, :validated_fields => 0 } # check each codeable field fhir_model.class::METADATA.each do |key, | field_name = ['local_name'] || key value = fhir_model.instance_variable_get("@#{field_name}") if ['type']=='Quantity' if value.is_a?(Array) value.each do |v| results.merge!(check_quantity(v)){|k,a,b|a+b} end else results.merge!(check_quantity(value)){|k,a,b|a+b} end end end results end |
.check_quantity(quantity) ⇒ Object
This method checks whether or not the quantity uses UCUM.
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/rubrics/quantities_ucum.rb', line 56 def self.check_quantity(quantity) result = { :eligible_fields => 1, :validated_fields => 0 } if quantity && quantity.system && quantity.system.start_with?('http://unitsofmeasure.org') result[:validated_fields] +=1 elsif quantity && quantity.unit result[:validated_fields] +=1 if FHIR::Terminology.is_known_ucum?(quantity.unit) end result end |