### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: lib/FHIR/DomainModel.rakumod
### ----------------------------------------------------
### -- Chunk 8 of 8
esignation @.designation;
}
class ValueSet_Compose_Include is FHIR is export {
  has Str $.id;
  has UriStr $.system;
  has Str $.version;
  has Canonical @.valueSet;
  has Extension @.extension;
  has Extension @.modifierExtension;
  has ValueSet_Compose_Include_Filter @.filter;
  has ValueSet_Compose_Include_Concept @.concept;
}
class ValueSet_Compose is FHIR is export {
  has Str $.id;
  has ValueSet_Compose_Include @.exclude;
  has Bool $.inactive;
  has Extension @.extension;
  has Date $.lockedDate;
  has Extension @.modifierExtension;
  has ValueSet_Compose_Include @.include is required;
}

class ValueSet is DomainResource is export {
  method resourceType(--> 'ValueSet') {}
  has UriStr $.url;
  has Str $.name;
  has DateTime $.date;
  has Str $.title;
  has FHIRCode $.status is required;
  has Str $.version;
  has ContactDetail @.contact;
  has Markdown $.purpose;
  has Str $.publisher;
  has Bool $.immutable;
  has Markdown $.copyright;
  has Identifier @.identifier;
  has UsageContext @.useContext;
  has Markdown $.description;
  has Bool $.experimental;
  has CodeableConcept @.jurisdiction;
  has ValueSet_Expansion $.expansion;
  has ValueSet_Compose $.compose;
}

class Basic is DomainResource is export {
  method resourceType(--> 'Basic') {}
  has CodeableConcept $.code is required;
  has Reference $.author;
  has Reference $.subject;
  has Date $.created;
  has Identifier @.identifier;
}
class ElementDefinition_Base is FHIR is export {
  has Str $.id;
  has UnsignedInt $.min is required;
  has Str $.max is required;
  has Str $.path is required;
  has Extension @.extension;
}

class ElementDefinition_Example is FHIR is export {
  has Str $.id;
  has Str $.label is required;
  has ChoiceField $.value is required where Address|Age|Annotation|Attachment|Base64Binary|Bool|Canonical|FHIRCode|CodeableConcept|Coding|ContactDetail|ContactPoint|Contributor|Count|DataRequirement|Distance|Dosage|Real|Duration|Expression|Date|DateTime|HumanName|Id|Identifier|Int|Instant|Markdown|Money|OID|ParameterDefinition|Period|PositiveInt|Quantity|Range|Ratio|Reference|RelatedArtifact|SampledData|FHIRSignature|Str|Timing|TriggerDefinition|Uuid|UnsignedInt|UriStr|UrlStr|UsageContext|DateTime;
  has Extension @.extension;
}

class ElementDefinition_Mapping is FHIR is export {
  has Str $.id;
  has Str $.map is required;
  has Str $.comment;
  has Id $.identity is required;
  has FHIRCode $.language;
  has Extension @.extension;
}

class ElementDefinition_Type is FHIR is export {
  has Str $.id;
  has UriStr $.code is required;
  has Canonical @.profile;
  has Extension @.extension;
  has FHIRCode $.versioning;
  has FHIRCode @.aggregation;
  has Canonical @.targetProfile;
}

class ElementDefinition_Binding is FHIR is export {
  has Str $.id;
  has FHIRCode $.strength is required;
  has Canonical $.valueSet;
  has Extension @.extension;
  has Str $.description;
}

class ElementDefinition_Constraint is FHIR is export {
  has Str $.id;
  has Id $.key is required;
  has Str $.human is required;
  has Str $.xpath;
  has Canonical $.source;
  has FHIRCode $.severity is required;
  has Extension @.extension;
  has Str $.expression;
  has Str $.requirements;
}

class ElementDefinition_Slicing_Discriminator is FHIR is export {
  has Str $.id;
  has FHIRCode $.type is required;
  has Str $.path is required;
  has Extension @.extension;
}
class ElementDefinition_Slicing is FHIR is export {
  has Str $.id;
  has FHIRCode $.rules is required;
  has Bool $.ordered;
  has Extension @.extension;
  has Str $.description;
  has ElementDefinition_Slicing_Discriminator @.discriminator;
}

