ObservationUsCore.bloodPressure constructor

ObservationUsCore.bloodPressure(
  1. Reference subject,
  2. FhirDateTime dateTime, {
  3. required double systolic,
  4. double? diastolic,
  5. BodySiteForBp? bodySite,
})

Implementation

factory ObservationUsCore.bloodPressure(
  Reference subject,
  FhirDateTime dateTime, {
  required double systolic,
  double? diastolic,
  BodySiteForBp? bodySite,
}) {
  final component = <ObservationComponent>[];
  component.add(
    ObservationComponent(
      code: CodeableConcept(
        coding: [
          Coding(
            system: FhirUri('http://loinc.org'),
            code: Code('8480-6'),
            display: 'Systolic blood pressure',
          ),
          Coding(
            system: FhirUri('http://snomed.info/sct'),
            code: Code('271649006'),
            display: 'Systolic blood pressure',
          ),
        ],
      ),
      valueQuantity: Quantity(
        value: Decimal(systolic),
        unit: 'mmHg',
        system: FhirUri('http://unitsofmeasure.org'),
        code: Code('mm[Hg]'),
      ),
    ),
  );
  if (diastolic != null) {
    component.add(
      ObservationComponent(
        code: CodeableConcept(
          coding: [
            Coding(
              system: FhirUri('http://loinc.org'),
              code: Code('8462-4'),
              display: 'Diastolic blood pressure',
            ),
          ],
        ),
        valueQuantity: Quantity(
          value: Decimal(diastolic),
          unit: 'mmHg',
          system: FhirUri('http://unitsofmeasure.org'),
          code: Code('mm[Hg]'),
        ),
      ),
    );
  }
  return ObservationUsCore(
    category: _vitalSignsCategory,
    code: CodeableConcept(
      coding: [
        Coding(
          system: FhirUri('http://loinc.org'),
          code: Code('85354-9'),
          display: 'Blood pressure panel with all children optional',
        ),
      ],
      text: 'Blood pressure systolic & diastolic',
    ),
    subject: subject,
    bodySite:
        bodySite == null ? null : codeableConceptFromBodySiteForBp[bodySite]!,
    effectiveDateTime: dateTime,
    component: component,
  );
}