### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: lib/FHIR/DomainModel.rakumod
### ----------------------------------------------------
### -- Chunk 3 of 8
;
  has FHIRSignature @.signature;
  has ChoiceField $.occurred where DateTime|Period;
  has Provenance_Agent @.agent is required;
  has Provenance_Entity @.entity;
}

class MedicinalProductManufactured is DomainResource is export {
  method resourceType(--> 'MedicinalProductManufactured') {}
  has Quantity $.quantity is required;
  has Reference @.ingredient;
  has Reference @.manufacturer;
  has CodeableConcept $.unitOfPresentation;
  has CodeableConcept $.manufacturedDoseForm is required;
  has CodeableConcept @.otherCharacteristics;
  has Any $.physicalCharacteristics;
}
class ObservationDefinition_QualifiedInterval is FHIR is export {
  has Str $.id;
  has Range $.age;
  has Range $.range;
  has FHIRCode $.gender;
  has CodeableConcept $.context;
  has FHIRCode $.category;
  has Extension @.extension;
  has CodeableConcept @.appliesTo;
  has Str $.condition;
  has Range $.gestationalAge;
  has Extension @.modifierExtension;
}

class ObservationDefinition_QuantitativeDetails is FHIR is export {
  has Str $.id;
  has CodeableConcept $.unit;
  has Extension @.extension;
  has CodeableConcept $.customaryUnit;
  has Real $.conversionFactor;
  has Int $.decimalPrecision;
  has Extension @.modifierExtension;
}

class ObservationDefinition is DomainResource is export {
  method resourceType(--> 'ObservationDefinition') {}
  has CodeableConcept $.code is required;
  has CodeableConcept $.method;
  has CodeableConcept @.category;
  has Identifier @.identifier;
  has FHIRCode @.permittedDataType;
  has Reference $.validCodedValueSet;
  has Str $.preferredReportName;
  has Reference $.normalCodedValueSet;
  has Reference $.abnormalCodedValueSet;
  has Reference $.criticalCodedValueSet;
  has Bool $.multipleResultsAllowed;
  has ObservationDefinition_QualifiedInterval @.qualifiedInterval;
  has ObservationDefinition_QuantitativeDetails $.quantitativeDetails;
}
class SupplyDelivery_SuppliedItem is FHIR is export {
  has Str $.id;
  has ChoiceField $.item where CodeableConcept|Reference;
  has Quantity $.quantity;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class SupplyDelivery is DomainResource is export {
  method resourceType(--> 'SupplyDelivery') {}
  has CodeableConcept $.type;
  has Reference @.partOf;
  has FHIRCode $.status;
  has Reference @.basedOn;
  has Reference $.patient;
  has Reference $.supplier;
  has Reference @.receiver;
  has Identifier @.identifier;
  has Reference $.destination;
  has ChoiceField $.occurrence where DateTime|Period|Timing;
  has SupplyDelivery_SuppliedItem $.suppliedItem;
}
class ClinicalImpression_Finding is FHIR is export {
  has Str $.id;
  has Str $.basis;
  has Extension @.extension;
  has Reference $.itemReference;
  has Extension @.modifierExtension;
  has CodeableConcept $.itemCodeableConcept;
}

class ClinicalImpression_Investigation is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code is required;
  has Reference @.item;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class ClinicalImpression is DomainResource is export {
  method resourceType(--> 'ClinicalImpression') {}
  has CodeableConcept $.code;
  has DateTime $.date;
  has Annotation @.note;
  has FHIRCode $.status is required;
  has Reference $.subject is required;
  has Reference @.problem;
  has Str $.summary;
  has Reference $.assessor;
  has Reference $.previous;
  has UriStr @.protocol;
  has Reference $.encounter;
  has Identifier @.identifier;
  has Str $.description;
  has CodeableConcept $.statusReason;
  has ChoiceField $.effective where DateTime|Period;
  has Reference @.supportingInfo;
  has Reference @.prognosisReference;
  has CodeableConcept @.prognosisCodeableConcept;
  has ClinicalImpression_Finding @.finding;
  has ClinicalImpression_Investigation @.investigation;
}
class Observation_Component is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code is required;
  has ChoiceField $.value where Bool|CodeableConcept|DateTime|Int|Instant|Period|Quantity|Range|Ratio|SampledData|Str;
  has Extension @.extension;
  has CodeableConcept @.interpretation;
  has Observation_ReferenceRange @.referenceRange;
  has CodeableConcept $.dataAbsentReason;
  has Extension @.modifierExtension;
}