class ElementDefinition is BackboneElement is export {
  has UnsignedInt $.min;
  has Str $.max;
  has Str $.path is required;
  has Coding @.code;
  has Str $.label;
  has Str $.short;
  has Str @.alias;
  has Markdown $.comment;
  has ChoiceField $.fixed where Address|Age|Annotation|Attachment|Base64Binary|Bool|Canonical|FHIRCode|CodeableConcept|Coding|ContactDetail|ContactPoint|Contributor|Count|DataRequirement|Distance|Dosage|Real|Duration|Expression|Date|DateTime|HumanName|Id|Identifier|Int|Instant|Markdown|Money|OID|ParameterDefinition|Period|PositiveInt|Quantity|Range|Ratio|Reference|RelatedArtifact|SampledData|FHIRSignature|Str|Timing|TriggerDefinition|Uuid|UnsignedInt|UriStr|UrlStr|UsageContext|DateTime;
  has Str $.sliceName;
  has Int $.maxLength;
  has Id @.condition;
  has Bool $.isSummary;
  has Markdown $.definition;
  has ChoiceField $.pattern where Address|Age|Annotation|Attachment|Base64Binary|Bool|Canonical|FHIRCode|CodeableConcept|Coding|ContactDetail|ContactPoint|Contributor|Count|DataRequirement|Distance|Dosage|Real|Duration|Expression|Date|DateTime|HumanName|Id|Identifier|Int|Instant|Markdown|Money|OID|ParameterDefinition|Period|PositiveInt|Quantity|Range|Ratio|Reference|RelatedArtifact|SampledData|FHIRSignature|Str|Timing|TriggerDefinition|Uuid|UnsignedInt|UriStr|UrlStr|UsageContext|DateTime;
  has Bool $.isModifier;
  has ChoiceField $.minValue where Real|Date|DateTime|Int|Instant|PositiveInt|Quantity|UnsignedInt|DateTime;
  has ChoiceField $.maxValue where Real|Date|DateTime|Int|Instant|PositiveInt|Quantity|UnsignedInt|DateTime;
  has Bool $.mustSupport;
  has Markdown $.requirements;
  has Str $.orderMeaning;
  has FHIRCode @.representation;
  has ElementDefinition_Base $.base;
  has ChoiceField $.defaultValue where Address|Age|Annotation|Attachment|Base64Binary|Bool|Canonical|FHIRCode|CodeableConcept|Coding|ContactDetail|ContactPoint|Contributor|Count|DataRequirement|Distance|Dosage|Real|Duration|Expression|Date|DateTime|HumanName|Id|Identifier|Int|Instant|Markdown|Money|OID|ParameterDefinition|Period|PositiveInt|Quantity|Range|Ratio|Reference|RelatedArtifact|SampledData|FHIRSignature|Str|Timing|TriggerDefinition|Uuid|UnsignedInt|UriStr|UrlStr|UsageContext|DateTime;
  has UriStr $.contentReference;
  has Str $.isModifierReason;
  has ElementDefinition_Example @.example;
  has ElementDefinition_Mapping @.mapping;
  has ElementDefinition_Type @.type;
  has Markdown $.meaningWhenMissing;
  has Bool $.sliceIsConstraining;
  has ElementDefinition_Binding $.binding;
  has ElementDefinition_Constraint @.constraint;
  has ElementDefinition_Slicing $.slicing;
}
class PlanDefinition_Goal_Target is FHIR is export {
  has Str $.id;
  has Duration $.due;
  has CodeableConcept $.measure;
  has Extension @.extension;
  has ChoiceField $.detail where CodeableConcept|Quantity|Range;
  has Extension @.modifierExtension;
}
class PlanDefinition_Goal is FHIR is export {
  has Str $.id;
  has CodeableConcept $.start;
  has CodeableConcept $.category;
  has CodeableConcept $.priority;
  has Extension @.extension;
  has CodeableConcept @.addresses;
  has CodeableConcept $.description is required;
  has RelatedArtifact @.documentation;
  has Extension @.modifierExtension;
  has PlanDefinition_Goal_Target @.target;
}

class PlanDefinition_Action_Condition is FHIR is export {
  has Str $.id;
  has FHIRCode $.kind is required;
  has Extension @.extension;
  has Expression $.expression;
  has Extension @.modifierExtension;
}

