private Observation initializeObservation(
      Patient p, DeviceMetric metric, GlucoseRecord r, QuantityDt qdt) {
    log("Initializing observation");

    Observation o = newObservation(qdt);
    o.setCode(createCode(r.unit));
    o.setSubject(newResourceReference(p.getId()));
    o.setDevice(newResourceReference(metric.getId()));

    // set date and time for observation
    DateTimeDt dt = new DateTimeDt();
    dt.setValue(r.time.getTime());
    o.setEffective(dt);
    o.setIdentifier(
        Arrays.asList(
            getIdentifier(
                "/devices/".concat("" + deviceInfo.getSysID()), "" + r.getSequenceNumber())));

    // set narrative
    o.setText(getNarrative(o));

    log("Initializing observation done");
    return o;
  }