class Observation_ReferenceRange is FHIR is export {
  has Str $.id;
  has Quantity $.low;
  has Range $.age;
  has Quantity $.high;
  has CodeableConcept $.type;
  has Str $.text;
  has Extension @.extension;
  has CodeableConcept @.appliesTo;
  has Extension @.modifierExtension;
}

class Observation is DomainResource is export {
  method resourceType(--> 'Observation') {}
  has CodeableConcept $.code is required;
  has Annotation @.note;
  has Reference @.focus;
  has Reference @.partOf;
  has FHIRCode $.status is required;
  has DateTime $.issued;
  has CodeableConcept $.method;
  has Reference $.device;
  has Reference @.basedOn;
  has Reference $.subject;
  has CodeableConcept @.category;
  has ChoiceField $.value where Bool|CodeableConcept|DateTime|Int|Instant|Period|Quantity|Range|Ratio|SampledData|Str;
  has CodeableConcept $.bodySite;
  has Reference $.specimen;
  has Reference $.encounter;
  has Reference @.performer;
  has Reference @.hasMember;
  has Identifier @.identifier;
  has Reference @.derivedFrom;
  has ChoiceField $.effective where DateTime|Period|Timing|DateTime;
  has CodeableConcept @.interpretation;
  has CodeableConcept $.dataAbsentReason;
  has Observation_Component @.component;
  has Observation_ReferenceRange @.referenceRange;
}
class CarePlan_Activity_Detail is FHIR is export {
  has Str $.id;
  has FHIRCode $.kind;
  has CodeableConcept $.code;
  has Reference @.goal;
  has FHIRCode $.status is required;
  has Reference $.location;
  has Quantity $.quantity;
  has Extension @.extension;
  has Reference @.performer;
  has CodeableConcept @.reasonCode;
  has ChoiceField $.product where CodeableConcept|Reference;
  has Quantity $.dailyAmount;
  has Str $.description;
  has CodeableConcept $.statusReason;
  has Bool $.doNotPerform;
  has ChoiceField $.scheduled where Period|Str|Timing;
  has UriStr @.instantiatesUri;
  has Reference @.reasonReference;
  has Extension @.modifierExtension;
  has Canonical @.instantiatesCanonical;
}
class CarePlan_Activity is FHIR is export {
  has Str $.id;
  has Annotation @.progress;
  has Extension @.extension;
  has Reference $.reference;
  has Reference @.outcomeReference;
  has Extension @.modifierExtension;
  has CodeableConcept @.outcomeCodeableConcept;
  has CarePlan_Activity_Detail $.detail;
}

class CarePlan is DomainResource is export {
  method resourceType(--> 'CarePlan') {}
  has Reference @.goal;
  has Annotation @.note;
  has Str $.title;
  has Reference @.partOf;
  has FHIRCode $.status is required;
  has FHIRCode $.intent is required;
  has Period $.period;
  has Reference $.author;
  has Reference @.basedOn;
  has Reference $.subject is required;
  has DateTime $.created;
  has Reference @.replaces;
  has CodeableConcept @.category;
  has Reference @.careTeam;
  has Reference $.encounter;
  has Reference @.addresses;
  has Identifier @.identifier;
  has Str $.description;
  has Reference @.contributor;
  has Reference @.supportingInfo;
  has UriStr @.instantiatesUri;
  has Canonical @.instantiatesCanonical;
  has CarePlan_Activity @.activity;
}
class EvidenceVariable_Characteristic is FHIR is export {
  has Str $.id;
  has Bool $.exclude;
  has Extension @.extension;
  has Str $.description;
  has UsageContext @.usageContext;
  has FHIRCode $.groupMeasure;
  has ChoiceField $.definition is required where Canonical|CodeableConcept|DataRequirement|Expression|Reference|TriggerDefinition;
  has Duration $.timeFromStart;
  has Extension @.modifierExtension;
  has ChoiceField $.participantEffective where Duration|DateTime|Period|Timing;
}

