ucum 0.9.0 copy "ucum: ^0.9.0" to clipboard
ucum: ^0.9.0 copied to clipboard

UCUM (Unified Code for Units of Measure) for Dart — unit validation, conversion, and quantity arithmetic for healthcare. Port of the reference Java library.

example/example.dart

// ignore_for_file: avoid_print
import 'package:ucum/ucum.dart';

/// Demonstrates the main entry points of package:ucum.
void main() {
  final ucum = UcumService();

  // Which UCUM data is loaded?
  print(ucum.ucumIdentification()); // UCUM specification 2.2, ...

  // Strict validation: null means valid UCUM.
  print(ucum.validate('mg/dL')); // null (valid)
  print(ucum.validate('mcg')); // error message ('mcg' is not UCUM)

  // Explicit lenient resolution of common non-UCUM spellings.
  print(ucum.resolveCommonUnit('mcg')); // ug
  print(ucum.resolveCommonUnit('mcg/mL')); // ug/mL
  print(ucum.resolveCommonUnit('hours')); // h

  // Conversion (including correct affine temperature handling).
  print(ucum.convert(UcumDecimal.fromString('37'), 'Cel', 'K')); // 310.15
  // 37.0000
  print(
    ucum.convert(UcumDecimal.fromString('98.6'), '[degF]', 'Cel'),
  );
  print(ucum.convert(UcumDecimal.fromString('15'), '/min', '/h')); // 900

  // Canonical forms and comparability.
  print(ucum.getCanonicalUnits('N')); // g.m.s-2
  print(ucum.isComparable('N', 'kg.m/s2')); // true

  // ValidatedQuantity: the lenient, FHIR/CQL-facing value+unit type.
  final height = ValidatedQuantity.fromString('72 inch');
  final heightCm = ValidatedQuantity.fromString('182.88 cm');
  print(height == heightCm); // true
  print(height.convertTo('cm')); // 182.88 'cm'

  final bodyTemp = ValidatedQuantity.fromString('37 Cel');
  print(bodyTemp == ValidatedQuantity.fromString('310.15 K')); // true
  print(bodyTemp > '98 [degF]'); // true

  // Quantity arithmetic.
  final dose = ValidatedQuantity.fromString('250 mcg');
  print(dose + '0.25 mg'); // 500 'mcg' equivalent, in dose's unit
  print(
    ValidatedQuantity.fromString('10 mg') /
        ValidatedQuantity.fromString('5 mL'),
  ); // canonical g/m3 form
}
1
likes
160
points
1.28k
downloads

Documentation

API reference

Publisher

verified publisherfhirfli.dev

Weekly Downloads

UCUM (Unified Code for Units of Measure) for Dart — unit validation, conversion, and quantity arithmetic for healthcare. Port of the reference Java library.

Homepage
Repository (GitHub)
View/report issues

Topics

#ucum #fhir #healthcare #units #hl7

License

MIT (license)

More

Packages that depend on ucum