class PlanDefinition_Action_Participant is FHIR is export {
  has Str $.id;
  has FHIRCode $.type is required;
  has CodeableConcept $.role;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class PlanDefinition_Action_DynamicValue is FHIR is export {
  has Str $.id;
  has Str $.path;
  has Extension @.extension;
  has Expression $.expression;
  has Extension @.modifierExtension;
}

class PlanDefinition_Action_RelatedAction is FHIR is export {
  has Str $.id;
  has Id $.actionId is required;
  has Extension @.extension;
  has ChoiceField $.offset where Duration|Range;
  has FHIRCode $.relationship is required;
  has Extension @.modifierExtension;
}
class PlanDefinition_Action is FHIR is export {
  has Str $.id;
  has CodeableConcept @.code;
  has CodeableConcept $.type;
  has Str $.title;
  has DataRequirement @.input;
  has Str $.prefix;
  has CodeableConcept @.reason;
  has Id @.goalId;
  has DataRequirement @.output;
  has PlanDefinition_Action @.action;
  has TriggerDefinition @.trigger;
  has FHIRCode $.priority;
  has Extension @.extension;
  has ChoiceField $.timing where Age|Duration|DateTime|Period|Range|Timing;
  has Canonical $.transform;
  has ChoiceField $.subject where CodeableConcept|Reference;
  has Str $.description;
  has RelatedArtifact @.documentation;
  has ChoiceField $.definition where Canonical|UriStr;
  has Str $.textEquivalent;
  has FHIRCode $.groupingBehavior;
  has FHIRCode $.requiredBehavior;
  has FHIRCode $.precheckBehavior;
  has Extension @.modifierExtension;
  has FHIRCode $.selectionBehavior;
  has FHIRCode $.cardinalityBehavior;
  has PlanDefinition_Action_Condition @.condition;
  has PlanDefinition_Action_Participant @.participant;
  has PlanDefinition_Action_DynamicValue @.dynamicValue;
  has PlanDefinition_Action_RelatedAction @.relatedAction;
}

class PlanDefinition is DomainResource is export {
  method resourceType(--> 'PlanDefinition') {}
  has UriStr $.url;
  has Str $.name;
  has CodeableConcept $.type;
  has DateTime $.date;
  has Str $.title;
  has Str $.usage;
  has CodeableConcept @.topic;
  has FHIRCode $.status is required;
  has ContactDetail @.author;
  has ContactDetail @.editor;
  has Str $.version;
  has ContactDetail @.contact;
  has Markdown $.purpose;
  has Canonical @.library;
  has Str $.subtitle;
  has ContactDetail @.reviewer;
  has ContactDetail @.endorser;
  has Str $.publisher;
  has Markdown $.copyright;
  has Identifier @.identifier;
  has ChoiceField $.subject where CodeableConcept|Reference;
  has UsageContext @.useContext;
  has Markdown $.description;
  has Bool $.experimental;
  has CodeableConcept @.jurisdiction;
  has Date $.approvalDate;
  has Date $.lastReviewDate;
  has Period $.effectivePeriod;
  has RelatedArtifact @.relatedArtifact;
  has PlanDefinition_Goal @.goal;
  has PlanDefinition_Action @.action;
}
class SearchParameter_Component is FHIR is export {
  has Str $.id;
  has Extension @.extension;
  has Canonical $.definition is required;
  has Str $.expression is required;
  has Extension @.modifierExtension;
}

class SearchParameter is DomainResource is export {
  method resourceType(--> 'SearchParameter') {}
  has UriStr $.url is required;
  has Str $.name is required;
  has DateTime $.date;
  has FHIRCode $.code is required;
  has FHIRCode @.base is required;
  has FHIRCode $.type is required;
  has Str $.xpath;
  has Str @.chain;
  has FHIRCode $.status is required;
  has FHIRCode @.target;
  has Str $.version;
  has ContactDetail @.contact;
  has Markdown $.purpose;
  has FHIRCode @.modifier;
  has Str $.publisher;
  has UsageContext @.useContext;
  has Str $.expression;
  has FHIRCode $.xpathUsage;
  has Bool $.multipleOr;
  has FHIRCode @.comparator;
  has Canonical $.derivedFrom;
  has Markdown $.description is required;
  has Bool $.multipleAnd;
  has Bool $.experimental;
  has CodeableConcept @.jurisdiction;
  has SearchParameter_Component @.component;
}
class BiologicallyDerivedProduct_Storage is FHIR is export {
  has Str $.id;
  has FHIRCode $.scale;
  has Period $.duration;
  has Extension @.extension;
  has Str $.description;
  has Real $.temperature;
  has Extension @.modifierExtension;
}

class BiologicallyDerivedProduct_Collection is FHIR is export {
  has Str $.id;
  has Reference $.source;
  has Extension @.extension;
  has Reference $.collector;
  has ChoiceField $.collected where DateTime|Period;
  has Extension @.modifierExtension;
}

class BiologicallyDerivedProduct_Processing is FHIR is export {
  has Str $.id;
  has ChoiceField $.time where DateTime|Period;
  has Reference $.additive;
  has Extension @.extension;
  has CodeableConcept $.procedure;
  has Str $.description;
  has Extension @.modifierExtension;
}

class BiologicallyDerivedProduct_Manipulation is FHIR is export {
  has Str $.id;
  has ChoiceField $.time where DateTime|Period;
  has Extension @.extension;
  has Str $.description;
  has Extension @.modifierExtension;
}

class BiologicallyDerivedProduct is DomainResource is export {
  method resourceType(--> 'BiologicallyDerivedProduct') {}
  has FHIRCode $.status;
  has Reference @.parent;
  has Reference @.request;
  has Int $.quantity;
  has Identifier @.identifier;
  has CodeableConcept $.productCode;
  has FHIRCode $.productCategory;
  has BiologicallyDerivedProduct_Storage @.storage;
  has BiologicallyDerivedProduct_Collection $.collection;
  has BiologicallyDerivedProduct_Processing @.processing;
  has BiologicallyDerivedProduct_Manipulation $.manipulation;
}