class EvidenceVariable is DomainResource is export {
  method resourceType(--> 'EvidenceVariable') {}
  has UriStr $.url;
  has Str $.name;
  has DateTime $.date;
  has Annotation @.note;
  has FHIRCode $.type;
  has Str $.title;
  has CodeableConcept @.topic;
  has FHIRCode $.status is required;
  has ContactDetail @.author;
  has ContactDetail @.editor;
  has Str $.version;
  has ContactDetail @.contact;
  has Str $.subtitle;
  has ContactDetail @.reviewer;
  has ContactDetail @.endorser;
  has Str $.publisher;
  has Markdown $.copyright;
  has Identifier @.identifier;
  has Str $.shortTitle;
  has UsageContext @.useContext;
  has Markdown $.description;
  has CodeableConcept @.jurisdiction;
  has Date $.approvalDate;
  has Date $.lastReviewDate;
  has Period $.effectivePeriod;
  has RelatedArtifact @.relatedArtifact;
  has EvidenceVariable_Characteristic @.characteristic is required;
}

class ImmunizationEvaluation is DomainResource is export {
  method resourceType(--> 'ImmunizationEvaluation') {}
  has DateTime $.date;
  has FHIRCode $.status is required;
  has Str $.series;
  has Reference $.patient is required;
  has Reference $.authority;
  has Identifier @.identifier;
  has CodeableConcept $.doseStatus is required;
  has Str $.description;
  has CodeableConcept $.targetDisease is required;
  has ChoiceField $.doseNumber where PositiveInt|Str;
  has ChoiceField $.seriesDoses where PositiveInt|Str;
  has CodeableConcept @.doseStatusReason;
  has Reference $.immunizationEvent is required;
}
class Location_Position is FHIR is export {
  has Str $.id;
  has Real $.latitude is required;
  has Real $.altitude;
  has Extension @.extension;
  has Real $.longitude is required;
  has Extension @.modifierExtension;
}

class Location_HoursOfOperation is FHIR is export {
  has Str $.id;
  has Bool $.allDay;
  has Extension @.extension;
  has FHIRCode @.daysOfWeek;
  has Instant $.openingTime;
  has Instant $.closingTime;
  has Extension @.modifierExtension;
}

class Location is DomainResource is export {
  method resourceType(--> 'Location') {}
  has Str $.name;
  has FHIRCode $.mode;
  has CodeableConcept @.type;
  has Str @.alias;
  has FHIRCode $.status;
  has Reference $.partOf;
  has ContactPoint @.telecom;
  has Address $.address;
  has Reference @.endpoint;
  has Identifier @.identifier;
  has Str $.description;
  has CodeableConcept $.physicalType;
  has Coding $.operationalStatus;
  has Reference $.managingOrganization;
  has Str $.availabilityExceptions;
  has Location_Position $.position;
  has Location_HoursOfOperation @.hoursOfOperation;
}

