diff --git a/examples/protogen/common.sh b/examples/protogen/common.sh
index a44b199104..b9e393a4ff 100644
--- a/examples/protogen/common.sh
+++ b/examples/protogen/common.sh
@@ -28,23 +28,31 @@ RESOURCETYPES="Account ActivityDefinition AdverseEvent AllergyIntolerance Appoin
PROFILES="Bmi Bodyheight Bodylength Bodytemp Bodyweight Bp Cholesterol Clinicaldocument Devicemetricobservation Diagnosticreport-genetics Elementdefinition-de Familymemberhistory-genetic Hdlcholesterol Headcircum Heartrate Hlaresult Ldlcholesterol Lipidprofile MetadataResource Observation-genetics Oxygensat Procedurerequest-genetics Resprate Shareablecodesystem Shareablevalueset Triglyceride Vitalsigns Vitalspanel"
# LANG=C ensures ASCII sorting order
EXTENSIONS=$(LANG=C ls $EXTENSION_PATH/extension-*.json)
+EXTENSIONS=$(LANG=C ls $EXTENSION_PATH/extension-*.json)
GOOGLE_EXTENSIONS=$(LANG=C ls $GOOGLE_EXTENSION_PATH/extension-*.json)
+US_CORE_PROFILES=$(LANG=C ls $US_CORE_PATH/*.json)
ALL_STU3_STRUCTURE_DEFINITIONS=$EXTENSIONS\ $(ls $INPUT_PATH/*.profile.json)
-PROTO_PACKAGE="google.fhir.stu3.proto"
+FHIR_PROTO_PACKAGE="google.fhir.stu3.proto"
FHIR_JAVA_PROTO_PACKAGE="com.google.fhir.stu3.proto"
FHIR_PROTO_ROOT="proto/stu3"
GOOGLE_PROTO_PACKAGE="google.fhir.stu3.google"
+GOOGLE_JAVA_PROTO_PACKAGE="com.google.fhir.stu3.google"
+
+US_CORE_PROTO_PACKAGE="google.fhir.stu3.uscore"
+US_CORE_JAVA_PROTO_PACKAGE="com.google.fhir.stu3.uscore"
-FHIR_KNOWN_TYPES=$PROTO_PACKAGE:$(echo $ALL_STU3_STRUCTURE_DEFINITIONS | tr " " ";")
+FHIR_KNOWN_TYPES=$FHIR_PROTO_PACKAGE:$(echo $ALL_STU3_STRUCTURE_DEFINITIONS | tr " " ";")
GOOGLE_KNOWN_TYPES=$GOOGLE_PROTO_PACKAGE:$(echo $GOOGLE_EXTENSIONS | tr " " ";")
+US_CORE_KNOWN_TYPES=$US_CORE_PROTO_PACKAGE:$(echo $US_CORE_PROFILES | tr " " ";")
NO_PACKAGE_FLAGS="\
--add_apache_license \
--known_types $FHIR_KNOWN_TYPES \
--known_types $GOOGLE_KNOWN_TYPES \
+ --known_types $US_CORE_KNOWN_TYPES \
--fhir_proto_root "$FHIR_PROTO_ROOT""
COMMON_FLAGS="$NO_PACKAGE_FLAGS \
- --proto_package "$PROTO_PACKAGE" \
+ --proto_package "$FHIR_PROTO_PACKAGE" \
--java_proto_package "$FHIR_JAVA_PROTO_PACKAGE""
diff --git a/examples/protogen/generate-descriptors.sh b/examples/protogen/generate-descriptors.sh
index 24feb7af82..3238a76106 100755
--- a/examples/protogen/generate-descriptors.sh
+++ b/examples/protogen/generate-descriptors.sh
@@ -67,4 +67,13 @@ $PROTO_GENERATOR \
--output_directory $GOOGLE_EXTENSION_PATH \
$(for i in $GOOGLE_EXTENSIONS; do echo $i; done)
+# Generate descriptors for US Core package.
+$PROTO_GENERATOR \
+ $NO_PACKAGE_FLAGS \
+ --emit_descriptors \
+ --proto_package $US_CORE_PROTO_PACKAGE \
+ --java_proto_package $US_CORE_JAVA_PROTO_PACKAGE \
+ --output_directory $US_CORE_PATH \
+ $(for i in $US_CORE_PROFILES; do echo "$i"; done)
+
diff --git a/examples/protogen/generate-proto.sh b/examples/protogen/generate-proto.sh
index ce0b5103d8..226b41fe5f 100755
--- a/examples/protogen/generate-proto.sh
+++ b/examples/protogen/generate-proto.sh
@@ -109,8 +109,21 @@ $PROTO_GENERATOR \
$PROTO_GENERATOR \
$NO_PACKAGE_FLAGS \
--emit_proto \
- --proto_package google.fhir.stu3.google \
- --java_proto_package com.google.fhir.stu3.google \
+ --proto_package $GOOGLE_PROTO_PACKAGE \
+ --java_proto_package $GOOGLE_JAVA_PROTO_PACKAGE \
--output_directory $OUTPUT_PATH \
--output_filename google_extensions.proto \
$(for i in $GOOGLE_EXTENSIONS; do echo "$i"; done)
+
+# generate US Core package
+$PROTO_GENERATOR \
+ $NO_PACKAGE_FLAGS \
+ --emit_proto \
+ --proto_package $US_CORE_PROTO_PACKAGE \
+ --java_proto_package $US_CORE_JAVA_PROTO_PACKAGE \
+ --include_resources \
+ --include_metadatatypes \
+ --additional_import "$FHIR_PROTO_ROOT/uscore_codes.proto" \
+ --output_directory $OUTPUT_PATH \
+ --output_filename uscore.proto \
+ $(for i in $US_CORE_PROFILES; do echo "$i"; done)
diff --git a/java/BUILD b/java/BUILD
index 98ad174ae8..38f5770881 100644
--- a/java/BUILD
+++ b/java/BUILD
@@ -5,6 +5,8 @@ package(
licenses(["notice"])
+# TODO(nickgeorge): remove dependency on uscore once we have json
+# definitions of codes.
java_library(
name = "stu3",
srcs = glob(["src/main/java/com/google/fhir/stu3/*.java"]),
@@ -17,6 +19,7 @@ java_library(
"//proto/stu3:extensions_java_proto",
"//proto/stu3:metadatatypes_java_proto",
"//proto/stu3:resources_java_proto",
+ "//proto/stu3:uscore_codes_java_proto",
"@com_google_apis_google_api_services_bigquery//jar",
"@com_google_http_client_google_http_client//jar",
"@com_google_protobuf//:protobuf_java",
@@ -231,6 +234,7 @@ java_test(
"//testdata/stu3:extensions",
"//testdata/stu3:google",
"//testdata/stu3:structure_definitions",
+ "//testdata/stu3:uscore",
],
test_class = "com.google.fhir.stu3.ProtoGeneratorTest",
deps = [
diff --git a/java/src/main/java/com/google/fhir/stu3/ProtoGenerator.java b/java/src/main/java/com/google/fhir/stu3/ProtoGenerator.java
index 17b6b48641..c462db8180 100644
--- a/java/src/main/java/com/google/fhir/stu3/ProtoGenerator.java
+++ b/java/src/main/java/com/google/fhir/stu3/ProtoGenerator.java
@@ -22,6 +22,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.MoreCollectors;
+import com.google.fhir.stu3.proto.AbstractTypeCode;
import com.google.fhir.stu3.proto.Annotations;
import com.google.fhir.stu3.proto.BindingStrengthCode;
import com.google.fhir.stu3.proto.CodeableConcept;
@@ -36,6 +37,7 @@
import com.google.fhir.stu3.proto.StructureDefinitionKindCode;
import com.google.fhir.stu3.proto.TypeDerivationRuleCode;
import com.google.fhir.stu3.proto.Uri;
+import com.google.fhir.stu3.uscore.UsCoreBirthSexCode;
import com.google.protobuf.DescriptorProtos.DescriptorProto;
import com.google.protobuf.DescriptorProtos.EnumDescriptorProto;
import com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto;
@@ -47,6 +49,7 @@
import com.google.protobuf.DescriptorProtos.OneofDescriptorProto;
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
+import com.google.protobuf.Descriptors.FileDescriptor;
import com.google.protobuf.Message;
import java.io.File;
import java.util.ArrayList;
@@ -123,6 +126,8 @@ public class ProtoGenerator {
private final ImmutableMap<String, StructureDefinitionData> structDefDataByUrl;
// Mapping from urls for StructureDefinition to data about that StructureDefinition.
private final ImmutableMap<String, StructureDefinitionData> structDefDataById;
+ // Mapping from ValueSet url to Descriptor for the message type it should be inlined as.
+ private final ImmutableMap<String, Descriptor> valueSetTypesByCodeReference;
// The package to write new protos to.
// When regenerating proto files defined by the fhir spec like Decimal or Patient, this will equal
@@ -144,6 +149,16 @@ private static class StructureDefinitionData {
}
}
+ private static class QualifiedType {
+ final String type;
+ final String packageName;
+
+ QualifiedType(String type, String packageName) {
+ this.type = type;
+ this.packageName = packageName;
+ }
+ }
+
// Token in a id string. The sequence of tokens forms a heirarchical relationship, where each
// dot-delimited token is of the form pathpart:slicename/reslicename.
// See https://www.hl7.org/fhir/elementdefinition.html#id
@@ -200,6 +215,13 @@ public ProtoGenerator(
this.goPackageName = goPackageName;
this.fhirProtoRootPath = fhirProtoRootPath;
+ // TODO(nickgeorge): Do this with ValueSet resources once we have them
+ this.valueSetTypesByCodeReference =
+ new ImmutableMap.Builder<String, Descriptor>()
+ .putAll(loadCodeTypesFromFile(AbstractTypeCode.getDescriptor().getFile()))
+ .putAll(loadCodeTypesFromFile(UsCoreBirthSexCode.getDescriptor().getFile()))
+ .build();
+
Map<String, StructureDefinitionData> mutableStructDefDataByUrl = new HashMap<>();
Map<String, StructureDefinitionData> mutableStructDefDataById = new HashMap<>();
for (Map.Entry<StructureDefinition, String> knownType : knownTypes.entrySet()) {
@@ -210,13 +232,22 @@ public ProtoGenerator(
throw new IllegalArgumentException(
"Invalid FHIR structure definition: " + def.getId().getValue() + " has no url");
}
- String inlineType =
+ boolean isSimpleInternalExtension =
isSimpleInternalExtension(
- def.getSnapshot().getElement(0), def.getSnapshot().getElementList())
- ? getSimpleExtensionDefinitionType(def)
- : getTypeName(def);
+ def.getSnapshot().getElement(0), def.getSnapshot().getElementList());
+ String inlineType;
+ String structDefPackage;
+ if (isSimpleInternalExtension) {
+ QualifiedType qualifiedType = getSimpleExtensionDefinitionType(def);
+ inlineType = qualifiedType.type;
+ structDefPackage = qualifiedType.packageName;
+ } else {
+ inlineType = getTypeName(def);
+ structDefPackage = protoPackage;
+ }
+
StructureDefinitionData structDefData =
- new StructureDefinitionData(def, inlineType, protoPackage);
+ new StructureDefinitionData(def, inlineType, structDefPackage);
mutableStructDefDataByUrl.put(def.getUrl().getValue(), structDefData);
mutableStructDefDataById.put(def.getId().getValue(), structDefData);
}
@@ -224,6 +255,13 @@ public ProtoGenerator(
this.structDefDataById = ImmutableMap.copyOf(mutableStructDefDataById);
}
+ private static Map<String, Descriptor> loadCodeTypesFromFile(FileDescriptor file) {
+ return file.getMessageTypes().stream()
+ .collect(
+ Collectors.toMap(
+ d -> d.getOptions().getExtension(Annotations.fhirValuesetUrl), d -> d));
+ }
+
private static ImmutableMap<String, String> getRenamedCodeTypes() {
Map<String, String> renamedCodeTypes = new HashMap<>();
renamedCodeTypes.put("ActivityDefinitionKindCode", "ResourceTypeCode");
@@ -303,7 +341,13 @@ public DescriptorProto generateProto(StructureDefinition def) {
// Make sure the package the proto declared in is the same as it will be generated in.
StructureDefinitionData structDefData = structDefDataByUrl.get(def.getUrl().getValue());
- if (structDefData != null && !structDefData.protoPackage.equals(packageName)) {
+ if (structDefData == null) {
+ throw new IllegalArgumentException(
+ "No StructureDefinition data found for: " + def.getUrl().getValue());
+ }
+ if (!(structDefData.protoPackage.equals(packageName)
+ || (isSingleTypedExtensionDefinition(structDefData.structDef)
+ && structDefData.protoPackage.equals(CORE_FHIR_PACKAGE)))) {
throw new IllegalArgumentException(
"Inconsistent package name for "
+ def.getUrl().getValue()
@@ -563,11 +607,18 @@ private Optional<DescriptorProto> getChoiceTypeIfRequired(
List<ElementDefinition.TypeRef> baseTypes = choiceTypeBase.get().getTypeList();
Map<String, Integer> baseTypesToIndex = new HashMap<>();
for (int i = 0; i < baseTypes.size(); i++) {
- baseTypesToIndex.put(baseTypes.get(i).getCode().getValue(), i);
+ String code = baseTypes.get(i).getCode().getValue();
+ // Only add each code type once. This is only relevant for references, which can appear
+ // multiple times.
+ if (!baseTypesToIndex.containsKey(code)) {
+ baseTypesToIndex.put(code, i);
+ }
}
DescriptorProto baseChoiceType = makeChoiceType(choiceTypeBase.get(), field);
+ final Set<String> uniqueTypes = new HashSet<>();
List<FieldDescriptorProto> matchingFields =
element.getTypeList().stream()
+ .filter(type -> uniqueTypes.add(type.getCode().getValue()))
.map(type -> baseChoiceType.getField(baseTypesToIndex.get(type.getCode().getValue())))
.collect(Collectors.toList());
// TODO(nickgeorge): If a choice type is a slice of another choice type (not a pure
@@ -907,6 +958,16 @@ private String getFieldType(ElementDefinition element, List<ElementDefinition> e
String typeWithBindingName = toFieldTypeCase(bindingName) + "Code";
return RENAMED_CODE_TYPES.getOrDefault(typeWithBindingName, typeWithBindingName);
}
+
+ String valueSetUrl = element.getBinding().getValueSet().getReference().getUri().getValue();
+ if (!valueSetUrl.isEmpty()) {
+ if (valueSetTypesByCodeReference.containsKey(valueSetUrl)) {
+ return valueSetTypesByCodeReference.get(valueSetUrl).getName();
+ }
+ // TODO(nickgeorge): Throw an error in strict mode.
+ System.out.println(
+ "Unhandled ValueSet reference on " + element.getId().getValue() + ": " + valueSetUrl);
+ }
}
return normalizedFhirTypeName;
}
@@ -922,8 +983,7 @@ private String getBindingName(ElementDefinition element) {
}
if (element.getBinding().getStrength().getValue().equals(BindingStrengthCode.Value.REQUIRED)
&& bindingName == null) {
- System.out.println(
- "Required binding found, but category is unknown: " + element.getBinding());
+ logDiscrepancies("Required binding found, but category is unknown: " + element.getBinding());
}
return bindingName;
}
@@ -956,13 +1016,12 @@ private FieldDescriptorProto buildField(
if (isExternalExtension(element)) {
// This is an extension with a type defined by an external profile.
// If we know about it, we'll inline a field for it.
- // Otherwise, we'll return null here, which means it'll get ignored
String profileUrl = element.getType(0).getProfile().getValue();
StructureDefinitionData profileData = structDefDataByUrl.get(profileUrl);
if (profileData == null) {
- // We don't know about this extension.
- // Return null, indicating that we shouldn't generate a proto field for this extension.
- return null;
+ // Unrecognized url.
+ // TODO(nickgeorge): add a lenient mode that just ignores this extension.
+ throw new IllegalArgumentException("Encountered unknown extension url: " + profileUrl);
}
jsonFieldNameString = resolveSliceNameConflicts(jsonFieldNameString, element, elementList);
options.setExtension(
@@ -1023,14 +1082,16 @@ private FieldDescriptorProto buildField(
options.setExtension(Annotations.isChoiceType, true);
}
- if (isContainer(element)
- || isChoiceType(element)
- || isChoiceTypeExtension(element, elementList)
- || isComplexInternalExtension(element, elementList)) {
+ if (isLocalType(element, elementList)) {
// Field types that require internally-generated submessages are defined in the local package.
fieldPackage = packageName;
}
+ String valueSetUrl = element.getBinding().getValueSet().getReference().getUri().getValue();
+ if (!valueSetUrl.isEmpty() && valueSetTypesByCodeReference.containsKey(valueSetUrl)) {
+ fieldPackage = valueSetTypesByCodeReference.get(valueSetUrl).getFile().getPackage();
+ }
+
return buildFieldInternal(
jsonFieldNameString,
getFieldType(element, elementList),
@@ -1051,6 +1112,23 @@ private FieldDescriptorProto.Label getFieldSize(ElementDefinition element) {
: FieldDescriptorProto.Label.LABEL_REPEATED;
}
+ private boolean isLocalType(ElementDefinition element, List<ElementDefinition> elementList) {
+ if (isContainer(element)
+ || isChoiceType(element)
+ || isChoiceTypeExtension(element, elementList)
+ || isComplexInternalExtension(element, elementList)) {
+ return true;
+ }
+ // It could still be a content reference to a local type.
+ // TODO(nickgeorge): more sophisticated logic. This wouldn't handle references to fields in
+ // other elements in a non-core package
+ if (!element.hasContentReference()) {
+ return false;
+ }
+ String rootType = Splitter.on(".").limit(2).splitToList(element.getId().getValue()).get(0);
+ return element.getContentReference().getValue().startsWith("#" + rootType);
+ }
+
/**
* Returns the field name that should be used for an element, in jsonCase. If element is a slice,
* uses that slice name. Since the id token slice name is all-lowercase, uses the SliceName field.
@@ -1066,7 +1144,7 @@ private String getJsonNameForElement(ElementDefinition element) {
String sliceName = element.getSliceName().getValue();
if (!lastToken.slicename.equals(sliceName.toLowerCase())) {
// TODO(nickgeorge): pull this into a common validator that runs ealier.
- System.out.println(
+ logDiscrepancies(
"Warning: Inconsistent slice name for element with id "
+ element.getId().getValue()
+ " and slicename "
@@ -1197,7 +1275,7 @@ private FieldDescriptorProto.Builder buildFieldInternal(
List<String> fieldTypeParts = new ArrayList<>();
for (String part : Splitter.on('.').split(fieldType)) {
- fieldTypeParts.add(toFieldTypeCase(part));
+ fieldTypeParts.add(part);
}
builder.setTypeName("." + fieldPackage + "." + Joiner.on('.').join(fieldTypeParts));
@@ -1309,8 +1387,8 @@ && lastIdToken(element.getId().getValue()).slicename != null
&& !element.getType(0).hasProfile());
}
- // Returns the value type of a simple extension as a string.
- private String getSimpleExtensionDefinitionType(StructureDefinition def) {
+ // Returns the QualifiedType (type + package) of a simple extension as a string.
+ private QualifiedType getSimpleExtensionDefinitionType(StructureDefinition def) {
if (!isExtensionProfile(def)) {
throw new IllegalArgumentException(
"StructureDefinition is not an extension profile: " + def.getId().getValue());
@@ -1321,7 +1399,7 @@ private String getSimpleExtensionDefinitionType(StructureDefinition def) {
return getSimpleInternalExtensionType(element, elementList);
}
if (isChoiceTypeExtension(element, elementList)) {
- return getTypeName(def) + ".Value";
+ return new QualifiedType(getTypeName(def) + ".Value", packageName);
}
throw new IllegalArgumentException(
"StructureDefinition is not a simple extension: " + def.getId().getValue());
@@ -1338,7 +1416,7 @@ private static ElementDefinition getExtensionValueElement(
"Element " + element.getId().getValue() + " has no value element");
}
- private String getSimpleInternalExtensionType(
+ private QualifiedType getSimpleInternalExtensionType(
ElementDefinition element, List<ElementDefinition> elementList) {
ElementDefinition valueElement = getExtensionValueElement(element, elementList);
@@ -1348,10 +1426,20 @@ private String getSimpleInternalExtensionType(
}
if (getDistinctTypeCount(valueElement) == 1) {
// This is a primitive extension with a single type
- return toFieldTypeCase(valueElement.getType(0).getCode().getValue());
+ String rawType = valueElement.getType(0).getCode().getValue();
+
+ if (rawType.equals("code") && valueElement.getBinding().getValueSet().hasReference()) {
+ String valueSetUrl =
+ valueElement.getBinding().getValueSet().getReference().getUri().getValue();
+ Descriptor valueSetType = valueSetTypesByCodeReference.get(valueSetUrl);
+ if (valueSetType != null) {
+ return new QualifiedType(valueSetType.getName(), valueSetType.getFile().getPackage());
+ }
+ }
+ return new QualifiedType(toFieldTypeCase(rawType), CORE_FHIR_PACKAGE);
}
// This is a choice-type extension that will be inlined as a message.
- return getContainerType(element, elementList);
+ return new QualifiedType(getContainerType(element, elementList), packageName);
}
private static long getDistinctTypeCount(ElementDefinition element) {
@@ -1392,13 +1480,13 @@ private boolean isSingleTypedExtensionDefinition(StructureDefinition def) {
/**
* Returns the type that should be used for an internal extension. If this is a simple internal
- * extension, uses the appropriate primitive type. If this is a complex interanl extension, treats
+ * extension, uses the appropriate primitive type. If this is a complex internal extension, treats
* the element like a backbone container.
*/
private String getInternalExtensionType(
ElementDefinition element, List<ElementDefinition> elementList) {
return isSimpleInternalExtension(element, elementList)
- ? getSimpleInternalExtensionType(element, elementList)
+ ? getSimpleInternalExtensionType(element, elementList).type
: getContainerType(element, elementList);
}
diff --git a/java/src/test/java/com/google/fhir/stu3/ProtoGeneratorTest.java b/java/src/test/java/com/google/fhir/stu3/ProtoGeneratorTest.java
index 7ba03a3674..74c7a55475 100644
--- a/java/src/test/java/com/google/fhir/stu3/ProtoGeneratorTest.java
+++ b/java/src/test/java/com/google/fhir/stu3/ProtoGeneratorTest.java
@@ -25,13 +25,9 @@
import com.google.protobuf.ExtensionRegistry;
import com.google.protobuf.TextFormat;
import java.io.File;
-import java.io.FilenameFilter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.junit.Before;
@@ -104,29 +100,32 @@ private void verifyCompiledDescriptor(Descriptor descriptor) throws IOException
assertThat(descriptor.toProto()).isEqualTo(golden);
}
+ private void addPackage(
+ Map<StructureDefinition, String> knownStructDefs, String dir, String protoPackage)
+ throws IOException {
+ // NOTE: consentdirective is omitted because it is malformed. See:
+ // https://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_item_id=19263
+ for (File file :
+ new File(runfiles.rlocation("com_google_fhir/testdata/stu3/" + dir))
+ .listFiles(
+ (listDir, name) ->
+ name.endsWith(".json") && !name.endsWith("consentdirective.profile.json"))) {
+ String json = Files.asCharSource(file, StandardCharsets.UTF_8).read();
+ StructureDefinition.Builder builder = StructureDefinition.newBuilder();
+ jsonParser.merge(json, builder);
+ knownStructDefs.put(builder.build(), protoPackage);
+ }
+ }
+
public Map<StructureDefinition, String> getKnownStructDefs() throws IOException {
if (knownStructDefs != null) {
return knownStructDefs;
}
- // Note: consentdirective is malformed.
- FilenameFilter jsonFilter =
- (dir, name) -> name.endsWith(".json") && !name.endsWith("consentdirective.profile.json");
- List<File> structDefs = new ArrayList<>();
- Collections.addAll(
- structDefs,
- new File(runfiles.rlocation("com_google_fhir/testdata/stu3/structure_definitions"))
- .listFiles(jsonFilter));
- Collections.addAll(
- structDefs,
- new File(runfiles.rlocation("com_google_fhir/testdata/stu3/extensions"))
- .listFiles(jsonFilter));
knownStructDefs = new HashMap<>();
- for (File file : structDefs) {
- String json = Files.asCharSource(file, StandardCharsets.UTF_8).read();
- StructureDefinition.Builder builder = StructureDefinition.newBuilder();
- jsonParser.merge(json, builder);
- knownStructDefs.put(builder.build(), "google.fhir.stu3.proto");
- }
+ addPackage(knownStructDefs, "structure_definitions", "google.fhir.stu3.proto");
+ addPackage(knownStructDefs, "extensions", "google.fhir.stu3.proto");
+ addPackage(knownStructDefs, "google", "google.fhir.stu3.google");
+ addPackage(knownStructDefs, "uscore", "google.fhir.stu3.uscore");
return knownStructDefs;
}
diff --git a/proto/stu3/BUILD b/proto/stu3/BUILD
index 3c872addf6..25401e4939 100644
--- a/proto/stu3/BUILD
+++ b/proto/stu3/BUILD
@@ -82,6 +82,33 @@ fhir_proto_library(
proto_library_prefix = "profiles",
)
+fhir_proto_library(
+ srcs = [
+ "uscore.proto",
+ ],
+ proto_deps = [
+ ":annotations_proto",
+ ":codes_proto",
+ ":datatypes_proto",
+ ":extensions_proto",
+ ":metadatatypes_proto",
+ ":resources_proto",
+ ":uscore_codes_proto",
+ ],
+ proto_library_prefix = "uscore",
+)
+
+fhir_proto_library(
+ srcs = [
+ "uscore_codes.proto",
+ ],
+ proto_deps = [
+ ":annotations_proto",
+ ":datatypes_proto",
+ ],
+ proto_library_prefix = "uscore_codes",
+)
+
fhir_proto_library(
srcs = [
"version_config.proto",
diff --git a/proto/stu3/codes.proto b/proto/stu3/codes.proto
index 25b6a65142..5edf40bacd 100644
--- a/proto/stu3/codes.proto
+++ b/proto/stu3/codes.proto
@@ -2578,9 +2578,14 @@ message FHIRDefinedTypeCode {
// Either a resource or a data type, extended to allow arbitrary other codes
// representing FHIR resources. See http://hl7.org/fhir/ValueSet/defined-types
+// Due to
+// https://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_item_id=15559
+// there are two value sets with valueset url:
+// http://hl7.org/fhir/ValueSet/defined-types.
+// Fragment added here to disambiguate.
message FHIRDefinedTypeExtCode {
option (structure_definition_kind) = KIND_PRIMITIVE_TYPE;
- option (fhir_valueset_url) = "http://hl7.org/fhir/ValueSet/defined-types";
+ option (fhir_valueset_url) = "http://hl7.org/fhir/ValueSet/defined-types#ext";
// Primitive value for code
string value = 1;
diff --git a/proto/stu3/extensions.proto b/proto/stu3/extensions.proto
index d8e6014ae5..88a35f540b 100644
--- a/proto/stu3/extensions.proto
+++ b/proto/stu3/extensions.proto
@@ -2388,7 +2388,7 @@ message GoalAcceptance {
Reference individual = 4 [(validation_requirement) = REQUIRED_BY_FHIR];
// agree | disagree | pending
- Code status = 5;
+ GoalAcceptanceStatusCode status = 5;
// Priority of goal for individual
CodeableConcept priority = 6;
diff --git a/proto/stu3/uscore.proto b/proto/stu3/uscore.proto
new file mode 100644
index 0000000000..15d0ca524f
--- /dev/null
+++ b/proto/stu3/uscore.proto
@@ -0,0 +1,2768 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.fhir.stu3.uscore;
+
+import "proto/stu3/annotations.proto";
+import "proto/stu3/codes.proto";
+import "proto/stu3/datatypes.proto";
+import "proto/stu3/resources.proto";
+import "proto/stu3/metadatatypes.proto";
+import "proto/stu3/uscore_codes.proto";
+
+option java_multiple_files = true;
+option java_package = "com.google.fhir.stu3.uscore";
+
+// Auto-generated from StructureDefinition for US Core AllergyIntolerance
+// Profile. US Core Allergies Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
+message UsCoreAllergyintolerance {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/AllergyIntolerance";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External ids for this item
+ repeated proto.Identifier identifier = 9;
+
+ // active | inactive | resolved
+ proto.AllergyIntoleranceClinicalStatusCode clinical_status = 10;
+
+ // unconfirmed | confirmed | refuted | entered-in-error
+ proto.AllergyIntoleranceVerificationStatusCode verification_status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // allergy | intolerance - Underlying mechanism (if known)
+ proto.AllergyIntoleranceTypeCode type = 12;
+
+ // food | medication | environment | biologic
+ repeated proto.AllergyIntoleranceCategoryCode category = 13;
+
+ // low | high | unable-to-assess
+ proto.AllergyIntoleranceCriticalityCode criticality = 14;
+
+ // Code that identifies the allergy or intolerance
+ proto.CodeableConcept code = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who the sensitivity is for
+ proto.Reference patient = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // When allergy or intolerance was identified
+ message Onset {
+ oneof onset {
+ proto.DateTime date_time = 1;
+ proto.Age age = 2;
+ proto.Period period = 3;
+ proto.Range range = 4;
+ proto.String string_value = 5 [json_name = "string"];
+ }
+ }
+ Onset onset = 17 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date record was believed accurate
+ proto.DateTime asserted_date = 18;
+
+ // Who recorded the sensitivity
+ proto.Reference recorder = 19;
+
+ // Source of the information about the allergy
+ proto.Reference asserter = 20;
+
+ // Date(/time) of last known occurrence of a reaction
+ proto.DateTime last_occurrence = 21;
+
+ // Additional text not captured in other fields
+ repeated proto.Annotation note = 22;
+
+ // Adverse Reaction Events linked to exposure to substance
+ message Reaction {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Specific substance or pharmaceutical product considered to be responsible
+ // for event
+ proto.CodeableConcept substance = 4;
+
+ // Clinical symptoms/signs associated with the Event
+ repeated proto.CodeableConcept manifestation = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Description of the event as a whole
+ proto.String description = 6;
+
+ // Date(/time) when manifestations showed
+ proto.DateTime onset = 7;
+
+ // mild | moderate | severe (of event as a whole)
+ proto.AllergyIntoleranceSeverityCode severity = 8;
+
+ // How the subject was exposed to the substance
+ proto.CodeableConcept exposure_route = 9;
+
+ // Text about event not captured in other fields
+ repeated proto.Annotation note = 10;
+ }
+ repeated Reaction reaction = 23;
+}
+
+// Auto-generated from StructureDefinition for US Core Birth Sex Extension.
+// Extension.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
+message PatientUSCoreBirthSexExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Value of extension
+ UsCoreBirthSexCode value_code = 3;
+}
+
+// Auto-generated from StructureDefinition for US Core CarePlan Profile.
+// US Core CarePlan Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan
+message UsCoreCareplan {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/CarePlan";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this plan
+ repeated proto.Identifier identifier = 9;
+
+ // Protocol or definition
+ repeated proto.Reference definition = 10;
+
+ // Fulfills care plan
+ repeated proto.Reference based_on = 11;
+
+ // CarePlan replaced by this CarePlan
+ repeated proto.Reference replaces = 12;
+
+ // Part of referenced CarePlan
+ repeated proto.Reference part_of = 13;
+
+ // draft | active | suspended | completed | entered-in-error | cancelled |
+ // unknown
+ proto.CarePlanStatusCode status = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // proposal | plan | order | option
+ proto.CarePlanIntentCode intent = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of plan
+ repeated proto.CodeableConcept category = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Human-friendly name for the CarePlan
+ proto.String title = 17;
+
+ // Summary of nature of plan
+ proto.String description = 18;
+
+ // Who care plan is for
+ proto.Reference subject = 19
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Created in context of
+ proto.Reference context = 20;
+
+ // Time period plan covers
+ proto.Period period = 21;
+
+ // Who is responsible for contents of the plan
+ repeated proto.Reference author = 22;
+
+ // Who's involved in plan?
+ repeated proto.Reference care_team = 23;
+
+ // Health issues this plan addresses
+ repeated proto.Reference addresses = 24;
+
+ // Information considered as part of plan
+ repeated proto.Reference supporting_info = 25;
+
+ // Desired outcome of plan
+ repeated proto.Reference goal = 26;
+
+ // Action to occur as part of plan
+ message Activity {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Results of the activity
+ repeated proto.CodeableConcept outcome_codeable_concept = 4;
+
+ // Appointment, Encounter, Procedure, etc.
+ repeated proto.Reference outcome_reference = 5;
+
+ // Comments about the activity status/progress
+ repeated proto.Annotation progress = 6;
+
+ // Activity details defined in specific resource
+ proto.Reference reference = 7;
+
+ // In-line definition of activity
+ message Detail {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // diet | drug | encounter | observation | procedure | supply | other
+ proto.CodeableConcept category = 4;
+
+ // Protocol or definition
+ proto.Reference definition = 5;
+
+ // Detail type of activity
+ proto.CodeableConcept code = 6;
+
+ // Why activity should be done or why activity was prohibited
+ repeated proto.CodeableConcept reason_code = 7;
+
+ // Condition triggering need for activity
+ repeated proto.Reference reason_reference = 8;
+
+ // Goals this activity relates to
+ repeated proto.Reference goal = 9;
+
+ // not-started | scheduled | in-progress | on-hold | completed | cancelled
+ // | unknown
+ proto.CarePlanActivityStatusCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Reason for current status
+ proto.String status_reason = 11;
+
+ // Do NOT do
+ proto.Boolean prohibited = 12;
+
+ // When activity is to occur
+ message Scheduled {
+ oneof scheduled {
+ proto.Timing timing = 1;
+ proto.Period period = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ }
+ }
+ Scheduled scheduled = 13
+ [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Where it should happen
+ proto.Reference location = 14;
+
+ // Who will be responsible?
+ repeated proto.Reference performer = 15;
+
+ // What is to be administered/supplied
+ message Product {
+ oneof product {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Product product = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // How to consume/day?
+ proto.SimpleQuantity daily_amount = 17;
+
+ // How much to administer/supply/consume
+ proto.SimpleQuantity quantity = 18;
+
+ // Extra info describing activity to perform
+ proto.String description = 19;
+ }
+ Detail detail = 8;
+ }
+ repeated Activity activity = 27;
+
+ // Comments about the plan
+ repeated proto.Annotation note = 28;
+}
+
+// Auto-generated from StructureDefinition for US Core CareTeam Profile.
+// US Core CareTeam Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam
+message UsCoreCareteam {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/CareTeam";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this team
+ repeated proto.Identifier identifier = 9;
+
+ // proposed | active | suspended | inactive | entered-in-error
+ proto.CareTeamStatusCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of team
+ repeated proto.CodeableConcept category = 11;
+
+ // Name of the team, such as crisis assessment team
+ proto.String name = 12;
+
+ // Who care team is for
+ proto.Reference subject = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter or episode associated with CareTeam
+ proto.Reference context = 14;
+
+ // Time period team covers
+ proto.Period period = 15;
+
+ // Members of the team
+ message Participant {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of involvement
+ proto.CodeableConcept role = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who is involved
+ proto.Reference member = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization of the practitioner
+ proto.Reference on_behalf_of = 6;
+
+ // Time period of participant
+ proto.Period period = 7;
+ }
+ repeated Participant participant = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Why the care team exists
+ repeated proto.CodeableConcept reason_code = 17;
+
+ // Why the care team exists
+ repeated proto.Reference reason_reference = 18;
+
+ // Organization responsible for the care team
+ repeated proto.Reference managing_organization = 19;
+
+ // Comments made about the CareTeam
+ repeated proto.Annotation note = 20;
+}
+
+// Auto-generated from StructureDefinition for US Core Condition (a.k.a
+// Problem) Profile. US Core Condition Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
+message UsCoreCondition {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Condition";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this condition
+ repeated proto.Identifier identifier = 9;
+
+ // active | recurrence | inactive | remission | resolved
+ proto.ConditionClinicalStatusCodesCode clinical_status = 10;
+
+ // provisional | differential | confirmed | refuted | entered-in-error |
+ // unknown
+ proto.ConditionVerificationStatusCode verification_status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // problem-list-item | encounter-diagnosis
+ repeated proto.CodeableConcept category = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Subjective severity of condition
+ proto.CodeableConcept severity = 13;
+
+ // Identification of the condition, problem or diagnosis
+ proto.CodeableConcept code = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Anatomical location, if relevant
+ repeated proto.CodeableConcept body_site = 15;
+
+ // Who has the condition?
+ proto.Reference subject = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter or episode when condition first asserted
+ proto.Reference context = 17;
+
+ // Estimated or actual date, date-time, or age
+ message Onset {
+ oneof onset {
+ proto.DateTime date_time = 1;
+ proto.Age age = 2;
+ proto.Period period = 3;
+ proto.Range range = 4;
+ proto.String string_value = 5 [json_name = "string"];
+ }
+ }
+ Onset onset = 18 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // If/when in resolution/remission
+ message Abatement {
+ oneof abatement {
+ proto.DateTime date_time = 1;
+ proto.Age age = 2;
+ proto.Boolean boolean = 3;
+ proto.Period period = 4;
+ proto.Range range = 5;
+ proto.String string_value = 6 [json_name = "string"];
+ }
+ }
+ Abatement abatement = 19 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date record was believed accurate
+ proto.DateTime asserted_date = 20;
+
+ // Person who asserts this condition
+ proto.Reference asserter = 21;
+
+ // Stage/grade, usually assessed formally
+ message Stage {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Simple summary (disease specific)
+ proto.CodeableConcept summary = 4;
+
+ // Formal record of assessment
+ repeated proto.Reference assessment = 5;
+ }
+ Stage stage = 22;
+
+ // Supporting evidence
+ message Evidence {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Manifestation/symptom
+ repeated proto.CodeableConcept code = 4;
+
+ // Supporting information found elsewhere
+ repeated proto.Reference detail = 5;
+ }
+ repeated Evidence evidence = 23;
+
+ // Additional information about the Condition
+ repeated proto.Annotation note = 24;
+}
+
+// Auto-generated from StructureDefinition for US Core Device Profile.
+// US Core Implanted Device Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-device
+message UsCoreDevice {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Device";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-device";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Instance identifier
+ repeated proto.Identifier identifier = 9;
+
+ // Unique Device Identifier (UDI) Barcode string
+ message Udi {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Mandatory fixed portion of UDI
+ proto.String device_identifier = 4;
+
+ // Device Name as appears on UDI label
+ proto.String name = 5;
+
+ // Regional UDI authority
+ proto.Uri jurisdiction = 6;
+
+ // UDI Human Readable Barcode String
+ proto.String carrier_h_r_f = 7;
+
+ // UDI Machine Readable Barcode String
+ proto.Base64Binary carrier_a_i_d_c = 8;
+
+ // UDI Issuing Organization
+ proto.Uri issuer = 9;
+
+ // barcode | rfid | manual +
+ proto.UDIEntryTypeCode entry_type = 10;
+ }
+ Udi udi = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // active | inactive | entered-in-error | unknown
+ proto.FHIRDeviceStatusCode status = 11;
+
+ // What kind of device this is
+ proto.CodeableConcept type = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Lot number of manufacture
+ proto.String lot_number = 13;
+
+ // Name of device manufacturer
+ proto.String manufacturer = 14;
+
+ // Date when the device was made
+ proto.DateTime manufacture_date = 15;
+
+ // Date and time of expiry of this device (if applicable)
+ proto.DateTime expiration_date = 16;
+
+ // Model id assigned by the manufacturer
+ proto.String model = 17;
+
+ // Version number (i.e. software)
+ proto.String version = 18;
+
+ // Patient to whom Device is affixed
+ proto.Reference patient = 19
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization responsible for device
+ proto.Reference owner = 20;
+
+ // Details for human/organization for support
+ repeated proto.ContactPoint contact = 21;
+
+ // Where the resource is found
+ proto.Reference location = 22;
+
+ // Network address to contact device
+ proto.Uri url = 23;
+
+ // Device notes and comments
+ repeated proto.Annotation note = 24;
+
+ // Safety Characteristics of Device
+ repeated proto.CodeableConcept safety = 25;
+}
+
+// Auto-generated from StructureDefinition for US Core DiagnosticReport
+// Profile. US Core Diagnostic Report Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport
+message UsCoreDiagnosticreport {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/DiagnosticReport";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business identifier for report
+ repeated proto.Identifier identifier = 9;
+
+ // What was requested
+ repeated proto.Reference based_on = 10;
+
+ // registered | partial | preliminary | final +
+ proto.DiagnosticReportStatusCode status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Service category
+ proto.CodeableConcept category = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // US Core Laboratory Report Order Code
+ proto.CodeableConcept code = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // The subject of the report - usually, but not always, the patient
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Health care event when test ordered
+ proto.Reference context = 15;
+
+ // Specimen Collection Datetime or Period
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // DateTime this version was released
+ proto.Instant issued = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Participants in producing the report
+ message Performer {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of performer
+ proto.CodeableConcept role = 4;
+
+ // Practitioner or Organization participant
+ proto.Reference actor = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Performer performer = 18;
+
+ // Specimens this report is based on
+ repeated proto.Reference specimen = 19;
+
+ // Observations - simple, or complex nested groups
+ repeated proto.Reference result = 20;
+
+ // Reference to full details of imaging associated with the diagnostic report
+ repeated proto.Reference imaging_study = 21;
+
+ // Key images associated with this report
+ message Image {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Comment about the image (e.g. explanation)
+ proto.String comment = 4;
+
+ // Reference to the image source
+ proto.Reference link = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Image image = 22;
+
+ // Clinical Interpretation of test results
+ proto.String conclusion = 23;
+
+ // Codes for the conclusion
+ repeated proto.CodeableConcept coded_diagnosis = 24;
+
+ // Entire report as issued
+ repeated proto.Attachment presented_form = 25;
+}
+
+// Auto-generated from StructureDefinition for UsCoreDirect.
+// Email is a "direct" email.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct
+message ContactPointUsCoreDirect {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Value of extension
+ proto.Boolean value_boolean = 3;
+}
+
+// Auto-generated from StructureDefinition for US Core ethnicity Extension.
+// US Core ethnicity Extension.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
+message PatientUSCoreEthnicityExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Extension
+ repeated proto.Extension extension = 2;
+
+ // Hispanic or Latino|Not Hispanic or Latino
+ proto.Coding omb_category = 4;
+
+ // Extended ethnicity codes
+ repeated proto.Coding detailed = 5;
+
+ // ethnicity Text
+ proto.String text = 6
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+}
+
+// Auto-generated from StructureDefinition for US Core Goal Profile.
+// US Core Goal Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
+message UsCoreGoal {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Goal";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this goal
+ repeated proto.Identifier identifier = 9;
+
+ // proposed | accepted | planned | in-progress | on-target | ahead-of-target |
+ // behind-target | sustaining | achieved | on-hold | cancelled |
+ // entered-in-error | rejected
+ proto.GoalStatusCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // E.g. Treatment, dietary, behavioral, etc.
+ repeated proto.CodeableConcept category = 11;
+
+ // high-priority | medium-priority | low-priority
+ proto.CodeableConcept priority = 12;
+
+ // Code or text describing goal
+ proto.CodeableConcept description = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who this goal is intended for
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // When goal pursuit begins
+ message Start {
+ oneof start {
+ proto.Date date = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ }
+ }
+ Start start = 15 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Target outcome for the goal
+ message Target {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The parameter whose value is being tracked
+ proto.CodeableConcept measure = 4;
+
+ // The target value to be achieved
+ message Detail {
+ oneof detail {
+ proto.Quantity quantity = 1;
+ proto.Range range = 2;
+ proto.CodeableConcept codeable_concept = 3;
+ }
+ }
+ Detail detail = 5 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Reach goal on or before
+ message Due {
+ oneof due {
+ proto.Date date = 1;
+ proto.Duration duration = 2;
+ }
+ }
+ Due due = 6 [(.google.fhir.stu3.proto.is_choice_type) = true];
+ }
+ Target target = 16;
+
+ // When goal status took effect
+ proto.Date status_date = 17;
+
+ // Reason for current status
+ proto.String status_reason = 18;
+
+ // Who's responsible for creating Goal?
+ proto.Reference expressed_by = 19;
+
+ // Issues addressed by this goal
+ repeated proto.Reference addresses = 20;
+
+ // Comments about the goal
+ repeated proto.Annotation note = 21;
+
+ // What result was achieved regarding the goal?
+ repeated proto.CodeableConcept outcome_code = 22;
+
+ // Observation that resulted from goal
+ repeated proto.Reference outcome_reference = 23;
+}
+
+// Auto-generated from StructureDefinition for US Core Immunization Profile.
+// US Core Immunization Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization
+message UsCoreImmunization {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Immunization";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business identifier
+ repeated proto.Identifier identifier = 9;
+
+ // completed | entered-in-error
+ proto.ImmunizationStatusCodesCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Flag for whether immunization was given
+ proto.Boolean not_given = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Vaccine Product Type (bind to CVX)
+ proto.CodeableConcept vaccine_code = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who was immunized
+ proto.Reference patient = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter administered as part of
+ proto.Reference encounter = 14;
+
+ // Vaccination administration date
+ proto.DateTime date = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Indicates context the data was recorded in
+ proto.Boolean primary_source = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Indicates the source of a secondarily reported record
+ proto.CodeableConcept report_origin = 17;
+
+ // Where vaccination occurred
+ proto.Reference location = 18;
+
+ // Vaccine manufacturer
+ proto.Reference manufacturer = 19;
+
+ // Vaccine lot number
+ proto.String lot_number = 20;
+
+ // Vaccine expiration date
+ proto.Date expiration_date = 21;
+
+ // Body site vaccine was administered
+ proto.CodeableConcept site = 22;
+
+ // How vaccine entered body
+ proto.CodeableConcept route = 23;
+
+ // Amount of vaccine administered
+ proto.SimpleQuantity dose_quantity = 24;
+
+ // Who performed event
+ message Practitioner {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // What type of performance was done
+ proto.CodeableConcept role = 4;
+
+ // Individual who was performing
+ proto.Reference actor = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Practitioner practitioner = 25;
+
+ // Vaccination notes
+ repeated proto.Annotation note = 26;
+
+ // Administration/non-administration reasons
+ message Explanation {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Why immunization occurred
+ repeated proto.CodeableConcept reason = 4;
+
+ // Why immunization did not occur
+ repeated proto.CodeableConcept reason_not_given = 5;
+ }
+ Explanation explanation = 27;
+
+ // Details of a reaction that follows immunization
+ message Reaction {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // When reaction started
+ proto.DateTime date = 4;
+
+ // Additional information on reaction
+ proto.Reference detail = 5;
+
+ // Indicates self-reported reaction
+ proto.Boolean reported = 6;
+ }
+ repeated Reaction reaction = 28;
+
+ // What protocol was followed
+ message VaccinationProtocol {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Dose number within series
+ proto.PositiveInt dose_sequence = 4;
+
+ // Details of vaccine protocol
+ proto.String description = 5;
+
+ // Who is responsible for protocol
+ proto.Reference authority = 6;
+
+ // Name of vaccine series
+ proto.String series = 7;
+
+ // Recommended number of doses for immunity
+ proto.PositiveInt series_doses = 8;
+
+ // Disease immunized against
+ repeated proto.CodeableConcept target_disease = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Indicates if dose counts towards immunity
+ proto.CodeableConcept dose_status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Why dose does (not) count
+ proto.CodeableConcept dose_status_reason = 11;
+ }
+ repeated VaccinationProtocol vaccination_protocol = 29;
+}
+
+// Auto-generated from StructureDefinition for US Core Location Profile.
+// US Core Location Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-location
+message UsCoreLocation {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Location";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-location";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Unique code or number identifying the location to its users
+ repeated proto.Identifier identifier = 9;
+
+ // active | suspended | inactive
+ proto.LocationStatusCode status = 10;
+
+ // The Operational status of the location (typically only for a bed/room)
+ proto.Coding operational_status = 11;
+
+ // Name of the location as used by humans
+ proto.String name = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A list of alternate names that the location is known as, or was known as in
+ // the past
+ repeated proto.String alias = 13;
+
+ // Additional details about the location that could be displayed as further
+ // information to identify the location beyond its name
+ proto.String description = 14;
+
+ // instance | kind
+ proto.LocationModeCode mode = 15;
+
+ // Type of function performed
+ proto.CodeableConcept type = 16;
+
+ // Contact details of the location
+ repeated proto.ContactPoint telecom = 17;
+
+ // Physical location
+ proto.Address address = 18;
+
+ // Physical form of the location
+ proto.CodeableConcept physical_type = 19;
+
+ // The absolute geographic location
+ message Position {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Longitude with WGS84 datum
+ proto.Decimal longitude = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Latitude with WGS84 datum
+ proto.Decimal latitude = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Altitude with WGS84 datum
+ proto.Decimal altitude = 6;
+ }
+ Position position = 20;
+
+ // Organization responsible for provisioning and upkeep
+ proto.Reference managing_organization = 21;
+
+ // Another Location this one is physically part of
+ proto.Reference part_of = 22;
+
+ // Technical endpoints providing access to services operated for the location
+ repeated proto.Reference endpoint = 23;
+}
+
+// Auto-generated from StructureDefinition for US Core Medication Profile.
+// US Core Medication Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication
+message UsCoreMedication {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Medication";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Codes that identify this medication
+ proto.CodeableConcept code = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // active | inactive | entered-in-error
+ proto.MedicationStatusCode status = 10;
+
+ // True if a brand
+ proto.Boolean is_brand = 11;
+
+ // True if medication does not require a prescription
+ proto.Boolean is_over_the_counter = 12;
+
+ // Manufacturer of the item
+ proto.Reference manufacturer = 13;
+
+ // powder | tablets | capsule +
+ proto.CodeableConcept form = 14;
+
+ // Active or inactive ingredient
+ message Ingredient {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The product contained
+ message Item {
+ oneof item {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Item item = 4 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Active ingredient indicator
+ proto.Boolean is_active = 5;
+
+ // Quantity of ingredient present
+ proto.Ratio amount = 6;
+ }
+ repeated Ingredient ingredient = 15;
+
+ // Details about packaged medications
+ message Package {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // E.g. box, vial, blister-pack
+ proto.CodeableConcept container = 4;
+
+ // What is in the package
+ message Content {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The item in the package
+ message Item {
+ oneof item {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Item item = 4 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Quantity present in the package
+ proto.SimpleQuantity amount = 5;
+ }
+ repeated Content content = 5;
+
+ // Identifies a single production run
+ message Batch {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Identifier assigned to batch
+ proto.String lot_number = 4;
+
+ // When batch will expire
+ proto.DateTime expiration_date = 5;
+ }
+ repeated Batch batch = 6;
+ }
+ Package package_value = 16 [json_name = "package"];
+
+ // Picture of the medication
+ repeated proto.Attachment image = 17;
+}
+
+// Auto-generated from StructureDefinition for US Core MedicationRequest
+// Profile. US Core Medication Request Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest
+message UsCoreMedicationrequest {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/MedicationRequest";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External ids for this request
+ repeated proto.Identifier identifier = 9;
+
+ // Protocol or definition
+ repeated proto.Reference definition = 10;
+
+ // What request fulfills
+ repeated proto.Reference based_on = 11;
+
+ // Composite request this is part of
+ proto.Identifier group_identifier = 12;
+
+ // active | on-hold | cancelled | completed | entered-in-error | stopped |
+ // draft | unknown
+ proto.MedicationRequestStatusCode status = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // proposal | plan | order | instance-order
+ proto.MedicationRequestIntentCode intent = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of medication usage
+ proto.CodeableConcept category = 15;
+
+ // routine | urgent | stat | asap
+ proto.MedicationRequestPriorityCode priority = 16;
+
+ // Medication to be taken
+ message Medication {
+ oneof medication {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Medication medication = 17 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Who or group medication request is for
+ proto.Reference subject = 18
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Created during encounter/admission/stay
+ proto.Reference context = 19;
+
+ // Information to support ordering of the medication
+ repeated proto.Reference supporting_information = 20;
+
+ // When request was initially authored
+ proto.DateTime authored_on = 21
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who/What requested the Request
+ message Requester {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Who ordered the initial medication(s)
+ proto.Reference agent = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization agent is acting for
+ proto.Reference on_behalf_of = 5;
+ }
+ Requester requester = 22
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Person who entered the request
+ proto.Reference recorder = 23;
+
+ // Reason or indication for writing the prescription
+ repeated proto.CodeableConcept reason_code = 24;
+
+ // Condition or Observation that supports why the prescription is being
+ // written
+ repeated proto.Reference reason_reference = 25;
+
+ // Information about the prescription
+ repeated proto.Annotation note = 26;
+
+ // How the medication should be taken
+ repeated proto.Dosage dosage_instruction = 27;
+
+ // Medication supply authorization
+ message DispenseRequest {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Time period supply is authorized for
+ proto.Period validity_period = 4;
+
+ // Number of refills authorized
+ proto.PositiveInt number_of_repeats_allowed = 5;
+
+ // Amount of medication to supply per dispense
+ proto.SimpleQuantity quantity = 6;
+
+ // Number of days supply per dispense
+ proto.Duration expected_supply_duration = 7;
+
+ // Intended dispenser
+ proto.Reference performer = 8;
+ }
+ DispenseRequest dispense_request = 28;
+
+ // Any restrictions on medication substitution
+ message Substitution {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Whether substitution is allowed or not
+ proto.Boolean allowed = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Why should (not) substitution be made
+ proto.CodeableConcept reason = 5;
+ }
+ Substitution substitution = 29;
+
+ // An order/prescription that is being replaced
+ proto.Reference prior_prescription = 30;
+
+ // Clinical Issue with action
+ repeated proto.Reference detected_issue = 31;
+
+ // A list of events of interest in the lifecycle
+ repeated proto.Reference event_history = 32;
+}
+
+// Auto-generated from StructureDefinition for US Core MedicationStatement
+// Profile. US Core Medication Statement Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement
+message UsCoreMedicationstatement {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/MedicationStatement";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External identifier
+ repeated proto.Identifier identifier = 9;
+
+ // Fulfils plan, proposal or order
+ repeated proto.Reference based_on = 10;
+
+ // Part of referenced event
+ repeated proto.Reference part_of = 11;
+
+ // Encounter / Episode associated with MedicationStatement
+ proto.Reference context = 12;
+
+ // active | completed | entered-in-error | intended | stopped | on-hold
+ proto.MedicationStatementStatusCode status = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of medication usage
+ proto.CodeableConcept category = 14;
+
+ // What medication was taken
+ message Medication {
+ oneof medication {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Medication medication = 15 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // The date/time or interval when the medication was taken
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // When the statement was asserted?
+ proto.DateTime date_asserted = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Person or organization that provided the information about the taking of
+ // this medication
+ proto.Reference information_source = 18;
+
+ // Who is/was taking the medication
+ proto.Reference subject = 19
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Additional supporting information
+ repeated proto.Reference derived_from = 20;
+
+ // y | n | unk | na
+ proto.MedicationStatementTakenCode taken = 21
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // True if asserting medication was not given
+ repeated proto.CodeableConcept reason_not_taken = 22;
+
+ // Reason for why the medication is being/was taken
+ repeated proto.CodeableConcept reason_code = 23;
+
+ // Condition or observation that supports why the medication is being/was
+ // taken
+ repeated proto.Reference reason_reference = 24;
+
+ // Further information about the statement
+ repeated proto.Annotation note = 25;
+
+ // Details of how medication is/was taken or should be taken
+ repeated proto.Dosage dosage = 26;
+}
+
+// Auto-generated from StructureDefinition for US Core Results Profile.
+// US Core Result Observation.
+// See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults
+message UsCoreObservationresults {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Observation";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business Identifier for observation
+ repeated proto.Identifier identifier = 9;
+
+ // Fulfills plan, proposal or order
+ repeated proto.Reference based_on = 10;
+
+ // registered | preliminary | final | amended +
+ proto.ObservationStatusCode status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Classification of type of observation
+ repeated proto.CodeableConcept category = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Laboratory Test Name
+ proto.CodeableConcept code = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who and/or what this is about
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Healthcare event during which this observation is made
+ proto.Reference context = 15;
+
+ // Clinically relevant time/time-period for observation
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date/Time this was made available
+ proto.Instant issued = 17;
+
+ // Who is responsible for the observation
+ repeated proto.Reference performer = 18;
+
+ // Result Value
+ message Value {
+ oneof value {
+ proto.Quantity quantity = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ proto.Boolean boolean = 4;
+ proto.Range range = 5;
+ proto.Ratio ratio = 6;
+ proto.SampledData sampled_data = 7;
+ proto.Attachment attachment = 8;
+ proto.Time time = 9;
+ proto.DateTime date_time = 10;
+ proto.Period period = 11;
+ }
+ }
+ Value value = 19 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Why the result is missing
+ proto.CodeableConcept data_absent_reason = 20;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 21;
+
+ // Comments about result
+ proto.String comment = 22;
+
+ // Observed body part
+ proto.CodeableConcept body_site = 23;
+
+ // How it was done
+ proto.CodeableConcept method = 24;
+
+ // Specimen used for this observation
+ proto.Reference specimen = 25;
+
+ // (Measurement) Device
+ proto.Reference device = 26;
+
+ // Provides guide for interpretation
+ message ReferenceRange {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Low Range, if relevant
+ proto.SimpleQuantity low = 4;
+
+ // High Range, if relevant
+ proto.SimpleQuantity high = 5;
+
+ // Reference range qualifier
+ proto.CodeableConcept type = 6;
+
+ // Reference range population
+ repeated proto.CodeableConcept applies_to = 7;
+
+ // Applicable age range, if relevant
+ proto.Range age = 8;
+
+ // Text based reference range in an observation
+ proto.String text = 9;
+ }
+ repeated ReferenceRange reference_range = 27;
+
+ // Resource related to this observation
+ message Related {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // has-member | derived-from | sequel-to | replaces | qualified-by |
+ // interfered-by
+ proto.ObservationRelationshipTypeCode type = 4;
+
+ // Resource that is related to this one
+ proto.Reference target = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Related related = 28;
+
+ // Component results
+ message Component {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of component observation (code / type)
+ proto.CodeableConcept code = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Actual component result
+ message Value {
+ oneof value {
+ proto.Quantity quantity = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ proto.Range range = 4;
+ proto.Ratio ratio = 5;
+ proto.SampledData sampled_data = 6;
+ proto.Attachment attachment = 7;
+ proto.Time time = 8;
+ proto.DateTime date_time = 9;
+ proto.Period period = 10;
+ }
+ }
+ Value value = 5 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Why the component result is missing
+ proto.CodeableConcept data_absent_reason = 6;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 7;
+
+ // Provides guide for interpretation of component result
+ repeated ReferenceRange reference_range = 8;
+ }
+ repeated Component component = 29;
+}
+
+// Auto-generated from StructureDefinition for US Core Organization Profile.
+// US Core Organization Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization
+message UsCoreOrganization {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Organization";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Identifies this organization across multiple systems
+ repeated proto.Identifier identifier = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Whether the organization's record is still in active use
+ proto.Boolean active = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Kind of organization
+ repeated proto.CodeableConcept type = 11;
+
+ // Name used for the organization
+ proto.String name = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A list of alternate names that the organization is known as, or was known
+ // as in the past
+ repeated proto.String alias = 13;
+
+ // A contact detail for the organization
+ repeated proto.ContactPoint telecom = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // An address for the organization
+ repeated proto.Address address = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // The organization of which this organization forms a part
+ proto.Reference part_of = 16;
+
+ // Contact for the organization for a certain purpose
+ message Contact {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The type of contact
+ proto.CodeableConcept purpose = 4;
+
+ // A name associated with the contact
+ proto.HumanName name = 5;
+
+ // Contact details (telephone, email, etc.) for a contact
+ repeated proto.ContactPoint telecom = 6;
+
+ // Visiting or postal addresses for the contact
+ proto.Address address = 7;
+ }
+ repeated Contact contact = 17;
+
+ // Technical endpoints providing access to services operated for the
+ // organization
+ repeated proto.Reference endpoint = 18;
+}
+
+// Auto-generated from StructureDefinition for US Core Patient Profile.
+// US Core Patient Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
+message UsCorePatient {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Patient";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Extension
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // An identifier for this patient
+ repeated proto.Identifier identifier = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Whether this patient's record is in active use
+ proto.Boolean active = 10;
+
+ // A name associated with the patient
+ repeated proto.HumanName name = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A contact detail for the individual
+ repeated proto.ContactPoint telecom = 12;
+
+ // male | female | other | unknown
+ proto.AdministrativeGenderCode gender = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // The date of birth for the individual
+ proto.Date birth_date = 14;
+
+ // Indicates if the individual is deceased or not
+ message Deceased {
+ oneof deceased {
+ proto.Boolean boolean = 1;
+ proto.DateTime date_time = 2;
+ }
+ }
+ Deceased deceased = 15 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Addresses for the individual
+ repeated proto.Address address = 16;
+
+ // Marital (civil) status of a patient
+ proto.CodeableConcept marital_status = 17;
+
+ // Whether patient is part of a multiple birth
+ message MultipleBirth {
+ oneof multiple_birth {
+ proto.Boolean boolean = 1;
+ proto.Integer integer = 2;
+ }
+ }
+ MultipleBirth multiple_birth = 18
+ [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Image of the patient
+ repeated proto.Attachment photo = 19;
+
+ // A contact party (e.g. guardian, partner, friend) for the patient
+ message Contact {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The kind of relationship
+ repeated proto.CodeableConcept relationship = 4;
+
+ // A name associated with the contact person
+ proto.HumanName name = 5;
+
+ // A contact detail for the person
+ repeated proto.ContactPoint telecom = 6;
+
+ // Address for the contact person
+ proto.Address address = 7;
+
+ // male | female | other | unknown
+ proto.AdministrativeGenderCode gender = 8;
+
+ // Organization that is associated with the contact
+ proto.Reference organization = 9;
+
+ // The period during which this contact person or organization is valid to
+ // be contacted relating to this patient
+ proto.Period period = 10;
+ }
+ repeated Contact contact = 20;
+
+ // A list of Languages which may be used to communicate with the patient about
+ // his or her health
+ message Communication {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The language which can be used to communicate with the patient about his
+ // or her health
+ proto.CodeableConcept language = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Language preference indicator
+ proto.Boolean preferred = 5;
+ }
+ repeated Communication communication = 22;
+
+ // Patient's nominated primary care provider
+ repeated proto.Reference general_practitioner = 23;
+
+ // Organization that is the custodian of the patient record
+ proto.Reference managing_organization = 24;
+
+ // Link to another patient resource that concerns the same actual person
+ message Link {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The other patient or related person resource that the link refers to
+ proto.Reference other = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // replaced-by | replaces | refer | seealso - type of link
+ proto.LinkTypeCode type = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Link link = 25;
+
+ // Extension
+ PatientUSCoreRaceExtension race = 26
+ [(.google.fhir.stu3.proto.fhir_inlined_extension_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"];
+
+ // Extension
+ PatientUSCoreEthnicityExtension ethnicity = 27
+ [(.google.fhir.stu3.proto.fhir_inlined_extension_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"];
+
+ // Extension
+ UsCoreBirthSexCode birthsex = 28
+ [(.google.fhir.stu3.proto.fhir_inlined_extension_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"];
+}
+
+// Auto-generated from StructureDefinition for US Core Practitioner Profile.
+// US Core Practitioner.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
+message UsCorePractitioner {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Practitioner";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // A identifier for the person as this agent
+ repeated proto.Identifier identifier = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Whether this practitioner's record is in active use
+ proto.Boolean active = 10;
+
+ // The name(s) associated with the practitioner
+ proto.HumanName name = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A contact detail for the practitioner (that apply to all roles)
+ repeated proto.ContactPoint telecom = 12;
+
+ // Address(es) of the practitioner that are not role specific (typically home
+ // address)
+ repeated proto.Address address = 13;
+
+ // male | female | other | unknown
+ proto.AdministrativeGenderCode gender = 14;
+
+ // The date on which the practitioner was born
+ proto.Date birth_date = 15;
+
+ // Image of the person
+ repeated proto.Attachment photo = 16;
+
+ // Qualifications obtained by training and certification
+ message Qualification {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // An identifier for this qualification for the practitioner
+ repeated proto.Identifier identifier = 4;
+
+ // Coded representation of the qualification
+ proto.CodeableConcept code = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Period during which the qualification is valid
+ proto.Period period = 6;
+
+ // Organization that regulates and issues the qualification
+ proto.Reference issuer = 7;
+ }
+ repeated Qualification qualification = 17;
+
+ // A language the practitioner is able to use in patient communication
+ repeated proto.CodeableConcept communication = 18;
+}
+
+// Auto-generated from StructureDefinition for US Core Procedure Profile.
+// US Core Procedure Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure
+message UsCoreProcedure {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Procedure";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Identifiers for this procedure
+ repeated proto.Identifier identifier = 9;
+
+ // Instantiates protocol or definition
+ repeated proto.Reference definition = 10;
+
+ // A request for this procedure
+ repeated proto.Reference based_on = 11;
+
+ // Part of referenced event
+ repeated proto.Reference part_of = 12;
+
+ // preparation | in-progress | suspended | aborted | completed |
+ // entered-in-error | unknown
+ proto.EventStatusCode status = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // True if procedure was not performed as scheduled
+ proto.Boolean not_done = 14;
+
+ // Reason procedure was not performed
+ proto.CodeableConcept not_done_reason = 15;
+
+ // Classification of the procedure
+ proto.CodeableConcept category = 16;
+
+ // SNOMED-CT | ICD-10 | CPT-4
+ proto.CodeableConcept code = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who the procedure was performed on
+ proto.Reference subject = 18
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter or episode associated with the procedure
+ proto.Reference context = 19;
+
+ // Date/Period the procedure was performed
+ message Performed {
+ oneof performed {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Performed performed = 20 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // The people who performed the procedure
+ message Performer {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The role the actor was in
+ proto.CodeableConcept role = 4;
+
+ // The reference to the practitioner
+ proto.Reference actor = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization the device or practitioner was acting for
+ proto.Reference on_behalf_of = 6;
+ }
+ repeated Performer performer = 21;
+
+ // Where the procedure happened
+ proto.Reference location = 22;
+
+ // Coded reason procedure performed
+ repeated proto.CodeableConcept reason_code = 23;
+
+ // Condition that is the reason the procedure performed
+ repeated proto.Reference reason_reference = 24;
+
+ // Target body sites
+ repeated proto.CodeableConcept body_site = 25;
+
+ // The result of procedure
+ proto.CodeableConcept outcome = 26;
+
+ // Any report resulting from the procedure
+ repeated proto.Reference report = 27;
+
+ // Complication following the procedure
+ repeated proto.CodeableConcept complication = 28;
+
+ // A condition that is a result of the procedure
+ repeated proto.Reference complication_detail = 29;
+
+ // Instructions for follow up
+ repeated proto.CodeableConcept follow_up = 30;
+
+ // Additional information about the procedure
+ repeated proto.Annotation note = 31;
+
+ // Device changed in procedure
+ message FocalDevice {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Kind of change to device
+ proto.CodeableConcept action = 4;
+
+ // Device that was changed
+ proto.Reference manipulated = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated FocalDevice focal_device = 32;
+
+ // Items used during procedure
+ repeated proto.Reference used_reference = 33;
+
+ // Coded items used during the procedure
+ repeated proto.CodeableConcept used_code = 34;
+}
+
+// Auto-generated from StructureDefinition for Profile-resource association
+// extension. Resource that this profile is based on. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-profile-link
+message CapabilityStatementProfileResourceAssociationExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-profile-link";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Value of extension
+ proto.ResourceTypeCode value_code = 3;
+}
+
+// Auto-generated from StructureDefinition for US Core Race Extension.
+// US Core Race Extension.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
+message PatientUSCoreRaceExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Extension
+ repeated proto.Extension extension = 2;
+
+ // American Indian or Alaska Native|Asian|Black or African American|Native
+ // Hawaiian or Other Pacific Islander|White
+ repeated proto.Coding omb_category = 4;
+
+ // Extended race codes
+ repeated proto.Coding detailed = 5;
+
+ // Race Text
+ proto.String text = 6
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+}
+
+// Auto-generated from StructureDefinition for US Core Smoking Status Profile.
+// US Core Smoking Status Observation Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
+message UsCoreSmokingstatus {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Observation";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business Identifier for observation
+ repeated proto.Identifier identifier = 9;
+
+ // Fulfills plan, proposal or order
+ repeated proto.Reference based_on = 10;
+
+ // registered | preliminary | final | amended +
+ proto.ObservationStatusCode status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Classification of type of observation
+ repeated proto.CodeableConcept category = 12;
+
+ // Smoking Status: LOINC 72166-2 = Tobacco smoking status NHIS
+ proto.CodeableConcept code = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who and/or what this is about
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Healthcare event during which this observation is made
+ proto.Reference context = 15;
+
+ // Clinically relevant time/time-period for observation
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date/Time this was made available
+ proto.Instant issued = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who is responsible for the observation
+ repeated proto.Reference performer = 18;
+
+ // Coded Responses from Smoking Status Value Set
+ message Value {
+ oneof value {
+ proto.CodeableConcept codeable_concept = 2;
+ }
+ }
+ Value value = 19 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Why the result is missing
+ proto.CodeableConcept data_absent_reason = 20;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 21;
+
+ // Comments about result
+ proto.String comment = 22;
+
+ // Observed body part
+ proto.CodeableConcept body_site = 23;
+
+ // How it was done
+ proto.CodeableConcept method = 24;
+
+ // Specimen used for this observation
+ proto.Reference specimen = 25;
+
+ // (Measurement) Device
+ proto.Reference device = 26;
+
+ // Provides guide for interpretation
+ message ReferenceRange {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Low Range, if relevant
+ proto.SimpleQuantity low = 4;
+
+ // High Range, if relevant
+ proto.SimpleQuantity high = 5;
+
+ // Reference range qualifier
+ proto.CodeableConcept type = 6;
+
+ // Reference range population
+ repeated proto.CodeableConcept applies_to = 7;
+
+ // Applicable age range, if relevant
+ proto.Range age = 8;
+
+ // Text based reference range in an observation
+ proto.String text = 9;
+ }
+ repeated ReferenceRange reference_range = 27;
+
+ // Resource related to this observation
+ message Related {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // has-member | derived-from | sequel-to | replaces | qualified-by |
+ // interfered-by
+ proto.ObservationRelationshipTypeCode type = 4;
+
+ // Resource that is related to this one
+ proto.Reference target = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Related related = 28;
+
+ // Component results
+ message Component {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of component observation (code / type)
+ proto.CodeableConcept code = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Actual component result
+ message Value {
+ oneof value {
+ proto.Quantity quantity = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ proto.Range range = 4;
+ proto.Ratio ratio = 5;
+ proto.SampledData sampled_data = 6;
+ proto.Attachment attachment = 7;
+ proto.Time time = 8;
+ proto.DateTime date_time = 9;
+ proto.Period period = 10;
+ }
+ }
+ Value value = 5 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Why the component result is missing
+ proto.CodeableConcept data_absent_reason = 6;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 7;
+
+ // Provides guide for interpretation of component result
+ repeated ReferenceRange reference_range = 8;
+ }
+ repeated Component component = 29;
+}
diff --git a/proto/stu3/uscore_codes.proto b/proto/stu3/uscore_codes.proto
new file mode 100644
index 0000000000..7b5bcf8f5e
--- /dev/null
+++ b/proto/stu3/uscore_codes.proto
@@ -0,0 +1,46 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.fhir.stu3.uscore;
+
+import "proto/stu3/annotations.proto";
+import "proto/stu3/datatypes.proto";
+
+option java_multiple_files = true;
+option java_package = "com.google.fhir.stu3.uscore";
+
+// A type defined by US Core for Birthsex
+// http://hl7.org/fhir/us/core/ValueSet/us-core-birthsex
+message UsCoreBirthSexCode {
+ option (proto.structure_definition_kind) = KIND_PRIMITIVE_TYPE;
+ option (proto.fhir_valueset_url) =
+ "http://hl7.org/fhir/us/core/ValueSet/us-core-birthsex";
+
+ // Primitive value for code
+ enum Value {
+ INVALID_UNINITIALIZED = 0;
+ FEMALE = 1 [(proto.fhir_original_code) = "F"];
+ MALE = 2 [(proto.fhir_original_code) = "M"];
+ UNKNOWN = 3 [(proto.fhir_original_code) = "UNK"];
+ }
+ Value value = 1;
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 2;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 3;
+}
diff --git a/testdata/stu3/BUILD b/testdata/stu3/BUILD
index 2baf672bbc..f80fa891a6 100644
--- a/testdata/stu3/BUILD
+++ b/testdata/stu3/BUILD
@@ -41,6 +41,14 @@ filegroup(
]),
)
+# These files contain us core codes.
+filegroup(
+ name = "uscore",
+ srcs = glob([
+ "uscore/*.json",
+ ]),
+)
+
# These files contain StructureDefinitions used to generate the protos.
filegroup(
name = "structure_definitions",
diff --git a/testdata/stu3/extensions/extension-goal-acceptance.descriptor.prototxt b/testdata/stu3/extensions/extension-goal-acceptance.descriptor.prototxt
index 18235e8fff..b95e0ce019 100644
--- a/testdata/stu3/extensions/extension-goal-acceptance.descriptor.prototxt
+++ b/testdata/stu3/extensions/extension-goal-acceptance.descriptor.prototxt
@@ -35,7 +35,7 @@ field {
number: 5
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
- type_name: ".google.fhir.stu3.proto.Code"
+ type_name: ".google.fhir.stu3.proto.GoalAcceptanceStatusCode"
options {
[google.fhir.stu3.proto.field_description]: "agree | disagree | pending"
}
diff --git a/testdata/stu3/structure_definitions/uscore.proto b/testdata/stu3/structure_definitions/uscore.proto
new file mode 100644
index 0000000000..1fd5952de6
--- /dev/null
+++ b/testdata/stu3/structure_definitions/uscore.proto
@@ -0,0 +1,2768 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.fhir.stu3.uscore;
+
+import "proto/stu3/annotations.proto";
+import "proto/stu3/codes.proto";
+import "proto/stu3/datatypes.proto";
+import "proto/stu3/resources.proto";
+import "proto/stu3/metadatatypes.proto";
+import "proto/stu3/uscore_codes.proto";
+
+option java_multiple_files = true;
+option java_package = "com.google.fhir.stu3.uscore";
+
+// Auto-generated from StructureDefinition for US Core AllergyIntolerance
+// Profile. US Core Allergies Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
+message UsCoreAllergyintolerance {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/AllergyIntolerance";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External ids for this item
+ repeated proto.Identifier identifier = 9;
+
+ // active | inactive | resolved
+ proto.AllergyIntoleranceClinicalStatusCode clinical_status = 10;
+
+ // unconfirmed | confirmed | refuted | entered-in-error
+ proto.AllergyIntoleranceVerificationStatusCode verification_status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // allergy | intolerance - Underlying mechanism (if known)
+ proto.AllergyIntoleranceTypeCode type = 12;
+
+ // food | medication | environment | biologic
+ repeated proto.AllergyIntoleranceCategoryCode category = 13;
+
+ // low | high | unable-to-assess
+ proto.AllergyIntoleranceCriticalityCode criticality = 14;
+
+ // Code that identifies the allergy or intolerance
+ proto.CodeableConcept code = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who the sensitivity is for
+ proto.Reference patient = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // When allergy or intolerance was identified
+ message Onset {
+ oneof onset {
+ proto.DateTime date_time = 1;
+ proto.Age age = 2;
+ proto.Period period = 3;
+ proto.Range range = 4;
+ proto.String string_value = 5 [json_name = "string"];
+ }
+ }
+ Onset onset = 17 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date record was believed accurate
+ proto.DateTime asserted_date = 18;
+
+ // Who recorded the sensitivity
+ proto.Reference recorder = 19;
+
+ // Source of the information about the allergy
+ proto.Reference asserter = 20;
+
+ // Date(/time) of last known occurrence of a reaction
+ proto.DateTime last_occurrence = 21;
+
+ // Additional text not captured in other fields
+ repeated proto.Annotation note = 22;
+
+ // Adverse Reaction Events linked to exposure to substance
+ message Reaction {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Specific substance or pharmaceutical product considered to be responsible
+ // for event
+ proto.CodeableConcept substance = 4;
+
+ // Clinical symptoms/signs associated with the Event
+ repeated proto.CodeableConcept manifestation = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Description of the event as a whole
+ proto.String description = 6;
+
+ // Date(/time) when manifestations showed
+ proto.DateTime onset = 7;
+
+ // mild | moderate | severe (of event as a whole)
+ proto.AllergyIntoleranceSeverityCode severity = 8;
+
+ // How the subject was exposed to the substance
+ proto.CodeableConcept exposure_route = 9;
+
+ // Text about event not captured in other fields
+ repeated proto.Annotation note = 10;
+ }
+ repeated Reaction reaction = 23;
+}
+
+// Auto-generated from StructureDefinition for US Core Birth Sex Extension.
+// Extension.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
+message PatientUSCoreBirthSexExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Value of extension
+ UsCoreBirthSexCode value_code = 3;
+}
+
+// Auto-generated from StructureDefinition for US Core CarePlan Profile.
+// US Core CarePlan Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan
+message UsCoreCareplan {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/CarePlan";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this plan
+ repeated proto.Identifier identifier = 9;
+
+ // Protocol or definition
+ repeated proto.Reference definition = 10;
+
+ // Fulfills care plan
+ repeated proto.Reference based_on = 11;
+
+ // CarePlan replaced by this CarePlan
+ repeated proto.Reference replaces = 12;
+
+ // Part of referenced CarePlan
+ repeated proto.Reference part_of = 13;
+
+ // draft | active | suspended | completed | entered-in-error | cancelled |
+ // unknown
+ proto.CarePlanStatusCode status = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // proposal | plan | order | option
+ proto.CarePlanIntentCode intent = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of plan
+ repeated proto.CodeableConcept category = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Human-friendly name for the CarePlan
+ proto.String title = 17;
+
+ // Summary of nature of plan
+ proto.String description = 18;
+
+ // Who care plan is for
+ proto.Reference subject = 19
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Created in context of
+ proto.Reference context = 20;
+
+ // Time period plan covers
+ proto.Period period = 21;
+
+ // Who is responsible for contents of the plan
+ repeated proto.Reference author = 22;
+
+ // Who's involved in plan?
+ repeated proto.Reference care_team = 23;
+
+ // Health issues this plan addresses
+ repeated proto.Reference addresses = 24;
+
+ // Information considered as part of plan
+ repeated proto.Reference supporting_info = 25;
+
+ // Desired outcome of plan
+ repeated proto.Reference goal = 26;
+
+ // Action to occur as part of plan
+ message Activity {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Results of the activity
+ repeated proto.CodeableConcept outcome_codeable_concept = 4;
+
+ // Appointment, Encounter, Procedure, etc.
+ repeated proto.Reference outcome_reference = 5;
+
+ // Comments about the activity status/progress
+ repeated proto.Annotation progress = 6;
+
+ // Activity details defined in specific resource
+ proto.Reference reference = 7;
+
+ // In-line definition of activity
+ message Detail {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // diet | drug | encounter | observation | procedure | supply | other
+ proto.CodeableConcept category = 4;
+
+ // Protocol or definition
+ proto.Reference definition = 5;
+
+ // Detail type of activity
+ proto.CodeableConcept code = 6;
+
+ // Why activity should be done or why activity was prohibited
+ repeated proto.CodeableConcept reason_code = 7;
+
+ // Condition triggering need for activity
+ repeated proto.Reference reason_reference = 8;
+
+ // Goals this activity relates to
+ repeated proto.Reference goal = 9;
+
+ // not-started | scheduled | in-progress | on-hold | completed | cancelled
+ // | unknown
+ proto.CarePlanActivityStatusCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Reason for current status
+ proto.String status_reason = 11;
+
+ // Do NOT do
+ proto.Boolean prohibited = 12;
+
+ // When activity is to occur
+ message Scheduled {
+ oneof scheduled {
+ proto.Timing timing = 1;
+ proto.Period period = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ }
+ }
+ Scheduled scheduled = 13
+ [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Where it should happen
+ proto.Reference location = 14;
+
+ // Who will be responsible?
+ repeated proto.Reference performer = 15;
+
+ // What is to be administered/supplied
+ message Product {
+ oneof product {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Product product = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // How to consume/day?
+ proto.SimpleQuantity daily_amount = 17;
+
+ // How much to administer/supply/consume
+ proto.SimpleQuantity quantity = 18;
+
+ // Extra info describing activity to perform
+ proto.String description = 19;
+ }
+ Detail detail = 8;
+ }
+ repeated Activity activity = 27;
+
+ // Comments about the plan
+ repeated proto.Annotation note = 28;
+}
+
+// Auto-generated from StructureDefinition for US Core CareTeam Profile.
+// US Core CareTeam Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam
+message UsCoreCareteam {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/CareTeam";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this team
+ repeated proto.Identifier identifier = 9;
+
+ // proposed | active | suspended | inactive | entered-in-error
+ proto.CareTeamStatusCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of team
+ repeated proto.CodeableConcept category = 11;
+
+ // Name of the team, such as crisis assessment team
+ proto.String name = 12;
+
+ // Who care team is for
+ proto.Reference subject = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter or episode associated with CareTeam
+ proto.Reference context = 14;
+
+ // Time period team covers
+ proto.Period period = 15;
+
+ // Members of the team
+ message Participant {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of involvement
+ proto.CodeableConcept role = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who is involved
+ proto.Reference member = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization of the practitioner
+ proto.Reference on_behalf_of = 6;
+
+ // Time period of participant
+ proto.Period period = 7;
+ }
+ repeated Participant participant = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Why the care team exists
+ repeated proto.CodeableConcept reason_code = 17;
+
+ // Why the care team exists
+ repeated proto.Reference reason_reference = 18;
+
+ // Organization responsible for the care team
+ repeated proto.Reference managing_organization = 19;
+
+ // Comments made about the CareTeam
+ repeated proto.Annotation note = 20;
+}
+
+// Auto-generated from StructureDefinition for US Core Condition (a.k.a
+// Problem) Profile. US Core Condition Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
+message UsCoreCondition {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Condition";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this condition
+ repeated proto.Identifier identifier = 9;
+
+ // active | recurrence | inactive | remission | resolved
+ proto.ConditionClinicalStatusCodesCode clinical_status = 10;
+
+ // provisional | differential | confirmed | refuted | entered-in-error |
+ // unknown
+ proto.ConditionVerificationStatusCode verification_status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // problem-list-item | encounter-diagnosis
+ repeated proto.CodeableConcept category = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Subjective severity of condition
+ proto.CodeableConcept severity = 13;
+
+ // Identification of the condition, problem or diagnosis
+ proto.CodeableConcept code = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Anatomical location, if relevant
+ repeated proto.CodeableConcept body_site = 15;
+
+ // Who has the condition?
+ proto.Reference subject = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter or episode when condition first asserted
+ proto.Reference context = 17;
+
+ // Estimated or actual date, date-time, or age
+ message Onset {
+ oneof onset {
+ proto.DateTime date_time = 1;
+ proto.Age age = 2;
+ proto.Period period = 3;
+ proto.Range range = 4;
+ proto.String string_value = 5 [json_name = "string"];
+ }
+ }
+ Onset onset = 18 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // If/when in resolution/remission
+ message Abatement {
+ oneof abatement {
+ proto.DateTime date_time = 1;
+ proto.Age age = 2;
+ proto.Boolean boolean = 3;
+ proto.Period period = 4;
+ proto.Range range = 5;
+ proto.String string_value = 6 [json_name = "string"];
+ }
+ }
+ Abatement abatement = 19 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date record was believed accurate
+ proto.DateTime asserted_date = 20;
+
+ // Person who asserts this condition
+ proto.Reference asserter = 21;
+
+ // Stage/grade, usually assessed formally
+ message Stage {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Simple summary (disease specific)
+ proto.CodeableConcept summary = 4;
+
+ // Formal record of assessment
+ repeated proto.Reference assessment = 5;
+ }
+ Stage stage = 22;
+
+ // Supporting evidence
+ message Evidence {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Manifestation/symptom
+ repeated proto.CodeableConcept code = 4;
+
+ // Supporting information found elsewhere
+ repeated proto.Reference detail = 5;
+ }
+ repeated Evidence evidence = 23;
+
+ // Additional information about the Condition
+ repeated proto.Annotation note = 24;
+}
+
+// Auto-generated from StructureDefinition for US Core Device Profile.
+// US Core Implanted Device Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-device
+message UsCoreDevice {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Device";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-device";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Instance identifier
+ repeated proto.Identifier identifier = 9;
+
+ // Unique Device Identifier (UDI) Barcode string
+ message Udi {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Mandatory fixed portion of UDI
+ proto.String device_identifier = 4;
+
+ // Device Name as appears on UDI label
+ proto.String name = 5;
+
+ // Regional UDI authority
+ proto.Uri jurisdiction = 6;
+
+ // UDI Human Readable Barcode String
+ proto.String carrier_h_r_f = 7;
+
+ // UDI Machine Readable Barcode String
+ proto.Base64Binary carrier_a_i_d_c = 8;
+
+ // UDI Issuing Organization
+ proto.Uri issuer = 9;
+
+ // barcode | rfid | manual +
+ proto.UDIEntryTypeCode entry_type = 10;
+ }
+ Udi udi = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // active | inactive | entered-in-error | unknown
+ proto.FHIRDeviceStatusCode status = 11;
+
+ // What kind of device this is
+ proto.CodeableConcept type = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Lot number of manufacture
+ proto.String lot_number = 13;
+
+ // Name of device manufacturer
+ proto.String manufacturer = 14;
+
+ // Date when the device was made
+ proto.DateTime manufacture_date = 15;
+
+ // Date and time of expiry of this device (if applicable)
+ proto.DateTime expiration_date = 16;
+
+ // Model id assigned by the manufacturer
+ proto.String model = 17;
+
+ // Version number (i.e. software)
+ proto.String version = 18;
+
+ // Patient to whom Device is affixed
+ proto.Reference patient = 19
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization responsible for device
+ proto.Reference owner = 20;
+
+ // Details for human/organization for support
+ repeated proto.ContactPoint contact = 21;
+
+ // Where the resource is found
+ proto.Reference location = 22;
+
+ // Network address to contact device
+ proto.Uri url = 23;
+
+ // Device notes and comments
+ repeated proto.Annotation note = 24;
+
+ // Safety Characteristics of Device
+ repeated proto.CodeableConcept safety = 25;
+}
+
+// Auto-generated from StructureDefinition for US Core DiagnosticReport
+// Profile. US Core Diagnostic Report Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport
+message UsCoreDiagnosticreport {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/DiagnosticReport";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business identifier for report
+ repeated proto.Identifier identifier = 9;
+
+ // What was requested
+ repeated proto.Reference based_on = 10;
+
+ // registered | partial | preliminary | final +
+ proto.DiagnosticReportStatusCode status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Service category
+ proto.CodeableConcept category = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // US Core Laboratory Report Order Code
+ proto.CodeableConcept code = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // The subject of the report - usually, but not always, the patient
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Health care event when test ordered
+ proto.Reference context = 15;
+
+ // Specimen Collection Datetime or Period
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // DateTime this version was released
+ proto.Instant issued = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Participants in producing the report
+ message Performer {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of performer
+ proto.CodeableConcept role = 4;
+
+ // Practitioner or Organization participant
+ proto.Reference actor = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Performer performer = 18;
+
+ // Specimens this report is based on
+ repeated proto.Reference specimen = 19;
+
+ // Observations - simple, or complex nested groups
+ repeated proto.Reference result = 20;
+
+ // Reference to full details of imaging associated with the diagnostic report
+ repeated proto.Reference imaging_study = 21;
+
+ // Key images associated with this report
+ message Image {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Comment about the image (e.g. explanation)
+ proto.String comment = 4;
+
+ // Reference to the image source
+ proto.Reference link = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Image image = 22;
+
+ // Clinical Interpretation of test results
+ proto.String conclusion = 23;
+
+ // Codes for the conclusion
+ repeated proto.CodeableConcept coded_diagnosis = 24;
+
+ // Entire report as issued
+ repeated proto.Attachment presented_form = 25;
+}
+
+// Auto-generated from StructureDefinition for UsCoreDirect.
+// Email is a "direct" email.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct
+message ContactPointUsCoreDirect {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Value of extension
+ proto.Boolean value_boolean = 3;
+}
+
+// Auto-generated from StructureDefinition for US Core ethnicity Extension.
+// US Core ethnicity Extension.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
+message PatientUSCoreEthnicityExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Extension
+ repeated proto.Extension extension = 2;
+
+ // Hispanic or Latino|Not Hispanic or Latino
+ proto.Coding omb_category = 4;
+
+ // Extended ethnicity codes
+ repeated proto.Coding detailed = 5;
+
+ // ethnicity Text
+ proto.String text = 6
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+}
+
+// Auto-generated from StructureDefinition for US Core Goal Profile.
+// US Core Goal Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
+message UsCoreGoal {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Goal";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Ids for this goal
+ repeated proto.Identifier identifier = 9;
+
+ // proposed | accepted | planned | in-progress | on-target | ahead-of-target |
+ // behind-target | sustaining | achieved | on-hold | cancelled |
+ // entered-in-error | rejected
+ proto.GoalStatusCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // E.g. Treatment, dietary, behavioral, etc.
+ repeated proto.CodeableConcept category = 11;
+
+ // high-priority | medium-priority | low-priority
+ proto.CodeableConcept priority = 12;
+
+ // Code or text describing goal
+ proto.CodeableConcept description = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who this goal is intended for
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // When goal pursuit begins
+ message Start {
+ oneof start {
+ proto.Date date = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ }
+ }
+ Start start = 15 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Target outcome for the goal
+ message Target {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The parameter whose value is being tracked
+ proto.CodeableConcept measure = 4;
+
+ // The target value to be achieved
+ message Detail {
+ oneof detail {
+ proto.Quantity quantity = 1;
+ proto.Range range = 2;
+ proto.CodeableConcept codeable_concept = 3;
+ }
+ }
+ Detail detail = 5 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Reach goal on or before
+ message Due {
+ oneof due {
+ proto.Date date = 1;
+ proto.Duration duration = 2;
+ }
+ }
+ Due due = 6 [(.google.fhir.stu3.proto.is_choice_type) = true];
+ }
+ Target target = 16;
+
+ // When goal status took effect
+ proto.Date status_date = 17;
+
+ // Reason for current status
+ proto.String status_reason = 18;
+
+ // Who's responsible for creating Goal?
+ proto.Reference expressed_by = 19;
+
+ // Issues addressed by this goal
+ repeated proto.Reference addresses = 20;
+
+ // Comments about the goal
+ repeated proto.Annotation note = 21;
+
+ // What result was achieved regarding the goal?
+ repeated proto.CodeableConcept outcome_code = 22;
+
+ // Observation that resulted from goal
+ repeated proto.Reference outcome_reference = 23;
+}
+
+// Auto-generated from StructureDefinition for US Core Immunization Profile.
+// US Core Immunization Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization
+message UsCoreImmunization {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Immunization";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business identifier
+ repeated proto.Identifier identifier = 9;
+
+ // completed | entered-in-error
+ proto.ImmunizationStatusCodesCode status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Flag for whether immunization was given
+ proto.Boolean not_given = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Vaccine Product Type (bind to CVX)
+ proto.CodeableConcept vaccine_code = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who was immunized
+ proto.Reference patient = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter administered as part of
+ proto.Reference encounter = 14;
+
+ // Vaccination administration date
+ proto.DateTime date = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Indicates context the data was recorded in
+ proto.Boolean primary_source = 16
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Indicates the source of a secondarily reported record
+ proto.CodeableConcept report_origin = 17;
+
+ // Where vaccination occurred
+ proto.Reference location = 18;
+
+ // Vaccine manufacturer
+ proto.Reference manufacturer = 19;
+
+ // Vaccine lot number
+ proto.String lot_number = 20;
+
+ // Vaccine expiration date
+ proto.Date expiration_date = 21;
+
+ // Body site vaccine was administered
+ proto.CodeableConcept site = 22;
+
+ // How vaccine entered body
+ proto.CodeableConcept route = 23;
+
+ // Amount of vaccine administered
+ proto.SimpleQuantity dose_quantity = 24;
+
+ // Who performed event
+ message Practitioner {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // What type of performance was done
+ proto.CodeableConcept role = 4;
+
+ // Individual who was performing
+ proto.Reference actor = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Practitioner practitioner = 25;
+
+ // Vaccination notes
+ repeated proto.Annotation note = 26;
+
+ // Administration/non-administration reasons
+ message Explanation {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Why immunization occurred
+ repeated proto.CodeableConcept reason = 4;
+
+ // Why immunization did not occur
+ repeated proto.CodeableConcept reason_not_given = 5;
+ }
+ Explanation explanation = 27;
+
+ // Details of a reaction that follows immunization
+ message Reaction {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // When reaction started
+ proto.DateTime date = 4;
+
+ // Additional information on reaction
+ proto.Reference detail = 5;
+
+ // Indicates self-reported reaction
+ proto.Boolean reported = 6;
+ }
+ repeated Reaction reaction = 28;
+
+ // What protocol was followed
+ message VaccinationProtocol {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Dose number within series
+ proto.PositiveInt dose_sequence = 4;
+
+ // Details of vaccine protocol
+ proto.String description = 5;
+
+ // Who is responsible for protocol
+ proto.Reference authority = 6;
+
+ // Name of vaccine series
+ proto.String series = 7;
+
+ // Recommended number of doses for immunity
+ proto.PositiveInt series_doses = 8;
+
+ // Disease immunized against
+ repeated proto.CodeableConcept target_disease = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Indicates if dose counts towards immunity
+ proto.CodeableConcept dose_status = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Why dose does (not) count
+ proto.CodeableConcept dose_status_reason = 11;
+ }
+ repeated VaccinationProtocol vaccination_protocol = 29;
+}
+
+// Auto-generated from StructureDefinition for US Core Location Profile.
+// US Core Location Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-location
+message UsCoreLocation {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Location";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-location";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Unique code or number identifying the location to its users
+ repeated proto.Identifier identifier = 9;
+
+ // active | suspended | inactive
+ proto.LocationStatusCode status = 10;
+
+ // The Operational status of the location (typically only for a bed/room)
+ proto.Coding operational_status = 11;
+
+ // Name of the location as used by humans
+ proto.String name = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A list of alternate names that the location is known as, or was known as in
+ // the past
+ repeated proto.String alias = 13;
+
+ // Additional details about the location that could be displayed as further
+ // information to identify the location beyond its name
+ proto.String description = 14;
+
+ // instance | kind
+ proto.LocationModeCode mode = 15;
+
+ // Type of function performed
+ proto.CodeableConcept type = 16;
+
+ // Contact details of the location
+ repeated proto.ContactPoint telecom = 17;
+
+ // Physical location
+ proto.Address address = 18;
+
+ // Physical form of the location
+ proto.CodeableConcept physical_type = 19;
+
+ // The absolute geographic location
+ message Position {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Longitude with WGS84 datum
+ proto.Decimal longitude = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Latitude with WGS84 datum
+ proto.Decimal latitude = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Altitude with WGS84 datum
+ proto.Decimal altitude = 6;
+ }
+ Position position = 20;
+
+ // Organization responsible for provisioning and upkeep
+ proto.Reference managing_organization = 21;
+
+ // Another Location this one is physically part of
+ proto.Reference part_of = 22;
+
+ // Technical endpoints providing access to services operated for the location
+ repeated proto.Reference endpoint = 23;
+}
+
+// Auto-generated from StructureDefinition for US Core Medication Profile.
+// US Core Medication Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication
+message UsCoreMedication {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Medication";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Codes that identify this medication
+ proto.CodeableConcept code = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // active | inactive | entered-in-error
+ proto.MedicationStatusCode status = 10;
+
+ // True if a brand
+ proto.Boolean is_brand = 11;
+
+ // True if medication does not require a prescription
+ proto.Boolean is_over_the_counter = 12;
+
+ // Manufacturer of the item
+ proto.Reference manufacturer = 13;
+
+ // powder | tablets | capsule +
+ proto.CodeableConcept form = 14;
+
+ // Active or inactive ingredient
+ message Ingredient {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The product contained
+ message Item {
+ oneof item {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Item item = 4 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Active ingredient indicator
+ proto.Boolean is_active = 5;
+
+ // Quantity of ingredient present
+ proto.Ratio amount = 6;
+ }
+ repeated Ingredient ingredient = 15;
+
+ // Details about packaged medications
+ message Package {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // E.g. box, vial, blister-pack
+ proto.CodeableConcept container = 4;
+
+ // What is in the package
+ message Content {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The item in the package
+ message Item {
+ oneof item {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Item item = 4 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Quantity present in the package
+ proto.SimpleQuantity amount = 5;
+ }
+ repeated Content content = 5;
+
+ // Identifies a single production run
+ message Batch {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Identifier assigned to batch
+ proto.String lot_number = 4;
+
+ // When batch will expire
+ proto.DateTime expiration_date = 5;
+ }
+ repeated Batch batch = 6;
+ }
+ Package package_value = 16 [json_name = "package"];
+
+ // Picture of the medication
+ repeated proto.Attachment image = 17;
+}
+
+// Auto-generated from StructureDefinition for US Core MedicationRequest
+// Profile. US Core Medication Request Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest
+message UsCoreMedicationrequest {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/MedicationRequest";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External ids for this request
+ repeated proto.Identifier identifier = 9;
+
+ // Protocol or definition
+ repeated proto.Reference definition = 10;
+
+ // What request fulfills
+ repeated proto.Reference based_on = 11;
+
+ // Composite request this is part of
+ proto.Identifier group_identifier = 12;
+
+ // active | on-hold | cancelled | completed | entered-in-error | stopped |
+ // draft | unknown
+ proto.MedicationRequestStatusCode status = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // proposal | plan | order | instance-order
+ proto.MedicationRequestIntentCode intent = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of medication usage
+ proto.CodeableConcept category = 15;
+
+ // routine | urgent | stat | asap
+ proto.MedicationRequestPriorityCode priority = 16;
+
+ // Medication to be taken
+ message Medication {
+ oneof medication {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Medication medication = 17 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Who or group medication request is for
+ proto.Reference subject = 18
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Created during encounter/admission/stay
+ proto.Reference context = 19;
+
+ // Information to support ordering of the medication
+ repeated proto.Reference supporting_information = 20;
+
+ // When request was initially authored
+ proto.DateTime authored_on = 21
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who/What requested the Request
+ message Requester {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Who ordered the initial medication(s)
+ proto.Reference agent = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization agent is acting for
+ proto.Reference on_behalf_of = 5;
+ }
+ Requester requester = 22
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Person who entered the request
+ proto.Reference recorder = 23;
+
+ // Reason or indication for writing the prescription
+ repeated proto.CodeableConcept reason_code = 24;
+
+ // Condition or Observation that supports why the prescription is being
+ // written
+ repeated proto.Reference reason_reference = 25;
+
+ // Information about the prescription
+ repeated proto.Annotation note = 26;
+
+ // How the medication should be taken
+ repeated proto.Dosage dosage_instruction = 27;
+
+ // Medication supply authorization
+ message DispenseRequest {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Time period supply is authorized for
+ proto.Period validity_period = 4;
+
+ // Number of refills authorized
+ proto.PositiveInt number_of_repeats_allowed = 5;
+
+ // Amount of medication to supply per dispense
+ proto.SimpleQuantity quantity = 6;
+
+ // Number of days supply per dispense
+ proto.Duration expected_supply_duration = 7;
+
+ // Intended dispenser
+ proto.Reference performer = 8;
+ }
+ DispenseRequest dispense_request = 28;
+
+ // Any restrictions on medication substitution
+ message Substitution {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Whether substitution is allowed or not
+ proto.Boolean allowed = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Why should (not) substitution be made
+ proto.CodeableConcept reason = 5;
+ }
+ Substitution substitution = 29;
+
+ // An order/prescription that is being replaced
+ proto.Reference prior_prescription = 30;
+
+ // Clinical Issue with action
+ repeated proto.Reference detected_issue = 31;
+
+ // A list of events of interest in the lifecycle
+ repeated proto.Reference event_history = 32;
+}
+
+// Auto-generated from StructureDefinition for US Core MedicationStatement
+// Profile. US Core Medication Statement Profile. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement
+message UsCoreMedicationstatement {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/MedicationStatement";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External identifier
+ repeated proto.Identifier identifier = 9;
+
+ // Fulfils plan, proposal or order
+ repeated proto.Reference based_on = 10;
+
+ // Part of referenced event
+ repeated proto.Reference part_of = 11;
+
+ // Encounter / Episode associated with MedicationStatement
+ proto.Reference context = 12;
+
+ // active | completed | entered-in-error | intended | stopped | on-hold
+ proto.MedicationStatementStatusCode status = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Type of medication usage
+ proto.CodeableConcept category = 14;
+
+ // What medication was taken
+ message Medication {
+ oneof medication {
+ proto.CodeableConcept codeable_concept = 1;
+ proto.Reference reference = 2;
+ }
+ }
+ Medication medication = 15 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // The date/time or interval when the medication was taken
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // When the statement was asserted?
+ proto.DateTime date_asserted = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Person or organization that provided the information about the taking of
+ // this medication
+ proto.Reference information_source = 18;
+
+ // Who is/was taking the medication
+ proto.Reference subject = 19
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Additional supporting information
+ repeated proto.Reference derived_from = 20;
+
+ // y | n | unk | na
+ proto.MedicationStatementTakenCode taken = 21
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // True if asserting medication was not given
+ repeated proto.CodeableConcept reason_not_taken = 22;
+
+ // Reason for why the medication is being/was taken
+ repeated proto.CodeableConcept reason_code = 23;
+
+ // Condition or observation that supports why the medication is being/was
+ // taken
+ repeated proto.Reference reason_reference = 24;
+
+ // Further information about the statement
+ repeated proto.Annotation note = 25;
+
+ // Details of how medication is/was taken or should be taken
+ repeated proto.Dosage dosage = 26;
+}
+
+// Auto-generated from StructureDefinition for US Core Results Profile.
+// US Core Result Observation.
+// See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults
+message UsCoreObservationresults {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Observation";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business Identifier for observation
+ repeated proto.Identifier identifier = 9;
+
+ // Fulfills plan, proposal or order
+ repeated proto.Reference based_on = 10;
+
+ // registered | preliminary | final | amended +
+ proto.ObservationStatusCode status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Classification of type of observation
+ repeated proto.CodeableConcept category = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Laboratory Test Name
+ proto.CodeableConcept code = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who and/or what this is about
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Healthcare event during which this observation is made
+ proto.Reference context = 15;
+
+ // Clinically relevant time/time-period for observation
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date/Time this was made available
+ proto.Instant issued = 17;
+
+ // Who is responsible for the observation
+ repeated proto.Reference performer = 18;
+
+ // Result Value
+ message Value {
+ oneof value {
+ proto.Quantity quantity = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ proto.Boolean boolean = 4;
+ proto.Range range = 5;
+ proto.Ratio ratio = 6;
+ proto.SampledData sampled_data = 7;
+ proto.Attachment attachment = 8;
+ proto.Time time = 9;
+ proto.DateTime date_time = 10;
+ proto.Period period = 11;
+ }
+ }
+ Value value = 19 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Why the result is missing
+ proto.CodeableConcept data_absent_reason = 20;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 21;
+
+ // Comments about result
+ proto.String comment = 22;
+
+ // Observed body part
+ proto.CodeableConcept body_site = 23;
+
+ // How it was done
+ proto.CodeableConcept method = 24;
+
+ // Specimen used for this observation
+ proto.Reference specimen = 25;
+
+ // (Measurement) Device
+ proto.Reference device = 26;
+
+ // Provides guide for interpretation
+ message ReferenceRange {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Low Range, if relevant
+ proto.SimpleQuantity low = 4;
+
+ // High Range, if relevant
+ proto.SimpleQuantity high = 5;
+
+ // Reference range qualifier
+ proto.CodeableConcept type = 6;
+
+ // Reference range population
+ repeated proto.CodeableConcept applies_to = 7;
+
+ // Applicable age range, if relevant
+ proto.Range age = 8;
+
+ // Text based reference range in an observation
+ proto.String text = 9;
+ }
+ repeated ReferenceRange reference_range = 27;
+
+ // Resource related to this observation
+ message Related {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // has-member | derived-from | sequel-to | replaces | qualified-by |
+ // interfered-by
+ proto.ObservationRelationshipTypeCode type = 4;
+
+ // Resource that is related to this one
+ proto.Reference target = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Related related = 28;
+
+ // Component results
+ message Component {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of component observation (code / type)
+ proto.CodeableConcept code = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Actual component result
+ message Value {
+ oneof value {
+ proto.Quantity quantity = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ proto.Range range = 4;
+ proto.Ratio ratio = 5;
+ proto.SampledData sampled_data = 6;
+ proto.Attachment attachment = 7;
+ proto.Time time = 8;
+ proto.DateTime date_time = 9;
+ proto.Period period = 10;
+ }
+ }
+ Value value = 5 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Why the component result is missing
+ proto.CodeableConcept data_absent_reason = 6;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 7;
+
+ // Provides guide for interpretation of component result
+ repeated ReferenceRange reference_range = 8;
+ }
+ repeated Component component = 29;
+}
+
+// Auto-generated from StructureDefinition for US Core Organization Profile.
+// US Core Organization Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization
+message UsCoreOrganization {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Organization";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Identifies this organization across multiple systems
+ repeated proto.Identifier identifier = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Whether the organization's record is still in active use
+ proto.Boolean active = 10
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Kind of organization
+ repeated proto.CodeableConcept type = 11;
+
+ // Name used for the organization
+ proto.String name = 12
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A list of alternate names that the organization is known as, or was known
+ // as in the past
+ repeated proto.String alias = 13;
+
+ // A contact detail for the organization
+ repeated proto.ContactPoint telecom = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // An address for the organization
+ repeated proto.Address address = 15
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // The organization of which this organization forms a part
+ proto.Reference part_of = 16;
+
+ // Contact for the organization for a certain purpose
+ message Contact {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The type of contact
+ proto.CodeableConcept purpose = 4;
+
+ // A name associated with the contact
+ proto.HumanName name = 5;
+
+ // Contact details (telephone, email, etc.) for a contact
+ repeated proto.ContactPoint telecom = 6;
+
+ // Visiting or postal addresses for the contact
+ proto.Address address = 7;
+ }
+ repeated Contact contact = 17;
+
+ // Technical endpoints providing access to services operated for the
+ // organization
+ repeated proto.Reference endpoint = 18;
+}
+
+// Auto-generated from StructureDefinition for US Core Patient Profile.
+// US Core Patient Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
+message UsCorePatient {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Patient";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Extension
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // An identifier for this patient
+ repeated proto.Identifier identifier = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Whether this patient's record is in active use
+ proto.Boolean active = 10;
+
+ // A name associated with the patient
+ repeated proto.HumanName name = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A contact detail for the individual
+ repeated proto.ContactPoint telecom = 12;
+
+ // male | female | other | unknown
+ proto.AdministrativeGenderCode gender = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // The date of birth for the individual
+ proto.Date birth_date = 14;
+
+ // Indicates if the individual is deceased or not
+ message Deceased {
+ oneof deceased {
+ proto.Boolean boolean = 1;
+ proto.DateTime date_time = 2;
+ }
+ }
+ Deceased deceased = 15 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Addresses for the individual
+ repeated proto.Address address = 16;
+
+ // Marital (civil) status of a patient
+ proto.CodeableConcept marital_status = 17;
+
+ // Whether patient is part of a multiple birth
+ message MultipleBirth {
+ oneof multiple_birth {
+ proto.Boolean boolean = 1;
+ proto.Integer integer = 2;
+ }
+ }
+ MultipleBirth multiple_birth = 18
+ [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Image of the patient
+ repeated proto.Attachment photo = 19;
+
+ // A contact party (e.g. guardian, partner, friend) for the patient
+ message Contact {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The kind of relationship
+ repeated proto.CodeableConcept relationship = 4;
+
+ // A name associated with the contact person
+ proto.HumanName name = 5;
+
+ // A contact detail for the person
+ repeated proto.ContactPoint telecom = 6;
+
+ // Address for the contact person
+ proto.Address address = 7;
+
+ // male | female | other | unknown
+ proto.AdministrativeGenderCode gender = 8;
+
+ // Organization that is associated with the contact
+ proto.Reference organization = 9;
+
+ // The period during which this contact person or organization is valid to
+ // be contacted relating to this patient
+ proto.Period period = 10;
+ }
+ repeated Contact contact = 20;
+
+ // A list of Languages which may be used to communicate with the patient about
+ // his or her health
+ message Communication {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The language which can be used to communicate with the patient about his
+ // or her health
+ proto.CodeableConcept language = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Language preference indicator
+ proto.Boolean preferred = 5;
+ }
+ repeated Communication communication = 22;
+
+ // Patient's nominated primary care provider
+ repeated proto.Reference general_practitioner = 23;
+
+ // Organization that is the custodian of the patient record
+ proto.Reference managing_organization = 24;
+
+ // Link to another patient resource that concerns the same actual person
+ message Link {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The other patient or related person resource that the link refers to
+ proto.Reference other = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // replaced-by | replaces | refer | seealso - type of link
+ proto.LinkTypeCode type = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Link link = 25;
+
+ // Extension
+ PatientUSCoreRaceExtension race = 26
+ [(.google.fhir.stu3.proto.fhir_inlined_extension_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"];
+
+ // Extension
+ PatientUSCoreEthnicityExtension ethnicity = 27
+ [(.google.fhir.stu3.proto.fhir_inlined_extension_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"];
+
+ // Extension
+ proto.UsCoreBirthSexCode birthsex = 28
+ [(.google.fhir.stu3.proto.fhir_inlined_extension_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"];
+}
+
+// Auto-generated from StructureDefinition for US Core Practitioner Profile.
+// US Core Practitioner.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
+message UsCorePractitioner {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Practitioner";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // A identifier for the person as this agent
+ repeated proto.Identifier identifier = 9
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Whether this practitioner's record is in active use
+ proto.Boolean active = 10;
+
+ // The name(s) associated with the practitioner
+ proto.HumanName name = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // A contact detail for the practitioner (that apply to all roles)
+ repeated proto.ContactPoint telecom = 12;
+
+ // Address(es) of the practitioner that are not role specific (typically home
+ // address)
+ repeated proto.Address address = 13;
+
+ // male | female | other | unknown
+ proto.AdministrativeGenderCode gender = 14;
+
+ // The date on which the practitioner was born
+ proto.Date birth_date = 15;
+
+ // Image of the person
+ repeated proto.Attachment photo = 16;
+
+ // Qualifications obtained by training and certification
+ message Qualification {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // An identifier for this qualification for the practitioner
+ repeated proto.Identifier identifier = 4;
+
+ // Coded representation of the qualification
+ proto.CodeableConcept code = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Period during which the qualification is valid
+ proto.Period period = 6;
+
+ // Organization that regulates and issues the qualification
+ proto.Reference issuer = 7;
+ }
+ repeated Qualification qualification = 17;
+
+ // A language the practitioner is able to use in patient communication
+ repeated proto.CodeableConcept communication = 18;
+}
+
+// Auto-generated from StructureDefinition for US Core Procedure Profile.
+// US Core Procedure Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure
+message UsCoreProcedure {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Procedure";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // External Identifiers for this procedure
+ repeated proto.Identifier identifier = 9;
+
+ // Instantiates protocol or definition
+ repeated proto.Reference definition = 10;
+
+ // A request for this procedure
+ repeated proto.Reference based_on = 11;
+
+ // Part of referenced event
+ repeated proto.Reference part_of = 12;
+
+ // preparation | in-progress | suspended | aborted | completed |
+ // entered-in-error | unknown
+ proto.EventStatusCode status = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // True if procedure was not performed as scheduled
+ proto.Boolean not_done = 14;
+
+ // Reason procedure was not performed
+ proto.CodeableConcept not_done_reason = 15;
+
+ // Classification of the procedure
+ proto.CodeableConcept category = 16;
+
+ // SNOMED-CT | ICD-10 | CPT-4
+ proto.CodeableConcept code = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who the procedure was performed on
+ proto.Reference subject = 18
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Encounter or episode associated with the procedure
+ proto.Reference context = 19;
+
+ // Date/Period the procedure was performed
+ message Performed {
+ oneof performed {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Performed performed = 20 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // The people who performed the procedure
+ message Performer {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // The role the actor was in
+ proto.CodeableConcept role = 4;
+
+ // The reference to the practitioner
+ proto.Reference actor = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Organization the device or practitioner was acting for
+ proto.Reference on_behalf_of = 6;
+ }
+ repeated Performer performer = 21;
+
+ // Where the procedure happened
+ proto.Reference location = 22;
+
+ // Coded reason procedure performed
+ repeated proto.CodeableConcept reason_code = 23;
+
+ // Condition that is the reason the procedure performed
+ repeated proto.Reference reason_reference = 24;
+
+ // Target body sites
+ repeated proto.CodeableConcept body_site = 25;
+
+ // The result of procedure
+ proto.CodeableConcept outcome = 26;
+
+ // Any report resulting from the procedure
+ repeated proto.Reference report = 27;
+
+ // Complication following the procedure
+ repeated proto.CodeableConcept complication = 28;
+
+ // A condition that is a result of the procedure
+ repeated proto.Reference complication_detail = 29;
+
+ // Instructions for follow up
+ repeated proto.CodeableConcept follow_up = 30;
+
+ // Additional information about the procedure
+ repeated proto.Annotation note = 31;
+
+ // Device changed in procedure
+ message FocalDevice {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Kind of change to device
+ proto.CodeableConcept action = 4;
+
+ // Device that was changed
+ proto.Reference manipulated = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated FocalDevice focal_device = 32;
+
+ // Items used during procedure
+ repeated proto.Reference used_reference = 33;
+
+ // Coded items used during the procedure
+ repeated proto.CodeableConcept used_code = 34;
+}
+
+// Auto-generated from StructureDefinition for Profile-resource association
+// extension. Resource that this profile is based on. See
+// http://hl7.org/fhir/us/core/StructureDefinition/us-core-profile-link
+message CapabilityStatementProfileResourceAssociationExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-profile-link";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Value of extension
+ proto.ResourceTypeCode value_code = 3;
+}
+
+// Auto-generated from StructureDefinition for US Core Race Extension.
+// US Core Race Extension.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
+message PatientUSCoreRaceExtension {
+ option (.google.fhir.stu3.proto.structure_definition_kind) =
+ KIND_COMPLEX_TYPE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Extension";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race";
+
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Extension
+ repeated proto.Extension extension = 2;
+
+ // American Indian or Alaska Native|Asian|Black or African American|Native
+ // Hawaiian or Other Pacific Islander|White
+ repeated proto.Coding omb_category = 4;
+
+ // Extended race codes
+ repeated proto.Coding detailed = 5;
+
+ // Race Text
+ proto.String text = 6
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+}
+
+// Auto-generated from StructureDefinition for US Core Smoking Status Profile.
+// US Core Smoking Status Observation Profile.
+// See http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
+message UsCoreSmokingstatus {
+ option (.google.fhir.stu3.proto.structure_definition_kind) = KIND_RESOURCE;
+ option (.google.fhir.stu3.proto.fhir_profile_base) =
+ "http://hl7.org/fhir/StructureDefinition/Observation";
+ option (.google.fhir.stu3.proto.fhir_structure_definition_url) =
+ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus";
+
+ // Logical id of this artifact
+ proto.Id id = 1;
+
+ // Metadata about the resource
+ proto.Meta meta = 2;
+
+ // A set of rules under which this content was created
+ proto.Uri implicit_rules = 3;
+
+ // Language of the resource content
+ proto.LanguageCode language = 4;
+
+ // Text summary of the resource, for human interpretation
+ proto.Narrative text = 5;
+
+ // Contained, inline Resources
+ repeated proto.ContainedResource contained = 6;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 7;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 8;
+
+ // Business Identifier for observation
+ repeated proto.Identifier identifier = 9;
+
+ // Fulfills plan, proposal or order
+ repeated proto.Reference based_on = 10;
+
+ // registered | preliminary | final | amended +
+ proto.ObservationStatusCode status = 11
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Classification of type of observation
+ repeated proto.CodeableConcept category = 12;
+
+ // Smoking Status: LOINC 72166-2 = Tobacco smoking status NHIS
+ proto.CodeableConcept code = 13
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who and/or what this is about
+ proto.Reference subject = 14
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Healthcare event during which this observation is made
+ proto.Reference context = 15;
+
+ // Clinically relevant time/time-period for observation
+ message Effective {
+ oneof effective {
+ proto.DateTime date_time = 1;
+ proto.Period period = 2;
+ }
+ }
+ Effective effective = 16 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Date/Time this was made available
+ proto.Instant issued = 17
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Who is responsible for the observation
+ repeated proto.Reference performer = 18;
+
+ // Coded Responses from Smoking Status Value Set
+ message Value {
+ oneof value {
+ proto.CodeableConcept codeable_concept = 2;
+ }
+ }
+ Value value = 19 [
+ (.google.fhir.stu3.proto.is_choice_type) = true,
+ (.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR
+ ];
+
+ // Why the result is missing
+ proto.CodeableConcept data_absent_reason = 20;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 21;
+
+ // Comments about result
+ proto.String comment = 22;
+
+ // Observed body part
+ proto.CodeableConcept body_site = 23;
+
+ // How it was done
+ proto.CodeableConcept method = 24;
+
+ // Specimen used for this observation
+ proto.Reference specimen = 25;
+
+ // (Measurement) Device
+ proto.Reference device = 26;
+
+ // Provides guide for interpretation
+ message ReferenceRange {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Low Range, if relevant
+ proto.SimpleQuantity low = 4;
+
+ // High Range, if relevant
+ proto.SimpleQuantity high = 5;
+
+ // Reference range qualifier
+ proto.CodeableConcept type = 6;
+
+ // Reference range population
+ repeated proto.CodeableConcept applies_to = 7;
+
+ // Applicable age range, if relevant
+ proto.Range age = 8;
+
+ // Text based reference range in an observation
+ proto.String text = 9;
+ }
+ repeated ReferenceRange reference_range = 27;
+
+ // Resource related to this observation
+ message Related {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // has-member | derived-from | sequel-to | replaces | qualified-by |
+ // interfered-by
+ proto.ObservationRelationshipTypeCode type = 4;
+
+ // Resource that is related to this one
+ proto.Reference target = 5
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+ }
+ repeated Related related = 28;
+
+ // Component results
+ message Component {
+ // xml:id (or equivalent in JSON)
+ proto.String id = 1;
+
+ // Additional Content defined by implementations
+ repeated proto.Extension extension = 2;
+
+ // Extensions that cannot be ignored
+ repeated proto.Extension modifier_extension = 3;
+
+ // Type of component observation (code / type)
+ proto.CodeableConcept code = 4
+ [(.google.fhir.stu3.proto.validation_requirement) = REQUIRED_BY_FHIR];
+
+ // Actual component result
+ message Value {
+ oneof value {
+ proto.Quantity quantity = 1;
+ proto.CodeableConcept codeable_concept = 2;
+ proto.String string_value = 3 [json_name = "string"];
+ proto.Range range = 4;
+ proto.Ratio ratio = 5;
+ proto.SampledData sampled_data = 6;
+ proto.Attachment attachment = 7;
+ proto.Time time = 8;
+ proto.DateTime date_time = 9;
+ proto.Period period = 10;
+ }
+ }
+ Value value = 5 [(.google.fhir.stu3.proto.is_choice_type) = true];
+
+ // Why the component result is missing
+ proto.CodeableConcept data_absent_reason = 6;
+
+ // High, low, normal, etc.
+ proto.CodeableConcept interpretation = 7;
+
+ // Provides guide for interpretation of component result
+ repeated ReferenceRange reference_range = 8;
+ }
+ repeated Component component = 29;
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-allergyintolerance.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-allergyintolerance.descriptor.prototxt
new file mode 100644
index 0000000000..54c9f79878
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-allergyintolerance.descriptor.prototxt
@@ -0,0 +1,392 @@
+name: "UsCoreAllergyintolerance"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External ids for this item"
+ }
+}
+field {
+ name: "clinical_status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AllergyIntoleranceClinicalStatusCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "active | inactive | resolved"
+ }
+}
+field {
+ name: "verification_status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AllergyIntoleranceVerificationStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "unconfirmed | confirmed | refuted | entered-in-error"
+ }
+}
+field {
+ name: "type"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AllergyIntoleranceTypeCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "allergy | intolerance - Underlying mechanism (if known)"
+ }
+}
+field {
+ name: "category"
+ number: 13
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AllergyIntoleranceCategoryCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "food | medication | environment | biologic"
+ }
+}
+field {
+ name: "criticality"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AllergyIntoleranceCriticalityCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "low | high | unable-to-assess"
+ }
+}
+field {
+ name: "code"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Code that identifies the allergy or intolerance"
+ }
+}
+field {
+ name: "patient"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who the sensitivity is for"
+ }
+}
+field {
+ name: "onset"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreAllergyintolerance.Onset"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "When allergy or intolerance was identified"
+ }
+}
+field {
+ name: "asserted_date"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date record was believed accurate"
+ }
+}
+field {
+ name: "recorder"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who recorded the sensitivity"
+ }
+}
+field {
+ name: "asserter"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Source of the information about the allergy"
+ }
+}
+field {
+ name: "last_occurrence"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date(/time) of last known occurrence of a reaction"
+ }
+}
+field {
+ name: "note"
+ number: 22
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional text not captured in other fields"
+ }
+}
+field {
+ name: "reaction"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreAllergyintolerance.Reaction"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Adverse Reaction Events linked to exposure to substance"
+ }
+}
+nested_type {
+ name: "Onset"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "age"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Age"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ field {
+ name: "range"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ oneof_decl {
+ name: "onset"
+ }
+}
+nested_type {
+ name: "Reaction"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "substance"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Specific substance or pharmaceutical product considered to be responsible for event"
+ }
+ }
+ field {
+ name: "manifestation"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Clinical symptoms/signs associated with the Event"
+ }
+ }
+ field {
+ name: "description"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Description of the event as a whole"
+ }
+ }
+ field {
+ name: "onset"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date(/time) when manifestations showed"
+ }
+ }
+ field {
+ name: "severity"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AllergyIntoleranceSeverityCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "mild | moderate | severe (of event as a whole)"
+ }
+ }
+ field {
+ name: "exposure_route"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How the subject was exposed to the substance"
+ }
+ }
+ field {
+ name: "note"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text about event not captured in other fields"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core AllergyIntolerance Profile.\nUS Core Allergies Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/AllergyIntolerance"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-birthsex.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-birthsex.descriptor.prototxt
new file mode 100644
index 0000000000..566c660fdf
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-birthsex.descriptor.prototxt
@@ -0,0 +1,37 @@
+name: "PatientUSCoreBirthSexExtension"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+}
+field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "value_code"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreBirthSexCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Value of extension"
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_COMPLEX_TYPE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Birth Sex Extension.\nExtension.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Extension"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-careplan.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-careplan.descriptor.prototxt
new file mode 100644
index 0000000000..900065a773
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-careplan.descriptor.prototxt
@@ -0,0 +1,624 @@
+name: "UsCoreCareplan"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External Ids for this plan"
+ }
+}
+field {
+ name: "definition"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Protocol or definition"
+ }
+}
+field {
+ name: "based_on"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Fulfills care plan"
+ }
+}
+field {
+ name: "replaces"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "CarePlan replaced by this CarePlan"
+ }
+}
+field {
+ name: "part_of"
+ number: 13
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Part of referenced CarePlan"
+ }
+}
+field {
+ name: "status"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CarePlanStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "draft | active | suspended | completed | entered-in-error | cancelled | unknown"
+ }
+}
+field {
+ name: "intent"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CarePlanIntentCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "proposal | plan | order | option"
+ }
+}
+field {
+ name: "category"
+ number: 16
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Type of plan"
+ }
+}
+field {
+ name: "title"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Human-friendly name for the CarePlan"
+ }
+}
+field {
+ name: "description"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Summary of nature of plan"
+ }
+}
+field {
+ name: "subject"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who care plan is for"
+ }
+}
+field {
+ name: "context"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Created in context of"
+ }
+}
+field {
+ name: "period"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Time period plan covers"
+ }
+}
+field {
+ name: "author"
+ number: 22
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who is responsible for contents of the plan"
+ }
+}
+field {
+ name: "care_team"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who\'s involved in plan?"
+ }
+}
+field {
+ name: "addresses"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Health issues this plan addresses"
+ }
+}
+field {
+ name: "supporting_info"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Information considered as part of plan"
+ }
+}
+field {
+ name: "goal"
+ number: 26
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Desired outcome of plan"
+ }
+}
+field {
+ name: "activity"
+ number: 27
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCareplan.Activity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Action to occur as part of plan"
+ }
+}
+field {
+ name: "note"
+ number: 28
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comments about the plan"
+ }
+}
+nested_type {
+ name: "Activity"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "outcome_codeable_concept"
+ number: 4
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Results of the activity"
+ }
+ }
+ field {
+ name: "outcome_reference"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Appointment, Encounter, Procedure, etc."
+ }
+ }
+ field {
+ name: "progress"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comments about the activity status/progress"
+ }
+ }
+ field {
+ name: "reference"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Activity details defined in specific resource"
+ }
+ }
+ field {
+ name: "detail"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCareplan.Activity.Detail"
+ options {
+ [google.fhir.stu3.proto.field_description]: "In-line definition of activity"
+ }
+ }
+ nested_type {
+ name: "Detail"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "category"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "diet | drug | encounter | observation | procedure | supply | other"
+ }
+ }
+ field {
+ name: "definition"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Protocol or definition"
+ }
+ }
+ field {
+ name: "code"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Detail type of activity"
+ }
+ }
+ field {
+ name: "reason_code"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why activity should be done or why activity was prohibited"
+ }
+ }
+ field {
+ name: "reason_reference"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Condition triggering need for activity"
+ }
+ }
+ field {
+ name: "goal"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Goals this activity relates to"
+ }
+ }
+ field {
+ name: "status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CarePlanActivityStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "not-started | scheduled | in-progress | on-hold | completed | cancelled | unknown"
+ }
+ }
+ field {
+ name: "status_reason"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reason for current status"
+ }
+ }
+ field {
+ name: "prohibited"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Do NOT do"
+ }
+ }
+ field {
+ name: "scheduled"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCareplan.Activity.Detail.Scheduled"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "When activity is to occur"
+ }
+ }
+ field {
+ name: "location"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Where it should happen"
+ }
+ }
+ field {
+ name: "performer"
+ number: 15
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who will be responsible?"
+ }
+ }
+ field {
+ name: "product"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCareplan.Activity.Detail.Product"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "What is to be administered/supplied"
+ }
+ }
+ field {
+ name: "daily_amount"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How to consume/day?"
+ }
+ }
+ field {
+ name: "quantity"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How much to administer/supply/consume"
+ }
+ }
+ field {
+ name: "description"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extra info describing activity to perform"
+ }
+ }
+ nested_type {
+ name: "Scheduled"
+ field {
+ name: "timing"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Timing"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ oneof_decl {
+ name: "scheduled"
+ }
+ }
+ nested_type {
+ name: "Product"
+ field {
+ name: "codeable_concept"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "reference"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "product"
+ }
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core CarePlan Profile.\nUS Core CarePlan Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/CarePlan"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-careteam.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-careteam.descriptor.prototxt
new file mode 100644
index 0000000000..221b849eb8
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-careteam.descriptor.prototxt
@@ -0,0 +1,285 @@
+name: "UsCoreCareteam"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External Ids for this team"
+ }
+}
+field {
+ name: "status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CareTeamStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "proposed | active | suspended | inactive | entered-in-error"
+ }
+}
+field {
+ name: "category"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Type of team"
+ }
+}
+field {
+ name: "name"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Name of the team, such as crisis assessment team"
+ }
+}
+field {
+ name: "subject"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who care team is for"
+ }
+}
+field {
+ name: "context"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Encounter or episode associated with CareTeam"
+ }
+}
+field {
+ name: "period"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Time period team covers"
+ }
+}
+field {
+ name: "participant"
+ number: 16
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCareteam.Participant"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Members of the team"
+ }
+}
+field {
+ name: "reason_code"
+ number: 17
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why the care team exists"
+ }
+}
+field {
+ name: "reason_reference"
+ number: 18
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why the care team exists"
+ }
+}
+field {
+ name: "managing_organization"
+ number: 19
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization responsible for the care team"
+ }
+}
+field {
+ name: "note"
+ number: 20
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comments made about the CareTeam"
+ }
+}
+nested_type {
+ name: "Participant"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "role"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Type of involvement"
+ }
+ }
+ field {
+ name: "member"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who is involved"
+ }
+ }
+ field {
+ name: "on_behalf_of"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization of the practitioner"
+ }
+ }
+ field {
+ name: "period"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Time period of participant"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core CareTeam Profile.\nUS Core CareTeam Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/CareTeam"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-condition.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-condition.descriptor.prototxt
new file mode 100644
index 0000000000..19db976268
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-condition.descriptor.prototxt
@@ -0,0 +1,461 @@
+name: "UsCoreCondition"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External Ids for this condition"
+ }
+}
+field {
+ name: "clinical_status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ConditionClinicalStatusCodesCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "active | recurrence | inactive | remission | resolved"
+ }
+}
+field {
+ name: "verification_status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ConditionVerificationStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "provisional | differential | confirmed | refuted | entered-in-error | unknown"
+ }
+}
+field {
+ name: "category"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "problem-list-item | encounter-diagnosis"
+ }
+}
+field {
+ name: "severity"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Subjective severity of condition"
+ }
+}
+field {
+ name: "code"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Identification of the condition, problem or diagnosis"
+ }
+}
+field {
+ name: "body_site"
+ number: 15
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Anatomical location, if relevant"
+ }
+}
+field {
+ name: "subject"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who has the condition?"
+ }
+}
+field {
+ name: "context"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Encounter or episode when condition first asserted"
+ }
+}
+field {
+ name: "onset"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCondition.Onset"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Estimated or actual date, date-time, or age"
+ }
+}
+field {
+ name: "abatement"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCondition.Abatement"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "If/when in resolution/remission"
+ }
+}
+field {
+ name: "asserted_date"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date record was believed accurate"
+ }
+}
+field {
+ name: "asserter"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Person who asserts this condition"
+ }
+}
+field {
+ name: "stage"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCondition.Stage"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Stage/grade, usually assessed formally"
+ }
+}
+field {
+ name: "evidence"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreCondition.Evidence"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Supporting evidence"
+ }
+}
+field {
+ name: "note"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional information about the Condition"
+ }
+}
+nested_type {
+ name: "Onset"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "age"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Age"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ field {
+ name: "range"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ oneof_decl {
+ name: "onset"
+ }
+}
+nested_type {
+ name: "Abatement"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "age"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Age"
+ oneof_index: 0
+ }
+ field {
+ name: "boolean"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ field {
+ name: "range"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ oneof_decl {
+ name: "abatement"
+ }
+}
+nested_type {
+ name: "Stage"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "summary"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Simple summary (disease specific)"
+ }
+ }
+ field {
+ name: "assessment"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Formal record of assessment"
+ }
+ }
+}
+nested_type {
+ name: "Evidence"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "code"
+ number: 4
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Manifestation/symptom"
+ }
+ }
+ field {
+ name: "detail"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Supporting information found elsewhere"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Condition (a.k.a Problem) Profile.\nUS Core Condition Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Condition"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-device.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-device.descriptor.prototxt
new file mode 100644
index 0000000000..41645c01f5
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-device.descriptor.prototxt
@@ -0,0 +1,363 @@
+name: "UsCoreDevice"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Instance identifier"
+ }
+}
+field {
+ name: "udi"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreDevice.Udi"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Unique Device Identifier (UDI) Barcode string"
+ }
+}
+field {
+ name: "status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.FHIRDeviceStatusCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "active | inactive | entered-in-error | unknown"
+ }
+}
+field {
+ name: "type"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "What kind of device this is"
+ }
+}
+field {
+ name: "lot_number"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Lot number of manufacture"
+ }
+}
+field {
+ name: "manufacturer"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Name of device manufacturer"
+ }
+}
+field {
+ name: "manufacture_date"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date when the device was made"
+ }
+}
+field {
+ name: "expiration_date"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date and time of expiry of this device (if applicable)"
+ }
+}
+field {
+ name: "model"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Model id assigned by the manufacturer"
+ }
+}
+field {
+ name: "version"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Version number (i.e. software)"
+ }
+}
+field {
+ name: "patient"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Patient to whom Device is affixed"
+ }
+}
+field {
+ name: "owner"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization responsible for device"
+ }
+}
+field {
+ name: "contact"
+ number: 21
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Details for human/organization for support"
+ }
+}
+field {
+ name: "location"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Where the resource is found"
+ }
+}
+field {
+ name: "url"
+ number: 23
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Network address to contact device"
+ }
+}
+field {
+ name: "note"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Device notes and comments"
+ }
+}
+field {
+ name: "safety"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Safety Characteristics of Device"
+ }
+}
+nested_type {
+ name: "Udi"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "device_identifier"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Mandatory fixed portion of UDI"
+ }
+ }
+ field {
+ name: "name"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Device Name as appears on UDI label"
+ }
+ }
+ field {
+ name: "jurisdiction"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Regional UDI authority"
+ }
+ }
+ field {
+ name: "carrier_h_r_f"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "UDI Human Readable Barcode String"
+ }
+ }
+ field {
+ name: "carrier_a_i_d_c"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Base64Binary"
+ options {
+ [google.fhir.stu3.proto.field_description]: "UDI Machine Readable Barcode String"
+ }
+ }
+ field {
+ name: "issuer"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "UDI Issuing Organization"
+ }
+ }
+ field {
+ name: "entry_type"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.UDIEntryTypeCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "barcode | rfid | manual +"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Device Profile.\nUS Core Implanted Device Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-device"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Device"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-device"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-diagnosticreport.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-diagnosticreport.descriptor.prototxt
new file mode 100644
index 0000000000..fa7e851493
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-diagnosticreport.descriptor.prototxt
@@ -0,0 +1,394 @@
+name: "UsCoreDiagnosticreport"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Business identifier for report"
+ }
+}
+field {
+ name: "based_on"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "What was requested"
+ }
+}
+field {
+ name: "status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DiagnosticReportStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "registered | partial | preliminary | final +"
+ }
+}
+field {
+ name: "category"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Service category"
+ }
+}
+field {
+ name: "code"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "US Core Laboratory Report Order Code"
+ }
+}
+field {
+ name: "subject"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "The subject of the report - usually, but not always, the patient"
+ }
+}
+field {
+ name: "context"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Health care event when test ordered"
+ }
+}
+field {
+ name: "effective"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreDiagnosticreport.Effective"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Specimen Collection Datetime or Period"
+ }
+}
+field {
+ name: "issued"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Instant"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "DateTime this version was released"
+ }
+}
+field {
+ name: "performer"
+ number: 18
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreDiagnosticreport.Performer"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Participants in producing the report"
+ }
+}
+field {
+ name: "specimen"
+ number: 19
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Specimens this report is based on"
+ }
+}
+field {
+ name: "result"
+ number: 20
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Observations - simple, or complex nested groups"
+ }
+}
+field {
+ name: "imaging_study"
+ number: 21
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reference to full details of imaging associated with the diagnostic report"
+ }
+}
+field {
+ name: "image"
+ number: 22
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreDiagnosticreport.Image"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Key images associated with this report"
+ }
+}
+field {
+ name: "conclusion"
+ number: 23
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Clinical Interpretation of test results"
+ }
+}
+field {
+ name: "coded_diagnosis"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Codes for the conclusion"
+ }
+}
+field {
+ name: "presented_form"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Entire report as issued"
+ }
+}
+nested_type {
+ name: "Effective"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "effective"
+ }
+}
+nested_type {
+ name: "Performer"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "role"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Type of performer"
+ }
+ }
+ field {
+ name: "actor"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Practitioner or Organization participant"
+ }
+ }
+}
+nested_type {
+ name: "Image"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "comment"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comment about the image (e.g. explanation)"
+ }
+ }
+ field {
+ name: "link"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Reference to the image source"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core DiagnosticReport Profile.\nUS Core Diagnostic Report Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/DiagnosticReport"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-direct.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-direct.descriptor.prototxt
new file mode 100644
index 0000000000..4746184222
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-direct.descriptor.prototxt
@@ -0,0 +1,37 @@
+name: "ContactPointUsCoreDirect"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+}
+field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "value_boolean"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Value of extension"
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_COMPLEX_TYPE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for UsCoreDirect.\nEmail is a \"direct\" email.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Extension"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-ethnicity.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-ethnicity.descriptor.prototxt
new file mode 100644
index 0000000000..183f47819e
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-ethnicity.descriptor.prototxt
@@ -0,0 +1,58 @@
+name: "PatientUSCoreEthnicityExtension"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+}
+field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extension"
+ }
+}
+field {
+ name: "omb_category"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Coding"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Hispanic or Latino|Not Hispanic or Latino"
+ }
+}
+field {
+ name: "detailed"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Coding"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extended ethnicity codes"
+ }
+}
+field {
+ name: "text"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "ethnicity Text"
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_COMPLEX_TYPE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core ethnicity Extension.\nUS Core ethnicity Extension.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Extension"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-goal.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-goal.descriptor.prototxt
new file mode 100644
index 0000000000..91fc555f65
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-goal.descriptor.prototxt
@@ -0,0 +1,380 @@
+name: "UsCoreGoal"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External Ids for this goal"
+ }
+}
+field {
+ name: "status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.GoalStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "proposed | accepted | planned | in-progress | on-target | ahead-of-target | behind-target | sustaining | achieved | on-hold | cancelled | entered-in-error | rejected"
+ }
+}
+field {
+ name: "category"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "E.g. Treatment, dietary, behavioral, etc."
+ }
+}
+field {
+ name: "priority"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "high-priority | medium-priority | low-priority"
+ }
+}
+field {
+ name: "description"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Code or text describing goal"
+ }
+}
+field {
+ name: "subject"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who this goal is intended for"
+ }
+}
+field {
+ name: "start"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreGoal.Start"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "When goal pursuit begins"
+ }
+}
+field {
+ name: "target"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreGoal.Target"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Target outcome for the goal"
+ }
+}
+field {
+ name: "status_date"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Date"
+ options {
+ [google.fhir.stu3.proto.field_description]: "When goal status took effect"
+ }
+}
+field {
+ name: "status_reason"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reason for current status"
+ }
+}
+field {
+ name: "expressed_by"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who\'s responsible for creating Goal?"
+ }
+}
+field {
+ name: "addresses"
+ number: 20
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Issues addressed by this goal"
+ }
+}
+field {
+ name: "note"
+ number: 21
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comments about the goal"
+ }
+}
+field {
+ name: "outcome_code"
+ number: 22
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "What result was achieved regarding the goal?"
+ }
+}
+field {
+ name: "outcome_reference"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Observation that resulted from goal"
+ }
+}
+nested_type {
+ name: "Start"
+ field {
+ name: "date"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Date"
+ oneof_index: 0
+ }
+ field {
+ name: "codeable_concept"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "start"
+ }
+}
+nested_type {
+ name: "Target"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "measure"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The parameter whose value is being tracked"
+ }
+ }
+ field {
+ name: "detail"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreGoal.Target.Detail"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "The target value to be achieved"
+ }
+ }
+ field {
+ name: "due"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreGoal.Target.Due"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Reach goal on or before"
+ }
+ }
+ nested_type {
+ name: "Detail"
+ field {
+ name: "quantity"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Quantity"
+ oneof_index: 0
+ }
+ field {
+ name: "range"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "codeable_concept"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "detail"
+ }
+ }
+ nested_type {
+ name: "Due"
+ field {
+ name: "date"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Date"
+ oneof_index: 0
+ }
+ field {
+ name: "duration"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Duration"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "due"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Goal Profile.\nUS Core Goal Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Goal"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-immunization.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-immunization.descriptor.prototxt
new file mode 100644
index 0000000000..3aaee92aac
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-immunization.descriptor.prototxt
@@ -0,0 +1,588 @@
+name: "UsCoreImmunization"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Business identifier"
+ }
+}
+field {
+ name: "status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ImmunizationStatusCodesCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "completed | entered-in-error"
+ }
+}
+field {
+ name: "not_given"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Flag for whether immunization was given"
+ }
+}
+field {
+ name: "vaccine_code"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Vaccine Product Type (bind to CVX)"
+ }
+}
+field {
+ name: "patient"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who was immunized"
+ }
+}
+field {
+ name: "encounter"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Encounter administered as part of"
+ }
+}
+field {
+ name: "date"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Vaccination administration date"
+ }
+}
+field {
+ name: "primary_source"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Indicates context the data was recorded in"
+ }
+}
+field {
+ name: "report_origin"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Indicates the source of a secondarily reported record"
+ }
+}
+field {
+ name: "location"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Where vaccination occurred"
+ }
+}
+field {
+ name: "manufacturer"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Vaccine manufacturer"
+ }
+}
+field {
+ name: "lot_number"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Vaccine lot number"
+ }
+}
+field {
+ name: "expiration_date"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Date"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Vaccine expiration date"
+ }
+}
+field {
+ name: "site"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Body site vaccine was administered"
+ }
+}
+field {
+ name: "route"
+ number: 23
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How vaccine entered body"
+ }
+}
+field {
+ name: "dose_quantity"
+ number: 24
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Amount of vaccine administered"
+ }
+}
+field {
+ name: "practitioner"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreImmunization.Practitioner"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who performed event"
+ }
+}
+field {
+ name: "note"
+ number: 26
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Vaccination notes"
+ }
+}
+field {
+ name: "explanation"
+ number: 27
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreImmunization.Explanation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Administration/non-administration reasons"
+ }
+}
+field {
+ name: "reaction"
+ number: 28
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreImmunization.Reaction"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Details of a reaction that follows immunization"
+ }
+}
+field {
+ name: "vaccination_protocol"
+ number: 29
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreImmunization.VaccinationProtocol"
+ options {
+ [google.fhir.stu3.proto.field_description]: "What protocol was followed"
+ }
+}
+nested_type {
+ name: "Practitioner"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "role"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "What type of performance was done"
+ }
+ }
+ field {
+ name: "actor"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Individual who was performing"
+ }
+ }
+}
+nested_type {
+ name: "Explanation"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "reason"
+ number: 4
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why immunization occurred"
+ }
+ }
+ field {
+ name: "reason_not_given"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why immunization did not occur"
+ }
+ }
+}
+nested_type {
+ name: "Reaction"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "date"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "When reaction started"
+ }
+ }
+ field {
+ name: "detail"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional information on reaction"
+ }
+ }
+ field {
+ name: "reported"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Indicates self-reported reaction"
+ }
+ }
+}
+nested_type {
+ name: "VaccinationProtocol"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "dose_sequence"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.PositiveInt"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Dose number within series"
+ }
+ }
+ field {
+ name: "description"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Details of vaccine protocol"
+ }
+ }
+ field {
+ name: "authority"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who is responsible for protocol"
+ }
+ }
+ field {
+ name: "series"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Name of vaccine series"
+ }
+ }
+ field {
+ name: "series_doses"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.PositiveInt"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Recommended number of doses for immunity"
+ }
+ }
+ field {
+ name: "target_disease"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Disease immunized against"
+ }
+ }
+ field {
+ name: "dose_status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Indicates if dose counts towards immunity"
+ }
+ }
+ field {
+ name: "dose_status_reason"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why dose does (not) count"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Immunization Profile.\nUS Core Immunization Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Immunization"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-location.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-location.descriptor.prototxt
new file mode 100644
index 0000000000..030f65ecc0
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-location.descriptor.prototxt
@@ -0,0 +1,303 @@
+name: "UsCoreLocation"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Unique code or number identifying the location to its users"
+ }
+}
+field {
+ name: "status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LocationStatusCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "active | suspended | inactive"
+ }
+}
+field {
+ name: "operational_status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Coding"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The Operational status of the location (typically only for a bed/room)"
+ }
+}
+field {
+ name: "name"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Name of the location as used by humans"
+ }
+}
+field {
+ name: "alias"
+ number: 13
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A list of\302\240alternate names that the location is known as, or was known as in the past"
+ }
+}
+field {
+ name: "description"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional details about the location that could be displayed as further information to identify the location beyond its name"
+ }
+}
+field {
+ name: "mode"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LocationModeCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "instance | kind"
+ }
+}
+field {
+ name: "type"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Type of function performed"
+ }
+}
+field {
+ name: "telecom"
+ number: 17
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contact details of the location"
+ }
+}
+field {
+ name: "address"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Address"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Physical location"
+ }
+}
+field {
+ name: "physical_type"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Physical form of the location"
+ }
+}
+field {
+ name: "position"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreLocation.Position"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The absolute geographic location"
+ }
+}
+field {
+ name: "managing_organization"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization responsible for provisioning and upkeep"
+ }
+}
+field {
+ name: "part_of"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Another Location this one is physically part of"
+ }
+}
+field {
+ name: "endpoint"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Technical endpoints providing access to services operated for the location"
+ }
+}
+nested_type {
+ name: "Position"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "longitude"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Decimal"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Longitude with WGS84 datum"
+ }
+ }
+ field {
+ name: "latitude"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Decimal"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Latitude with WGS84 datum"
+ }
+ }
+ field {
+ name: "altitude"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Decimal"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Altitude with WGS84 datum"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Location Profile.\nUS Core Location Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Location"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-location"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-medication.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-medication.descriptor.prototxt
new file mode 100644
index 0000000000..e7d6d6d475
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-medication.descriptor.prototxt
@@ -0,0 +1,459 @@
+name: "UsCoreMedication"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "code"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Codes that identify this medication"
+ }
+}
+field {
+ name: "status"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.MedicationStatusCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "active | inactive | entered-in-error"
+ }
+}
+field {
+ name: "is_brand"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "True if a brand"
+ }
+}
+field {
+ name: "is_over_the_counter"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "True if medication does not require a prescription"
+ }
+}
+field {
+ name: "manufacturer"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Manufacturer of the item"
+ }
+}
+field {
+ name: "form"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "powder | tablets | capsule +"
+ }
+}
+field {
+ name: "ingredient"
+ number: 15
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedication.Ingredient"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Active or inactive ingredient"
+ }
+}
+field {
+ name: "package_value"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedication.Package"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Details about packaged medications"
+ }
+ json_name: "package"
+}
+field {
+ name: "image"
+ number: 17
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Picture of the medication"
+ }
+}
+nested_type {
+ name: "Ingredient"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "item"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedication.Ingredient.Item"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "The product contained"
+ }
+ }
+ field {
+ name: "is_active"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Active ingredient indicator"
+ }
+ }
+ field {
+ name: "amount"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Ratio"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Quantity of ingredient present"
+ }
+ }
+ nested_type {
+ name: "Item"
+ field {
+ name: "codeable_concept"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "reference"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "item"
+ }
+ }
+}
+nested_type {
+ name: "Package"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "container"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "E.g. box, vial, blister-pack"
+ }
+ }
+ field {
+ name: "content"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedication.Package.Content"
+ options {
+ [google.fhir.stu3.proto.field_description]: "What is in the package"
+ }
+ }
+ field {
+ name: "batch"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedication.Package.Batch"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Identifies a single production run"
+ }
+ }
+ nested_type {
+ name: "Content"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "item"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedication.Package.Content.Item"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "The item in the package"
+ }
+ }
+ field {
+ name: "amount"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Quantity present in the package"
+ }
+ }
+ nested_type {
+ name: "Item"
+ field {
+ name: "codeable_concept"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "reference"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "item"
+ }
+ }
+ }
+ nested_type {
+ name: "Batch"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "lot_number"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Identifier assigned to batch"
+ }
+ }
+ field {
+ name: "expiration_date"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.field_description]: "When batch will expire"
+ }
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Medication Profile.\nUS Core Medication Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Medication"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-medicationrequest.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-medicationrequest.descriptor.prototxt
new file mode 100644
index 0000000000..b3eaf09e87
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-medicationrequest.descriptor.prototxt
@@ -0,0 +1,547 @@
+name: "UsCoreMedicationrequest"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External ids for this request"
+ }
+}
+field {
+ name: "definition"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Protocol or definition"
+ }
+}
+field {
+ name: "based_on"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "What request fulfills"
+ }
+}
+field {
+ name: "group_identifier"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Composite request this is part of"
+ }
+}
+field {
+ name: "status"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.MedicationRequestStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown"
+ }
+}
+field {
+ name: "intent"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.MedicationRequestIntentCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "proposal | plan | order | instance-order"
+ }
+}
+field {
+ name: "category"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Type of medication usage"
+ }
+}
+field {
+ name: "priority"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.MedicationRequestPriorityCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "routine | urgent | stat | asap"
+ }
+}
+field {
+ name: "medication"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedicationrequest.Medication"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Medication to be taken"
+ }
+}
+field {
+ name: "subject"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who or group medication request is for"
+ }
+}
+field {
+ name: "context"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Created during encounter/admission/stay"
+ }
+}
+field {
+ name: "supporting_information"
+ number: 20
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Information to support ordering of the medication"
+ }
+}
+field {
+ name: "authored_on"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "When request was initially authored"
+ }
+}
+field {
+ name: "requester"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedicationrequest.Requester"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who/What requested the Request"
+ }
+}
+field {
+ name: "recorder"
+ number: 23
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Person who entered the request"
+ }
+}
+field {
+ name: "reason_code"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reason or indication for writing the prescription"
+ }
+}
+field {
+ name: "reason_reference"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Condition or Observation that supports why the prescription is being written"
+ }
+}
+field {
+ name: "note"
+ number: 26
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Information about the prescription"
+ }
+}
+field {
+ name: "dosage_instruction"
+ number: 27
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Dosage"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How the medication should be taken"
+ }
+}
+field {
+ name: "dispense_request"
+ number: 28
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedicationrequest.DispenseRequest"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Medication supply authorization"
+ }
+}
+field {
+ name: "substitution"
+ number: 29
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedicationrequest.Substitution"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Any restrictions on medication substitution"
+ }
+}
+field {
+ name: "prior_prescription"
+ number: 30
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "An order/prescription that is being replaced"
+ }
+}
+field {
+ name: "detected_issue"
+ number: 31
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Clinical Issue with action"
+ }
+}
+field {
+ name: "event_history"
+ number: 32
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A list of events of interest in the lifecycle"
+ }
+}
+nested_type {
+ name: "Medication"
+ field {
+ name: "codeable_concept"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "reference"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "medication"
+ }
+}
+nested_type {
+ name: "Requester"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "agent"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who ordered the initial medication(s)"
+ }
+ }
+ field {
+ name: "on_behalf_of"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization agent is acting for"
+ }
+ }
+}
+nested_type {
+ name: "DispenseRequest"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "validity_period"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Time period supply is authorized for"
+ }
+ }
+ field {
+ name: "number_of_repeats_allowed"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.PositiveInt"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Number of refills authorized"
+ }
+ }
+ field {
+ name: "quantity"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Amount of medication to supply per dispense"
+ }
+ }
+ field {
+ name: "expected_supply_duration"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Duration"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Number of days supply per dispense"
+ }
+ }
+ field {
+ name: "performer"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Intended dispenser"
+ }
+ }
+}
+nested_type {
+ name: "Substitution"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "allowed"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Whether substitution is allowed or not"
+ }
+ }
+ field {
+ name: "reason"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why should (not) substitution be made"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core MedicationRequest Profile.\nUS Core Medication Request Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/MedicationRequest"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-medicationstatement.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-medicationstatement.descriptor.prototxt
new file mode 100644
index 0000000000..9ca4516990
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-medicationstatement.descriptor.prototxt
@@ -0,0 +1,318 @@
+name: "UsCoreMedicationstatement"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External identifier"
+ }
+}
+field {
+ name: "based_on"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Fulfils plan, proposal or order"
+ }
+}
+field {
+ name: "part_of"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Part of referenced event"
+ }
+}
+field {
+ name: "context"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Encounter / Episode associated with MedicationStatement"
+ }
+}
+field {
+ name: "status"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.MedicationStatementStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "active | completed | entered-in-error | intended | stopped | on-hold"
+ }
+}
+field {
+ name: "category"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Type of medication usage"
+ }
+}
+field {
+ name: "medication"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedicationstatement.Medication"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "What medication was taken"
+ }
+}
+field {
+ name: "effective"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreMedicationstatement.Effective"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "The date/time or interval when the medication was taken"
+ }
+}
+field {
+ name: "date_asserted"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "When the statement was asserted?"
+ }
+}
+field {
+ name: "information_source"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Person or organization that provided the information about the taking of this medication"
+ }
+}
+field {
+ name: "subject"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who is/was taking the medication"
+ }
+}
+field {
+ name: "derived_from"
+ number: 20
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional supporting information"
+ }
+}
+field {
+ name: "taken"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.MedicationStatementTakenCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "y | n | unk | na"
+ }
+}
+field {
+ name: "reason_not_taken"
+ number: 22
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "True if asserting medication was not given"
+ }
+}
+field {
+ name: "reason_code"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reason for why the medication is being/was taken"
+ }
+}
+field {
+ name: "reason_reference"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Condition or observation that supports why the medication is being/was taken"
+ }
+}
+field {
+ name: "note"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Further information about the statement"
+ }
+}
+field {
+ name: "dosage"
+ number: 26
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Dosage"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Details of how medication is/was taken or should be taken"
+ }
+}
+nested_type {
+ name: "Medication"
+ field {
+ name: "codeable_concept"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "reference"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "medication"
+ }
+}
+nested_type {
+ name: "Effective"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "effective"
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core MedicationStatement Profile.\nUS Core Medication Statement Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/MedicationStatement"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-observationresults.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-observationresults.descriptor.prototxt
new file mode 100644
index 0000000000..46e10bf4a7
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-observationresults.descriptor.prototxt
@@ -0,0 +1,739 @@
+name: "UsCoreObservationresults"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Business Identifier for observation"
+ }
+}
+field {
+ name: "based_on"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Fulfills plan, proposal or order"
+ }
+}
+field {
+ name: "status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ObservationStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "registered | preliminary | final | amended +"
+ }
+}
+field {
+ name: "category"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Classification of type of observation"
+ }
+}
+field {
+ name: "code"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Laboratory Test Name"
+ }
+}
+field {
+ name: "subject"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who and/or what this is about"
+ }
+}
+field {
+ name: "context"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Healthcare event during which this observation is made"
+ }
+}
+field {
+ name: "effective"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.Effective"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Clinically relevant time/time-period for observation"
+ }
+}
+field {
+ name: "issued"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Instant"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Date/Time this was made available"
+ }
+}
+field {
+ name: "performer"
+ number: 18
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who is responsible for the observation"
+ }
+}
+field {
+ name: "value"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.Value"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Result Value"
+ }
+}
+field {
+ name: "data_absent_reason"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why the result is missing"
+ }
+}
+field {
+ name: "interpretation"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "High, low, normal, etc."
+ }
+}
+field {
+ name: "comment"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comments about result"
+ }
+}
+field {
+ name: "body_site"
+ number: 23
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Observed body part"
+ }
+}
+field {
+ name: "method"
+ number: 24
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How it was done"
+ }
+}
+field {
+ name: "specimen"
+ number: 25
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Specimen used for this observation"
+ }
+}
+field {
+ name: "device"
+ number: 26
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "(Measurement) Device"
+ }
+}
+field {
+ name: "reference_range"
+ number: 27
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.ReferenceRange"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Provides guide for interpretation"
+ }
+}
+field {
+ name: "related"
+ number: 28
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.Related"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Resource related to this observation"
+ }
+}
+field {
+ name: "component"
+ number: 29
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.Component"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Component results"
+ }
+}
+nested_type {
+ name: "Effective"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "effective"
+ }
+}
+nested_type {
+ name: "Value"
+ field {
+ name: "quantity"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Quantity"
+ oneof_index: 0
+ }
+ field {
+ name: "codeable_concept"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ field {
+ name: "boolean"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ oneof_index: 0
+ }
+ field {
+ name: "range"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "ratio"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Ratio"
+ oneof_index: 0
+ }
+ field {
+ name: "sampled_data"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SampledData"
+ oneof_index: 0
+ }
+ field {
+ name: "attachment"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ oneof_index: 0
+ }
+ field {
+ name: "time"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Time"
+ oneof_index: 0
+ }
+ field {
+ name: "date_time"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "value"
+ }
+}
+nested_type {
+ name: "ReferenceRange"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "low"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Low Range, if relevant"
+ }
+ }
+ field {
+ name: "high"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "High Range, if relevant"
+ }
+ }
+ field {
+ name: "type"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reference range qualifier"
+ }
+ }
+ field {
+ name: "applies_to"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reference range population"
+ }
+ }
+ field {
+ name: "age"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Applicable age range, if relevant"
+ }
+ }
+ field {
+ name: "text"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text based reference range in an observation"
+ }
+ }
+}
+nested_type {
+ name: "Related"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "type"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ObservationRelationshipTypeCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by"
+ }
+ }
+ field {
+ name: "target"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Resource that is related to this one"
+ }
+ }
+}
+nested_type {
+ name: "Component"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "code"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Type of component observation (code / type)"
+ }
+ }
+ field {
+ name: "value"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.Component.Value"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Actual component result"
+ }
+ }
+ field {
+ name: "data_absent_reason"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why the component result is missing"
+ }
+ }
+ field {
+ name: "interpretation"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "High, low, normal, etc."
+ }
+ }
+ field {
+ name: "reference_range"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreObservationresults.ReferenceRange"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Provides guide for interpretation of component result"
+ }
+ }
+ nested_type {
+ name: "Value"
+ field {
+ name: "quantity"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Quantity"
+ oneof_index: 0
+ }
+ field {
+ name: "codeable_concept"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ field {
+ name: "range"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "ratio"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Ratio"
+ oneof_index: 0
+ }
+ field {
+ name: "sampled_data"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SampledData"
+ oneof_index: 0
+ }
+ field {
+ name: "attachment"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ oneof_index: 0
+ }
+ field {
+ name: "time"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Time"
+ oneof_index: 0
+ }
+ field {
+ name: "date_time"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "value"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Results Profile.\nUS Core Result Observation.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Observation"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-observationresults"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-organization.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-organization.descriptor.prototxt
new file mode 100644
index 0000000000..e618c751ec
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-organization.descriptor.prototxt
@@ -0,0 +1,265 @@
+name: "UsCoreOrganization"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Identifies this organization across multiple systems"
+ }
+}
+field {
+ name: "active"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Whether the organization\'s record is still in active use"
+ }
+}
+field {
+ name: "type"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Kind of organization"
+ }
+}
+field {
+ name: "name"
+ number: 12
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Name used for the organization"
+ }
+}
+field {
+ name: "alias"
+ number: 13
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A list of\302\240alternate names that the organization is known as, or was known as in the past"
+ }
+}
+field {
+ name: "telecom"
+ number: 14
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "A contact detail for the organization"
+ }
+}
+field {
+ name: "address"
+ number: 15
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Address"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "An address for the organization"
+ }
+}
+field {
+ name: "part_of"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The organization of which this organization forms a part"
+ }
+}
+field {
+ name: "contact"
+ number: 17
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreOrganization.Contact"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contact for the organization for a certain purpose"
+ }
+}
+field {
+ name: "endpoint"
+ number: 18
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Technical endpoints providing access to services operated for the organization"
+ }
+}
+nested_type {
+ name: "Contact"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "purpose"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The type of contact"
+ }
+ }
+ field {
+ name: "name"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.HumanName"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A name associated with the contact"
+ }
+ }
+ field {
+ name: "telecom"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contact details (telephone, email, etc.) for a contact"
+ }
+ }
+ field {
+ name: "address"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Address"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Visiting or postal addresses for the contact"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Organization Profile.\nUS Core Organization Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Organization"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-patient.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-patient.descriptor.prototxt
new file mode 100644
index 0000000000..8a72b138e0
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-patient.descriptor.prototxt
@@ -0,0 +1,541 @@
+name: "UsCorePatient"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extension"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "An identifier for this patient"
+ }
+}
+field {
+ name: "active"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Whether this patient\'s record is in active use"
+ }
+}
+field {
+ name: "name"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.HumanName"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "A name associated with the patient"
+ }
+}
+field {
+ name: "telecom"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A contact detail for the individual"
+ }
+}
+field {
+ name: "gender"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AdministrativeGenderCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "male | female | other | unknown"
+ }
+}
+field {
+ name: "birth_date"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Date"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The date of birth for the individual"
+ }
+}
+field {
+ name: "deceased"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCorePatient.Deceased"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Indicates if the individual is deceased or not"
+ }
+}
+field {
+ name: "address"
+ number: 16
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Address"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Addresses for the individual"
+ }
+}
+field {
+ name: "marital_status"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Marital (civil) status of a patient"
+ }
+}
+field {
+ name: "multiple_birth"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCorePatient.MultipleBirth"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Whether patient is part of a multiple birth"
+ }
+}
+field {
+ name: "photo"
+ number: 19
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Image of the patient"
+ }
+}
+field {
+ name: "contact"
+ number: 20
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCorePatient.Contact"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A contact party (e.g. guardian, partner, friend) for the patient"
+ }
+}
+field {
+ name: "communication"
+ number: 22
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCorePatient.Communication"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A list of Languages which may be used to communicate with the patient about his or her health"
+ }
+}
+field {
+ name: "general_practitioner"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Patient\'s nominated primary care provider"
+ }
+}
+field {
+ name: "managing_organization"
+ number: 24
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization that is the custodian of the patient record"
+ }
+}
+field {
+ name: "link"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCorePatient.Link"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Link to another patient resource that concerns the same actual person"
+ }
+}
+field {
+ name: "race"
+ number: 26
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.PatientUSCoreRaceExtension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extension"
+ [google.fhir.stu3.proto.fhir_inlined_extension_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"
+ }
+}
+field {
+ name: "ethnicity"
+ number: 27
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.PatientUSCoreEthnicityExtension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extension"
+ [google.fhir.stu3.proto.fhir_inlined_extension_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"
+ }
+}
+field {
+ name: "birthsex"
+ number: 28
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreBirthSexCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extension"
+ [google.fhir.stu3.proto.fhir_inlined_extension_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex"
+ }
+}
+nested_type {
+ name: "Deceased"
+ field {
+ name: "boolean"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ oneof_index: 0
+ }
+ field {
+ name: "date_time"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "deceased"
+ }
+}
+nested_type {
+ name: "MultipleBirth"
+ field {
+ name: "boolean"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ oneof_index: 0
+ }
+ field {
+ name: "integer"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Integer"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "multiple_birth"
+ }
+}
+nested_type {
+ name: "Contact"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "relationship"
+ number: 4
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The kind of relationship"
+ }
+ }
+ field {
+ name: "name"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.HumanName"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A name associated with the contact person"
+ }
+ }
+ field {
+ name: "telecom"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A contact detail for the person"
+ }
+ }
+ field {
+ name: "address"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Address"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Address for the contact person"
+ }
+ }
+ field {
+ name: "gender"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AdministrativeGenderCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "male | female | other | unknown"
+ }
+ }
+ field {
+ name: "organization"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization that is associated with the contact"
+ }
+ }
+ field {
+ name: "period"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The period during which this contact person or organization is valid to be contacted relating to this patient"
+ }
+ }
+}
+nested_type {
+ name: "Communication"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "The language which can be used to communicate with the patient about his or her health"
+ }
+ }
+ field {
+ name: "preferred"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language preference indicator"
+ }
+ }
+}
+nested_type {
+ name: "Link"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "other"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "The other patient or related person resource that the link refers to"
+ }
+ }
+ field {
+ name: "type"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LinkTypeCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "replaced-by | replaces | refer | seealso - type of link"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Patient Profile.\nUS Core Patient Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Patient"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-practitioner.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-practitioner.descriptor.prototxt
new file mode 100644
index 0000000000..97e0568d4b
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-practitioner.descriptor.prototxt
@@ -0,0 +1,263 @@
+name: "UsCorePractitioner"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "A identifier for the person as this agent"
+ }
+}
+field {
+ name: "active"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Whether this practitioner\'s record is in active use"
+ }
+}
+field {
+ name: "name"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.HumanName"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "The name(s) associated with the practitioner"
+ }
+}
+field {
+ name: "telecom"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContactPoint"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A contact detail for the practitioner (that apply to all roles)"
+ }
+}
+field {
+ name: "address"
+ number: 13
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Address"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Address(es) of the practitioner that are not role specific (typically home address)"
+ }
+}
+field {
+ name: "gender"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.AdministrativeGenderCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "male | female | other | unknown"
+ }
+}
+field {
+ name: "birth_date"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Date"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The date on which the practitioner was born"
+ }
+}
+field {
+ name: "photo"
+ number: 16
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Image of the person"
+ }
+}
+field {
+ name: "qualification"
+ number: 17
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCorePractitioner.Qualification"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Qualifications obtained by training and certification"
+ }
+}
+field {
+ name: "communication"
+ number: 18
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A language the practitioner is able to use in patient communication"
+ }
+}
+nested_type {
+ name: "Qualification"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "identifier"
+ number: 4
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "An identifier for this qualification for the practitioner"
+ }
+ }
+ field {
+ name: "code"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Coded representation of the qualification"
+ }
+ }
+ field {
+ name: "period"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Period during which the qualification is valid"
+ }
+ }
+ field {
+ name: "issuer"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization that regulates and issues the qualification"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Practitioner Profile.\nUS Core Practitioner.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Practitioner"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-procedure.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-procedure.descriptor.prototxt
new file mode 100644
index 0000000000..97060d22b3
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-procedure.descriptor.prototxt
@@ -0,0 +1,492 @@
+name: "UsCoreProcedure"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "External Identifiers for this procedure"
+ }
+}
+field {
+ name: "definition"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Instantiates protocol or definition"
+ }
+}
+field {
+ name: "based_on"
+ number: 11
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A request for this procedure"
+ }
+}
+field {
+ name: "part_of"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Part of referenced event"
+ }
+}
+field {
+ name: "status"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.EventStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "preparation | in-progress | suspended | aborted | completed | entered-in-error | unknown"
+ }
+}
+field {
+ name: "not_done"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Boolean"
+ options {
+ [google.fhir.stu3.proto.field_description]: "True if procedure was not performed as scheduled"
+ }
+}
+field {
+ name: "not_done_reason"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reason procedure was not performed"
+ }
+}
+field {
+ name: "category"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Classification of the procedure"
+ }
+}
+field {
+ name: "code"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "SNOMED-CT | ICD-10 | CPT-4"
+ }
+}
+field {
+ name: "subject"
+ number: 18
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who the procedure was performed on"
+ }
+}
+field {
+ name: "context"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Encounter or episode associated with the procedure"
+ }
+}
+field {
+ name: "performed"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreProcedure.Performed"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Date/Period the procedure was performed"
+ }
+}
+field {
+ name: "performer"
+ number: 21
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreProcedure.Performer"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The people who performed the procedure"
+ }
+}
+field {
+ name: "location"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Where the procedure happened"
+ }
+}
+field {
+ name: "reason_code"
+ number: 23
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Coded reason procedure performed"
+ }
+}
+field {
+ name: "reason_reference"
+ number: 24
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Condition that is the reason the procedure performed"
+ }
+}
+field {
+ name: "body_site"
+ number: 25
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Target body sites"
+ }
+}
+field {
+ name: "outcome"
+ number: 26
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The result of procedure"
+ }
+}
+field {
+ name: "report"
+ number: 27
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Any report resulting from the procedure"
+ }
+}
+field {
+ name: "complication"
+ number: 28
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Complication following the procedure"
+ }
+}
+field {
+ name: "complication_detail"
+ number: 29
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A condition that\302\240is a result of the procedure"
+ }
+}
+field {
+ name: "follow_up"
+ number: 30
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Instructions for follow up"
+ }
+}
+field {
+ name: "note"
+ number: 31
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Annotation"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional information about the procedure"
+ }
+}
+field {
+ name: "focal_device"
+ number: 32
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreProcedure.FocalDevice"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Device changed in procedure"
+ }
+}
+field {
+ name: "used_reference"
+ number: 33
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Items used during procedure"
+ }
+}
+field {
+ name: "used_code"
+ number: 34
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Coded items used during the procedure"
+ }
+}
+nested_type {
+ name: "Performed"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "performed"
+ }
+}
+nested_type {
+ name: "Performer"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "role"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "The role the actor was in"
+ }
+ }
+ field {
+ name: "actor"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "The reference to the practitioner"
+ }
+ }
+ field {
+ name: "on_behalf_of"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Organization the device or practitioner was acting for"
+ }
+ }
+}
+nested_type {
+ name: "FocalDevice"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "action"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Kind of change to device"
+ }
+ }
+ field {
+ name: "manipulated"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Device that was changed"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Procedure Profile.\nUS Core Procedure Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Procedure"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-profile-link.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-profile-link.descriptor.prototxt
new file mode 100644
index 0000000000..8dde8c3608
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-profile-link.descriptor.prototxt
@@ -0,0 +1,37 @@
+name: "CapabilityStatementProfileResourceAssociationExtension"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+}
+field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "value_code"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ResourceTypeCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Value of extension"
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_COMPLEX_TYPE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for Profile-resource association extension.\nResource that this profile is based on.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-profile-link"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Extension"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-profile-link"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-race.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-race.descriptor.prototxt
new file mode 100644
index 0000000000..88bacbef8b
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-race.descriptor.prototxt
@@ -0,0 +1,58 @@
+name: "PatientUSCoreRaceExtension"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+}
+field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extension"
+ }
+}
+field {
+ name: "omb_category"
+ number: 4
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Coding"
+ options {
+ [google.fhir.stu3.proto.field_description]: "American Indian or Alaska Native|Asian|Black or African American|Native Hawaiian or Other Pacific Islander|White"
+ }
+}
+field {
+ name: "detailed"
+ number: 5
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Coding"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extended race codes"
+ }
+}
+field {
+ name: "text"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Race Text"
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_COMPLEX_TYPE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Race Extension.\nUS Core Race Extension.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Extension"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"
+}
diff --git a/testdata/stu3/uscore/StructureDefinition-us-core-smokingstatus.descriptor.prototxt b/testdata/stu3/uscore/StructureDefinition-us-core-smokingstatus.descriptor.prototxt
new file mode 100644
index 0000000000..ee36ba6bb7
--- /dev/null
+++ b/testdata/stu3/uscore/StructureDefinition-us-core-smokingstatus.descriptor.prototxt
@@ -0,0 +1,659 @@
+name: "UsCoreSmokingstatus"
+field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Id"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Logical id of this artifact"
+ }
+}
+field {
+ name: "meta"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Meta"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Metadata about the resource"
+ }
+}
+field {
+ name: "implicit_rules"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Uri"
+ options {
+ [google.fhir.stu3.proto.field_description]: "A set of rules under which this content was created"
+ }
+}
+field {
+ name: "language"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.LanguageCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Language of the resource content"
+ }
+}
+field {
+ name: "text"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Narrative"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text summary of the resource, for human interpretation"
+ }
+}
+field {
+ name: "contained"
+ number: 6
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ContainedResource"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Contained, inline Resources"
+ }
+}
+field {
+ name: "extension"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+}
+field {
+ name: "modifier_extension"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+}
+field {
+ name: "identifier"
+ number: 9
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Identifier"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Business Identifier for observation"
+ }
+}
+field {
+ name: "based_on"
+ number: 10
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Fulfills plan, proposal or order"
+ }
+}
+field {
+ name: "status"
+ number: 11
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ObservationStatusCode"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "registered | preliminary | final | amended +"
+ }
+}
+field {
+ name: "category"
+ number: 12
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Classification of type of observation"
+ }
+}
+field {
+ name: "code"
+ number: 13
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Smoking Status: LOINC 72166-2 = Tobacco smoking status NHIS"
+ }
+}
+field {
+ name: "subject"
+ number: 14
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Who and/or what this is about"
+ }
+}
+field {
+ name: "context"
+ number: 15
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Healthcare event during which this observation is made"
+ }
+}
+field {
+ name: "effective"
+ number: 16
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.Effective"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Clinically relevant time/time-period for observation"
+ }
+}
+field {
+ name: "issued"
+ number: 17
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Instant"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Date/Time this was made available"
+ }
+}
+field {
+ name: "performer"
+ number: 18
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Who is responsible for the observation"
+ }
+}
+field {
+ name: "value"
+ number: 19
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.Value"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Coded Responses from Smoking Status Value Set"
+ }
+}
+field {
+ name: "data_absent_reason"
+ number: 20
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why the result is missing"
+ }
+}
+field {
+ name: "interpretation"
+ number: 21
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "High, low, normal, etc."
+ }
+}
+field {
+ name: "comment"
+ number: 22
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Comments about result"
+ }
+}
+field {
+ name: "body_site"
+ number: 23
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Observed body part"
+ }
+}
+field {
+ name: "method"
+ number: 24
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "How it was done"
+ }
+}
+field {
+ name: "specimen"
+ number: 25
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Specimen used for this observation"
+ }
+}
+field {
+ name: "device"
+ number: 26
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.field_description]: "(Measurement) Device"
+ }
+}
+field {
+ name: "reference_range"
+ number: 27
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.ReferenceRange"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Provides guide for interpretation"
+ }
+}
+field {
+ name: "related"
+ number: 28
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.Related"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Resource related to this observation"
+ }
+}
+field {
+ name: "component"
+ number: 29
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.Component"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Component results"
+ }
+}
+nested_type {
+ name: "Effective"
+ field {
+ name: "date_time"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "effective"
+ }
+}
+nested_type {
+ name: "Value"
+ field {
+ name: "codeable_concept"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "value"
+ }
+}
+nested_type {
+ name: "ReferenceRange"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "low"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Low Range, if relevant"
+ }
+ }
+ field {
+ name: "high"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SimpleQuantity"
+ options {
+ [google.fhir.stu3.proto.field_description]: "High Range, if relevant"
+ }
+ }
+ field {
+ name: "type"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reference range qualifier"
+ }
+ }
+ field {
+ name: "applies_to"
+ number: 7
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Reference range population"
+ }
+ }
+ field {
+ name: "age"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Applicable age range, if relevant"
+ }
+ }
+ field {
+ name: "text"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Text based reference range in an observation"
+ }
+ }
+}
+nested_type {
+ name: "Related"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "type"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.ObservationRelationshipTypeCode"
+ options {
+ [google.fhir.stu3.proto.field_description]: "has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by"
+ }
+ }
+ field {
+ name: "target"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Reference"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Resource that is related to this one"
+ }
+ }
+}
+nested_type {
+ name: "Component"
+ field {
+ name: "id"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ options {
+ [google.fhir.stu3.proto.field_description]: "xml:id (or equivalent in JSON)"
+ }
+ }
+ field {
+ name: "extension"
+ number: 2
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Additional Content defined by implementations"
+ }
+ }
+ field {
+ name: "modifier_extension"
+ number: 3
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Extension"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Extensions that cannot be ignored"
+ }
+ }
+ field {
+ name: "code"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.validation_requirement]: REQUIRED_BY_FHIR
+ [google.fhir.stu3.proto.field_description]: "Type of component observation (code / type)"
+ }
+ }
+ field {
+ name: "value"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.Component.Value"
+ options {
+ [google.fhir.stu3.proto.is_choice_type]: true
+ [google.fhir.stu3.proto.field_description]: "Actual component result"
+ }
+ }
+ field {
+ name: "data_absent_reason"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Why the component result is missing"
+ }
+ }
+ field {
+ name: "interpretation"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ options {
+ [google.fhir.stu3.proto.field_description]: "High, low, normal, etc."
+ }
+ }
+ field {
+ name: "reference_range"
+ number: 8
+ label: LABEL_REPEATED
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.uscore.UsCoreSmokingstatus.ReferenceRange"
+ options {
+ [google.fhir.stu3.proto.field_description]: "Provides guide for interpretation of component result"
+ }
+ }
+ nested_type {
+ name: "Value"
+ field {
+ name: "quantity"
+ number: 1
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Quantity"
+ oneof_index: 0
+ }
+ field {
+ name: "codeable_concept"
+ number: 2
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.CodeableConcept"
+ oneof_index: 0
+ }
+ field {
+ name: "string_value"
+ number: 3
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.String"
+ oneof_index: 0
+ json_name: "string"
+ }
+ field {
+ name: "range"
+ number: 4
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Range"
+ oneof_index: 0
+ }
+ field {
+ name: "ratio"
+ number: 5
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Ratio"
+ oneof_index: 0
+ }
+ field {
+ name: "sampled_data"
+ number: 6
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.SampledData"
+ oneof_index: 0
+ }
+ field {
+ name: "attachment"
+ number: 7
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Attachment"
+ oneof_index: 0
+ }
+ field {
+ name: "time"
+ number: 8
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Time"
+ oneof_index: 0
+ }
+ field {
+ name: "date_time"
+ number: 9
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.DateTime"
+ oneof_index: 0
+ }
+ field {
+ name: "period"
+ number: 10
+ label: LABEL_OPTIONAL
+ type: TYPE_MESSAGE
+ type_name: ".google.fhir.stu3.proto.Period"
+ oneof_index: 0
+ }
+ oneof_decl {
+ name: "value"
+ }
+ }
+}
+options {
+ [google.fhir.stu3.proto.structure_definition_kind]: KIND_RESOURCE
+ [google.fhir.stu3.proto.message_description]: "Auto-generated from StructureDefinition for US Core Smoking Status Profile.\nUS Core Smoking Status Observation Profile.\nSee http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus"
+ [google.fhir.stu3.proto.fhir_profile_base]: "http://hl7.org/fhir/StructureDefinition/Observation"
+ [google.fhir.stu3.proto.fhir_structure_definition_url]: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus"
+}