001package org.hl7.fhir.r4b.utils; 002 003import org.hl7.fhir.r4b.model.Observation; 004import org.hl7.fhir.r4b.model.ObservationDefinition; 005import org.hl7.fhir.r4b.model.ObservationDefinition.ObservationDataType; 006 007public class ObservationUtilities { 008 009 public static Observation fromDefinition(ObservationDefinition def) { 010 Observation obs = new Observation(); 011 obs.setCode(def.getCode()); 012 obs.getCategory().addAll(def.getCategory()); 013 if (def.hasMethod()) { 014 obs.setMethod(def.getMethod()); 015 } 016 if (def.hasPermittedDataType(ObservationDataType.QUANTITY) && def.getQuantitativeDetails().hasUnit() && def.getQuantitativeDetails().getUnit().hasCoding("http://unitsofmeasure.org")) { 017 obs.getValueQuantity().setSystem("http://unitsofmeasure.org").setCode(def.getQuantitativeDetails().getUnit().getCode("http://unitsofmeasure.org")); 018 } 019 // todo: set up reference ranges 020 return obs; 021 } 022 023}