class MoneyQuantity is Quantity is export {
  
}
class ChargeItem_Performer is FHIR is export {
  has Str $.id;
  has Reference $.actor is required;
  has CodeableConcept $.function;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class ChargeItem is DomainResource is export {
  method resourceType(--> 'ChargeItem') {}
  has CodeableConcept $.code is required;
  has Annotation @.note;
  has FHIRCode $.status is required;
  has Reference @.partOf;
  has CodeableConcept @.reason;
  has Reference $.subject is required;
  has Reference $.context;
  has Reference $.enterer;
  has Reference @.service;
  has Reference @.account;
  has Quantity $.quantity;
  has CodeableConcept @.bodysite;
  has Identifier @.identifier;
  has Reference $.costCenter;
  has ChoiceField $.product where CodeableConcept|Reference;
  has DateTime $.enteredDate;
  has UriStr @.definitionUri;
  has ChoiceField $.occurrence where DateTime|Period|Timing;
  has Money $.priceOverride;
  has Real $.factorOverride;
  has Str $.overrideReason;
  has Canonical @.definitionCanonical;
  has Reference @.supportingInformation;
  has Reference $.performingOrganization;
  has Reference $.requestingOrganization;
  has ChargeItem_Performer @.performer;
}
class Condition_Stage is FHIR is export {
  has Str $.id;
  has CodeableConcept $.type;
  has CodeableConcept $.summary;
  has Extension @.extension;
  has Reference @.assessment;
  has Extension @.modifierExtension;
}

class Condition_Evidence is FHIR is export {
  has Str $.id;
  has CodeableConcept @.code;
  has Reference @.detail;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Condition is DomainResource is export {
  method resourceType(--> 'Condition') {}
  has CodeableConcept $.code;
  has Annotation @.note;
  has Reference $.subject is required;
  has CodeableConcept @.category;
  has CodeableConcept $.severity;
  has CodeableConcept @.bodySite;
  has ChoiceField $.onset where Age|DateTime|Period|Range|Str;
  has Reference $.recorder;
  has Reference $.asserter;
  has Reference $.encounter;
  has Identifier @.identifier;
  has ChoiceField $.abatement where Age|DateTime|Period|Range|Str;
  has DateTime $.recordedDate;
  has CodeableConcept $.clinicalStatus;
  has CodeableConcept $.verificationStatus;
  has Condition_Stage @.stage;
  has Condition_Evidence @.evidence;
}
class Task_Input is FHIR is export {
  has Str $.id;
  has CodeableConcept $.type 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;
  has Extension @.modifierExtension;
}

class Task_Output is FHIR is export {
  has Str $.id;
  has CodeableConcept $.type 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;
  has Extension @.modifierExtension;
}

class Task_Restriction is FHIR is export {
  has Str $.id;
  has Period $.period;
  has Extension @.extension;
  has Reference @.recipient;
  has PositiveInt $.repetitions;
  has Extension @.modifierExtension;
}

class Task is DomainResource is export {
  method resourceType(--> 'Task') {}
  has Reference $.for;
  has CodeableConcept $.code;
  has Annotation @.note;
  has Reference $.focus;
  has Reference $.owner;
  has Reference @.partOf;
  has FHIRCode $.status is required;
  has FHIRCode $.intent is required;
  has Reference @.basedOn;
  has FHIRCode $.priority;
  has Reference $.location;
  has Reference $.encounter;
  has Reference $.requester;
  has Reference @.insurance;
  has Identifier @.identifier;
  has DateTime $.authoredOn;
  has CodeableConcept $.reasonCode;
  has Str $.description;
  has CodeableConcept $.statusReason;
  has DateTime $.lastModified;
  has CodeableConcept @.performerType;
  has CodeableConcept $.businessStatus;
  has UriStr $.instantiatesUri;
  has Identifier $.groupIdentifier;
  has Period $.executionPeriod;
  has Reference $.reasonReference;
  has Reference @.relevantHistory;
  has Canonical $.instantiatesCanonical;
  has Task_Input @.input;
  has Task_Output @.output;
  has Task_Restriction $.restriction;
}
class RiskAssessment_Prediction is FHIR is export {
  has Str $.id;
  has CodeableConcept $.outcome;
  has ChoiceField $.when where Period|Range;
  has Extension @.extension;
  has Str $.rationale;
  has Real $.relativeRisk;
  has ChoiceField $.probability where Real|Range;
  has CodeableConcept $.qualitativeRisk;
  has Extension @.modifierExtension;
}

class RiskAssessment is DomainResource is export {
  method resourceType(--> 'RiskAssessment') {}
  has CodeableConcept $.code;
  has Annotation @.note;
  has Reference @.basis;
  has Reference $.parent;
  has FHIRCode $.status is required;
  has CodeableConcept $.method;
  has Reference $.basedOn;
  has Reference $.subject is required;
  has Reference $.encounter;
  has Reference $.condition;
  has Reference $.performer;
  has Identifier @.identifier;
  has CodeableConcept @.reasonCode;
  has Str $.mitigation;
  has ChoiceField $.occurrence where DateTime|Period;
  has Reference @.reasonReference;
  has RiskAssessment_Prediction @.prediction;
}

class GuidanceResponse is DomainResource is export {
  method resourceType(--> 'GuidanceResponse') {}
  has Annotation @.note;
  has FHIRCode $.status is required;
  has Reference $.result;
  has Reference $.subject;
  has ChoiceField $.module is required where Canonical|CodeableConcept|UriStr;
  has Reference $.encounter;
  has Reference $.performer;
  has Identifier @.identifier;
  has CodeableConcept @.reasonCode;
  has Reference @.reasonReference;
  has DataRequirement @.dataRequirement;
  has Reference $.outputParameters;
  has Identifier $.requestIdentifier;
  has Reference @.evaluationMessage;
  has DateTime $.occurrenceDateTime;
}
class Device_Version is FHIR is export {
  has Str $.id;
  has CodeableConcept $.type;
  has Str $.value is required;
  has Extension @.extension;
  has Identifier $.component;
  has Extension @.modifierExtension;
}

class Device_Property is FHIR is export {
  has Str $.id;
  has CodeableConcept $.type is required;
  has Extension @.extension;
  has CodeableConcept @.valueCode;
  has Quantity @.valueQuantity;
  has Extension @.modifierExtension;
}

class Device_UdiCarrier is FHIR is export {
  has Str $.id;
  has UriStr $.issuer;
  has Extension @.extension;
  has FHIRCode $.entryType;
  has Str $.carrierHRF;
  has Base64Binary $.carrierAIDC;
  has UriStr $.jurisdiction;
  has Str $.deviceIdentifier;
  has Extension @.modifierExtension;
}

class Device_DeviceName is FHIR is export {
  has Str $.id;
  has Str $.name is required;
  has FHIRCode $.type is required;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Device_Specialization is FHIR is export {
  has Str $.id;
  has Str $.version;
  has Extension @.extension;
  has CodeableConcept $.systemType is required;
  has Extension @.modifierExtension;
}

class Device is DomainResource is export {
  method resourceType(--> 'Device') {}
  has UriStr $.url;
  has CodeableConcept $.type;
  has Annotation @.note;
  has Reference $.owner;
  has FHIRCode $.status;
  has CodeableConcept @.safety;
  has Reference $.parent;
  has Reference $.patient;
  has ContactPoint @.contact;
  has Reference $.location;
  has Str $.lotNumber;
  has Identifier @.identifier;
  has Reference $.definition;
  has Str $.partNumber;
  has Str $.modelNumber;
  has CodeableConcept @.statusReason;
  has Str $.manufacturer;
  has Str $.serialNumber;
  has DateTime $.expirationDate;
  has DateTime $.manufactureDate;
  has Str $.distinctIdentifier;
  has Device_Version @.version;
  has Device_Property @.property;
  has Device_UdiCarrier @.udiCarrier;
  has Device_DeviceName @.deviceName;
  has Device_Specialization @.specialization;
}

class Endpoint is DomainResource is export {
  method resourceType(--> 'Endpoint') {}
  has Str $.name;
  has FHIRCode $.status is required;
  has Period $.period;
  has Str @.header;
  has ContactPoint @.contact;
  has UrlStr $.address is required;
  has Identifier @.identifier;
  has CodeableConcept @.payloadType is required;
  has Coding $.connectionType is required;
  has FHIRCode @.payloadMimeType;
  has Reference $.managingOrganization;
}
class Encounter_Location is FHIR is export {
  has Str $.id;
  has FHIRCode $.status;
  has Period $.period;
  has Reference $.location is required;
  has Extension @.extension;
  has CodeableConcept $.physicalType;
  has Extension @.modifierExtension;
}

class Encounter_Diagnosis is FHIR is export {
  has Str $.id;
  has CodeableConcept $.use;
  has PositiveInt $.rank;
  has Extension @.extension;
  has Reference $.condition is required;
  has Extension @.modifierExtension;
}

class Encounter_Participant is FHIR is export {
  has Str $.id;
  has CodeableConcept @.type;
  has Period $.period;
  has Extension @.extension;
  has Reference $.individual;
  has Extension @.modifierExtension;
}

class Encounter_ClassHistory is FHIR is export {
  has Str $.id;
  has Coding $.class is required;
  has Period $.period is required;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Encounter_StatusHistory is FHIR is export {
  has Str $.id;
  has FHIRCode $.status is required;
  has Period $.period is required;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Encounter_Hospitalization is FHIR is export {
  has Str $.id;
  has Reference $.origin;
  has Extension @.extension;
  has CodeableConcept $.admitSource;
  has CodeableConcept $.reAdmission;
  has Reference $.destination;
  has CodeableConcept @.dietPreference;
  has CodeableConcept @.specialCourtesy;
  has Extension @.modifierExtension;
  has CodeableConcept @.specialArrangement;
  has CodeableConcept $.dischargeDisposition;
  has Identifier $.preAdmissionIdentifier;
}

class Encounter is DomainResource is export {
  method resourceType(--> 'Encounter') {}
  has CodeableConcept @.type;
  has Coding $.class is required;
  has FHIRCode $.status is required;
  has Period $.period;
  has Duration $.length;
  has Reference $.partOf;
  has Reference $.subject;
  has Reference @.basedOn;
  has Reference @.account;
  has CodeableConcept $.priority;
  has Identifier @.identifier;
  has CodeableConcept @.reasonCode;
  has CodeableConcept $.serviceType;
  has Reference @.appointment;
  has Reference @.episodeOfCare;
  has Reference @.reasonReference;
  has Reference $.serviceProvider;
  has Encounter_Location @.location;
  has Encounter_Diagnosis @.diagnosis;
  has Encounter_Participant @.participant;
  has Encounter_ClassHistory @.classHistory;
  has Encounter_StatusHistory @.statusHistory;
  has Encounter_Hospitalization $.hospitalization;
}
class Linkage_Item is FHIR is export {
  has Str $.id;
  has FHIRCode $.type is required;
  has Reference $.resource is required;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Linkage is DomainResource is export {
  method resourceType(--> 'Linkage') {}
  has Bool $.active;
  has Reference $.author;
  has Linkage_Item @.item is required;
}
class Measure_SupplementalData is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code;
  has CodeableConcept @.usage;
  has Expression $.criteria is required;
  has Extension @.extension;
  has Str $.description;
  has Extension @.modifierExtension;
}

class Measure_Group_Population is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code;
  has Expression $.criteria is required;
  has Extension @.extension;
  has Str $.description;
  has Extension @.modifierExtension;
}

class Measure_Group_Stratifier_Component is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code;
  has Expression $.criteria is required;
  has Extension @.extension;
  has Str $.description;
  has Extension @.modifierExtension;
}
class Measure_Group_Stratifier is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code;
  has Expression $.criteria;
  has Extension @.extension;
  has Str $.description;
  has Extension @.modifierExtension;
  has Measure_Group_Stratifier_Component @.component;
}
class Measure_Group is FHIR is export {
  has Str $.id;
  has CodeableConcept $.code;
  has Extension @.extension;
  has Str $.description;
  has Extension @.modifierExtension;
  has Measure_Group_Population @.population;
  has Measure_Group_Stratifier @.stratifier;
}

class Measure is DomainResource is export {
  method resourceType(--> 'Measure') {}
  has UriStr $.url;
  has Str $.name;
  has DateTime $.date;
  has CodeableConcept @.type;
  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 CodeableConcept $.scoring;
  has Str $.subtitle;
  has ContactDetail @.reviewer;
  has ContactDetail @.endorser;
  has Markdown $.guidance;
  has Str $.publisher;
  has Markdown $.copyright;
  has Markdown $.rationale;
  has Identifier @.identifier;
  has ChoiceField $.subject where CodeableConcept|Reference;
  has UsageContext @.useContext;
  has Markdown $.disclaimer;
  has Markdown @.definition;
  has Markdown $.description;
  has Bool $.experimental;
  has CodeableConcept @.jurisdiction;
  has Date $.approvalDate;
  has Date $.lastReviewDate;
  has Str $.riskAdjustment;
  has Period $.effectivePeriod;
  has RelatedArtifact @.relatedArtifact;
  has Str $.rateAggregation;
  has CodeableConcept $.compositeScoring;
  has CodeableConcept $.improvementNotation;
  has Markdown $.clinicalRecommendationStatement;
  has Measure_SupplementalData @.supplementalData;
  has Measure_Group @.group;
}
class Communication_Payload is FHIR is export {
  has Str $.id;
  has Extension @.extension;
  has ChoiceField $.content is required where Attachment|Reference|Str;
  has Extension @.modifierExtension;
}

class Communication is DomainResource is export {
  method resourceType(--> 'Communication') {}
  has DateTime $.sent;
  has Annotation @.note;
  has CodeableConcept $.topic;
  has Reference @.about;
  has Reference @.partOf;
  has FHIRCode $.status is required;
  has CodeableConcept @.medium;
  has Reference $.sender;
  has Reference @.basedOn;
  has Reference $.subject;
  has CodeableConcept @.category;
  has FHIRCode $.priority;
  has DateTime $.received;
  has Reference $.encounter;
  has Reference @.recipient;
  has Identifier @.identifier;
  has CodeableConcept @.reasonCode;
  has Reference @.inResponseTo;
  has CodeableConcept $.statusReason;
  has UriStr @.instantiatesUri;
  has Reference @.reasonReference;
  has Canonical @.instantiatesCanonical;
  has Communication_Payload @.payload;
}
class MedicinalProductAuthorization_Procedure is FHIR is export {
  has Str $.id;
  has CodeableConcept $.type is required;
  has ChoiceField $.date where DateTime|Period;
  has Extension @.extension;
  has Identifier $.identifier;
  has MedicinalProductAuthorization_Procedure @.application;
  has Extension @.modifierExtension;
}

class MedicinalProductAuthorization_JurisdictionalAuthorization is FHIR is export {
  has Str $.id;
  has CodeableConcept $.country;
  has Extension @.extension;
  has Identifier @.identifier;
  has CodeableConcept @.jurisdiction;
  has Period $.validityPeriod;
  has Extension @.modifierExtension;
  has CodeableConcept $.legalStatusOfSupply;
}

class MedicinalProductAuthorization is DomainResource is export {
  method resourceType(--> 'MedicinalProductAuthorization') {}
  has CodeableConcept $.status;
  has Reference $.holder;
  has Reference $.subject;
  has CodeableConcept @.country;
  has Reference $.regulator;
  has Identifier @.identifier;
  has DateTime $.statusDate;
  has CodeableConcept $.legalBasis;
  has DateTime $.restoreDate;
  has CodeableConcept @.jurisdiction;
  has Period $.validityPeriod;
  has Period $.dataExclusivityPeriod;
  has DateTime $.internationalBirthDate;
  has DateTime $.dateOfFirstAuthorization;
  has MedicinalProductAuthorization_Procedure $.procedure;
  has MedicinalProductAuthorization_JurisdictionalAuthorization @.jurisdictionalAuthorization;
}
class Immunization_Reaction is FHIR is export {
  has Str $.id;
  has DateTime $.date;
  has Reference $.detail;
  has Bool $.reported;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Immunization_Performer is FHIR is export {
  has Str $.id;
  has Reference $.actor is required;
  has CodeableConcept $.function;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class Immunization_Education is FHIR is export {
  has Str $.id;
  has Extension @.extension;
  has UriStr $.reference;
  has Str $.documentType;
  has DateTime $.publicationDate;
  has DateTime $.presentationDate;
  has Extension @.modifierExtension;
}

class Immunization_ProtocolApplied is FHIR is export {
  has Str $.id;
  has Str $.series;
  has Extension @.extension;
  has Reference $.authority;
  has CodeableConcept @.targetDisease;
  has ChoiceField $.doseNumber is required where PositiveInt|Str;
  has ChoiceField $.seriesDoses where PositiveInt|Str;
  has Extension @.modifierExtension;
}

class Immunization is DomainResource is export {
  method resourceType(--> 'Immunization') {}
  has CodeableConcept $.site;
  has Annotation @.note;
  has CodeableConcept $.route;
  has FHIRCode $.status is required;
  has Reference $.patient is required;
  has DateTime $.recorded;
  has Reference $.location;
  has Reference $.encounter;
  has Str $.lotNumber;
  has Identifier @.identifier;
  has CodeableConcept @.reasonCode;
  has CodeableConcept $.vaccineCode is required;
  has Bool $.isSubpotent;
  has CodeableConcept $.statusReason;
  has CodeableConcept $.reportOrigin;
  has Reference $.manufacturer;
  has Quantity $.doseQuantity;
  has ChoiceField $.occurrence is required where DateTime|Str;
  has Bool $.primarySource;
  has CodeableConcept $.fundingSource;
  has Date $.expirationDate;
  has Reference @.reasonReference;
  has CodeableConcept @.subpotentReason;
  has CodeableConcept @.programEligibility;
  has Immunization_Reaction @.reaction;
  has Immunization_Performer @.performer;
  has Immunization_Education @.education;
  has Immunization_ProtocolApplied @.protocolApplied;
}
class AuditEvent_Source is FHIR is export {
  has Str $.id;
  has Str $.site;
  has Coding @.type;
  has Reference $.observer is required;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class AuditEvent_Agent_Network is FHIR is export {
  has Str $.id;
  has FHIRCode $.type;
  has Str $.address;
  has Extension @.extension;
  has Extension @.modifierExtension;
}
class AuditEvent_Agent is FHIR is export {
  has Str $.id;
  has Reference $.who;
  has CodeableConcept $.type;
  has CodeableConcept @.role;
  has Str $.name;
  has Str $.altId;
  has Coding $.media;
  has UriStr @.policy;
  has Reference $.location;
  has Extension @.extension;
  has Bool $.requestor is required;
  has CodeableConcept @.purposeOfUse;
  has Extension @.modifierExtension;
  has AuditEvent_Agent_Network $.network;
}

class AuditEvent_Entity_Detail is FHIR is export {
  has Str $.id;
  has Str $.type is required;
  has ChoiceField $.value is required where Base64Binary|Str;
  has Extension @.extension;
  has Extension @.modifierExtension;
}
class AuditEvent_Entity is FHIR is export {
  has Str $.id;
  has Reference $.what;
  has Coding $.type;
  has Coding $.role;
  has Str $.name;
  has Base64Binary $.query;
  has Extension @.extension;
  has Coding $.lifecycle;
  has Str $.description;
  has Coding @.securityLabel;
  has Extension @.modifierExtension;
  has AuditEvent_Entity_Detail @.detail;
}

class AuditEvent is DomainResource is export {
  method resourceType(--> 'AuditEvent') {}
  has Coding $.type is required;
  has FHIRCode $.action;
  has Period $.period;
  has Coding @.subtype;
  has FHIRCode $.outcome;
  has DateTime $.recorded is required;
  has Str $.outcomeDesc;
  has CodeableConcept @.purposeOfEvent;
  has AuditEvent_Source $.source is required;
  has AuditEvent_Agent @.agent is required;
  has AuditEvent_Entity @.entity;
}
class ImplementationGuide_Global is FHIR is export {
  has Str $.id;
  has FHIRCode $.type is required;
  has Canonical $.profile is required;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class ImplementationGuide_DependsOn is FHIR is export {
  has Str $.id;
  has Canonical $.uri is required;
  has Str $.version;
  has Extension @.extension;
  has Id $.packageId;
  has Extension @.modifierExtension;
}

class ImplementationGuide_Manifest_Page is FHIR is export {
  has Str $.id;
  has Str $.name is required;
  has Str $.title;
  has Str @.anchor;
  has Extension @.extension;
  has Extension @.modifierExtension;
}

class ImplementationGuide_Manifest_Resource is FHIR is export {
  has Str $.id;
  has Extension @.extension;
  has Reference $.reference is required;
  has ChoiceField $.example where Bool|Canonical;
  has UrlStr $.relativePath;
  has Extension @.modifierExtension;
}
class ImplementationGuide_Manifest is FHIR is export {
  has Str $.id;
  has Str @.image;
  has Str @.other;
  has Extension @.extension;
  has UrlStr $.rendering;
  has Extension @.modifierExtension;
  has ImplementationGuide_Manifest_Page @.page;
  has ImplementationGuide_Manifest_Resource @.resource is required;
}

class ImplementationGuide_Definition_Page is FHIR is export {
  has Str $.id;
  has ImplementationGuide_Definition_Page @.page;
  has Str $.title is required;
  has ChoiceField $.name is required where Reference|UrlStr;
  has Extension @.extension;
  has FHIRCode $.generation is required;
  has Extension @.modifierExtension;
}

class ImplementationGuide_Definition