ObservationUsCore.pulseOximetry constructor

ObservationUsCore.pulseOximetry(
  1. double o2sat,
  2. FhirDateTime dateTime,
  3. Reference subject, {
  4. double? litersPerMinute,
  5. double? oxygenFlowRate,
})

Implementation

factory ObservationUsCore.pulseOximetry(
  double o2sat,
  FhirDateTime dateTime,
  Reference subject, {
  double? litersPerMinute,
  double? oxygenFlowRate,
}) {
  final List<ObservationComponent> obsComp = <ObservationComponent>[];
  if (litersPerMinute != null) {
    obsComp.add(
      ObservationComponent(
        code: CodeableConcept(
          coding: [
            Coding(
              system: FhirUri('http://loinc.org'),
              code: Code('3151-8'),
              display: 'Inhaled oxygen flow rate',
            ),
          ],
          text: 'Inhaled oxygen flow rate',
        ),
        valueQuantity: Quantity(
          value: Decimal(litersPerMinute),
          unit: 'liters/min',
          system: FhirUri('http://unitsofmeasure.org'),
          code: Code('L/min'),
        ),
      ),
    );
  }
  if (oxygenFlowRate != null) {
    obsComp.add(
      ObservationComponent(
        code: CodeableConcept(
          coding: [
            Coding(
              system: FhirUri('http://loinc.org'),
              code: Code('3150-0'),
              display: 'Inhaled oxygen concentration',
            ),
          ],
          text: 'Inhaled oxygen concentration',
        ),
        valueQuantity: Quantity(
          value: Decimal(oxygenFlowRate),
          unit: '%',
          system: FhirUri('http://unitsofmeasure.org'),
          code: Code('%'),
        ),
      ),
    );
  }

  return ObservationUsCore(
      category: _vitalSignsCategory,
      code: CodeableConcept(
        coding: [
          Coding(
            system: FhirUri('http://loinc.org'),
            code: Code('59408-5'),
            display: 'Oxygen saturation in Arterial blood by Pulse oximetry',
          ),
        ],
      ),
      effectiveDateTime: dateTime,
      subject: subject,
      valueQuantity: Quantity(
        value: Decimal(o2sat),
        unit: '%',
        system: FhirUri('http://unitsofmeasure.org'),
        code: Code('%'),
      ),
      component: obsComp.isEmpty ? null : obsComp);
}