models

package
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2026 License: MIT Imports: 2 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	ResourceType  string             `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string            `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta              `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string            `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative         `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage  `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier       `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Account number
	Status        string             `json:"status" bson:"status"`                                    // active | inactive | entered-in-error | on-hold | unknown
	BillingStatus *CodeableConcept   `json:"billingStatus,omitempty" bson:"billing_status,omitempty"` // Tracks the lifecycle of the account through the billing process
	Type          *CodeableConcept   `json:"type,omitempty" bson:"type,omitempty"`                    // E.g. patient, expense, depreciation
	Name          *string            `json:"name,omitempty" bson:"name,omitempty"`                    // Human-readable label
	Subject       []Reference        `json:"subject,omitempty" bson:"subject,omitempty"`              // The entity that caused the expenses
	ServicePeriod *Period            `json:"servicePeriod,omitempty" bson:"service_period,omitempty"` // Transaction window
	Covers        []Reference        `json:"covers,omitempty" bson:"covers,omitempty"`                // Episodic account covering these encounters/episodes of care
	Coverage      []AccountCoverage  `json:"coverage,omitempty" bson:"coverage,omitempty"`            // The party(s) that are responsible for covering the payment of this account, and what order should they be applied to the account
	Owner         *Reference         `json:"owner,omitempty" bson:"owner,omitempty"`                  // Entity managing the Account
	Description   *string            `json:"description,omitempty" bson:"description,omitempty"`      // Explanation of purpose/use
	Guarantor     []AccountGuarantor `json:"guarantor,omitempty" bson:"guarantor,omitempty"`          // The parties ultimately responsible for balancing the Account
	Diagnosis     []AccountDiagnosis `json:"diagnosis,omitempty" bson:"diagnosis,omitempty"`          // The list of diagnoses relevant to this account
	Procedure     []AccountProcedure `json:"procedure,omitempty" bson:"procedure,omitempty"`          // The list of procedures relevant to this account
	Parent        *Reference         `json:"parent,omitempty" bson:"parent,omitempty"`                // Reference to an associated parent Account
	Currency      *CodeableConcept   `json:"currency,omitempty" bson:"currency,omitempty"`            // The base or default currency
	Balance       []AccountBalance   `json:"balance,omitempty" bson:"balance,omitempty"`              // Calculated account balance(s)
	CalculatedAt  *string            `json:"calculatedAt,omitempty" bson:"calculated_at,omitempty"`   // Time the balance amount was calculated
}

A financial tool for tracking value accrued for a particular purpose. In the healthcare field, used to track charges for a patient, cost centers, etc.

func (*Account) Validate

func (r *Account) Validate() error

type AccountBalance

type AccountBalance struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Aggregate *CodeableConcept `json:"aggregate,omitempty" bson:"aggregate,omitempty"` // Who is expected to pay this part of the balance
	Term      *CodeableConcept `json:"term,omitempty" bson:"term,omitempty"`           // current | 30 | 60 | 90 | 120
	Estimate  *bool            `json:"estimate,omitempty" bson:"estimate,omitempty"`   // Estimated balance
	Amount    *Money           `json:"amount" bson:"amount"`                           // Calculated amount
}

func (*AccountBalance) Validate

func (r *AccountBalance) Validate() error

type AccountCoverage

type AccountCoverage struct {
	Id       *string    `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Coverage *Reference `json:"coverage" bson:"coverage"`                     // The party(s), such as insurances, that may contribute to the payment of this account
	Priority *int       `json:"priority,omitempty" bson:"priority,omitempty"` // The priority of the coverage in the context of this account
}

func (*AccountCoverage) Validate

func (r *AccountCoverage) Validate() error

type AccountDiagnosis

type AccountDiagnosis struct {
	Id              *string            `json:"id,omitempty" bson:"id,omitempty"`                             // Unique id for inter-element referencing
	Sequence        *int               `json:"sequence,omitempty" bson:"sequence,omitempty"`                 // Ranking of the diagnosis (for each type)
	Condition       *CodeableReference `json:"condition" bson:"condition"`                                   // The diagnosis relevant to the account
	DateOfDiagnosis *string            `json:"dateOfDiagnosis,omitempty" bson:"date_of_diagnosis,omitempty"` // Date of the diagnosis (when coded diagnosis)
	Type            []CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                         // Type that this diagnosis has relevant to the account (e.g. admission, billing, discharge …)
	OnAdmission     *bool              `json:"onAdmission,omitempty" bson:"on_admission,omitempty"`          // Diagnosis present on Admission
	PackageCode     []CodeableConcept  `json:"packageCode,omitempty" bson:"package_code,omitempty"`          // Package Code specific for billing
}

func (*AccountDiagnosis) Validate

func (r *AccountDiagnosis) Validate() error

type AccountGuarantor

type AccountGuarantor struct {
	Id             *string    `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Party          *Reference `json:"party,omitempty" bson:"party,omitempty"`                   // Responsible entity
	OnHold         *bool      `json:"onHold,omitempty" bson:"on_hold,omitempty"`                // Credit or other hold applied
	Period         *Period    `json:"period,omitempty" bson:"period,omitempty"`                 // Guarantee account during
	Account        *Reference `json:"account,omitempty" bson:"account,omitempty"`               // A specific Account for the guarantor
	Responsibility *Quantity  `json:"responsibility,omitempty" bson:"responsibility,omitempty"` // Responsible %'age of charges
	Limit          *Money     `json:"limit,omitempty" bson:"limit,omitempty"`                   // Responsible financial limit
	Rank           *int       `json:"rank,omitempty" bson:"rank,omitempty"`                     // Rank order of guarator
}

func (*AccountGuarantor) Validate

func (r *AccountGuarantor) Validate() error

type AccountProcedure

type AccountProcedure struct {
	Id            *string            `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Sequence      *int               `json:"sequence,omitempty" bson:"sequence,omitempty"`             // Ranking of the procedure (for each type)
	Code          *CodeableReference `json:"code" bson:"code"`                                         // The procedure relevant to the account
	DateOfService *string            `json:"dateOfService,omitempty" bson:"date_of_service,omitempty"` // Date of the procedure (when coded procedure)
	Type          []CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                     // How this procedure value should be used in charging the account
	PackageCode   []CodeableConcept  `json:"packageCode,omitempty" bson:"package_code,omitempty"`      // Package Code specific for billing
	Device        []Reference        `json:"device,omitempty" bson:"device,omitempty"`                 // Any devices that were associated with the procedure
}

func (*AccountProcedure) Validate

func (r *AccountProcedure) Validate() error

type AccountStatus added in v0.0.3

type AccountStatus string

AccountStatus represents codes from http://hl7.org/fhir/ValueSet/account-status

const (
	AccountStatusActive         AccountStatus = "active"
	AccountStatusInactive       AccountStatus = "inactive"
	AccountStatusEnteredInError AccountStatus = "entered-in-error"
	AccountStatusOnHold         AccountStatus = "on-hold"
	AccountStatusUnknown        AccountStatus = "unknown"
)

type ActionApplicabilityBehavior added in v0.0.3

type ActionApplicabilityBehavior string

ActionApplicabilityBehavior represents codes from http://hl7.org/fhir/ValueSet/action-applicability-behavior

const (
	ActionApplicabilityBehaviorAll ActionApplicabilityBehavior = "all"
	ActionApplicabilityBehaviorAny ActionApplicabilityBehavior = "any"
)

type ActionCardinalityBehavior added in v0.0.3

type ActionCardinalityBehavior string

ActionCardinalityBehavior represents codes from http://hl7.org/fhir/ValueSet/action-cardinality-behavior

const (
	ActionCardinalityBehaviorSingle   ActionCardinalityBehavior = "single"
	ActionCardinalityBehaviorMultiple ActionCardinalityBehavior = "multiple"
)

type ActionConditionKind added in v0.0.3

type ActionConditionKind string

ActionConditionKind represents codes from http://hl7.org/fhir/ValueSet/action-condition-kind

const (
	ActionConditionKindApplicability ActionConditionKind = "applicability"
	ActionConditionKindStart         ActionConditionKind = "start"
	ActionConditionKindStop          ActionConditionKind = "stop"
)

type ActionGroupingBehavior added in v0.0.3

type ActionGroupingBehavior string

ActionGroupingBehavior represents codes from http://hl7.org/fhir/ValueSet/action-grouping-behavior

const (
	ActionGroupingBehaviorVisualGroup   ActionGroupingBehavior = "visual-group"
	ActionGroupingBehaviorLogicalGroup  ActionGroupingBehavior = "logical-group"
	ActionGroupingBehaviorSentenceGroup ActionGroupingBehavior = "sentence-group"
)

type ActionParticipantType added in v0.0.3

type ActionParticipantType string

ActionParticipantType represents codes from http://hl7.org/fhir/ValueSet/action-participant-type

const (
	ActionParticipantTypeCareteam          ActionParticipantType = "careteam"
	ActionParticipantTypeDevice            ActionParticipantType = "device"
	ActionParticipantTypeGroup             ActionParticipantType = "group"
	ActionParticipantTypeHealthcareservice ActionParticipantType = "healthcareservice"
	ActionParticipantTypeLocation          ActionParticipantType = "location"
	ActionParticipantTypeOrganization      ActionParticipantType = "organization"
	ActionParticipantTypePatient           ActionParticipantType = "patient"
	ActionParticipantTypePractitioner      ActionParticipantType = "practitioner"
	ActionParticipantTypePractitionerrole  ActionParticipantType = "practitionerrole"
	ActionParticipantTypeRelatedperson     ActionParticipantType = "relatedperson"
)

type ActionPrecheckBehavior added in v0.0.3

type ActionPrecheckBehavior string

ActionPrecheckBehavior represents codes from http://hl7.org/fhir/ValueSet/action-precheck-behavior

const (
	ActionPrecheckBehaviorYes ActionPrecheckBehavior = "yes"
	ActionPrecheckBehaviorNo  ActionPrecheckBehavior = "no"
)

type ActionRelationshipType added in v0.0.3

type ActionRelationshipType string

ActionRelationshipType represents codes from http://hl7.org/fhir/ValueSet/action-relationship-type

const (
	ActionRelationshipTypeBefore              ActionRelationshipType = "before"
	ActionRelationshipTypeBeforeStart         ActionRelationshipType = "before-start"
	ActionRelationshipTypeBeforeEnd           ActionRelationshipType = "before-end"
	ActionRelationshipTypeConcurrent          ActionRelationshipType = "concurrent"
	ActionRelationshipTypeConcurrentWithStart ActionRelationshipType = "concurrent-with-start"
	ActionRelationshipTypeConcurrentWithEnd   ActionRelationshipType = "concurrent-with-end"
	ActionRelationshipTypeAfter               ActionRelationshipType = "after"
	ActionRelationshipTypeAfterStart          ActionRelationshipType = "after-start"
	ActionRelationshipTypeAfterEnd            ActionRelationshipType = "after-end"
)

type ActionRequiredBehavior added in v0.0.3

type ActionRequiredBehavior string

ActionRequiredBehavior represents codes from http://hl7.org/fhir/ValueSet/action-required-behavior

const (
	ActionRequiredBehaviorMust                 ActionRequiredBehavior = "must"
	ActionRequiredBehaviorCould                ActionRequiredBehavior = "could"
	ActionRequiredBehaviorMustUnlessDocumented ActionRequiredBehavior = "must-unless-documented"
)

type ActionSelectionBehavior added in v0.0.3

type ActionSelectionBehavior string

ActionSelectionBehavior represents codes from http://hl7.org/fhir/ValueSet/action-selection-behavior

const (
	ActionSelectionBehaviorAny        ActionSelectionBehavior = "any"
	ActionSelectionBehaviorAll        ActionSelectionBehavior = "all"
	ActionSelectionBehaviorAllOrNone  ActionSelectionBehavior = "all-or-none"
	ActionSelectionBehaviorExactlyOne ActionSelectionBehavior = "exactly-one"
	ActionSelectionBehaviorAtMostOne  ActionSelectionBehavior = "at-most-one"
	ActionSelectionBehaviorOneOrMore  ActionSelectionBehavior = "one-or-more"
)

type ActivityDefinition

type ActivityDefinition struct {
	ResourceType                 string                           `json:"resourceType" bson:"resource_type"`                                                      // Type of resource
	Id                           *string                          `json:"id,omitempty" bson:"id,omitempty"`                                                       // Logical id of this artifact
	Meta                         *Meta                            `json:"meta,omitempty" bson:"meta,omitempty"`                                                   // Metadata about the resource
	ImplicitRules                *string                          `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                                // A set of rules under which this content was created
	Language                     *string                          `json:"language,omitempty" bson:"language,omitempty"`                                           // Language of the resource content
	Text                         *Narrative                       `json:"text,omitempty" bson:"text,omitempty"`                                                   // Text summary of the resource, for human interpretation
	Contained                    []json.RawMessage                `json:"contained,omitempty" bson:"contained,omitempty"`                                         // Contained, inline Resources
	Url                          *string                          `json:"url,omitempty" bson:"url,omitempty"`                                                     // Canonical identifier for this activity definition, represented as a URI (globally unique)
	Identifier                   []Identifier                     `json:"identifier,omitempty" bson:"identifier,omitempty"`                                       // Additional identifier for the activity definition
	Version                      *string                          `json:"version,omitempty" bson:"version,omitempty"`                                             // Business version of the activity definition
	VersionAlgorithmString       *string                          `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"`             // How to compare versions
	VersionAlgorithmCoding       *Coding                          `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"`             // How to compare versions
	Name                         *string                          `json:"name,omitempty" bson:"name,omitempty"`                                                   // Name for this activity definition (computer friendly)
	Title                        *string                          `json:"title,omitempty" bson:"title,omitempty"`                                                 // Name for this activity definition (human friendly)
	Subtitle                     *string                          `json:"subtitle,omitempty" bson:"subtitle,omitempty"`                                           // Subordinate title of the activity definition
	Status                       string                           `json:"status" bson:"status"`                                                                   // draft | active | retired | unknown
	Experimental                 *bool                            `json:"experimental,omitempty" bson:"experimental,omitempty"`                                   // For testing only - never for real usage
	SubjectCodeableConcept       *CodeableConcept                 `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"`             // Type of individual the activity definition is intended for
	SubjectReference             *Reference                       `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`                          // Type of individual the activity definition is intended for
	SubjectCanonical             *string                          `json:"subjectCanonical,omitempty" bson:"subject_canonical,omitempty"`                          // Type of individual the activity definition is intended for
	Date                         *string                          `json:"date,omitempty" bson:"date,omitempty"`                                                   // Date last changed
	Publisher                    *string                          `json:"publisher,omitempty" bson:"publisher,omitempty"`                                         // Name of the publisher/steward (organization or individual)
	Contact                      []ContactDetail                  `json:"contact,omitempty" bson:"contact,omitempty"`                                             // Contact details for the publisher
	Description                  *string                          `json:"description,omitempty" bson:"description,omitempty"`                                     // Natural language description of the activity definition
	UseContext                   []UsageContext                   `json:"useContext,omitempty" bson:"use_context,omitempty"`                                      // The context that the content is intended to support
	Jurisdiction                 []CodeableConcept                `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                                   // Jurisdiction of the authority that maintains the activity definition (if applicable)
	Purpose                      *string                          `json:"purpose,omitempty" bson:"purpose,omitempty"`                                             // Why this activity definition is defined
	Usage                        *string                          `json:"usage,omitempty" bson:"usage,omitempty"`                                                 // Describes the clinical usage of the activity definition
	Copyright                    *string                          `json:"copyright,omitempty" bson:"copyright,omitempty"`                                         // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel               *string                          `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                              // Copyright holder and year(s)
	ApprovalDate                 *string                          `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                                  // When the activity definition was approved by publisher
	LastReviewDate               *string                          `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                             // When the activity definition was last reviewed by the publisher
	EffectivePeriod              *Period                          `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                            // When the activity definition is expected to be used
	Topic                        []CodeableConcept                `json:"topic,omitempty" bson:"topic,omitempty"`                                                 // E.g. Education, Treatment, Assessment, etc
	Author                       []ContactDetail                  `json:"author,omitempty" bson:"author,omitempty"`                                               // Who authored the content
	Editor                       []ContactDetail                  `json:"editor,omitempty" bson:"editor,omitempty"`                                               // Who edited the content
	Reviewer                     []ContactDetail                  `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                                           // Who reviewed the content
	Endorser                     []ContactDetail                  `json:"endorser,omitempty" bson:"endorser,omitempty"`                                           // Who endorsed the content
	RelatedArtifact              []RelatedArtifact                `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                            // Additional documentation, citations, etc
	Library                      []string                         `json:"library,omitempty" bson:"library,omitempty"`                                             // Logic used by the activity definition
	Kind                         *string                          `json:"kind,omitempty" bson:"kind,omitempty"`                                                   // Kind of resource
	Profile                      *string                          `json:"profile,omitempty" bson:"profile,omitempty"`                                             // What profile the resource needs to conform to
	Code                         *CodeableConcept                 `json:"code,omitempty" bson:"code,omitempty"`                                                   // Detail type of activity
	Intent                       *string                          `json:"intent,omitempty" bson:"intent,omitempty"`                                               // proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
	Priority                     *string                          `json:"priority,omitempty" bson:"priority,omitempty"`                                           // routine | urgent | asap | stat
	DoNotPerform                 *bool                            `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`                                 // True if the activity should not be performed
	TimingTiming                 *Timing                          `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`                                  // When activity is to occur
	TimingAge                    *Age                             `json:"timingAge,omitempty" bson:"timing_age,omitempty"`                                        // When activity is to occur
	TimingRange                  *Range                           `json:"timingRange,omitempty" bson:"timing_range,omitempty"`                                    // When activity is to occur
	TimingDuration               *Duration                        `json:"timingDuration,omitempty" bson:"timing_duration,omitempty"`                              // When activity is to occur
	TimingRelativeTime           *RelativeTime                    `json:"timingRelativeTime,omitempty" bson:"timing_relative_time,omitempty"`                     // When activity is to occur
	AsNeededBoolean              *bool                            `json:"asNeededBoolean,omitempty" bson:"as_needed_boolean,omitempty"`                           // Preconditions for service
	AsNeededCodeableConcept      *CodeableConcept                 `json:"asNeededCodeableConcept,omitempty" bson:"as_needed_codeable_concept,omitempty"`          // Preconditions for service
	Location                     *CodeableReference               `json:"location,omitempty" bson:"location,omitempty"`                                           // Where it should happen
	Participant                  []ActivityDefinitionParticipant  `json:"participant,omitempty" bson:"participant,omitempty"`                                     // Who should participate in the action
	ProductReference             *Reference                       `json:"productReference,omitempty" bson:"product_reference,omitempty"`                          // What's administered/supplied
	ProductCodeableConcept       *CodeableConcept                 `json:"productCodeableConcept,omitempty" bson:"product_codeable_concept,omitempty"`             // What's administered/supplied
	Quantity                     *Quantity                        `json:"quantity,omitempty" bson:"quantity,omitempty"`                                           // How much is administered/consumed/supplied
	Dosage                       []Dosage                         `json:"dosage,omitempty" bson:"dosage,omitempty"`                                               // Detailed dosage instructions
	BodySite                     []CodeableConcept                `json:"bodySite,omitempty" bson:"body_site,omitempty"`                                          // What part of body to perform on
	SpecimenRequirement          []string                         `json:"specimenRequirement,omitempty" bson:"specimen_requirement,omitempty"`                    // What specimens are required to perform this action
	ObservationRequirement       []string                         `json:"observationRequirement,omitempty" bson:"observation_requirement,omitempty"`              // What observations are required to perform this action
	ObservationResultRequirement []string                         `json:"observationResultRequirement,omitempty" bson:"observation_result_requirement,omitempty"` // What observations must be produced by this action
	Transform                    *string                          `json:"transform,omitempty" bson:"transform,omitempty"`                                         // Transform to apply the template
	DynamicValue                 []ActivityDefinitionDynamicValue `json:"dynamicValue,omitempty" bson:"dynamic_value,omitempty"`                                  // Dynamic aspects of the definition
}

This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context.

func (*ActivityDefinition) Validate

func (r *ActivityDefinition) Validate() error

type ActivityDefinitionDynamicValue

type ActivityDefinitionDynamicValue struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Path       string      `json:"path" bson:"path"`                 // The path to the element to be set dynamically
	Expression *Expression `json:"expression" bson:"expression"`     // An expression that provides the dynamic value for the customization
}

func (*ActivityDefinitionDynamicValue) Validate

func (r *ActivityDefinitionDynamicValue) Validate() error

type ActivityDefinitionParticipant

type ActivityDefinitionParticipant struct {
	Id            *string          `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Type          *string          `json:"type,omitempty" bson:"type,omitempty"`                    // careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
	TypeCanonical *string          `json:"typeCanonical,omitempty" bson:"type_canonical,omitempty"` // Who or what can participate
	TypeReference *Reference       `json:"typeReference,omitempty" bson:"type_reference,omitempty"` // Who or what can participate
	Role          *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                    // E.g. Nurse, Surgeon, Parent, etc
	Function      *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"`            // E.g. Author, Reviewer, Witness, etc
}

func (*ActivityDefinitionParticipant) Validate

func (r *ActivityDefinitionParticipant) Validate() error

type ActorDefinition

type ActorDefinition struct {
	ResourceType           string            `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string           `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string           `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string           `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this actor definition, represented as a URI (globally unique)
	Identifier             []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the actor definition (business identifier)
	Version                *string           `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the actor definition
	VersionAlgorithmString *string           `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding           `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string           `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this actor definition (computer friendly)
	Title                  *string           `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this actor definition (human friendly)
	Status                 string            `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool             `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string           `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string           `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail   `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string           `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the actor
	UseContext             []UsageContext    `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the actor definition (if applicable)
	Purpose                *string           `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this actor definition is defined
	Copyright              *string           `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string           `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Type                   string            `json:"type" bson:"type"`                                                           // person | system | collective | other
	Category               []CodeableConcept `json:"category,omitempty" bson:"category,omitempty"`                               // Further details about the type of actor
	Documentation          *string           `json:"documentation,omitempty" bson:"documentation,omitempty"`                     // Explanation and details about the actor
	Reference              []string          `json:"reference,omitempty" bson:"reference,omitempty"`                             // Reference to more information about the actor
	BaseDefinition         []string          `json:"baseDefinition,omitempty" bson:"base_definition,omitempty"`                  // Parent actor definition
}

The ActorDefinition resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.

func (*ActorDefinition) Validate

func (r *ActorDefinition) Validate() error

type ActorDefinitionActorType added in v0.0.3

type ActorDefinitionActorType string

ActorDefinitionActorType represents codes from http://hl7.org/fhir/ValueSet/actordefinition-actor-type

const (
	ActorDefinitionActorTypePerson     ActorDefinitionActorType = "person"
	ActorDefinitionActorTypeSystem     ActorDefinitionActorType = "system"
	ActorDefinitionActorTypeCollective ActorDefinitionActorType = "collective"
	ActorDefinitionActorTypeOther      ActorDefinitionActorType = "other"
)

type AdditionalBindingPurposeVS added in v0.0.3

type AdditionalBindingPurposeVS string

AdditionalBindingPurposeVS represents codes from http://hl7.org/fhir/ValueSet/additional-binding-purpose

const (
	AdditionalBindingPurposeVSMaximum           AdditionalBindingPurposeVS = "maximum"
	AdditionalBindingPurposeVSMinimum           AdditionalBindingPurposeVS = "minimum"
	AdditionalBindingPurposeVSRequired          AdditionalBindingPurposeVS = "required"
	AdditionalBindingPurposeVSExtensible        AdditionalBindingPurposeVS = "extensible"
	AdditionalBindingPurposeVSCandidate         AdditionalBindingPurposeVS = "candidate"
	AdditionalBindingPurposeVSCurrent           AdditionalBindingPurposeVS = "current"
	AdditionalBindingPurposeVSCurrentExtensible AdditionalBindingPurposeVS = "current-extensible"
	AdditionalBindingPurposeVSBestPractice      AdditionalBindingPurposeVS = "best-practice"
	AdditionalBindingPurposeVSOpen              AdditionalBindingPurposeVS = "open"
	AdditionalBindingPurposeVSPreferred         AdditionalBindingPurposeVS = "preferred"
	AdditionalBindingPurposeVSUi                AdditionalBindingPurposeVS = "ui"
	AdditionalBindingPurposeVSStarter           AdditionalBindingPurposeVS = "starter"
	AdditionalBindingPurposeVSComponent         AdditionalBindingPurposeVS = "component"
)

type Address

type Address struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                  // Unique id for inter-element referencing
	Use        *string  `json:"use,omitempty" bson:"use,omitempty"`                // home | work | temp | old | billing - purpose of this address
	Type       *string  `json:"type,omitempty" bson:"type,omitempty"`              // postal | physical | both
	Text       *string  `json:"text,omitempty" bson:"text,omitempty"`              // Text representation of the address
	Line       []string `json:"line,omitempty" bson:"line,omitempty"`              // Street name, number, direction & P.O. Box etc.
	City       *string  `json:"city,omitempty" bson:"city,omitempty"`              // Name of city, town etc.
	District   *string  `json:"district,omitempty" bson:"district,omitempty"`      // District name (aka county)
	State      *string  `json:"state,omitempty" bson:"state,omitempty"`            // Sub-unit of country (abbreviations ok)
	PostalCode *string  `json:"postalCode,omitempty" bson:"postal_code,omitempty"` // Postal code for area
	Country    *string  `json:"country,omitempty" bson:"country,omitempty"`        // Country (e.g. may be ISO 3166 2 or 3 letter code)
	Period     *Period  `json:"period,omitempty" bson:"period,omitempty"`          // Time period when address was/is in use
}

Address Type: An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world. The ISO21090-codedString may be used to provide a coded representation of the contents of strings in an Address.

func (*Address) Validate

func (r *Address) Validate() error

type AddressType added in v0.0.3

type AddressType string

AddressType represents codes from http://hl7.org/fhir/ValueSet/address-type

const (
	AddressTypePostal   AddressType = "postal"
	AddressTypePhysical AddressType = "physical"
	AddressTypeBoth     AddressType = "both"
)

type AddressUse added in v0.0.3

type AddressUse string

AddressUse represents codes from http://hl7.org/fhir/ValueSet/address-use

const (
	AddressUseHome    AddressUse = "home"
	AddressUseWork    AddressUse = "work"
	AddressUseTemp    AddressUse = "temp"
	AddressUseOld     AddressUse = "old"
	AddressUseBilling AddressUse = "billing"
)

type AdministrableProductDefinition

type AdministrableProductDefinition struct {
	ResourceType          string                                                `json:"resourceType" bson:"resource_type"`                                        // Type of resource
	Id                    *string                                               `json:"id,omitempty" bson:"id,omitempty"`                                         // Logical id of this artifact
	Meta                  *Meta                                                 `json:"meta,omitempty" bson:"meta,omitempty"`                                     // Metadata about the resource
	ImplicitRules         *string                                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                  // A set of rules under which this content was created
	Language              *string                                               `json:"language,omitempty" bson:"language,omitempty"`                             // Language of the resource content
	Text                  *Narrative                                            `json:"text,omitempty" bson:"text,omitempty"`                                     // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage                                     `json:"contained,omitempty" bson:"contained,omitempty"`                           // Contained, inline Resources
	Identifier            []Identifier                                          `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // An identifier for the administrable product instance
	Status                string                                                `json:"status" bson:"status"`                                                     // draft | active | retired | unknown
	FormOf                []Reference                                           `json:"formOf,omitempty" bson:"form_of,omitempty"`                                // References a product from which one or more of the constituent parts of that product can be prepared and used as described by this administrable product
	AdministrableDoseForm *CodeableConcept                                      `json:"administrableDoseForm,omitempty" bson:"administrable_dose_form,omitempty"` // The dose form of the final product after necessary reconstitution or processing
	UnitOfPresentation    *CodeableConcept                                      `json:"unitOfPresentation,omitempty" bson:"unit_of_presentation,omitempty"`       // The presentation type in which this item is given to a patient. e.g. for a spray - 'puff'
	ProducedFrom          []Reference                                           `json:"producedFrom,omitempty" bson:"produced_from,omitempty"`                    // Indicates the specific manufactured items that are part of the 'formOf' product that are used in the preparation of this specific administrable form
	Ingredient            []CodeableConcept                                     `json:"ingredient,omitempty" bson:"ingredient,omitempty"`                         // The ingredients of this administrable medicinal product. This is only needed if the ingredients are not specified either using ManufacturedItemDefinition, or using incoming references from the Ingredient resource
	Device                *Reference                                            `json:"device,omitempty" bson:"device,omitempty"`                                 // A device that is integral to the medicinal product, in effect being considered as an "ingredient" of the medicinal product
	Description           *string                                               `json:"description,omitempty" bson:"description,omitempty"`                       // A general description of the product, when in its final form, suitable for administration e.g. effervescent blue liquid, to be swallowed
	Code                  []Coding                                              `json:"code,omitempty" bson:"code,omitempty"`                                     // A code that this product is known by, within some formal terminology. May be a PhPID
	Property              []AdministrableProductDefinitionProperty              `json:"property,omitempty" bson:"property,omitempty"`                             // Characteristics e.g. a product's onset of action
	RouteOfAdministration []AdministrableProductDefinitionRouteOfAdministration `json:"routeOfAdministration" bson:"route_of_administration"`                     // The path by which the product is taken into or makes contact with the body
}

A medicinal product in the final form which is suitable for administering to a patient (after any mixing of multiple components, dissolution etc. has been performed).

func (*AdministrableProductDefinition) Validate

func (r *AdministrableProductDefinition) Validate() error

type AdministrableProductDefinitionProperty

type AdministrableProductDefinitionProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                                       // A code expressing the type of characteristic
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // A value for the characteristic
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // A value for the characteristic
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // A value for the characteristic
	ValueDate            *string          `json:"valueDate,omitempty" bson:"value_date,omitempty"`                        // A value for the characteristic
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // A value for the characteristic
	ValueMarkdown        *string          `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                // A value for the characteristic
	ValueAttachment      *Attachment      `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`            // A value for the characteristic
	ValueReference       *Reference       `json:"valueReference,omitempty" bson:"value_reference,omitempty"`              // A value for the characteristic
	Status               *CodeableConcept `json:"status,omitempty" bson:"status,omitempty"`                               // The status of characteristic e.g. assigned or pending
}

func (*AdministrableProductDefinitionProperty) Validate

type AdministrableProductDefinitionRouteOfAdministration

type AdministrableProductDefinitionRouteOfAdministration struct {
	Id                        *string                                                            `json:"id,omitempty" bson:"id,omitempty"`                                                   // Unique id for inter-element referencing
	Code                      *CodeableConcept                                                   `json:"code" bson:"code"`                                                                   // Coded expression for the route
	FirstDose                 *Quantity                                                          `json:"firstDose,omitempty" bson:"first_dose,omitempty"`                                    // The first dose (dose quantity) administered can be specified for the product
	MaxSingleDose             *Quantity                                                          `json:"maxSingleDose,omitempty" bson:"max_single_dose,omitempty"`                           // The maximum single dose that can be administered
	MaxDosePerDay             *Quantity                                                          `json:"maxDosePerDay,omitempty" bson:"max_dose_per_day,omitempty"`                          // The maximum dose quantity to be administered in any one 24-h period
	MaxDosePerTreatmentPeriod *Ratio                                                             `json:"maxDosePerTreatmentPeriod,omitempty" bson:"max_dose_per_treatment_period,omitempty"` // The maximum dose per treatment period that can be administered
	MaxTreatmentPeriod        *Duration                                                          `json:"maxTreatmentPeriod,omitempty" bson:"max_treatment_period,omitempty"`                 // The maximum treatment period during which the product can be administered
	TargetSpecies             []AdministrableProductDefinitionRouteOfAdministrationTargetSpecies `json:"targetSpecies,omitempty" bson:"target_species,omitempty"`                            // A species for which this route applies
}

func (*AdministrableProductDefinitionRouteOfAdministration) Validate

type AdministrableProductDefinitionRouteOfAdministrationTargetSpecies

type AdministrableProductDefinitionRouteOfAdministrationTargetSpecies struct {
	Id               *string                                                                            `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Code             *CodeableConcept                                                                   `json:"code" bson:"code"`                                              // Coded expression for the species
	WithdrawalPeriod []AdministrableProductDefinitionRouteOfAdministrationTargetSpeciesWithdrawalPeriod `json:"withdrawalPeriod,omitempty" bson:"withdrawal_period,omitempty"` // A species specific time during which consumption of animal product is not appropriate
}

func (*AdministrableProductDefinitionRouteOfAdministrationTargetSpecies) Validate

type AdministrableProductDefinitionRouteOfAdministrationTargetSpeciesWithdrawalPeriod

type AdministrableProductDefinitionRouteOfAdministrationTargetSpeciesWithdrawalPeriod struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                                        // Unique id for inter-element referencing
	Tissue                *CodeableConcept `json:"tissue" bson:"tissue"`                                                    // The type of tissue for which the withdrawal period applies, e.g. meat, milk
	Value                 *Quantity        `json:"value" bson:"value"`                                                      // A value for the time
	SupportingInformation *string          `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"` // Extra information about the withdrawal period
}

func (*AdministrableProductDefinitionRouteOfAdministrationTargetSpeciesWithdrawalPeriod) Validate

type AdministrativeGender added in v0.0.3

type AdministrativeGender string

AdministrativeGender represents codes from http://hl7.org/fhir/ValueSet/administrative-gender

const (
	AdministrativeGenderMale    AdministrativeGender = "male"
	AdministrativeGenderFemale  AdministrativeGender = "female"
	AdministrativeGenderOther   AdministrativeGender = "other"
	AdministrativeGenderUnknown AdministrativeGender = "unknown"
)

type AdverseEvent

type AdverseEvent struct {
	ResourceType            string                      `json:"resourceType" bson:"resource_type"`                                             // Type of resource
	Id                      *string                     `json:"id,omitempty" bson:"id,omitempty"`                                              // Logical id of this artifact
	Meta                    *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                                          // Metadata about the resource
	ImplicitRules           *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                       // A set of rules under which this content was created
	Language                *string                     `json:"language,omitempty" bson:"language,omitempty"`                                  // Language of the resource content
	Text                    *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                                          // Text summary of the resource, for human interpretation
	Contained               []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`                                // Contained, inline Resources
	Identifier              []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`                              // Business identifier for the event
	Status                  string                      `json:"status" bson:"status"`                                                          // in-progress | completed | entered-in-error | unknown
	Actuality               string                      `json:"actuality" bson:"actuality"`                                                    // actual | potential
	Category                []CodeableConcept           `json:"category,omitempty" bson:"category,omitempty"`                                  // wrong-patient | procedure-mishap | medication-mishap | device | unsafe-physical-environment | hospital-aquired-infection | wrong-body-site
	Code                    *CodeableConcept            `json:"code,omitempty" bson:"code,omitempty"`                                          // Event or incident that occurred or was averted
	Subject                 *Reference                  `json:"subject" bson:"subject"`                                                        // Subject impacted by event
	Encounter               *Reference                  `json:"encounter,omitempty" bson:"encounter,omitempty"`                                // The Encounter associated with the start of the AdverseEvent
	EffectDateTime          *string                     `json:"effectDateTime,omitempty" bson:"effect_date_time,omitempty"`                    // When the effect of the AdverseEvent occurred
	EffectPeriod            *Period                     `json:"effectPeriod,omitempty" bson:"effect_period,omitempty"`                         // When the effect of the AdverseEvent occurred
	Detected                *string                     `json:"detected,omitempty" bson:"detected,omitempty"`                                  // When the event was detected
	RecordedDate            *string                     `json:"recordedDate,omitempty" bson:"recorded_date,omitempty"`                         // When the event was recorded
	ResultingEffect         []CodeableReference         `json:"resultingEffect,omitempty" bson:"resulting_effect,omitempty"`                   // Effect on the subject due to this event
	Location                *Reference                  `json:"location,omitempty" bson:"location,omitempty"`                                  // Location where adverse event occurred
	Seriousness             *CodeableConcept            `json:"seriousness,omitempty" bson:"seriousness,omitempty"`                            // Seriousness or gravity of the event
	Outcome                 []CodeableConcept           `json:"outcome,omitempty" bson:"outcome,omitempty"`                                    // Type of outcome from the adverse event
	Recorder                *Reference                  `json:"recorder,omitempty" bson:"recorder,omitempty"`                                  // Who recorded the adverse event
	Participant             []AdverseEventParticipant   `json:"participant,omitempty" bson:"participant,omitempty"`                            // Who was involved in the adverse event or the potential adverse event and what they did
	Study                   []Reference                 `json:"study,omitempty" bson:"study,omitempty"`                                        // Research study that the subject is enrolled in
	ExpectedInResearchStudy *bool                       `json:"expectedInResearchStudy,omitempty" bson:"expected_in_research_study,omitempty"` // Considered likely or probable or anticipated in the research study
	SuspectEntity           []AdverseEventSuspectEntity `json:"suspectEntity,omitempty" bson:"suspect_entity,omitempty"`                       // The suspected agent causing the adverse event
	ContributingFactor      []CodeableReference         `json:"contributingFactor,omitempty" bson:"contributing_factor,omitempty"`             // Contributing factors suspected to have increased the probability or severity of the adverse event
	PreventiveAction        []CodeableReference         `json:"preventiveAction,omitempty" bson:"preventive_action,omitempty"`                 // Preventive actions that contributed to avoiding the adverse event
	MitigatingAction        []CodeableReference         `json:"mitigatingAction,omitempty" bson:"mitigating_action,omitempty"`                 // Ameliorating actions taken after the adverse event occurred in order to reduce the extent of harm
	SupportingInfo          []CodeableReference         `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`                     // Subject medical history or document relevant to this adverse event
	Note                    []Annotation                `json:"note,omitempty" bson:"note,omitempty"`                                          // Comment on adverse event
}

An event (i.e. any change to current patient status) that may be related to unintended effects on a patient or research participant. The unintended effects may require additional monitoring, treatment, hospitalization, or may result in death. The AdverseEvent resource also extends to potential or avoided events that could have had such effects. There are two major domains where the AdverseEvent resource is expected to be used. One is in clinical care reported adverse events and the other is in reporting adverse events in clinical research trial management. Adverse events can be reported by healthcare providers, patients, caregivers or by medical products manufacturers. Given the differences between these two concepts, we recommend consulting the domain specific implementation guides when implementing the AdverseEvent Resource. The implementation guides include specific extensions, value sets and constraints.

func (*AdverseEvent) Validate

func (r *AdverseEvent) Validate() error

type AdverseEventActuality added in v0.0.3

type AdverseEventActuality string

AdverseEventActuality represents codes from http://hl7.org/fhir/ValueSet/adverse-event-actuality

const (
	AdverseEventActualityActual    AdverseEventActuality = "actual"
	AdverseEventActualityPotential AdverseEventActuality = "potential"
)

type AdverseEventParticipant

type AdverseEventParticipant struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Type of involvement
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Who was involved in the adverse event or the potential adverse event
}

func (*AdverseEventParticipant) Validate

func (r *AdverseEventParticipant) Validate() error

type AdverseEventStatus added in v0.0.3

type AdverseEventStatus string

AdverseEventStatus represents codes from http://hl7.org/fhir/ValueSet/adverse-event-status

const (
	AdverseEventStatusPreparation    AdverseEventStatus = "preparation"
	AdverseEventStatusInProgress     AdverseEventStatus = "in-progress"
	AdverseEventStatusNotDone        AdverseEventStatus = "not-done"
	AdverseEventStatusOnHold         AdverseEventStatus = "on-hold"
	AdverseEventStatusStopped        AdverseEventStatus = "stopped"
	AdverseEventStatusCompleted      AdverseEventStatus = "completed"
	AdverseEventStatusEnteredInError AdverseEventStatus = "entered-in-error"
	AdverseEventStatusUnknown        AdverseEventStatus = "unknown"
)

type AdverseEventSuspectEntity

type AdverseEventSuspectEntity struct {
	Id                 *string                             `json:"id,omitempty" bson:"id,omitempty"`                                   // Unique id for inter-element referencing
	Instance           *CodeableReference                  `json:"instance" bson:"instance"`                                           // Refers to the specific entity that caused the adverse event
	Causality          *AdverseEventSuspectEntityCausality `json:"causality,omitempty" bson:"causality,omitempty"`                     // Information on the possible cause of the event
	OccurrenceDateTime *string                             `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // When the suspect entity occurred
	OccurrencePeriod   *Period                             `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // When the suspect entity occurred
}

func (*AdverseEventSuspectEntity) Validate

func (r *AdverseEventSuspectEntity) Validate() error

type AdverseEventSuspectEntityCausality

type AdverseEventSuspectEntityCausality struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	AssessmentMethod  *CodeableConcept `json:"assessmentMethod,omitempty" bson:"assessment_method,omitempty"`   // Method of evaluating the relatedness of the suspected entity to the event
	EntityRelatedness *CodeableConcept `json:"entityRelatedness,omitempty" bson:"entity_relatedness,omitempty"` // Result of the assessment regarding the relatedness of the suspected entity to the event
	Author            *Reference       `json:"author,omitempty" bson:"author,omitempty"`                        // Author of the information on the possible cause of the event
}

func (*AdverseEventSuspectEntityCausality) Validate

type Age

type Age struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Value      *float64 `json:"value,omitempty" bson:"value,omitempty"`           // Numerical value (with implicit precision)
	Comparator *string  `json:"comparator,omitempty" bson:"comparator,omitempty"` // < | <= | >= | > | ad - how to understand the value
	Unit       *string  `json:"unit,omitempty" bson:"unit,omitempty"`             // Unit representation
	System     *string  `json:"system,omitempty" bson:"system,omitempty"`         // System that defines coded unit form
	Code       *string  `json:"code,omitempty" bson:"code,omitempty"`             // Coded form of the unit
}

Age Type: A duration of time during which an organism (or a process) has existed.

func (*Age) Validate

func (r *Age) Validate() error

type AggregationMode added in v0.0.3

type AggregationMode string

AggregationMode represents codes from http://hl7.org/fhir/ValueSet/resource-aggregation-mode

const (
	AggregationModeContained  AggregationMode = "contained"
	AggregationModeReferenced AggregationMode = "referenced"
	AggregationModeBundled    AggregationMode = "bundled"
)

type AllergyIntolerance

type AllergyIntolerance struct {
	ResourceType           string                       `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                      `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                        `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                      `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                      `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                   `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage            `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Identifier             []Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // External ids for this item
	ClinicalStatus         *CodeableConcept             `json:"clinicalStatus,omitempty" bson:"clinical_status,omitempty"`                  // active | inactive | resolved
	VerificationStatus     *CodeableConcept             `json:"verificationStatus,omitempty" bson:"verification_status,omitempty"`          // unconfirmed | presumed | confirmed | refuted | entered-in-error
	Type                   *CodeableConcept             `json:"type,omitempty" bson:"type,omitempty"`                                       // allergy | intolerance - Underlying mechanism (if known)
	Category               []string                     `json:"category,omitempty" bson:"category,omitempty"`                               // food | medication | environment | biologic
	Criticality            *string                      `json:"criticality,omitempty" bson:"criticality,omitempty"`                         // low | high | unable-to-assess
	Code                   *CodeableConcept             `json:"code,omitempty" bson:"code,omitempty"`                                       // Code that identifies the allergy or intolerance
	Patient                *Reference                   `json:"patient" bson:"patient"`                                                     // Who the allergy or intolerance is for
	Encounter              *Reference                   `json:"encounter,omitempty" bson:"encounter,omitempty"`                             // Encounter when the allergy or intolerance was asserted
	OnsetDateTime          *string                      `json:"onsetDateTime,omitempty" bson:"onset_date_time,omitempty"`                   // When allergy or intolerance was identified
	OnsetAge               *Age                         `json:"onsetAge,omitempty" bson:"onset_age,omitempty"`                              // When allergy or intolerance was identified
	OnsetPeriod            *Period                      `json:"onsetPeriod,omitempty" bson:"onset_period,omitempty"`                        // When allergy or intolerance was identified
	OnsetRange             *Range                       `json:"onsetRange,omitempty" bson:"onset_range,omitempty"`                          // When allergy or intolerance was identified
	OnsetString            *string                      `json:"onsetString,omitempty" bson:"onset_string,omitempty"`                        // When allergy or intolerance was identified
	RecordedDate           *string                      `json:"recordedDate,omitempty" bson:"recorded_date,omitempty"`                      // Date allergy or intolerance was first recorded
	Recorder               *Reference                   `json:"recorder,omitempty" bson:"recorder,omitempty"`                               // Who recorded the sensitivity
	Asserter               *Reference                   `json:"asserter,omitempty" bson:"asserter,omitempty"`                               // Source of the information about the allergy
	LastReactionOccurrence *string                      `json:"lastReactionOccurrence,omitempty" bson:"last_reaction_occurrence,omitempty"` // Date(/time) of last known occurrence of a reaction
	Note                   []Annotation                 `json:"note,omitempty" bson:"note,omitempty"`                                       // Additional text not captured in other fields
	Reaction               []AllergyIntoleranceReaction `json:"reaction,omitempty" bson:"reaction,omitempty"`                               // Adverse Reaction Events linked to exposure to substance
}

Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.

func (*AllergyIntolerance) Validate

func (r *AllergyIntolerance) Validate() error

type AllergyIntoleranceCategory added in v0.0.3

type AllergyIntoleranceCategory string

AllergyIntoleranceCategory represents codes from http://hl7.org/fhir/ValueSet/allergy-intolerance-category

const (
	AllergyIntoleranceCategoryFood        AllergyIntoleranceCategory = "food"
	AllergyIntoleranceCategoryMedication  AllergyIntoleranceCategory = "medication"
	AllergyIntoleranceCategoryEnvironment AllergyIntoleranceCategory = "environment"
	AllergyIntoleranceCategoryBiologic    AllergyIntoleranceCategory = "biologic"
)

type AllergyIntoleranceCriticality added in v0.0.3

type AllergyIntoleranceCriticality string

AllergyIntoleranceCriticality represents codes from http://hl7.org/fhir/ValueSet/allergy-intolerance-criticality

const (
	AllergyIntoleranceCriticalityLow            AllergyIntoleranceCriticality = "low"
	AllergyIntoleranceCriticalityHigh           AllergyIntoleranceCriticality = "high"
	AllergyIntoleranceCriticalityUnableToAssess AllergyIntoleranceCriticality = "unable-to-assess"
)

type AllergyIntoleranceReaction

type AllergyIntoleranceReaction struct {
	Id            *string             `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Substance     *CodeableConcept    `json:"substance,omitempty" bson:"substance,omitempty"`          // Specific substance or pharmaceutical product considered to be responsible for event
	Manifestation []CodeableReference `json:"manifestation" bson:"manifestation"`                      // Clinical symptoms/signs associated with the Event
	Description   *string             `json:"description,omitempty" bson:"description,omitempty"`      // Description of the event as a whole
	Onset         *string             `json:"onset,omitempty" bson:"onset,omitempty"`                  // Date(/time) when manifestations showed
	Severity      *string             `json:"severity,omitempty" bson:"severity,omitempty"`            // mild | moderate | severe (of event as a whole)
	ExposureRoute *CodeableConcept    `json:"exposureRoute,omitempty" bson:"exposure_route,omitempty"` // How the subject was exposed to the substance
	Note          []Annotation        `json:"note,omitempty" bson:"note,omitempty"`                    // Text about event not captured in other fields
}

func (*AllergyIntoleranceReaction) Validate

func (r *AllergyIntoleranceReaction) Validate() error

type AllergyIntoleranceSeverity added in v0.0.3

type AllergyIntoleranceSeverity string

AllergyIntoleranceSeverity represents codes from http://hl7.org/fhir/ValueSet/reaction-event-severity

const (
	AllergyIntoleranceSeverityMild     AllergyIntoleranceSeverity = "mild"
	AllergyIntoleranceSeverityModerate AllergyIntoleranceSeverity = "moderate"
	AllergyIntoleranceSeveritySevere   AllergyIntoleranceSeverity = "severe"
)

type Annotation

type Annotation struct {
	Id              *string    `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	AuthorReference *Reference `json:"authorReference,omitempty" bson:"author_reference,omitempty"` // Individual responsible for the annotation
	AuthorString    *string    `json:"authorString,omitempty" bson:"author_string,omitempty"`       // Individual responsible for the annotation
	Time            *string    `json:"time,omitempty" bson:"time,omitempty"`                        // When the annotation was made
	Text            string     `json:"text" bson:"text"`                                            // The annotation  - text content (as markdown)
}

Annotation Type: A text note which also contains information about who made the statement and when.

func (*Annotation) Validate

func (r *Annotation) Validate() error

type Apply

type Apply struct {
}

The apply operation applies a PlanDefinition to a given subject or group of subjects, instantiating applicable actions and returning the results as bundles of request resources.

func (*Apply) Validate

func (r *Apply) Validate() error

type Appointment

type Appointment struct {
	ResourceType           string                          `json:"resourceType" bson:"resource_type"`                                         // Type of resource
	Id                     *string                         `json:"id,omitempty" bson:"id,omitempty"`                                          // Logical id of this artifact
	Meta                   *Meta                           `json:"meta,omitempty" bson:"meta,omitempty"`                                      // Metadata about the resource
	ImplicitRules          *string                         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                   // A set of rules under which this content was created
	Language               *string                         `json:"language,omitempty" bson:"language,omitempty"`                              // Language of the resource content
	Text                   *Narrative                      `json:"text,omitempty" bson:"text,omitempty"`                                      // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage               `json:"contained,omitempty" bson:"contained,omitempty"`                            // Contained, inline Resources
	Identifier             []Identifier                    `json:"identifier,omitempty" bson:"identifier,omitempty"`                          // External Ids for this item
	Status                 string                          `json:"status" bson:"status"`                                                      // proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
	CancellationReason     *CodeableConcept                `json:"cancellationReason,omitempty" bson:"cancellation_reason,omitempty"`         // The coded reason for the appointment being cancelled
	Class                  []CodeableConcept               `json:"class,omitempty" bson:"class,omitempty"`                                    // Classification when becoming an encounter
	ServiceCategory        []CodeableConcept               `json:"serviceCategory,omitempty" bson:"service_category,omitempty"`               // A broad categorization of the service that is to be performed during this appointment
	ServiceType            []CodeableReference             `json:"serviceType,omitempty" bson:"service_type,omitempty"`                       // The specific service that is to be performed during this appointment
	Specialty              []CodeableConcept               `json:"specialty,omitempty" bson:"specialty,omitempty"`                            // The specialty of a practitioner that would be required to perform the service requested in this appointment
	AppointmentType        *CodeableConcept                `json:"appointmentType,omitempty" bson:"appointment_type,omitempty"`               // The style of appointment or patient that has been booked in the slot (not service type)
	Reason                 []CodeableReference             `json:"reason,omitempty" bson:"reason,omitempty"`                                  // Reason this appointment is scheduled
	Priority               *CodeableConcept                `json:"priority,omitempty" bson:"priority,omitempty"`                              // Used to make informed decisions if needing to re-prioritize
	Description            *string                         `json:"description,omitempty" bson:"description,omitempty"`                        // Shown on a subject line in a meeting request, or appointment list
	Replaces               []Reference                     `json:"replaces,omitempty" bson:"replaces,omitempty"`                              // Appointment replaced by this Appointment
	VirtualService         []VirtualServiceDetail          `json:"virtualService,omitempty" bson:"virtual_service,omitempty"`                 // Connection details of a virtual service (e.g. conference call)
	SupportingInformation  []Reference                     `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"`   // Additional information to support the appointment
	PreviousAppointment    *Reference                      `json:"previousAppointment,omitempty" bson:"previous_appointment,omitempty"`       // The previous appointment in a series
	OriginatingAppointment *Reference                      `json:"originatingAppointment,omitempty" bson:"originating_appointment,omitempty"` // The originating appointment in a recurring set of appointments
	Start                  *string                         `json:"start,omitempty" bson:"start,omitempty"`                                    // When appointment is to take place
	End                    *string                         `json:"end,omitempty" bson:"end,omitempty"`                                        // When appointment is to conclude
	MinutesDuration        *int                            `json:"minutesDuration,omitempty" bson:"minutes_duration,omitempty"`               // Can be less than start/end (e.g. estimate)
	RequestedPeriod        []Period                        `json:"requestedPeriod,omitempty" bson:"requested_period,omitempty"`               // Potential date/time interval(s) requested to allocate the appointment within
	Slot                   []Reference                     `json:"slot,omitempty" bson:"slot,omitempty"`                                      // The slots that this appointment is filling
	Account                []Reference                     `json:"account,omitempty" bson:"account,omitempty"`                                // The set of accounts that may be used for billing for this Appointment
	Created                *string                         `json:"created,omitempty" bson:"created,omitempty"`                                // The date that this appointment was initially created
	CancellationDate       *string                         `json:"cancellationDate,omitempty" bson:"cancellation_date,omitempty"`             // When the appointment was cancelled
	Note                   []Annotation                    `json:"note,omitempty" bson:"note,omitempty"`                                      // Additional comments
	PatientInstruction     []CodeableReference             `json:"patientInstruction,omitempty" bson:"patient_instruction,omitempty"`         // Detailed information and instructions for the patient
	BasedOn                []Reference                     `json:"basedOn,omitempty" bson:"based_on,omitempty"`                               // The request this appointment is allocated to assess
	Subject                *Reference                      `json:"subject,omitempty" bson:"subject,omitempty"`                                // The patient or group associated with the appointment
	Participant            []AppointmentParticipant        `json:"participant" bson:"participant"`                                            // Participants involved in appointment
	RecurrenceId           *int                            `json:"recurrenceId,omitempty" bson:"recurrence_id,omitempty"`                     // The sequence number in the recurrence
	OccurrenceChanged      *bool                           `json:"occurrenceChanged,omitempty" bson:"occurrence_changed,omitempty"`           // Indicates that this appointment varies from a recurrence pattern
	RecurrenceTemplate     []AppointmentRecurrenceTemplate `json:"recurrenceTemplate,omitempty" bson:"recurrence_template,omitempty"`         // Details of the recurrence pattern/template used to generate occurrences
}

A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).

func (*Appointment) Validate

func (r *Appointment) Validate() error

type AppointmentParticipant

type AppointmentParticipant struct {
	Id       *string           `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Type     []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`         // Role of participant in the appointment
	Period   *Period           `json:"period,omitempty" bson:"period,omitempty"`     // Participation period of the actor
	Actor    *Reference        `json:"actor,omitempty" bson:"actor,omitempty"`       // The individual, device, location, or service participating in the appointment
	Required *bool             `json:"required,omitempty" bson:"required,omitempty"` // The participant is required to attend (optional when false)
	Status   string            `json:"status" bson:"status"`                         // accepted | declined | tentative | needs-action
}

func (*AppointmentParticipant) Validate

func (r *AppointmentParticipant) Validate() error

type AppointmentRecurrenceTemplate

type AppointmentRecurrenceTemplate struct {
	Id                    *string                                       `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	Timezone              *CodeableConcept                              `json:"timezone,omitempty" bson:"timezone,omitempty"`                             // The timezone of the occurrences
	RecurrenceType        *CodeableConcept                              `json:"recurrenceType" bson:"recurrence_type"`                                    // The frequency of the recurrence
	LastOccurrenceDate    *string                                       `json:"lastOccurrenceDate,omitempty" bson:"last_occurrence_date,omitempty"`       // The date when the recurrence should end
	OccurrenceCount       *int                                          `json:"occurrenceCount,omitempty" bson:"occurrence_count,omitempty"`              // The number of planned occurrences
	OccurrenceDate        []string                                      `json:"occurrenceDate,omitempty" bson:"occurrence_date,omitempty"`                // Specific dates for a recurring set of appointments (no template)
	WeeklyTemplate        *AppointmentRecurrenceTemplateWeeklyTemplate  `json:"weeklyTemplate,omitempty" bson:"weekly_template,omitempty"`                // Information about weekly recurring appointments
	MonthlyTemplate       *AppointmentRecurrenceTemplateMonthlyTemplate `json:"monthlyTemplate,omitempty" bson:"monthly_template,omitempty"`              // Information about monthly recurring appointments
	YearlyTemplate        *AppointmentRecurrenceTemplateYearlyTemplate  `json:"yearlyTemplate,omitempty" bson:"yearly_template,omitempty"`                // Information about yearly recurring appointments
	ExcludingDate         []string                                      `json:"excludingDate,omitempty" bson:"excluding_date,omitempty"`                  // Any dates that should be excluded from the series
	ExcludingRecurrenceId []int                                         `json:"excludingRecurrenceId,omitempty" bson:"excluding_recurrence_id,omitempty"` // Any recurrence IDs that should be excluded from the recurrence
}

func (*AppointmentRecurrenceTemplate) Validate

func (r *AppointmentRecurrenceTemplate) Validate() error

type AppointmentRecurrenceTemplateMonthlyTemplate

type AppointmentRecurrenceTemplateMonthlyTemplate struct {
	Id             *string `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	DayOfMonth     *int    `json:"dayOfMonth,omitempty" bson:"day_of_month,omitempty"`          // Recurs on a specific day of the month
	NthWeekOfMonth *Coding `json:"nthWeekOfMonth,omitempty" bson:"nth_week_of_month,omitempty"` // Indicates which week of the month the appointment should occur
	DayOfWeek      *Coding `json:"dayOfWeek,omitempty" bson:"day_of_week,omitempty"`            // Indicates which day of the week the appointment should occur
	MonthInterval  int     `json:"monthInterval" bson:"month_interval"`                         // Recurs every nth month
}

func (*AppointmentRecurrenceTemplateMonthlyTemplate) Validate

type AppointmentRecurrenceTemplateWeeklyTemplate

type AppointmentRecurrenceTemplateWeeklyTemplate struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Monday       *bool   `json:"monday,omitempty" bson:"monday,omitempty"`              // Recurs on Mondays
	Tuesday      *bool   `json:"tuesday,omitempty" bson:"tuesday,omitempty"`            // Recurs on Tuesday
	Wednesday    *bool   `json:"wednesday,omitempty" bson:"wednesday,omitempty"`        // Recurs on Wednesday
	Thursday     *bool   `json:"thursday,omitempty" bson:"thursday,omitempty"`          // Recurs on Thursday
	Friday       *bool   `json:"friday,omitempty" bson:"friday,omitempty"`              // Recurs on Friday
	Saturday     *bool   `json:"saturday,omitempty" bson:"saturday,omitempty"`          // Recurs on Saturday
	Sunday       *bool   `json:"sunday,omitempty" bson:"sunday,omitempty"`              // Recurs on Sunday
	WeekInterval *int    `json:"weekInterval,omitempty" bson:"week_interval,omitempty"` // Recurs every nth week
}

func (*AppointmentRecurrenceTemplateWeeklyTemplate) Validate

type AppointmentRecurrenceTemplateYearlyTemplate

type AppointmentRecurrenceTemplateYearlyTemplate struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"`  // Unique id for inter-element referencing
	YearInterval int     `json:"yearInterval" bson:"year_interval"` // Recurs every nth year
}

func (*AppointmentRecurrenceTemplateYearlyTemplate) Validate

type AppointmentResponse

type AppointmentResponse struct {
	ResourceType      string            `json:"resourceType" bson:"resource_type"`                            // Type of resource
	Id                *string           `json:"id,omitempty" bson:"id,omitempty"`                             // Logical id of this artifact
	Meta              *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                         // Metadata about the resource
	ImplicitRules     *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`      // A set of rules under which this content was created
	Language          *string           `json:"language,omitempty" bson:"language,omitempty"`                 // Language of the resource content
	Text              *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                         // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`               // Contained, inline Resources
	Identifier        []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`             // External Ids for this item
	Appointment       *Reference        `json:"appointment" bson:"appointment"`                               // Appointment this response relates to
	ProposedNewTime   *bool             `json:"proposedNewTime,omitempty" bson:"proposed_new_time,omitempty"` // Indicator for a counter proposal
	Start             *string           `json:"start,omitempty" bson:"start,omitempty"`                       // Time from appointment, or requested new start time
	End               *string           `json:"end,omitempty" bson:"end,omitempty"`                           // Time from appointment, or requested new end time
	ParticipantType   []CodeableConcept `json:"participantType,omitempty" bson:"participant_type,omitempty"`  // Role of participant in the appointment
	Actor             *Reference        `json:"actor,omitempty" bson:"actor,omitempty"`                       // Person(s), Location, HealthcareService, or Device
	ParticipantStatus string            `json:"participantStatus" bson:"participant_status"`                  // accepted | declined | tentative | needs-action | entered-in-error
	Comment           *string           `json:"comment,omitempty" bson:"comment,omitempty"`                   // Additional comments
	Recurring         *bool             `json:"recurring,omitempty" bson:"recurring,omitempty"`               // This response is for all occurrences in a recurring request
	OccurrenceDate    *string           `json:"occurrenceDate,omitempty" bson:"occurrence_date,omitempty"`    // Original date within a recurring request
	RecurrenceId      *int              `json:"recurrenceId,omitempty" bson:"recurrence_id,omitempty"`        // The recurrence ID of the specific recurring request
}

A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.

func (*AppointmentResponse) Validate

func (r *AppointmentResponse) Validate() error

type AppointmentResponseStatus added in v0.0.3

type AppointmentResponseStatus string

AppointmentResponseStatus represents codes from http://hl7.org/fhir/ValueSet/appointmentresponse-status

const (
	AppointmentResponseStatusAccepted       AppointmentResponseStatus = "accepted"
	AppointmentResponseStatusDeclined       AppointmentResponseStatus = "declined"
	AppointmentResponseStatusTentative      AppointmentResponseStatus = "tentative"
	AppointmentResponseStatusNeedsAction    AppointmentResponseStatus = "needs-action"
	AppointmentResponseStatusProposed       AppointmentResponseStatus = "proposed"
	AppointmentResponseStatusPending        AppointmentResponseStatus = "pending"
	AppointmentResponseStatusBooked         AppointmentResponseStatus = "booked"
	AppointmentResponseStatusArrived        AppointmentResponseStatus = "arrived"
	AppointmentResponseStatusFulfilled      AppointmentResponseStatus = "fulfilled"
	AppointmentResponseStatusCancelled      AppointmentResponseStatus = "cancelled"
	AppointmentResponseStatusNoshow         AppointmentResponseStatus = "noshow"
	AppointmentResponseStatusEnteredInError AppointmentResponseStatus = "entered-in-error"
	AppointmentResponseStatusCheckedIn      AppointmentResponseStatus = "checked-in"
	AppointmentResponseStatusWaitlist       AppointmentResponseStatus = "waitlist"
)

type AppointmentStatus added in v0.0.3

type AppointmentStatus string

AppointmentStatus represents codes from http://hl7.org/fhir/ValueSet/appointmentstatus

const (
	AppointmentStatusProposed       AppointmentStatus = "proposed"
	AppointmentStatusPending        AppointmentStatus = "pending"
	AppointmentStatusBooked         AppointmentStatus = "booked"
	AppointmentStatusArrived        AppointmentStatus = "arrived"
	AppointmentStatusFulfilled      AppointmentStatus = "fulfilled"
	AppointmentStatusCancelled      AppointmentStatus = "cancelled"
	AppointmentStatusNoshow         AppointmentStatus = "noshow"
	AppointmentStatusEnteredInError AppointmentStatus = "entered-in-error"
	AppointmentStatusCheckedIn      AppointmentStatus = "checked-in"
	AppointmentStatusWaitlist       AppointmentStatus = "waitlist"
)

type ArtifactAssessment

type ArtifactAssessment struct {
	ResourceType      string                        `json:"resourceType" bson:"resource_type"`                          // Type of resource
	Id                *string                       `json:"id,omitempty" bson:"id,omitempty"`                           // Logical id of this artifact
	Meta              *Meta                         `json:"meta,omitempty" bson:"meta,omitempty"`                       // Metadata about the resource
	ImplicitRules     *string                       `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`    // A set of rules under which this content was created
	Language          *string                       `json:"language,omitempty" bson:"language,omitempty"`               // Language of the resource content
	Text              *Narrative                    `json:"text,omitempty" bson:"text,omitempty"`                       // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage             `json:"contained,omitempty" bson:"contained,omitempty"`             // Contained, inline Resources
	Identifier        []Identifier                  `json:"identifier,omitempty" bson:"identifier,omitempty"`           // Additional identifier for the artifact assessment
	Title             *string                       `json:"title,omitempty" bson:"title,omitempty"`                     // A label for use in displaying and selecting the artifact assessment
	CiteAs            *string                       `json:"citeAs,omitempty" bson:"cite_as,omitempty"`                  // How to cite the comment or rating
	ArtifactReference *Reference                    `json:"artifactReference" bson:"artifact_reference"`                // The artifact assessed, commented upon or rated
	ArtifactCanonical *string                       `json:"artifactCanonical" bson:"artifact_canonical"`                // The artifact assessed, commented upon or rated
	ArtifactUri       *string                       `json:"artifactUri" bson:"artifact_uri"`                            // The artifact assessed, commented upon or rated
	RelatesTo         []ArtifactAssessmentRelatesTo `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`            // Relationship to other Resources
	Date              *string                       `json:"date,omitempty" bson:"date,omitempty"`                       // Date last changed
	Copyright         *string                       `json:"copyright,omitempty" bson:"copyright,omitempty"`             // Notice about intellectual property ownership, can include restrictions on use
	ApprovalDate      *string                       `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`      // When the artifact assessment was approved by publisher
	LastReviewDate    *string                       `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"` // When the artifact assessment was last reviewed by the publisher
	Content           []ArtifactAssessmentContent   `json:"content,omitempty" bson:"content,omitempty"`                 // Comment, classifier, or rating content
	WorkflowStatus    *string                       `json:"workflowStatus,omitempty" bson:"workflow_status,omitempty"`  // submitted | triaged | waiting-for-input | resolved-no-change | resolved-change-required | deferred | duplicate | applied | published | entered-in-error
	Disposition       *string                       `json:"disposition,omitempty" bson:"disposition,omitempty"`         // unresolved | not-persuasive | persuasive | persuasive-with-modification | not-persuasive-with-modification
}

This Resource provides one or more comments, classifiers or ratings about a Resource and supports attribution and rights management metadata for the added content.

func (*ArtifactAssessment) Validate

func (r *ArtifactAssessment) Validate() error

type ArtifactAssessmentContent

type ArtifactAssessmentContent struct {
	Id          *string                       `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Summary     *string                       `json:"summary,omitempty" bson:"summary,omitempty"`           // Brief summary of the content
	Type        *CodeableConcept              `json:"type,omitempty" bson:"type,omitempty"`                 // What type of content
	Classifier  []CodeableConcept             `json:"classifier,omitempty" bson:"classifier,omitempty"`     // Rating, classifier, or assessment
	Quantity    *Quantity                     `json:"quantity,omitempty" bson:"quantity,omitempty"`         // Quantitative rating
	Author      []Reference                   `json:"author,omitempty" bson:"author,omitempty"`             // Who authored the content
	Path        []string                      `json:"path,omitempty" bson:"path,omitempty"`                 // What the comment is directed to
	RelatesTo   []ArtifactAssessmentRelatesTo `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`      // Relationship to other Resources
	FreeToShare *bool                         `json:"freeToShare,omitempty" bson:"free_to_share,omitempty"` // Acceptable to publicly share the content
	Component   []ArtifactAssessmentContent   `json:"component,omitempty" bson:"component,omitempty"`       // Comment, classifier, or rating content
}

func (*ArtifactAssessmentContent) Validate

func (r *ArtifactAssessmentContent) Validate() error

type ArtifactAssessmentDisposition added in v0.0.3

type ArtifactAssessmentDisposition string

ArtifactAssessmentDisposition represents codes from http://hl7.org/fhir/ValueSet/artifactassessment-disposition

const (
	ArtifactAssessmentDispositionUnresolved                    ArtifactAssessmentDisposition = "unresolved"
	ArtifactAssessmentDispositionNotPersuasive                 ArtifactAssessmentDisposition = "not-persuasive"
	ArtifactAssessmentDispositionPersuasive                    ArtifactAssessmentDisposition = "persuasive"
	ArtifactAssessmentDispositionPersuasiveWithModification    ArtifactAssessmentDisposition = "persuasive-with-modification"
	ArtifactAssessmentDispositionNotPersuasiveWithModification ArtifactAssessmentDisposition = "not-persuasive-with-modification"
)

type ArtifactAssessmentRelatesTo

type ArtifactAssessmentRelatesTo struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type" bson:"type"`                          // documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as | reprint | reprint-of | summarizes
	TargetUri        *string          `json:"targetUri" bson:"target_uri"`               // The artifact that is related to this ArtifactAssessment
	TargetAttachment *Attachment      `json:"targetAttachment" bson:"target_attachment"` // The artifact that is related to this ArtifactAssessment
	TargetCanonical  *string          `json:"targetCanonical" bson:"target_canonical"`   // The artifact that is related to this ArtifactAssessment
	TargetReference  *Reference       `json:"targetReference" bson:"target_reference"`   // The artifact that is related to this ArtifactAssessment
	TargetMarkdown   *string          `json:"targetMarkdown" bson:"target_markdown"`     // The artifact that is related to this ArtifactAssessment
}

func (*ArtifactAssessmentRelatesTo) Validate

func (r *ArtifactAssessmentRelatesTo) Validate() error

type ArtifactAssessmentWorkflowStatus added in v0.0.3

type ArtifactAssessmentWorkflowStatus string

ArtifactAssessmentWorkflowStatus represents codes from http://hl7.org/fhir/ValueSet/artifactassessment-workflow-status

const (
	ArtifactAssessmentWorkflowStatusSubmitted              ArtifactAssessmentWorkflowStatus = "submitted"
	ArtifactAssessmentWorkflowStatusTriaged                ArtifactAssessmentWorkflowStatus = "triaged"
	ArtifactAssessmentWorkflowStatusWaitingForInput        ArtifactAssessmentWorkflowStatus = "waiting-for-input"
	ArtifactAssessmentWorkflowStatusResolvedNoChange       ArtifactAssessmentWorkflowStatus = "resolved-no-change"
	ArtifactAssessmentWorkflowStatusResolvedChangeRequired ArtifactAssessmentWorkflowStatus = "resolved-change-required"
	ArtifactAssessmentWorkflowStatusDeferred               ArtifactAssessmentWorkflowStatus = "deferred"
	ArtifactAssessmentWorkflowStatusDuplicate              ArtifactAssessmentWorkflowStatus = "duplicate"
	ArtifactAssessmentWorkflowStatusApplied                ArtifactAssessmentWorkflowStatus = "applied"
	ArtifactAssessmentWorkflowStatusPublished              ArtifactAssessmentWorkflowStatus = "published"
	ArtifactAssessmentWorkflowStatusEnteredInError         ArtifactAssessmentWorkflowStatus = "entered-in-error"
)

type Attachment

type Attachment struct {
	Id          *string  `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	ContentType *string  `json:"contentType,omitempty" bson:"content_type,omitempty"` // Mime type of the content, with charset etc.
	Language    *string  `json:"language,omitempty" bson:"language,omitempty"`        // Human language of the content (BCP-47)
	Data        *string  `json:"data,omitempty" bson:"data,omitempty"`                // Data inline, base64ed
	Url         *string  `json:"url,omitempty" bson:"url,omitempty"`                  // Uri where the data can be found
	Size        *int64   `json:"size,omitempty" bson:"size,omitempty"`                // Number of bytes of content (if url provided)
	Hash        *string  `json:"hash,omitempty" bson:"hash,omitempty"`                // Hash of the data (sha-1, base64ed)
	Title       *string  `json:"title,omitempty" bson:"title,omitempty"`              // Label to display in place of the data
	Creation    *string  `json:"creation,omitempty" bson:"creation,omitempty"`        // Date attachment was first created
	Height      *int     `json:"height,omitempty" bson:"height,omitempty"`            // Height of the image in pixels (photo/video)
	Width       *int     `json:"width,omitempty" bson:"width,omitempty"`              // Width of the image in pixels (photo/video)
	Frames      *int     `json:"frames,omitempty" bson:"frames,omitempty"`            // Number of frames if > 1 (photo)
	Duration    *float64 `json:"duration,omitempty" bson:"duration,omitempty"`        // Length in seconds (audio / video)
	Pages       *int     `json:"pages,omitempty" bson:"pages,omitempty"`              // Number of printed pages
}

Attachment Type: For referring to data content defined in other formats.

func (*Attachment) Validate

func (r *Attachment) Validate() error

type AuditEvent

type AuditEvent struct {
	ResourceType     string             `json:"resourceType" bson:"resource_type"`                              // Type of resource
	Id               *string            `json:"id,omitempty" bson:"id,omitempty"`                               // Logical id of this artifact
	Meta             *Meta              `json:"meta,omitempty" bson:"meta,omitempty"`                           // Metadata about the resource
	ImplicitRules    *string            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`        // A set of rules under which this content was created
	Language         *string            `json:"language,omitempty" bson:"language,omitempty"`                   // Language of the resource content
	Text             *Narrative         `json:"text,omitempty" bson:"text,omitempty"`                           // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage  `json:"contained,omitempty" bson:"contained,omitempty"`                 // Contained, inline Resources
	Type             *CodeableConcept   `json:"type" bson:"type"`                                               // High level categorization of audit event
	Subtype          []CodeableConcept  `json:"subtype,omitempty" bson:"subtype,omitempty"`                     // Specific type of event
	Action           *string            `json:"action,omitempty" bson:"action,omitempty"`                       // Type of action performed during the event
	Severity         *string            `json:"severity,omitempty" bson:"severity,omitempty"`                   // emergency | alert | critical | error | warning | notice | informational | debug
	OccurredPeriod   *Period            `json:"occurredPeriod,omitempty" bson:"occurred_period,omitempty"`      // When the activity occurred
	OccurredDateTime *string            `json:"occurredDateTime,omitempty" bson:"occurred_date_time,omitempty"` // When the activity occurred
	Recorded         string             `json:"recorded" bson:"recorded"`                                       // Time when the event was recorded
	Outcome          *AuditEventOutcome `json:"outcome,omitempty" bson:"outcome,omitempty"`                     // Whether the event succeeded or failed
	Authorization    []CodeableConcept  `json:"authorization,omitempty" bson:"authorization,omitempty"`         // Authorization related to the event
	BasedOn          []Reference        `json:"basedOn,omitempty" bson:"based_on,omitempty"`                    // Workflow authorization within which this event occurred
	Patient          *Reference         `json:"patient,omitempty" bson:"patient,omitempty"`                     // The patient is the subject of the data used/created/updated/deleted during the activity
	Encounter        *Reference         `json:"encounter,omitempty" bson:"encounter,omitempty"`                 // Encounter within which this event occurred or which the event is tightly associated
	Agent            []AuditEventAgent  `json:"agent" bson:"agent"`                                             // Actor involved in the event
	Source           *AuditEventSource  `json:"source" bson:"source"`                                           // Audit Event Reporter
	Entity           []AuditEventEntity `json:"entity,omitempty" bson:"entity,omitempty"`                       // Data or objects used
}

A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis.

func (*AuditEvent) Validate

func (r *AuditEvent) Validate() error

type AuditEventAction added in v0.0.3

type AuditEventAction string

AuditEventAction represents codes from http://hl7.org/fhir/ValueSet/audit-event-action

const (
	AuditEventActionC AuditEventAction = "C"
	AuditEventActionR AuditEventAction = "R"
	AuditEventActionU AuditEventAction = "U"
	AuditEventActionD AuditEventAction = "D"
	AuditEventActionE AuditEventAction = "E"
)

type AuditEventAgent

type AuditEventAgent struct {
	Id               *string           `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Type             *CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                          // How agent participated
	Role             []CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                          // Agent role in the event
	Who              *Reference        `json:"who" bson:"who"`                                                // Identifier of who
	Requestor        *bool             `json:"requestor,omitempty" bson:"requestor,omitempty"`                // Whether user is initiator
	Location         *Reference        `json:"location,omitempty" bson:"location,omitempty"`                  // The agent location when the event occurred
	Policy           []string          `json:"policy,omitempty" bson:"policy,omitempty"`                      // Policy that authorized the agent participation in the event
	NetworkReference *Reference        `json:"networkReference,omitempty" bson:"network_reference,omitempty"` // This agent network location for the activity
	NetworkUri       *string           `json:"networkUri,omitempty" bson:"network_uri,omitempty"`             // This agent network location for the activity
	NetworkString    *string           `json:"networkString,omitempty" bson:"network_string,omitempty"`       // This agent network location for the activity
	Authorization    []CodeableConcept `json:"authorization,omitempty" bson:"authorization,omitempty"`        // Allowable authorization for this agent
}

func (*AuditEventAgent) Validate

func (r *AuditEventAgent) Validate() error

type AuditEventEntity

type AuditEventEntity struct {
	Id            *string                  `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	What          *Reference               `json:"what,omitempty" bson:"what,omitempty"`                    // Specific instance of resource
	Role          *CodeableConcept         `json:"role,omitempty" bson:"role,omitempty"`                    // What role the entity played
	SecurityLabel []CodeableConcept        `json:"securityLabel,omitempty" bson:"security_label,omitempty"` // Security labels on the entity
	Description   *string                  `json:"description,omitempty" bson:"description,omitempty"`      // Descriptive text
	Query         *string                  `json:"query,omitempty" bson:"query,omitempty"`                  // Query parameters
	Detail        []AuditEventEntityDetail `json:"detail,omitempty" bson:"detail,omitempty"`                // Additional Information about the entity
	Agent         []AuditEventAgent        `json:"agent,omitempty" bson:"agent,omitempty"`                  // Entity is attributed to this agent
}

func (*AuditEventEntity) Validate

func (r *AuditEventEntity) Validate() error

type AuditEventEntityDetail

type AuditEventEntityDetail struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                   // The name of the extra detail property
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // Property value
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // Property value
	ValueString          *string          `json:"valueString" bson:"value_string"`                    // Property value
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // Property value
	ValueInteger         *int             `json:"valueInteger" bson:"value_integer"`                  // Property value
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // Property value
	ValueRatio           *Ratio           `json:"valueRatio" bson:"value_ratio"`                      // Property value
	ValueTime            *string          `json:"valueTime" bson:"value_time"`                        // Property value
	ValueDateTime        *string          `json:"valueDateTime" bson:"value_date_time"`               // Property value
	ValuePeriod          *Period          `json:"valuePeriod" bson:"value_period"`                    // Property value
	ValueBase64Binary    *string          `json:"valueBase64Binary" bson:"value_base64_binary"`       // Property value
}

func (*AuditEventEntityDetail) Validate

func (r *AuditEventEntityDetail) Validate() error

type AuditEventOutcome

type AuditEventOutcome struct {
	Id     *string           `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Code   *Coding           `json:"code" bson:"code"`                         // Whether the event succeeded or failed
	Detail []CodeableConcept `json:"detail,omitempty" bson:"detail,omitempty"` // Additional outcome detail
}

func (*AuditEventOutcome) Validate

func (r *AuditEventOutcome) Validate() error

type AuditEventSeverity added in v0.0.3

type AuditEventSeverity string

AuditEventSeverity represents codes from http://hl7.org/fhir/ValueSet/audit-event-severity

const (
	AuditEventSeverityEmergency     AuditEventSeverity = "emergency"
	AuditEventSeverityAlert         AuditEventSeverity = "alert"
	AuditEventSeverityCritical      AuditEventSeverity = "critical"
	AuditEventSeverityError         AuditEventSeverity = "error"
	AuditEventSeverityWarning       AuditEventSeverity = "warning"
	AuditEventSeverityNotice        AuditEventSeverity = "notice"
	AuditEventSeverityInformational AuditEventSeverity = "informational"
	AuditEventSeverityDebug         AuditEventSeverity = "debug"
)

type AuditEventSource

type AuditEventSource struct {
	Id       *string           `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Site     *Reference        `json:"site,omitempty" bson:"site,omitempty"` // Logical source location within the enterprise
	Observer *Reference        `json:"observer" bson:"observer"`             // The identity of source detecting the event
	Type     []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"` // The type of source where event originated
}

func (*AuditEventSource) Validate

func (r *AuditEventSource) Validate() error

type Availability

type Availability struct {
	Id               *string                        `json:"id,omitempty" bson:"id,omitempty"`                               // Unique id for inter-element referencing
	Period           *Period                        `json:"period,omitempty" bson:"period,omitempty"`                       // When the availability applies
	AvailableTime    []AvailabilityAvailableTime    `json:"availableTime,omitempty" bson:"available_time,omitempty"`        // Times the {item} is available
	NotAvailableTime []AvailabilityNotAvailableTime `json:"notAvailableTime,omitempty" bson:"not_available_time,omitempty"` // Not available during this time due to provided reason
}

Availability Type: Availability data for an {item}, declaring what days/times are available, and any exceptions. The exceptions could be textual only, e.g. Public holidays, or could be time period specific and indicate a specific years dates.

func (*Availability) Validate

func (r *Availability) Validate() error

type AvailabilityAvailableTime

type AvailabilityAvailableTime struct {
	Id                 *string  `json:"id,omitempty" bson:"id,omitempty"`                                   // Unique id for inter-element referencing
	DaysOfWeek         []string `json:"daysOfWeek,omitempty" bson:"days_of_week,omitempty"`                 // mon | tue | wed | thu | fri | sat | sun
	AllDay             *bool    `json:"allDay,omitempty" bson:"all_day,omitempty"`                          // Always available? i.e. 24 hour service
	AvailableStartTime *string  `json:"availableStartTime,omitempty" bson:"available_start_time,omitempty"` // Opening time of day (ignored if allDay = true)
	AvailableEndTime   *string  `json:"availableEndTime,omitempty" bson:"available_end_time,omitempty"`     // Closing time of day (ignored if allDay = true)
}

func (*AvailabilityAvailableTime) Validate

func (r *AvailabilityAvailableTime) Validate() error

type AvailabilityNotAvailableTime

type AvailabilityNotAvailableTime struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Reason presented to the user explaining why time not available
	During      *Period `json:"during,omitempty" bson:"during,omitempty"`           // Service not available during this period
}

func (*AvailabilityNotAvailableTime) Validate

func (r *AvailabilityNotAvailableTime) Validate() error

type BackboneElement

type BackboneElement struct {
	Id *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
}

BackboneElement Type: Base definition for all elements that are defined inside a resource - but not those in a data type.

func (*BackboneElement) Validate

func (r *BackboneElement) Validate() error

type BackboneType

type BackboneType struct {
	Id *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
}

BackboneType Type: Base definition for the few data types that are allowed to carry modifier extensions.

func (*BackboneType) Validate

func (r *BackboneType) Validate() error

type Base

type Base struct {
}

Base Type: Base definition for all types defined in FHIR type system.

func (*Base) Validate

func (r *Base) Validate() error

type Basic

type Basic struct {
	ResourceType  string            `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string           `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Business identifier
	Code          *CodeableConcept  `json:"code" bson:"code"`                                        // Kind of Resource
	Subject       *Reference        `json:"subject,omitempty" bson:"subject,omitempty"`              // Identifies the focus of this resource
	Created       *string           `json:"created,omitempty" bson:"created,omitempty"`              // When created
	Author        *Reference        `json:"author,omitempty" bson:"author,omitempty"`                // Who created
}

Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.

func (*Basic) Validate

func (r *Basic) Validate() error

type Binary

type Binary struct {
	ResourceType    string     `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id              *string    `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta            *Meta      `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules   *string    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language        *string    `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	ContentType     string     `json:"contentType" bson:"content_type"`                             // MimeType of the binary content
	SecurityContext *Reference `json:"securityContext,omitempty" bson:"security_context,omitempty"` // Identifies another resource to use as proxy when enforcing access control
	Data            *string    `json:"data,omitempty" bson:"data,omitempty"`                        // The actual content
}

A resource that represents the data of a single raw artifact as digital content accessible in its native format. A Binary resource can contain any content, whether text, image, pdf, zip archive, etc.

func (*Binary) Validate

func (r *Binary) Validate() error

type BindingStrength added in v0.0.3

type BindingStrength string

BindingStrength represents codes from http://hl7.org/fhir/ValueSet/binding-strength

const (
	BindingStrengthRequired    BindingStrength = "required"
	BindingStrengthExtensible  BindingStrength = "extensible"
	BindingStrengthPreferred   BindingStrength = "preferred"
	BindingStrengthExample     BindingStrength = "example"
	BindingStrengthDescriptive BindingStrength = "descriptive"
)

type BiologicallyDerivedProduct

type BiologicallyDerivedProduct struct {
	ResourceType            string                                `json:"resourceType" bson:"resource_type"`                                            // Type of resource
	Id                      *string                               `json:"id,omitempty" bson:"id,omitempty"`                                             // Logical id of this artifact
	Meta                    *Meta                                 `json:"meta,omitempty" bson:"meta,omitempty"`                                         // Metadata about the resource
	ImplicitRules           *string                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                      // A set of rules under which this content was created
	Language                *string                               `json:"language,omitempty" bson:"language,omitempty"`                                 // Language of the resource content
	Text                    *Narrative                            `json:"text,omitempty" bson:"text,omitempty"`                                         // Text summary of the resource, for human interpretation
	Contained               []json.RawMessage                     `json:"contained,omitempty" bson:"contained,omitempty"`                               // Contained, inline Resources
	ProductCategory         []CodeableConcept                     `json:"productCategory,omitempty" bson:"product_category,omitempty"`                  // A category or classification of the product
	ProductCode             *CodeableConcept                      `json:"productCode,omitempty" bson:"product_code,omitempty"`                          // A code that identifies the kind of this biologically derived product
	Parent                  []Reference                           `json:"parent,omitempty" bson:"parent,omitempty"`                                     // The parent biologically-derived product
	Request                 []Reference                           `json:"request,omitempty" bson:"request,omitempty"`                                   // Request to obtain and/or infuse this product
	Identifier              []Identifier                          `json:"identifier,omitempty" bson:"identifier,omitempty"`                             // Instance identifier
	BiologicalSourceEvent   *Identifier                           `json:"biologicalSourceEvent,omitempty" bson:"biological_source_event,omitempty"`     // An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled
	ProcessingFacility      []Reference                           `json:"processingFacility,omitempty" bson:"processing_facility,omitempty"`            // Processing facilities responsible for the labeling and distribution of this biologically derived product
	Division                *string                               `json:"division,omitempty" bson:"division,omitempty"`                                 // A unique identifier for an aliquot of a product
	ProductStatus           *Coding                               `json:"productStatus,omitempty" bson:"product_status,omitempty"`                      // available | unavailable | processed | applied | discarded
	ExpirationDate          *string                               `json:"expirationDate,omitempty" bson:"expiration_date,omitempty"`                    // Date, and where relevant time, of expiration
	Collection              *BiologicallyDerivedProductCollection `json:"collection,omitempty" bson:"collection,omitempty"`                             // How this product was collected
	StorageTempRequirements *Range                                `json:"storageTempRequirements,omitempty" bson:"storage_temp_requirements,omitempty"` // Product storage temperature requirements
	Property                []BiologicallyDerivedProductProperty  `json:"property,omitempty" bson:"property,omitempty"`                                 // A property that is specific to this BiologicallyDerviedProduct instance
}

A biological material originating from a biological entity intended to be transplanted or infused into another (possibly the same) biological entity.

func (*BiologicallyDerivedProduct) Validate

func (r *BiologicallyDerivedProduct) Validate() error

type BiologicallyDerivedProductCollection

type BiologicallyDerivedProductCollection struct {
	Id                 *string    `json:"id,omitempty" bson:"id,omitempty"`                                  // Unique id for inter-element referencing
	Collector          *Reference `json:"collector,omitempty" bson:"collector,omitempty"`                    // Individual performing the collection
	SourcePatient      *Reference `json:"sourcePatient,omitempty" bson:"source_patient,omitempty"`           // The patient who underwent the medical procedure to collect the product
	SourceOrganization *Reference `json:"sourceOrganization,omitempty" bson:"source_organization,omitempty"` // The organization that facilitated the collection
	CollectedDateTime  *string    `json:"collectedDateTime,omitempty" bson:"collected_date_time,omitempty"`  // Time of product collection
	CollectedPeriod    *Period    `json:"collectedPeriod,omitempty" bson:"collected_period,omitempty"`       // Time of product collection
	Procedure          *Reference `json:"procedure,omitempty" bson:"procedure,omitempty"`                    // The procedure involved in the collection
}

func (*BiologicallyDerivedProductCollection) Validate

type BiologicallyDerivedProductProperty

type BiologicallyDerivedProductProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                   // Code that specifies the property
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // Property values
	ValueInteger         *int             `json:"valueInteger" bson:"value_integer"`                  // Property values
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // Property values
	ValuePeriod          *Period          `json:"valuePeriod" bson:"value_period"`                    // Property values
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // Property values
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // Property values
	ValueRatio           *Ratio           `json:"valueRatio" bson:"value_ratio"`                      // Property values
	ValueString          *string          `json:"valueString" bson:"value_string"`                    // Property values
	ValueAttachment      *Attachment      `json:"valueAttachment" bson:"value_attachment"`            // Property values
}

func (*BiologicallyDerivedProductProperty) Validate

type BodyStructure

type BodyStructure struct {
	ResourceType      string                           `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string                          `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta                            `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string                          `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string                          `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative                       `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage                `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Identifier        []Identifier                     `json:"identifier,omitempty" bson:"identifier,omitempty"`                // Bodystructure identifier
	Active            *bool                            `json:"active,omitempty" bson:"active,omitempty"`                        // Whether this record is in active use
	IncludedStructure []BodyStructureIncludedStructure `json:"includedStructure" bson:"included_structure"`                     // Included anatomic location(s)
	ExcludedStructure []BodyStructureIncludedStructure `json:"excludedStructure,omitempty" bson:"excluded_structure,omitempty"` // Excluded anatomic locations(s)
	Description       *string                          `json:"description,omitempty" bson:"description,omitempty"`              // Text description
	Image             []Attachment                     `json:"image,omitempty" bson:"image,omitempty"`                          // Attached images
	Patient           *Reference                       `json:"patient" bson:"patient"`                                          // Who this is about
}

Record details about an anatomical structure. This resource may be used when a coded concept does not provide the necessary detail needed for the use case.

func (*BodyStructure) Validate

func (r *BodyStructure) Validate() error

type BodyStructureIncludedStructure

type BodyStructureIncludedStructure struct {
	Id                      *string                                                 `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	Structure               *CodeableConcept                                        `json:"structure" bson:"structure"`                                                   // Code that represents the included structure
	Laterality              *CodeableConcept                                        `json:"laterality,omitempty" bson:"laterality,omitempty"`                             // Code that represents the included structure laterality
	BodyLandmarkOrientation []BodyStructureIncludedStructureBodyLandmarkOrientation `json:"bodyLandmarkOrientation,omitempty" bson:"body_landmark_orientation,omitempty"` // Landmark relative location
	SpatialReference        []Reference                                             `json:"spatialReference,omitempty" bson:"spatial_reference,omitempty"`                // Cartesian reference for structure
	Image                   []Attachment                                            `json:"image,omitempty" bson:"image,omitempty"`                                       // Image(s) of structural aspects
	Qualifier               []CodeableConcept                                       `json:"qualifier,omitempty" bson:"qualifier,omitempty"`                               // Code that represents the included structure qualifier
	Morphology              *CodeableConcept                                        `json:"morphology,omitempty" bson:"morphology,omitempty"`                             // Kind of Structure
}

func (*BodyStructureIncludedStructure) Validate

func (r *BodyStructureIncludedStructure) Validate() error

type BodyStructureIncludedStructureBodyLandmarkOrientation

type BodyStructureIncludedStructureBodyLandmarkOrientation struct {
	Id                   *string                                                                     `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	LandmarkDescription  []CodeableConcept                                                           `json:"landmarkDescription,omitempty" bson:"landmark_description,omitempty"`    // Explanation of landmark
	ClockFacePosition    []CodeableConcept                                                           `json:"clockFacePosition,omitempty" bson:"clock_face_position,omitempty"`       // Clockface orientation
	DistanceFromLandmark []BodyStructureIncludedStructureBodyLandmarkOrientationDistanceFromLandmark `json:"distanceFromLandmark,omitempty" bson:"distance_from_landmark,omitempty"` // Landmark relative location
	SurfaceOrientation   []CodeableConcept                                                           `json:"surfaceOrientation,omitempty" bson:"surface_orientation,omitempty"`      // Relative landmark surface orientation
}

func (*BodyStructureIncludedStructureBodyLandmarkOrientation) Validate

type BodyStructureIncludedStructureBodyLandmarkOrientationDistanceFromLandmark

type BodyStructureIncludedStructureBodyLandmarkOrientationDistanceFromLandmark struct {
	Id     *string             `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Device []CodeableReference `json:"device,omitempty" bson:"device,omitempty"` // Measurement device
	Value  []Quantity          `json:"value,omitempty" bson:"value,omitempty"`   // Measured distance from body landmark
}

func (*BodyStructureIncludedStructureBodyLandmarkOrientationDistanceFromLandmark) Validate

type Bundle

type Bundle struct {
	ResourceType  string          `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string         `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta           `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string         `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Identifier    *Identifier     `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Persistent identifier for the bundle
	Type          string          `json:"type" bson:"type"`                                        // document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
	Timestamp     *string         `json:"timestamp,omitempty" bson:"timestamp,omitempty"`          // When the bundle was assembled
	Total         *int            `json:"total,omitempty" bson:"total,omitempty"`                  // Total matches across all pages
	Link          []BundleLink    `json:"link,omitempty" bson:"link,omitempty"`                    // Links related to this Bundle
	Entry         []BundleEntry   `json:"entry,omitempty" bson:"entry,omitempty"`                  // Entry in the bundle - will have a resource or information
	Signature     *Signature      `json:"signature,omitempty" bson:"signature,omitempty"`          // Digital Signature (deprecated: use Provenance Signatures)
	Issues        json.RawMessage `json:"issues,omitempty" bson:"issues,omitempty"`                // OperationOutcome with issues about the Bundle
}

A container for a collection of resources.

func (*Bundle) Validate

func (r *Bundle) Validate() error

type BundleEntry

type BundleEntry struct {
	Id       *string              `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Link     []BundleLink         `json:"link,omitempty" bson:"link,omitempty"`         // Links related to this entry
	FullUrl  *string              `json:"fullUrl,omitempty" bson:"full_url,omitempty"`  // URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
	Resource json.RawMessage      `json:"resource,omitempty" bson:"resource,omitempty"` // A resource in the bundle
	Search   *BundleEntrySearch   `json:"search,omitempty" bson:"search,omitempty"`     // Search related information
	Request  *BundleEntryRequest  `json:"request,omitempty" bson:"request,omitempty"`   // Additional execution information (transaction/batch/history)
	Response *BundleEntryResponse `json:"response,omitempty" bson:"response,omitempty"` // Results of execution (transaction/batch/history)
}

func (*BundleEntry) Validate

func (r *BundleEntry) Validate() error

type BundleEntryRequest

type BundleEntryRequest struct {
	Id              *string `json:"id,omitempty" bson:"id,omitempty"`                             // Unique id for inter-element referencing
	Method          string  `json:"method" bson:"method"`                                         // GET | HEAD | POST | PUT | DELETE | PATCH
	Url             string  `json:"url" bson:"url"`                                               // URL for HTTP equivalent of this entry
	IfNoneMatch     *string `json:"ifNoneMatch,omitempty" bson:"if_none_match,omitempty"`         // For managing cache validation
	IfModifiedSince *string `json:"ifModifiedSince,omitempty" bson:"if_modified_since,omitempty"` // For managing cache currency
	IfMatch         *string `json:"ifMatch,omitempty" bson:"if_match,omitempty"`                  // For managing update contention
	IfNoneExist     *string `json:"ifNoneExist,omitempty" bson:"if_none_exist,omitempty"`         // For conditional creates
}

func (*BundleEntryRequest) Validate

func (r *BundleEntryRequest) Validate() error

type BundleEntryResponse

type BundleEntryResponse struct {
	Id           *string         `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Status       string          `json:"status" bson:"status"`                                  // Status response code (text optional)
	Location     *string         `json:"location,omitempty" bson:"location,omitempty"`          // The location (if the operation returns a location)
	Etag         *string         `json:"etag,omitempty" bson:"etag,omitempty"`                  // The Etag for the resource (if relevant)
	LastModified *string         `json:"lastModified,omitempty" bson:"last_modified,omitempty"` // Server's date time modified
	Outcome      json.RawMessage `json:"outcome,omitempty" bson:"outcome,omitempty"`            // OperationOutcome with hints and warnings (for batch/transaction)
}

func (*BundleEntryResponse) Validate

func (r *BundleEntryResponse) Validate() error

type BundleEntrySearch

type BundleEntrySearch struct {
	Id    *string  `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Mode  *string  `json:"mode,omitempty" bson:"mode,omitempty"`   // match | include - why this is in the result set
	Score *float64 `json:"score,omitempty" bson:"score,omitempty"` // Search ranking (between 0 and 1)
}

func (*BundleEntrySearch) Validate

func (r *BundleEntrySearch) Validate() error
type BundleLink struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Relation string  `json:"relation" bson:"relation"`         // See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
	Url      string  `json:"url" bson:"url"`                   // Reference details for the link
}

func (*BundleLink) Validate

func (r *BundleLink) Validate() error

type BundleType added in v0.0.3

type BundleType string

BundleType represents codes from http://hl7.org/fhir/ValueSet/bundle-type

const (
	BundleTypeDocument                 BundleType = "document"
	BundleTypeMessage                  BundleType = "message"
	BundleTypeTransaction              BundleType = "transaction"
	BundleTypeTransactionResponse      BundleType = "transaction-response"
	BundleTypeBatch                    BundleType = "batch"
	BundleTypeBatchResponse            BundleType = "batch-response"
	BundleTypeHistory                  BundleType = "history"
	BundleTypeSearchset                BundleType = "searchset"
	BundleTypeCollection               BundleType = "collection"
	BundleTypeSubscriptionNotification BundleType = "subscription-notification"
)

type CanonicalResource

type CanonicalResource struct {
	ResourceType           string            `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string           `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string           `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string           `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this {{title}}, represented as an absolute URI (globally unique)
	Identifier             []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the {{title}}
	Version                *string           `json:"version,omitempty" bson:"version,omitempty"`                                 // Canonical version of the {{title}}
	VersionAlgorithmString *string           `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding           `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string           `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this {{title}} (computer friendly)
	Title                  *string           `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this {{title}} (human friendly)
	Status                 string            `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool             `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string           `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string           `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail   `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string           `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the {{title}}
	UseContext             []UsageContext    `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the {{title}} (if applicable)
	Purpose                *string           `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this {{title}} is defined
	Copyright              *string           `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string           `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
}

Common Interface declaration for conformance and knowledge artifact resources.

func (*CanonicalResource) Validate

func (r *CanonicalResource) Validate() error

type CapabilityStatement

type CapabilityStatement struct {
	ResourceType           string                             `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                            `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                              `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                            `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                         `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage                  `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                            `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this capability statement, represented as a URI (globally unique)
	Identifier             []Identifier                       `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the CapabilityStatement (business identifier)
	Version                *string                            `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the capability statement
	VersionAlgorithmString *string                            `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                            `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                            `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this capability statement (computer friendly)
	Title                  *string                            `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this capability statement (human friendly)
	Status                 string                             `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                              `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   string                             `json:"date" bson:"date"`                                                           // Date last changed
	Publisher              *string                            `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                    `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                            `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the capability statement
	UseContext             []UsageContext                     `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	ActorDefinition        []string                           `json:"actorDefinition,omitempty" bson:"actor_definition,omitempty"`                // ActorDefinitions the CapabilityStatement supports
	Jurisdiction           []CodeableConcept                  `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the capability statement (if applicable)
	Purpose                *string                            `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this capability statement is defined
	Copyright              *string                            `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                            `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Kind                   string                             `json:"kind" bson:"kind"`                                                           // instance | capability | requirements
	Instantiates           []string                           `json:"instantiates,omitempty" bson:"instantiates,omitempty"`                       // Canonical URL of another capability statement this implements
	Imports                []string                           `json:"imports,omitempty" bson:"imports,omitempty"`                                 // Canonical URL of another capability statement this adds to
	Software               *CapabilityStatementSoftware       `json:"software,omitempty" bson:"software,omitempty"`                               // Software that is covered by this capability statement
	Implementation         *CapabilityStatementImplementation `json:"implementation,omitempty" bson:"implementation,omitempty"`                   // If this describes a specific instance
	FhirVersion            string                             `json:"fhirVersion" bson:"fhir_version"`                                            // FHIR Version the system supports
	Format                 []string                           `json:"format" bson:"format"`                                                       // formats supported (xml | json | ttl | mime type)
	PatchFormat            []string                           `json:"patchFormat,omitempty" bson:"patch_format,omitempty"`                        // Patch formats supported (Mime types for FHIR and JSON And XML Patch)
	AcceptLanguage         []string                           `json:"acceptLanguage,omitempty" bson:"accept_language,omitempty"`                  // Languages supported
	ImplementationGuide    []string                           `json:"implementationGuide,omitempty" bson:"implementation_guide,omitempty"`        // Implementation guides supported
	Rest                   []CapabilityStatementRest          `json:"rest,omitempty" bson:"rest,omitempty"`                                       // If the endpoint is a RESTful one
	Messaging              []CapabilityStatementMessaging     `json:"messaging,omitempty" bson:"messaging,omitempty"`                             // If messaging is supported
	Document               []CapabilityStatementDocument      `json:"document,omitempty" bson:"document,omitempty"`                               // Document definition
}

A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server or Client for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation.

func (*CapabilityStatement) Validate

func (r *CapabilityStatement) Validate() error

type CapabilityStatementDocument

type CapabilityStatementDocument struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Mode          string  `json:"mode" bson:"mode"`                                       // producer | consumer
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Description of document support
	Profile       string  `json:"profile" bson:"profile"`                                 // Constraint on the resources used in the document
}

func (*CapabilityStatementDocument) Validate

func (r *CapabilityStatementDocument) Validate() error

type CapabilityStatementImplementation

type CapabilityStatementImplementation struct {
	Id          *string    `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Description string     `json:"description" bson:"description"`                 // Describes this specific instance
	Url         *string    `json:"url,omitempty" bson:"url,omitempty"`             // Base URL for the installation
	Custodian   *Reference `json:"custodian,omitempty" bson:"custodian,omitempty"` // Organization that manages the data
}

func (*CapabilityStatementImplementation) Validate

type CapabilityStatementKind added in v0.0.3

type CapabilityStatementKind string

CapabilityStatementKind represents codes from http://hl7.org/fhir/ValueSet/capability-statement-kind

const (
	CapabilityStatementKindInstance     CapabilityStatementKind = "instance"
	CapabilityStatementKindCapability   CapabilityStatementKind = "capability"
	CapabilityStatementKindRequirements CapabilityStatementKind = "requirements"
)

type CapabilityStatementMessaging

type CapabilityStatementMessaging struct {
	Id               *string                                        `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Endpoint         []CapabilityStatementMessagingEndpoint         `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                  // Where messages should be sent
	ReliableCache    *int                                           `json:"reliableCache,omitempty" bson:"reliable_cache,omitempty"`       // Reliable Message Cache Length (min)
	Documentation    *string                                        `json:"documentation,omitempty" bson:"documentation,omitempty"`        // Messaging interface behavior details
	SupportedMessage []CapabilityStatementMessagingSupportedMessage `json:"supportedMessage,omitempty" bson:"supported_message,omitempty"` // Messages supported by this system
}

func (*CapabilityStatementMessaging) Validate

func (r *CapabilityStatementMessaging) Validate() error

type CapabilityStatementMessagingEndpoint

type CapabilityStatementMessagingEndpoint struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Protocol *Coding `json:"protocol" bson:"protocol"`         // http | ftp | mllp +
	Address  string  `json:"address" bson:"address"`           // Network address or identifier of the end-point
}

func (*CapabilityStatementMessagingEndpoint) Validate

type CapabilityStatementMessagingSupportedMessage

type CapabilityStatementMessagingSupportedMessage struct {
	Id         *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Mode       string  `json:"mode" bson:"mode"`                 // sender | receiver
	Definition string  `json:"definition" bson:"definition"`     // Message supported by this system
}

func (*CapabilityStatementMessagingSupportedMessage) Validate

type CapabilityStatementRest

type CapabilityStatementRest struct {
	Id            *string                                      `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Mode          string                                       `json:"mode" bson:"mode"`                                       // client | server
	Documentation *string                                      `json:"documentation,omitempty" bson:"documentation,omitempty"` // General description of implementation
	Security      *CapabilityStatementRestSecurity             `json:"security,omitempty" bson:"security,omitempty"`           // Information about security of implementation
	Resource      []CapabilityStatementRestResource            `json:"resource,omitempty" bson:"resource,omitempty"`           // Resource served on the REST interface
	Interaction   []CapabilityStatementRestInteraction         `json:"interaction,omitempty" bson:"interaction,omitempty"`     // What interactions are supported?
	SearchParam   []CapabilityStatementRestResourceSearchParam `json:"searchParam,omitempty" bson:"search_param,omitempty"`    // Search parameters for searching all resources
	Operation     []CapabilityStatementRestResourceOperation   `json:"operation,omitempty" bson:"operation,omitempty"`         // Definition of a system level operation
	Compartment   []string                                     `json:"compartment,omitempty" bson:"compartment,omitempty"`     // Compartments served/used by system
}

func (*CapabilityStatementRest) Validate

func (r *CapabilityStatementRest) Validate() error

type CapabilityStatementRestInteraction

type CapabilityStatementRestInteraction struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Code          string  `json:"code" bson:"code"`                                       // transaction | batch | search-system | history-system
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Anything special about interaction behavior
}

func (*CapabilityStatementRestInteraction) Validate

type CapabilityStatementRestResource

type CapabilityStatementRestResource struct {
	Id                *string                                      `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Type              string                                       `json:"type" bson:"type"`                                                // A resource type that is supported
	Definition        *string                                      `json:"definition,omitempty" bson:"definition,omitempty"`                // The definition for an additional resource
	Profile           *string                                      `json:"profile,omitempty" bson:"profile,omitempty"`                      // System-wide profile
	SupportedProfile  []string                                     `json:"supportedProfile,omitempty" bson:"supported_profile,omitempty"`   // Use-case specific profiles
	Documentation     *string                                      `json:"documentation,omitempty" bson:"documentation,omitempty"`          // Additional information about the use of the resource type
	Interaction       []CapabilityStatementRestResourceInteraction `json:"interaction,omitempty" bson:"interaction,omitempty"`              // What interactions are supported?
	Versioning        *string                                      `json:"versioning,omitempty" bson:"versioning,omitempty"`                // no-version | versioned | versioned-update
	ReadHistory       *bool                                        `json:"readHistory,omitempty" bson:"read_history,omitempty"`             // Whether vRead can return past versions
	UpdateCreate      *bool                                        `json:"updateCreate,omitempty" bson:"update_create,omitempty"`           // If update can commit to a new identity
	ConditionalCreate *bool                                        `json:"conditionalCreate,omitempty" bson:"conditional_create,omitempty"` // If allows/uses conditional create
	ConditionalRead   *string                                      `json:"conditionalRead,omitempty" bson:"conditional_read,omitempty"`     // not-supported | modified-since | not-match | full-support
	ConditionalUpdate *bool                                        `json:"conditionalUpdate,omitempty" bson:"conditional_update,omitempty"` // If allows/uses conditional update
	ConditionalPatch  *bool                                        `json:"conditionalPatch,omitempty" bson:"conditional_patch,omitempty"`   // If allows/uses conditional patch
	ConditionalDelete *string                                      `json:"conditionalDelete,omitempty" bson:"conditional_delete,omitempty"` // not-supported | single | multiple - how conditional delete is supported
	ReferencePolicy   []string                                     `json:"referencePolicy,omitempty" bson:"reference_policy,omitempty"`     // literal | logical | resolves | enforced | local
	SearchInclude     []string                                     `json:"searchInclude,omitempty" bson:"search_include,omitempty"`         // _include values supported by the server
	SearchRevInclude  []string                                     `json:"searchRevInclude,omitempty" bson:"search_rev_include,omitempty"`  // _revinclude values supported by the server
	SearchParam       []CapabilityStatementRestResourceSearchParam `json:"searchParam,omitempty" bson:"search_param,omitempty"`             // Search parameters supported by implementation
	Operation         []CapabilityStatementRestResourceOperation   `json:"operation,omitempty" bson:"operation,omitempty"`                  // Definition of a resource operation
}

func (*CapabilityStatementRestResource) Validate

func (r *CapabilityStatementRestResource) Validate() error

type CapabilityStatementRestResourceInteraction

type CapabilityStatementRestResourceInteraction struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Code          string  `json:"code" bson:"code"`                                       // read | vread | update | update-conditional | patch | patch-conditional | delete | delete-conditional-single | delete-conditional-multiple | delete-history | delete-history-version | history-instance | history-type | create | create-conditional | search-type
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Anything special about interaction behavior
}

func (*CapabilityStatementRestResourceInteraction) Validate

type CapabilityStatementRestResourceOperation

type CapabilityStatementRestResourceOperation struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          string  `json:"name" bson:"name"`                                       // Name by which the operation/query is invoked
	Definition    string  `json:"definition" bson:"definition"`                           // The defined operation/query
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Specific details about operation behavior
}

func (*CapabilityStatementRestResourceOperation) Validate

type CapabilityStatementRestResourceSearchParam

type CapabilityStatementRestResourceSearchParam struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          string  `json:"name" bson:"name"`                                       // Name for parameter in search url
	Definition    *string `json:"definition,omitempty" bson:"definition,omitempty"`       // Source of definition for parameter
	Type          string  `json:"type" bson:"type"`                                       // number | date | string | token | reference | composite | quantity | uri | special | resource
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Server-specific usage
}

func (*CapabilityStatementRestResourceSearchParam) Validate

type CapabilityStatementRestSecurity

type CapabilityStatementRestSecurity struct {
	Id          *string           `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Cors        *bool             `json:"cors,omitempty" bson:"cors,omitempty"`               // Adds CORS Headers (http://enable-cors.org/)
	Service     []CodeableConcept `json:"service,omitempty" bson:"service,omitempty"`         // OAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates
	Description *string           `json:"description,omitempty" bson:"description,omitempty"` // General description of how security works
}

func (*CapabilityStatementRestSecurity) Validate

func (r *CapabilityStatementRestSecurity) Validate() error

type CapabilityStatementSoftware

type CapabilityStatementSoftware struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Name        string  `json:"name" bson:"name"`                                    // A name the software is known by
	Version     *string `json:"version,omitempty" bson:"version,omitempty"`          // Version covered by this statement
	ReleaseDate *string `json:"releaseDate,omitempty" bson:"release_date,omitempty"` // Date this version was released
}

func (*CapabilityStatementSoftware) Validate

func (r *CapabilityStatementSoftware) Validate() error

type CareGaps

type CareGaps struct {
}

The care-gaps operation is used to determine gaps-in-care based on the results of quality measures

func (*CareGaps) Validate

func (r *CareGaps) Validate() error

type CarePlan

type CarePlan struct {
	ResourceType   string              `json:"resourceType" bson:"resource_type"`                         // Type of resource
	Id             *string             `json:"id,omitempty" bson:"id,omitempty"`                          // Logical id of this artifact
	Meta           *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                      // Metadata about the resource
	ImplicitRules  *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`   // A set of rules under which this content was created
	Language       *string             `json:"language,omitempty" bson:"language,omitempty"`              // Language of the resource content
	Text           *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                      // Text summary of the resource, for human interpretation
	Contained      []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`            // Contained, inline Resources
	Identifier     []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`          // External Ids for this plan
	BasedOn        []Reference         `json:"basedOn,omitempty" bson:"based_on,omitempty"`               // Fulfills plan, proposal or order
	Replaces       []Reference         `json:"replaces,omitempty" bson:"replaces,omitempty"`              // CarePlan replaced by this CarePlan
	PartOf         []Reference         `json:"partOf,omitempty" bson:"part_of,omitempty"`                 // Part of referenced CarePlan
	Status         string              `json:"status" bson:"status"`                                      // draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
	Intent         string              `json:"intent" bson:"intent"`                                      // proposal | plan | order | option | directive
	Category       []CodeableConcept   `json:"category,omitempty" bson:"category,omitempty"`              // Type of plan
	Title          *string             `json:"title,omitempty" bson:"title,omitempty"`                    // Human-friendly name for the care plan
	Description    *string             `json:"description,omitempty" bson:"description,omitempty"`        // Summary of nature of plan
	Subject        *Reference          `json:"subject" bson:"subject"`                                    // Who the care plan is for
	Encounter      *Reference          `json:"encounter,omitempty" bson:"encounter,omitempty"`            // The Encounter during which this CarePlan was created
	Period         *Period             `json:"period,omitempty" bson:"period,omitempty"`                  // Time period plan covers
	Created        *string             `json:"created,omitempty" bson:"created,omitempty"`                // Date record was first recorded
	Custodian      *Reference          `json:"custodian,omitempty" bson:"custodian,omitempty"`            // Who is the designated responsible party
	Contributor    []Reference         `json:"contributor,omitempty" bson:"contributor,omitempty"`        // Who provided the content of the care plan
	CareTeam       []Reference         `json:"careTeam,omitempty" bson:"care_team,omitempty"`             // Who's involved in plan?
	Addresses      []CodeableReference `json:"addresses,omitempty" bson:"addresses,omitempty"`            // Health issues this plan addresses
	SupportingInfo []Reference         `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"` // Information considered as part of plan
	Goal           []Reference         `json:"goal,omitempty" bson:"goal,omitempty"`                      // Desired outcome of plan
	Activity       []CarePlanActivity  `json:"activity,omitempty" bson:"activity,omitempty"`              // Action to occur or has occurred as part of plan
	Note           []Annotation        `json:"note,omitempty" bson:"note,omitempty"`                      // Comments about the plan
}

Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.

func (*CarePlan) Validate

func (r *CarePlan) Validate() error

type CarePlanActivity

type CarePlanActivity struct {
	Id                       *string             `json:"id,omitempty" bson:"id,omitempty"`                                               // Unique id for inter-element referencing
	PerformedActivity        []CodeableReference `json:"performedActivity,omitempty" bson:"performed_activity,omitempty"`                // Activities that are completed or in progress (concept, or Appointment, Encounter, Procedure, etc.)
	Progress                 []Annotation        `json:"progress,omitempty" bson:"progress,omitempty"`                                   // Comments about the activity status/progress
	PlannedActivityReference *Reference          `json:"plannedActivityReference,omitempty" bson:"planned_activity_reference,omitempty"` // Activity that is intended to be part of the care plan
}

func (*CarePlanActivity) Validate

func (r *CarePlanActivity) Validate() error

type CarePlanIntent added in v0.0.3

type CarePlanIntent string

CarePlanIntent represents codes from http://hl7.org/fhir/ValueSet/care-plan-intent

const (
	CarePlanIntentProposal      CarePlanIntent = "proposal"
	CarePlanIntentSolicitOffer  CarePlanIntent = "solicit-offer"
	CarePlanIntentOfferResponse CarePlanIntent = "offer-response"
	CarePlanIntentPlan          CarePlanIntent = "plan"
	CarePlanIntentDirective     CarePlanIntent = "directive"
	CarePlanIntentOrder         CarePlanIntent = "order"
	CarePlanIntentOriginalOrder CarePlanIntent = "original-order"
	CarePlanIntentReflexOrder   CarePlanIntent = "reflex-order"
	CarePlanIntentFillerOrder   CarePlanIntent = "filler-order"
	CarePlanIntentInstanceOrder CarePlanIntent = "instance-order"
	CarePlanIntentOption        CarePlanIntent = "option"
)

type CareTeam

type CareTeam struct {
	ResourceType         string                `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                   *string               `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                 *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules        *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language             *string               `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                 *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier           []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // External Ids for this team
	Status               *string               `json:"status,omitempty" bson:"status,omitempty"`                              // proposed | active | suspended | inactive | entered-in-error
	Category             []CodeableConcept     `json:"category,omitempty" bson:"category,omitempty"`                          // Type of team
	Name                 *string               `json:"name,omitempty" bson:"name,omitempty"`                                  // Name of the team, such as crisis assessment team
	Subject              *Reference            `json:"subject,omitempty" bson:"subject,omitempty"`                            // Who care team is for
	Period               *Period               `json:"period,omitempty" bson:"period,omitempty"`                              // Time period team covers
	Participant          []CareTeamParticipant `json:"participant,omitempty" bson:"participant,omitempty"`                    // Members of the team
	Reason               []CodeableReference   `json:"reason,omitempty" bson:"reason,omitempty"`                              // Why the care team exists
	ManagingOrganization []Reference           `json:"managingOrganization,omitempty" bson:"managing_organization,omitempty"` // Organization responsible for the care team
	Telecom              []ContactPoint        `json:"telecom,omitempty" bson:"telecom,omitempty"`                            // A contact detail for the care team (that applies to all members)
	Note                 []Annotation          `json:"note,omitempty" bson:"note,omitempty"`                                  // Comments made about the CareTeam
}

The Care Team includes all the people, organizations, and care teams who participate or plan to participate in the coordination and delivery of care.

func (*CareTeam) Validate

func (r *CareTeam) Validate() error

type CareTeamParticipant

type CareTeamParticipant struct {
	Id              *string          `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	Role            *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                        // Type of involvement
	Member          *Reference       `json:"member,omitempty" bson:"member,omitempty"`                    // Who is involved
	OnBehalfOf      *Reference       `json:"onBehalfOf,omitempty" bson:"on_behalf_of,omitempty"`          // Entity that the participant is acting as a proxy of, or an agent of, or in the interest of, or as a representative of
	EffectivePeriod *Period          `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"` // When the member is generally available within this care team
	EffectiveTiming *Timing          `json:"effectiveTiming,omitempty" bson:"effective_timing,omitempty"` // When the member is generally available within this care team
	SupportingInfo  []Reference      `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`   // Basis for the member's participation
}

func (*CareTeamParticipant) Validate

func (r *CareTeamParticipant) Validate() error

type CareTeamStatus added in v0.0.3

type CareTeamStatus string

CareTeamStatus represents codes from http://hl7.org/fhir/ValueSet/care-team-status

const (
	CareTeamStatusProposed       CareTeamStatus = "proposed"
	CareTeamStatusActive         CareTeamStatus = "active"
	CareTeamStatusSuspended      CareTeamStatus = "suspended"
	CareTeamStatusInactive       CareTeamStatus = "inactive"
	CareTeamStatusEnteredInError CareTeamStatus = "entered-in-error"
)

type Claim

type Claim struct {
	ResourceType          string                `json:"resourceType" bson:"resource_type"`                                        // Type of resource
	Id                    *string               `json:"id,omitempty" bson:"id,omitempty"`                                         // Logical id of this artifact
	Meta                  *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                                     // Metadata about the resource
	ImplicitRules         *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                  // A set of rules under which this content was created
	Language              *string               `json:"language,omitempty" bson:"language,omitempty"`                             // Language of the resource content
	Text                  *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                                     // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                           // Contained, inline Resources
	Identifier            []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // Business Identifier for claim
	TraceNumber           []Identifier          `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                      // Number for tracking
	Status                string                `json:"status" bson:"status"`                                                     // active | cancelled | draft | entered-in-error
	StatusReason          *string               `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                    // Reason for status change
	Type                  *CodeableConcept      `json:"type" bson:"type"`                                                         // Category or discipline
	SubType               *CodeableConcept      `json:"subType,omitempty" bson:"sub_type,omitempty"`                              // More granular claim type
	Use                   string                `json:"use" bson:"use"`                                                           // claim | preauthorization | predetermination
	Subject               *Reference            `json:"subject" bson:"subject"`                                                   // The recipient(s) of the products and services
	BillablePeriod        *Period               `json:"billablePeriod,omitempty" bson:"billable_period,omitempty"`                // Relevant time frame for the claim
	Created               string                `json:"created" bson:"created"`                                                   // Resource creation date
	Enterer               *Reference            `json:"enterer,omitempty" bson:"enterer,omitempty"`                               // Author of the claim
	Insurer               *Reference            `json:"insurer,omitempty" bson:"insurer,omitempty"`                               // Target
	Provider              *Reference            `json:"provider,omitempty" bson:"provider,omitempty"`                             // Party responsible for the claim
	Priority              *CodeableConcept      `json:"priority,omitempty" bson:"priority,omitempty"`                             // Desired processing urgency
	FundsReserve          *CodeableConcept      `json:"fundsReserve,omitempty" bson:"funds_reserve,omitempty"`                    // For whom to reserve funds
	Related               []ClaimRelated        `json:"related,omitempty" bson:"related,omitempty"`                               // Prior or corollary claims
	Prescription          *Reference            `json:"prescription,omitempty" bson:"prescription,omitempty"`                     // Prescription authorizing services and products
	OriginalPrescription  *Reference            `json:"originalPrescription,omitempty" bson:"original_prescription,omitempty"`    // Original prescription if superseded by fulfiller
	Payee                 *ClaimPayee           `json:"payee,omitempty" bson:"payee,omitempty"`                                   // Recipient of benefits payable
	Referral              *Reference            `json:"referral,omitempty" bson:"referral,omitempty"`                             // Treatment referral
	Encounter             []Reference           `json:"encounter,omitempty" bson:"encounter,omitempty"`                           // Encounters associated with the listed treatments
	Facility              *Reference            `json:"facility,omitempty" bson:"facility,omitempty"`                             // Servicing facility
	DiagnosisRelatedGroup *CodeableConcept      `json:"diagnosisRelatedGroup,omitempty" bson:"diagnosis_related_group,omitempty"` // Package billing code
	Event                 []ClaimEvent          `json:"event,omitempty" bson:"event,omitempty"`                                   // Event information
	CareTeam              []ClaimCareTeam       `json:"careTeam,omitempty" bson:"care_team,omitempty"`                            // Members of the care team
	SupportingInfo        []ClaimSupportingInfo `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`                // Supporting information
	Diagnosis             []ClaimDiagnosis      `json:"diagnosis,omitempty" bson:"diagnosis,omitempty"`                           // Pertinent diagnosis information
	Procedure             []ClaimProcedure      `json:"procedure,omitempty" bson:"procedure,omitempty"`                           // Clinical procedures performed
	Insurance             []ClaimInsurance      `json:"insurance,omitempty" bson:"insurance,omitempty"`                           // Patient insurance information
	Accident              *ClaimAccident        `json:"accident,omitempty" bson:"accident,omitempty"`                             // Details of the event
	PatientPaid           *Money                `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                      // Paid by the patient
	Item                  []ClaimItem           `json:"item,omitempty" bson:"item,omitempty"`                                     // Product or service provided
	Total                 *Money                `json:"total,omitempty" bson:"total,omitempty"`                                   // Total claim cost
}

A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement.

func (*Claim) Validate

func (r *Claim) Validate() error

type ClaimAccident

type ClaimAccident struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Date              string           `json:"date" bson:"date"`                                                // When the incident occurred
	Type              *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                            // The nature of the accident
	LocationAddress   *Address         `json:"locationAddress,omitempty" bson:"location_address,omitempty"`     // Where the event occurred
	LocationReference *Reference       `json:"locationReference,omitempty" bson:"location_reference,omitempty"` // Where the event occurred
}

func (*ClaimAccident) Validate

func (r *ClaimAccident) Validate() error

type ClaimCareTeam

type ClaimCareTeam struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Sequence  int              `json:"sequence" bson:"sequence"`                       // Order of care team
	Provider  *Reference       `json:"provider" bson:"provider"`                       // Practitioner or organization
	Role      *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`           // Function within the team
	Specialty *CodeableConcept `json:"specialty,omitempty" bson:"specialty,omitempty"` // Practitioner or provider specialization
}

func (*ClaimCareTeam) Validate

func (r *ClaimCareTeam) Validate() error

type ClaimDiagnosis

type ClaimDiagnosis struct {
	Id                       *string           `json:"id,omitempty" bson:"id,omitempty"`                           // Unique id for inter-element referencing
	Sequence                 int               `json:"sequence" bson:"sequence"`                                   // Diagnosis instance identifier
	DiagnosisCodeableConcept *CodeableConcept  `json:"diagnosisCodeableConcept" bson:"diagnosis_codeable_concept"` // Nature of illness or problem
	DiagnosisReference       *Reference        `json:"diagnosisReference" bson:"diagnosis_reference"`              // Nature of illness or problem
	Type                     []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                       // Timing or nature of the diagnosis
	OnAdmission              *CodeableConcept  `json:"onAdmission,omitempty" bson:"on_admission,omitempty"`        // Present on admission
}

func (*ClaimDiagnosis) Validate

func (r *ClaimDiagnosis) Validate() error

type ClaimEvent

type ClaimEvent struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Type         *CodeableConcept `json:"type" bson:"type"`                   // Specific event
	WhenDateTime *string          `json:"whenDateTime" bson:"when_date_time"` // Occurance date or period
	WhenPeriod   *Period          `json:"whenPeriod" bson:"when_period"`      // Occurance date or period
}

func (*ClaimEvent) Validate

func (r *ClaimEvent) Validate() error

type ClaimInsurance

type ClaimInsurance struct {
	Id                  *string     `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Sequence            int         `json:"sequence" bson:"sequence"`                                            // Insurance instance identifier
	Focal               bool        `json:"focal" bson:"focal"`                                                  // Coverage to be used for adjudication
	Identifier          *Identifier `json:"identifier,omitempty" bson:"identifier,omitempty"`                    // Pre-assigned Claim number
	Coverage            *Reference  `json:"coverage" bson:"coverage"`                                            // Insurance information
	BusinessArrangement *string     `json:"businessArrangement,omitempty" bson:"business_arrangement,omitempty"` // Additional provider contract number
	PreAuthRef          []string    `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"`                  // Prior authorization reference number
	ClaimResponse       *Reference  `json:"claimResponse,omitempty" bson:"claim_response,omitempty"`             // Adjudication results
}

func (*ClaimInsurance) Validate

func (r *ClaimInsurance) Validate() error

type ClaimItem

type ClaimItem struct {
	Id                      *string             `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	Sequence                int                 `json:"sequence" bson:"sequence"`                                                     // Item instance identifier
	TraceNumber             []Identifier        `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                          // Number for tracking
	Subject                 *Reference          `json:"subject,omitempty" bson:"subject,omitempty"`                                   // The recipient of the products and services
	CareTeamSequence        []int               `json:"careTeamSequence,omitempty" bson:"care_team_sequence,omitempty"`               // Applicable careTeam members
	DiagnosisSequence       []int               `json:"diagnosisSequence,omitempty" bson:"diagnosis_sequence,omitempty"`              // Applicable diagnoses
	ProcedureSequence       []int               `json:"procedureSequence,omitempty" bson:"procedure_sequence,omitempty"`              // Applicable procedures
	InformationSequence     []int               `json:"informationSequence,omitempty" bson:"information_sequence,omitempty"`          // Applicable exception and supporting information
	Revenue                 *CodeableConcept    `json:"revenue,omitempty" bson:"revenue,omitempty"`                                   // Revenue or cost center code
	Category                *CodeableConcept    `json:"category,omitempty" bson:"category,omitempty"`                                 // Benefit classification
	ProductOrService        *CodeableConcept    `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`               // Billing, service, product, or drug code
	ProductOrServiceEnd     *CodeableConcept    `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"`        // End of a range of codes
	Request                 []Reference         `json:"request,omitempty" bson:"request,omitempty"`                                   // Request or Referral for Service
	Modifier                []CodeableConcept   `json:"modifier,omitempty" bson:"modifier,omitempty"`                                 // Product or service billing modifiers
	ProgramCode             []CodeableConcept   `json:"programCode,omitempty" bson:"program_code,omitempty"`                          // Program the product or service is provided under
	ServicedDate            *string             `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`                        // Date or dates of service or product delivery
	ServicedPeriod          *Period             `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"`                    // Date or dates of service or product delivery
	LocationCodeableConcept *CodeableConcept    `json:"locationCodeableConcept,omitempty" bson:"location_codeable_concept,omitempty"` // Place of service or where product was supplied
	LocationAddress         *Address            `json:"locationAddress,omitempty" bson:"location_address,omitempty"`                  // Place of service or where product was supplied
	LocationReference       *Reference          `json:"locationReference,omitempty" bson:"location_reference,omitempty"`              // Place of service or where product was supplied
	PatientPaid             *Money              `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                          // Paid by the patient
	Quantity                *Quantity           `json:"quantity,omitempty" bson:"quantity,omitempty"`                                 // Count of products or services
	UnitPrice               *Money              `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                              // Fee, charge or cost per item
	Factor                  *float64            `json:"factor,omitempty" bson:"factor,omitempty"`                                     // Price scaling factor
	Tax                     *Money              `json:"tax,omitempty" bson:"tax,omitempty"`                                           // Total tax
	Net                     *Money              `json:"net,omitempty" bson:"net,omitempty"`                                           // Total item cost
	Udi                     []Reference         `json:"udi,omitempty" bson:"udi,omitempty"`                                           // Unique device identifier
	BodySite                []ClaimItemBodySite `json:"bodySite,omitempty" bson:"body_site,omitempty"`                                // Anatomical location
	Encounter               []Reference         `json:"encounter,omitempty" bson:"encounter,omitempty"`                               // Encounters associated with the listed treatments
	Detail                  []ClaimItemDetail   `json:"detail,omitempty" bson:"detail,omitempty"`                                     // Product or service provided
}

func (*ClaimItem) Validate

func (r *ClaimItem) Validate() error

type ClaimItemBodySite

type ClaimItemBodySite struct {
	Id      *string             `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	Site    []CodeableReference `json:"site" bson:"site"`                            // Location
	SubSite []CodeableConcept   `json:"subSite,omitempty" bson:"sub_site,omitempty"` // Sub-location
}

func (*ClaimItemBodySite) Validate

func (r *ClaimItemBodySite) Validate() error

type ClaimItemDetail

type ClaimItemDetail struct {
	Id                  *string                    `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	Sequence            int                        `json:"sequence" bson:"sequence"`                                              // Item instance identifier
	TraceNumber         []Identifier               `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept           `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	Category            *CodeableConcept           `json:"category,omitempty" bson:"category,omitempty"`                          // Benefit classification
	ProductOrService    *CodeableConcept           `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept           `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept          `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	ProgramCode         []CodeableConcept          `json:"programCode,omitempty" bson:"program_code,omitempty"`                   // Program the product or service is provided under
	PatientPaid         *Money                     `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                   // Paid by the patient
	Quantity            *Quantity                  `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                     `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                   `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                     `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                     `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	Udi                 []Reference                `json:"udi,omitempty" bson:"udi,omitempty"`                                    // Unique device identifier
	SubDetail           []ClaimItemDetailSubDetail `json:"subDetail,omitempty" bson:"sub_detail,omitempty"`                       // Product or service provided
}

func (*ClaimItemDetail) Validate

func (r *ClaimItemDetail) Validate() error

type ClaimItemDetailSubDetail

type ClaimItemDetailSubDetail struct {
	Id                  *string           `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	Sequence            int               `json:"sequence" bson:"sequence"`                                              // Item instance identifier
	TraceNumber         []Identifier      `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept  `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	Category            *CodeableConcept  `json:"category,omitempty" bson:"category,omitempty"`                          // Benefit classification
	ProductOrService    *CodeableConcept  `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept  `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	ProgramCode         []CodeableConcept `json:"programCode,omitempty" bson:"program_code,omitempty"`                   // Program the product or service is provided under
	PatientPaid         *Money            `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                   // Paid by the patient
	Quantity            *Quantity         `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money            `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64          `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money            `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money            `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	Udi                 []Reference       `json:"udi,omitempty" bson:"udi,omitempty"`                                    // Unique device identifier
}

func (*ClaimItemDetailSubDetail) Validate

func (r *ClaimItemDetailSubDetail) Validate() error

type ClaimPayee

type ClaimPayee struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Type  *CodeableConcept `json:"type" bson:"type"`                       // Category of recipient
	Party *Reference       `json:"party,omitempty" bson:"party,omitempty"` // Recipient reference
}

func (*ClaimPayee) Validate

func (r *ClaimPayee) Validate() error

type ClaimProcedure

type ClaimProcedure struct {
	Id                       *string           `json:"id,omitempty" bson:"id,omitempty"`                           // Unique id for inter-element referencing
	Sequence                 int               `json:"sequence" bson:"sequence"`                                   // Procedure instance identifier
	Type                     []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                       // Category of Procedure
	Date                     *string           `json:"date,omitempty" bson:"date,omitempty"`                       // When the procedure was performed
	ProcedureCodeableConcept *CodeableConcept  `json:"procedureCodeableConcept" bson:"procedure_codeable_concept"` // Specific clinical procedure
	ProcedureReference       *Reference        `json:"procedureReference" bson:"procedure_reference"`              // Specific clinical procedure
	Udi                      []Reference       `json:"udi,omitempty" bson:"udi,omitempty"`                         // Unique device identifier
}

func (*ClaimProcedure) Validate

func (r *ClaimProcedure) Validate() error

type ClaimProcessingCodes added in v0.0.3

type ClaimProcessingCodes string

ClaimProcessingCodes represents codes from http://hl7.org/fhir/ValueSet/claim-outcome

const (
	ClaimProcessingCodesQueued   ClaimProcessingCodes = "queued"
	ClaimProcessingCodesComplete ClaimProcessingCodes = "complete"
	ClaimProcessingCodesError    ClaimProcessingCodes = "error"
	ClaimProcessingCodesPartial  ClaimProcessingCodes = "partial"
)

type ClaimRelated

type ClaimRelated struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Claim        *Reference       `json:"claim,omitempty" bson:"claim,omitempty"`               // Reference to the related claim
	Relationship *CodeableConcept `json:"relationship,omitempty" bson:"relationship,omitempty"` // How the reference claim is related
	Reference    *Identifier      `json:"reference,omitempty" bson:"reference,omitempty"`       // File or case reference
}

func (*ClaimRelated) Validate

func (r *ClaimRelated) Validate() error

type ClaimResponse

type ClaimResponse struct {
	ResourceType          string                          `json:"resourceType" bson:"resource_type"`                                        // Type of resource
	Id                    *string                         `json:"id,omitempty" bson:"id,omitempty"`                                         // Logical id of this artifact
	Meta                  *Meta                           `json:"meta,omitempty" bson:"meta,omitempty"`                                     // Metadata about the resource
	ImplicitRules         *string                         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                  // A set of rules under which this content was created
	Language              *string                         `json:"language,omitempty" bson:"language,omitempty"`                             // Language of the resource content
	Text                  *Narrative                      `json:"text,omitempty" bson:"text,omitempty"`                                     // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage               `json:"contained,omitempty" bson:"contained,omitempty"`                           // Contained, inline Resources
	Identifier            []Identifier                    `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // Business Identifier for a claim response
	TraceNumber           []Identifier                    `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                      // Number for tracking
	Status                string                          `json:"status" bson:"status"`                                                     // active | cancelled | draft | entered-in-error
	StatusReason          *string                         `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                    // Reason for status change
	Type                  *CodeableConcept                `json:"type" bson:"type"`                                                         // More granular claim type
	SubType               *CodeableConcept                `json:"subType,omitempty" bson:"sub_type,omitempty"`                              // More granular claim type
	Use                   string                          `json:"use" bson:"use"`                                                           // claim | preauthorization | predetermination
	Subject               *Reference                      `json:"subject" bson:"subject"`                                                   // The recipient(s) of the products and services
	Created               string                          `json:"created" bson:"created"`                                                   // Response creation date
	Insurer               *Reference                      `json:"insurer,omitempty" bson:"insurer,omitempty"`                               // Party responsible for reimbursement
	Requestor             *Reference                      `json:"requestor,omitempty" bson:"requestor,omitempty"`                           // Party responsible for the claim
	Request               *Reference                      `json:"request,omitempty" bson:"request,omitempty"`                               // Id of resource triggering adjudication
	Outcome               string                          `json:"outcome" bson:"outcome"`                                                   // queued | complete | error | partial
	Decision              *CodeableConcept                `json:"decision,omitempty" bson:"decision,omitempty"`                             // Result of the adjudication
	Disposition           *string                         `json:"disposition,omitempty" bson:"disposition,omitempty"`                       // Disposition Message
	PreAuthRef            *string                         `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"`                       // Preauthorization reference
	PreAuthPeriod         *Period                         `json:"preAuthPeriod,omitempty" bson:"pre_auth_period,omitempty"`                 // Preauthorization reference effective period
	Event                 []ClaimResponseEvent            `json:"event,omitempty" bson:"event,omitempty"`                                   // Event information
	PayeeType             *CodeableConcept                `json:"payeeType,omitempty" bson:"payee_type,omitempty"`                          // Party to be paid any benefits payable
	Encounter             []Reference                     `json:"encounter,omitempty" bson:"encounter,omitempty"`                           // Encounters associated with the listed treatments
	DiagnosisRelatedGroup *CodeableConcept                `json:"diagnosisRelatedGroup,omitempty" bson:"diagnosis_related_group,omitempty"` // Package billing code
	SupportingInfo        []ClaimResponseSupportingInfo   `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`                // Supporting information
	Item                  []ClaimResponseItem             `json:"item,omitempty" bson:"item,omitempty"`                                     // Adjudication for claim line items
	AddItem               []ClaimResponseAddItem          `json:"addItem,omitempty" bson:"add_item,omitempty"`                              // Insurer added line items
	Adjudication          []ClaimResponseItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                     // Header-level adjudication
	Total                 []ClaimResponseTotal            `json:"total,omitempty" bson:"total,omitempty"`                                   // Adjudication totals
	Payment               *ClaimResponsePayment           `json:"payment,omitempty" bson:"payment,omitempty"`                               // Payment Details
	FundsReserve          *CodeableConcept                `json:"fundsReserve,omitempty" bson:"funds_reserve,omitempty"`                    // Funds reserved status
	FormCode              *CodeableConcept                `json:"formCode,omitempty" bson:"form_code,omitempty"`                            // Printed form identifier
	Form                  *Attachment                     `json:"form,omitempty" bson:"form,omitempty"`                                     // Printed reference or actual form
	ProcessNote           []ClaimResponseProcessNote      `json:"processNote,omitempty" bson:"process_note,omitempty"`                      // Note concerning adjudication
	CommunicationRequest  []Reference                     `json:"communicationRequest,omitempty" bson:"communication_request,omitempty"`    // Request for additional information
	Insurance             []ClaimResponseInsurance        `json:"insurance,omitempty" bson:"insurance,omitempty"`                           // Patient insurance information
	Error                 []ClaimResponseError            `json:"error,omitempty" bson:"error,omitempty"`                                   // Processing errors
}

This resource provides the adjudication details from the processing of a Claim resource.

func (*ClaimResponse) Validate

func (r *ClaimResponse) Validate() error

type ClaimResponseAddItem

type ClaimResponseAddItem struct {
	Id                      *string                         `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	ItemSequence            []int                           `json:"itemSequence,omitempty" bson:"item_sequence,omitempty"`                        // Item sequence number
	DetailSequence          []int                           `json:"detailSequence,omitempty" bson:"detail_sequence,omitempty"`                    // Detail sequence number
	SubdetailSequence       []int                           `json:"subdetailSequence,omitempty" bson:"subdetail_sequence,omitempty"`              // Subdetail sequence number
	TraceNumber             []Identifier                    `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                          // Number for tracking
	Subject                 *Reference                      `json:"subject,omitempty" bson:"subject,omitempty"`                                   // The recipient of the products and services
	InformationSequence     []int                           `json:"informationSequence,omitempty" bson:"information_sequence,omitempty"`          // Applicable exception and supporting information
	Provider                []Reference                     `json:"provider,omitempty" bson:"provider,omitempty"`                                 // Authorized providers
	Revenue                 *CodeableConcept                `json:"revenue,omitempty" bson:"revenue,omitempty"`                                   // Revenue or cost center code
	Category                *CodeableConcept                `json:"category,omitempty" bson:"category,omitempty"`                                 // Benefit classification
	ProductOrService        *CodeableConcept                `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`               // Billing, service, product, or drug code
	ProductOrServiceEnd     *CodeableConcept                `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"`        // End of a range of codes
	Request                 []Reference                     `json:"request,omitempty" bson:"request,omitempty"`                                   // Request or Referral for Service
	Modifier                []CodeableConcept               `json:"modifier,omitempty" bson:"modifier,omitempty"`                                 // Service/Product billing modifiers
	ProgramCode             []CodeableConcept               `json:"programCode,omitempty" bson:"program_code,omitempty"`                          // Program the product or service is provided under
	ServicedDate            *string                         `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`                        // Date or dates of service or product delivery
	ServicedPeriod          *Period                         `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"`                    // Date or dates of service or product delivery
	LocationCodeableConcept *CodeableConcept                `json:"locationCodeableConcept,omitempty" bson:"location_codeable_concept,omitempty"` // Place of service or where product was supplied
	LocationAddress         *Address                        `json:"locationAddress,omitempty" bson:"location_address,omitempty"`                  // Place of service or where product was supplied
	LocationReference       *Reference                      `json:"locationReference,omitempty" bson:"location_reference,omitempty"`              // Place of service or where product was supplied
	Quantity                *Quantity                       `json:"quantity,omitempty" bson:"quantity,omitempty"`                                 // Count of products or services
	UnitPrice               *Money                          `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                              // Fee, charge or cost per item
	Factor                  *float64                        `json:"factor,omitempty" bson:"factor,omitempty"`                                     // Price scaling factor
	Tax                     *Money                          `json:"tax,omitempty" bson:"tax,omitempty"`                                           // Total tax
	Net                     *Money                          `json:"net,omitempty" bson:"net,omitempty"`                                           // Total item cost
	BodySite                []ClaimResponseAddItemBodySite  `json:"bodySite,omitempty" bson:"body_site,omitempty"`                                // Anatomical location
	NoteNumber              []int                           `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                            // Applicable note numbers
	ReviewOutcome           *ClaimResponseItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`                      // Added items adjudication results
	Adjudication            []ClaimResponseItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                         // Added items adjudication
	Detail                  []ClaimResponseAddItemDetail    `json:"detail,omitempty" bson:"detail,omitempty"`                                     // Insurer added line details
}

func (*ClaimResponseAddItem) Validate

func (r *ClaimResponseAddItem) Validate() error

type ClaimResponseAddItemBodySite

type ClaimResponseAddItemBodySite struct {
	Id      *string             `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	Site    []CodeableReference `json:"site" bson:"site"`                            // Location
	SubSite []CodeableConcept   `json:"subSite,omitempty" bson:"sub_site,omitempty"` // Sub-location
}

func (*ClaimResponseAddItemBodySite) Validate

func (r *ClaimResponseAddItemBodySite) Validate() error

type ClaimResponseAddItemDetail

type ClaimResponseAddItemDetail struct {
	Id                  *string                               `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	TraceNumber         []Identifier                          `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept                      `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	ProductOrService    *CodeableConcept                      `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept                      `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept                     `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	Quantity            *Quantity                             `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                                `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                              `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                                `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                                `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	NoteNumber          []int                                 `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                     // Applicable note numbers
	ReviewOutcome       *ClaimResponseItemReviewOutcome       `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`               // Added items detail level adjudication results
	Adjudication        []ClaimResponseItemAdjudication       `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                  // Added items detail adjudication
	SubDetail           []ClaimResponseAddItemDetailSubDetail `json:"subDetail,omitempty" bson:"sub_detail,omitempty"`                       // Insurer added line items
}

func (*ClaimResponseAddItemDetail) Validate

func (r *ClaimResponseAddItemDetail) Validate() error

type ClaimResponseAddItemDetailSubDetail

type ClaimResponseAddItemDetailSubDetail struct {
	Id                  *string                         `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	TraceNumber         []Identifier                    `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept                `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	ProductOrService    *CodeableConcept                `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept                `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept               `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	Quantity            *Quantity                       `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                          `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                        `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                          `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                          `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	NoteNumber          []int                           `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                     // Applicable note numbers
	ReviewOutcome       *ClaimResponseItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`               // Added items subdetail level adjudication results
	Adjudication        []ClaimResponseItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                  // Added items subdetail adjudication
}

func (*ClaimResponseAddItemDetailSubDetail) Validate

type ClaimResponseError

type ClaimResponseError struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                                 // Unique id for inter-element referencing
	ItemSequence      *int             `json:"itemSequence,omitempty" bson:"item_sequence,omitempty"`            // Item sequence number
	DetailSequence    *int             `json:"detailSequence,omitempty" bson:"detail_sequence,omitempty"`        // Detail sequence number
	SubDetailSequence *int             `json:"subDetailSequence,omitempty" bson:"sub_detail_sequence,omitempty"` // Subdetail sequence number
	Code              *CodeableConcept `json:"code" bson:"code"`                                                 // Error code detailing processing issues
	Expression        []string         `json:"expression,omitempty" bson:"expression,omitempty"`                 // FHIRPath of element(s) related to issue
}

func (*ClaimResponseError) Validate

func (r *ClaimResponseError) Validate() error

type ClaimResponseEvent

type ClaimResponseEvent struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Type         *CodeableConcept `json:"type" bson:"type"`                   // Specific event
	WhenDateTime *string          `json:"whenDateTime" bson:"when_date_time"` // Occurance date or period
	WhenPeriod   *Period          `json:"whenPeriod" bson:"when_period"`      // Occurance date or period
}

func (*ClaimResponseEvent) Validate

func (r *ClaimResponseEvent) Validate() error

type ClaimResponseInsurance

type ClaimResponseInsurance struct {
	Id                  *string    `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Sequence            int        `json:"sequence" bson:"sequence"`                                            // Insurance instance identifier
	Focal               bool       `json:"focal" bson:"focal"`                                                  // Coverage to be used for adjudication
	Coverage            *Reference `json:"coverage" bson:"coverage"`                                            // Insurance information
	BusinessArrangement *string    `json:"businessArrangement,omitempty" bson:"business_arrangement,omitempty"` // Additional provider contract number
	ClaimResponse       *Reference `json:"claimResponse,omitempty" bson:"claim_response,omitempty"`             // Adjudication results
}

func (*ClaimResponseInsurance) Validate

func (r *ClaimResponseInsurance) Validate() error

type ClaimResponseItem

type ClaimResponseItem struct {
	Id                  *string                         `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	ItemSequence        int                             `json:"itemSequence" bson:"item_sequence"`                                   // Claim item instance identifier
	TraceNumber         []Identifier                    `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                 // Number for tracking
	InformationSequence []int                           `json:"informationSequence,omitempty" bson:"information_sequence,omitempty"` // Applicable exception and supporting information
	NoteNumber          []int                           `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                   // Applicable note numbers
	ReviewOutcome       *ClaimResponseItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`             // Adjudication results
	Adjudication        []ClaimResponseItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                // Adjudication details
	Detail              []ClaimResponseItemDetail       `json:"detail,omitempty" bson:"detail,omitempty"`                            // Adjudication for claim details
}

func (*ClaimResponseItem) Validate

func (r *ClaimResponseItem) Validate() error

type ClaimResponseItemAdjudication

type ClaimResponseItemAdjudication struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Category     *CodeableConcept `json:"category" bson:"category"`                              // Type of adjudication information
	Reason       *CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`              // Explanation of adjudication outcome
	Amount       *Money           `json:"amount,omitempty" bson:"amount,omitempty"`              // Monetary amount
	Quantity     *Quantity        `json:"quantity,omitempty" bson:"quantity,omitempty"`          // Non-monetary value
	DecisionDate *string          `json:"decisionDate,omitempty" bson:"decision_date,omitempty"` // When was adjudication performed
}

func (*ClaimResponseItemAdjudication) Validate

func (r *ClaimResponseItemAdjudication) Validate() error

type ClaimResponseItemDetail

type ClaimResponseItemDetail struct {
	Id             *string                            `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	DetailSequence int                                `json:"detailSequence" bson:"detail_sequence"`                   // Claim detail instance identifier
	TraceNumber    []Identifier                       `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`     // Number for tracking
	NoteNumber     []int                              `json:"noteNumber,omitempty" bson:"note_number,omitempty"`       // Applicable note numbers
	ReviewOutcome  *ClaimResponseItemReviewOutcome    `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"` // Detail level adjudication results
	Adjudication   []ClaimResponseItemAdjudication    `json:"adjudication,omitempty" bson:"adjudication,omitempty"`    // Detail level adjudication details
	SubDetail      []ClaimResponseItemDetailSubDetail `json:"subDetail,omitempty" bson:"sub_detail,omitempty"`         // Adjudication for claim sub-details
}

func (*ClaimResponseItemDetail) Validate

func (r *ClaimResponseItemDetail) Validate() error

type ClaimResponseItemDetailSubDetail

type ClaimResponseItemDetailSubDetail struct {
	Id                *string                         `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	SubDetailSequence int                             `json:"subDetailSequence" bson:"sub_detail_sequence"`            // Claim sub-detail instance identifier
	TraceNumber       []Identifier                    `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`     // Number for tracking
	NoteNumber        []int                           `json:"noteNumber,omitempty" bson:"note_number,omitempty"`       // Applicable note numbers
	ReviewOutcome     *ClaimResponseItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"` // Subdetail level adjudication results
	Adjudication      []ClaimResponseItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`    // Subdetail level adjudication details
}

func (*ClaimResponseItemDetailSubDetail) Validate

type ClaimResponseItemReviewOutcome

type ClaimResponseItemReviewOutcome struct {
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Decision      *CodeableConcept  `json:"decision,omitempty" bson:"decision,omitempty"`             // Result of the adjudication
	Reason        []CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`                 // Reason for result of the adjudication
	PreAuthRef    *string           `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"`       // Preauthorization reference
	PreAuthPeriod *Period           `json:"preAuthPeriod,omitempty" bson:"pre_auth_period,omitempty"` // Preauthorization reference effective period
}

func (*ClaimResponseItemReviewOutcome) Validate

func (r *ClaimResponseItemReviewOutcome) Validate() error

type ClaimResponsePayment

type ClaimResponsePayment struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type" bson:"type"`                                              // Partial or complete payment
	Adjustment       *Money           `json:"adjustment,omitempty" bson:"adjustment,omitempty"`              // Payment adjustment for non-claim issues
	AdjustmentReason *CodeableConcept `json:"adjustmentReason,omitempty" bson:"adjustment_reason,omitempty"` // Explanation for the adjustment
	Date             *string          `json:"date,omitempty" bson:"date,omitempty"`                          // Expected date of payment
	Amount           *Money           `json:"amount" bson:"amount"`                                          // Payable amount after adjustment
	Identifier       *Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`              // Business identifier for the payment
}

func (*ClaimResponsePayment) Validate

func (r *ClaimResponsePayment) Validate() error

type ClaimResponseProcessNote

type ClaimResponseProcessNote struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Class    *CodeableConcept `json:"class,omitempty" bson:"class,omitempty"`       // Business kind of note
	Number   *int             `json:"number,omitempty" bson:"number,omitempty"`     // Note instance identifier
	Type     *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`         // Note purpose
	Text     string           `json:"text" bson:"text"`                             // Note explanatory text
	Language *CodeableConcept `json:"language,omitempty" bson:"language,omitempty"` // Language of the text
}

func (*ClaimResponseProcessNote) Validate

func (r *ClaimResponseProcessNote) Validate() error

type ClaimResponseSupportingInfo

type ClaimResponseSupportingInfo struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Unique id for inter-element referencing
	Sequence                   int                    `json:"sequence" bson:"sequence"`                                                            // Information instance identifier
	Category                   *CodeableConcept       `json:"category" bson:"category"`                                                            // Classification of the supplied information
	Code                       *CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                                                // Type of information
	TimingDateTime             *string                `json:"timingDateTime,omitempty" bson:"timing_date_time,omitempty"`                          // When it occurred
	TimingPeriod               *Period                `json:"timingPeriod,omitempty" bson:"timing_period,omitempty"`                               // When it occurred
	TimingTiming               *Timing                `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`                               // When it occurred
	ValueBase64Binary          *string                `json:"valueBase64Binary,omitempty" bson:"value_base64_binary,omitempty"`                    // Data to be provided
	ValueBoolean               *bool                  `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                               // Data to be provided
	ValueCanonical             *string                `json:"valueCanonical,omitempty" bson:"value_canonical,omitempty"`                           // Data to be provided
	ValueCode                  *string                `json:"valueCode,omitempty" bson:"value_code,omitempty"`                                     // Data to be provided
	ValueDate                  *string                `json:"valueDate,omitempty" bson:"value_date,omitempty"`                                     // Data to be provided
	ValueDateTime              *string                `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                            // Data to be provided
	ValueDecimal               *float64               `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`                               // Data to be provided
	ValueId                    *string                `json:"valueId,omitempty" bson:"value_id,omitempty"`                                         // Data to be provided
	ValueInstant               *string                `json:"valueInstant,omitempty" bson:"value_instant,omitempty"`                               // Data to be provided
	ValueInteger               *int                   `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                               // Data to be provided
	ValueInteger64             *int64                 `json:"valueInteger64,omitempty" bson:"value_integer64,omitempty"`                           // Data to be provided
	ValueMarkdown              *string                `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                             // Data to be provided
	ValueOid                   *string                `json:"valueOid,omitempty" bson:"value_oid,omitempty"`                                       // Data to be provided
	ValuePositiveInt           *int                   `json:"valuePositiveInt,omitempty" bson:"value_positive_int,omitempty"`                      // Data to be provided
	ValueString                *string                `json:"valueString,omitempty" bson:"value_string,omitempty"`                                 // Data to be provided
	ValueTime                  *string                `json:"valueTime,omitempty" bson:"value_time,omitempty"`                                     // Data to be provided
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt,omitempty" bson:"value_unsigned_int,omitempty"`                      // Data to be provided
	ValueUri                   *string                `json:"valueUri,omitempty" bson:"value_uri,omitempty"`                                       // Data to be provided
	ValueUrl                   *string                `json:"valueUrl,omitempty" bson:"value_url,omitempty"`                                       // Data to be provided
	ValueUuid                  *uuid                  `json:"valueUuid,omitempty" bson:"value_uuid,omitempty"`                                     // Data to be provided
	ValueAddress               *Address               `json:"valueAddress,omitempty" bson:"value_address,omitempty"`                               // Data to be provided
	ValueAge                   *Age                   `json:"valueAge,omitempty" bson:"value_age,omitempty"`                                       // Data to be provided
	ValueAnnotation            *Annotation            `json:"valueAnnotation,omitempty" bson:"value_annotation,omitempty"`                         // Data to be provided
	ValueAttachment            *Attachment            `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`                         // Data to be provided
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`              // Data to be provided
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference,omitempty" bson:"value_codeable_reference,omitempty"`          // Data to be provided
	ValueCoding                *Coding                `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`                                 // Data to be provided
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint,omitempty" bson:"value_contact_point,omitempty"`                    // Data to be provided
	ValueCount                 *Count                 `json:"valueCount,omitempty" bson:"value_count,omitempty"`                                   // Data to be provided
	ValueDistance              *Distance              `json:"valueDistance,omitempty" bson:"value_distance,omitempty"`                             // Data to be provided
	ValueDuration              *Duration              `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`                             // Data to be provided
	ValueHumanName             *HumanName             `json:"valueHumanName,omitempty" bson:"value_human_name,omitempty"`                          // Data to be provided
	ValueIdentifier            *Identifier            `json:"valueIdentifier,omitempty" bson:"value_identifier,omitempty"`                         // Data to be provided
	ValueMoney                 *Money                 `json:"valueMoney,omitempty" bson:"value_money,omitempty"`                                   // Data to be provided
	ValuePeriod                *Period                `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                                 // Data to be provided
	ValueQuantity              *Quantity              `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                             // Data to be provided
	ValueRange                 *Range                 `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                   // Data to be provided
	ValueRatio                 *Ratio                 `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                                   // Data to be provided
	ValueRatioRange            *RatioRange            `json:"valueRatioRange,omitempty" bson:"value_ratio_range,omitempty"`                        // Data to be provided
	ValueReference             *Reference             `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                           // Data to be provided
	ValueSampledData           *SampledData           `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`                      // Data to be provided
	ValueSignature             *Signature             `json:"valueSignature,omitempty" bson:"value_signature,omitempty"`                           // Data to be provided
	ValueTiming                *Timing                `json:"valueTiming,omitempty" bson:"value_timing,omitempty"`                                 // Data to be provided
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail,omitempty" bson:"value_contact_detail,omitempty"`                  // Data to be provided
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement,omitempty" bson:"value_data_requirement,omitempty"`              // Data to be provided
	ValueExpression            *Expression            `json:"valueExpression,omitempty" bson:"value_expression,omitempty"`                         // Data to be provided
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition,omitempty" bson:"value_parameter_definition,omitempty"`      // Data to be provided
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact,omitempty" bson:"value_related_artifact,omitempty"`              // Data to be provided
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition,omitempty" bson:"value_trigger_definition,omitempty"`          // Data to be provided
	ValueUsageContext          *UsageContext          `json:"valueUsageContext,omitempty" bson:"value_usage_context,omitempty"`                    // Data to be provided
	ValueAvailability          *Availability          `json:"valueAvailability,omitempty" bson:"value_availability,omitempty"`                     // Data to be provided
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail,omitempty" bson:"value_extended_contact_detail,omitempty"` // Data to be provided
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail,omitempty" bson:"value_virtual_service_detail,omitempty"`   // Data to be provided
	ValueDosage                *Dosage                `json:"valueDosage,omitempty" bson:"value_dosage,omitempty"`                                 // Data to be provided
	ValueMeta                  *Meta                  `json:"valueMeta,omitempty" bson:"value_meta,omitempty"`                                     // Data to be provided
	Reason                     *CodeableConcept       `json:"reason,omitempty" bson:"reason,omitempty"`                                            // Explanation for the information
}

func (*ClaimResponseSupportingInfo) Validate

func (r *ClaimResponseSupportingInfo) Validate() error

type ClaimResponseTotal

type ClaimResponseTotal struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Category *CodeableConcept `json:"category" bson:"category"`         // Type of adjudication information
	Amount   *Money           `json:"amount" bson:"amount"`             // Financial total for the category
}

func (*ClaimResponseTotal) Validate

func (r *ClaimResponseTotal) Validate() error

type ClaimSupportingInfo

type ClaimSupportingInfo struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Unique id for inter-element referencing
	Sequence                   int                    `json:"sequence" bson:"sequence"`                                                            // Information instance identifier
	Category                   *CodeableConcept       `json:"category" bson:"category"`                                                            // Classification of the supplied information
	SubCategory                *CodeableConcept       `json:"subCategory,omitempty" bson:"sub_category,omitempty"`                                 // Finer-grained classification of the supplied information
	Code                       *CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                                                // Type of information
	TimingDateTime             *string                `json:"timingDateTime,omitempty" bson:"timing_date_time,omitempty"`                          // When it occurred
	TimingPeriod               *Period                `json:"timingPeriod,omitempty" bson:"timing_period,omitempty"`                               // When it occurred
	TimingTiming               *Timing                `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`                               // When it occurred
	ValueBase64Binary          *string                `json:"valueBase64Binary,omitempty" bson:"value_base64_binary,omitempty"`                    // Data to be provided
	ValueBoolean               *bool                  `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                               // Data to be provided
	ValueCanonical             *string                `json:"valueCanonical,omitempty" bson:"value_canonical,omitempty"`                           // Data to be provided
	ValueCode                  *string                `json:"valueCode,omitempty" bson:"value_code,omitempty"`                                     // Data to be provided
	ValueDate                  *string                `json:"valueDate,omitempty" bson:"value_date,omitempty"`                                     // Data to be provided
	ValueDateTime              *string                `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                            // Data to be provided
	ValueDecimal               *float64               `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`                               // Data to be provided
	ValueId                    *string                `json:"valueId,omitempty" bson:"value_id,omitempty"`                                         // Data to be provided
	ValueInstant               *string                `json:"valueInstant,omitempty" bson:"value_instant,omitempty"`                               // Data to be provided
	ValueInteger               *int                   `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                               // Data to be provided
	ValueInteger64             *int64                 `json:"valueInteger64,omitempty" bson:"value_integer64,omitempty"`                           // Data to be provided
	ValueMarkdown              *string                `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                             // Data to be provided
	ValueOid                   *string                `json:"valueOid,omitempty" bson:"value_oid,omitempty"`                                       // Data to be provided
	ValuePositiveInt           *int                   `json:"valuePositiveInt,omitempty" bson:"value_positive_int,omitempty"`                      // Data to be provided
	ValueString                *string                `json:"valueString,omitempty" bson:"value_string,omitempty"`                                 // Data to be provided
	ValueTime                  *string                `json:"valueTime,omitempty" bson:"value_time,omitempty"`                                     // Data to be provided
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt,omitempty" bson:"value_unsigned_int,omitempty"`                      // Data to be provided
	ValueUri                   *string                `json:"valueUri,omitempty" bson:"value_uri,omitempty"`                                       // Data to be provided
	ValueUrl                   *string                `json:"valueUrl,omitempty" bson:"value_url,omitempty"`                                       // Data to be provided
	ValueUuid                  *uuid                  `json:"valueUuid,omitempty" bson:"value_uuid,omitempty"`                                     // Data to be provided
	ValueAddress               *Address               `json:"valueAddress,omitempty" bson:"value_address,omitempty"`                               // Data to be provided
	ValueAge                   *Age                   `json:"valueAge,omitempty" bson:"value_age,omitempty"`                                       // Data to be provided
	ValueAnnotation            *Annotation            `json:"valueAnnotation,omitempty" bson:"value_annotation,omitempty"`                         // Data to be provided
	ValueAttachment            *Attachment            `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`                         // Data to be provided
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`              // Data to be provided
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference,omitempty" bson:"value_codeable_reference,omitempty"`          // Data to be provided
	ValueCoding                *Coding                `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`                                 // Data to be provided
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint,omitempty" bson:"value_contact_point,omitempty"`                    // Data to be provided
	ValueCount                 *Count                 `json:"valueCount,omitempty" bson:"value_count,omitempty"`                                   // Data to be provided
	ValueDistance              *Distance              `json:"valueDistance,omitempty" bson:"value_distance,omitempty"`                             // Data to be provided
	ValueDuration              *Duration              `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`                             // Data to be provided
	ValueHumanName             *HumanName             `json:"valueHumanName,omitempty" bson:"value_human_name,omitempty"`                          // Data to be provided
	ValueIdentifier            *Identifier            `json:"valueIdentifier,omitempty" bson:"value_identifier,omitempty"`                         // Data to be provided
	ValueMoney                 *Money                 `json:"valueMoney,omitempty" bson:"value_money,omitempty"`                                   // Data to be provided
	ValuePeriod                *Period                `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                                 // Data to be provided
	ValueQuantity              *Quantity              `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                             // Data to be provided
	ValueRange                 *Range                 `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                   // Data to be provided
	ValueRatio                 *Ratio                 `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                                   // Data to be provided
	ValueRatioRange            *RatioRange            `json:"valueRatioRange,omitempty" bson:"value_ratio_range,omitempty"`                        // Data to be provided
	ValueReference             *Reference             `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                           // Data to be provided
	ValueSampledData           *SampledData           `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`                      // Data to be provided
	ValueSignature             *Signature             `json:"valueSignature,omitempty" bson:"value_signature,omitempty"`                           // Data to be provided
	ValueTiming                *Timing                `json:"valueTiming,omitempty" bson:"value_timing,omitempty"`                                 // Data to be provided
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail,omitempty" bson:"value_contact_detail,omitempty"`                  // Data to be provided
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement,omitempty" bson:"value_data_requirement,omitempty"`              // Data to be provided
	ValueExpression            *Expression            `json:"valueExpression,omitempty" bson:"value_expression,omitempty"`                         // Data to be provided
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition,omitempty" bson:"value_parameter_definition,omitempty"`      // Data to be provided
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact,omitempty" bson:"value_related_artifact,omitempty"`              // Data to be provided
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition,omitempty" bson:"value_trigger_definition,omitempty"`          // Data to be provided
	ValueUsageContext          *UsageContext          `json:"valueUsageContext,omitempty" bson:"value_usage_context,omitempty"`                    // Data to be provided
	ValueAvailability          *Availability          `json:"valueAvailability,omitempty" bson:"value_availability,omitempty"`                     // Data to be provided
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail,omitempty" bson:"value_extended_contact_detail,omitempty"` // Data to be provided
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail,omitempty" bson:"value_virtual_service_detail,omitempty"`   // Data to be provided
	ValueDosage                *Dosage                `json:"valueDosage,omitempty" bson:"value_dosage,omitempty"`                                 // Data to be provided
	ValueMeta                  *Meta                  `json:"valueMeta,omitempty" bson:"value_meta,omitempty"`                                     // Data to be provided
	Reason                     *CodeableConcept       `json:"reason,omitempty" bson:"reason,omitempty"`                                            // Explanation for the information
}

func (*ClaimSupportingInfo) Validate

func (r *ClaimSupportingInfo) Validate() error

type ClinicalUseDefinition

type ClinicalUseDefinition struct {
	ResourceType      string                                  `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string                                 `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta                                   `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string                                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string                                 `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative                              `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage                       `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Identifier        []Identifier                            `json:"identifier,omitempty" bson:"identifier,omitempty"`                // Business identifier for this issue
	Type              string                                  `json:"type" bson:"type"`                                                // indication | contraindication | interaction | undesirable-effect | warning
	Category          []CodeableConcept                       `json:"category,omitempty" bson:"category,omitempty"`                    // A categorisation of the issue, primarily for dividing warnings into subject heading areas such as "Pregnancy", "Overdose"
	Subject           []CodeableReference                     `json:"subject" bson:"subject"`                                          // The medication, product, substance, device, procedure etc. for which this is an indication, contraindication, interaction, undesirable effect, or warning
	Status            *CodeableConcept                        `json:"status,omitempty" bson:"status,omitempty"`                        // Whether this is a current issue or one that has been retired etc
	UndesirableEffect *ClinicalUseDefinitionUndesirableEffect `json:"undesirableEffect,omitempty" bson:"undesirable_effect,omitempty"` // A possible negative outcome from the use of this treatment
	Indication        *ClinicalUseDefinitionIndication        `json:"indication,omitempty" bson:"indication,omitempty"`                // Specifics for when this is an indication
	Contraindication  *ClinicalUseDefinitionContraindication  `json:"contraindication,omitempty" bson:"contraindication,omitempty"`    // Specifics for when this is a contraindication
	Interaction       *ClinicalUseDefinitionInteraction       `json:"interaction,omitempty" bson:"interaction,omitempty"`              // Specifics for when this is an interaction
	Population        []Reference                             `json:"population,omitempty" bson:"population,omitempty"`                // The population group to which this applies
	Library           []string                                `json:"library,omitempty" bson:"library,omitempty"`                      // Logic used by the clinical use definition
	Warning           *ClinicalUseDefinitionWarning           `json:"warning,omitempty" bson:"warning,omitempty"`                      // Critical environmental, health or physical risks or hazards. For example 'Do not operate heavy machinery', 'May cause drowsiness'
}

A single issue - either an indication, contraindication, interaction, undesirable effect or warning for a medicinal product, medication, device or procedure.

func (*ClinicalUseDefinition) Validate

func (r *ClinicalUseDefinition) Validate() error

type ClinicalUseDefinitionContraindication

type ClinicalUseDefinitionContraindication struct {
	Id                      *string                                       `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	DiseaseSymptomProcedure *CodeableReference                            `json:"diseaseSymptomProcedure,omitempty" bson:"disease_symptom_procedure,omitempty"` // The situation that is being documented as contraindicating against this item
	DiseaseStatus           *CodeableReference                            `json:"diseaseStatus,omitempty" bson:"disease_status,omitempty"`                      // The status of the disease or symptom for the contraindication
	Comorbidity             []CodeableReference                           `json:"comorbidity,omitempty" bson:"comorbidity,omitempty"`                           // A comorbidity (concurrent condition) or coinfection
	Indication              []ClinicalUseDefinitionIndication             `json:"indication,omitempty" bson:"indication,omitempty"`                             // The indication which this is a contraindication for
	Applicability           *Expression                                   `json:"applicability,omitempty" bson:"applicability,omitempty"`                       // An expression that returns true or false, indicating whether the indication is applicable or not, after having applied its other elements
	Management              []CodeableConcept                             `json:"management,omitempty" bson:"management,omitempty"`                             // Actions for managing the contraindication
	OtherTherapy            []ClinicalUseDefinitionIndicationOtherTherapy `json:"otherTherapy,omitempty" bson:"other_therapy,omitempty"`                        // Information about use of the product in relation to other therapies described as part of the contraindication
}

func (*ClinicalUseDefinitionContraindication) Validate

type ClinicalUseDefinitionIndication

type ClinicalUseDefinitionIndication struct {
	Id                      *string                                       `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	DiseaseSymptomProcedure *CodeableReference                            `json:"diseaseSymptomProcedure,omitempty" bson:"disease_symptom_procedure,omitempty"` // The situation that is being documented as an indication for this item
	DiseaseStatus           *CodeableReference                            `json:"diseaseStatus,omitempty" bson:"disease_status,omitempty"`                      // The status of the disease or symptom for the indication
	Comorbidity             []CodeableReference                           `json:"comorbidity,omitempty" bson:"comorbidity,omitempty"`                           // A comorbidity or coinfection as part of the indication
	IntendedEffect          []CodeableReference                           `json:"intendedEffect,omitempty" bson:"intended_effect,omitempty"`                    // The intended effect, aim or strategy to be achieved
	DurationRange           *Range                                        `json:"durationRange,omitempty" bson:"duration_range,omitempty"`                      // Timing or duration information
	DurationString          *string                                       `json:"durationString,omitempty" bson:"duration_string,omitempty"`                    // Timing or duration information
	UndesirableEffect       []ClinicalUseDefinitionUndesirableEffect      `json:"undesirableEffect,omitempty" bson:"undesirable_effect,omitempty"`              // An unwanted side effect or negative outcome of the subject of this resource when being used for this indication
	Applicability           *Expression                                   `json:"applicability,omitempty" bson:"applicability,omitempty"`                       // An expression that returns true or false, indicating whether the indication is applicable or not, after having applied its other elements
	OtherTherapy            []ClinicalUseDefinitionIndicationOtherTherapy `json:"otherTherapy,omitempty" bson:"other_therapy,omitempty"`                        // Information about use of the product in relation to other therapies described as part of the contraindication
}

func (*ClinicalUseDefinitionIndication) Validate

func (r *ClinicalUseDefinitionIndication) Validate() error

type ClinicalUseDefinitionIndicationOtherTherapy

type ClinicalUseDefinitionIndicationOtherTherapy struct {
	Id               *string            `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	RelationshipType *CodeableConcept   `json:"relationshipType" bson:"relationship_type"` // The type of relationship between the product indication/contraindication and another therapy
	Treatment        *CodeableReference `json:"treatment" bson:"treatment"`                // Reference to a specific medication, substance etc. as part of an indication or contraindication
}

func (*ClinicalUseDefinitionIndicationOtherTherapy) Validate

type ClinicalUseDefinitionInteraction

type ClinicalUseDefinitionInteraction struct {
	Id          *string                                       `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Interactant []ClinicalUseDefinitionInteractionInteractant `json:"interactant,omitempty" bson:"interactant,omitempty"` // The specific medication, product, food etc. or laboratory test that interacts
	Type        *CodeableConcept                              `json:"type,omitempty" bson:"type,omitempty"`               // The type of the interaction e.g. drug-drug interaction, drug-lab test interaction
	Effect      *CodeableReference                            `json:"effect,omitempty" bson:"effect,omitempty"`           // The effect of the interaction, for example "reduced gastric absorption of primary medication"
	Incidence   *CodeableConcept                              `json:"incidence,omitempty" bson:"incidence,omitempty"`     // The incidence of the interaction, e.g. theoretical, observed
	Management  []CodeableConcept                             `json:"management,omitempty" bson:"management,omitempty"`   // Actions for managing the interaction
	Severity    *CodeableConcept                              `json:"severity,omitempty" bson:"severity,omitempty"`       // The severity of the interaction
}

func (*ClinicalUseDefinitionInteraction) Validate

type ClinicalUseDefinitionInteractionInteractant

type ClinicalUseDefinitionInteractionInteractant struct {
	Id                  *string          `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	ItemReference       *Reference       `json:"itemReference" bson:"item_reference"`              // The specific medication, product, food etc. or laboratory test that interacts
	ItemCodeableConcept *CodeableConcept `json:"itemCodeableConcept" bson:"item_codeable_concept"` // The specific medication, product, food etc. or laboratory test that interacts
	Route               *CodeableConcept `json:"route,omitempty" bson:"route,omitempty"`           // The route by which the item is administered to cause the interaction
}

func (*ClinicalUseDefinitionInteractionInteractant) Validate

type ClinicalUseDefinitionType added in v0.0.3

type ClinicalUseDefinitionType string

ClinicalUseDefinitionType represents codes from http://hl7.org/fhir/ValueSet/clinical-use-definition-type

const (
	ClinicalUseDefinitionTypeIndication        ClinicalUseDefinitionType = "indication"
	ClinicalUseDefinitionTypeContraindication  ClinicalUseDefinitionType = "contraindication"
	ClinicalUseDefinitionTypeInteraction       ClinicalUseDefinitionType = "interaction"
	ClinicalUseDefinitionTypeUndesirableEffect ClinicalUseDefinitionType = "undesirable-effect"
	ClinicalUseDefinitionTypeWarning           ClinicalUseDefinitionType = "warning"
)

type ClinicalUseDefinitionUndesirableEffect

type ClinicalUseDefinitionUndesirableEffect struct {
	Id                     *string            `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	SymptomConditionEffect *CodeableReference `json:"symptomConditionEffect,omitempty" bson:"symptom_condition_effect,omitempty"` // The situation in which the undesirable effect may manifest
	Classification         *CodeableConcept   `json:"classification,omitempty" bson:"classification,omitempty"`                   // High level classification of the effect
	FrequencyOfOccurrence  *CodeableConcept   `json:"frequencyOfOccurrence,omitempty" bson:"frequency_of_occurrence,omitempty"`   // How often the effect is seen
	Management             []CodeableConcept  `json:"management,omitempty" bson:"management,omitempty"`                           // Actions for managing the undesirable effect
}

func (*ClinicalUseDefinitionUndesirableEffect) Validate

type ClinicalUseDefinitionWarning

type ClinicalUseDefinitionWarning struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Description *string          `json:"description,omitempty" bson:"description,omitempty"` // A textual definition of this warning, with formatting
	Code        *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`               // A coded or unformatted textual definition of this warning
}

func (*ClinicalUseDefinitionWarning) Validate

func (r *ClinicalUseDefinitionWarning) Validate() error

type CodeSearchSupport added in v0.0.3

type CodeSearchSupport string

CodeSearchSupport represents codes from http://hl7.org/fhir/ValueSet/code-search-support

const (
	CodeSearchSupportInCompose            CodeSearchSupport = "in-compose"
	CodeSearchSupportInExpansion          CodeSearchSupport = "in-expansion"
	CodeSearchSupportInComposeOrExpansion CodeSearchSupport = "in-compose-or-expansion"
)

type CodeSystem

type CodeSystem struct {
	ResourceType           string               `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string              `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string              `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string              `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative           `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage    `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string              `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system)
	Identifier             []Identifier         `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the code system (business identifier)
	Version                *string              `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the code system (Coding.version)
	VersionAlgorithmString *string              `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding              `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string              `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this code system (computer friendly)
	Title                  *string              `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this code system (human friendly)
	Status                 string               `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string              `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string              `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail      `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string              `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the code system
	UseContext             []UsageContext       `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept    `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the code system (if applicable)
	Purpose                *string              `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this code system is defined
	Copyright              *string              `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string              `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string              `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the CodeSystem was approved by publisher
	LastReviewDate         *string              `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the CodeSystem was last reviewed by the publisher
	EffectivePeriod        *Period              `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the CodeSystem is expected to be used
	Topic                  []CodeableConcept    `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail      `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the CodeSystem
	Editor                 []ContactDetail      `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the CodeSystem
	Reviewer               []ContactDetail      `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the CodeSystem
	Endorser               []ContactDetail      `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the CodeSystem
	RelatedArtifact        []RelatedArtifact    `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
	CaseSensitive          *bool                `json:"caseSensitive,omitempty" bson:"case_sensitive,omitempty"`                    // If code comparison is case sensitive
	ValueSet               *string              `json:"valueSet,omitempty" bson:"value_set,omitempty"`                              // Canonical reference to the value set with entire code system
	HierarchyMeaning       *string              `json:"hierarchyMeaning,omitempty" bson:"hierarchy_meaning,omitempty"`              // grouped-by | is-a | part-of | classified-with
	Compositional          *bool                `json:"compositional,omitempty" bson:"compositional,omitempty"`                     // If code system defines a compositional grammar
	VersionNeeded          *bool                `json:"versionNeeded,omitempty" bson:"version_needed,omitempty"`                    // If definitions are not stable
	Content                string               `json:"content" bson:"content"`                                                     // not-present | example | fragment | complete | supplement
	Supplements            *string              `json:"supplements,omitempty" bson:"supplements,omitempty"`                         // Canonical URL of Code System this adds designations and properties to
	Count                  *int                 `json:"count,omitempty" bson:"count,omitempty"`                                     // Total concepts in the code system
	Filter                 []CodeSystemFilter   `json:"filter,omitempty" bson:"filter,omitempty"`                                   // Filter that can be used in a value set
	Property               []CodeSystemProperty `json:"property,omitempty" bson:"property,omitempty"`                               // Additional information supplied about each concept
	Concept                []CodeSystemConcept  `json:"concept,omitempty" bson:"concept,omitempty"`                                 // Concepts in the code system
}

The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.

func (*CodeSystem) Validate

func (r *CodeSystem) Validate() error

type CodeSystemConcept

type CodeSystemConcept struct {
	Id          *string                        `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code        string                         `json:"code" bson:"code"`                                   // Code that identifies concept
	Display     *string                        `json:"display,omitempty" bson:"display,omitempty"`         // Text to display to the user
	Definition  *string                        `json:"definition,omitempty" bson:"definition,omitempty"`   // Formal definition
	Designation []CodeSystemConceptDesignation `json:"designation,omitempty" bson:"designation,omitempty"` // Additional representations for the concept
	Property    []CodeSystemConceptProperty    `json:"property,omitempty" bson:"property,omitempty"`       // Property value for the concept
	Concept     []CodeSystemConcept            `json:"concept,omitempty" bson:"concept,omitempty"`         // Child Concepts (is-a/contains/categorizes)
}

func (*CodeSystemConcept) Validate

func (r *CodeSystemConcept) Validate() error

type CodeSystemConceptDesignation

type CodeSystemConceptDesignation struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Language      *string  `json:"language,omitempty" bson:"language,omitempty"`            // Human language of the designation
	Use           *Coding  `json:"use,omitempty" bson:"use,omitempty"`                      // Details how this designation would be used
	AdditionalUse []Coding `json:"additionalUse,omitempty" bson:"additional_use,omitempty"` // Additional ways how this designation would be used
	Value         string   `json:"value" bson:"value"`                                      // The text value for this designation
}

func (*CodeSystemConceptDesignation) Validate

func (r *CodeSystemConceptDesignation) Validate() error

type CodeSystemConceptProperty

type CodeSystemConceptProperty struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Code          string   `json:"code" bson:"code"`                     // Reference to CodeSystem.property.code or a FHIR defined concept-property
	ValueCode     *string  `json:"valueCode" bson:"value_code"`          // Value of the property for this concept
	ValueCoding   *Coding  `json:"valueCoding" bson:"value_coding"`      // Value of the property for this concept
	ValueString   *string  `json:"valueString" bson:"value_string"`      // Value of the property for this concept
	ValueInteger  *int     `json:"valueInteger" bson:"value_integer"`    // Value of the property for this concept
	ValueBoolean  *bool    `json:"valueBoolean" bson:"value_boolean"`    // Value of the property for this concept
	ValueDateTime *string  `json:"valueDateTime" bson:"value_date_time"` // Value of the property for this concept
	ValueDecimal  *float64 `json:"valueDecimal" bson:"value_decimal"`    // Value of the property for this concept
}

func (*CodeSystemConceptProperty) Validate

func (r *CodeSystemConceptProperty) Validate() error

type CodeSystemContentMode added in v0.0.3

type CodeSystemContentMode string

CodeSystemContentMode represents codes from http://hl7.org/fhir/ValueSet/codesystem-content-mode

const (
	CodeSystemContentModeNotPresent CodeSystemContentMode = "not-present"
	CodeSystemContentModeExample    CodeSystemContentMode = "example"
	CodeSystemContentModeFragment   CodeSystemContentMode = "fragment"
	CodeSystemContentModeComplete   CodeSystemContentMode = "complete"
	CodeSystemContentModeSupplement CodeSystemContentMode = "supplement"
)

type CodeSystemFilter

type CodeSystemFilter struct {
	Id          *string  `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code        string   `json:"code" bson:"code"`                                   // Code that identifies the filter
	Description *string  `json:"description,omitempty" bson:"description,omitempty"` // How or why the filter is used
	Operator    []string `json:"operator" bson:"operator"`                           // = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | child-of | descendent-leaf | exists
	Value       string   `json:"value" bson:"value"`                                 // What to use for the value
}

func (*CodeSystemFilter) Validate

func (r *CodeSystemFilter) Validate() error

type CodeSystemHierarchyMeaning added in v0.0.3

type CodeSystemHierarchyMeaning string

CodeSystemHierarchyMeaning represents codes from http://hl7.org/fhir/ValueSet/codesystem-hierarchy-meaning

const (
	CodeSystemHierarchyMeaningGroupedBy      CodeSystemHierarchyMeaning = "grouped-by"
	CodeSystemHierarchyMeaningIsA            CodeSystemHierarchyMeaning = "is-a"
	CodeSystemHierarchyMeaningPartOf         CodeSystemHierarchyMeaning = "part-of"
	CodeSystemHierarchyMeaningClassifiedWith CodeSystemHierarchyMeaning = "classified-with"
)

type CodeSystemProperty

type CodeSystemProperty struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code        string  `json:"code" bson:"code"`                                   // Identifies the property on the concepts, and when referred to in operations
	Uri         *string `json:"uri,omitempty" bson:"uri,omitempty"`                 // Formal identifier for the property
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Why the property is defined, and/or what it conveys
	Type        string  `json:"type" bson:"type"`                                   // code | Coding | string | integer | boolean | dateTime | decimal
}

func (*CodeSystemProperty) Validate

func (r *CodeSystemProperty) Validate() error

type CodeableConcept

type CodeableConcept struct {
	Id     *string  `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Coding []Coding `json:"coding,omitempty" bson:"coding,omitempty"` // Code defined by a terminology system
	Text   *string  `json:"text,omitempty" bson:"text,omitempty"`     // Plain text representation of the concept
}

CodeableConcept Type: A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

func (*CodeableConcept) Validate

func (r *CodeableConcept) Validate() error

type CodeableReference

type CodeableReference struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Concept   *CodeableConcept `json:"concept,omitempty" bson:"concept,omitempty"`     // Reference to a concept (by class)
	Reference *Reference       `json:"reference,omitempty" bson:"reference,omitempty"` // Reference to a resource (by instance)
}

CodeableReference Type: A reference to a resource (by instance), or instead, a reference to a concept defined in a terminology or ontology (by class).

func (*CodeableReference) Validate

func (r *CodeableReference) Validate() error

type Coding

type Coding struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	System       *string `json:"system,omitempty" bson:"system,omitempty"`              // Identity of the terminology system
	Version      *string `json:"version,omitempty" bson:"version,omitempty"`            // Version of the system - if relevant
	Code         *string `json:"code,omitempty" bson:"code,omitempty"`                  // Symbol in syntax defined by the system
	Display      *string `json:"display,omitempty" bson:"display,omitempty"`            // Representation defined by the system
	UserSelected *bool   `json:"userSelected,omitempty" bson:"user_selected,omitempty"` // If this coding was chosen directly by the user
}

Coding Type: A reference to a code defined by a terminology system.

func (*Coding) Validate

func (r *Coding) Validate() error

type CollectData

type CollectData struct {
}

The collect-data operation is used to collect the data-of-interest for the given measure. Note that the use of the [X-Provenance header data](provenance.html#header) with data that establishes provenance being submitted/collected **SHOULD** be supported. This provides the capability for associating the provider with the data submitted through the $collect-data transaction. If the X-Provenance header is used it should be consistent with the 'reporter' element in the DEQM Data Exchange MeasureReport Profile.

func (*CollectData) Validate

func (r *CollectData) Validate() error

type ColorCodesOrRGB added in v0.0.3

type ColorCodesOrRGB string

ColorCodesOrRGB represents codes from http://hl7.org/fhir/ValueSet/color-codes

const (
	ColorCodesOrRGBAliceblue            ColorCodesOrRGB = "aliceblue"
	ColorCodesOrRGBAntiquewhite         ColorCodesOrRGB = "antiquewhite"
	ColorCodesOrRGBAqua                 ColorCodesOrRGB = "aqua"
	ColorCodesOrRGBAquamarine           ColorCodesOrRGB = "aquamarine"
	ColorCodesOrRGBAzure                ColorCodesOrRGB = "azure"
	ColorCodesOrRGBBeige                ColorCodesOrRGB = "beige"
	ColorCodesOrRGBBisque               ColorCodesOrRGB = "bisque"
	ColorCodesOrRGBBlack                ColorCodesOrRGB = "black"
	ColorCodesOrRGBBlanchedalmond       ColorCodesOrRGB = "blanchedalmond"
	ColorCodesOrRGBBlue                 ColorCodesOrRGB = "blue"
	ColorCodesOrRGBBlueviolet           ColorCodesOrRGB = "blueviolet"
	ColorCodesOrRGBBrown                ColorCodesOrRGB = "brown"
	ColorCodesOrRGBBurlywood            ColorCodesOrRGB = "burlywood"
	ColorCodesOrRGBCadetblue            ColorCodesOrRGB = "cadetblue"
	ColorCodesOrRGBChartreuse           ColorCodesOrRGB = "chartreuse"
	ColorCodesOrRGBChocolate            ColorCodesOrRGB = "chocolate"
	ColorCodesOrRGBCoral                ColorCodesOrRGB = "coral"
	ColorCodesOrRGBCornflowerblue       ColorCodesOrRGB = "cornflowerblue"
	ColorCodesOrRGBCornsilk             ColorCodesOrRGB = "cornsilk"
	ColorCodesOrRGBCrimson              ColorCodesOrRGB = "crimson"
	ColorCodesOrRGBCyan                 ColorCodesOrRGB = "cyan"
	ColorCodesOrRGBDarkblue             ColorCodesOrRGB = "darkblue"
	ColorCodesOrRGBDarkcyan             ColorCodesOrRGB = "darkcyan"
	ColorCodesOrRGBDarkgoldenrod        ColorCodesOrRGB = "darkgoldenrod"
	ColorCodesOrRGBDarkgray             ColorCodesOrRGB = "darkgray"
	ColorCodesOrRGBDarkgreen            ColorCodesOrRGB = "darkgreen"
	ColorCodesOrRGBDarkgrey             ColorCodesOrRGB = "darkgrey"
	ColorCodesOrRGBDarkkhaki            ColorCodesOrRGB = "darkkhaki"
	ColorCodesOrRGBDarkmagenta          ColorCodesOrRGB = "darkmagenta"
	ColorCodesOrRGBDarkolivegreen       ColorCodesOrRGB = "darkolivegreen"
	ColorCodesOrRGBDarkorange           ColorCodesOrRGB = "darkorange"
	ColorCodesOrRGBDarkorchid           ColorCodesOrRGB = "darkorchid"
	ColorCodesOrRGBDarkred              ColorCodesOrRGB = "darkred"
	ColorCodesOrRGBDarksalmon           ColorCodesOrRGB = "darksalmon"
	ColorCodesOrRGBDarkseagreen         ColorCodesOrRGB = "darkseagreen"
	ColorCodesOrRGBDarkslateblue        ColorCodesOrRGB = "darkslateblue"
	ColorCodesOrRGBDarkslategray        ColorCodesOrRGB = "darkslategray"
	ColorCodesOrRGBDarkslategrey        ColorCodesOrRGB = "darkslategrey"
	ColorCodesOrRGBDarkturquoise        ColorCodesOrRGB = "darkturquoise"
	ColorCodesOrRGBDarkviolet           ColorCodesOrRGB = "darkviolet"
	ColorCodesOrRGBDeeppink             ColorCodesOrRGB = "deeppink"
	ColorCodesOrRGBDeepskyblue          ColorCodesOrRGB = "deepskyblue"
	ColorCodesOrRGBDimgray              ColorCodesOrRGB = "dimgray"
	ColorCodesOrRGBDimgrey              ColorCodesOrRGB = "dimgrey"
	ColorCodesOrRGBDodgerblue           ColorCodesOrRGB = "dodgerblue"
	ColorCodesOrRGBFirebrick            ColorCodesOrRGB = "firebrick"
	ColorCodesOrRGBFloralwhite          ColorCodesOrRGB = "floralwhite"
	ColorCodesOrRGBForestgreen          ColorCodesOrRGB = "forestgreen"
	ColorCodesOrRGBFuchsia              ColorCodesOrRGB = "fuchsia"
	ColorCodesOrRGBGainsboro            ColorCodesOrRGB = "gainsboro"
	ColorCodesOrRGBGhostwhite           ColorCodesOrRGB = "ghostwhite"
	ColorCodesOrRGBGold                 ColorCodesOrRGB = "gold"
	ColorCodesOrRGBGoldenrod            ColorCodesOrRGB = "goldenrod"
	ColorCodesOrRGBGray                 ColorCodesOrRGB = "gray"
	ColorCodesOrRGBGreen                ColorCodesOrRGB = "green"
	ColorCodesOrRGBGreenyellow          ColorCodesOrRGB = "greenyellow"
	ColorCodesOrRGBGrey                 ColorCodesOrRGB = "grey"
	ColorCodesOrRGBHoneydew             ColorCodesOrRGB = "honeydew"
	ColorCodesOrRGBHotpink              ColorCodesOrRGB = "hotpink"
	ColorCodesOrRGBIndianred            ColorCodesOrRGB = "indianred"
	ColorCodesOrRGBIndigo               ColorCodesOrRGB = "indigo"
	ColorCodesOrRGBIvory                ColorCodesOrRGB = "ivory"
	ColorCodesOrRGBKhaki                ColorCodesOrRGB = "khaki"
	ColorCodesOrRGBLavender             ColorCodesOrRGB = "lavender"
	ColorCodesOrRGBLavenderblush        ColorCodesOrRGB = "lavenderblush"
	ColorCodesOrRGBLawngreen            ColorCodesOrRGB = "lawngreen"
	ColorCodesOrRGBLemonchiffon         ColorCodesOrRGB = "lemonchiffon"
	ColorCodesOrRGBLightblue            ColorCodesOrRGB = "lightblue"
	ColorCodesOrRGBLightcoral           ColorCodesOrRGB = "lightcoral"
	ColorCodesOrRGBLightcyan            ColorCodesOrRGB = "lightcyan"
	ColorCodesOrRGBLightgoldenrodyellow ColorCodesOrRGB = "lightgoldenrodyellow"
	ColorCodesOrRGBLightgray            ColorCodesOrRGB = "lightgray"
	ColorCodesOrRGBLightgreen           ColorCodesOrRGB = "lightgreen"
	ColorCodesOrRGBLightgrey            ColorCodesOrRGB = "lightgrey"
	ColorCodesOrRGBLightpink            ColorCodesOrRGB = "lightpink"
	ColorCodesOrRGBLightsalmon          ColorCodesOrRGB = "lightsalmon"
	ColorCodesOrRGBLightseagreen        ColorCodesOrRGB = "lightseagreen"
	ColorCodesOrRGBLightskyblue         ColorCodesOrRGB = "lightskyblue"
	ColorCodesOrRGBLightslategray       ColorCodesOrRGB = "lightslategray"
	ColorCodesOrRGBLightslategrey       ColorCodesOrRGB = "lightslategrey"
	ColorCodesOrRGBLightsteelblue       ColorCodesOrRGB = "lightsteelblue"
	ColorCodesOrRGBLightyellow          ColorCodesOrRGB = "lightyellow"
	ColorCodesOrRGBLime                 ColorCodesOrRGB = "lime"
	ColorCodesOrRGBLimegreen            ColorCodesOrRGB = "limegreen"
	ColorCodesOrRGBLinen                ColorCodesOrRGB = "linen"
	ColorCodesOrRGBMagenta              ColorCodesOrRGB = "magenta"
	ColorCodesOrRGBMaroon               ColorCodesOrRGB = "maroon"
	ColorCodesOrRGBMediumaquamarine     ColorCodesOrRGB = "mediumaquamarine"
	ColorCodesOrRGBMediumblue           ColorCodesOrRGB = "mediumblue"
	ColorCodesOrRGBMediumorchid         ColorCodesOrRGB = "mediumorchid"
	ColorCodesOrRGBMediumpurple         ColorCodesOrRGB = "mediumpurple"
	ColorCodesOrRGBMediumseagreen       ColorCodesOrRGB = "mediumseagreen"
	ColorCodesOrRGBMediumslateblue      ColorCodesOrRGB = "mediumslateblue"
	ColorCodesOrRGBMediumspringgreen    ColorCodesOrRGB = "mediumspringgreen"
	ColorCodesOrRGBMediumturquoise      ColorCodesOrRGB = "mediumturquoise"
	ColorCodesOrRGBMediumvioletred      ColorCodesOrRGB = "mediumvioletred"
	ColorCodesOrRGBMidnightblue         ColorCodesOrRGB = "midnightblue"
	ColorCodesOrRGBMintcream            ColorCodesOrRGB = "mintcream"
	ColorCodesOrRGBMistyrose            ColorCodesOrRGB = "mistyrose"
	ColorCodesOrRGBMoccasin             ColorCodesOrRGB = "moccasin"
	ColorCodesOrRGBNavajowhite          ColorCodesOrRGB = "navajowhite"
	ColorCodesOrRGBNavy                 ColorCodesOrRGB = "navy"
	ColorCodesOrRGBOldlace              ColorCodesOrRGB = "oldlace"
	ColorCodesOrRGBOlive                ColorCodesOrRGB = "olive"
	ColorCodesOrRGBOlivedrab            ColorCodesOrRGB = "olivedrab"
	ColorCodesOrRGBOrange               ColorCodesOrRGB = "orange"
	ColorCodesOrRGBOrangered            ColorCodesOrRGB = "orangered"
	ColorCodesOrRGBOrchid               ColorCodesOrRGB = "orchid"
	ColorCodesOrRGBPalegoldenrod        ColorCodesOrRGB = "palegoldenrod"
	ColorCodesOrRGBPalegreen            ColorCodesOrRGB = "palegreen"
	ColorCodesOrRGBPaleturquoise        ColorCodesOrRGB = "paleturquoise"
	ColorCodesOrRGBPalevioletred        ColorCodesOrRGB = "palevioletred"
	ColorCodesOrRGBPapayawhip           ColorCodesOrRGB = "papayawhip"
	ColorCodesOrRGBPeachpuff            ColorCodesOrRGB = "peachpuff"
	ColorCodesOrRGBPeru                 ColorCodesOrRGB = "peru"
	ColorCodesOrRGBPink                 ColorCodesOrRGB = "pink"
	ColorCodesOrRGBPlum                 ColorCodesOrRGB = "plum"
	ColorCodesOrRGBPowderblue           ColorCodesOrRGB = "powderblue"
	ColorCodesOrRGBPurple               ColorCodesOrRGB = "purple"
	ColorCodesOrRGBRebeccapurple        ColorCodesOrRGB = "rebeccapurple"
	ColorCodesOrRGBRed                  ColorCodesOrRGB = "red"
	ColorCodesOrRGBRosybrown            ColorCodesOrRGB = "rosybrown"
	ColorCodesOrRGBRoyalblue            ColorCodesOrRGB = "royalblue"
	ColorCodesOrRGBSaddlebrown          ColorCodesOrRGB = "saddlebrown"
	ColorCodesOrRGBSalmon               ColorCodesOrRGB = "salmon"
	ColorCodesOrRGBSandybrown           ColorCodesOrRGB = "sandybrown"
	ColorCodesOrRGBSeagreen             ColorCodesOrRGB = "seagreen"
	ColorCodesOrRGBSeashell             ColorCodesOrRGB = "seashell"
	ColorCodesOrRGBSienna               ColorCodesOrRGB = "sienna"
	ColorCodesOrRGBSilver               ColorCodesOrRGB = "silver"
	ColorCodesOrRGBSkyblue              ColorCodesOrRGB = "skyblue"
	ColorCodesOrRGBSlateblue            ColorCodesOrRGB = "slateblue"
	ColorCodesOrRGBSlategray            ColorCodesOrRGB = "slategray"
	ColorCodesOrRGBSlategrey            ColorCodesOrRGB = "slategrey"
	ColorCodesOrRGBSnow                 ColorCodesOrRGB = "snow"
	ColorCodesOrRGBSpringgreen          ColorCodesOrRGB = "springgreen"
	ColorCodesOrRGBSteelblue            ColorCodesOrRGB = "steelblue"
	ColorCodesOrRGBTan                  ColorCodesOrRGB = "tan"
	ColorCodesOrRGBTeal                 ColorCodesOrRGB = "teal"
	ColorCodesOrRGBThistle              ColorCodesOrRGB = "thistle"
	ColorCodesOrRGBTomato               ColorCodesOrRGB = "tomato"
	ColorCodesOrRGBTurquoise            ColorCodesOrRGB = "turquoise"
	ColorCodesOrRGBViolet               ColorCodesOrRGB = "violet"
	ColorCodesOrRGBWheat                ColorCodesOrRGB = "wheat"
	ColorCodesOrRGBWhite                ColorCodesOrRGB = "white"
	ColorCodesOrRGBWhitesmoke           ColorCodesOrRGB = "whitesmoke"
	ColorCodesOrRGBYellow               ColorCodesOrRGB = "yellow"
	ColorCodesOrRGBYellowgreen          ColorCodesOrRGB = "yellowgreen"
)

type Communication

type Communication struct {
	ResourceType  string                 `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                  `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative             `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage      `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier           `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Unique identifier
	BasedOn       []Reference            `json:"basedOn,omitempty" bson:"based_on,omitempty"`             // Request fulfilled by this communication
	PartOf        []Reference            `json:"partOf,omitempty" bson:"part_of,omitempty"`               // Part of referenced event (e.g. Communication, Procedure)
	InResponseTo  []Reference            `json:"inResponseTo,omitempty" bson:"in_response_to,omitempty"`  // Reply to
	Status        string                 `json:"status" bson:"status"`                                    // preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
	StatusReason  *CodeableConcept       `json:"statusReason,omitempty" bson:"status_reason,omitempty"`   // Reason for current status
	Category      []CodeableConcept      `json:"category,omitempty" bson:"category,omitempty"`            // Message category
	Priority      *string                `json:"priority,omitempty" bson:"priority,omitempty"`            // routine | urgent | asap | stat
	Medium        []CodeableConcept      `json:"medium,omitempty" bson:"medium,omitempty"`                // A channel of communication
	Subject       *Reference             `json:"subject,omitempty" bson:"subject,omitempty"`              // Focus of message
	Topic         *CodeableConcept       `json:"topic,omitempty" bson:"topic,omitempty"`                  // Description of the purpose/content
	About         []Reference            `json:"about,omitempty" bson:"about,omitempty"`                  // Resources that pertain to this communication
	Encounter     *Reference             `json:"encounter,omitempty" bson:"encounter,omitempty"`          // The Encounter during which this Communication was created
	Sent          *string                `json:"sent,omitempty" bson:"sent,omitempty"`                    // When sent
	Received      *string                `json:"received,omitempty" bson:"received,omitempty"`            // When received
	Recipient     []Reference            `json:"recipient,omitempty" bson:"recipient,omitempty"`          // Who the information is shared with
	Sender        *Reference             `json:"sender,omitempty" bson:"sender,omitempty"`                // Who shares the information
	Reason        []CodeableReference    `json:"reason,omitempty" bson:"reason,omitempty"`                // Indication for message
	Payload       []CommunicationPayload `json:"payload,omitempty" bson:"payload,omitempty"`              // Message payload
	Note          []Annotation           `json:"note,omitempty" bson:"note,omitempty"`                    // Comments made about the communication
}

A clinical or business level record of information being transmitted or shared; e.g. an alert that was sent to a responsible provider, a public health agency communication to a provider/reporter in response to a case report for a reportable condition.

func (*Communication) Validate

func (r *Communication) Validate() error

type CommunicationPayload

type CommunicationPayload struct {
	Id                     *string          `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	ContentAttachment      *Attachment      `json:"contentAttachment" bson:"content_attachment"`            // Message part content
	ContentReference       *Reference       `json:"contentReference" bson:"content_reference"`              // Message part content
	ContentCodeableConcept *CodeableConcept `json:"contentCodeableConcept" bson:"content_codeable_concept"` // Message part content
}

func (*CommunicationPayload) Validate

func (r *CommunicationPayload) Validate() error

type CommunicationRequest

type CommunicationRequest struct {
	ResourceType        string                        `json:"resourceType" bson:"resource_type"`                                   // Type of resource
	Id                  *string                       `json:"id,omitempty" bson:"id,omitempty"`                                    // Logical id of this artifact
	Meta                *Meta                         `json:"meta,omitempty" bson:"meta,omitempty"`                                // Metadata about the resource
	ImplicitRules       *string                       `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`             // A set of rules under which this content was created
	Language            *string                       `json:"language,omitempty" bson:"language,omitempty"`                        // Language of the resource content
	Text                *Narrative                    `json:"text,omitempty" bson:"text,omitempty"`                                // Text summary of the resource, for human interpretation
	Contained           []json.RawMessage             `json:"contained,omitempty" bson:"contained,omitempty"`                      // Contained, inline Resources
	Identifier          []Identifier                  `json:"identifier,omitempty" bson:"identifier,omitempty"`                    // Unique identifier
	BasedOn             []Reference                   `json:"basedOn,omitempty" bson:"based_on,omitempty"`                         // Fulfills plan or proposal
	Replaces            []Reference                   `json:"replaces,omitempty" bson:"replaces,omitempty"`                        // Request(s) replaced by this request
	GroupIdentifier     *Identifier                   `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"`         // Composite request this is part of
	Status              string                        `json:"status" bson:"status"`                                                // draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
	StatusReason        *CodeableConcept              `json:"statusReason,omitempty" bson:"status_reason,omitempty"`               // Reason for current status
	Intent              string                        `json:"intent" bson:"intent"`                                                // proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
	Category            []CodeableConcept             `json:"category,omitempty" bson:"category,omitempty"`                        // Message category
	Priority            *string                       `json:"priority,omitempty" bson:"priority,omitempty"`                        // routine | urgent | asap | stat
	DoNotPerform        *bool                         `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`              // True if request is prohibiting action
	Medium              []CodeableConcept             `json:"medium,omitempty" bson:"medium,omitempty"`                            // A channel of communication
	Subject             *Reference                    `json:"subject,omitempty" bson:"subject,omitempty"`                          // Focus of message
	About               []Reference                   `json:"about,omitempty" bson:"about,omitempty"`                              // Resources that pertain to this communication request
	Encounter           *Reference                    `json:"encounter,omitempty" bson:"encounter,omitempty"`                      // The Encounter during which this CommunicationRequest was created
	Payload             []CommunicationRequestPayload `json:"payload,omitempty" bson:"payload,omitempty"`                          // Message payload
	OccurrenceDateTime  *string                       `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"`  // When scheduled
	OccurrencePeriod    *Period                       `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`       // When scheduled
	AuthoredOn          *string                       `json:"authoredOn,omitempty" bson:"authored_on,omitempty"`                   // When request transitioned to being actionable
	Requester           *Reference                    `json:"requester,omitempty" bson:"requester,omitempty"`                      // Who asks for the information to be shared
	Recipient           []Reference                   `json:"recipient,omitempty" bson:"recipient,omitempty"`                      // Who to share the information with
	InformationProvider []Reference                   `json:"informationProvider,omitempty" bson:"information_provider,omitempty"` // Who should share the information
	Reason              []CodeableReference           `json:"reason,omitempty" bson:"reason,omitempty"`                            // Why is communication needed?
	Note                []Annotation                  `json:"note,omitempty" bson:"note,omitempty"`                                // Comments made about communication request
}

A request to convey information from a sender to a recipient.

func (*CommunicationRequest) Validate

func (r *CommunicationRequest) Validate() error

type CommunicationRequestPayload

type CommunicationRequestPayload struct {
	Id                     *string          `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	ContentAttachment      *Attachment      `json:"contentAttachment" bson:"content_attachment"`            // Message part content
	ContentReference       *Reference       `json:"contentReference" bson:"content_reference"`              // Message part content
	ContentCodeableConcept *CodeableConcept `json:"contentCodeableConcept" bson:"content_codeable_concept"` // Message part content
}

func (*CommunicationRequestPayload) Validate

func (r *CommunicationRequestPayload) Validate() error

type ComparisonOperationVS added in v0.0.3

type ComparisonOperationVS string

ComparisonOperationVS represents codes from http://hl7.org/fhir/ValueSet/comparison-operation

const (
	ComparisonOperationVSEq  ComparisonOperationVS = "eq"
	ComparisonOperationVSNe  ComparisonOperationVS = "ne"
	ComparisonOperationVSIn  ComparisonOperationVS = "in"
	ComparisonOperationVSNin ComparisonOperationVS = "nin"
	ComparisonOperationVSGt  ComparisonOperationVS = "gt"
	ComparisonOperationVSLt  ComparisonOperationVS = "lt"
	ComparisonOperationVSGe  ComparisonOperationVS = "ge"
	ComparisonOperationVSLe  ComparisonOperationVS = "le"
	ComparisonOperationVSSa  ComparisonOperationVS = "sa"
	ComparisonOperationVSEb  ComparisonOperationVS = "eb"
	ComparisonOperationVSAp  ComparisonOperationVS = "ap"
)

type CompartmentDefinition

type CompartmentDefinition struct {
	ResourceType           string                          `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                         `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                           `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                         `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                      `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage               `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    string                          `json:"url" bson:"url"`                                                             // Canonical identifier for this compartment definition, represented as a URI (globally unique)
	Version                *string                         `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the compartment definition
	VersionAlgorithmString *string                         `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                         `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                          `json:"name" bson:"name"`                                                           // Name for this compartment definition (computer friendly)
	Title                  *string                         `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this compartment definition (human friendly)
	Status                 string                          `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                           `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                         `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                         `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                 `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                         `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the compartment definition
	UseContext             []UsageContext                  `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Purpose                *string                         `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this compartment definition is defined
	Code                   string                          `json:"code" bson:"code"`                                                           // Patient | Encounter | RelatedPerson | Practitioner | Device | EpisodeOfCare
	Search                 bool                            `json:"search" bson:"search"`                                                       // Whether the search syntax is supported
	Resource               []CompartmentDefinitionResource `json:"resource,omitempty" bson:"resource,omitempty"`                               // How a resource is related to the compartment
}

A compartment definition that defines how resources are accessed on a server.

func (*CompartmentDefinition) Validate

func (r *CompartmentDefinition) Validate() error

type CompartmentDefinitionResource

type CompartmentDefinitionResource struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                  // Unique id for inter-element referencing
	Code       string   `json:"code" bson:"code"`                                  // Name of resource type
	Param      []string `json:"param,omitempty" bson:"param,omitempty"`            // Search Parameter Name, or chained parameters
	StartParam *string  `json:"startParam,omitempty" bson:"start_param,omitempty"` // Search Param for interpreting $everything.start
	EndParam   *string  `json:"endParam,omitempty" bson:"end_param,omitempty"`     // Search Param for interpreting $everything.end
}

func (*CompartmentDefinitionResource) Validate

func (r *CompartmentDefinitionResource) Validate() error

type CompartmentType added in v0.0.3

type CompartmentType string

CompartmentType represents codes from http://hl7.org/fhir/ValueSet/compartment-type

const (
	CompartmentTypePatient       CompartmentType = "Patient"
	CompartmentTypeEncounter     CompartmentType = "Encounter"
	CompartmentTypeRelatedPerson CompartmentType = "RelatedPerson"
	CompartmentTypePractitioner  CompartmentType = "Practitioner"
	CompartmentTypeDevice        CompartmentType = "Device"
	CompartmentTypeEpisodeOfCare CompartmentType = "EpisodeOfCare"
)

type Composition

type Composition struct {
	ResourceType  string                   `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                  `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                    `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                  `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                  `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative               `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage        `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Url           *string                  `json:"url,omitempty" bson:"url,omitempty"`                      // Canonical identifier for this Composition, represented as a URI (globally unique)
	Identifier    []Identifier             `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Version-independent identifier for the Composition
	Version       *string                  `json:"version,omitempty" bson:"version,omitempty"`              // An explicitly assigned identifier of a variation of the content in the Composition
	Consent       []Reference              `json:"consent,omitempty" bson:"consent,omitempty"`              // Represents informed consents and medico-legal transactions
	BasedOn       []Reference              `json:"basedOn,omitempty" bson:"based_on,omitempty"`             // Fulfills plan, proposal or order
	Status        string                   `json:"status" bson:"status"`                                    // registered | partial | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | deprecated | unknown
	Type          *CodeableConcept         `json:"type" bson:"type"`                                        // Kind of composition (LOINC if possible)
	Category      []CodeableConcept        `json:"category,omitempty" bson:"category,omitempty"`            // Categorization of Composition
	Subject       []Reference              `json:"subject,omitempty" bson:"subject,omitempty"`              // Who and/or what the composition is about
	Encounter     *Reference               `json:"encounter,omitempty" bson:"encounter,omitempty"`          // Context of the Composition
	Date          string                   `json:"date" bson:"date"`                                        // Composition editing time
	UseContext    []UsageContext           `json:"useContext,omitempty" bson:"use_context,omitempty"`       // The context that the content is intended to support
	Author        []Reference              `json:"author,omitempty" bson:"author,omitempty"`                // Who and/or what authored the composition
	Participant   []CompositionParticipant `json:"participant,omitempty" bson:"participant,omitempty"`      // Identifies supporting entities, including parents, relatives, caregivers, insurance policyholders, guarantors, and others related in some way to the patient
	Name          *string                  `json:"name,omitempty" bson:"name,omitempty"`                    // Name for this Composition (computer friendly)
	Title         *string                  `json:"title,omitempty" bson:"title,omitempty"`                  // Human Readable name/title
	Note          []Annotation             `json:"note,omitempty" bson:"note,omitempty"`                    // For any additional notes
	Attester      []CompositionAttester    `json:"attester,omitempty" bson:"attester,omitempty"`            // Attests to accuracy of composition
	Custodian     *Reference               `json:"custodian,omitempty" bson:"custodian,omitempty"`          // Organization which maintains the composition
	RelatesTo     []CompositionRelatesTo   `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`         // Relationships to other compositions/documents
	Event         []CompositionEvent       `json:"event,omitempty" bson:"event,omitempty"`                  // The clinical service(s) being documented
	Section       []CompositionSection     `json:"section,omitempty" bson:"section,omitempty"`              // Composition is broken into sections
}

A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and has traceability to the author who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).

func (*Composition) Validate

func (r *Composition) Validate() error

type CompositionAttester

type CompositionAttester struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Mode  *CodeableConcept `json:"mode" bson:"mode"`                       // personal | professional | legal | official
	Time  *string          `json:"time,omitempty" bson:"time,omitempty"`   // When the composition was attested
	Party *Reference       `json:"party,omitempty" bson:"party,omitempty"` // Who attested the composition
}

func (*CompositionAttester) Validate

func (r *CompositionAttester) Validate() error

type CompositionEvent

type CompositionEvent struct {
	Id     *string             `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Period *Period             `json:"period,omitempty" bson:"period,omitempty"` // The period covered by the documentation
	Detail []CodeableReference `json:"detail,omitempty" bson:"detail,omitempty"` // The event(s) being documented, as code(s), reference(s), or both
}

func (*CompositionEvent) Validate

func (r *CompositionEvent) Validate() error

type CompositionParticipant

type CompositionParticipant struct {
	Id       *string           `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type     []CodeableConcept `json:"type" bson:"type"`                 // AUT | AUTHEN | CST | LA | RCT | SBJ
	Function []CodeableConcept `json:"function,omitempty" bson:"function,omitempty"`
	Time     *Period           `json:"time,omitempty" bson:"time,omitempty"` // Time period of participation
	Party    *Reference        `json:"party" bson:"party"`                   // Who the participant is
}

func (*CompositionParticipant) Validate

func (r *CompositionParticipant) Validate() error

type CompositionRelatesTo

type CompositionRelatesTo struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type" bson:"type"`                          // documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as | reprint | reprint-of | summarizes
	TargetUri        *string          `json:"targetUri" bson:"target_uri"`               // The artifact that is related to this Composition
	TargetAttachment *Attachment      `json:"targetAttachment" bson:"target_attachment"` // The artifact that is related to this Composition
	TargetCanonical  *string          `json:"targetCanonical" bson:"target_canonical"`   // The artifact that is related to this Composition
	TargetReference  *Reference       `json:"targetReference" bson:"target_reference"`   // The artifact that is related to this Composition
	TargetMarkdown   *string          `json:"targetMarkdown" bson:"target_markdown"`     // The artifact that is related to this Composition
}

func (*CompositionRelatesTo) Validate

func (r *CompositionRelatesTo) Validate() error

type CompositionSection

type CompositionSection struct {
	Id          *string              `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Title       *string              `json:"title,omitempty" bson:"title,omitempty"`              // Label for section (e.g. for ToC)
	Code        *CodeableConcept     `json:"code,omitempty" bson:"code,omitempty"`                // Classification of section (recommended)
	Author      []Reference          `json:"author,omitempty" bson:"author,omitempty"`            // Who and/or what authored the section, when the section is authored by someone other than the composition.author
	Focus       *Reference           `json:"focus,omitempty" bson:"focus,omitempty"`              // Who/what the section is about, when it is not about the subject of composition
	Text        *Narrative           `json:"text,omitempty" bson:"text,omitempty"`                // Text summary of the section, for human interpretation
	Note        []Annotation         `json:"note,omitempty" bson:"note,omitempty"`                // Information about the section contents that is not represented by any of the section entries
	OrderedBy   *CodeableConcept     `json:"orderedBy,omitempty" bson:"ordered_by,omitempty"`     // Order of section entries
	Entry       []Reference          `json:"entry,omitempty" bson:"entry,omitempty"`              // A reference to data that supports this section
	EmptyReason *CodeableConcept     `json:"emptyReason,omitempty" bson:"empty_reason,omitempty"` // Why the section is empty
	Section     []CompositionSection `json:"section,omitempty" bson:"section,omitempty"`          // Nested Section
}

func (*CompositionSection) Validate

func (r *CompositionSection) Validate() error

type CompositionStatus added in v0.0.3

type CompositionStatus string

CompositionStatus represents codes from http://hl7.org/fhir/ValueSet/composition-status

const (
	CompositionStatusRegistered     CompositionStatus = "registered"
	CompositionStatusPartial        CompositionStatus = "partial"
	CompositionStatusPreliminary    CompositionStatus = "preliminary"
	CompositionStatusFinal          CompositionStatus = "final"
	CompositionStatusAmended        CompositionStatus = "amended"
	CompositionStatusCorrected      CompositionStatus = "corrected"
	CompositionStatusAppended       CompositionStatus = "appended"
	CompositionStatusCancelled      CompositionStatus = "cancelled"
	CompositionStatusEnteredInError CompositionStatus = "entered-in-error"
	CompositionStatusDeprecated     CompositionStatus = "deprecated"
	CompositionStatusUnknown        CompositionStatus = "unknown"
)

type ConceptMap

type ConceptMap struct {
	ResourceType           string                          `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                         `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                           `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                         `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                      `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage               `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                         `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this concept map, represented as a URI (globally unique)
	Identifier             []Identifier                    `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the concept map
	Version                *string                         `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the concept map
	VersionAlgorithmString *string                         `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                         `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                         `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this concept map (computer friendly)
	Title                  *string                         `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this concept map (human friendly)
	Status                 string                          `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                           `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                         `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                         `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                 `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                         `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the concept map
	UseContext             []UsageContext                  `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept               `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the concept map (if applicable)
	Purpose                *string                         `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this concept map is defined
	Copyright              *string                         `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                         `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string                         `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the ConceptMap was approved by publisher
	LastReviewDate         *string                         `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the ConceptMap was last reviewed by the publisher
	EffectivePeriod        *Period                         `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the ConceptMap is expected to be used
	Topic                  []CodeableConcept               `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail                 `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the ConceptMap
	Editor                 []ContactDetail                 `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the ConceptMap
	Reviewer               []ContactDetail                 `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the ConceptMap
	Endorser               []ContactDetail                 `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the ConceptMap
	RelatedArtifact        []RelatedArtifact               `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
	Property               []ConceptMapProperty            `json:"property,omitempty" bson:"property,omitempty"`                               // Additional properties of the mapping
	AdditionalAttribute    []ConceptMapAdditionalAttribute `json:"additionalAttribute,omitempty" bson:"additional_attribute,omitempty"`        // Definition of an additional attribute to act as a data source or target
	SourceScopeUri         *string                         `json:"sourceScopeUri,omitempty" bson:"source_scope_uri,omitempty"`                 // The source value set that contains the concepts that are being mapped
	SourceScopeCanonical   *string                         `json:"sourceScopeCanonical,omitempty" bson:"source_scope_canonical,omitempty"`     // The source value set that contains the concepts that are being mapped
	TargetScopeUri         *string                         `json:"targetScopeUri,omitempty" bson:"target_scope_uri,omitempty"`                 // The target value set which provides context for the mappings
	TargetScopeCanonical   *string                         `json:"targetScopeCanonical,omitempty" bson:"target_scope_canonical,omitempty"`     // The target value set which provides context for the mappings
	Group                  []ConceptMapGroup               `json:"group,omitempty" bson:"group,omitempty"`                                     // Same source and target systems
}

A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models.

func (*ConceptMap) Validate

func (r *ConceptMap) Validate() error

type ConceptMapAdditionalAttribute

type ConceptMapAdditionalAttribute struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code        string  `json:"code" bson:"code"`                                   // Identifies this additional attribute through this resource
	Uri         *string `json:"uri,omitempty" bson:"uri,omitempty"`                 // Formal identifier for the data element referred to in this attribute
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Why the additional attribute is defined, and/or what the data element it refers to is
	Type        string  `json:"type" bson:"type"`                                   // code | Coding | string | boolean | Quantity
}

func (*ConceptMapAdditionalAttribute) Validate

func (r *ConceptMapAdditionalAttribute) Validate() error

type ConceptMapAttributeType added in v0.0.3

type ConceptMapAttributeType string

ConceptMapAttributeType represents codes from http://hl7.org/fhir/ValueSet/conceptmap-attribute-type

const (
	ConceptMapAttributeTypeCode     ConceptMapAttributeType = "code"
	ConceptMapAttributeTypeCoding   ConceptMapAttributeType = "Coding"
	ConceptMapAttributeTypeString   ConceptMapAttributeType = "string"
	ConceptMapAttributeTypeBoolean  ConceptMapAttributeType = "boolean"
	ConceptMapAttributeTypeQuantity ConceptMapAttributeType = "Quantity"
)

type ConceptMapGroup

type ConceptMapGroup struct {
	Id       *string                  `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Source   *string                  `json:"source,omitempty" bson:"source,omitempty"`     // Source system where concepts to be mapped are defined
	Target   *string                  `json:"target,omitempty" bson:"target,omitempty"`     // Target system that the concepts are to be mapped to
	Element  []ConceptMapGroupElement `json:"element" bson:"element"`                       // Mappings for a concept from the source set
	Unmapped *ConceptMapGroupUnmapped `json:"unmapped,omitempty" bson:"unmapped,omitempty"` // What to do when there is no mapping target for the source concept and ConceptMap.group.element.noMap is not true
}

func (*ConceptMapGroup) Validate

func (r *ConceptMapGroup) Validate() error

type ConceptMapGroupElement

type ConceptMapGroupElement struct {
	Id       *string                        `json:"id,omitempty" bson:"id,omitempty"`              // Unique id for inter-element referencing
	Code     *string                        `json:"code,omitempty" bson:"code,omitempty"`          // Identifies element being mapped
	Display  *string                        `json:"display,omitempty" bson:"display,omitempty"`    // Display for the code
	ValueSet *string                        `json:"valueSet,omitempty" bson:"value_set,omitempty"` // Identifies the set of concepts being mapped
	NoMap    *bool                          `json:"noMap,omitempty" bson:"no_map,omitempty"`       // No mapping to a target concept for this source concept
	Comment  *string                        `json:"comment,omitempty" bson:"comment,omitempty"`    // Comments related to the mapping of the source element
	Target   []ConceptMapGroupElementTarget `json:"target,omitempty" bson:"target,omitempty"`      // Concept in target system for element
}

func (*ConceptMapGroupElement) Validate

func (r *ConceptMapGroupElement) Validate() error

type ConceptMapGroupElementTarget

type ConceptMapGroupElementTarget struct {
	Id           *string                                 `json:"id,omitempty" bson:"id,omitempty"`                // Unique id for inter-element referencing
	Code         *string                                 `json:"code,omitempty" bson:"code,omitempty"`            // Code that identifies the target element
	Display      *string                                 `json:"display,omitempty" bson:"display,omitempty"`      // Display for the code
	ValueSet     *string                                 `json:"valueSet,omitempty" bson:"value_set,omitempty"`   // Identifies the set of target concepts
	Relationship string                                  `json:"relationship" bson:"relationship"`                // related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to
	Comment      *string                                 `json:"comment,omitempty" bson:"comment,omitempty"`      // Comments related to the mapping to the target element
	Property     []ConceptMapGroupElementTargetProperty  `json:"property,omitempty" bson:"property,omitempty"`    // Property value for the source -> target mapping
	DependsOn    []ConceptMapGroupElementTargetDependsOn `json:"dependsOn,omitempty" bson:"depends_on,omitempty"` // Other properties required for this mapping
	Product      []ConceptMapGroupElementTargetDependsOn `json:"product,omitempty" bson:"product,omitempty"`      // Other data elements that this mapping also produces
}

func (*ConceptMapGroupElementTarget) Validate

func (r *ConceptMapGroupElementTarget) Validate() error

type ConceptMapGroupElementTargetDependsOn

type ConceptMapGroupElementTargetDependsOn struct {
	Id            *string   `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Attribute     string    `json:"attribute" bson:"attribute"`                              // A reference to a mapping attribute defined in ConceptMap.additionalAttribute
	ValueCode     *string   `json:"valueCode,omitempty" bson:"value_code,omitempty"`         // Value of the referenced data element
	ValueCoding   *Coding   `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`     // Value of the referenced data element
	ValueString   *string   `json:"valueString,omitempty" bson:"value_string,omitempty"`     // Value of the referenced data element
	ValueBoolean  *bool     `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`   // Value of the referenced data element
	ValueQuantity *Quantity `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"` // Value of the referenced data element
	ValueSet      *string   `json:"valueSet,omitempty" bson:"value_set,omitempty"`           // The mapping depends on a data element with a value from this value set
}

func (*ConceptMapGroupElementTargetDependsOn) Validate

type ConceptMapGroupElementTargetProperty

type ConceptMapGroupElementTargetProperty struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Code          string   `json:"code" bson:"code"`                     // Reference to ConceptMap.property.code
	ValueCoding   *Coding  `json:"valueCoding" bson:"value_coding"`      // Value of the property for this concept
	ValueString   *string  `json:"valueString" bson:"value_string"`      // Value of the property for this concept
	ValueInteger  *int     `json:"valueInteger" bson:"value_integer"`    // Value of the property for this concept
	ValueBoolean  *bool    `json:"valueBoolean" bson:"value_boolean"`    // Value of the property for this concept
	ValueDateTime *string  `json:"valueDateTime" bson:"value_date_time"` // Value of the property for this concept
	ValueDecimal  *float64 `json:"valueDecimal" bson:"value_decimal"`    // Value of the property for this concept
	ValueCode     *string  `json:"valueCode" bson:"value_code"`          // Value of the property for this concept
}

func (*ConceptMapGroupElementTargetProperty) Validate

type ConceptMapGroupUnmapped

type ConceptMapGroupUnmapped struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Mode         string  `json:"mode" bson:"mode"`                                     // use-source-code | fixed | other-map
	Code         *string `json:"code,omitempty" bson:"code,omitempty"`                 // Fixed code when mode = fixed
	Display      *string `json:"display,omitempty" bson:"display,omitempty"`           // Display for the code
	Comment      *string `json:"comment,omitempty" bson:"comment,omitempty"`           // Comments related to the choice of how to handle unmapped elements
	ValueSet     *string `json:"valueSet,omitempty" bson:"value_set,omitempty"`        // Fixed code set when mode = fixed
	Relationship *string `json:"relationship,omitempty" bson:"relationship,omitempty"` // related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to
	OtherMap     *string `json:"otherMap,omitempty" bson:"other_map,omitempty"`        // canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped
}

func (*ConceptMapGroupUnmapped) Validate

func (r *ConceptMapGroupUnmapped) Validate() error

type ConceptMapGroupUnmappedMode added in v0.0.3

type ConceptMapGroupUnmappedMode string

ConceptMapGroupUnmappedMode represents codes from http://hl7.org/fhir/ValueSet/conceptmap-unmapped-mode

const (
	ConceptMapGroupUnmappedModeUseSourceCode ConceptMapGroupUnmappedMode = "use-source-code"
	ConceptMapGroupUnmappedModeFixed         ConceptMapGroupUnmappedMode = "fixed"
	ConceptMapGroupUnmappedModeOtherMap      ConceptMapGroupUnmappedMode = "other-map"
)

type ConceptMapProperty

type ConceptMapProperty struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code        string  `json:"code" bson:"code"`                                   // Identifies the property on the mappings, and when referred to in the $translate operation
	Uri         *string `json:"uri,omitempty" bson:"uri,omitempty"`                 // Formal identifier for the property
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Why the property is defined, and/or what it conveys
	Type        string  `json:"type" bson:"type"`                                   // Coding | string | integer | boolean | dateTime | decimal | code
	System      *string `json:"system,omitempty" bson:"system,omitempty"`           // The CodeSystem from which code values come
}

func (*ConceptMapProperty) Validate

func (r *ConceptMapProperty) Validate() error

type ConceptMapPropertyType added in v0.0.3

type ConceptMapPropertyType string

ConceptMapPropertyType represents codes from http://hl7.org/fhir/ValueSet/conceptmap-property-type

const (
	ConceptMapPropertyTypeCoding   ConceptMapPropertyType = "Coding"
	ConceptMapPropertyTypeString   ConceptMapPropertyType = "string"
	ConceptMapPropertyTypeInteger  ConceptMapPropertyType = "integer"
	ConceptMapPropertyTypeBoolean  ConceptMapPropertyType = "boolean"
	ConceptMapPropertyTypeDateTime ConceptMapPropertyType = "dateTime"
	ConceptMapPropertyTypeDecimal  ConceptMapPropertyType = "decimal"
	ConceptMapPropertyTypeCode     ConceptMapPropertyType = "code"
)

type ConceptMapRelationship added in v0.0.3

type ConceptMapRelationship string

ConceptMapRelationship represents codes from http://hl7.org/fhir/ValueSet/concept-map-relationship

const (
	ConceptMapRelationshipRelatedTo                  ConceptMapRelationship = "related-to"
	ConceptMapRelationshipEquivalent                 ConceptMapRelationship = "equivalent"
	ConceptMapRelationshipSourceIsNarrowerThanTarget ConceptMapRelationship = "source-is-narrower-than-target"
	ConceptMapRelationshipSourceIsBroaderThanTarget  ConceptMapRelationship = "source-is-broader-than-target"
	ConceptMapRelationshipNotRelatedTo               ConceptMapRelationship = "not-related-to"
)

type Condition

type Condition struct {
	ResourceType       string              `json:"resourceType" bson:"resource_type"`                                 // Type of resource
	Id                 *string             `json:"id,omitempty" bson:"id,omitempty"`                                  // Logical id of this artifact
	Meta               *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                              // Metadata about the resource
	ImplicitRules      *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`           // A set of rules under which this content was created
	Language           *string             `json:"language,omitempty" bson:"language,omitempty"`                      // Language of the resource content
	Text               *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                              // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`                    // Contained, inline Resources
	Identifier         []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`                  // External Ids for this condition
	ClinicalStatus     *CodeableConcept    `json:"clinicalStatus" bson:"clinical_status"`                             // active | recurrence | relapse | inactive | remission | resolved | unknown
	VerificationStatus *CodeableConcept    `json:"verificationStatus,omitempty" bson:"verification_status,omitempty"` // unconfirmed | provisional | differential | confirmed | refuted | entered-in-error
	Category           []CodeableConcept   `json:"category,omitempty" bson:"category,omitempty"`                      // problem-list-item | encounter-diagnosis
	Severity           *CodeableConcept    `json:"severity,omitempty" bson:"severity,omitempty"`                      // Subjective severity of condition
	Code               *CodeableConcept    `json:"code,omitempty" bson:"code,omitempty"`                              // Identification of the condition, problem or diagnosis
	BodySite           []CodeableConcept   `json:"bodySite,omitempty" bson:"body_site,omitempty"`                     // Anatomical location, if relevant
	BodyStructure      *Reference          `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`           // Anatomical body structure
	Subject            *Reference          `json:"subject" bson:"subject"`                                            // Who has the condition?
	Encounter          *Reference          `json:"encounter,omitempty" bson:"encounter,omitempty"`                    // The Encounter during which this Condition was created
	OnsetDateTime      *string             `json:"onsetDateTime,omitempty" bson:"onset_date_time,omitempty"`          // Estimated or actual date,  date-time, or age
	OnsetAge           *Age                `json:"onsetAge,omitempty" bson:"onset_age,omitempty"`                     // Estimated or actual date,  date-time, or age
	OnsetPeriod        *Period             `json:"onsetPeriod,omitempty" bson:"onset_period,omitempty"`               // Estimated or actual date,  date-time, or age
	OnsetRange         *Range              `json:"onsetRange,omitempty" bson:"onset_range,omitempty"`                 // Estimated or actual date,  date-time, or age
	OnsetString        *string             `json:"onsetString,omitempty" bson:"onset_string,omitempty"`               // Estimated or actual date,  date-time, or age
	AbatementDateTime  *string             `json:"abatementDateTime,omitempty" bson:"abatement_date_time,omitempty"`  // When in resolution/remission
	AbatementAge       *Age                `json:"abatementAge,omitempty" bson:"abatement_age,omitempty"`             // When in resolution/remission
	AbatementPeriod    *Period             `json:"abatementPeriod,omitempty" bson:"abatement_period,omitempty"`       // When in resolution/remission
	AbatementRange     *Range              `json:"abatementRange,omitempty" bson:"abatement_range,omitempty"`         // When in resolution/remission
	AbatementString    *string             `json:"abatementString,omitempty" bson:"abatement_string,omitempty"`       // When in resolution/remission
	RecordedDate       *string             `json:"recordedDate,omitempty" bson:"recorded_date,omitempty"`             // Date condition was first recorded
	Recorder           *Reference          `json:"recorder,omitempty" bson:"recorder,omitempty"`                      // Who recorded the condition
	Asserter           *Reference          `json:"asserter,omitempty" bson:"asserter,omitempty"`                      // Person or device that asserts this condition
	Stage              []ConditionStage    `json:"stage,omitempty" bson:"stage,omitempty"`                            // Stage/grade, usually assessed formally
	Evidence           []CodeableReference `json:"evidence,omitempty" bson:"evidence,omitempty"`                      // Supporting evidence for the condition
	Note               []Annotation        `json:"note,omitempty" bson:"note,omitempty"`                              // Additional information about the Condition
}

A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.

func (*Condition) Validate

func (r *Condition) Validate() error

type ConditionStage

type ConditionStage struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Summary    *CodeableConcept `json:"summary,omitempty" bson:"summary,omitempty"`       // Simple summary (disease specific)
	Assessment []Reference      `json:"assessment,omitempty" bson:"assessment,omitempty"` // Formal record of assessment
	Type       *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`             // Kind of staging
}

func (*ConditionStage) Validate

func (r *ConditionStage) Validate() error

type ConditionalDeleteStatus added in v0.0.3

type ConditionalDeleteStatus string

ConditionalDeleteStatus represents codes from http://hl7.org/fhir/ValueSet/conditional-delete-status

const (
	ConditionalDeleteStatusNotSupported ConditionalDeleteStatus = "not-supported"
	ConditionalDeleteStatusSingle       ConditionalDeleteStatus = "single"
	ConditionalDeleteStatusMultiple     ConditionalDeleteStatus = "multiple"
)

type ConditionalReadStatus added in v0.0.3

type ConditionalReadStatus string

ConditionalReadStatus represents codes from http://hl7.org/fhir/ValueSet/conditional-read-status

const (
	ConditionalReadStatusNotSupported  ConditionalReadStatus = "not-supported"
	ConditionalReadStatusModifiedSince ConditionalReadStatus = "modified-since"
	ConditionalReadStatusNotMatch      ConditionalReadStatus = "not-match"
	ConditionalReadStatusFullSupport   ConditionalReadStatus = "full-support"
)

type ConformanceExpectation added in v0.0.3

type ConformanceExpectation string

ConformanceExpectation represents codes from http://hl7.org/fhir/ValueSet/conformance-expectation

const (
	ConformanceExpectationSHALL     ConformanceExpectation = "SHALL"
	ConformanceExpectationSHOULD    ConformanceExpectation = "SHOULD"
	ConformanceExpectationMAY       ConformanceExpectation = "MAY"
	ConformanceExpectationSHOULDNOT ConformanceExpectation = "SHOULD-NOT"
	ConformanceExpectationSHALLNOT  ConformanceExpectation = "SHALL-NOT"
)
type Consent struct {
	ResourceType     string                `json:"resourceType" bson:"resource_type"`                             // Type of resource
	Id               *string               `json:"id,omitempty" bson:"id,omitempty"`                              // Logical id of this artifact
	Meta             *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                          // Metadata about the resource
	ImplicitRules    *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`       // A set of rules under which this content was created
	Language         *string               `json:"language,omitempty" bson:"language,omitempty"`                  // Language of the resource content
	Text             *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                          // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                // Contained, inline Resources
	Identifier       []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`              // Identifier for this record (external references)
	Status           string                `json:"status" bson:"status"`                                          // draft | active | inactive | not-done | entered-in-error | unknown
	Category         []CodeableConcept     `json:"category,omitempty" bson:"category,omitempty"`                  // Classification of the consent statement - for indexing/retrieval
	Subject          *Reference            `json:"subject,omitempty" bson:"subject,omitempty"`                    // Who the consent applies to
	Date             *string               `json:"date,omitempty" bson:"date,omitempty"`                          // Fully executed date of the consent
	Period           *Period               `json:"period,omitempty" bson:"period,omitempty"`                      // Effective period for this Consent
	Grantor          []Reference           `json:"grantor,omitempty" bson:"grantor,omitempty"`                    // Who is granting rights according to the policy and rules
	Grantee          []Reference           `json:"grantee,omitempty" bson:"grantee,omitempty"`                    // Who is agreeing to the policy and rules
	Manager          []Reference           `json:"manager,omitempty" bson:"manager,omitempty"`                    // Consent workflow management
	Controller       []Reference           `json:"controller,omitempty" bson:"controller,omitempty"`              // Consent Enforcer
	SourceAttachment []Attachment          `json:"sourceAttachment,omitempty" bson:"source_attachment,omitempty"` // Source from which this consent is taken
	SourceReference  []Reference           `json:"sourceReference,omitempty" bson:"source_reference,omitempty"`   // Source from which this consent is taken
	RegulatoryBasis  []CodeableConcept     `json:"regulatoryBasis,omitempty" bson:"regulatory_basis,omitempty"`   // Regulations establishing base Consent
	PolicyBasis      *ConsentPolicyBasis   `json:"policyBasis,omitempty" bson:"policy_basis,omitempty"`           // Computable version of the backing policy
	PolicyText       []Reference           `json:"policyText,omitempty" bson:"policy_text,omitempty"`             // Human Readable Policy
	Verification     []ConsentVerification `json:"verification,omitempty" bson:"verification,omitempty"`          // Consent Verified by patient or family
	Decision         *string               `json:"decision,omitempty" bson:"decision,omitempty"`                  // deny | permit
	Provision        []ConsentProvision    `json:"provision,omitempty" bson:"provision,omitempty"`                // Constraints to the base Consent.policyRule/Consent.policy
}

A record of a healthcare consumer’s choices or choices made on their behalf by a third party, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time.

func (*Consent) Validate

func (r *Consent) Validate() error

type ConsentDataMeaning added in v0.0.3

type ConsentDataMeaning string

ConsentDataMeaning represents codes from http://hl7.org/fhir/ValueSet/consent-data-meaning

const (
	ConsentDataMeaningInstance   ConsentDataMeaning = "instance"
	ConsentDataMeaningRelated    ConsentDataMeaning = "related"
	ConsentDataMeaningDependents ConsentDataMeaning = "dependents"
	ConsentDataMeaningAuthoredby ConsentDataMeaning = "authoredby"
)

type ConsentPolicyBasis

type ConsentPolicyBasis struct {
	Id        *string    `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Reference *Reference `json:"reference,omitempty" bson:"reference,omitempty"` // Reference backing policy resource
	Uri       *string    `json:"uri,omitempty" bson:"uri,omitempty"`             // URI to a computable backing policy
}

func (*ConsentPolicyBasis) Validate

func (r *ConsentPolicyBasis) Validate() error

type ConsentProvision

type ConsentProvision struct {
	Id            *string                 `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Period        *Period                 `json:"period,omitempty" bson:"period,omitempty"`                // Timeframe for this provision
	Actor         []ConsentProvisionActor `json:"actor,omitempty" bson:"actor,omitempty"`                  // Who|what controlled by this provision (or group, by role)
	Action        []CodeableConcept       `json:"action,omitempty" bson:"action,omitempty"`                // Actions controlled by this provision
	SecurityLabel []Coding                `json:"securityLabel,omitempty" bson:"security_label,omitempty"` // Security Labels that define affected resources
	Purpose       []Coding                `json:"purpose,omitempty" bson:"purpose,omitempty"`              // Context of activities covered by this provision
	DocumentType  []Coding                `json:"documentType,omitempty" bson:"document_type,omitempty"`   // e.g. Resource Type, Profile, CDA, etc
	ResourceType  []Coding                `json:"resourceType,omitempty" bson:"resource_type,omitempty"`   // e.g. Resource Type, Profile, etc
	Code          []CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                    // e.g. LOINC or SNOMED CT code, etc. in the content
	DataPeriod    *Period                 `json:"dataPeriod,omitempty" bson:"data_period,omitempty"`       // Timeframe for data controlled by this provision
	Data          []ConsentProvisionData  `json:"data,omitempty" bson:"data,omitempty"`                    // Data controlled by this provision
	Expression    *Expression             `json:"expression,omitempty" bson:"expression,omitempty"`        // A computable expression of the consent
	Provision     []ConsentProvision      `json:"provision,omitempty" bson:"provision,omitempty"`          // Nested Exception Provisions
}

func (*ConsentProvision) Validate

func (r *ConsentProvision) Validate() error

type ConsentProvisionActor

type ConsentProvisionActor struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Role      *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`           // How the actor is involved
	Reference *Reference       `json:"reference,omitempty" bson:"reference,omitempty"` // Resource for the actor (or group, by role)
}

func (*ConsentProvisionActor) Validate

func (r *ConsentProvisionActor) Validate() error

type ConsentProvisionData

type ConsentProvisionData struct {
	Id        *string    `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Meaning   string     `json:"meaning" bson:"meaning"`           // instance | related | dependents | authoredby
	Reference *Reference `json:"reference" bson:"reference"`       // The actual data reference
}

func (*ConsentProvisionData) Validate

func (r *ConsentProvisionData) Validate() error

type ConsentProvisionType added in v0.0.3

type ConsentProvisionType string

ConsentProvisionType represents codes from http://hl7.org/fhir/ValueSet/consent-provision-type

const (
	ConsentProvisionTypeDeny   ConsentProvisionType = "deny"
	ConsentProvisionTypePermit ConsentProvisionType = "permit"
)

type ConsentState added in v0.0.3

type ConsentState string

ConsentState represents codes from http://hl7.org/fhir/ValueSet/consent-state-codes

const (
	ConsentStateDraft          ConsentState = "draft"
	ConsentStateActive         ConsentState = "active"
	ConsentStateInactive       ConsentState = "inactive"
	ConsentStateNotDone        ConsentState = "not-done"
	ConsentStateEnteredInError ConsentState = "entered-in-error"
	ConsentStateUnknown        ConsentState = "unknown"
)

type ConsentVerification

type ConsentVerification struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Verified     bool             `json:"verified" bson:"verified"`                              // Has been verified
	Type         *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                  // Business case of verification
	VerifiedBy   *Reference       `json:"verifiedBy,omitempty" bson:"verified_by,omitempty"`     // Person conducting verification
	VerifiedWith *Reference       `json:"verifiedWith,omitempty" bson:"verified_with,omitempty"` // Person who verified
	Date         []string         `json:"date,omitempty" bson:"date,omitempty"`                  // When consent verified
}

func (*ConsentVerification) Validate

func (r *ConsentVerification) Validate() error

type ConstraintSeverity added in v0.0.3

type ConstraintSeverity string

ConstraintSeverity represents codes from http://hl7.org/fhir/ValueSet/constraint-severity

const (
	ConstraintSeverityError   ConstraintSeverity = "error"
	ConstraintSeverityWarning ConstraintSeverity = "warning"
)

type ContactDetail

type ContactDetail struct {
	Id      *string        `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Name    *string        `json:"name,omitempty" bson:"name,omitempty"`       // Name of an individual to contact
	Telecom []ContactPoint `json:"telecom,omitempty" bson:"telecom,omitempty"` // Contact details for individual or organization
}

ContactDetail Type: Specifies contact information for a person or organization.

func (*ContactDetail) Validate

func (r *ContactDetail) Validate() error

type ContactPoint

type ContactPoint struct {
	Id     *string `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	System *string `json:"system,omitempty" bson:"system,omitempty"` // phone | fax | email | pager | url | sms | other
	Value  *string `json:"value,omitempty" bson:"value,omitempty"`   // The actual contact point details
	Use    *string `json:"use,omitempty" bson:"use,omitempty"`       // home | work | temp | old | mobile - purpose of this contact point
	Rank   *int    `json:"rank,omitempty" bson:"rank,omitempty"`     // Specify preferred order of use (1 = highest)
	Period *Period `json:"period,omitempty" bson:"period,omitempty"` // Time period when the contact point was/is in use
}

ContactPoint Type: Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc.

func (*ContactPoint) Validate

func (r *ContactPoint) Validate() error

type ContactPointSystem added in v0.0.3

type ContactPointSystem string

ContactPointSystem represents codes from http://hl7.org/fhir/ValueSet/contact-point-system

const (
	ContactPointSystemPhone ContactPointSystem = "phone"
	ContactPointSystemFax   ContactPointSystem = "fax"
	ContactPointSystemEmail ContactPointSystem = "email"
	ContactPointSystemPager ContactPointSystem = "pager"
	ContactPointSystemUrl   ContactPointSystem = "url"
	ContactPointSystemSms   ContactPointSystem = "sms"
	ContactPointSystemOther ContactPointSystem = "other"
)

type ContactPointUse added in v0.0.3

type ContactPointUse string

ContactPointUse represents codes from http://hl7.org/fhir/ValueSet/contact-point-use

const (
	ContactPointUseHome   ContactPointUse = "home"
	ContactPointUseWork   ContactPointUse = "work"
	ContactPointUseTemp   ContactPointUse = "temp"
	ContactPointUseOld    ContactPointUse = "old"
	ContactPointUseMobile ContactPointUse = "mobile"
)

type Contract

type Contract struct {
	ResourceType             string                     `json:"resourceType" bson:"resource_type"`                                              // Type of resource
	Id                       *string                    `json:"id,omitempty" bson:"id,omitempty"`                                               // Logical id of this artifact
	Meta                     *Meta                      `json:"meta,omitempty" bson:"meta,omitempty"`                                           // Metadata about the resource
	ImplicitRules            *string                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                        // A set of rules under which this content was created
	Language                 *string                    `json:"language,omitempty" bson:"language,omitempty"`                                   // Language of the resource content
	Text                     *Narrative                 `json:"text,omitempty" bson:"text,omitempty"`                                           // Text summary of the resource, for human interpretation
	Contained                []json.RawMessage          `json:"contained,omitempty" bson:"contained,omitempty"`                                 // Contained, inline Resources
	Identifier               []Identifier               `json:"identifier,omitempty" bson:"identifier,omitempty"`                               // Contract number
	Url                      *string                    `json:"url,omitempty" bson:"url,omitempty"`                                             // Basal definition
	Version                  *string                    `json:"version,omitempty" bson:"version,omitempty"`                                     // Business edition
	Status                   *string                    `json:"status,omitempty" bson:"status,omitempty"`                                       // amended | appended | cancelled | disputed | entered-in-error | executable +
	LegalState               *CodeableConcept           `json:"legalState,omitempty" bson:"legal_state,omitempty"`                              // Negotiation status
	InstantiatesCanonical    *Reference                 `json:"instantiatesCanonical,omitempty" bson:"instantiates_canonical,omitempty"`        // Source Contract Definition
	InstantiatesUri          *string                    `json:"instantiatesUri,omitempty" bson:"instantiates_uri,omitempty"`                    // External Contract Definition
	ContentDerivative        *CodeableConcept           `json:"contentDerivative,omitempty" bson:"content_derivative,omitempty"`                // Content derived from the basal information
	Issued                   *string                    `json:"issued,omitempty" bson:"issued,omitempty"`                                       // When this Contract was issued
	Applies                  *Period                    `json:"applies,omitempty" bson:"applies,omitempty"`                                     // Effective time
	ExpirationType           *CodeableConcept           `json:"expirationType,omitempty" bson:"expiration_type,omitempty"`                      // Contract cessation cause
	Subject                  []Reference                `json:"subject,omitempty" bson:"subject,omitempty"`                                     // Contract Target Entity
	Authority                []Reference                `json:"authority,omitempty" bson:"authority,omitempty"`                                 // Authority under which this Contract has standing
	Domain                   []Reference                `json:"domain,omitempty" bson:"domain,omitempty"`                                       // A sphere of control governed by an authoritative jurisdiction, organization, or person
	Site                     []Reference                `json:"site,omitempty" bson:"site,omitempty"`                                           // Specific Location
	Name                     *string                    `json:"name,omitempty" bson:"name,omitempty"`                                           // Computer friendly designation
	Title                    *string                    `json:"title,omitempty" bson:"title,omitempty"`                                         // Human Friendly name
	Subtitle                 *string                    `json:"subtitle,omitempty" bson:"subtitle,omitempty"`                                   // Subordinate Friendly name
	Alias                    []string                   `json:"alias,omitempty" bson:"alias,omitempty"`                                         // Acronym or short name
	Author                   *Reference                 `json:"author,omitempty" bson:"author,omitempty"`                                       // Source of Contract
	Scope                    *CodeableConcept           `json:"scope,omitempty" bson:"scope,omitempty"`                                         // Range of Legal Concerns
	TopicCodeableConcept     *CodeableConcept           `json:"topicCodeableConcept,omitempty" bson:"topic_codeable_concept,omitempty"`         // Focus of contract interest
	TopicReference           *Reference                 `json:"topicReference,omitempty" bson:"topic_reference,omitempty"`                      // Focus of contract interest
	Type                     *CodeableConcept           `json:"type,omitempty" bson:"type,omitempty"`                                           // Legal instrument category
	SubType                  []CodeableConcept          `json:"subType,omitempty" bson:"sub_type,omitempty"`                                    // Subtype within the context of type
	ContentDefinition        *ContractContentDefinition `json:"contentDefinition,omitempty" bson:"content_definition,omitempty"`                // Contract precursor content
	Term                     []ContractTerm             `json:"term,omitempty" bson:"term,omitempty"`                                           // Contract Term List
	SupportingInfo           []Reference                `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`                      // Extra Information
	RelevantHistory          []Reference                `json:"relevantHistory,omitempty" bson:"relevant_history,omitempty"`                    // Key event in Contract History
	Signer                   []ContractSigner           `json:"signer,omitempty" bson:"signer,omitempty"`                                       // Contract Signatory
	Friendly                 []ContractFriendly         `json:"friendly,omitempty" bson:"friendly,omitempty"`                                   // Contract Friendly Language
	Legal                    []ContractLegal            `json:"legal,omitempty" bson:"legal,omitempty"`                                         // Contract Legal Language
	Rule                     []ContractRule             `json:"rule,omitempty" bson:"rule,omitempty"`                                           // Computable Contract Language
	LegallyBindingAttachment *Attachment                `json:"legallyBindingAttachment,omitempty" bson:"legally_binding_attachment,omitempty"` // Binding Contract
	LegallyBindingReference  *Reference                 `json:"legallyBindingReference,omitempty" bson:"legally_binding_reference,omitempty"`   // Binding Contract
}

Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement.

func (*Contract) Validate

func (r *Contract) Validate() error

type ContractContentDefinition

type ContractContentDefinition struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	Type              *CodeableConcept `json:"type" bson:"type"`                                            // Content structure and use
	SubType           *CodeableConcept `json:"subType,omitempty" bson:"sub_type,omitempty"`                 // Detailed Content Type Definition
	Publisher         *Reference       `json:"publisher,omitempty" bson:"publisher,omitempty"`              // Publisher Entity
	PublicationDate   *string          `json:"publicationDate,omitempty" bson:"publication_date,omitempty"` // When published
	PublicationStatus string           `json:"publicationStatus" bson:"publication_status"`                 // amended | appended | cancelled | disputed | entered-in-error | executable +
	Copyright         *string          `json:"copyright,omitempty" bson:"copyright,omitempty"`              // Publication Ownership
}

func (*ContractContentDefinition) Validate

func (r *ContractContentDefinition) Validate() error

type ContractFriendly

type ContractFriendly struct {
	Id                *string     `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	ContentAttachment *Attachment `json:"contentAttachment" bson:"content_attachment"` // Easily comprehended representation of this Contract
	ContentReference  *Reference  `json:"contentReference" bson:"content_reference"`   // Easily comprehended representation of this Contract
}

func (*ContractFriendly) Validate

func (r *ContractFriendly) Validate() error

type ContractLegal

type ContractLegal struct {
	Id                *string     `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	ContentAttachment *Attachment `json:"contentAttachment" bson:"content_attachment"` // Contract Legal Text
	ContentReference  *Reference  `json:"contentReference" bson:"content_reference"`   // Contract Legal Text
}

func (*ContractLegal) Validate

func (r *ContractLegal) Validate() error

type ContractResourcePublicationStatusCodes added in v0.0.3

type ContractResourcePublicationStatusCodes string

ContractResourcePublicationStatusCodes represents codes from http://hl7.org/fhir/ValueSet/contract-publicationstatus

const (
	ContractResourcePublicationStatusCodesAmended        ContractResourcePublicationStatusCodes = "amended"
	ContractResourcePublicationStatusCodesAppended       ContractResourcePublicationStatusCodes = "appended"
	ContractResourcePublicationStatusCodesCancelled      ContractResourcePublicationStatusCodes = "cancelled"
	ContractResourcePublicationStatusCodesDisputed       ContractResourcePublicationStatusCodes = "disputed"
	ContractResourcePublicationStatusCodesEnteredInError ContractResourcePublicationStatusCodes = "entered-in-error"
	ContractResourcePublicationStatusCodesExecutable     ContractResourcePublicationStatusCodes = "executable"
	ContractResourcePublicationStatusCodesExecuted       ContractResourcePublicationStatusCodes = "executed"
	ContractResourcePublicationStatusCodesNegotiable     ContractResourcePublicationStatusCodes = "negotiable"
	ContractResourcePublicationStatusCodesOffered        ContractResourcePublicationStatusCodes = "offered"
	ContractResourcePublicationStatusCodesPolicy         ContractResourcePublicationStatusCodes = "policy"
	ContractResourcePublicationStatusCodesRejected       ContractResourcePublicationStatusCodes = "rejected"
	ContractResourcePublicationStatusCodesRenewed        ContractResourcePublicationStatusCodes = "renewed"
	ContractResourcePublicationStatusCodesRevoked        ContractResourcePublicationStatusCodes = "revoked"
	ContractResourcePublicationStatusCodesResolved       ContractResourcePublicationStatusCodes = "resolved"
	ContractResourcePublicationStatusCodesTerminated     ContractResourcePublicationStatusCodes = "terminated"
)

type ContractResourceStatusCodes added in v0.0.3

type ContractResourceStatusCodes string

ContractResourceStatusCodes represents codes from http://hl7.org/fhir/ValueSet/contract-status

const (
	ContractResourceStatusCodesAmended        ContractResourceStatusCodes = "amended"
	ContractResourceStatusCodesAppended       ContractResourceStatusCodes = "appended"
	ContractResourceStatusCodesCancelled      ContractResourceStatusCodes = "cancelled"
	ContractResourceStatusCodesDisputed       ContractResourceStatusCodes = "disputed"
	ContractResourceStatusCodesEnteredInError ContractResourceStatusCodes = "entered-in-error"
	ContractResourceStatusCodesExecutable     ContractResourceStatusCodes = "executable"
	ContractResourceStatusCodesExecuted       ContractResourceStatusCodes = "executed"
	ContractResourceStatusCodesNegotiable     ContractResourceStatusCodes = "negotiable"
	ContractResourceStatusCodesOffered        ContractResourceStatusCodes = "offered"
	ContractResourceStatusCodesPolicy         ContractResourceStatusCodes = "policy"
	ContractResourceStatusCodesRejected       ContractResourceStatusCodes = "rejected"
	ContractResourceStatusCodesRenewed        ContractResourceStatusCodes = "renewed"
	ContractResourceStatusCodesRevoked        ContractResourceStatusCodes = "revoked"
	ContractResourceStatusCodesResolved       ContractResourceStatusCodes = "resolved"
	ContractResourceStatusCodesTerminated     ContractResourceStatusCodes = "terminated"
)

type ContractRule

type ContractRule struct {
	Id                *string     `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	ContentAttachment *Attachment `json:"contentAttachment" bson:"content_attachment"` // Computable Contract Rules
	ContentReference  *Reference  `json:"contentReference" bson:"content_reference"`   // Computable Contract Rules
}

func (*ContractRule) Validate

func (r *ContractRule) Validate() error

type ContractSigner

type ContractSigner struct {
	Id        *string     `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type      *Coding     `json:"type" bson:"type"`                 // Contract Signatory Role
	Party     *Reference  `json:"party" bson:"party"`               // Contract Signatory Party
	Signature []Signature `json:"signature" bson:"signature"`       // Contract Documentation Signature
}

func (*ContractSigner) Validate

func (r *ContractSigner) Validate() error

type ContractTerm

type ContractTerm struct {
	Id                   *string                     `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Identifier           *Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`                       // Contract Term Number
	Issued               *string                     `json:"issued,omitempty" bson:"issued,omitempty"`                               // Contract Term Issue Date Time
	Applies              *Period                     `json:"applies,omitempty" bson:"applies,omitempty"`                             // Contract Term Effective Time
	TopicCodeableConcept *CodeableConcept            `json:"topicCodeableConcept,omitempty" bson:"topic_codeable_concept,omitempty"` // Term Concern
	TopicReference       *Reference                  `json:"topicReference,omitempty" bson:"topic_reference,omitempty"`              // Term Concern
	Type                 *CodeableConcept            `json:"type,omitempty" bson:"type,omitempty"`                                   // Contract Term Type or Form
	SubType              *CodeableConcept            `json:"subType,omitempty" bson:"sub_type,omitempty"`                            // Contract Term Type specific classification
	Text                 *string                     `json:"text,omitempty" bson:"text,omitempty"`                                   // Term Statement
	SecurityLabel        []ContractTermSecurityLabel `json:"securityLabel,omitempty" bson:"security_label,omitempty"`                // Protection for the Term
	Offer                *ContractTermOffer          `json:"offer" bson:"offer"`                                                     // Context of the Contract term
	Asset                []ContractTermAsset         `json:"asset,omitempty" bson:"asset,omitempty"`                                 // Contract Term Asset List
	Action               []ContractTermAction        `json:"action,omitempty" bson:"action,omitempty"`                               // Entity being ascribed responsibility
	Group                []ContractTerm              `json:"group,omitempty" bson:"group,omitempty"`                                 // Nested Contract Term Group
}

func (*ContractTerm) Validate

func (r *ContractTerm) Validate() error

type ContractTermAction

type ContractTermAction struct {
	Id                  *string                     `json:"id,omitempty" bson:"id,omitempty"`                                     // Unique id for inter-element referencing
	DoNotPerform        *bool                       `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`               // True if the term prohibits the  action
	Type                *CodeableConcept            `json:"type" bson:"type"`                                                     // Type or form of the action
	Subject             []ContractTermActionSubject `json:"subject,omitempty" bson:"subject,omitempty"`                           // Entity of the action
	Intent              *CodeableConcept            `json:"intent" bson:"intent"`                                                 // Purpose for the Contract Term Action
	LinkId              []string                    `json:"linkId,omitempty" bson:"link_id,omitempty"`                            // Pointer to specific item
	Status              *CodeableConcept            `json:"status" bson:"status"`                                                 // State of the action
	Context             *Reference                  `json:"context,omitempty" bson:"context,omitempty"`                           // Episode associated with action
	ContextLinkId       []string                    `json:"contextLinkId,omitempty" bson:"context_link_id,omitempty"`             // Pointer to specific item
	OccurrenceDateTime  *string                     `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"`   // When action happens
	OccurrencePeriod    *Period                     `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`        // When action happens
	OccurrenceTiming    *Timing                     `json:"occurrenceTiming,omitempty" bson:"occurrence_timing,omitempty"`        // When action happens
	Requester           []Reference                 `json:"requester,omitempty" bson:"requester,omitempty"`                       // Who asked for action
	RequesterLinkId     []string                    `json:"requesterLinkId,omitempty" bson:"requester_link_id,omitempty"`         // Pointer to specific item
	PerformerType       []CodeableConcept           `json:"performerType,omitempty" bson:"performer_type,omitempty"`              // Kind of service performer
	PerformerRole       *CodeableConcept            `json:"performerRole,omitempty" bson:"performer_role,omitempty"`              // Competency of the performer
	Performer           *Reference                  `json:"performer,omitempty" bson:"performer,omitempty"`                       // Actor that wil execute (or not) the action
	PerformerLinkId     []string                    `json:"performerLinkId,omitempty" bson:"performer_link_id,omitempty"`         // Pointer to specific item
	Reason              []CodeableReference         `json:"reason,omitempty" bson:"reason,omitempty"`                             // Why is action (not) needed?
	ReasonLinkId        []string                    `json:"reasonLinkId,omitempty" bson:"reason_link_id,omitempty"`               // Pointer to specific item
	Note                []Annotation                `json:"note,omitempty" bson:"note,omitempty"`                                 // Comments about the action
	SecurityLabelNumber []int                       `json:"securityLabelNumber,omitempty" bson:"security_label_number,omitempty"` // Action restriction numbers
}

func (*ContractTermAction) Validate

func (r *ContractTermAction) Validate() error

type ContractTermActionSubject

type ContractTermActionSubject struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Reference []Reference      `json:"reference" bson:"reference"`           // Entity of the action
	Role      *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"` // Role type of the agent
}

func (*ContractTermActionSubject) Validate

func (r *ContractTermActionSubject) Validate() error

type ContractTermAsset

type ContractTermAsset struct {
	Id                  *string                       `json:"id,omitempty" bson:"id,omitempty"`                                     // Unique id for inter-element referencing
	Scope               *CodeableConcept              `json:"scope,omitempty" bson:"scope,omitempty"`                               // Range of asset
	Type                []CodeableConcept             `json:"type,omitempty" bson:"type,omitempty"`                                 // Asset category
	TypeReference       []Reference                   `json:"typeReference,omitempty" bson:"type_reference,omitempty"`              // Associated entities
	Subtype             []CodeableConcept             `json:"subtype,omitempty" bson:"subtype,omitempty"`                           // Asset sub-category
	Relationship        *Coding                       `json:"relationship,omitempty" bson:"relationship,omitempty"`                 // Kinship of the asset
	Context             []ContractTermAssetContext    `json:"context,omitempty" bson:"context,omitempty"`                           // Circumstance of the asset
	Condition           *string                       `json:"condition,omitempty" bson:"condition,omitempty"`                       // Quality desctiption of asset
	PeriodType          []CodeableConcept             `json:"periodType,omitempty" bson:"period_type,omitempty"`                    // Asset availability types
	Period              []Period                      `json:"period,omitempty" bson:"period,omitempty"`                             // Time period of the asset
	UsePeriod           []Period                      `json:"usePeriod,omitempty" bson:"use_period,omitempty"`                      // Time period
	Text                *string                       `json:"text,omitempty" bson:"text,omitempty"`                                 // Asset clause or question text
	LinkId              []string                      `json:"linkId,omitempty" bson:"link_id,omitempty"`                            // Pointer to asset text
	Answer              []ContractTermOfferAnswer     `json:"answer,omitempty" bson:"answer,omitempty"`                             // Response to assets
	SecurityLabelNumber []int                         `json:"securityLabelNumber,omitempty" bson:"security_label_number,omitempty"` // Asset restriction numbers
	ValuedItem          []ContractTermAssetValuedItem `json:"valuedItem,omitempty" bson:"valued_item,omitempty"`                    // Contract Valued Item List
}

func (*ContractTermAsset) Validate

func (r *ContractTermAsset) Validate() error

type ContractTermAssetContext

type ContractTermAssetContext struct {
	Id        *string           `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Reference *Reference        `json:"reference,omitempty" bson:"reference,omitempty"` // Creator,custodian or owner
	Code      []CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`           // Codeable asset context
	Text      *string           `json:"text,omitempty" bson:"text,omitempty"`           // Context description
}

func (*ContractTermAssetContext) Validate

func (r *ContractTermAssetContext) Validate() error

type ContractTermAssetValuedItem

type ContractTermAssetValuedItem struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	EntityCodeableConcept *CodeableConcept `json:"entityCodeableConcept,omitempty" bson:"entity_codeable_concept,omitempty"` // Contract Valued Item Type
	EntityReference       *Reference       `json:"entityReference,omitempty" bson:"entity_reference,omitempty"`              // Contract Valued Item Type
	Identifier            *Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // Contract Valued Item Number
	EffectiveTime         *string          `json:"effectiveTime,omitempty" bson:"effective_time,omitempty"`                  // Contract Valued Item Effective Tiem
	Quantity              *Quantity        `json:"quantity,omitempty" bson:"quantity,omitempty"`                             // Count of Contract Valued Items
	UnitPrice             *Money           `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                          // Contract Valued Item fee, charge, or cost
	Factor                *float64         `json:"factor,omitempty" bson:"factor,omitempty"`                                 // Contract Valued Item Price Scaling Factor
	Points                *float64         `json:"points,omitempty" bson:"points,omitempty"`                                 // Contract Valued Item Difficulty Scaling Factor
	Net                   *Money           `json:"net,omitempty" bson:"net,omitempty"`                                       // Total Contract Valued Item Value
	Payment               *string          `json:"payment,omitempty" bson:"payment,omitempty"`                               // Terms of valuation
	PaymentDate           *string          `json:"paymentDate,omitempty" bson:"payment_date,omitempty"`                      // When payment is due
	Responsible           *Reference       `json:"responsible,omitempty" bson:"responsible,omitempty"`                       // Who will make payment
	Recipient             *Reference       `json:"recipient,omitempty" bson:"recipient,omitempty"`                           // Who will receive payment
	LinkId                []string         `json:"linkId,omitempty" bson:"link_id,omitempty"`                                // Pointer to specific item
	SecurityLabelNumber   []int            `json:"securityLabelNumber,omitempty" bson:"security_label_number,omitempty"`     // Security Labels that define affected terms
}

func (*ContractTermAssetValuedItem) Validate

func (r *ContractTermAssetValuedItem) Validate() error

type ContractTermOffer

type ContractTermOffer struct {
	Id                  *string                   `json:"id,omitempty" bson:"id,omitempty"`                                     // Unique id for inter-element referencing
	Identifier          []Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                     // Offer business ID
	Party               []ContractTermOfferParty  `json:"party,omitempty" bson:"party,omitempty"`                               // Offer Recipient
	Topic               *Reference                `json:"topic,omitempty" bson:"topic,omitempty"`                               // Negotiable offer asset
	Type                *CodeableConcept          `json:"type,omitempty" bson:"type,omitempty"`                                 // Contract Offer Type or Form
	Decision            *CodeableConcept          `json:"decision,omitempty" bson:"decision,omitempty"`                         // Accepting party choice
	DecisionMode        []CodeableConcept         `json:"decisionMode,omitempty" bson:"decision_mode,omitempty"`                // How decision is conveyed
	Answer              []ContractTermOfferAnswer `json:"answer,omitempty" bson:"answer,omitempty"`                             // Response to offer text
	Text                *string                   `json:"text,omitempty" bson:"text,omitempty"`                                 // Human readable offer text
	LinkId              []string                  `json:"linkId,omitempty" bson:"link_id,omitempty"`                            // Pointer to text
	SecurityLabelNumber []int                     `json:"securityLabelNumber,omitempty" bson:"security_label_number,omitempty"` // Offer restriction numbers
}

func (*ContractTermOffer) Validate

func (r *ContractTermOffer) Validate() error

type ContractTermOfferAnswer

type ContractTermOfferAnswer struct {
	Id              *string     `json:"id,omitempty" bson:"id,omitempty"`        // Unique id for inter-element referencing
	ValueBoolean    *bool       `json:"valueBoolean" bson:"value_boolean"`       // The actual answer response
	ValueDecimal    *float64    `json:"valueDecimal" bson:"value_decimal"`       // The actual answer response
	ValueInteger    *int        `json:"valueInteger" bson:"value_integer"`       // The actual answer response
	ValueDate       *string     `json:"valueDate" bson:"value_date"`             // The actual answer response
	ValueDateTime   *string     `json:"valueDateTime" bson:"value_date_time"`    // The actual answer response
	ValueTime       *string     `json:"valueTime" bson:"value_time"`             // The actual answer response
	ValueString     *string     `json:"valueString" bson:"value_string"`         // The actual answer response
	ValueUri        *string     `json:"valueUri" bson:"value_uri"`               // The actual answer response
	ValueAttachment *Attachment `json:"valueAttachment" bson:"value_attachment"` // The actual answer response
	ValueCoding     *Coding     `json:"valueCoding" bson:"value_coding"`         // The actual answer response
	ValueQuantity   *Quantity   `json:"valueQuantity" bson:"value_quantity"`     // The actual answer response
	ValueReference  *Reference  `json:"valueReference" bson:"value_reference"`   // The actual answer response
}

func (*ContractTermOfferAnswer) Validate

func (r *ContractTermOfferAnswer) Validate() error

type ContractTermOfferParty

type ContractTermOfferParty struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Reference []Reference      `json:"reference" bson:"reference"`       // Referenced entity
	Role      *CodeableConcept `json:"role" bson:"role"`                 // Participant engagement type
}

func (*ContractTermOfferParty) Validate

func (r *ContractTermOfferParty) Validate() error

type ContractTermSecurityLabel

type ContractTermSecurityLabel struct {
	Id             *string  `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Number         []int    `json:"number,omitempty" bson:"number,omitempty"`     // Link to Security Labels
	Classification *Coding  `json:"classification" bson:"classification"`         // Confidentiality Protection
	Category       []Coding `json:"category,omitempty" bson:"category,omitempty"` // Applicable Policy
	Control        []Coding `json:"control,omitempty" bson:"control,omitempty"`   // Handling Instructions
}

func (*ContractTermSecurityLabel) Validate

func (r *ContractTermSecurityLabel) Validate() error

type Convert

type Convert struct {
}

This operation takes a resource in one form, and returns to in another form. Both the 'resource' and 'return' parameters are a single resource. The primary use of this operation is to convert between formats (e.g. (XML -> JSON or vice versa)

func (*Convert) Validate

func (r *Convert) Validate() error

type Count

type Count struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Value      *float64 `json:"value,omitempty" bson:"value,omitempty"`           // Numerical value (with implicit precision)
	Comparator *string  `json:"comparator,omitempty" bson:"comparator,omitempty"` // < | <= | >= | > | ad - how to understand the value
	Unit       *string  `json:"unit,omitempty" bson:"unit,omitempty"`             // Unit representation
	System     *string  `json:"system,omitempty" bson:"system,omitempty"`         // System that defines coded unit form
	Code       *string  `json:"code,omitempty" bson:"code,omitempty"`             // Coded form of the unit
}

Count Type: A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.

func (*Count) Validate

func (r *Count) Validate() error

type CoverageEligibilityRequest

type CoverageEligibilityRequest struct {
	ResourceType   string                                     `json:"resourceType" bson:"resource_type"`                         // Type of resource
	Id             *string                                    `json:"id,omitempty" bson:"id,omitempty"`                          // Logical id of this artifact
	Meta           *Meta                                      `json:"meta,omitempty" bson:"meta,omitempty"`                      // Metadata about the resource
	ImplicitRules  *string                                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`   // A set of rules under which this content was created
	Language       *string                                    `json:"language,omitempty" bson:"language,omitempty"`              // Language of the resource content
	Text           *Narrative                                 `json:"text,omitempty" bson:"text,omitempty"`                      // Text summary of the resource, for human interpretation
	Contained      []json.RawMessage                          `json:"contained,omitempty" bson:"contained,omitempty"`            // Contained, inline Resources
	Identifier     []Identifier                               `json:"identifier,omitempty" bson:"identifier,omitempty"`          // Business Identifier for coverage eligiblity request
	Status         string                                     `json:"status" bson:"status"`                                      // active | cancelled | draft | entered-in-error
	StatusReason   *string                                    `json:"statusReason,omitempty" bson:"status_reason,omitempty"`     // Reason for status change
	Priority       *CodeableConcept                           `json:"priority,omitempty" bson:"priority,omitempty"`              // Desired processing priority
	Purpose        []string                                   `json:"purpose" bson:"purpose"`                                    // auth-requirements | benefits | discovery | validation
	Patient        *Reference                                 `json:"patient" bson:"patient"`                                    // Intended recipient of products and services
	Event          []CoverageEligibilityRequestEvent          `json:"event,omitempty" bson:"event,omitempty"`                    // Event information
	ServicedDate   *string                                    `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`     // Estimated date or dates of service
	ServicedPeriod *Period                                    `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"` // Estimated date or dates of service
	Created        string                                     `json:"created" bson:"created"`                                    // Creation date
	Enterer        *Reference                                 `json:"enterer,omitempty" bson:"enterer,omitempty"`                // Author
	Provider       *Reference                                 `json:"provider,omitempty" bson:"provider,omitempty"`              // Party responsible for the request
	Insurer        *Reference                                 `json:"insurer" bson:"insurer"`                                    // Coverage issuer
	Facility       *Reference                                 `json:"facility,omitempty" bson:"facility,omitempty"`              // Servicing facility
	SupportingInfo []CoverageEligibilityRequestSupportingInfo `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"` // Supporting information
	Insurance      []CoverageEligibilityRequestInsurance      `json:"insurance,omitempty" bson:"insurance,omitempty"`            // Patient insurance information
	Item           []CoverageEligibilityRequestItem           `json:"item,omitempty" bson:"item,omitempty"`                      // Item to be evaluated for eligibiity
}

The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy.

func (*CoverageEligibilityRequest) Validate

func (r *CoverageEligibilityRequest) Validate() error

type CoverageEligibilityRequestEvent

type CoverageEligibilityRequestEvent struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Type         *CodeableConcept `json:"type" bson:"type"`                   // Specific event
	WhenDateTime *string          `json:"whenDateTime" bson:"when_date_time"` // Occurance date or period
	WhenPeriod   *Period          `json:"whenPeriod" bson:"when_period"`      // Occurance date or period
}

func (*CoverageEligibilityRequestEvent) Validate

func (r *CoverageEligibilityRequestEvent) Validate() error

type CoverageEligibilityRequestInsurance

type CoverageEligibilityRequestInsurance struct {
	Id                  *string    `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Focal               *bool      `json:"focal,omitempty" bson:"focal,omitempty"`                              // Applicable coverage
	Coverage            *Reference `json:"coverage" bson:"coverage"`                                            // Insurance information
	BusinessArrangement *string    `json:"businessArrangement,omitempty" bson:"business_arrangement,omitempty"` // Additional provider contract number
}

func (*CoverageEligibilityRequestInsurance) Validate

type CoverageEligibilityRequestItem

type CoverageEligibilityRequestItem struct {
	Id                     *string                                   `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	SupportingInfoSequence []int                                     `json:"supportingInfoSequence,omitempty" bson:"supporting_info_sequence,omitempty"` // Applicable exception or supporting information
	Category               *CodeableConcept                          `json:"category,omitempty" bson:"category,omitempty"`                               // Benefit classification
	ProductOrService       *CodeableConcept                          `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`             // Billing, service, product, or drug code
	Modifier               []CodeableConcept                         `json:"modifier,omitempty" bson:"modifier,omitempty"`                               // Product or service billing modifiers
	Provider               *Reference                                `json:"provider,omitempty" bson:"provider,omitempty"`                               // Perfoming practitioner
	Quantity               *Quantity                                 `json:"quantity,omitempty" bson:"quantity,omitempty"`                               // Count of products or services
	UnitPrice              *Money                                    `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                            // Fee, charge or cost per item
	Facility               *Reference                                `json:"facility,omitempty" bson:"facility,omitempty"`                               // Servicing facility
	Diagnosis              []CoverageEligibilityRequestItemDiagnosis `json:"diagnosis,omitempty" bson:"diagnosis,omitempty"`                             // Applicable diagnosis
	Detail                 []Reference                               `json:"detail,omitempty" bson:"detail,omitempty"`                                   // Product or service details
}

func (*CoverageEligibilityRequestItem) Validate

func (r *CoverageEligibilityRequestItem) Validate() error

type CoverageEligibilityRequestItemDiagnosis

type CoverageEligibilityRequestItemDiagnosis struct {
	Id                       *string          `json:"id,omitempty" bson:"id,omitempty"`                                               // Unique id for inter-element referencing
	DiagnosisCodeableConcept *CodeableConcept `json:"diagnosisCodeableConcept,omitempty" bson:"diagnosis_codeable_concept,omitempty"` // Nature of illness or problem
	DiagnosisReference       *Reference       `json:"diagnosisReference,omitempty" bson:"diagnosis_reference,omitempty"`              // Nature of illness or problem
}

func (*CoverageEligibilityRequestItemDiagnosis) Validate

type CoverageEligibilityRequestSupportingInfo

type CoverageEligibilityRequestSupportingInfo struct {
	Id           *string    `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Sequence     int        `json:"sequence" bson:"sequence"`                               // Information instance identifier
	Information  *Reference `json:"information" bson:"information"`                         // Data to be provided
	AppliesToAll *bool      `json:"appliesToAll,omitempty" bson:"applies_to_all,omitempty"` // Applies to all items
}

func (*CoverageEligibilityRequestSupportingInfo) Validate

type CoverageEligibilityResponse

type CoverageEligibilityResponse struct {
	ResourceType   string                                 `json:"resourceType" bson:"resource_type"`                         // Type of resource
	Id             *string                                `json:"id,omitempty" bson:"id,omitempty"`                          // Logical id of this artifact
	Meta           *Meta                                  `json:"meta,omitempty" bson:"meta,omitempty"`                      // Metadata about the resource
	ImplicitRules  *string                                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`   // A set of rules under which this content was created
	Language       *string                                `json:"language,omitempty" bson:"language,omitempty"`              // Language of the resource content
	Text           *Narrative                             `json:"text,omitempty" bson:"text,omitempty"`                      // Text summary of the resource, for human interpretation
	Contained      []json.RawMessage                      `json:"contained,omitempty" bson:"contained,omitempty"`            // Contained, inline Resources
	Identifier     []Identifier                           `json:"identifier,omitempty" bson:"identifier,omitempty"`          // Business Identifier for coverage eligiblity request
	Status         string                                 `json:"status" bson:"status"`                                      // active | cancelled | draft | entered-in-error
	StatusReason   *string                                `json:"statusReason,omitempty" bson:"status_reason,omitempty"`     // Reason for status change
	Purpose        []string                               `json:"purpose" bson:"purpose"`                                    // auth-requirements | benefits | discovery | validation
	Patient        *Reference                             `json:"patient" bson:"patient"`                                    // Intended recipient of products and services
	Event          []CoverageEligibilityResponseEvent     `json:"event,omitempty" bson:"event,omitempty"`                    // Event information
	ServicedDate   *string                                `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`     // Estimated date or dates of service
	ServicedPeriod *Period                                `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"` // Estimated date or dates of service
	Created        string                                 `json:"created" bson:"created"`                                    // Response creation date
	Requestor      *Reference                             `json:"requestor,omitempty" bson:"requestor,omitempty"`            // Party responsible for the request
	Request        *Reference                             `json:"request,omitempty" bson:"request,omitempty"`                // Eligibility request reference
	Outcome        string                                 `json:"outcome" bson:"outcome"`                                    // queued | complete | error | partial
	Disposition    *string                                `json:"disposition,omitempty" bson:"disposition,omitempty"`        // Disposition Message
	Insurer        *Reference                             `json:"insurer" bson:"insurer"`                                    // Coverage issuer
	Insurance      []CoverageEligibilityResponseInsurance `json:"insurance,omitempty" bson:"insurance,omitempty"`            // Patient insurance information
	PreAuthRef     *string                                `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"`        // Preauthorization reference
	Form           *CodeableConcept                       `json:"form,omitempty" bson:"form,omitempty"`                      // Printed form identifier
	Error          []CoverageEligibilityResponseError     `json:"error,omitempty" bson:"error,omitempty"`                    // Processing errors
}

This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource.

func (*CoverageEligibilityResponse) Validate

func (r *CoverageEligibilityResponse) Validate() error

type CoverageEligibilityResponseError

type CoverageEligibilityResponseError struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Code       *CodeableConcept `json:"code" bson:"code"`                                 // Error code detailing processing issues
	Expression []string         `json:"expression,omitempty" bson:"expression,omitempty"` // FHIRPath of element(s) related to issue
}

func (*CoverageEligibilityResponseError) Validate

type CoverageEligibilityResponseEvent

type CoverageEligibilityResponseEvent struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Type         *CodeableConcept `json:"type" bson:"type"`                   // Specific event
	WhenDateTime *string          `json:"whenDateTime" bson:"when_date_time"` // Occurance date or period
	WhenPeriod   *Period          `json:"whenPeriod" bson:"when_period"`      // Occurance date or period
}

func (*CoverageEligibilityResponseEvent) Validate

type CoverageEligibilityResponseInsurance

type CoverageEligibilityResponseInsurance struct {
	Id            *string                                    `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Coverage      *Reference                                 `json:"coverage" bson:"coverage"`                                // Insurance information
	Inforce       *bool                                      `json:"inforce,omitempty" bson:"inforce,omitempty"`              // Coverage inforce indicator
	BenefitPeriod *Period                                    `json:"benefitPeriod,omitempty" bson:"benefit_period,omitempty"` // When the benefits are applicable
	Item          []CoverageEligibilityResponseInsuranceItem `json:"item,omitempty" bson:"item,omitempty"`                    // Benefits and authorization details
}

func (*CoverageEligibilityResponseInsurance) Validate

type CoverageEligibilityResponseInsuranceItem

type CoverageEligibilityResponseInsuranceItem struct {
	Id                      *string                                           `json:"id,omitempty" bson:"id,omitempty"`                                            // Unique id for inter-element referencing
	Category                *CodeableConcept                                  `json:"category,omitempty" bson:"category,omitempty"`                                // Benefit classification
	ProductOrService        *CodeableConcept                                  `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`              // Billing, service, product, or drug code
	Modifier                []CodeableConcept                                 `json:"modifier,omitempty" bson:"modifier,omitempty"`                                // Product or service billing modifiers
	Provider                *Reference                                        `json:"provider,omitempty" bson:"provider,omitempty"`                                // Performing practitioner
	Excluded                *bool                                             `json:"excluded,omitempty" bson:"excluded,omitempty"`                                // Excluded from the plan
	Name                    *string                                           `json:"name,omitempty" bson:"name,omitempty"`                                        // Short name for the benefit
	Description             *string                                           `json:"description,omitempty" bson:"description,omitempty"`                          // Description of the benefit or services covered
	Network                 *CodeableConcept                                  `json:"network,omitempty" bson:"network,omitempty"`                                  // In or out of network
	Unit                    *CodeableConcept                                  `json:"unit,omitempty" bson:"unit,omitempty"`                                        // Individual or family
	Term                    *CodeableConcept                                  `json:"term,omitempty" bson:"term,omitempty"`                                        // Annual or lifetime
	Benefit                 []CoverageEligibilityResponseInsuranceItemBenefit `json:"benefit,omitempty" bson:"benefit,omitempty"`                                  // Benefit Summary
	AuthorizationRequired   *bool                                             `json:"authorizationRequired,omitempty" bson:"authorization_required,omitempty"`     // Authorization required flag
	AuthorizationSupporting []CodeableConcept                                 `json:"authorizationSupporting,omitempty" bson:"authorization_supporting,omitempty"` // Type of required supporting materials
	AuthorizationUrl        *string                                           `json:"authorizationUrl,omitempty" bson:"authorization_url,omitempty"`               // Preauthorization requirements endpoint
}

func (*CoverageEligibilityResponseInsuranceItem) Validate

type CoverageEligibilityResponseInsuranceItemBenefit

type CoverageEligibilityResponseInsuranceItemBenefit struct {
	Id                 *string          `json:"id,omitempty" bson:"id,omitempty"`                                   // Unique id for inter-element referencing
	Type               *CodeableConcept `json:"type" bson:"type"`                                                   // Benefit classification
	AllowedUnsignedInt *int             `json:"allowedUnsignedInt,omitempty" bson:"allowed_unsigned_int,omitempty"` // Benefits allowed
	AllowedString      *string          `json:"allowedString,omitempty" bson:"allowed_string,omitempty"`            // Benefits allowed
	AllowedMoney       *Money           `json:"allowedMoney,omitempty" bson:"allowed_money,omitempty"`              // Benefits allowed
	UsedUnsignedInt    *int             `json:"usedUnsignedInt,omitempty" bson:"used_unsigned_int,omitempty"`       // Benefits used
	UsedString         *string          `json:"usedString,omitempty" bson:"used_string,omitempty"`                  // Benefits used
	UsedMoney          *Money           `json:"usedMoney,omitempty" bson:"used_money,omitempty"`                    // Benefits used
}

func (*CoverageEligibilityResponseInsuranceItemBenefit) Validate

type CriteriaNotExistsBehavior added in v0.0.3

type CriteriaNotExistsBehavior string

CriteriaNotExistsBehavior represents codes from http://hl7.org/fhir/ValueSet/subscriptiontopic-cr-behavior

const (
	CriteriaNotExistsBehaviorTestPasses CriteriaNotExistsBehavior = "test-passes"
	CriteriaNotExistsBehaviorTestFails  CriteriaNotExistsBehavior = "test-fails"
)

type CurrentCanonical

type CurrentCanonical struct {
}

Returns the most current version of the canonical resource with the specified url available on the server. It optionally also allows filtering to only expose the most current version with a particular status or set of statuses. Note that 'current' is determined by comparing version values using the specified versionAlgorithm, NOT by looking at lastUpdated.

func (*CurrentCanonical) Validate

func (r *CurrentCanonical) Validate() error

type DataRequirement

type DataRequirement struct {
	Id                     *string                      `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	Type                   string                       `json:"type" bson:"type"`                                                           // The type of the required data
	Profile                []string                     `json:"profile,omitempty" bson:"profile,omitempty"`                                 // The profile of the required data
	SubjectCodeableConcept *CodeableConcept             `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"` // E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
	SubjectReference       *Reference                   `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`              // E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
	MustSupport            []string                     `json:"mustSupport,omitempty" bson:"must_support,omitempty"`                        // Indicates specific structure elements that are referenced by the knowledge module
	CodeFilter             []DataRequirementCodeFilter  `json:"codeFilter,omitempty" bson:"code_filter,omitempty"`                          // What codes are expected
	DateFilter             []DataRequirementDateFilter  `json:"dateFilter,omitempty" bson:"date_filter,omitempty"`                          // What dates/date ranges are expected
	ValueFilter            []DataRequirementValueFilter `json:"valueFilter,omitempty" bson:"value_filter,omitempty"`                        // What values are expected
	Limit                  *int                         `json:"limit,omitempty" bson:"limit,omitempty"`                                     // Number of results
	Sort                   []DataRequirementSort        `json:"sort,omitempty" bson:"sort,omitempty"`                                       // Order of the results
}

DataRequirement Type: Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.

func (*DataRequirement) Validate

func (r *DataRequirement) Validate() error

type DataRequirementCodeFilter

type DataRequirementCodeFilter struct {
	Id          *string  `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Path        *string  `json:"path,omitempty" bson:"path,omitempty"`                // A code-valued attribute to filter on
	SearchParam *string  `json:"searchParam,omitempty" bson:"search_param,omitempty"` // A coded (token) parameter to search on
	ValueSet    *string  `json:"valueSet,omitempty" bson:"value_set,omitempty"`       // ValueSet for the filter
	Code        []Coding `json:"code,omitempty" bson:"code,omitempty"`                // What code is expected
}

func (*DataRequirementCodeFilter) Validate

func (r *DataRequirementCodeFilter) Validate() error

type DataRequirementDateFilter

type DataRequirementDateFilter struct {
	Id            *string   `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Path          *string   `json:"path,omitempty" bson:"path,omitempty"`                     // A date-valued attribute to filter on
	SearchParam   *string   `json:"searchParam,omitempty" bson:"search_param,omitempty"`      // A date valued parameter to search on
	ValueDateTime *string   `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"` // The value of the filter, as a Period, DateTime, or Duration value
	ValuePeriod   *Period   `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`      // The value of the filter, as a Period, DateTime, or Duration value
	ValueDuration *Duration `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`  // The value of the filter, as a Period, DateTime, or Duration value
}

func (*DataRequirementDateFilter) Validate

func (r *DataRequirementDateFilter) Validate() error

type DataRequirementSort

type DataRequirementSort struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Path      string  `json:"path" bson:"path"`                 // The name of the attribute to perform the sort
	Direction string  `json:"direction" bson:"direction"`       // ascending | descending
}

func (*DataRequirementSort) Validate

func (r *DataRequirementSort) Validate() error

type DataRequirementValueFilter

type DataRequirementValueFilter struct {
	Id            *string   `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Path          *string   `json:"path,omitempty" bson:"path,omitempty"`                     // An attribute to filter on
	SearchParam   *string   `json:"searchParam,omitempty" bson:"search_param,omitempty"`      // A parameter to search on
	Comparator    *string   `json:"comparator,omitempty" bson:"comparator,omitempty"`         // eq | gt | lt | ge | le | sa | eb
	ValueDateTime *string   `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"` // The value of the filter, as a Period, DateTime, or Duration value
	ValuePeriod   *Period   `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`      // The value of the filter, as a Period, DateTime, or Duration value
	ValueDuration *Duration `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`  // The value of the filter, as a Period, DateTime, or Duration value
}

func (*DataRequirementValueFilter) Validate

func (r *DataRequirementValueFilter) Validate() error

type DataRequirements

type DataRequirements struct {
}

The data-requirements operation aggregates and returns the parameters and data requirements for the plan definition and all its dependencies as a single module definition library

func (*DataRequirements) Validate

func (r *DataRequirements) Validate() error

type DataType

type DataType struct {
	Id *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
}

DataType Type: The base class for all re-useable types defined as part of the FHIR Specification.

func (*DataType) Validate

func (r *DataType) Validate() error

type DaysOfWeek added in v0.0.3

type DaysOfWeek string

DaysOfWeek represents codes from http://hl7.org/fhir/ValueSet/days-of-week

const (
	DaysOfWeekMon DaysOfWeek = "mon"
	DaysOfWeekTue DaysOfWeek = "tue"
	DaysOfWeekWed DaysOfWeek = "wed"
	DaysOfWeekThu DaysOfWeek = "thu"
	DaysOfWeekFri DaysOfWeek = "fri"
	DaysOfWeekSat DaysOfWeek = "sat"
	DaysOfWeekSun DaysOfWeek = "sun"
)

type DetectedIssue

type DetectedIssue struct {
	ResourceType       string                    `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                   `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                     `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                   `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                   `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative                `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage         `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier         []Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Business identifier for detected issue
	Status             string                    `json:"status" bson:"status"`                                               // preliminary | final | entered-in-error | unknown | mitigated | processing-error
	Category           []CodeableConcept         `json:"category,omitempty" bson:"category,omitempty"`                       // High level categorization of detected issue
	Code               *CodeableConcept          `json:"code,omitempty" bson:"code,omitempty"`                               // Specific type of detected issue, e.g. drug-drug, duplicate therapy, etc
	Severity           *CodeableConcept          `json:"severity,omitempty" bson:"severity,omitempty"`                       // high | moderate | low
	Subject            *Reference                `json:"subject,omitempty" bson:"subject,omitempty"`                         // Associated subject
	Encounter          *Reference                `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Encounter the detected issue is part of
	IdentifiedDateTime *string                   `json:"identifiedDateTime,omitempty" bson:"identified_date_time,omitempty"` // When detected issue occurred/is occurring
	IdentifiedPeriod   *Period                   `json:"identifiedPeriod,omitempty" bson:"identified_period,omitempty"`      // When detected issue occurred/is occurring
	IdentifiedTiming   *Timing                   `json:"identifiedTiming,omitempty" bson:"identified_timing,omitempty"`      // When detected issue occurred/is occurring
	Author             *Reference                `json:"author,omitempty" bson:"author,omitempty"`                           // The provider or device that identified the issue
	Implicated         []Reference               `json:"implicated,omitempty" bson:"implicated,omitempty"`                   // Problem resource
	Evidence           []DetectedIssueEvidence   `json:"evidence,omitempty" bson:"evidence,omitempty"`                       // Supporting evidence
	Detail             *string                   `json:"detail,omitempty" bson:"detail,omitempty"`                           // Description and context
	Reference          *string                   `json:"reference,omitempty" bson:"reference,omitempty"`                     // Authority for issue
	QualityOfEvidence  *CodeableConcept          `json:"qualityOfEvidence,omitempty" bson:"quality_of_evidence,omitempty"`   // The quality of the evidence supporting the detected issue
	ExpectedOnsetType  *CodeableConcept          `json:"expectedOnsetType,omitempty" bson:"expected_onset_type,omitempty"`   // Time frame of clinical effect
	MedicationClass    []CodeableConcept         `json:"medicationClass,omitempty" bson:"medication_class,omitempty"`        // What medication class
	ManagementCode     *CodeableConcept          `json:"managementCode,omitempty" bson:"management_code,omitempty"`          // Importance of taking action on the issue
	Mitigation         []DetectedIssueMitigation `json:"mitigation,omitempty" bson:"mitigation,omitempty"`                   // Step taken to address
}

Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, gaps in care, etc.

func (*DetectedIssue) Validate

func (r *DetectedIssue) Validate() error

type DetectedIssueEvidence

type DetectedIssueEvidence struct {
	Id     *string           `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Code   []CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`     // Manifestation
	Detail []Reference       `json:"detail,omitempty" bson:"detail,omitempty"` // Supporting information
}

func (*DetectedIssueEvidence) Validate

func (r *DetectedIssueEvidence) Validate() error

type DetectedIssueMitigation

type DetectedIssueMitigation struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Action *CodeableConcept `json:"action" bson:"action"`                     // What mitigation?
	Date   *string          `json:"date,omitempty" bson:"date,omitempty"`     // Date committed
	Author *Reference       `json:"author,omitempty" bson:"author,omitempty"` // Who is committing?
	Note   []Annotation     `json:"note,omitempty" bson:"note,omitempty"`     // Additional notes about the mitigation
}

func (*DetectedIssueMitigation) Validate

func (r *DetectedIssueMitigation) Validate() error

type DetectedIssueStatus added in v0.0.3

type DetectedIssueStatus string

DetectedIssueStatus represents codes from http://hl7.org/fhir/ValueSet/detectedissue-status

const (
	DetectedIssueStatusRegistered        DetectedIssueStatus = "registered"
	DetectedIssueStatusSpecimenInProcess DetectedIssueStatus = "specimen-in-process"
	DetectedIssueStatusPreliminary       DetectedIssueStatus = "preliminary"
	DetectedIssueStatusFinal             DetectedIssueStatus = "final"
	DetectedIssueStatusAmended           DetectedIssueStatus = "amended"
	DetectedIssueStatusCorrected         DetectedIssueStatus = "corrected"
	DetectedIssueStatusAppended          DetectedIssueStatus = "appended"
	DetectedIssueStatusCancelled         DetectedIssueStatus = "cancelled"
	DetectedIssueStatusEnteredInError    DetectedIssueStatus = "entered-in-error"
	DetectedIssueStatusUnknown           DetectedIssueStatus = "unknown"
	DetectedIssueStatusCannotBeObtained  DetectedIssueStatus = "cannot-be-obtained"
	DetectedIssueStatusMitigated         DetectedIssueStatus = "mitigated"
	DetectedIssueStatusProcessingError   DetectedIssueStatus = "processing-error"
)

type Device

type Device struct {
	ResourceType          string                `json:"resourceType" bson:"resource_type"`                                        // Type of resource
	Id                    *string               `json:"id,omitempty" bson:"id,omitempty"`                                         // Logical id of this artifact
	Meta                  *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                                     // Metadata about the resource
	ImplicitRules         *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                  // A set of rules under which this content was created
	Language              *string               `json:"language,omitempty" bson:"language,omitempty"`                             // Language of the resource content
	Text                  *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                                     // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                           // Contained, inline Resources
	Identifier            []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // Instance identifier
	Definition            *string               `json:"definition,omitempty" bson:"definition,omitempty"`                         // The reference to the definition for the device
	UdiCarrier            []DeviceUdiCarrier    `json:"udiCarrier,omitempty" bson:"udi_carrier,omitempty"`                        // Unique Device Identifier (UDI) value
	Status                *string               `json:"status,omitempty" bson:"status,omitempty"`                                 // active | inactive | entered-in-error | unknown
	AvailabilityStatus    *CodeableConcept      `json:"availabilityStatus,omitempty" bson:"availability_status,omitempty"`        // lost | damaged | destroyed | available
	BiologicalSourceEvent *Identifier           `json:"biologicalSourceEvent,omitempty" bson:"biological_source_event,omitempty"` // A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
	Manufacturer          *string               `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`                     // Name of device manufacturer
	ManufactureDate       *string               `json:"manufactureDate,omitempty" bson:"manufacture_date,omitempty"`              // A production identifier that indicates the date when the device was made
	ExpirationDate        *string               `json:"expirationDate,omitempty" bson:"expiration_date,omitempty"`                // A production identifier that indicates the date and time of expiry of this device (if applicable)
	LotNumber             *string               `json:"lotNumber,omitempty" bson:"lot_number,omitempty"`                          // A production identifier that indicates the Lot number of manufacture
	SerialNumber          *string               `json:"serialNumber,omitempty" bson:"serial_number,omitempty"`                    // A production identifier that indicates the Serial number assigned by the manufacturer
	Name                  []DeviceName          `json:"name,omitempty" bson:"name,omitempty"`                                     // The name or names of the device as known to the manufacturer and/or patient
	ModelNumber           *string               `json:"modelNumber,omitempty" bson:"model_number,omitempty"`                      // The manufacturer's model number for the device
	PartNumber            *string               `json:"partNumber,omitempty" bson:"part_number,omitempty"`                        // The part number or catalog number of the device
	Category              []CodeableConcept     `json:"category,omitempty" bson:"category,omitempty"`                             // Indicates a high-level grouping of the device
	Type                  []CodeableConcept     `json:"type,omitempty" bson:"type,omitempty"`                                     // The kind or type of device
	DeviceVersion         []DeviceDeviceVersion `json:"deviceVersion,omitempty" bson:"device_version,omitempty"`                  // The actual design of the device or software version running on the device
	ConformsTo            []DeviceConformsTo    `json:"conformsTo,omitempty" bson:"conforms_to,omitempty"`                        // Identifies the standards, specifications, or formal guidances for the capabilities supported by the device
	Property              []DeviceProperty      `json:"property,omitempty" bson:"property,omitempty"`                             // Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc.
	Additive              []DeviceAdditive      `json:"additive,omitempty" bson:"additive,omitempty"`                             // Material added to a container device
	Contact               []ContactPoint        `json:"contact,omitempty" bson:"contact,omitempty"`                               // Details for human/organization for support
	Location              *Reference            `json:"location,omitempty" bson:"location,omitempty"`                             // Where the device is found
	Note                  []Annotation          `json:"note,omitempty" bson:"note,omitempty"`                                     // Device notes and comments
	Safety                []CodeableConcept     `json:"safety,omitempty" bson:"safety,omitempty"`                                 // Safety Characteristics of Device
	Parent                *Reference            `json:"parent,omitempty" bson:"parent,omitempty"`                                 // The higher level or encompassing device that this device is a logical part of
}

This resource describes the properties (regulated, has real time clock, etc.), administrative (manufacturer name, model number, serial number, firmware, etc.), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serial number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element.

func (*Device) Validate

func (r *Device) Validate() error

type DeviceAdditive

type DeviceAdditive struct {
	Id       *string            `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Type     *CodeableReference `json:"type" bson:"type"`                             // The additive substance
	Quantity *Quantity          `json:"quantity,omitempty" bson:"quantity,omitempty"` // Quantity of additive substance within container
}

func (*DeviceAdditive) Validate

func (r *DeviceAdditive) Validate() error

type DeviceAlert

type DeviceAlert struct {
	ResourceType       string                   `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                  `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                    `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                  `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                  `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative               `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage        `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier         []Identifier             `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Business identifier for this device alert
	Procedure          []Reference              `json:"procedure,omitempty" bson:"procedure,omitempty"`                     // Procedure during which the alert occurred
	Status             string                   `json:"status" bson:"status"`                                               // in-progress | completed | entered-in-error | unknown
	Category           []CodeableConcept        `json:"category,omitempty" bson:"category,omitempty"`                       // High level categorization of device alert
	Type               *CodeableConcept         `json:"type,omitempty" bson:"type,omitempty"`                               // physiological | technical
	Priority           *CodeableConcept         `json:"priority,omitempty" bson:"priority,omitempty"`                       // high | medium | low | info
	Code               *CodeableConcept         `json:"code" bson:"code"`                                                   // The meaning of the alert
	Subject            *Reference               `json:"subject" bson:"subject"`                                             // Who or what the alert is about
	Encounter          *Reference               `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Encounter during which the alert condition occurred
	Presence           bool                     `json:"presence" bson:"presence"`                                           // Whether the alert condition is currently active
	OccurrenceDateTime *string                  `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // When the alert condition occurred/is occurring
	OccurrencePeriod   *Period                  `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // When the alert condition occurred/is occurring
	Device             *Reference               `json:"device,omitempty" bson:"device,omitempty"`                           // The Device (or DeviceMetric) that detected the alert condition
	Acknowledged       *bool                    `json:"acknowledged,omitempty" bson:"acknowledged,omitempty"`               // Whether the alert condition has been acknowledged
	AcknowledgedBy     *Reference               `json:"acknowledgedBy,omitempty" bson:"acknowledged_by,omitempty"`          // Who acknowledged the alert condition
	Location           *Reference               `json:"location,omitempty" bson:"location,omitempty"`                       // Location of the subject when the alert was raised
	DerivedFrom        []DeviceAlertDerivedFrom `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                // The value causing the alert condition
	Label              *string                  `json:"label,omitempty" bson:"label,omitempty"`                             // Text to be displayed for the alert condition
	Signal             []DeviceAlertSignal      `json:"signal,omitempty" bson:"signal,omitempty"`                           // Annunciation or notification of the alert condition
}

Describes a physiological or technical alert condition report originated by a device. The DeviceAlert resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable.

func (*DeviceAlert) Validate

func (r *DeviceAlert) Validate() error

type DeviceAlertAnnunciationCodes added in v0.0.3

type DeviceAlertAnnunciationCodes string

DeviceAlertAnnunciationCodes represents codes from http://hl7.org/fhir/ValueSet/devicealert-annunciation

const (
	DeviceAlertAnnunciationCodesLocal  DeviceAlertAnnunciationCodes = "local"
	DeviceAlertAnnunciationCodesRemote DeviceAlertAnnunciationCodes = "remote"
)

type DeviceAlertDerivedFrom

type DeviceAlertDerivedFrom struct {
	Id          *string    `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Observation *Reference `json:"observation" bson:"observation"`                 // The Observation having a value causing the alert condition
	Component   *Coding    `json:"component,omitempty" bson:"component,omitempty"` // The Observation.component having a value causing the alert condition
	Limit       *Range     `json:"limit,omitempty" bson:"limit,omitempty"`         // The boundaries beyond which a value was detected to cause the alert condition
}

func (*DeviceAlertDerivedFrom) Validate

func (r *DeviceAlertDerivedFrom) Validate() error

type DeviceAlertSignal

type DeviceAlertSignal struct {
	Id              *string            `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	ActivationState *CodeableConcept   `json:"activationState" bson:"activation_state"`                // on | off | paused
	Presence        *CodeableConcept   `json:"presence,omitempty" bson:"presence,omitempty"`           // on | latched | off | ack
	Annunciator     *CodeableReference `json:"annunciator,omitempty" bson:"annunciator,omitempty"`     // Where the signal is being annunciated
	Manifestation   *CodeableConcept   `json:"manifestation,omitempty" bson:"manifestation,omitempty"` // How the signal is being annunciated
	Type            []CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                   // Characteristics of the signal manifestation
	Indication      *Period            `json:"indication,omitempty" bson:"indication,omitempty"`       // When the signal was being annunciated
}

func (*DeviceAlertSignal) Validate

func (r *DeviceAlertSignal) Validate() error

type DeviceAlertStatusCodes added in v0.0.3

type DeviceAlertStatusCodes string

DeviceAlertStatusCodes represents codes from http://hl7.org/fhir/ValueSet/devicealert-status

const (
	DeviceAlertStatusCodesInProgress     DeviceAlertStatusCodes = "in-progress"
	DeviceAlertStatusCodesCompleted      DeviceAlertStatusCodes = "completed"
	DeviceAlertStatusCodesEnteredInError DeviceAlertStatusCodes = "entered-in-error"
	DeviceAlertStatusCodesUnknown        DeviceAlertStatusCodes = "unknown"
)

type DeviceAssociation

type DeviceAssociation struct {
	ResourceType      string            `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string           `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string           `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Identifier        []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                // Instance identifier
	Device            *Reference        `json:"device" bson:"device"`                                            // Reference to the device that is being associated
	Relationship      []CodeableConcept `json:"relationship,omitempty" bson:"relationship,omitempty"`            // Describes the relationship between the device and subject
	Status            string            `json:"status" bson:"status"`                                            // active | inactive | entered-in-error | unknown
	StatusReason      []CodeableConcept `json:"statusReason,omitempty" bson:"status_reason,omitempty"`           // The reasons given for the current association status
	AssociationStatus *CodeableConcept  `json:"associationStatus,omitempty" bson:"association_status,omitempty"` // State of the device’s association
	Subject           *Reference        `json:"subject,omitempty" bson:"subject,omitempty"`                      // The entity(ies) that the device is on or associated with
	Focus             *Reference        `json:"focus,omitempty" bson:"focus,omitempty"`                          // The target of the association
	BodyStructure     *Reference        `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`         // Current anatomical location of the device in/on subject
	Period            *Period           `json:"period,omitempty" bson:"period,omitempty"`                        // Begin and end dates and times for the device association
}

A record of association of a device.

func (*DeviceAssociation) Validate

func (r *DeviceAssociation) Validate() error

type DeviceAssociationCodes added in v0.0.3

type DeviceAssociationCodes string

DeviceAssociationCodes represents codes from http://hl7.org/fhir/ValueSet/deviceassociation-status

const (
	DeviceAssociationCodesActive         DeviceAssociationCodes = "active"
	DeviceAssociationCodesInactive       DeviceAssociationCodes = "inactive"
	DeviceAssociationCodesEnteredInError DeviceAssociationCodes = "entered-in-error"
	DeviceAssociationCodesUnknown        DeviceAssociationCodes = "unknown"
)

type DeviceConformsTo

type DeviceConformsTo struct {
	Id            *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Category      *CodeableConcept `json:"category,omitempty" bson:"category,omitempty"` // Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement
	Specification *CodeableConcept `json:"specification" bson:"specification"`           // Identifies the standard, specification, or formal guidance that the device adheres to
	Version       *string          `json:"version,omitempty" bson:"version,omitempty"`   // Specific form or variant of the standard
}

func (*DeviceConformsTo) Validate

func (r *DeviceConformsTo) Validate() error

type DeviceCorrectiveActionScope added in v0.0.3

type DeviceCorrectiveActionScope string

DeviceCorrectiveActionScope represents codes from http://hl7.org/fhir/ValueSet/device-correctiveactionscope

const (
	DeviceCorrectiveActionScopeModel         DeviceCorrectiveActionScope = "model"
	DeviceCorrectiveActionScopeLotNumbers    DeviceCorrectiveActionScope = "lot-numbers"
	DeviceCorrectiveActionScopeSerialNumbers DeviceCorrectiveActionScope = "serial-numbers"
)

type DeviceDefinition

type DeviceDefinition struct {
	ResourceType              string                                 `json:"resourceType" bson:"resource_type"`                                                   // Type of resource
	Id                        *string                                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Logical id of this artifact
	Meta                      *Meta                                  `json:"meta,omitempty" bson:"meta,omitempty"`                                                // Metadata about the resource
	ImplicitRules             *string                                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                             // A set of rules under which this content was created
	Language                  *string                                `json:"language,omitempty" bson:"language,omitempty"`                                        // Language of the resource content
	Text                      *Narrative                             `json:"text,omitempty" bson:"text,omitempty"`                                                // Text summary of the resource, for human interpretation
	Contained                 []json.RawMessage                      `json:"contained,omitempty" bson:"contained,omitempty"`                                      // Contained, inline Resources
	Url                       *string                                `json:"url,omitempty" bson:"url,omitempty"`                                                  // Canonical identifier for this DeviceDefinition, represented as an absolute URI (globally unique)
	Identifier                []Identifier                           `json:"identifier,omitempty" bson:"identifier,omitempty"`                                    // Additional identifier for the DeviceDefinition
	Version                   *string                                `json:"version,omitempty" bson:"version,omitempty"`                                          // Business version of the DeviceDefinition
	VersionAlgorithmString    *string                                `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"`          // How to compare versions
	VersionAlgorithmCoding    *Coding                                `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"`          // How to compare versions
	Name                      *string                                `json:"name,omitempty" bson:"name,omitempty"`                                                // Name for this DeviceDefinition (computer friendly)
	Title                     *string                                `json:"title,omitempty" bson:"title,omitempty"`                                              // Name for this DeviceDefinition (human friendly)
	Status                    string                                 `json:"status" bson:"status"`                                                                // draft | active | retired | unknown
	Experimental              *bool                                  `json:"experimental,omitempty" bson:"experimental,omitempty"`                                // For testing only - never for real usage
	Date                      *string                                `json:"date,omitempty" bson:"date,omitempty"`                                                // Date last changed
	Publisher                 *string                                `json:"publisher,omitempty" bson:"publisher,omitempty"`                                      // Name of the publisher/steward (organization or individual)
	Contact                   []ContactDetail                        `json:"contact,omitempty" bson:"contact,omitempty"`                                          // Contact details for the publisher
	Description               *string                                `json:"description,omitempty" bson:"description,omitempty"`                                  // Natural language description of the DeviceDefinition
	UseContext                []UsageContext                         `json:"useContext,omitempty" bson:"use_context,omitempty"`                                   // The context that the content is intended to support
	Jurisdiction              []CodeableConcept                      `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                                // Jurisdiction of the authority that maintains the DeviceDefinition (if applicable)
	Purpose                   *string                                `json:"purpose,omitempty" bson:"purpose,omitempty"`                                          // Why this DeviceDefinition is defined
	Copyright                 *string                                `json:"copyright,omitempty" bson:"copyright,omitempty"`                                      // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel            *string                                `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                           // Copyright holder and year(s)
	ApprovalDate              *string                                `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                               // When DeviceDefinition was approved by publisher
	LastReviewDate            *string                                `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                          // Date on which the asset content was last reviewed by the publisher
	EffectivePeriod           *Period                                `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                         // The effective date range for the DeviceDefinition
	PartNumber                *string                                `json:"partNumber,omitempty" bson:"part_number,omitempty"`                                   // The part number or catalog number of the device
	Manufacturer              *Reference                             `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`                                // Name of device manufacturer
	ModelNumber               *string                                `json:"modelNumber,omitempty" bson:"model_number,omitempty"`                                 // The catalog or model number for the device for example as defined by the manufacturer
	UdiDeviceIdentifier       []DeviceDefinitionUdiDeviceIdentifier  `json:"udiDeviceIdentifier,omitempty" bson:"udi_device_identifier,omitempty"`                // Unique Device Identifier (UDI) Barcode string
	RegulatoryIdentifier      []DeviceDefinitionRegulatoryIdentifier `json:"regulatoryIdentifier,omitempty" bson:"regulatory_identifier,omitempty"`               // Regulatory identifier(s) associated with this device
	DeviceName                []DeviceDefinitionDeviceName           `json:"deviceName,omitempty" bson:"device_name,omitempty"`                                   // The name or names of the device as given by the manufacturer
	Classification            []DeviceDefinitionClassification       `json:"classification,omitempty" bson:"classification,omitempty"`                            // What kind of device or device system this is
	ConformsTo                []DeviceDefinitionConformsTo           `json:"conformsTo,omitempty" bson:"conforms_to,omitempty"`                                   // Identifies the standards, specifications, or formal guidances for the capabilities supported by the device
	HasPart                   []DeviceDefinitionHasPart              `json:"hasPart,omitempty" bson:"has_part,omitempty"`                                         // A device, part of the current one
	Packaging                 []DeviceDefinitionPackaging            `json:"packaging,omitempty" bson:"packaging,omitempty"`                                      // Information about the packaging of the device, i.e. how the device is packaged
	DeviceVersion             []DeviceDefinitionDeviceVersion        `json:"deviceVersion,omitempty" bson:"device_version,omitempty"`                             // The version of the device or software
	Safety                    []CodeableConcept                      `json:"safety,omitempty" bson:"safety,omitempty"`                                            // Safety characteristics of the device
	ShelfLifeStorage          []ProductShelfLife                     `json:"shelfLifeStorage,omitempty" bson:"shelf_life_storage,omitempty"`                      // Shelf Life and storage information
	OutputLanguage            []string                               `json:"outputLanguage,omitempty" bson:"output_language,omitempty"`                           // Language code for the human-readable text strings produced by the device (all supported)
	Property                  []DeviceDefinitionProperty             `json:"property,omitempty" bson:"property,omitempty"`                                        // Inherent, essentially fixed, characteristics of this kind of device, e.g., time properties, size, etc
	Link                      []DeviceDefinitionLink                 `json:"link,omitempty" bson:"link,omitempty"`                                                // An associated device, attached to, used with, communicating with or linking a previous or new device model to the focal device
	Note                      []Annotation                           `json:"note,omitempty" bson:"note,omitempty"`                                                // Device notes and comments
	Material                  []DeviceDefinitionMaterial             `json:"material,omitempty" bson:"material,omitempty"`                                        // A substance used to create the material(s) of which the device is made
	ProductionIdentifierInUDI []CodeableConcept                      `json:"productionIdentifierInUDI,omitempty" bson:"production_identifier_in_u_d_i,omitempty"` // lot-number | manufactured-date | serial-number | expiration-date | biological-source | software-version
	Guideline                 *DeviceDefinitionGuideline             `json:"guideline,omitempty" bson:"guideline,omitempty"`                                      // Information aimed at providing directions for the usage of this model of device
	CorrectiveAction          *DeviceDefinitionCorrectiveAction      `json:"correctiveAction,omitempty" bson:"corrective_action,omitempty"`                       // Tracking of latest field safety corrective action
	ChargeItem                []DeviceDefinitionChargeItem           `json:"chargeItem,omitempty" bson:"charge_item,omitempty"`                                   // Billing code or reference associated with the device
}

This is a specialized resource that defines the characteristics and capabilities of a device.

func (*DeviceDefinition) Validate

func (r *DeviceDefinition) Validate() error

type DeviceDefinitionChargeItem

type DeviceDefinitionChargeItem struct {
	Id              *string            `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	ChargeItemCode  *CodeableReference `json:"chargeItemCode" bson:"charge_item_code"`                      // The code or reference for the charge item
	Count           *Quantity          `json:"count" bson:"count"`                                          // Coefficient applicable to the billing code
	EffectivePeriod *Period            `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"` // A specific time period in which this charge item applies
	UseContext      []UsageContext     `json:"useContext,omitempty" bson:"use_context,omitempty"`           // The context to which this charge item applies
}

func (*DeviceDefinitionChargeItem) Validate

func (r *DeviceDefinitionChargeItem) Validate() error

type DeviceDefinitionClassification

type DeviceDefinitionClassification struct {
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Type          *CodeableConcept  `json:"type" bson:"type"`                                       // A classification or risk class of the device model
	Justification []RelatedArtifact `json:"justification,omitempty" bson:"justification,omitempty"` // Further information qualifying this classification of the device model
}

func (*DeviceDefinitionClassification) Validate

func (r *DeviceDefinitionClassification) Validate() error

type DeviceDefinitionConformsTo

type DeviceDefinitionConformsTo struct {
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Category      *CodeableConcept  `json:"category,omitempty" bson:"category,omitempty"` // Describes the common type of the standard, specification, or formal guidance
	Specification *CodeableConcept  `json:"specification" bson:"specification"`           // Identifies the standard, specification, or formal guidance that the device adheres to the Device Specification type
	Version       []string          `json:"version,omitempty" bson:"version,omitempty"`   // The specific form or variant of the standard, specification or formal guidance
	Source        []RelatedArtifact `json:"source,omitempty" bson:"source,omitempty"`     // Standard, regulation, certification, or guidance website, document, or other publication, or similar, supporting the conformance
}

func (*DeviceDefinitionConformsTo) Validate

func (r *DeviceDefinitionConformsTo) Validate() error

type DeviceDefinitionCorrectiveAction

type DeviceDefinitionCorrectiveAction struct {
	Id     *string `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Recall bool    `json:"recall" bson:"recall"`                   // Whether the corrective action was a recall
	Scope  *string `json:"scope,omitempty" bson:"scope,omitempty"` // model | lot-numbers | serial-numbers
	Period *Period `json:"period" bson:"period"`                   // Start and end dates of the  corrective action
}

func (*DeviceDefinitionCorrectiveAction) Validate

type DeviceDefinitionDeviceName

type DeviceDefinitionDeviceName struct {
	Id   *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Name string           `json:"name" bson:"name"`                 // A name that is used to refer to the device
	Type *CodeableConcept `json:"type" bson:"type"`                 // registered-name | user-friendly-name | patient-reported-name
}

func (*DeviceDefinitionDeviceName) Validate

func (r *DeviceDefinitionDeviceName) Validate() error

type DeviceDefinitionDeviceVersion

type DeviceDefinitionDeviceVersion struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Type      *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`           // The type of the device version, e.g. manufacturer, approved, internal
	Component *Identifier      `json:"component,omitempty" bson:"component,omitempty"` // The hardware or software module of the device to which the version applies
	Value     string           `json:"value" bson:"value"`                             // The version text
}

func (*DeviceDefinitionDeviceVersion) Validate

func (r *DeviceDefinitionDeviceVersion) Validate() error

type DeviceDefinitionGuideline

type DeviceDefinitionGuideline struct {
	Id               *string           `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	UseContext       []UsageContext    `json:"useContext,omitempty" bson:"use_context,omitempty"`             // The circumstances that form the setting for using the device
	UsageInstruction *string           `json:"usageInstruction,omitempty" bson:"usage_instruction,omitempty"` // Detailed written and visual directions for the user on how to use the device
	RelatedArtifact  []RelatedArtifact `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`   // A source of information or reference for this guideline
	Indication       []CodeableConcept `json:"indication,omitempty" bson:"indication,omitempty"`              // A clinical condition for which the device was designed to be used
	Contraindication []CodeableConcept `json:"contraindication,omitempty" bson:"contraindication,omitempty"`  // A specific situation when a device should not be used because it may cause harm
	Warning          []CodeableConcept `json:"warning,omitempty" bson:"warning,omitempty"`                    // Specific hazard alert information that a user needs to know before using the device
	IntendedUse      *string           `json:"intendedUse,omitempty" bson:"intended_use,omitempty"`           // A description of the general purpose or medical use of the device or its function
}

func (*DeviceDefinitionGuideline) Validate

func (r *DeviceDefinitionGuideline) Validate() error

type DeviceDefinitionHasPart

type DeviceDefinitionHasPart struct {
	Id                        *string          `json:"id,omitempty" bson:"id,omitempty"`                             // Unique id for inter-element referencing
	DefinitionCanonical       *string          `json:"definitionCanonical" bson:"definition_canonical"`              // Reference to the part
	DefinitionCodeableConcept *CodeableConcept `json:"definitionCodeableConcept" bson:"definition_codeable_concept"` // Reference to the part
	Count                     *int             `json:"count,omitempty" bson:"count,omitempty"`                       // Number of occurrences of the part
}

func (*DeviceDefinitionHasPart) Validate

func (r *DeviceDefinitionHasPart) Validate() error
type DeviceDefinitionLink struct {
	Id                           *string          `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Relation                     *Coding          `json:"relation" bson:"relation"`                                            // The type indicates the relationship of the related device to the device instance
	RelatedDeviceCanonical       *string          `json:"relatedDeviceCanonical" bson:"related_device_canonical"`              // A reference to the linked device
	RelatedDeviceCodeableConcept *CodeableConcept `json:"relatedDeviceCodeableConcept" bson:"related_device_codeable_concept"` // A reference to the linked device
}

func (*DeviceDefinitionLink) Validate

func (r *DeviceDefinitionLink) Validate() error

type DeviceDefinitionMaterial

type DeviceDefinitionMaterial struct {
	Id                  *string          `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Substance           *CodeableConcept `json:"substance" bson:"substance"`                                          // A relevant substance that the device contains, may contain, or is made of
	Alternate           *bool            `json:"alternate,omitempty" bson:"alternate,omitempty"`                      // Indicates an alternative material of the device
	AllergenicIndicator *bool            `json:"allergenicIndicator,omitempty" bson:"allergenic_indicator,omitempty"` // Whether the substance is a known or suspected allergen
}

func (*DeviceDefinitionMaterial) Validate

func (r *DeviceDefinitionMaterial) Validate() error

type DeviceDefinitionPackaging

type DeviceDefinitionPackaging struct {
	Id                  *string                                `json:"id,omitempty" bson:"id,omitempty"`                                     // Unique id for inter-element referencing
	Identifier          *Identifier                            `json:"identifier,omitempty" bson:"identifier,omitempty"`                     // Business identifier of the packaged medication
	Type                *CodeableConcept                       `json:"type,omitempty" bson:"type,omitempty"`                                 // A code that defines the specific type of packaging
	Count               *int                                   `json:"count,omitempty" bson:"count,omitempty"`                               // The number of items contained in the package (devices or sub-packages)
	Distributor         []DeviceDefinitionPackagingDistributor `json:"distributor,omitempty" bson:"distributor,omitempty"`                   // An organization that distributes the packaged device
	UdiDeviceIdentifier []DeviceDefinitionUdiDeviceIdentifier  `json:"udiDeviceIdentifier,omitempty" bson:"udi_device_identifier,omitempty"` // Unique Device Identifier (UDI) Barcode string on the packaging
	Packaging           []DeviceDefinitionPackaging            `json:"packaging,omitempty" bson:"packaging,omitempty"`                       // Allows packages within packages
}

func (*DeviceDefinitionPackaging) Validate

func (r *DeviceDefinitionPackaging) Validate() error

type DeviceDefinitionPackagingDistributor

type DeviceDefinitionPackagingDistributor struct {
	Id                    *string     `json:"id,omitempty" bson:"id,omitempty"`                                        // Unique id for inter-element referencing
	Name                  *string     `json:"name,omitempty" bson:"name,omitempty"`                                    // Distributor's human-readable name
	OrganizationReference []Reference `json:"organizationReference,omitempty" bson:"organization_reference,omitempty"` // Distributor as an Organization resource
}

func (*DeviceDefinitionPackagingDistributor) Validate

type DeviceDefinitionProperty

type DeviceDefinitionProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                   // Code that specifies the property being represented
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // Value of the property
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // Value of the property
	ValueString          *string          `json:"valueString" bson:"value_string"`                    // Value of the property
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // Value of the property
	ValueInteger         *int             `json:"valueInteger" bson:"value_integer"`                  // Value of the property
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // Value of the property
	ValueAttachment      *Attachment      `json:"valueAttachment" bson:"value_attachment"`            // Value of the property
}

func (*DeviceDefinitionProperty) Validate

func (r *DeviceDefinitionProperty) Validate() error

type DeviceDefinitionRegulatoryIdentifier

type DeviceDefinitionRegulatoryIdentifier struct {
	Id               *string `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Type             string  `json:"type" bson:"type"`                                              // basic | master | license
	Identifier       string  `json:"identifier" bson:"identifier"`                                  // The identifier itself
	Issuer           string  `json:"issuer" bson:"issuer"`                                          // The organization that issued this identifier
	Jurisdiction     string  `json:"jurisdiction" bson:"jurisdiction"`                              // Relevant jurisdiction governing the identifier
	IdentifierSystem *string `json:"identifierSystem,omitempty" bson:"identifier_system,omitempty"` // The namespace for the device identifier value
}

func (*DeviceDefinitionRegulatoryIdentifier) Validate

type DeviceDefinitionRegulatoryIdentifierType added in v0.0.3

type DeviceDefinitionRegulatoryIdentifierType string

DeviceDefinitionRegulatoryIdentifierType represents codes from http://hl7.org/fhir/ValueSet/devicedefinition-regulatory-identifier-type

const (
	DeviceDefinitionRegulatoryIdentifierTypeBasic   DeviceDefinitionRegulatoryIdentifierType = "basic"
	DeviceDefinitionRegulatoryIdentifierTypeMaster  DeviceDefinitionRegulatoryIdentifierType = "master"
	DeviceDefinitionRegulatoryIdentifierTypeLicense DeviceDefinitionRegulatoryIdentifierType = "license"
)

type DeviceDefinitionUdiDeviceIdentifier

type DeviceDefinitionUdiDeviceIdentifier struct {
	Id                     *string                                                 `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	DeviceIdentifier       string                                                  `json:"deviceIdentifier" bson:"device_identifier"`                                  // The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdiction provided in the DeviceDefinition.udiDeviceIdentifier
	Issuer                 string                                                  `json:"issuer" bson:"issuer"`                                                       // The organization that assigns the identifier algorithm
	Jurisdiction           string                                                  `json:"jurisdiction" bson:"jurisdiction"`                                           // The jurisdiction to which the deviceIdentifier applies
	MarketDistribution     []DeviceDefinitionUdiDeviceIdentifierMarketDistribution `json:"marketDistribution,omitempty" bson:"market_distribution,omitempty"`          // Indicates whether and when the device is available on the market
	DeviceIdentifierSystem *string                                                 `json:"deviceIdentifierSystem,omitempty" bson:"device_identifier_system,omitempty"` // The namespace for the device identifier value
}

func (*DeviceDefinitionUdiDeviceIdentifier) Validate

type DeviceDefinitionUdiDeviceIdentifierMarketDistribution

type DeviceDefinitionUdiDeviceIdentifierMarketDistribution struct {
	Id              *string `json:"id,omitempty" bson:"id,omitempty"`        // Unique id for inter-element referencing
	MarketPeriod    *Period `json:"marketPeriod" bson:"market_period"`       // Begin and end dates for the commercial distribution of the device
	SubJurisdiction string  `json:"subJurisdiction" bson:"sub_jurisdiction"` // National state or territory where the device is commercialized
}

func (*DeviceDefinitionUdiDeviceIdentifierMarketDistribution) Validate

type DeviceDeviceVersion

type DeviceDeviceVersion struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Type        *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                // The type of the device version, e.g. manufacturer, approved, internal
	Component   *Identifier      `json:"component,omitempty" bson:"component,omitempty"`      // The hardware or software module of the device to which the version applies
	InstallDate *string          `json:"installDate,omitempty" bson:"install_date,omitempty"` // The date the version was installed on the device
	Value       string           `json:"value" bson:"value"`                                  // The version text
}

func (*DeviceDeviceVersion) Validate

func (r *DeviceDeviceVersion) Validate() error

type DeviceMetric

type DeviceMetric struct {
	ResourceType         string                    `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                   *string                   `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                 *Meta                     `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules        *string                   `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language             *string                   `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                 *Narrative                `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage         `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier           []Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // Instance identifier
	Status               string                    `json:"status" bson:"status"`                                                  // active | inactive | entered-in-error | unknown
	OperationalStatus    *string                   `json:"operationalStatus,omitempty" bson:"operational_status,omitempty"`       // on | off | standby | unknown
	Category             *CodeableConcept          `json:"category" bson:"category"`                                              // The kind of metric represented
	Type                 *CodeableConcept          `json:"type" bson:"type"`                                                      // Identity of metric, for example Heart Rate or PEEP Setting
	Device               *Reference                `json:"device" bson:"device"`                                                  // The device to which this DeviceMetric applies
	Unit                 *CodeableConcept          `json:"unit,omitempty" bson:"unit,omitempty"`                                  // Unit of Measure for the Metric
	Color                *string                   `json:"color,omitempty" bson:"color,omitempty"`                                // Color name (from CSS4) or #RRGGBB code
	MeasurementFrequency *Quantity                 `json:"measurementFrequency,omitempty" bson:"measurement_frequency,omitempty"` // Indicates how often the metric is taken or recorded
	Availability         *CodeableConcept          `json:"availability,omitempty" bson:"availability,omitempty"`                  // The continuity of the metric (e.g., measurement)
	Calibration          []DeviceMetricCalibration `json:"calibration,omitempty" bson:"calibration,omitempty"`                    // Describes the calibrations that have been performed or that are required to be performed
}

Describes a measurement, calculation or setting capability of a device. The DeviceMetric resource is derived from the ISO/IEEE 11073-10201 Domain Information Model standard, but is more widely applicable.

func (*DeviceMetric) Validate

func (r *DeviceMetric) Validate() error

type DeviceMetricCalibration

type DeviceMetricCalibration struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Type  *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`   // The method of calibration
	State *string          `json:"state,omitempty" bson:"state,omitempty"` // not-calibrated | calibration-required | calibrated | unspecified
	Time  *string          `json:"time,omitempty" bson:"time,omitempty"`   // Describes the time last calibration has been performed
}

func (*DeviceMetricCalibration) Validate

func (r *DeviceMetricCalibration) Validate() error

type DeviceMetricCalibrationState added in v0.0.3

type DeviceMetricCalibrationState string

DeviceMetricCalibrationState represents codes from http://hl7.org/fhir/ValueSet/metric-calibration-state

const (
	DeviceMetricCalibrationStateNotCalibrated       DeviceMetricCalibrationState = "not-calibrated"
	DeviceMetricCalibrationStateCalibrationRequired DeviceMetricCalibrationState = "calibration-required"
	DeviceMetricCalibrationStateCalibrated          DeviceMetricCalibrationState = "calibrated"
	DeviceMetricCalibrationStateUnspecified         DeviceMetricCalibrationState = "unspecified"
)

type DeviceMetricOperationalStatus added in v0.0.3

type DeviceMetricOperationalStatus string

DeviceMetricOperationalStatus represents codes from http://hl7.org/fhir/ValueSet/metric-operational-status

const (
	DeviceMetricOperationalStatusOn      DeviceMetricOperationalStatus = "on"
	DeviceMetricOperationalStatusOff     DeviceMetricOperationalStatus = "off"
	DeviceMetricOperationalStatusStandby DeviceMetricOperationalStatus = "standby"
	DeviceMetricOperationalStatusUnknown DeviceMetricOperationalStatus = "unknown"
)

type DeviceMetricStatus added in v0.0.3

type DeviceMetricStatus string

DeviceMetricStatus represents codes from http://hl7.org/fhir/ValueSet/metric-status

const (
	DeviceMetricStatusActive         DeviceMetricStatus = "active"
	DeviceMetricStatusInactive       DeviceMetricStatus = "inactive"
	DeviceMetricStatusEnteredInError DeviceMetricStatus = "entered-in-error"
	DeviceMetricStatusUnknown        DeviceMetricStatus = "unknown"
)

type DeviceName

type DeviceName struct {
	Id      *string          `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Value   string           `json:"value" bson:"value"`                         // The term that names the device
	Type    *CodeableConcept `json:"type" bson:"type"`                           // registered-name | user-friendly-name | patient-reported-name
	Display *bool            `json:"display,omitempty" bson:"display,omitempty"` // The preferred device name
}

func (*DeviceName) Validate

func (r *DeviceName) Validate() error

type DeviceProperty

type DeviceProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                   // Code that specifies the property being represented
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // Value of the property
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // Value of the property
	ValueString          *string          `json:"valueString" bson:"value_string"`                    // Value of the property
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // Value of the property
	ValueInteger         *int             `json:"valueInteger" bson:"value_integer"`                  // Value of the property
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // Value of the property
	ValueAttachment      *Attachment      `json:"valueAttachment" bson:"value_attachment"`            // Value of the property
}

func (*DeviceProperty) Validate

func (r *DeviceProperty) Validate() error

type DeviceRequest

type DeviceRequest struct {
	ResourceType           string                   `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                     *string                  `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta                   *Meta                    `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules          *string                  `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language               *string                  `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text                   *Narrative               `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage        `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier             []Identifier             `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // External Request identifier
	BasedOn                []Reference              `json:"basedOn,omitempty" bson:"based_on,omitempty"`                        // What request fulfills
	Replaces               []Reference              `json:"replaces,omitempty" bson:"replaces,omitempty"`                       // What request replaces
	GroupIdentifier        *Identifier              `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"`        // Identifier of composite request
	Status                 *string                  `json:"status,omitempty" bson:"status,omitempty"`                           // draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
	Intent                 string                   `json:"intent" bson:"intent"`                                               // proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
	Priority               *string                  `json:"priority,omitempty" bson:"priority,omitempty"`                       // routine | urgent | asap | stat
	DoNotPerform           *bool                    `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`             // True if the request is to stop or not to start using the device
	ProductCodeableConcept *CodeableConcept         `json:"productCodeableConcept" bson:"product_codeable_concept"`             // Device requested
	ProductReference       *Reference               `json:"productReference" bson:"product_reference"`                          // Device requested
	ProductCanonical       *string                  `json:"productCanonical" bson:"product_canonical"`                          // Device requested
	Quantity               *int                     `json:"quantity,omitempty" bson:"quantity,omitempty"`                       // Quantity of devices to supply
	Parameter              []DeviceRequestParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`                     // Device details
	Subject                *Reference               `json:"subject" bson:"subject"`                                             // Focus of request
	Encounter              *Reference               `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Encounter motivating request
	OccurrenceDateTime     *string                  `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // Desired time or schedule for use
	OccurrencePeriod       *Period                  `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // Desired time or schedule for use
	OccurrenceTiming       *Timing                  `json:"occurrenceTiming,omitempty" bson:"occurrence_timing,omitempty"`      // Desired time or schedule for use
	AuthoredOn             *string                  `json:"authoredOn,omitempty" bson:"authored_on,omitempty"`                  // When recorded
	Requester              *Reference               `json:"requester,omitempty" bson:"requester,omitempty"`                     // Who/what submitted the device request
	Performer              *CodeableReference       `json:"performer,omitempty" bson:"performer,omitempty"`                     // Requested Filler
	Location               []CodeableReference      `json:"location,omitempty" bson:"location,omitempty"`                       // Requested location
	Reason                 []CodeableReference      `json:"reason,omitempty" bson:"reason,omitempty"`                           // Coded/Linked Reason for request
	AsNeeded               *bool                    `json:"asNeeded,omitempty" bson:"as_needed,omitempty"`                      // PRN status of request
	AsNeededFor            *CodeableConcept         `json:"asNeededFor,omitempty" bson:"as_needed_for,omitempty"`               // Device usage reason
	Insurance              []Reference              `json:"insurance,omitempty" bson:"insurance,omitempty"`                     // Associated insurance coverage
	SupportingInfo         []Reference              `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`          // Additional clinical information
	Note                   []Annotation             `json:"note,omitempty" bson:"note,omitempty"`                               // Notes or comments
	RelevantHistory        []Reference              `json:"relevantHistory,omitempty" bson:"relevant_history,omitempty"`        // Request provenance
}

Represents a request a device to be provided to a specific patient. The device may be an implantable device to be subsequently implanted, or an external assistive device, such as a walker, to be delivered and subsequently be used.

func (*DeviceRequest) Validate

func (r *DeviceRequest) Validate() error

type DeviceRequestParameter

type DeviceRequestParameter struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Code                 *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                                   // Device detail
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // Value of detail
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // Value of detail
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // Value of detail
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // Value of detail
}

func (*DeviceRequestParameter) Validate

func (r *DeviceRequestParameter) Validate() error

type DeviceUdiCarrier

type DeviceUdiCarrier struct {
	Id                     *string `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	DeviceIdentifier       string  `json:"deviceIdentifier" bson:"device_identifier"`                                  // Mandatory fixed portion of UDI
	DeviceIdentifierSystem *string `json:"deviceIdentifierSystem,omitempty" bson:"device_identifier_system,omitempty"` // The namespace for the device identifier value
	Issuer                 string  `json:"issuer" bson:"issuer"`                                                       // UDI Issuing Organization
	Jurisdiction           *string `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Regional UDI authority
	CarrierAIDC            *string `json:"carrierAIDC,omitempty" bson:"carrier_a_i_d_c,omitempty"`                     // UDI Machine Readable value
	CarrierHRF             *string `json:"carrierHRF,omitempty" bson:"carrier_h_r_f,omitempty"`                        // UDI Human Readable value
	EntryType              *string `json:"entryType,omitempty" bson:"entry_type,omitempty"`                            // barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
}

func (*DeviceUdiCarrier) Validate

func (r *DeviceUdiCarrier) Validate() error

type DiagnosticReport

type DiagnosticReport struct {
	ResourceType       string                           `json:"resourceType" bson:"resource_type"`                                 // Type of resource
	Id                 *string                          `json:"id,omitempty" bson:"id,omitempty"`                                  // Logical id of this artifact
	Meta               *Meta                            `json:"meta,omitempty" bson:"meta,omitempty"`                              // Metadata about the resource
	ImplicitRules      *string                          `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`           // A set of rules under which this content was created
	Language           *string                          `json:"language,omitempty" bson:"language,omitempty"`                      // Language of the resource content
	Text               *Narrative                       `json:"text,omitempty" bson:"text,omitempty"`                              // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage                `json:"contained,omitempty" bson:"contained,omitempty"`                    // Contained, inline Resources
	Identifier         []Identifier                     `json:"identifier,omitempty" bson:"identifier,omitempty"`                  // Business identifier for report
	BasedOn            []Reference                      `json:"basedOn,omitempty" bson:"based_on,omitempty"`                       // What was requested
	Status             string                           `json:"status" bson:"status"`                                              // registered | partial | preliminary | modified | final | amended | corrected | appended | cancelled | entered-in-error | unknown
	Category           []CodeableConcept                `json:"category,omitempty" bson:"category,omitempty"`                      // Service category
	Code               *CodeableConcept                 `json:"code" bson:"code"`                                                  // Name/Code for this diagnostic report
	Subject            *Reference                       `json:"subject,omitempty" bson:"subject,omitempty"`                        // The subject of the report - usually, but not always, the patient
	RelatesTo          []RelatedArtifact                `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`                   // Related DiagnosticReports
	Encounter          *Reference                       `json:"encounter,omitempty" bson:"encounter,omitempty"`                    // Encounter associated with the DiagnosticReport
	EffectiveDateTime  *string                          `json:"effectiveDateTime,omitempty" bson:"effective_date_time,omitempty"`  // Clinically relevant time/time-period for the results that are included in the report
	EffectivePeriod    *Period                          `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`       // Clinically relevant time/time-period for the results that are included in the report
	Issued             *string                          `json:"issued,omitempty" bson:"issued,omitempty"`                          // DateTime this version was made
	Procedure          []Reference                      `json:"procedure,omitempty" bson:"procedure,omitempty"`                    // The performed procedure(s) from which the report was produced
	Performer          []Reference                      `json:"performer,omitempty" bson:"performer,omitempty"`                    // Responsible Diagnostic Service
	ResultsInterpreter []Reference                      `json:"resultsInterpreter,omitempty" bson:"results_interpreter,omitempty"` // Who analyzed and reported the conclusions and interpretations
	Specimen           []Reference                      `json:"specimen,omitempty" bson:"specimen,omitempty"`                      // Specimens this report is based on
	Result             []Reference                      `json:"result,omitempty" bson:"result,omitempty"`                          // Observations
	Note               []Annotation                     `json:"note,omitempty" bson:"note,omitempty"`                              // Comments about the diagnostic report
	Study              []Reference                      `json:"study,omitempty" bson:"study,omitempty"`                            // Reference to full details of an analysis associated with the diagnostic report
	SupportingInfo     []DiagnosticReportSupportingInfo `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`         // Additional information supporting the diagnostic report
	Media              []DiagnosticReportMedia          `json:"media,omitempty" bson:"media,omitempty"`                            // Key images or data associated with this report
	Composition        *Reference                       `json:"composition,omitempty" bson:"composition,omitempty"`                // Reference to a Composition resource for the DiagnosticReport structure
	Conclusion         *string                          `json:"conclusion,omitempty" bson:"conclusion,omitempty"`                  // Clinical conclusion (interpretation) of test results
	ConclusionCode     []CodeableReference              `json:"conclusionCode,omitempty" bson:"conclusion_code,omitempty"`         // Codes and/or references for the clinical conclusion of test results
	Recomendation      []CodeableReference              `json:"recomendation,omitempty" bson:"recomendation,omitempty"`            // Recommendations based on findings and interpretations
	PresentedForm      []Attachment                     `json:"presentedForm,omitempty" bson:"presented_form,omitempty"`           // Entire report as issued
	Communication      []Reference                      `json:"communication,omitempty" bson:"communication,omitempty"`            // Communication initiated during the reporting process
	Comparison         *Reference                       `json:"comparison,omitempty" bson:"comparison,omitempty"`                  // Prior data and findings for comparison
}

The findings and interpretation of diagnostic tests performed on patients, groups of patients, products, substances, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports. The report also includes non-clinical context such as batch analysis and stability reporting of products and substances.

func (*DiagnosticReport) Validate

func (r *DiagnosticReport) Validate() error

type DiagnosticReportMedia

type DiagnosticReportMedia struct {
	Id      *string    `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Comment *string    `json:"comment,omitempty" bson:"comment,omitempty"` // Comment about the image or data (e.g. explanation)
	Link    *Reference `json:"link" bson:"link"`                           // Reference to the image or data source
}

func (*DiagnosticReportMedia) Validate

func (r *DiagnosticReportMedia) Validate() error

type DiagnosticReportStatus added in v0.0.3

type DiagnosticReportStatus string

DiagnosticReportStatus represents codes from http://hl7.org/fhir/ValueSet/diagnostic-report-status

const (
	DiagnosticReportStatusRegistered     DiagnosticReportStatus = "registered"
	DiagnosticReportStatusPartial        DiagnosticReportStatus = "partial"
	DiagnosticReportStatusPreliminary    DiagnosticReportStatus = "preliminary"
	DiagnosticReportStatusModified       DiagnosticReportStatus = "modified"
	DiagnosticReportStatusFinal          DiagnosticReportStatus = "final"
	DiagnosticReportStatusAmended        DiagnosticReportStatus = "amended"
	DiagnosticReportStatusCorrected      DiagnosticReportStatus = "corrected"
	DiagnosticReportStatusAppended       DiagnosticReportStatus = "appended"
	DiagnosticReportStatusCancelled      DiagnosticReportStatus = "cancelled"
	DiagnosticReportStatusEnteredInError DiagnosticReportStatus = "entered-in-error"
	DiagnosticReportStatusUnknown        DiagnosticReportStatus = "unknown"
)

type DiagnosticReportSupportingInfo

type DiagnosticReportSupportingInfo struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type      *CodeableConcept `json:"type" bson:"type"`                 // Supporting information role code
	Reference *Reference       `json:"reference" bson:"reference"`       // Supporting information reference
}

func (*DiagnosticReportSupportingInfo) Validate

func (r *DiagnosticReportSupportingInfo) Validate() error

type DiscriminatorType added in v0.0.3

type DiscriminatorType string

DiscriminatorType represents codes from http://hl7.org/fhir/ValueSet/discriminator-type

const (
	DiscriminatorTypeValue    DiscriminatorType = "value"
	DiscriminatorTypeExists   DiscriminatorType = "exists"
	DiscriminatorTypePattern  DiscriminatorType = "pattern"
	DiscriminatorTypeType     DiscriminatorType = "type"
	DiscriminatorTypeProfile  DiscriminatorType = "profile"
	DiscriminatorTypePosition DiscriminatorType = "position"
)

type Distance

type Distance struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Value      *float64 `json:"value,omitempty" bson:"value,omitempty"`           // Numerical value (with implicit precision)
	Comparator *string  `json:"comparator,omitempty" bson:"comparator,omitempty"` // < | <= | >= | > | ad - how to understand the value
	Unit       *string  `json:"unit,omitempty" bson:"unit,omitempty"`             // Unit representation
	System     *string  `json:"system,omitempty" bson:"system,omitempty"`         // System that defines coded unit form
	Code       *string  `json:"code,omitempty" bson:"code,omitempty"`             // Coded form of the unit
}

Distance Type: A length - a value with a unit that is a physical distance.

func (*Distance) Validate

func (r *Distance) Validate() error

type Docref

type Docref struct {
}

This operation is used to return all the references to documents related to a patient. The operation requires a patient id and takes the optional input parameters: - start date - end date - document type - on demand - profile and returns a Bundle(bundle.html) of type "searchset" containing DocumentReference(documentreference.html) resources for the patient. If the server has or can create documents that are related to the patient, and that are available for the given user, the server returns the DocumentReference resources needed to support the records. The principle intended use for this operation is to provide a provider or patient with access to their available document information. This operation is *different* from a search by patient and type and date range because: 1. It is used to request a server to *generate* a document based on the specified parameters. 1. If no parameters are specified, the server SHALL return a DocumentReference to the patient's most current summary 1. If the server cannot *generate* a document based on the specified parameters, the operation will return an empty search bundle. Unless the client indicates they are only interested in 'on-demand' documents using the on-demand parameter, the server SHOULD return DocumentReference instances for existing documents that meet the request parameters. In this regard, this operation is similar to a FHIR RESTful query.

func (*Docref) Validate

func (r *Docref) Validate() error

type Document

type Document struct {
}

A client can ask a server to generate a fully bundled document from a composition resource. The server takes the composition resource, locates all the referenced resources and other additional resources as configured or requested and either returns a full document bundle, or returns an error. If some of the resources are located on other servers, it is at the discretion of the server whether to retrieve them or return an error. If the correct version of the document that would be generated already exists, then the server can return the existing one.

func (*Document) Validate

func (r *Document) Validate() error

type DocumentMode added in v0.0.3

type DocumentMode string

DocumentMode represents codes from http://hl7.org/fhir/ValueSet/document-mode

const (
	DocumentModeProducer DocumentMode = "producer"
	DocumentModeConsumer DocumentMode = "consumer"
)

type DocumentReference

type DocumentReference struct {
	ResourceType    string                       `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id              *string                      `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta            *Meta                        `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules   *string                      `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language        *string                      `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	Text            *Narrative                   `json:"text,omitempty" bson:"text,omitempty"`                        // Text summary of the resource, for human interpretation
	Contained       []json.RawMessage            `json:"contained,omitempty" bson:"contained,omitempty"`              // Contained, inline Resources
	Identifier      []Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`            // Business identifiers for the document
	Version         *string                      `json:"version,omitempty" bson:"version,omitempty"`                  // An explicitly assigned identifier of a variation of the content in the DocumentReference
	BasedOn         []Reference                  `json:"basedOn,omitempty" bson:"based_on,omitempty"`                 // Procedure that caused this media to be created
	Status          string                       `json:"status" bson:"status"`                                        // current | superseded | entered-in-error
	DocStatus       *string                      `json:"docStatus,omitempty" bson:"doc_status,omitempty"`             // registered | partial | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | deprecated | unknown
	Modality        []CodeableConcept            `json:"modality,omitempty" bson:"modality,omitempty"`                // Imaging modality used
	Type            *CodeableConcept             `json:"type,omitempty" bson:"type,omitempty"`                        // Kind of document (LOINC if possible)
	Category        []CodeableConcept            `json:"category,omitempty" bson:"category,omitempty"`                // Categorization of document
	Subject         *Reference                   `json:"subject,omitempty" bson:"subject,omitempty"`                  // Who/what is the subject of the document
	Context         []Reference                  `json:"context,omitempty" bson:"context,omitempty"`                  // Encounter the document reference is part of
	Event           []CodeableReference          `json:"event,omitempty" bson:"event,omitempty"`                      // Main clinical acts documented
	Related         []Reference                  `json:"related,omitempty" bson:"related,omitempty"`                  // Related identifiers or resources associated with the document reference
	BodyStructure   []CodeableReference          `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`     // Body structure included
	FacilityType    *CodeableConcept             `json:"facilityType,omitempty" bson:"facility_type,omitempty"`       // Kind of facility where patient was seen
	PracticeSetting *CodeableConcept             `json:"practiceSetting,omitempty" bson:"practice_setting,omitempty"` // Additional details about where the content was created (e.g. clinical specialty)
	Period          *Period                      `json:"period,omitempty" bson:"period,omitempty"`                    // Time of service that is being documented
	Date            *string                      `json:"date,omitempty" bson:"date,omitempty"`                        // When this document reference was created
	Author          []Reference                  `json:"author,omitempty" bson:"author,omitempty"`                    // Who and/or what authored the document
	Attester        []DocumentReferenceAttester  `json:"attester,omitempty" bson:"attester,omitempty"`                // Attests to accuracy of the document
	Custodian       *Reference                   `json:"custodian,omitempty" bson:"custodian,omitempty"`              // Organization which maintains the document
	RelatesTo       []DocumentReferenceRelatesTo `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`             // Relationships to other documents
	Description     *string                      `json:"description,omitempty" bson:"description,omitempty"`          // Human-readable description
	SecurityLabel   []CodeableConcept            `json:"securityLabel,omitempty" bson:"security_label,omitempty"`     // Document security-tags
	Content         []DocumentReferenceContent   `json:"content" bson:"content"`                                      // Document referenced
}

A reference to a document of any kind for any purpose. While the term “document” implies a more narrow focus, for this resource this “document” encompasses *any* serialized object with a mime-type, it includes formal patient-centric documents (CDA), clinical notes, scanned paper, non-patient specific documents like policy text, as well as a photo, video, or audio recording acquired or used in healthcare. The DocumentReference resource provides metadata about the document so that the document can be discovered and managed. The actual content may be inline base64 encoded data or provided by direct reference.

func (*DocumentReference) Validate

func (r *DocumentReference) Validate() error

type DocumentReferenceAttester

type DocumentReferenceAttester struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Mode  *CodeableConcept `json:"mode" bson:"mode"`                       // personal | professional | legal | official
	Time  *string          `json:"time,omitempty" bson:"time,omitempty"`   // When the document was attested
	Party *Reference       `json:"party,omitempty" bson:"party,omitempty"` // Who attested the document
}

func (*DocumentReferenceAttester) Validate

func (r *DocumentReferenceAttester) Validate() error

type DocumentReferenceContent

type DocumentReferenceContent struct {
	Id         *string                           `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Attachment *Attachment                       `json:"attachment" bson:"attachment"`               // Where to access the document
	Profile    []DocumentReferenceContentProfile `json:"profile,omitempty" bson:"profile,omitempty"` // Content profile rules for the document
}

func (*DocumentReferenceContent) Validate

func (r *DocumentReferenceContent) Validate() error

type DocumentReferenceContentProfile

type DocumentReferenceContentProfile struct {
	Id             *string `json:"id,omitempty" bson:"id,omitempty"`      // Unique id for inter-element referencing
	ValueCoding    *Coding `json:"valueCoding" bson:"value_coding"`       // Code|uri|canonical
	ValueUri       *string `json:"valueUri" bson:"value_uri"`             // Code|uri|canonical
	ValueCanonical *string `json:"valueCanonical" bson:"value_canonical"` // Code|uri|canonical
}

func (*DocumentReferenceContentProfile) Validate

func (r *DocumentReferenceContentProfile) Validate() error

type DocumentReferenceRelatesTo

type DocumentReferenceRelatesTo struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Code   *CodeableConcept `json:"code" bson:"code"`                 // The relationship type with another document
	Target *Reference       `json:"target" bson:"target"`             // Target of the relationship
}

func (*DocumentReferenceRelatesTo) Validate

func (r *DocumentReferenceRelatesTo) Validate() error

type DocumentReferenceStatus added in v0.0.3

type DocumentReferenceStatus string

DocumentReferenceStatus represents codes from http://hl7.org/fhir/ValueSet/document-reference-status

const (
	DocumentReferenceStatusCurrent        DocumentReferenceStatus = "current"
	DocumentReferenceStatusSuperseded     DocumentReferenceStatus = "superseded"
	DocumentReferenceStatusEnteredInError DocumentReferenceStatus = "entered-in-error"
)

type DomainResource

type DomainResource struct {
	ResourceType  string            `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string           `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
}

A resource that includes narrative, extensions, and contained resources.

func (*DomainResource) Validate

func (r *DomainResource) Validate() error

type Dosage

type Dosage struct {
	Id                    *string             `json:"id,omitempty" bson:"id,omitempty"`                                        // Unique id for inter-element referencing
	Condition             []DosageCondition   `json:"condition,omitempty" bson:"condition,omitempty"`                          // Whether the dosage applies (e.g. as a whole) (any can be true)
	Text                  *string             `json:"text,omitempty" bson:"text,omitempty"`                                    // Free text dosage instructions e.g. SIG
	AdditionalInstruction []CodeableConcept   `json:"additionalInstruction,omitempty" bson:"additional_instruction,omitempty"` // Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
	PatientInstruction    *string             `json:"patientInstruction,omitempty" bson:"patient_instruction,omitempty"`       // Patient or consumer oriented instructions
	Timing                *Timing             `json:"timing,omitempty" bson:"timing,omitempty"`                                // When medication should be administered
	AsNeeded              *bool               `json:"asNeeded,omitempty" bson:"as_needed,omitempty"`                           // Take "as needed"
	AsNeededFor           []CodeableConcept   `json:"asNeededFor,omitempty" bson:"as_needed_for,omitempty"`                    // Take "as needed" (for x)
	Site                  *CodeableConcept    `json:"site,omitempty" bson:"site,omitempty"`                                    // Body site to administer to
	Route                 *CodeableConcept    `json:"route,omitempty" bson:"route,omitempty"`                                  // How drug should enter body
	Method                *CodeableConcept    `json:"method,omitempty" bson:"method,omitempty"`                                // Technique for administering medication
	DoseAndRate           []DosageDoseAndRate `json:"doseAndRate,omitempty" bson:"dose_and_rate,omitempty"`                    // Amount of medication administered, to be administered or typical amount to be administered
	Safety                *DosageSafety       `json:"safety,omitempty" bson:"safety,omitempty"`                                // Safety Information about the this dosage instructions
}

Dosage Type: Indicates how the medication is/was taken or should be taken by the patient.

func (*Dosage) Validate

func (r *Dosage) Validate() error

type DosageCondition

type DosageCondition struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Unique id for inter-element referencing
	Code                       *CodeableConcept       `json:"code" bson:"code"`                                                                    // The specific event occurrence or resource context used as a base point (reference point) in time
	Details                    *CodeableConcept       `json:"details,omitempty" bson:"details,omitempty"`                                          // Additional details about the event - depends on the code
	Operation                  *string                `json:"operation,omitempty" bson:"operation,omitempty"`                                      // eq | ne | in | nin | gt | lt | ge | le | sa | eb | ap
	ValueBase64Binary          *string                `json:"valueBase64Binary,omitempty" bson:"value_base64_binary,omitempty"`                    // The value for this critera
	ValueBoolean               *bool                  `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                               // The value for this critera
	ValueCanonical             *string                `json:"valueCanonical,omitempty" bson:"value_canonical,omitempty"`                           // The value for this critera
	ValueCode                  *string                `json:"valueCode,omitempty" bson:"value_code,omitempty"`                                     // The value for this critera
	ValueDate                  *string                `json:"valueDate,omitempty" bson:"value_date,omitempty"`                                     // The value for this critera
	ValueDateTime              *string                `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                            // The value for this critera
	ValueDecimal               *float64               `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`                               // The value for this critera
	ValueId                    *string                `json:"valueId,omitempty" bson:"value_id,omitempty"`                                         // The value for this critera
	ValueInstant               *string                `json:"valueInstant,omitempty" bson:"value_instant,omitempty"`                               // The value for this critera
	ValueInteger               *int                   `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                               // The value for this critera
	ValueInteger64             *int64                 `json:"valueInteger64,omitempty" bson:"value_integer64,omitempty"`                           // The value for this critera
	ValueMarkdown              *string                `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                             // The value for this critera
	ValueOid                   *string                `json:"valueOid,omitempty" bson:"value_oid,omitempty"`                                       // The value for this critera
	ValuePositiveInt           *int                   `json:"valuePositiveInt,omitempty" bson:"value_positive_int,omitempty"`                      // The value for this critera
	ValueString                *string                `json:"valueString,omitempty" bson:"value_string,omitempty"`                                 // The value for this critera
	ValueTime                  *string                `json:"valueTime,omitempty" bson:"value_time,omitempty"`                                     // The value for this critera
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt,omitempty" bson:"value_unsigned_int,omitempty"`                      // The value for this critera
	ValueUri                   *string                `json:"valueUri,omitempty" bson:"value_uri,omitempty"`                                       // The value for this critera
	ValueUrl                   *string                `json:"valueUrl,omitempty" bson:"value_url,omitempty"`                                       // The value for this critera
	ValueUuid                  *uuid                  `json:"valueUuid,omitempty" bson:"value_uuid,omitempty"`                                     // The value for this critera
	ValueAddress               *Address               `json:"valueAddress,omitempty" bson:"value_address,omitempty"`                               // The value for this critera
	ValueAge                   *Age                   `json:"valueAge,omitempty" bson:"value_age,omitempty"`                                       // The value for this critera
	ValueAnnotation            *Annotation            `json:"valueAnnotation,omitempty" bson:"value_annotation,omitempty"`                         // The value for this critera
	ValueAttachment            *Attachment            `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`                         // The value for this critera
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`              // The value for this critera
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference,omitempty" bson:"value_codeable_reference,omitempty"`          // The value for this critera
	ValueCoding                *Coding                `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`                                 // The value for this critera
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint,omitempty" bson:"value_contact_point,omitempty"`                    // The value for this critera
	ValueCount                 *Count                 `json:"valueCount,omitempty" bson:"value_count,omitempty"`                                   // The value for this critera
	ValueDistance              *Distance              `json:"valueDistance,omitempty" bson:"value_distance,omitempty"`                             // The value for this critera
	ValueDuration              *Duration              `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`                             // The value for this critera
	ValueHumanName             *HumanName             `json:"valueHumanName,omitempty" bson:"value_human_name,omitempty"`                          // The value for this critera
	ValueIdentifier            *Identifier            `json:"valueIdentifier,omitempty" bson:"value_identifier,omitempty"`                         // The value for this critera
	ValueMoney                 *Money                 `json:"valueMoney,omitempty" bson:"value_money,omitempty"`                                   // The value for this critera
	ValuePeriod                *Period                `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                                 // The value for this critera
	ValueQuantity              *Quantity              `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                             // The value for this critera
	ValueRange                 *Range                 `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                   // The value for this critera
	ValueRatio                 *Ratio                 `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                                   // The value for this critera
	ValueRatioRange            *RatioRange            `json:"valueRatioRange,omitempty" bson:"value_ratio_range,omitempty"`                        // The value for this critera
	ValueReference             *Reference             `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                           // The value for this critera
	ValueSampledData           *SampledData           `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`                      // The value for this critera
	ValueSignature             *Signature             `json:"valueSignature,omitempty" bson:"value_signature,omitempty"`                           // The value for this critera
	ValueTiming                *Timing                `json:"valueTiming,omitempty" bson:"value_timing,omitempty"`                                 // The value for this critera
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail,omitempty" bson:"value_contact_detail,omitempty"`                  // The value for this critera
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement,omitempty" bson:"value_data_requirement,omitempty"`              // The value for this critera
	ValueExpression            *Expression            `json:"valueExpression,omitempty" bson:"value_expression,omitempty"`                         // The value for this critera
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition,omitempty" bson:"value_parameter_definition,omitempty"`      // The value for this critera
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact,omitempty" bson:"value_related_artifact,omitempty"`              // The value for this critera
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition,omitempty" bson:"value_trigger_definition,omitempty"`          // The value for this critera
	ValueUsageContext          *UsageContext          `json:"valueUsageContext,omitempty" bson:"value_usage_context,omitempty"`                    // The value for this critera
	ValueAvailability          *Availability          `json:"valueAvailability,omitempty" bson:"value_availability,omitempty"`                     // The value for this critera
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail,omitempty" bson:"value_extended_contact_detail,omitempty"` // The value for this critera
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail,omitempty" bson:"value_virtual_service_detail,omitempty"`   // The value for this critera
	ValueDosage                *Dosage                `json:"valueDosage,omitempty" bson:"value_dosage,omitempty"`                                 // The value for this critera
	ValueMeta                  *Meta                  `json:"valueMeta,omitempty" bson:"value_meta,omitempty"`                                     // The value for this critera
	Text                       *string                `json:"text,omitempty" bson:"text,omitempty"`                                                // Free-text description
}

DosageCondition Type: DosageCondition expresses a time or time period as relative to the time of an event defined in data types other than dateTime.

func (*DosageCondition) Validate

func (r *DosageCondition) Validate() error

type DosageDetails

type DosageDetails struct {
	Id                  *string             `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	RenderedInstruction *string             `json:"renderedInstruction,omitempty" bson:"rendered_instruction,omitempty"` // Full representation of the dosage instructions
	Simple              *Dosage             `json:"simple,omitempty" bson:"simple,omitempty"`                            // Dosage details if it is a simple dose
	Step                []DosageDetailsStep `json:"step,omitempty" bson:"step,omitempty"`                                // One step in a sequence of steps that comprise the dosage course
	Safety              *DosageSafety       `json:"safety,omitempty" bson:"safety,omitempty"`                            // Safety Information about the combined dose course
}

DosageDetails Type: Indicates how the medication is/was taken or should be taken by the patient.

func (*DosageDetails) Validate

func (r *DosageDetails) Validate() error

type DosageDetailsStep

type DosageDetailsStep struct {
	Id        *string       `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Start     *RelativeTime `json:"start,omitempty" bson:"start,omitempty"`   // When the step starts
	End       *RelativeTime `json:"end,omitempty" bson:"end,omitempty"`       // When the step ends
	Count     *int          `json:"count,omitempty" bson:"count,omitempty"`   // How many times to do this step (if not 1)
	Component []Dosage      `json:"component" bson:"component"`               // A dosage details that is part of this step
	Safety    *DosageSafety `json:"safety,omitempty" bson:"safety,omitempty"` // Safety Information about this step of the dose course
}

func (*DosageDetailsStep) Validate

func (r *DosageDetailsStep) Validate() error

type DosageDoseAndRate

type DosageDoseAndRate struct {
	Id             *string          `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Type           *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                      // The kind of dose or rate specified
	DoseRange      *Range           `json:"doseRange,omitempty" bson:"dose_range,omitempty"`           // Amount of medication per dose
	DoseQuantity   *Quantity        `json:"doseQuantity,omitempty" bson:"dose_quantity,omitempty"`     // Amount of medication per dose
	DoseExpression *Expression      `json:"doseExpression,omitempty" bson:"dose_expression,omitempty"` // Amount of medication per dose
	RateRatio      *Ratio           `json:"rateRatio,omitempty" bson:"rate_ratio,omitempty"`           // Amount of medication per unit of time
	RateRange      *Range           `json:"rateRange,omitempty" bson:"rate_range,omitempty"`           // Amount of medication per unit of time
	RateQuantity   *Quantity        `json:"rateQuantity,omitempty" bson:"rate_quantity,omitempty"`     // Amount of medication per unit of time
	RateExpression *Expression      `json:"rateExpression,omitempty" bson:"rate_expression,omitempty"` // Amount of medication per unit of time
}

func (*DosageDoseAndRate) Validate

func (r *DosageDoseAndRate) Validate() error

type DosageSafety

type DosageSafety struct {
	Id         *string                 `json:"id,omitempty" bson:"id,omitempty"`                  // Unique id for inter-element referencing
	DoseLimit  []DosageSafetyDoseLimit `json:"doseLimit,omitempty" bson:"dose_limit,omitempty"`   // A dose limit for safe use of the medication
	IfExceeded *string                 `json:"ifExceeded,omitempty" bson:"if_exceeded,omitempty"` // What to do if the instructions lead to exceeding the dose limits
}

DosageSafety Type: Safety Details about the usage of the medication.

func (*DosageSafety) Validate

func (r *DosageSafety) Validate() error

type DosageSafetyDoseLimit

type DosageSafetyDoseLimit struct {
	Id              *string     `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	ValueInteger    *int        `json:"valueInteger" bson:"value_integer"`        // Quantity that is safe to use
	ValueQuantity   *Quantity   `json:"valueQuantity" bson:"value_quantity"`      // Quantity that is safe to use
	ValueExpression *Expression `json:"valueExpression" bson:"value_expression"`  // Quantity that is safe to use
	Scope           string      `json:"scope" bson:"scope"`                       // dosage | period | administration | lifetime - The scope of the dose limitation
	Period          *Duration   `json:"period,omitempty" bson:"period,omitempty"` // The period over which the quantity is safe to use (if scope = period)
	Text            *string     `json:"text,omitempty" bson:"text,omitempty"`     // Additional notes about the dose limit
}

func (*DosageSafetyDoseLimit) Validate

func (r *DosageSafetyDoseLimit) Validate() error

type DoseLimitScopeVS added in v0.0.3

type DoseLimitScopeVS string

DoseLimitScopeVS represents codes from http://hl7.org/fhir/ValueSet/dose-limit-scope

const (
	DoseLimitScopeVSDosage         DoseLimitScopeVS = "dosage"
	DoseLimitScopeVSPeriod         DoseLimitScopeVS = "period"
	DoseLimitScopeVSAdministration DoseLimitScopeVS = "administration"
	DoseLimitScopeVSLifetime       DoseLimitScopeVS = "lifetime"
)

type Duration

type Duration struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Value      *float64 `json:"value,omitempty" bson:"value,omitempty"`           // Numerical value (with implicit precision)
	Comparator *string  `json:"comparator,omitempty" bson:"comparator,omitempty"` // < | <= | >= | > | ad - how to understand the value
	Unit       *string  `json:"unit,omitempty" bson:"unit,omitempty"`             // Unit representation
	System     *string  `json:"system,omitempty" bson:"system,omitempty"`         // System that defines coded unit form
	Code       *string  `json:"code,omitempty" bson:"code,omitempty"`             // Coded form of the unit
}

Duration Type: A length of time.

func (*Duration) Validate

func (r *Duration) Validate() error

type Element

type Element struct {
	Id *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
}

Element Type: Base definition for all elements in a resource.

func (*Element) Validate

func (r *Element) Validate() error

type ElementDefinition

type ElementDefinition struct {
	Id                                *string                       `json:"id,omitempty" bson:"id,omitempty"`                                                                   // Unique id for inter-element referencing
	Path                              string                        `json:"path" bson:"path"`                                                                                   // Path of the element in the hierarchy of elements
	Representation                    []string                      `json:"representation,omitempty" bson:"representation,omitempty"`                                           // xmlAttr | xmlText | typeAttr | cdaText | xhtml
	SliceName                         *string                       `json:"sliceName,omitempty" bson:"slice_name,omitempty"`                                                    // Name for this particular element (in a set of slices)
	SliceIsConstraining               *bool                         `json:"sliceIsConstraining,omitempty" bson:"slice_is_constraining,omitempty"`                               // If this slice definition constrains an inherited slice definition (or not)
	Label                             *string                       `json:"label,omitempty" bson:"label,omitempty"`                                                             // String to display with or prompt for element
	Code                              []Coding                      `json:"code,omitempty" bson:"code,omitempty"`                                                               // Corresponding codes in terminologies
	Slicing                           *ElementDefinitionSlicing     `json:"slicing,omitempty" bson:"slicing,omitempty"`                                                         // This element is sliced - slices follow
	Short                             *string                       `json:"short,omitempty" bson:"short,omitempty"`                                                             // Concise definition for space-constrained presentation
	Definition                        *string                       `json:"definition,omitempty" bson:"definition,omitempty"`                                                   // Full formal definition as narrative text
	Comment                           *string                       `json:"comment,omitempty" bson:"comment,omitempty"`                                                         // Comments about the use of this element
	Requirements                      *string                       `json:"requirements,omitempty" bson:"requirements,omitempty"`                                               // Requirements satisfied by this element/structure and its constraints
	Alias                             []string                      `json:"alias,omitempty" bson:"alias,omitempty"`                                                             // Other names
	Min                               *int                          `json:"min,omitempty" bson:"min,omitempty"`                                                                 // Minimum Cardinality
	Max                               *string                       `json:"max,omitempty" bson:"max,omitempty"`                                                                 // Maximum Cardinality (a number or *)
	Base                              *ElementDefinitionBase        `json:"base,omitempty" bson:"base,omitempty"`                                                               // Base definition information for tools
	ContentReference                  *string                       `json:"contentReference,omitempty" bson:"content_reference,omitempty"`                                      // Reference to definition of content for the element
	Type                              []ElementDefinitionType       `json:"type,omitempty" bson:"type,omitempty"`                                                               // Data type and Profile for this element
	DefaultValueBase64Binary          *string                       `json:"defaultValueBase64Binary,omitempty" bson:"default_value_base64_binary,omitempty"`                    // Specified value if missing from instance
	DefaultValueBoolean               *bool                         `json:"defaultValueBoolean,omitempty" bson:"default_value_boolean,omitempty"`                               // Specified value if missing from instance
	DefaultValueCanonical             *string                       `json:"defaultValueCanonical,omitempty" bson:"default_value_canonical,omitempty"`                           // Specified value if missing from instance
	DefaultValueCode                  *string                       `json:"defaultValueCode,omitempty" bson:"default_value_code,omitempty"`                                     // Specified value if missing from instance
	DefaultValueDate                  *string                       `json:"defaultValueDate,omitempty" bson:"default_value_date,omitempty"`                                     // Specified value if missing from instance
	DefaultValueDateTime              *string                       `json:"defaultValueDateTime,omitempty" bson:"default_value_date_time,omitempty"`                            // Specified value if missing from instance
	DefaultValueDecimal               *float64                      `json:"defaultValueDecimal,omitempty" bson:"default_value_decimal,omitempty"`                               // Specified value if missing from instance
	DefaultValueId                    *string                       `json:"defaultValueId,omitempty" bson:"default_value_id,omitempty"`                                         // Specified value if missing from instance
	DefaultValueInstant               *string                       `json:"defaultValueInstant,omitempty" bson:"default_value_instant,omitempty"`                               // Specified value if missing from instance
	DefaultValueInteger               *int                          `json:"defaultValueInteger,omitempty" bson:"default_value_integer,omitempty"`                               // Specified value if missing from instance
	DefaultValueInteger64             *int64                        `json:"defaultValueInteger64,omitempty" bson:"default_value_integer64,omitempty"`                           // Specified value if missing from instance
	DefaultValueMarkdown              *string                       `json:"defaultValueMarkdown,omitempty" bson:"default_value_markdown,omitempty"`                             // Specified value if missing from instance
	DefaultValueOid                   *string                       `json:"defaultValueOid,omitempty" bson:"default_value_oid,omitempty"`                                       // Specified value if missing from instance
	DefaultValuePositiveInt           *int                          `json:"defaultValuePositiveInt,omitempty" bson:"default_value_positive_int,omitempty"`                      // Specified value if missing from instance
	DefaultValueString                *string                       `json:"defaultValueString,omitempty" bson:"default_value_string,omitempty"`                                 // Specified value if missing from instance
	DefaultValueTime                  *string                       `json:"defaultValueTime,omitempty" bson:"default_value_time,omitempty"`                                     // Specified value if missing from instance
	DefaultValueUnsignedInt           *int                          `json:"defaultValueUnsignedInt,omitempty" bson:"default_value_unsigned_int,omitempty"`                      // Specified value if missing from instance
	DefaultValueUri                   *string                       `json:"defaultValueUri,omitempty" bson:"default_value_uri,omitempty"`                                       // Specified value if missing from instance
	DefaultValueUrl                   *string                       `json:"defaultValueUrl,omitempty" bson:"default_value_url,omitempty"`                                       // Specified value if missing from instance
	DefaultValueUuid                  *uuid                         `json:"defaultValueUuid,omitempty" bson:"default_value_uuid,omitempty"`                                     // Specified value if missing from instance
	DefaultValueAddress               *Address                      `json:"defaultValueAddress,omitempty" bson:"default_value_address,omitempty"`                               // Specified value if missing from instance
	DefaultValueAge                   *Age                          `json:"defaultValueAge,omitempty" bson:"default_value_age,omitempty"`                                       // Specified value if missing from instance
	DefaultValueAnnotation            *Annotation                   `json:"defaultValueAnnotation,omitempty" bson:"default_value_annotation,omitempty"`                         // Specified value if missing from instance
	DefaultValueAttachment            *Attachment                   `json:"defaultValueAttachment,omitempty" bson:"default_value_attachment,omitempty"`                         // Specified value if missing from instance
	DefaultValueCodeableConcept       *CodeableConcept              `json:"defaultValueCodeableConcept,omitempty" bson:"default_value_codeable_concept,omitempty"`              // Specified value if missing from instance
	DefaultValueCodeableReference     *CodeableReference            `json:"defaultValueCodeableReference,omitempty" bson:"default_value_codeable_reference,omitempty"`          // Specified value if missing from instance
	DefaultValueCoding                *Coding                       `json:"defaultValueCoding,omitempty" bson:"default_value_coding,omitempty"`                                 // Specified value if missing from instance
	DefaultValueContactPoint          *ContactPoint                 `json:"defaultValueContactPoint,omitempty" bson:"default_value_contact_point,omitempty"`                    // Specified value if missing from instance
	DefaultValueCount                 *Count                        `json:"defaultValueCount,omitempty" bson:"default_value_count,omitempty"`                                   // Specified value if missing from instance
	DefaultValueDistance              *Distance                     `json:"defaultValueDistance,omitempty" bson:"default_value_distance,omitempty"`                             // Specified value if missing from instance
	DefaultValueDuration              *Duration                     `json:"defaultValueDuration,omitempty" bson:"default_value_duration,omitempty"`                             // Specified value if missing from instance
	DefaultValueHumanName             *HumanName                    `json:"defaultValueHumanName,omitempty" bson:"default_value_human_name,omitempty"`                          // Specified value if missing from instance
	DefaultValueIdentifier            *Identifier                   `json:"defaultValueIdentifier,omitempty" bson:"default_value_identifier,omitempty"`                         // Specified value if missing from instance
	DefaultValueMoney                 *Money                        `json:"defaultValueMoney,omitempty" bson:"default_value_money,omitempty"`                                   // Specified value if missing from instance
	DefaultValuePeriod                *Period                       `json:"defaultValuePeriod,omitempty" bson:"default_value_period,omitempty"`                                 // Specified value if missing from instance
	DefaultValueQuantity              *Quantity                     `json:"defaultValueQuantity,omitempty" bson:"default_value_quantity,omitempty"`                             // Specified value if missing from instance
	DefaultValueRange                 *Range                        `json:"defaultValueRange,omitempty" bson:"default_value_range,omitempty"`                                   // Specified value if missing from instance
	DefaultValueRatio                 *Ratio                        `json:"defaultValueRatio,omitempty" bson:"default_value_ratio,omitempty"`                                   // Specified value if missing from instance
	DefaultValueRatioRange            *RatioRange                   `json:"defaultValueRatioRange,omitempty" bson:"default_value_ratio_range,omitempty"`                        // Specified value if missing from instance
	DefaultValueReference             *Reference                    `json:"defaultValueReference,omitempty" bson:"default_value_reference,omitempty"`                           // Specified value if missing from instance
	DefaultValueSampledData           *SampledData                  `json:"defaultValueSampledData,omitempty" bson:"default_value_sampled_data,omitempty"`                      // Specified value if missing from instance
	DefaultValueSignature             *Signature                    `json:"defaultValueSignature,omitempty" bson:"default_value_signature,omitempty"`                           // Specified value if missing from instance
	DefaultValueTiming                *Timing                       `json:"defaultValueTiming,omitempty" bson:"default_value_timing,omitempty"`                                 // Specified value if missing from instance
	DefaultValueContactDetail         *ContactDetail                `json:"defaultValueContactDetail,omitempty" bson:"default_value_contact_detail,omitempty"`                  // Specified value if missing from instance
	DefaultValueDataRequirement       *DataRequirement              `json:"defaultValueDataRequirement,omitempty" bson:"default_value_data_requirement,omitempty"`              // Specified value if missing from instance
	DefaultValueExpression            *Expression                   `json:"defaultValueExpression,omitempty" bson:"default_value_expression,omitempty"`                         // Specified value if missing from instance
	DefaultValueParameterDefinition   *ParameterDefinition          `json:"defaultValueParameterDefinition,omitempty" bson:"default_value_parameter_definition,omitempty"`      // Specified value if missing from instance
	DefaultValueRelatedArtifact       *RelatedArtifact              `json:"defaultValueRelatedArtifact,omitempty" bson:"default_value_related_artifact,omitempty"`              // Specified value if missing from instance
	DefaultValueTriggerDefinition     *TriggerDefinition            `json:"defaultValueTriggerDefinition,omitempty" bson:"default_value_trigger_definition,omitempty"`          // Specified value if missing from instance
	DefaultValueUsageContext          *UsageContext                 `json:"defaultValueUsageContext,omitempty" bson:"default_value_usage_context,omitempty"`                    // Specified value if missing from instance
	DefaultValueAvailability          *Availability                 `json:"defaultValueAvailability,omitempty" bson:"default_value_availability,omitempty"`                     // Specified value if missing from instance
	DefaultValueExtendedContactDetail *ExtendedContactDetail        `json:"defaultValueExtendedContactDetail,omitempty" bson:"default_value_extended_contact_detail,omitempty"` // Specified value if missing from instance
	DefaultValueVirtualServiceDetail  *VirtualServiceDetail         `json:"defaultValueVirtualServiceDetail,omitempty" bson:"default_value_virtual_service_detail,omitempty"`   // Specified value if missing from instance
	DefaultValueDosage                *Dosage                       `json:"defaultValueDosage,omitempty" bson:"default_value_dosage,omitempty"`                                 // Specified value if missing from instance
	DefaultValueMeta                  *Meta                         `json:"defaultValueMeta,omitempty" bson:"default_value_meta,omitempty"`                                     // Specified value if missing from instance
	MeaningWhenMissing                *string                       `json:"meaningWhenMissing,omitempty" bson:"meaning_when_missing,omitempty"`                                 // Implicit meaning when this element is missing
	OrderMeaning                      *string                       `json:"orderMeaning,omitempty" bson:"order_meaning,omitempty"`                                              // What the order of the elements means
	FixedBase64Binary                 *string                       `json:"fixedBase64Binary,omitempty" bson:"fixed_base64_binary,omitempty"`                                   // Value must be exactly this
	FixedBoolean                      *bool                         `json:"fixedBoolean,omitempty" bson:"fixed_boolean,omitempty"`                                              // Value must be exactly this
	FixedCanonical                    *string                       `json:"fixedCanonical,omitempty" bson:"fixed_canonical,omitempty"`                                          // Value must be exactly this
	FixedCode                         *string                       `json:"fixedCode,omitempty" bson:"fixed_code,omitempty"`                                                    // Value must be exactly this
	FixedDate                         *string                       `json:"fixedDate,omitempty" bson:"fixed_date,omitempty"`                                                    // Value must be exactly this
	FixedDateTime                     *string                       `json:"fixedDateTime,omitempty" bson:"fixed_date_time,omitempty"`                                           // Value must be exactly this
	FixedDecimal                      *float64                      `json:"fixedDecimal,omitempty" bson:"fixed_decimal,omitempty"`                                              // Value must be exactly this
	FixedId                           *string                       `json:"fixedId,omitempty" bson:"fixed_id,omitempty"`                                                        // Value must be exactly this
	FixedInstant                      *string                       `json:"fixedInstant,omitempty" bson:"fixed_instant,omitempty"`                                              // Value must be exactly this
	FixedInteger                      *int                          `json:"fixedInteger,omitempty" bson:"fixed_integer,omitempty"`                                              // Value must be exactly this
	FixedInteger64                    *int64                        `json:"fixedInteger64,omitempty" bson:"fixed_integer64,omitempty"`                                          // Value must be exactly this
	FixedMarkdown                     *string                       `json:"fixedMarkdown,omitempty" bson:"fixed_markdown,omitempty"`                                            // Value must be exactly this
	FixedOid                          *string                       `json:"fixedOid,omitempty" bson:"fixed_oid,omitempty"`                                                      // Value must be exactly this
	FixedPositiveInt                  *int                          `json:"fixedPositiveInt,omitempty" bson:"fixed_positive_int,omitempty"`                                     // Value must be exactly this
	FixedString                       *string                       `json:"fixedString,omitempty" bson:"fixed_string,omitempty"`                                                // Value must be exactly this
	FixedTime                         *string                       `json:"fixedTime,omitempty" bson:"fixed_time,omitempty"`                                                    // Value must be exactly this
	FixedUnsignedInt                  *int                          `json:"fixedUnsignedInt,omitempty" bson:"fixed_unsigned_int,omitempty"`                                     // Value must be exactly this
	FixedUri                          *string                       `json:"fixedUri,omitempty" bson:"fixed_uri,omitempty"`                                                      // Value must be exactly this
	FixedUrl                          *string                       `json:"fixedUrl,omitempty" bson:"fixed_url,omitempty"`                                                      // Value must be exactly this
	FixedUuid                         *uuid                         `json:"fixedUuid,omitempty" bson:"fixed_uuid,omitempty"`                                                    // Value must be exactly this
	FixedAddress                      *Address                      `json:"fixedAddress,omitempty" bson:"fixed_address,omitempty"`                                              // Value must be exactly this
	FixedAge                          *Age                          `json:"fixedAge,omitempty" bson:"fixed_age,omitempty"`                                                      // Value must be exactly this
	FixedAnnotation                   *Annotation                   `json:"fixedAnnotation,omitempty" bson:"fixed_annotation,omitempty"`                                        // Value must be exactly this
	FixedAttachment                   *Attachment                   `json:"fixedAttachment,omitempty" bson:"fixed_attachment,omitempty"`                                        // Value must be exactly this
	FixedCodeableConcept              *CodeableConcept              `json:"fixedCodeableConcept,omitempty" bson:"fixed_codeable_concept,omitempty"`                             // Value must be exactly this
	FixedCodeableReference            *CodeableReference            `json:"fixedCodeableReference,omitempty" bson:"fixed_codeable_reference,omitempty"`                         // Value must be exactly this
	FixedCoding                       *Coding                       `json:"fixedCoding,omitempty" bson:"fixed_coding,omitempty"`                                                // Value must be exactly this
	FixedContactPoint                 *ContactPoint                 `json:"fixedContactPoint,omitempty" bson:"fixed_contact_point,omitempty"`                                   // Value must be exactly this
	FixedCount                        *Count                        `json:"fixedCount,omitempty" bson:"fixed_count,omitempty"`                                                  // Value must be exactly this
	FixedDistance                     *Distance                     `json:"fixedDistance,omitempty" bson:"fixed_distance,omitempty"`                                            // Value must be exactly this
	FixedDuration                     *Duration                     `json:"fixedDuration,omitempty" bson:"fixed_duration,omitempty"`                                            // Value must be exactly this
	FixedHumanName                    *HumanName                    `json:"fixedHumanName,omitempty" bson:"fixed_human_name,omitempty"`                                         // Value must be exactly this
	FixedIdentifier                   *Identifier                   `json:"fixedIdentifier,omitempty" bson:"fixed_identifier,omitempty"`                                        // Value must be exactly this
	FixedMoney                        *Money                        `json:"fixedMoney,omitempty" bson:"fixed_money,omitempty"`                                                  // Value must be exactly this
	FixedPeriod                       *Period                       `json:"fixedPeriod,omitempty" bson:"fixed_period,omitempty"`                                                // Value must be exactly this
	FixedQuantity                     *Quantity                     `json:"fixedQuantity,omitempty" bson:"fixed_quantity,omitempty"`                                            // Value must be exactly this
	FixedRange                        *Range                        `json:"fixedRange,omitempty" bson:"fixed_range,omitempty"`                                                  // Value must be exactly this
	FixedRatio                        *Ratio                        `json:"fixedRatio,omitempty" bson:"fixed_ratio,omitempty"`                                                  // Value must be exactly this
	FixedRatioRange                   *RatioRange                   `json:"fixedRatioRange,omitempty" bson:"fixed_ratio_range,omitempty"`                                       // Value must be exactly this
	FixedReference                    *Reference                    `json:"fixedReference,omitempty" bson:"fixed_reference,omitempty"`                                          // Value must be exactly this
	FixedSampledData                  *SampledData                  `json:"fixedSampledData,omitempty" bson:"fixed_sampled_data,omitempty"`                                     // Value must be exactly this
	FixedSignature                    *Signature                    `json:"fixedSignature,omitempty" bson:"fixed_signature,omitempty"`                                          // Value must be exactly this
	FixedTiming                       *Timing                       `json:"fixedTiming,omitempty" bson:"fixed_timing,omitempty"`                                                // Value must be exactly this
	FixedContactDetail                *ContactDetail                `json:"fixedContactDetail,omitempty" bson:"fixed_contact_detail,omitempty"`                                 // Value must be exactly this
	FixedDataRequirement              *DataRequirement              `json:"fixedDataRequirement,omitempty" bson:"fixed_data_requirement,omitempty"`                             // Value must be exactly this
	FixedExpression                   *Expression                   `json:"fixedExpression,omitempty" bson:"fixed_expression,omitempty"`                                        // Value must be exactly this
	FixedParameterDefinition          *ParameterDefinition          `json:"fixedParameterDefinition,omitempty" bson:"fixed_parameter_definition,omitempty"`                     // Value must be exactly this
	FixedRelatedArtifact              *RelatedArtifact              `json:"fixedRelatedArtifact,omitempty" bson:"fixed_related_artifact,omitempty"`                             // Value must be exactly this
	FixedTriggerDefinition            *TriggerDefinition            `json:"fixedTriggerDefinition,omitempty" bson:"fixed_trigger_definition,omitempty"`                         // Value must be exactly this
	FixedUsageContext                 *UsageContext                 `json:"fixedUsageContext,omitempty" bson:"fixed_usage_context,omitempty"`                                   // Value must be exactly this
	FixedAvailability                 *Availability                 `json:"fixedAvailability,omitempty" bson:"fixed_availability,omitempty"`                                    // Value must be exactly this
	FixedExtendedContactDetail        *ExtendedContactDetail        `json:"fixedExtendedContactDetail,omitempty" bson:"fixed_extended_contact_detail,omitempty"`                // Value must be exactly this
	FixedVirtualServiceDetail         *VirtualServiceDetail         `json:"fixedVirtualServiceDetail,omitempty" bson:"fixed_virtual_service_detail,omitempty"`                  // Value must be exactly this
	FixedDosage                       *Dosage                       `json:"fixedDosage,omitempty" bson:"fixed_dosage,omitempty"`                                                // Value must be exactly this
	FixedMeta                         *Meta                         `json:"fixedMeta,omitempty" bson:"fixed_meta,omitempty"`                                                    // Value must be exactly this
	PatternBase64Binary               *string                       `json:"patternBase64Binary,omitempty" bson:"pattern_base64_binary,omitempty"`                               // Value must have at least these property values
	PatternBoolean                    *bool                         `json:"patternBoolean,omitempty" bson:"pattern_boolean,omitempty"`                                          // Value must have at least these property values
	PatternCanonical                  *string                       `json:"patternCanonical,omitempty" bson:"pattern_canonical,omitempty"`                                      // Value must have at least these property values
	PatternCode                       *string                       `json:"patternCode,omitempty" bson:"pattern_code,omitempty"`                                                // Value must have at least these property values
	PatternDate                       *string                       `json:"patternDate,omitempty" bson:"pattern_date,omitempty"`                                                // Value must have at least these property values
	PatternDateTime                   *string                       `json:"patternDateTime,omitempty" bson:"pattern_date_time,omitempty"`                                       // Value must have at least these property values
	PatternDecimal                    *float64                      `json:"patternDecimal,omitempty" bson:"pattern_decimal,omitempty"`                                          // Value must have at least these property values
	PatternId                         *string                       `json:"patternId,omitempty" bson:"pattern_id,omitempty"`                                                    // Value must have at least these property values
	PatternInstant                    *string                       `json:"patternInstant,omitempty" bson:"pattern_instant,omitempty"`                                          // Value must have at least these property values
	PatternInteger                    *int                          `json:"patternInteger,omitempty" bson:"pattern_integer,omitempty"`                                          // Value must have at least these property values
	PatternInteger64                  *int64                        `json:"patternInteger64,omitempty" bson:"pattern_integer64,omitempty"`                                      // Value must have at least these property values
	PatternMarkdown                   *string                       `json:"patternMarkdown,omitempty" bson:"pattern_markdown,omitempty"`                                        // Value must have at least these property values
	PatternOid                        *string                       `json:"patternOid,omitempty" bson:"pattern_oid,omitempty"`                                                  // Value must have at least these property values
	PatternPositiveInt                *int                          `json:"patternPositiveInt,omitempty" bson:"pattern_positive_int,omitempty"`                                 // Value must have at least these property values
	PatternString                     *string                       `json:"patternString,omitempty" bson:"pattern_string,omitempty"`                                            // Value must have at least these property values
	PatternTime                       *string                       `json:"patternTime,omitempty" bson:"pattern_time,omitempty"`                                                // Value must have at least these property values
	PatternUnsignedInt                *int                          `json:"patternUnsignedInt,omitempty" bson:"pattern_unsigned_int,omitempty"`                                 // Value must have at least these property values
	PatternUri                        *string                       `json:"patternUri,omitempty" bson:"pattern_uri,omitempty"`                                                  // Value must have at least these property values
	PatternUrl                        *string                       `json:"patternUrl,omitempty" bson:"pattern_url,omitempty"`                                                  // Value must have at least these property values
	PatternUuid                       *uuid                         `json:"patternUuid,omitempty" bson:"pattern_uuid,omitempty"`                                                // Value must have at least these property values
	PatternAddress                    *Address                      `json:"patternAddress,omitempty" bson:"pattern_address,omitempty"`                                          // Value must have at least these property values
	PatternAge                        *Age                          `json:"patternAge,omitempty" bson:"pattern_age,omitempty"`                                                  // Value must have at least these property values
	PatternAnnotation                 *Annotation                   `json:"patternAnnotation,omitempty" bson:"pattern_annotation,omitempty"`                                    // Value must have at least these property values
	PatternAttachment                 *Attachment                   `json:"patternAttachment,omitempty" bson:"pattern_attachment,omitempty"`                                    // Value must have at least these property values
	PatternCodeableConcept            *CodeableConcept              `json:"patternCodeableConcept,omitempty" bson:"pattern_codeable_concept,omitempty"`                         // Value must have at least these property values
	PatternCodeableReference          *CodeableReference            `json:"patternCodeableReference,omitempty" bson:"pattern_codeable_reference,omitempty"`                     // Value must have at least these property values
	PatternCoding                     *Coding                       `json:"patternCoding,omitempty" bson:"pattern_coding,omitempty"`                                            // Value must have at least these property values
	PatternContactPoint               *ContactPoint                 `json:"patternContactPoint,omitempty" bson:"pattern_contact_point,omitempty"`                               // Value must have at least these property values
	PatternCount                      *Count                        `json:"patternCount,omitempty" bson:"pattern_count,omitempty"`                                              // Value must have at least these property values
	PatternDistance                   *Distance                     `json:"patternDistance,omitempty" bson:"pattern_distance,omitempty"`                                        // Value must have at least these property values
	PatternDuration                   *Duration                     `json:"patternDuration,omitempty" bson:"pattern_duration,omitempty"`                                        // Value must have at least these property values
	PatternHumanName                  *HumanName                    `json:"patternHumanName,omitempty" bson:"pattern_human_name,omitempty"`                                     // Value must have at least these property values
	PatternIdentifier                 *Identifier                   `json:"patternIdentifier,omitempty" bson:"pattern_identifier,omitempty"`                                    // Value must have at least these property values
	PatternMoney                      *Money                        `json:"patternMoney,omitempty" bson:"pattern_money,omitempty"`                                              // Value must have at least these property values
	PatternPeriod                     *Period                       `json:"patternPeriod,omitempty" bson:"pattern_period,omitempty"`                                            // Value must have at least these property values
	PatternQuantity                   *Quantity                     `json:"patternQuantity,omitempty" bson:"pattern_quantity,omitempty"`                                        // Value must have at least these property values
	PatternRange                      *Range                        `json:"patternRange,omitempty" bson:"pattern_range,omitempty"`                                              // Value must have at least these property values
	PatternRatio                      *Ratio                        `json:"patternRatio,omitempty" bson:"pattern_ratio,omitempty"`                                              // Value must have at least these property values
	PatternRatioRange                 *RatioRange                   `json:"patternRatioRange,omitempty" bson:"pattern_ratio_range,omitempty"`                                   // Value must have at least these property values
	PatternReference                  *Reference                    `json:"patternReference,omitempty" bson:"pattern_reference,omitempty"`                                      // Value must have at least these property values
	PatternSampledData                *SampledData                  `json:"patternSampledData,omitempty" bson:"pattern_sampled_data,omitempty"`                                 // Value must have at least these property values
	PatternSignature                  *Signature                    `json:"patternSignature,omitempty" bson:"pattern_signature,omitempty"`                                      // Value must have at least these property values
	PatternTiming                     *Timing                       `json:"patternTiming,omitempty" bson:"pattern_timing,omitempty"`                                            // Value must have at least these property values
	PatternContactDetail              *ContactDetail                `json:"patternContactDetail,omitempty" bson:"pattern_contact_detail,omitempty"`                             // Value must have at least these property values
	PatternDataRequirement            *DataRequirement              `json:"patternDataRequirement,omitempty" bson:"pattern_data_requirement,omitempty"`                         // Value must have at least these property values
	PatternExpression                 *Expression                   `json:"patternExpression,omitempty" bson:"pattern_expression,omitempty"`                                    // Value must have at least these property values
	PatternParameterDefinition        *ParameterDefinition          `json:"patternParameterDefinition,omitempty" bson:"pattern_parameter_definition,omitempty"`                 // Value must have at least these property values
	PatternRelatedArtifact            *RelatedArtifact              `json:"patternRelatedArtifact,omitempty" bson:"pattern_related_artifact,omitempty"`                         // Value must have at least these property values
	PatternTriggerDefinition          *TriggerDefinition            `json:"patternTriggerDefinition,omitempty" bson:"pattern_trigger_definition,omitempty"`                     // Value must have at least these property values
	PatternUsageContext               *UsageContext                 `json:"patternUsageContext,omitempty" bson:"pattern_usage_context,omitempty"`                               // Value must have at least these property values
	PatternAvailability               *Availability                 `json:"patternAvailability,omitempty" bson:"pattern_availability,omitempty"`                                // Value must have at least these property values
	PatternExtendedContactDetail      *ExtendedContactDetail        `json:"patternExtendedContactDetail,omitempty" bson:"pattern_extended_contact_detail,omitempty"`            // Value must have at least these property values
	PatternVirtualServiceDetail       *VirtualServiceDetail         `json:"patternVirtualServiceDetail,omitempty" bson:"pattern_virtual_service_detail,omitempty"`              // Value must have at least these property values
	PatternDosage                     *Dosage                       `json:"patternDosage,omitempty" bson:"pattern_dosage,omitempty"`                                            // Value must have at least these property values
	PatternMeta                       *Meta                         `json:"patternMeta,omitempty" bson:"pattern_meta,omitempty"`                                                // Value must have at least these property values
	Example                           []ElementDefinitionExample    `json:"example,omitempty" bson:"example,omitempty"`                                                         // Example value (as defined for type)
	MinValueDate                      *string                       `json:"minValueDate,omitempty" bson:"min_value_date,omitempty"`                                             // Minimum Allowed Value (for some types)
	MinValueDateTime                  *string                       `json:"minValueDateTime,omitempty" bson:"min_value_date_time,omitempty"`                                    // Minimum Allowed Value (for some types)
	MinValueInstant                   *string                       `json:"minValueInstant,omitempty" bson:"min_value_instant,omitempty"`                                       // Minimum Allowed Value (for some types)
	MinValueTime                      *string                       `json:"minValueTime,omitempty" bson:"min_value_time,omitempty"`                                             // Minimum Allowed Value (for some types)
	MinValueDecimal                   *float64                      `json:"minValueDecimal,omitempty" bson:"min_value_decimal,omitempty"`                                       // Minimum Allowed Value (for some types)
	MinValueInteger                   *int                          `json:"minValueInteger,omitempty" bson:"min_value_integer,omitempty"`                                       // Minimum Allowed Value (for some types)
	MinValueInteger64                 *int64                        `json:"minValueInteger64,omitempty" bson:"min_value_integer64,omitempty"`                                   // Minimum Allowed Value (for some types)
	MinValuePositiveInt               *int                          `json:"minValuePositiveInt,omitempty" bson:"min_value_positive_int,omitempty"`                              // Minimum Allowed Value (for some types)
	MinValueUnsignedInt               *int                          `json:"minValueUnsignedInt,omitempty" bson:"min_value_unsigned_int,omitempty"`                              // Minimum Allowed Value (for some types)
	MinValueQuantity                  *Quantity                     `json:"minValueQuantity,omitempty" bson:"min_value_quantity,omitempty"`                                     // Minimum Allowed Value (for some types)
	MaxValueDate                      *string                       `json:"maxValueDate,omitempty" bson:"max_value_date,omitempty"`                                             // Maximum Allowed Value (for some types)
	MaxValueDateTime                  *string                       `json:"maxValueDateTime,omitempty" bson:"max_value_date_time,omitempty"`                                    // Maximum Allowed Value (for some types)
	MaxValueInstant                   *string                       `json:"maxValueInstant,omitempty" bson:"max_value_instant,omitempty"`                                       // Maximum Allowed Value (for some types)
	MaxValueTime                      *string                       `json:"maxValueTime,omitempty" bson:"max_value_time,omitempty"`                                             // Maximum Allowed Value (for some types)
	MaxValueDecimal                   *float64                      `json:"maxValueDecimal,omitempty" bson:"max_value_decimal,omitempty"`                                       // Maximum Allowed Value (for some types)
	MaxValueInteger                   *int                          `json:"maxValueInteger,omitempty" bson:"max_value_integer,omitempty"`                                       // Maximum Allowed Value (for some types)
	MaxValueInteger64                 *int64                        `json:"maxValueInteger64,omitempty" bson:"max_value_integer64,omitempty"`                                   // Maximum Allowed Value (for some types)
	MaxValuePositiveInt               *int                          `json:"maxValuePositiveInt,omitempty" bson:"max_value_positive_int,omitempty"`                              // Maximum Allowed Value (for some types)
	MaxValueUnsignedInt               *int                          `json:"maxValueUnsignedInt,omitempty" bson:"max_value_unsigned_int,omitempty"`                              // Maximum Allowed Value (for some types)
	MaxValueQuantity                  *Quantity                     `json:"maxValueQuantity,omitempty" bson:"max_value_quantity,omitempty"`                                     // Maximum Allowed Value (for some types)
	MaxLength                         *int                          `json:"maxLength,omitempty" bson:"max_length,omitempty"`                                                    // Max length for string type data
	Condition                         []string                      `json:"condition,omitempty" bson:"condition,omitempty"`                                                     // Reference to invariant about presence
	Constraint                        []ElementDefinitionConstraint `json:"constraint,omitempty" bson:"constraint,omitempty"`                                                   // Condition that must evaluate to true
	MustHaveValue                     *bool                         `json:"mustHaveValue,omitempty" bson:"must_have_value,omitempty"`                                           // For primitives, that a value must be present - not replaced by an extension
	ValueAlternatives                 []string                      `json:"valueAlternatives,omitempty" bson:"value_alternatives,omitempty"`                                    // Extensions that are allowed to replace a primitive value
	MustSupport                       *bool                         `json:"mustSupport,omitempty" bson:"must_support,omitempty"`                                                // If the element must be supported (discouraged - see obligations)
	IsModifier                        *bool                         `json:"isModifier,omitempty" bson:"is_modifier,omitempty"`                                                  // If this modifies the meaning of other elements
	IsModifierReason                  *string                       `json:"isModifierReason,omitempty" bson:"is_modifier_reason,omitempty"`                                     // Reason that this element is marked as a modifier
	IsSummary                         *bool                         `json:"isSummary,omitempty" bson:"is_summary,omitempty"`                                                    // Include when _summary = true?
	Binding                           *ElementDefinitionBinding     `json:"binding,omitempty" bson:"binding,omitempty"`                                                         // ValueSet details if this is coded
	Mapping                           []ElementDefinitionMapping    `json:"mapping,omitempty" bson:"mapping,omitempty"`                                                         // Map element to another set of definitions
}

ElementDefinition Type: Captures constraints on each element within the resource, profile, or extension.

func (*ElementDefinition) Validate

func (r *ElementDefinition) Validate() error

type ElementDefinitionBase

type ElementDefinitionBase struct {
	Id   *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Path string  `json:"path" bson:"path"`                 // Path that identifies the base element
	Min  int     `json:"min" bson:"min"`                   // Min cardinality of the base element
	Max  string  `json:"max" bson:"max"`                   // Max cardinality of the base element
}

func (*ElementDefinitionBase) Validate

func (r *ElementDefinitionBase) Validate() error

type ElementDefinitionBinding

type ElementDefinitionBinding struct {
	Id          *string                              `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Strength    string                               `json:"strength" bson:"strength"`                           // required | extensible | preferred | example | descriptive
	Description *string                              `json:"description,omitempty" bson:"description,omitempty"` // Guidance on the codes to be used
	ValueSet    *string                              `json:"valueSet,omitempty" bson:"value_set,omitempty"`      // Source of value set
	Additional  []ElementDefinitionBindingAdditional `json:"additional,omitempty" bson:"additional,omitempty"`   // Additional Bindings - more rules about the binding
}

func (*ElementDefinitionBinding) Validate

func (r *ElementDefinitionBinding) Validate() error

type ElementDefinitionBindingAdditional

type ElementDefinitionBindingAdditional struct {
	Id            *string        `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Key           *string        `json:"key,omitempty" bson:"key,omitempty"`                     // Unique identifier so additional bindings to be matched across profiles
	Purpose       string         `json:"purpose" bson:"purpose"`                                 // maximum | minimum | required | extensible | candidate | current | current-extensible | best-practice | preferred | ui | starter | component
	ValueSet      string         `json:"valueSet" bson:"value_set"`                              // The value set for the additional binding
	Documentation *string        `json:"documentation,omitempty" bson:"documentation,omitempty"` // Documentation of the purpose of use of the binding
	ShortDoco     *string        `json:"shortDoco,omitempty" bson:"short_doco,omitempty"`        // Concise documentation - for summary tables
	Usage         []UsageContext `json:"usage,omitempty" bson:"usage,omitempty"`                 // Qualifies the usage - jurisdiction, gender, workflow status etc.
	Any           *bool          `json:"any,omitempty" bson:"any,omitempty"`                     // Whether binding can applies to all repeats, or just one
}

func (*ElementDefinitionBindingAdditional) Validate

type ElementDefinitionConstraint

type ElementDefinitionConstraint struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Key          string  `json:"key" bson:"key"`                                       // Target of 'condition' reference above
	Requirements *string `json:"requirements,omitempty" bson:"requirements,omitempty"` // Why this constraint is necessary or appropriate
	Severity     string  `json:"severity" bson:"severity"`                             // error | warning
	Suppress     *bool   `json:"suppress,omitempty" bson:"suppress,omitempty"`         // Suppress warning or hint in profile
	Human        string  `json:"human" bson:"human"`                                   // Human description of constraint
	Expression   *string `json:"expression,omitempty" bson:"expression,omitempty"`     // FHIRPath expression of constraint
	Source       *string `json:"source,omitempty" bson:"source,omitempty"`             // Reference to original source of constraint
}

func (*ElementDefinitionConstraint) Validate

func (r *ElementDefinitionConstraint) Validate() error

type ElementDefinitionExample

type ElementDefinitionExample struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Label                      string                 `json:"label" bson:"label"`                                              // Describes the purpose of this example
	ValueBase64Binary          *string                `json:"valueBase64Binary" bson:"value_base64_binary"`                    // Value of Example (one of allowed types)
	ValueBoolean               *bool                  `json:"valueBoolean" bson:"value_boolean"`                               // Value of Example (one of allowed types)
	ValueCanonical             *string                `json:"valueCanonical" bson:"value_canonical"`                           // Value of Example (one of allowed types)
	ValueCode                  *string                `json:"valueCode" bson:"value_code"`                                     // Value of Example (one of allowed types)
	ValueDate                  *string                `json:"valueDate" bson:"value_date"`                                     // Value of Example (one of allowed types)
	ValueDateTime              *string                `json:"valueDateTime" bson:"value_date_time"`                            // Value of Example (one of allowed types)
	ValueDecimal               *float64               `json:"valueDecimal" bson:"value_decimal"`                               // Value of Example (one of allowed types)
	ValueId                    *string                `json:"valueId" bson:"value_id"`                                         // Value of Example (one of allowed types)
	ValueInstant               *string                `json:"valueInstant" bson:"value_instant"`                               // Value of Example (one of allowed types)
	ValueInteger               *int                   `json:"valueInteger" bson:"value_integer"`                               // Value of Example (one of allowed types)
	ValueInteger64             *int64                 `json:"valueInteger64" bson:"value_integer64"`                           // Value of Example (one of allowed types)
	ValueMarkdown              *string                `json:"valueMarkdown" bson:"value_markdown"`                             // Value of Example (one of allowed types)
	ValueOid                   *string                `json:"valueOid" bson:"value_oid"`                                       // Value of Example (one of allowed types)
	ValuePositiveInt           *int                   `json:"valuePositiveInt" bson:"value_positive_int"`                      // Value of Example (one of allowed types)
	ValueString                *string                `json:"valueString" bson:"value_string"`                                 // Value of Example (one of allowed types)
	ValueTime                  *string                `json:"valueTime" bson:"value_time"`                                     // Value of Example (one of allowed types)
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt" bson:"value_unsigned_int"`                      // Value of Example (one of allowed types)
	ValueUri                   *string                `json:"valueUri" bson:"value_uri"`                                       // Value of Example (one of allowed types)
	ValueUrl                   *string                `json:"valueUrl" bson:"value_url"`                                       // Value of Example (one of allowed types)
	ValueUuid                  *uuid                  `json:"valueUuid" bson:"value_uuid"`                                     // Value of Example (one of allowed types)
	ValueAddress               *Address               `json:"valueAddress" bson:"value_address"`                               // Value of Example (one of allowed types)
	ValueAge                   *Age                   `json:"valueAge" bson:"value_age"`                                       // Value of Example (one of allowed types)
	ValueAnnotation            *Annotation            `json:"valueAnnotation" bson:"value_annotation"`                         // Value of Example (one of allowed types)
	ValueAttachment            *Attachment            `json:"valueAttachment" bson:"value_attachment"`                         // Value of Example (one of allowed types)
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept" bson:"value_codeable_concept"`              // Value of Example (one of allowed types)
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference" bson:"value_codeable_reference"`          // Value of Example (one of allowed types)
	ValueCoding                *Coding                `json:"valueCoding" bson:"value_coding"`                                 // Value of Example (one of allowed types)
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint" bson:"value_contact_point"`                    // Value of Example (one of allowed types)
	ValueCount                 *Count                 `json:"valueCount" bson:"value_count"`                                   // Value of Example (one of allowed types)
	ValueDistance              *Distance              `json:"valueDistance" bson:"value_distance"`                             // Value of Example (one of allowed types)
	ValueDuration              *Duration              `json:"valueDuration" bson:"value_duration"`                             // Value of Example (one of allowed types)
	ValueHumanName             *HumanName             `json:"valueHumanName" bson:"value_human_name"`                          // Value of Example (one of allowed types)
	ValueIdentifier            *Identifier            `json:"valueIdentifier" bson:"value_identifier"`                         // Value of Example (one of allowed types)
	ValueMoney                 *Money                 `json:"valueMoney" bson:"value_money"`                                   // Value of Example (one of allowed types)
	ValuePeriod                *Period                `json:"valuePeriod" bson:"value_period"`                                 // Value of Example (one of allowed types)
	ValueQuantity              *Quantity              `json:"valueQuantity" bson:"value_quantity"`                             // Value of Example (one of allowed types)
	ValueRange                 *Range                 `json:"valueRange" bson:"value_range"`                                   // Value of Example (one of allowed types)
	ValueRatio                 *Ratio                 `json:"valueRatio" bson:"value_ratio"`                                   // Value of Example (one of allowed types)
	ValueRatioRange            *RatioRange            `json:"valueRatioRange" bson:"value_ratio_range"`                        // Value of Example (one of allowed types)
	ValueReference             *Reference             `json:"valueReference" bson:"value_reference"`                           // Value of Example (one of allowed types)
	ValueSampledData           *SampledData           `json:"valueSampledData" bson:"value_sampled_data"`                      // Value of Example (one of allowed types)
	ValueSignature             *Signature             `json:"valueSignature" bson:"value_signature"`                           // Value of Example (one of allowed types)
	ValueTiming                *Timing                `json:"valueTiming" bson:"value_timing"`                                 // Value of Example (one of allowed types)
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail" bson:"value_contact_detail"`                  // Value of Example (one of allowed types)
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement" bson:"value_data_requirement"`              // Value of Example (one of allowed types)
	ValueExpression            *Expression            `json:"valueExpression" bson:"value_expression"`                         // Value of Example (one of allowed types)
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition" bson:"value_parameter_definition"`      // Value of Example (one of allowed types)
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact" bson:"value_related_artifact"`              // Value of Example (one of allowed types)
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition" bson:"value_trigger_definition"`          // Value of Example (one of allowed types)
	ValueUsageContext          *UsageContext          `json:"valueUsageContext" bson:"value_usage_context"`                    // Value of Example (one of allowed types)
	ValueAvailability          *Availability          `json:"valueAvailability" bson:"value_availability"`                     // Value of Example (one of allowed types)
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail" bson:"value_extended_contact_detail"` // Value of Example (one of allowed types)
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail" bson:"value_virtual_service_detail"`   // Value of Example (one of allowed types)
	ValueDosage                *Dosage                `json:"valueDosage" bson:"value_dosage"`                                 // Value of Example (one of allowed types)
	ValueMeta                  *Meta                  `json:"valueMeta" bson:"value_meta"`                                     // Value of Example (one of allowed types)
}

func (*ElementDefinitionExample) Validate

func (r *ElementDefinitionExample) Validate() error

type ElementDefinitionMapping

type ElementDefinitionMapping struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Identity string  `json:"identity" bson:"identity"`                     // Reference to mapping declaration
	Language *string `json:"language,omitempty" bson:"language,omitempty"` // Computable language of mapping
	Map      string  `json:"map" bson:"map"`                               // Details of the mapping
	Comment  *string `json:"comment,omitempty" bson:"comment,omitempty"`   // Comments about the mapping or its use
}

func (*ElementDefinitionMapping) Validate

func (r *ElementDefinitionMapping) Validate() error

type ElementDefinitionSlicing

type ElementDefinitionSlicing struct {
	Id            *string                                 `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Discriminator []ElementDefinitionSlicingDiscriminator `json:"discriminator,omitempty" bson:"discriminator,omitempty"` // Element values that are used to distinguish the slices
	Description   *string                                 `json:"description,omitempty" bson:"description,omitempty"`     // Text description of how slicing works (or not)
	Ordered       *bool                                   `json:"ordered,omitempty" bson:"ordered,omitempty"`             // If elements must be in same order as slices
	Rules         string                                  `json:"rules" bson:"rules"`                                     // closed | open | openAtEnd
}

func (*ElementDefinitionSlicing) Validate

func (r *ElementDefinitionSlicing) Validate() error

type ElementDefinitionSlicingDiscriminator

type ElementDefinitionSlicingDiscriminator struct {
	Id   *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type string  `json:"type" bson:"type"`                 // value | exists | type | profile | position
	Path string  `json:"path" bson:"path"`                 // Path to element value
}

func (*ElementDefinitionSlicingDiscriminator) Validate

type ElementDefinitionType

type ElementDefinitionType struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Code          string   `json:"code" bson:"code"`                                        // Data type or Resource (reference to definition)
	Profile       []string `json:"profile,omitempty" bson:"profile,omitempty"`              // Profiles (StructureDefinition or IG) - one must apply
	TargetProfile []string `json:"targetProfile,omitempty" bson:"target_profile,omitempty"` // Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply
	Aggregation   []string `json:"aggregation,omitempty" bson:"aggregation,omitempty"`      // contained | referenced | bundled - how aggregated
	Versioning    *string  `json:"versioning,omitempty" bson:"versioning,omitempty"`        // either | independent | specific
}

func (*ElementDefinitionType) Validate

func (r *ElementDefinitionType) Validate() error

type EligibilityOutcome added in v0.0.3

type EligibilityOutcome string

EligibilityOutcome represents codes from http://hl7.org/fhir/ValueSet/eligibility-outcome

const (
	EligibilityOutcomeQueued   EligibilityOutcome = "queued"
	EligibilityOutcomeComplete EligibilityOutcome = "complete"
	EligibilityOutcomeError    EligibilityOutcome = "error"
	EligibilityOutcomePartial  EligibilityOutcome = "partial"
)

type EligibilityRequestPurpose added in v0.0.3

type EligibilityRequestPurpose string

EligibilityRequestPurpose represents codes from http://hl7.org/fhir/ValueSet/eligibilityrequest-purpose

const (
	EligibilityRequestPurposeAuthRequirements EligibilityRequestPurpose = "auth-requirements"
	EligibilityRequestPurposeBenefits         EligibilityRequestPurpose = "benefits"
	EligibilityRequestPurposeDiscovery        EligibilityRequestPurpose = "discovery"
	EligibilityRequestPurposeValidation       EligibilityRequestPurpose = "validation"
)

type EligibilityResponsePurpose added in v0.0.3

type EligibilityResponsePurpose string

EligibilityResponsePurpose represents codes from http://hl7.org/fhir/ValueSet/eligibilityresponse-purpose

const (
	EligibilityResponsePurposeAuthRequirements EligibilityResponsePurpose = "auth-requirements"
	EligibilityResponsePurposeBenefits         EligibilityResponsePurpose = "benefits"
	EligibilityResponsePurposeDiscovery        EligibilityResponsePurpose = "discovery"
	EligibilityResponsePurposeValidation       EligibilityResponsePurpose = "validation"
)

type EnableWhenBehavior added in v0.0.3

type EnableWhenBehavior string

EnableWhenBehavior represents codes from http://hl7.org/fhir/ValueSet/questionnaire-enable-behavior

const (
	EnableWhenBehaviorAll EnableWhenBehavior = "all"
	EnableWhenBehaviorAny EnableWhenBehavior = "any"
)

type Encounter

type Encounter struct {
	ResourceType       string                    `json:"resourceType" bson:"resource_type"`                                 // Type of resource
	Id                 *string                   `json:"id,omitempty" bson:"id,omitempty"`                                  // Logical id of this artifact
	Meta               *Meta                     `json:"meta,omitempty" bson:"meta,omitempty"`                              // Metadata about the resource
	ImplicitRules      *string                   `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`           // A set of rules under which this content was created
	Language           *string                   `json:"language,omitempty" bson:"language,omitempty"`                      // Language of the resource content
	Text               *Narrative                `json:"text,omitempty" bson:"text,omitempty"`                              // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage         `json:"contained,omitempty" bson:"contained,omitempty"`                    // Contained, inline Resources
	Identifier         []Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                  // Identifier(s) by which this encounter is known
	Status             string                    `json:"status" bson:"status"`                                              // planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
	BusinessStatus     []EncounterBusinessStatus `json:"businessStatus,omitempty" bson:"business_status,omitempty"`         // A granular, workflows specific set of statuses that apply to the encounter
	Class              []CodeableConcept         `json:"class,omitempty" bson:"class,omitempty"`                            // Classification of patient encounter context - e.g. Inpatient, outpatient
	Priority           *CodeableConcept          `json:"priority,omitempty" bson:"priority,omitempty"`                      // Indicates the urgency of the encounter
	Type               []CodeableConcept         `json:"type,omitempty" bson:"type,omitempty"`                              // Specific type of encounter (e.g. e-mail consultation, surgical day-care, ...)
	ServiceType        []CodeableReference       `json:"serviceType,omitempty" bson:"service_type,omitempty"`               // Specific type of service
	Subject            *Reference                `json:"subject,omitempty" bson:"subject,omitempty"`                        // The patient or group related to this encounter
	SubjectStatus      *CodeableConcept          `json:"subjectStatus,omitempty" bson:"subject_status,omitempty"`           // The current status of the subject in relation to the Encounter
	EpisodeOfCare      []Reference               `json:"episodeOfCare,omitempty" bson:"episode_of_care,omitempty"`          // Episode(s) of care that this encounter should be recorded against
	BasedOn            []Reference               `json:"basedOn,omitempty" bson:"based_on,omitempty"`                       // The request that initiated this encounter
	CareTeam           []Reference               `json:"careTeam,omitempty" bson:"care_team,omitempty"`                     // The group(s) that are allocated to participate in this encounter
	PartOf             *Reference                `json:"partOf,omitempty" bson:"part_of,omitempty"`                         // Another Encounter this encounter is part of
	ServiceProvider    *Reference                `json:"serviceProvider,omitempty" bson:"service_provider,omitempty"`       // The organization (facility) responsible for this encounter
	Participant        []EncounterParticipant    `json:"participant,omitempty" bson:"participant,omitempty"`                // List of participants involved in the encounter
	Appointment        []Reference               `json:"appointment,omitempty" bson:"appointment,omitempty"`                // The appointment that scheduled this encounter
	VirtualService     []VirtualServiceDetail    `json:"virtualService,omitempty" bson:"virtual_service,omitempty"`         // Connection details of a virtual service (e.g. conference call)
	ActualPeriod       *Period                   `json:"actualPeriod,omitempty" bson:"actual_period,omitempty"`             // The actual start and end time of the encounter
	PlannedStartDate   *string                   `json:"plannedStartDate,omitempty" bson:"planned_start_date,omitempty"`    // The planned start date/time (or admission date) of the encounter
	PlannedEndDate     *string                   `json:"plannedEndDate,omitempty" bson:"planned_end_date,omitempty"`        // The planned end date/time (or discharge date) of the encounter
	Length             *Duration                 `json:"length,omitempty" bson:"length,omitempty"`                          // Actual quantity of time the encounter lasted (less time absent)
	Reason             []EncounterReason         `json:"reason,omitempty" bson:"reason,omitempty"`                          // The list of medical reasons that are expected to be addressed during the episode of care
	Diagnosis          []EncounterDiagnosis      `json:"diagnosis,omitempty" bson:"diagnosis,omitempty"`                    // The list of diagnosis relevant to this encounter
	Account            []Reference               `json:"account,omitempty" bson:"account,omitempty"`                        // The set of accounts that may be used for billing for this Encounter
	DietPreference     []CodeableConcept         `json:"dietPreference,omitempty" bson:"diet_preference,omitempty"`         // Diet preferences reported by the patient
	SpecialArrangement []CodeableConcept         `json:"specialArrangement,omitempty" bson:"special_arrangement,omitempty"` // Wheelchair, translator, stretcher, etc
	SpecialCourtesy    []CodeableConcept         `json:"specialCourtesy,omitempty" bson:"special_courtesy,omitempty"`       // Special courtesies (VIP, board member)
	Admission          *EncounterAdmission       `json:"admission,omitempty" bson:"admission,omitempty"`                    // Details about the admission to a healthcare service
	Location           []EncounterLocation       `json:"location,omitempty" bson:"location,omitempty"`                      // List of locations where the patient has been
}

An interaction between healthcare provider(s), and/or patient(s) for the purpose of providing healthcare service(s) or assessing the health status of patient(s).

func (*Encounter) Validate

func (r *Encounter) Validate() error

type EncounterAdmission

type EncounterAdmission struct {
	Id                     *string          `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	PreAdmissionIdentifier *Identifier      `json:"preAdmissionIdentifier,omitempty" bson:"pre_admission_identifier,omitempty"` // Pre-admission identifier
	Origin                 *Reference       `json:"origin,omitempty" bson:"origin,omitempty"`                                   // The location/organization from which the patient came before admission
	AdmitSource            *CodeableConcept `json:"admitSource,omitempty" bson:"admit_source,omitempty"`                        // From where patient was admitted (physician referral, transfer)
	ReAdmission            *CodeableConcept `json:"reAdmission,omitempty" bson:"re_admission,omitempty"`                        // Indicates that the patient is being re-admitted
	Destination            *Reference       `json:"destination,omitempty" bson:"destination,omitempty"`                         // Location/organization to which the patient is discharged
	DischargeDisposition   *CodeableConcept `json:"dischargeDisposition,omitempty" bson:"discharge_disposition,omitempty"`      // Category or kind of location after discharge
}

func (*EncounterAdmission) Validate

func (r *EncounterAdmission) Validate() error

type EncounterBusinessStatus

type EncounterBusinessStatus struct {
	Id            *string          `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Code          *CodeableConcept `json:"code" bson:"code"`                                        // The current business status
	Type          *Coding          `json:"type,omitempty" bson:"type,omitempty"`                    // The kind of workflow the status is tracking
	EffectiveDate *string          `json:"effectiveDate,omitempty" bson:"effective_date,omitempty"` // When the encounter entered this business status
}

func (*EncounterBusinessStatus) Validate

func (r *EncounterBusinessStatus) Validate() error

type EncounterDiagnosis

type EncounterDiagnosis struct {
	Id        *string             `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Condition []CodeableReference `json:"condition,omitempty" bson:"condition,omitempty"` // The diagnosis relevant to the encounter
	Use       []CodeableConcept   `json:"use,omitempty" bson:"use,omitempty"`             // Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
}

func (*EncounterDiagnosis) Validate

func (r *EncounterDiagnosis) Validate() error

type EncounterLocation

type EncounterLocation struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Location *Reference       `json:"location" bson:"location"`                 // Location the encounter takes place
	Status   *string          `json:"status,omitempty" bson:"status,omitempty"` // planned | active | reserved | completed
	Form     *CodeableConcept `json:"form,omitempty" bson:"form,omitempty"`     // The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
	Period   *Period          `json:"period,omitempty" bson:"period,omitempty"` // Time period during which the patient was present at the location
}

func (*EncounterLocation) Validate

func (r *EncounterLocation) Validate() error

type EncounterLocationStatus added in v0.0.3

type EncounterLocationStatus string

EncounterLocationStatus represents codes from http://hl7.org/fhir/ValueSet/encounter-location-status

const (
	EncounterLocationStatusPlanned   EncounterLocationStatus = "planned"
	EncounterLocationStatusActive    EncounterLocationStatus = "active"
	EncounterLocationStatusReserved  EncounterLocationStatus = "reserved"
	EncounterLocationStatusCompleted EncounterLocationStatus = "completed"
)

type EncounterParticipant

type EncounterParticipant struct {
	Id     *string           `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Type   []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`     // Role of participant in encounter
	Period *Period           `json:"period,omitempty" bson:"period,omitempty"` // Period of time during the encounter that the participant participated
	Actor  *Reference        `json:"actor,omitempty" bson:"actor,omitempty"`   // The individual, device, or service participating in the encounter
}

func (*EncounterParticipant) Validate

func (r *EncounterParticipant) Validate() error

type EncounterReason

type EncounterReason struct {
	Id    *string             `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Use   []CodeableConcept   `json:"use,omitempty" bson:"use,omitempty"`     // What the reason value should be used for/as
	Value []CodeableReference `json:"value,omitempty" bson:"value,omitempty"` // Reason the encounter takes place (core or reference)
}

func (*EncounterReason) Validate

func (r *EncounterReason) Validate() error

type EncounterStatus added in v0.0.3

type EncounterStatus string

EncounterStatus represents codes from http://hl7.org/fhir/ValueSet/encounter-status

const (
	EncounterStatusPlanned        EncounterStatus = "planned"
	EncounterStatusInProgress     EncounterStatus = "in-progress"
	EncounterStatusOnHold         EncounterStatus = "on-hold"
	EncounterStatusDischarged     EncounterStatus = "discharged"
	EncounterStatusCompleted      EncounterStatus = "completed"
	EncounterStatusCancelled      EncounterStatus = "cancelled"
	EncounterStatusDiscontinued   EncounterStatus = "discontinued"
	EncounterStatusEnteredInError EncounterStatus = "entered-in-error"
	EncounterStatusUnknown        EncounterStatus = "unknown"
)

type Endpoint

type Endpoint struct {
	ResourceType         string            `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                   *string           `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                 *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules        *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language             *string           `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                 *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier           []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // Identifies this endpoint across multiple systems
	Status               string            `json:"status" bson:"status"`                                                  // active | limited | suspended | error | off | entered-in-error
	ConnectionType       []CodeableConcept `json:"connectionType" bson:"connection_type"`                                 // Protocol/Profile/Standard to be used with this endpoint connection
	Name                 *string           `json:"name,omitempty" bson:"name,omitempty"`                                  // A name that this endpoint can be identified by
	Description          *string           `json:"description,omitempty" bson:"description,omitempty"`                    // Additional details about the endpoint that could be displayed as further information to identify the description beyond its name
	EnvironmentType      []CodeableConcept `json:"environmentType,omitempty" bson:"environment_type,omitempty"`           // The type of environment(s) exposed at this endpoint
	ManagingOrganization *Reference        `json:"managingOrganization,omitempty" bson:"managing_organization,omitempty"` // Organization that manages this endpoint (might not be the organization that exposes the endpoint)
	Contact              []ContactPoint    `json:"contact,omitempty" bson:"contact,omitempty"`                            // Contact details for source (e.g. troubleshooting)
	Period               *Period           `json:"period,omitempty" bson:"period,omitempty"`                              // Interval the endpoint is expected to be operational
	Availability         *Availability     `json:"availability,omitempty" bson:"availability,omitempty"`                  // Times the endpoint is expected to be available (including exceptions)
	Payload              []EndpointPayload `json:"payload,omitempty" bson:"payload,omitempty"`                            // Set of payloads that are provided by this endpoint
	Address              string            `json:"address" bson:"address"`                                                // The technical base address for connecting to this endpoint
	Header               []string          `json:"header,omitempty" bson:"header,omitempty"`                              // Usage depends on the channel type
}

The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.

func (*Endpoint) Validate

func (r *Endpoint) Validate() error

type EndpointPayload

type EndpointPayload struct {
	Id               *string           `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Type             []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                          // The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
	MimeType         []string          `json:"mimeType,omitempty" bson:"mime_type,omitempty"`                 // Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
	ProfileCanonical []string          `json:"profileCanonical,omitempty" bson:"profile_canonical,omitempty"` // The profile that is expected at this endpoint
	ProfileUri       []string          `json:"profileUri,omitempty" bson:"profile_uri,omitempty"`             // The non-fhir based profile that is expected at this endpoint
}

func (*EndpointPayload) Validate

func (r *EndpointPayload) Validate() error

type EndpointStatus added in v0.0.3

type EndpointStatus string

EndpointStatus represents codes from http://hl7.org/fhir/ValueSet/endpoint-status

const (
	EndpointStatusActive         EndpointStatus = "active"
	EndpointStatusLimited        EndpointStatus = "limited"
	EndpointStatusSuspended      EndpointStatus = "suspended"
	EndpointStatusError          EndpointStatus = "error"
	EndpointStatusOff            EndpointStatus = "off"
	EndpointStatusEnteredInError EndpointStatus = "entered-in-error"
)

type EnrollmentOutcome added in v0.0.3

type EnrollmentOutcome string

EnrollmentOutcome represents codes from http://hl7.org/fhir/ValueSet/enrollment-outcome

const (
	EnrollmentOutcomeQueued   EnrollmentOutcome = "queued"
	EnrollmentOutcomeComplete EnrollmentOutcome = "complete"
	EnrollmentOutcomeError    EnrollmentOutcome = "error"
	EnrollmentOutcomePartial  EnrollmentOutcome = "partial"
)

type EnrollmentRequest

type EnrollmentRequest struct {
	ResourceType  string            `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string           `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Business Identifier
	Status        *string           `json:"status,omitempty" bson:"status,omitempty"`                // active | cancelled | draft | entered-in-error
	Created       *string           `json:"created,omitempty" bson:"created,omitempty"`              // Creation date
	Insurer       *Reference        `json:"insurer,omitempty" bson:"insurer,omitempty"`              // Target
	Provider      *Reference        `json:"provider,omitempty" bson:"provider,omitempty"`            // Responsible practitioner
	Candidate     *Reference        `json:"candidate,omitempty" bson:"candidate,omitempty"`          // The subject(s)to be enrolled
	Coverage      *Reference        `json:"coverage,omitempty" bson:"coverage,omitempty"`            // Insurance information
}

This resource provides the insurance enrollment details to the insurer regarding a specified coverage.

func (*EnrollmentRequest) Validate

func (r *EnrollmentRequest) Validate() error

type EnrollmentResponse

type EnrollmentResponse struct {
	ResourceType    string            `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id              *string           `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta            *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules   *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language        *string           `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	Text            *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                        // Text summary of the resource, for human interpretation
	Contained       []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`              // Contained, inline Resources
	Identifier      []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`            // Business Identifier
	Status          *string           `json:"status,omitempty" bson:"status,omitempty"`                    // active | cancelled | draft | entered-in-error
	Request         *Reference        `json:"request,omitempty" bson:"request,omitempty"`                  // Claim reference
	Outcome         *string           `json:"outcome,omitempty" bson:"outcome,omitempty"`                  // queued | complete | error | partial
	Disposition     *string           `json:"disposition,omitempty" bson:"disposition,omitempty"`          // Disposition Message
	Created         *string           `json:"created,omitempty" bson:"created,omitempty"`                  // Creation date
	Organization    *Reference        `json:"organization,omitempty" bson:"organization,omitempty"`        // Insurer
	RequestProvider *Reference        `json:"requestProvider,omitempty" bson:"request_provider,omitempty"` // Responsible practitioner
	Candidate       *Reference        `json:"candidate,omitempty" bson:"candidate,omitempty"`              // The subject(s)to be enrolled
}

This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource.

func (*EnrollmentResponse) Validate

func (r *EnrollmentResponse) Validate() error

type EpisodeOfCare

type EpisodeOfCare struct {
	ResourceType         string                       `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                   *string                      `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                 *Meta                        `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules        *string                      `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language             *string                      `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                 *Narrative                   `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage            `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier           []Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // Business Identifier(s) relevant for this EpisodeOfCare
	Status               string                       `json:"status" bson:"status"`                                                  // planned | waitlist | active | onhold | finished | cancelled | entered-in-error
	StatusHistory        []EpisodeOfCareStatusHistory `json:"statusHistory,omitempty" bson:"status_history,omitempty"`               // Past list of status codes (the current status may be included to cover the start date of the status)
	Type                 []CodeableConcept            `json:"type,omitempty" bson:"type,omitempty"`                                  // Type/class  - e.g. specialist referral, disease management
	Reason               []EpisodeOfCareReason        `json:"reason,omitempty" bson:"reason,omitempty"`                              // The list of medical reasons that are expected to be addressed during the episode of care
	Diagnosis            []EpisodeOfCareDiagnosis     `json:"diagnosis,omitempty" bson:"diagnosis,omitempty"`                        // The list of medical conditions that were addressed during the episode of care
	Subject              *Reference                   `json:"subject" bson:"subject"`                                                // The patient/group who is the focus of this episode of care
	ManagingOrganization *Reference                   `json:"managingOrganization,omitempty" bson:"managing_organization,omitempty"` // Organization that assumes responsibility for care coordination
	Period               *Period                      `json:"period,omitempty" bson:"period,omitempty"`                              // Interval during responsibility is assumed
	ReferralRequest      []Reference                  `json:"referralRequest,omitempty" bson:"referral_request,omitempty"`           // Originating Referral Request(s)
	CareManager          *Reference                   `json:"careManager,omitempty" bson:"care_manager,omitempty"`                   // Care manager/care coordinator for the patient
	CareTeam             []Reference                  `json:"careTeam,omitempty" bson:"care_team,omitempty"`                         // Other practitioners facilitating this episode of care
	Account              []Reference                  `json:"account,omitempty" bson:"account,omitempty"`                            // The set of accounts that may be used for billing for this EpisodeOfCare
}

An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.

func (*EpisodeOfCare) Validate

func (r *EpisodeOfCare) Validate() error

type EpisodeOfCareDiagnosis

type EpisodeOfCareDiagnosis struct {
	Id        *string             `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Condition []CodeableReference `json:"condition,omitempty" bson:"condition,omitempty"` // The medical condition that was addressed during the episode of care
	Use       []CodeableConcept   `json:"use,omitempty" bson:"use,omitempty"`             // Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)
}

func (*EpisodeOfCareDiagnosis) Validate

func (r *EpisodeOfCareDiagnosis) Validate() error

type EpisodeOfCareReason

type EpisodeOfCareReason struct {
	Id    *string             `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Use   []CodeableConcept   `json:"use,omitempty" bson:"use,omitempty"`     // What the reason value should be used for/as
	Value []CodeableReference `json:"value,omitempty" bson:"value,omitempty"` // Medical reason to be addressed
}

func (*EpisodeOfCareReason) Validate

func (r *EpisodeOfCareReason) Validate() error

type EpisodeOfCareStatus added in v0.0.3

type EpisodeOfCareStatus string

EpisodeOfCareStatus represents codes from http://hl7.org/fhir/ValueSet/episode-of-care-status

const (
	EpisodeOfCareStatusPlanned        EpisodeOfCareStatus = "planned"
	EpisodeOfCareStatusWaitlist       EpisodeOfCareStatus = "waitlist"
	EpisodeOfCareStatusActive         EpisodeOfCareStatus = "active"
	EpisodeOfCareStatusOnhold         EpisodeOfCareStatus = "onhold"
	EpisodeOfCareStatusFinished       EpisodeOfCareStatus = "finished"
	EpisodeOfCareStatusCancelled      EpisodeOfCareStatus = "cancelled"
	EpisodeOfCareStatusEnteredInError EpisodeOfCareStatus = "entered-in-error"
)

type EpisodeOfCareStatusHistory

type EpisodeOfCareStatusHistory struct {
	Id     *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Status string  `json:"status" bson:"status"`             // planned | waitlist | active | onhold | finished | cancelled | entered-in-error
	Period *Period `json:"period" bson:"period"`             // Duration the EpisodeOfCare was in the specified status
}

func (*EpisodeOfCareStatusHistory) Validate

func (r *EpisodeOfCareStatusHistory) Validate() error

type Evaluate

type Evaluate struct {
}

The evaluate operation processes the given Measure(s) to produce the corresponding MeasureReport(s). This operation expects that Measure resources used have a computable representation. The value of title elements in the resulting MeasureReport(clinicalreasoning-quality-reporting.html#measure-report) should be copied from the corresponding elements on the Measure.

func (*Evaluate) Validate

func (r *Evaluate) Validate() error

type EvaluateMeasure

type EvaluateMeasure struct {
}

The evaluate-measure operation is used to calculate an eMeasure and obtain the results

func (*EvaluateMeasure) Validate

func (r *EvaluateMeasure) Validate() error

type EventCapabilityMode added in v0.0.3

type EventCapabilityMode string

EventCapabilityMode represents codes from http://hl7.org/fhir/ValueSet/event-capability-mode

const (
	EventCapabilityModeSender   EventCapabilityMode = "sender"
	EventCapabilityModeReceiver EventCapabilityMode = "receiver"
)

type EventDefinition

type EventDefinition struct {
	ResourceType           string              `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string             `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string             `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string             `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this event definition, represented as a URI (globally unique)
	Identifier             []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the event definition
	Version                *string             `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the event definition
	VersionAlgorithmString *string             `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding             `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string             `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this event definition (computer friendly)
	Title                  *string             `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this event definition (human friendly)
	Subtitle               *string             `json:"subtitle,omitempty" bson:"subtitle,omitempty"`                               // Subordinate title of the event definition
	Status                 string              `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool               `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	SubjectCodeableConcept *CodeableConcept    `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"` // Type of individual the event definition is focused on
	SubjectReference       *Reference          `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`              // Type of individual the event definition is focused on
	Date                   *string             `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string             `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail     `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string             `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the event definition
	UseContext             []UsageContext      `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept   `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the event definition (if applicable)
	Purpose                *string             `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this event definition is defined
	Usage                  *string             `json:"usage,omitempty" bson:"usage,omitempty"`                                     // Describes the clinical usage of the event definition
	Copyright              *string             `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string             `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string             `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the event definition was approved by publisher
	LastReviewDate         *string             `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the event definition was last reviewed by the publisher
	EffectivePeriod        *Period             `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the event definition is expected to be used
	Topic                  []CodeableConcept   `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail     `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the content
	Editor                 []ContactDetail     `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the content
	Reviewer               []ContactDetail     `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the content
	Endorser               []ContactDetail     `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the content
	RelatedArtifact        []RelatedArtifact   `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
	Trigger                []TriggerDefinition `json:"trigger" bson:"trigger"`                                                     // "when" the event occurs (multiple = 'or')
}

The EventDefinition resource provides a reusable description of when a particular event can occur.

func (*EventDefinition) Validate

func (r *EventDefinition) Validate() error

type EventStatus added in v0.0.3

type EventStatus string

EventStatus represents codes from http://hl7.org/fhir/ValueSet/event-status

const (
	EventStatusPreparation    EventStatus = "preparation"
	EventStatusInProgress     EventStatus = "in-progress"
	EventStatusNotDone        EventStatus = "not-done"
	EventStatusOnHold         EventStatus = "on-hold"
	EventStatusStopped        EventStatus = "stopped"
	EventStatusCompleted      EventStatus = "completed"
	EventStatusEnteredInError EventStatus = "entered-in-error"
	EventStatusUnknown        EventStatus = "unknown"
)

type EventTiming added in v0.0.3

type EventTiming string

EventTiming represents codes from http://hl7.org/fhir/ValueSet/event-timing

const (
	EventTimingMORN      EventTiming = "MORN"
	EventTimingMORNEarly EventTiming = "MORN.early"
	EventTimingMORNLate  EventTiming = "MORN.late"
	EventTimingNOON      EventTiming = "NOON"
	EventTimingAFT       EventTiming = "AFT"
	EventTimingAFTEarly  EventTiming = "AFT.early"
	EventTimingAFTLate   EventTiming = "AFT.late"
	EventTimingEVE       EventTiming = "EVE"
	EventTimingEVEEarly  EventTiming = "EVE.early"
	EventTimingEVELate   EventTiming = "EVE.late"
	EventTimingNIGHT     EventTiming = "NIGHT"
	EventTimingPHS       EventTiming = "PHS"
	EventTimingIMD       EventTiming = "IMD"
	EventTimingHS        EventTiming = "HS"
	EventTimingWAKE      EventTiming = "WAKE"
	EventTimingC         EventTiming = "C"
	EventTimingCM        EventTiming = "CM"
	EventTimingCD        EventTiming = "CD"
	EventTimingCV        EventTiming = "CV"
	EventTimingAC        EventTiming = "AC"
	EventTimingACM       EventTiming = "ACM"
	EventTimingACD       EventTiming = "ACD"
	EventTimingACV       EventTiming = "ACV"
	EventTimingPC        EventTiming = "PC"
	EventTimingPCM       EventTiming = "PCM"
	EventTimingPCD       EventTiming = "PCD"
	EventTimingPCV       EventTiming = "PCV"
)

type Events

type Events struct {
}

This operation is used to search for and return notifications that have been previously triggered by a topic-based Subscription.

func (*Events) Validate

func (r *Events) Validate() error

type Everything

type Everything struct {
}

This operation is used to return all the information related to one or more products described in the resource or context on which this operation is invoked. The response is a bundle of type "searchset". At a minimum, the product resource(s) itself is returned, along with any other resources that the server has that are related to the products(s), and that are available for the given user. This is typically the marketing authorizations, ingredients, packages, therapeutic indications and so on. The server also returns whatever resources are needed to support the records - e.g. linked organizations, document references etc.

func (*Everything) Validate

func (r *Everything) Validate() error

type Evidence

type Evidence struct {
	ResourceType           string                       `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                      `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                        `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                      `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                      `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                   `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage            `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                      `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this evidence, represented as a globally unique URI
	Identifier             []Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the summary
	Version                *string                      `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of this summary
	VersionAlgorithmString *string                      `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                      `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                      `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this summary (machine friendly)
	Title                  *string                      `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this summary (human friendly)
	CiteAs                 *string                      `json:"citeAs,omitempty" bson:"cite_as,omitempty"`                                  // Display of how to cite this Evidence
	Status                 string                       `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                        `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                      `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	ApprovalDate           *string                      `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the summary was approved by publisher
	LastReviewDate         *string                      `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the summary was last reviewed by the publisher
	Author                 []ContactDetail              `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the content
	Publisher              *string                      `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail              `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Recorder               []ContactDetail              `json:"recorder,omitempty" bson:"recorder,omitempty"`                               // Who entered the data for the evidence
	Editor                 []ContactDetail              `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the content
	Reviewer               []ContactDetail              `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the content
	Endorser               []ContactDetail              `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the content
	UseContext             []UsageContext               `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Purpose                *string                      `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this Evidence is defined
	Copyright              *string                      `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Intellectual property ownership, may include restrictions on use
	CopyrightLabel         *string                      `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	RelatesTo              []EvidenceRelatesTo          `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`                            // Relationships to other Resources
	Description            *string                      `json:"description,omitempty" bson:"description,omitempty"`                         // Description of the particular summary
	Assertion              *string                      `json:"assertion,omitempty" bson:"assertion,omitempty"`                             // Declarative description of the Evidence
	Note                   []Annotation                 `json:"note,omitempty" bson:"note,omitempty"`                                       // Footnotes and/or explanatory notes
	VariableDefinition     []EvidenceVariableDefinition `json:"variableDefinition,omitempty" bson:"variable_definition,omitempty"`          // Description, classification, and definition of a single variable
	SynthesisType          []CodeableConcept            `json:"synthesisType,omitempty" bson:"synthesis_type,omitempty"`                    // The design of the synthesis (combination of studies) that produced this evidence
	StudyDesign            []CodeableConcept            `json:"studyDesign,omitempty" bson:"study_design,omitempty"`                        // The design of the study that produced this evidence
	Statistic              []EvidenceStatistic          `json:"statistic,omitempty" bson:"statistic,omitempty"`                             // Values and parameters for a single statistic
	Certainty              []EvidenceCertainty          `json:"certainty,omitempty" bson:"certainty,omitempty"`                             // Certainty or quality of the evidence
}

The Evidence Resource provides a machine-interpretable expression of an evidence concept including the evidence variables (e.g., population, exposures/interventions, comparators, outcomes, measured variables, confounding variables), the statistics, and the certainty of this evidence.

func (*Evidence) Validate

func (r *Evidence) Validate() error

type EvidenceCertainty

type EvidenceCertainty struct {
	Id           *string             `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Description  *string             `json:"description,omitempty" bson:"description,omitempty"`   // Textual description of certainty
	Note         []Annotation        `json:"note,omitempty" bson:"note,omitempty"`                 // Footnotes and/or explanatory notes
	Type         *CodeableConcept    `json:"type,omitempty" bson:"type,omitempty"`                 // Aspect of certainty being rated
	Rating       *CodeableConcept    `json:"rating,omitempty" bson:"rating,omitempty"`             // Assessment or judgement of the aspect
	Rater        []string            `json:"rater,omitempty" bson:"rater,omitempty"`               // Individual or group who did the rating
	Subcomponent []EvidenceCertainty `json:"subcomponent,omitempty" bson:"subcomponent,omitempty"` // A domain or subdomain of certainty
}

func (*EvidenceCertainty) Validate

func (r *EvidenceCertainty) Validate() error

type EvidenceRelatesTo

type EvidenceRelatesTo struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type" bson:"type"`                          // documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as | reprint | reprint-of | summarizes
	TargetUri        *string          `json:"targetUri" bson:"target_uri"`               // The artifact that is related to this Evidence
	TargetAttachment *Attachment      `json:"targetAttachment" bson:"target_attachment"` // The artifact that is related to this Evidence
	TargetCanonical  *string          `json:"targetCanonical" bson:"target_canonical"`   // The artifact that is related to this Evidence
	TargetReference  *Reference       `json:"targetReference" bson:"target_reference"`   // The artifact that is related to this Evidence
	TargetMarkdown   *string          `json:"targetMarkdown" bson:"target_markdown"`     // The artifact that is related to this Evidence
}

func (*EvidenceRelatesTo) Validate

func (r *EvidenceRelatesTo) Validate() error

type EvidenceStatistic

type EvidenceStatistic struct {
	Id                  *string                                `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Description         *string                                `json:"description,omitempty" bson:"description,omitempty"`                  // A natural language summary of the statistic
	Note                []Annotation                           `json:"note,omitempty" bson:"note,omitempty"`                                // Footnotes and/or explanatory notes
	StatisticType       *CodeableConcept                       `json:"statisticType,omitempty" bson:"statistic_type,omitempty"`             // Type of statistic, e.g., relative risk
	Category            *CodeableConcept                       `json:"category,omitempty" bson:"category,omitempty"`                        // Associated category for categorical variable
	Quantity            *Quantity                              `json:"quantity,omitempty" bson:"quantity,omitempty"`                        // Statistic value
	NumberOfEvents      *int                                   `json:"numberOfEvents,omitempty" bson:"number_of_events,omitempty"`          // The number of events associated with the statistic
	NumberAffected      *int                                   `json:"numberAffected,omitempty" bson:"number_affected,omitempty"`           // The number of participants affected
	SampleSize          *EvidenceStatisticSampleSize           `json:"sampleSize,omitempty" bson:"sample_size,omitempty"`                   // Count of participants in the study sample
	AttributeEstimate   []EvidenceStatisticAttributeEstimate   `json:"attributeEstimate,omitempty" bson:"attribute_estimate,omitempty"`     // An attribute of the Statistic
	ModelCharacteristic []EvidenceStatisticModelCharacteristic `json:"modelCharacteristic,omitempty" bson:"model_characteristic,omitempty"` // An aspect of the statistical model
}

func (*EvidenceStatistic) Validate

func (r *EvidenceStatistic) Validate() error

type EvidenceStatisticAttributeEstimate

type EvidenceStatisticAttributeEstimate struct {
	Id                *string                              `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Description       *string                              `json:"description,omitempty" bson:"description,omitempty"`              // Textual description of the attribute estimate
	Note              []Annotation                         `json:"note,omitempty" bson:"note,omitempty"`                            // Footnote or explanatory note about the estimate
	Type              *CodeableConcept                     `json:"type,omitempty" bson:"type,omitempty"`                            // The type of attribute estimate, e.g., confidence interval or p value
	Quantity          *Quantity                            `json:"quantity,omitempty" bson:"quantity,omitempty"`                    // The singular quantity of the attribute estimate, for attribute estimates represented as single values, which may include a unit of measure
	Level             *float64                             `json:"level,omitempty" bson:"level,omitempty"`                          // Level of confidence interval, e.g., 0.95 for 95% confidence interval
	Range             *Range                               `json:"range,omitempty" bson:"range,omitempty"`                          // Lower and upper bound values of the attribute estimate
	AttributeEstimate []EvidenceStatisticAttributeEstimate `json:"attributeEstimate,omitempty" bson:"attribute_estimate,omitempty"` // A nested attribute estimate; which is the attribute estimate of an attribute estimate
}

func (*EvidenceStatisticAttributeEstimate) Validate

type EvidenceStatisticModelCharacteristic

type EvidenceStatisticModelCharacteristic struct {
	Id                   *string                                        `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Code                 *CodeableConcept                               `json:"code" bson:"code"`                                                       // Model specification
	ValueQuantity        *Quantity                                      `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // The specific value (when paired with code)
	ValueRange           *Range                                         `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // The specific value (when paired with code)
	ValueCodeableConcept *CodeableConcept                               `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // The specific value (when paired with code)
	Intended             *bool                                          `json:"intended,omitempty" bson:"intended,omitempty"`                           // The plan for analysis
	Applied              *bool                                          `json:"applied,omitempty" bson:"applied,omitempty"`                             // This model characteristic is part of the analysis that was applied, whether or not the analysis followed the plan
	Variable             []EvidenceStatisticModelCharacteristicVariable `json:"variable,omitempty" bson:"variable,omitempty"`                           // A variable adjusted for in the adjusted analysis
	Attribute            []EvidenceStatisticAttributeEstimate           `json:"attribute,omitempty" bson:"attribute,omitempty"`                         // An attribute of the model characteristic
}

func (*EvidenceStatisticModelCharacteristic) Validate

type EvidenceStatisticModelCharacteristicVariable

type EvidenceStatisticModelCharacteristicVariable struct {
	Id                 *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	VariableDefinition *Reference        `json:"variableDefinition" bson:"variable_definition"`           // Description and definition of the variable
	Handling           *CodeableConcept  `json:"handling,omitempty" bson:"handling,omitempty"`            // boolean | continuous | dichotomous | ordinal | polychotomous | time-to-event | not-specified
	ValueCategory      []CodeableConcept `json:"valueCategory,omitempty" bson:"value_category,omitempty"` // Qualitative label used for grouping values of a dichotomous, ordinal, or polychotomous variable
	ValueQuantity      []Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"` // Quantitative label used for grouping values of a dichotomous, ordinal, or polychotomous variable
	ValueRange         []Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`       // Range of quantitative labels used for grouping values of a dichotomous, ordinal, or polychotomous variable
}

func (*EvidenceStatisticModelCharacteristicVariable) Validate

type EvidenceStatisticSampleSize

type EvidenceStatisticSampleSize struct {
	Id                   *string      `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Description          *string      `json:"description,omitempty" bson:"description,omitempty"`                     // Textual description of sample size for statistic
	Note                 []Annotation `json:"note,omitempty" bson:"note,omitempty"`                                   // Footnote or explanatory note about the sample size
	NumberOfStudies      *int         `json:"numberOfStudies,omitempty" bson:"number_of_studies,omitempty"`           // Number of contributing studies
	NumberOfParticipants *int         `json:"numberOfParticipants,omitempty" bson:"number_of_participants,omitempty"` // Total number of participants
	KnownDataCount       *int         `json:"knownDataCount,omitempty" bson:"known_data_count,omitempty"`             // Number of participants with known results for measured variables
	NumberAnalyzed       *int         `json:"numberAnalyzed,omitempty" bson:"number_analyzed,omitempty"`              // Total number of participants who were analayzed
}

func (*EvidenceStatisticSampleSize) Validate

func (r *EvidenceStatisticSampleSize) Validate() error

type EvidenceVariable

type EvidenceVariable struct {
	ResourceType             string                               `json:"resourceType" bson:"resource_type"`                                              // Type of resource
	Id                       *string                              `json:"id,omitempty" bson:"id,omitempty"`                                               // Logical id of this artifact
	Meta                     *Meta                                `json:"meta,omitempty" bson:"meta,omitempty"`                                           // Metadata about the resource
	ImplicitRules            *string                              `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                        // A set of rules under which this content was created
	Language                 *string                              `json:"language,omitempty" bson:"language,omitempty"`                                   // Language of the resource content
	Text                     *Narrative                           `json:"text,omitempty" bson:"text,omitempty"`                                           // Text summary of the resource, for human interpretation
	Contained                []json.RawMessage                    `json:"contained,omitempty" bson:"contained,omitempty"`                                 // Contained, inline Resources
	Url                      *string                              `json:"url,omitempty" bson:"url,omitempty"`                                             // Canonical identifier for this evidence variable, represented as a URI (globally unique)
	Identifier               []Identifier                         `json:"identifier,omitempty" bson:"identifier,omitempty"`                               // Additional identifier for the evidence variable
	Version                  *string                              `json:"version,omitempty" bson:"version,omitempty"`                                     // Business version of the evidence variable
	VersionAlgorithmString   *string                              `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"`     // How to compare versions
	VersionAlgorithmCoding   *Coding                              `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"`     // How to compare versions
	Name                     *string                              `json:"name,omitempty" bson:"name,omitempty"`                                           // Name for this evidence variable (computer friendly)
	Title                    *string                              `json:"title,omitempty" bson:"title,omitempty"`                                         // Name for this evidence variable (human friendly)
	ShortTitle               *string                              `json:"shortTitle,omitempty" bson:"short_title,omitempty"`                              // Title for use in informal contexts
	CiteAs                   *string                              `json:"citeAs,omitempty" bson:"cite_as,omitempty"`                                      // Display of how to cite this EvidenceVariable
	Status                   string                               `json:"status" bson:"status"`                                                           // draft | active | retired | unknown
	Experimental             *bool                                `json:"experimental,omitempty" bson:"experimental,omitempty"`                           // For testing only - never for real usage
	Date                     *string                              `json:"date,omitempty" bson:"date,omitempty"`                                           // Date last changed
	Author                   []ContactDetail                      `json:"author,omitempty" bson:"author,omitempty"`                                       // Who authored the content
	Publisher                *string                              `json:"publisher,omitempty" bson:"publisher,omitempty"`                                 // Name of the publisher/steward (organization or individual)
	Contact                  []ContactDetail                      `json:"contact,omitempty" bson:"contact,omitempty"`                                     // Contact details for the publisher
	Recorder                 []ContactDetail                      `json:"recorder,omitempty" bson:"recorder,omitempty"`                                   // Who entered the data for the evidence variable
	Editor                   []ContactDetail                      `json:"editor,omitempty" bson:"editor,omitempty"`                                       // Who edited the content
	Reviewer                 []ContactDetail                      `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                                   // Who reviewed the content
	Endorser                 []ContactDetail                      `json:"endorser,omitempty" bson:"endorser,omitempty"`                                   // Who endorsed the content
	Description              *string                              `json:"description,omitempty" bson:"description,omitempty"`                             // Natural language description of the evidence variable
	Note                     []Annotation                         `json:"note,omitempty" bson:"note,omitempty"`                                           // Used for footnotes or explanatory notes
	UseContext               []UsageContext                       `json:"useContext,omitempty" bson:"use_context,omitempty"`                              // The context that the content is intended to support
	Purpose                  *string                              `json:"purpose,omitempty" bson:"purpose,omitempty"`                                     // Why this EvidenceVariable is defined
	Copyright                *string                              `json:"copyright,omitempty" bson:"copyright,omitempty"`                                 // Intellectual property ownership, may include restrictions on use
	CopyrightLabel           *string                              `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                      // Copyright holder and year(s)
	ApprovalDate             *string                              `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                          // When the resource was approved by publisher
	LastReviewDate           *string                              `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                     // When the resource was last reviewed by the publisher
	EffectivePeriod          *Period                              `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                    // When the resource is expected to be used
	RelatesTo                []EvidenceVariableRelatesTo          `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`                                // Relationships to other Resources
	Actual                   *bool                                `json:"actual,omitempty" bson:"actual,omitempty"`                                       // Actual or conceptual
	Definition               *CodeableReference                   `json:"definition,omitempty" bson:"definition,omitempty"`                               // The meaning of the evidence variable
	DefinitionModifier       []EvidenceVariableDefinitionModifier `json:"definitionModifier,omitempty" bson:"definition_modifier,omitempty"`              // Further specification of the definition
	Handling                 *CodeableConcept                     `json:"handling,omitempty" bson:"handling,omitempty"`                                   // boolean | continuous | dichotomous | ordinal | polychotomous | time-to-event | not-specified
	Category                 []EvidenceVariableCategory           `json:"category,omitempty" bson:"category,omitempty"`                                   // A grouping for dichotomous, ordinal, or polychotomouos variables
	Conditional              *Expression                          `json:"conditional,omitempty" bson:"conditional,omitempty"`                             // Condition determining whether the data will be collected
	Classifier               []CodeableConcept                    `json:"classifier,omitempty" bson:"classifier,omitempty"`                               // Classification
	DataStorage              []EvidenceVariableDataStorage        `json:"dataStorage,omitempty" bson:"data_storage,omitempty"`                            // How the data element (value of the variable) is found
	Timing                   *RelativeTime                        `json:"timing,omitempty" bson:"timing,omitempty"`                                       // When the variable is observed
	Period                   *Period                              `json:"period,omitempty" bson:"period,omitempty"`                                       // Calendar-based timing when the variable is observed
	Constraint               []EvidenceVariableConstraint         `json:"constraint,omitempty" bson:"constraint,omitempty"`                               // Limit on acceptability of data value
	MissingDataMeaning       []CodeableConcept                    `json:"missingDataMeaning,omitempty" bson:"missing_data_meaning,omitempty"`             // How missing data can be interpreted
	UnacceptableDataHandling []CodeableConcept                    `json:"unacceptableDataHandling,omitempty" bson:"unacceptable_data_handling,omitempty"` // How erroneous data is processed
}

The EvidenceVariable resource describes an element that knowledge (Evidence) is about.

func (*EvidenceVariable) Validate

func (r *EvidenceVariable) Validate() error

type EvidenceVariableCategory

type EvidenceVariableCategory struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Name                 *string          `json:"name,omitempty" bson:"name,omitempty"`                                   // Description of the grouping
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // Definition of the grouping
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // Definition of the grouping
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // Definition of the grouping
	ValueReference       *Reference       `json:"valueReference,omitempty" bson:"value_reference,omitempty"`              // Definition of the grouping
}

func (*EvidenceVariableCategory) Validate

func (r *EvidenceVariableCategory) Validate() error

type EvidenceVariableConstraint

type EvidenceVariableConstraint struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                                          // Unique id for inter-element referencing
	Conditional           *CodeableConcept `json:"conditional,omitempty" bson:"conditional,omitempty"`                        // Condition determining whether this constraint applies
	MinimumQuantity       *Quantity        `json:"minimumQuantity,omitempty" bson:"minimum_quantity,omitempty"`               // The lowest permissible value of the variable
	MaximumQuantity       *Quantity        `json:"maximumQuantity,omitempty" bson:"maximum_quantity,omitempty"`               // The highest permissible value of the variable
	EarliestDateTime      *string          `json:"earliestDateTime,omitempty" bson:"earliest_date_time,omitempty"`            // The earliest permissible value of the variable
	LatestDateTime        *string          `json:"latestDateTime,omitempty" bson:"latest_date_time,omitempty"`                // The latest permissible value of the variable
	MinimumStringLength   *int             `json:"minimumStringLength,omitempty" bson:"minimum_string_length,omitempty"`      // The lowest number of characters allowed for a value of the variable
	MaximumStringLength   *int             `json:"maximumStringLength,omitempty" bson:"maximum_string_length,omitempty"`      // The highest number of characters allowed for a value of the variable
	Code                  *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                                      // Rule for acceptable data values
	Expression            *Expression      `json:"expression,omitempty" bson:"expression,omitempty"`                          // Rule for acceptable data values, as an Expression
	ExpectedValueSet      *Reference       `json:"expectedValueSet,omitempty" bson:"expected_value_set,omitempty"`            // List of anticipated values used to express value of the variable
	ExpectedUnitsValueSet *Reference       `json:"expectedUnitsValueSet,omitempty" bson:"expected_units_value_set,omitempty"` // List of anticipated values used to express units for the value of the variable
	AnyValueAllowed       *bool            `json:"anyValueAllowed,omitempty" bson:"any_value_allowed,omitempty"`              // Permissibility of unanticipated value used to express value of the variable
}

func (*EvidenceVariableConstraint) Validate

func (r *EvidenceVariableConstraint) Validate() error

type EvidenceVariableDataStorage

type EvidenceVariableDataStorage struct {
	Id        *string                       `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Datatype  *CodeableConcept              `json:"datatype,omitempty" bson:"datatype,omitempty"`   // Type of data used to express value of the variable
	Path      *string                       `json:"path,omitempty" bson:"path,omitempty"`           // Where to find the data element in the dataset
	Delimiter *string                       `json:"delimiter,omitempty" bson:"delimiter,omitempty"` // Character(s) separating values in a string-based list
	Component []EvidenceVariableDataStorage `json:"component,omitempty" bson:"component,omitempty"`
}

func (*EvidenceVariableDataStorage) Validate

func (r *EvidenceVariableDataStorage) Validate() error

type EvidenceVariableDefinition

type EvidenceVariableDefinition struct {
	Id                 *string          `json:"id,omitempty" bson:"id,omitempty"`                                  // Unique id for inter-element referencing
	Description        *string          `json:"description,omitempty" bson:"description,omitempty"`                // A text description or summary of the variable
	Note               []Annotation     `json:"note,omitempty" bson:"note,omitempty"`                              // Footnotes and/or explanatory notes
	VariableRole       string           `json:"variableRole" bson:"variable_role"`                                 // population | exposure | outcome | covariate
	RoleSubtype        *CodeableConcept `json:"roleSubtype,omitempty" bson:"role_subtype,omitempty"`               // Sub-classification of the role of the variable
	ComparatorCategory *string          `json:"comparatorCategory,omitempty" bson:"comparator_category,omitempty"` // The reference value used for comparison
	Observed           *Reference       `json:"observed,omitempty" bson:"observed,omitempty"`                      // Definition of the actual variable related to the statistic(s)
	Intended           *Reference       `json:"intended,omitempty" bson:"intended,omitempty"`                      // Definition of the intended variable related to the Evidence
	DirectnessMatch    *CodeableConcept `json:"directnessMatch,omitempty" bson:"directness_match,omitempty"`       // low | moderate | high | exact
}

func (*EvidenceVariableDefinition) Validate

func (r *EvidenceVariableDefinition) Validate() error

type EvidenceVariableDefinitionModifier

type EvidenceVariableDefinitionModifier struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code                 *CodeableConcept `json:"code" bson:"code"`                                   // Attribute of the definition
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // Specification of the definition attribute
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // Specification of the definition attribute
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // Specification of the definition attribute
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // Specification of the definition attribute
	ValuePeriod          *Period          `json:"valuePeriod" bson:"value_period"`                    // Specification of the definition attribute
	ValueRelativeTime    *RelativeTime    `json:"valueRelativeTime" bson:"value_relative_time"`       // Specification of the definition attribute
	ValueReference       *Reference       `json:"valueReference" bson:"value_reference"`              // Specification of the definition attribute
	ValueExpression      *Expression      `json:"valueExpression" bson:"value_expression"`            // Specification of the definition attribute
	ValueUri             *string          `json:"valueUri" bson:"value_uri"`                          // Specification of the definition attribute
}

func (*EvidenceVariableDefinitionModifier) Validate

type EvidenceVariableRelatesTo

type EvidenceVariableRelatesTo struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type" bson:"type"`                          // documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as | reprint | reprint-of | summarizes
	TargetUri        *string          `json:"targetUri" bson:"target_uri"`               // The artifact that is related to this EvidenceVariable
	TargetAttachment *Attachment      `json:"targetAttachment" bson:"target_attachment"` // The artifact that is related to this EvidenceVariable
	TargetCanonical  *string          `json:"targetCanonical" bson:"target_canonical"`   // The artifact that is related to this EvidenceVariable
	TargetReference  *Reference       `json:"targetReference" bson:"target_reference"`   // The artifact that is related to this EvidenceVariable
	TargetMarkdown   *string          `json:"targetMarkdown" bson:"target_markdown"`     // The artifact that is related to this EvidenceVariable
}

func (*EvidenceVariableRelatesTo) Validate

func (r *EvidenceVariableRelatesTo) Validate() error

type EvidenceVariableRole added in v0.0.3

type EvidenceVariableRole string

EvidenceVariableRole represents codes from http://hl7.org/fhir/ValueSet/variable-role

const (
	EvidenceVariableRolePopulation EvidenceVariableRole = "population"
	EvidenceVariableRoleExposure   EvidenceVariableRole = "exposure"
	EvidenceVariableRoleOutcome    EvidenceVariableRole = "outcome"
	EvidenceVariableRoleCovariate  EvidenceVariableRole = "covariate"
)

type ExampleScenario

type ExampleScenario struct {
	ResourceType           string                    `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                   `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                     `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                   `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                   `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage         `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                   `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this example scenario, represented as a URI (globally unique)
	Identifier             []Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the example scenario
	Version                *string                   `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the example scenario
	VersionAlgorithmString *string                   `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                   `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                   `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this example scenario (computer friendly)
	Title                  *string                   `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this example scenario (human friendly)
	Status                 string                    `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                     `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                   `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                   `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail           `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                   `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the ExampleScenario
	UseContext             []UsageContext            `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept         `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the example scenario (if applicable)
	Purpose                *string                   `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // The purpose of the example, e.g. to illustrate a scenario
	Copyright              *string                   `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                   `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Actor                  []ExampleScenarioActor    `json:"actor,omitempty" bson:"actor,omitempty"`                                     // Individual involved in exchange
	Instance               []ExampleScenarioInstance `json:"instance,omitempty" bson:"instance,omitempty"`                               // Data used in the scenario
	Process                []ExampleScenarioProcess  `json:"process,omitempty" bson:"process,omitempty"`                                 // Major process within scenario
}

A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.

func (*ExampleScenario) Validate

func (r *ExampleScenario) Validate() error

type ExampleScenarioActor

type ExampleScenarioActor struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Key         string  `json:"key" bson:"key"`                                     // ID or acronym of the actor
	Type        *string `json:"type,omitempty" bson:"type,omitempty"`               // person | system | collective | other
	Title       string  `json:"title" bson:"title"`                                 // Label for actor when rendering
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Details about actor
	Definition  *string `json:"definition,omitempty" bson:"definition,omitempty"`   // Formal definition of actor
}

func (*ExampleScenarioActor) Validate

func (r *ExampleScenarioActor) Validate() error

type ExampleScenarioInstance

type ExampleScenarioInstance struct {
	Id                        *string                                    `json:"id,omitempty" bson:"id,omitempty"`                                                 // Unique id for inter-element referencing
	Key                       string                                     `json:"key" bson:"key"`                                                                   // ID or acronym of the instance
	StructureType             *Coding                                    `json:"structureType" bson:"structure_type"`                                              // Data structure for example
	StructureVersion          *string                                    `json:"structureVersion,omitempty" bson:"structure_version,omitempty"`                    // E.g. 4.0.1
	StructureProfileCanonical *string                                    `json:"structureProfileCanonical,omitempty" bson:"structure_profile_canonical,omitempty"` // Rules instance adheres to
	StructureProfileUri       *string                                    `json:"structureProfileUri,omitempty" bson:"structure_profile_uri,omitempty"`             // Rules instance adheres to
	Title                     string                                     `json:"title" bson:"title"`                                                               // Label for instance
	Description               *string                                    `json:"description,omitempty" bson:"description,omitempty"`                               // Human-friendly description of the instance
	Content                   *Reference                                 `json:"content,omitempty" bson:"content,omitempty"`                                       // Example instance data
	Version                   []ExampleScenarioInstanceVersion           `json:"version,omitempty" bson:"version,omitempty"`                                       // Snapshot of instance that changes
	ContainedInstance         []ExampleScenarioInstanceContainedInstance `json:"containedInstance,omitempty" bson:"contained_instance,omitempty"`                  // Resources contained in the instance
}

func (*ExampleScenarioInstance) Validate

func (r *ExampleScenarioInstance) Validate() error

type ExampleScenarioInstanceContainedInstance

type ExampleScenarioInstanceContainedInstance struct {
	Id                *string `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	InstanceReference string  `json:"instanceReference" bson:"instance_reference"`                   // Key of contained instance
	VersionReference  *string `json:"versionReference,omitempty" bson:"version_reference,omitempty"` // Key of contained instance version
}

func (*ExampleScenarioInstanceContainedInstance) Validate

type ExampleScenarioInstanceVersion

type ExampleScenarioInstanceVersion struct {
	Id          *string    `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Key         string     `json:"key" bson:"key"`                                     // ID or acronym of the version
	Title       string     `json:"title" bson:"title"`                                 // Label for instance version
	Description *string    `json:"description,omitempty" bson:"description,omitempty"` // Details about version
	Content     *Reference `json:"content,omitempty" bson:"content,omitempty"`         // Example instance version data
}

func (*ExampleScenarioInstanceVersion) Validate

func (r *ExampleScenarioInstanceVersion) Validate() error

type ExampleScenarioProcess

type ExampleScenarioProcess struct {
	Id             *string                      `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Title          string                       `json:"title" bson:"title"`                                        // Label for procss
	Description    *string                      `json:"description,omitempty" bson:"description,omitempty"`        // Human-friendly description of the process
	PreConditions  *string                      `json:"preConditions,omitempty" bson:"pre_conditions,omitempty"`   // Status before process starts
	PostConditions *string                      `json:"postConditions,omitempty" bson:"post_conditions,omitempty"` // Status after successful completion
	Step           []ExampleScenarioProcessStep `json:"step,omitempty" bson:"step,omitempty"`                      // Event within of the process
}

func (*ExampleScenarioProcess) Validate

func (r *ExampleScenarioProcess) Validate() error

type ExampleScenarioProcessStep

type ExampleScenarioProcessStep struct {
	Id          *string                                 `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Number      *string                                 `json:"number,omitempty" bson:"number,omitempty"`           // Sequential number of the step
	Process     *ExampleScenarioProcess                 `json:"process,omitempty" bson:"process,omitempty"`         // Step is nested process
	Workflow    *string                                 `json:"workflow,omitempty" bson:"workflow,omitempty"`       // Step is nested workflow
	Operation   *ExampleScenarioProcessStepOperation    `json:"operation,omitempty" bson:"operation,omitempty"`     // Step is simple action
	Alternative []ExampleScenarioProcessStepAlternative `json:"alternative,omitempty" bson:"alternative,omitempty"` // Alternate non-typical step action
	Pause       *bool                                   `json:"pause,omitempty" bson:"pause,omitempty"`             // Pause in the flow?
}

func (*ExampleScenarioProcessStep) Validate

func (r *ExampleScenarioProcessStep) Validate() error

type ExampleScenarioProcessStepAlternative

type ExampleScenarioProcessStepAlternative struct {
	Id          *string                      `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Title       string                       `json:"title" bson:"title"`                                 // Label for alternative
	Description *string                      `json:"description,omitempty" bson:"description,omitempty"` // Human-readable description of option
	Step        []ExampleScenarioProcessStep `json:"step,omitempty" bson:"step,omitempty"`               // Alternative action(s)
}

func (*ExampleScenarioProcessStepAlternative) Validate

type ExampleScenarioProcessStepOperation

type ExampleScenarioProcessStepOperation struct {
	Id              *string                                   `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	Type            *Coding                                   `json:"type,omitempty" bson:"type,omitempty"`                        // Kind of action
	Title           string                                    `json:"title" bson:"title"`                                          // Label for step
	Initiator       *string                                   `json:"initiator,omitempty" bson:"initiator,omitempty"`              // Who starts the operation
	Receiver        *string                                   `json:"receiver,omitempty" bson:"receiver,omitempty"`                // Who receives the operation
	Description     *string                                   `json:"description,omitempty" bson:"description,omitempty"`          // Human-friendly description of the operation
	InitiatorActive *bool                                     `json:"initiatorActive,omitempty" bson:"initiator_active,omitempty"` // Initiator stays active?
	ReceiverActive  *bool                                     `json:"receiverActive,omitempty" bson:"receiver_active,omitempty"`   // Receiver stays active?
	Request         *ExampleScenarioInstanceContainedInstance `json:"request,omitempty" bson:"request,omitempty"`                  // Instance transmitted on invocation
	Response        *ExampleScenarioInstanceContainedInstance `json:"response,omitempty" bson:"response,omitempty"`                // Instance transmitted on invocation response
}

func (*ExampleScenarioProcessStepOperation) Validate

type Expand

type Expand struct {
}

The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation. If the operation is not called at the instance level, one of the in parameters url, context or valueSet must be provided. An expanded value set will be returned, or an OperationOutcome with an error message.

func (*Expand) Validate

func (r *Expand) Validate() error

type ExplanationOfBenefit

type ExplanationOfBenefit struct {
	ResourceType          string                                 `json:"resourceType" bson:"resource_type"`                                        // Type of resource
	Id                    *string                                `json:"id,omitempty" bson:"id,omitempty"`                                         // Logical id of this artifact
	Meta                  *Meta                                  `json:"meta,omitempty" bson:"meta,omitempty"`                                     // Metadata about the resource
	ImplicitRules         *string                                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                  // A set of rules under which this content was created
	Language              *string                                `json:"language,omitempty" bson:"language,omitempty"`                             // Language of the resource content
	Text                  *Narrative                             `json:"text,omitempty" bson:"text,omitempty"`                                     // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage                      `json:"contained,omitempty" bson:"contained,omitempty"`                           // Contained, inline Resources
	Identifier            []Identifier                           `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // Business Identifier for the resource
	TraceNumber           []Identifier                           `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                      // Number for tracking
	Status                string                                 `json:"status" bson:"status"`                                                     // active | cancelled | draft | entered-in-error
	StatusReason          *string                                `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                    // Reason for status change
	Type                  *CodeableConcept                       `json:"type" bson:"type"`                                                         // Category or discipline
	SubType               *CodeableConcept                       `json:"subType,omitempty" bson:"sub_type,omitempty"`                              // More granular claim type
	Use                   string                                 `json:"use" bson:"use"`                                                           // claim | preauthorization | predetermination
	Subject               *Reference                             `json:"subject" bson:"subject"`                                                   // The recipient(s) of the products and services
	BillablePeriod        *Period                                `json:"billablePeriod,omitempty" bson:"billable_period,omitempty"`                // Relevant time frame for the claim
	Created               string                                 `json:"created" bson:"created"`                                                   // Response creation date
	Enterer               *Reference                             `json:"enterer,omitempty" bson:"enterer,omitempty"`                               // Author of the claim
	Insurer               *Reference                             `json:"insurer,omitempty" bson:"insurer,omitempty"`                               // Party responsible for reimbursement
	Provider              *Reference                             `json:"provider,omitempty" bson:"provider,omitempty"`                             // Party responsible for the claim
	Priority              *CodeableConcept                       `json:"priority,omitempty" bson:"priority,omitempty"`                             // Desired processing urgency
	FundsReserveRequested *CodeableConcept                       `json:"fundsReserveRequested,omitempty" bson:"funds_reserve_requested,omitempty"` // For whom to reserve funds
	FundsReserve          *CodeableConcept                       `json:"fundsReserve,omitempty" bson:"funds_reserve,omitempty"`                    // Funds reserved status
	Related               []ExplanationOfBenefitRelated          `json:"related,omitempty" bson:"related,omitempty"`                               // Prior or corollary claims
	Prescription          *Reference                             `json:"prescription,omitempty" bson:"prescription,omitempty"`                     // Prescription authorizing services or products
	OriginalPrescription  *Reference                             `json:"originalPrescription,omitempty" bson:"original_prescription,omitempty"`    // Original prescription if superceded by fulfiller
	Event                 []ExplanationOfBenefitEvent            `json:"event,omitempty" bson:"event,omitempty"`                                   // Event information
	Payee                 *ExplanationOfBenefitPayee             `json:"payee,omitempty" bson:"payee,omitempty"`                                   // Recipient of benefits payable
	Referral              *Reference                             `json:"referral,omitempty" bson:"referral,omitempty"`                             // Treatment Referral
	Encounter             []Reference                            `json:"encounter,omitempty" bson:"encounter,omitempty"`                           // Encounters associated with the listed treatments
	Facility              *Reference                             `json:"facility,omitempty" bson:"facility,omitempty"`                             // Servicing Facility
	Claim                 *Reference                             `json:"claim,omitempty" bson:"claim,omitempty"`                                   // Claim reference
	ClaimResponse         *Reference                             `json:"claimResponse,omitempty" bson:"claim_response,omitempty"`                  // Claim response reference
	Outcome               string                                 `json:"outcome" bson:"outcome"`                                                   // queued | complete | error | partial
	Decision              *CodeableConcept                       `json:"decision,omitempty" bson:"decision,omitempty"`                             // Result of the adjudication
	Disposition           *string                                `json:"disposition,omitempty" bson:"disposition,omitempty"`                       // Disposition Message
	PreAuthRef            []string                               `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"`                       // Preauthorization reference
	PreAuthRefPeriod      []Period                               `json:"preAuthRefPeriod,omitempty" bson:"pre_auth_ref_period,omitempty"`          // Preauthorization in-effect period
	DiagnosisRelatedGroup *CodeableConcept                       `json:"diagnosisRelatedGroup,omitempty" bson:"diagnosis_related_group,omitempty"` // Package billing code
	CareTeam              []ExplanationOfBenefitCareTeam         `json:"careTeam,omitempty" bson:"care_team,omitempty"`                            // Care Team members
	SupportingInfo        []ExplanationOfBenefitSupportingInfo   `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`                // Supporting information
	Diagnosis             []ExplanationOfBenefitDiagnosis        `json:"diagnosis,omitempty" bson:"diagnosis,omitempty"`                           // Pertinent diagnosis information
	Procedure             []ExplanationOfBenefitProcedure        `json:"procedure,omitempty" bson:"procedure,omitempty"`                           // Clinical procedures performed
	Precedence            *int                                   `json:"precedence,omitempty" bson:"precedence,omitempty"`                         // Precedence (primary, secondary, etc.)
	Insurance             []ExplanationOfBenefitInsurance        `json:"insurance,omitempty" bson:"insurance,omitempty"`                           // Patient insurance information
	Accident              *ExplanationOfBenefitAccident          `json:"accident,omitempty" bson:"accident,omitempty"`                             // Details of the event
	PatientPaid           *Money                                 `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                      // Paid by the patient
	Item                  []ExplanationOfBenefitItem             `json:"item,omitempty" bson:"item,omitempty"`                                     // Product or service provided
	AddItem               []ExplanationOfBenefitAddItem          `json:"addItem,omitempty" bson:"add_item,omitempty"`                              // Insurer added line items
	Adjudication          []ExplanationOfBenefitItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                     // Header-level adjudication
	Total                 []ExplanationOfBenefitTotal            `json:"total,omitempty" bson:"total,omitempty"`                                   // Adjudication totals
	Payment               *ExplanationOfBenefitPayment           `json:"payment,omitempty" bson:"payment,omitempty"`                               // Payment Details
	FormCode              *CodeableConcept                       `json:"formCode,omitempty" bson:"form_code,omitempty"`                            // Printed form identifier
	Form                  *Attachment                            `json:"form,omitempty" bson:"form,omitempty"`                                     // Printed reference or actual form
	ProcessNote           []ExplanationOfBenefitProcessNote      `json:"processNote,omitempty" bson:"process_note,omitempty"`                      // Note concerning adjudication
	BenefitPeriod         *Period                                `json:"benefitPeriod,omitempty" bson:"benefit_period,omitempty"`                  // When the benefits are applicable
	BenefitBalance        []ExplanationOfBenefitBenefitBalance   `json:"benefitBalance,omitempty" bson:"benefit_balance,omitempty"`                // Balance by Benefit Category
}

This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.

func (*ExplanationOfBenefit) Validate

func (r *ExplanationOfBenefit) Validate() error

type ExplanationOfBenefitAccident

type ExplanationOfBenefitAccident struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Date              *string          `json:"date,omitempty" bson:"date,omitempty"`                            // When the incident occurred
	Type              *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                            // The nature of the accident
	LocationAddress   *Address         `json:"locationAddress,omitempty" bson:"location_address,omitempty"`     // Where the event occurred
	LocationReference *Reference       `json:"locationReference,omitempty" bson:"location_reference,omitempty"` // Where the event occurred
}

func (*ExplanationOfBenefitAccident) Validate

func (r *ExplanationOfBenefitAccident) Validate() error

type ExplanationOfBenefitAddItem

type ExplanationOfBenefitAddItem struct {
	Id                      *string                                `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	ItemSequence            []int                                  `json:"itemSequence,omitempty" bson:"item_sequence,omitempty"`                        // Item sequence number
	DetailSequence          []int                                  `json:"detailSequence,omitempty" bson:"detail_sequence,omitempty"`                    // Detail sequence number
	SubDetailSequence       []int                                  `json:"subDetailSequence,omitempty" bson:"sub_detail_sequence,omitempty"`             // Subdetail sequence number
	TraceNumber             []Identifier                           `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                          // Number for tracking
	Subject                 *Reference                             `json:"subject,omitempty" bson:"subject,omitempty"`                                   // The recipient of the products and services
	InformationSequence     []int                                  `json:"informationSequence,omitempty" bson:"information_sequence,omitempty"`          // Applicable exception and supporting information
	Provider                []Reference                            `json:"provider,omitempty" bson:"provider,omitempty"`                                 // Authorized providers
	Revenue                 *CodeableConcept                       `json:"revenue,omitempty" bson:"revenue,omitempty"`                                   // Revenue or cost center code
	Category                *CodeableConcept                       `json:"category,omitempty" bson:"category,omitempty"`                                 // Benefit classification
	ProductOrService        *CodeableConcept                       `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`               // Billing, service, product, or drug code
	ProductOrServiceEnd     *CodeableConcept                       `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"`        // End of a range of codes
	Request                 []Reference                            `json:"request,omitempty" bson:"request,omitempty"`                                   // Request or Referral for Service
	Modifier                []CodeableConcept                      `json:"modifier,omitempty" bson:"modifier,omitempty"`                                 // Service/Product billing modifiers
	ProgramCode             []CodeableConcept                      `json:"programCode,omitempty" bson:"program_code,omitempty"`                          // Program the product or service is provided under
	ServicedDate            *string                                `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`                        // Date or dates of service or product delivery
	ServicedPeriod          *Period                                `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"`                    // Date or dates of service or product delivery
	LocationCodeableConcept *CodeableConcept                       `json:"locationCodeableConcept,omitempty" bson:"location_codeable_concept,omitempty"` // Place of service or where product was supplied
	LocationAddress         *Address                               `json:"locationAddress,omitempty" bson:"location_address,omitempty"`                  // Place of service or where product was supplied
	LocationReference       *Reference                             `json:"locationReference,omitempty" bson:"location_reference,omitempty"`              // Place of service or where product was supplied
	PatientPaid             *Money                                 `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                          // Paid by the patient
	Quantity                *Quantity                              `json:"quantity,omitempty" bson:"quantity,omitempty"`                                 // Count of products or services
	UnitPrice               *Money                                 `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                              // Fee, charge or cost per item
	Factor                  *float64                               `json:"factor,omitempty" bson:"factor,omitempty"`                                     // Price scaling factor
	Tax                     *Money                                 `json:"tax,omitempty" bson:"tax,omitempty"`                                           // Total tax
	Net                     *Money                                 `json:"net,omitempty" bson:"net,omitempty"`                                           // Total item cost
	BodySite                []ExplanationOfBenefitAddItemBodySite  `json:"bodySite,omitempty" bson:"body_site,omitempty"`                                // Anatomical location
	NoteNumber              []int                                  `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                            // Applicable note numbers
	ReviewOutcome           *ExplanationOfBenefitItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`                      // Additem level adjudication results
	Adjudication            []ExplanationOfBenefitItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                         // Added items adjudication
	Detail                  []ExplanationOfBenefitAddItemDetail    `json:"detail,omitempty" bson:"detail,omitempty"`                                     // Insurer added line items
}

func (*ExplanationOfBenefitAddItem) Validate

func (r *ExplanationOfBenefitAddItem) Validate() error

type ExplanationOfBenefitAddItemBodySite

type ExplanationOfBenefitAddItemBodySite struct {
	Id      *string             `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	Site    []CodeableReference `json:"site" bson:"site"`                            // Location
	SubSite []CodeableConcept   `json:"subSite,omitempty" bson:"sub_site,omitempty"` // Sub-location
}

func (*ExplanationOfBenefitAddItemBodySite) Validate

type ExplanationOfBenefitAddItemDetail

type ExplanationOfBenefitAddItemDetail struct {
	Id                  *string                                      `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	TraceNumber         []Identifier                                 `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept                             `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	ProductOrService    *CodeableConcept                             `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept                             `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept                            `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	PatientPaid         *Money                                       `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                   // Paid by the patient
	Quantity            *Quantity                                    `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                                       `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                                     `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                                       `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                                       `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	NoteNumber          []int                                        `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                     // Applicable note numbers
	ReviewOutcome       *ExplanationOfBenefitItemReviewOutcome       `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`               // Additem detail level adjudication results
	Adjudication        []ExplanationOfBenefitItemAdjudication       `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                  // Added items adjudication
	SubDetail           []ExplanationOfBenefitAddItemDetailSubDetail `json:"subDetail,omitempty" bson:"sub_detail,omitempty"`                       // Insurer added line items
}

func (*ExplanationOfBenefitAddItemDetail) Validate

type ExplanationOfBenefitAddItemDetailSubDetail

type ExplanationOfBenefitAddItemDetailSubDetail struct {
	Id                  *string                                `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	TraceNumber         []Identifier                           `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept                       `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	ProductOrService    *CodeableConcept                       `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept                       `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept                      `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	PatientPaid         *Money                                 `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                   // Paid by the patient
	Quantity            *Quantity                              `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                                 `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                               `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                                 `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                                 `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	NoteNumber          []int                                  `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                     // Applicable note numbers
	ReviewOutcome       *ExplanationOfBenefitItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`               // Additem subdetail level adjudication results
	Adjudication        []ExplanationOfBenefitItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                  // Added items adjudication
}

func (*ExplanationOfBenefitAddItemDetailSubDetail) Validate

type ExplanationOfBenefitBenefitBalance

type ExplanationOfBenefitBenefitBalance struct {
	Id          *string                                       `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Category    *CodeableConcept                              `json:"category" bson:"category"`                           // Benefit classification
	Excluded    *bool                                         `json:"excluded,omitempty" bson:"excluded,omitempty"`       // Excluded from the plan
	Name        *string                                       `json:"name,omitempty" bson:"name,omitempty"`               // Short name for the benefit
	Description *string                                       `json:"description,omitempty" bson:"description,omitempty"` // Description of the benefit or services covered
	Network     *CodeableConcept                              `json:"network,omitempty" bson:"network,omitempty"`         // In or out of network
	Unit        *CodeableConcept                              `json:"unit,omitempty" bson:"unit,omitempty"`               // Individual or family
	Term        *CodeableConcept                              `json:"term,omitempty" bson:"term,omitempty"`               // Annual or lifetime
	Financial   []ExplanationOfBenefitBenefitBalanceFinancial `json:"financial,omitempty" bson:"financial,omitempty"`     // Benefit Summary
}

func (*ExplanationOfBenefitBenefitBalance) Validate

type ExplanationOfBenefitBenefitBalanceFinancial

type ExplanationOfBenefitBenefitBalanceFinancial struct {
	Id                 *string          `json:"id,omitempty" bson:"id,omitempty"`                                   // Unique id for inter-element referencing
	Type               *CodeableConcept `json:"type" bson:"type"`                                                   // Benefit classification
	AllowedUnsignedInt *int             `json:"allowedUnsignedInt,omitempty" bson:"allowed_unsigned_int,omitempty"` // Benefits allowed
	AllowedString      *string          `json:"allowedString,omitempty" bson:"allowed_string,omitempty"`            // Benefits allowed
	AllowedMoney       *Money           `json:"allowedMoney,omitempty" bson:"allowed_money,omitempty"`              // Benefits allowed
	UsedUnsignedInt    *int             `json:"usedUnsignedInt,omitempty" bson:"used_unsigned_int,omitempty"`       // Benefits used
	UsedMoney          *Money           `json:"usedMoney,omitempty" bson:"used_money,omitempty"`                    // Benefits used
}

func (*ExplanationOfBenefitBenefitBalanceFinancial) Validate

type ExplanationOfBenefitCareTeam

type ExplanationOfBenefitCareTeam struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Sequence  int              `json:"sequence" bson:"sequence"`                       // Order of care team
	Provider  *Reference       `json:"provider" bson:"provider"`                       // Practitioner or organization
	Role      *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`           // Function within the team
	Specialty *CodeableConcept `json:"specialty,omitempty" bson:"specialty,omitempty"` // Practitioner or provider specialization
}

func (*ExplanationOfBenefitCareTeam) Validate

func (r *ExplanationOfBenefitCareTeam) Validate() error

type ExplanationOfBenefitDiagnosis

type ExplanationOfBenefitDiagnosis struct {
	Id                       *string           `json:"id,omitempty" bson:"id,omitempty"`                           // Unique id for inter-element referencing
	Sequence                 int               `json:"sequence" bson:"sequence"`                                   // Diagnosis instance identifier
	DiagnosisCodeableConcept *CodeableConcept  `json:"diagnosisCodeableConcept" bson:"diagnosis_codeable_concept"` // Nature of illness or problem
	DiagnosisReference       *Reference        `json:"diagnosisReference" bson:"diagnosis_reference"`              // Nature of illness or problem
	Type                     []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                       // Timing or nature of the diagnosis
	OnAdmission              *CodeableConcept  `json:"onAdmission,omitempty" bson:"on_admission,omitempty"`        // Present on admission
}

func (*ExplanationOfBenefitDiagnosis) Validate

func (r *ExplanationOfBenefitDiagnosis) Validate() error

type ExplanationOfBenefitEvent

type ExplanationOfBenefitEvent struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Type         *CodeableConcept `json:"type" bson:"type"`                   // Specific event
	WhenDateTime *string          `json:"whenDateTime" bson:"when_date_time"` // Occurance date or period
	WhenPeriod   *Period          `json:"whenPeriod" bson:"when_period"`      // Occurance date or period
}

func (*ExplanationOfBenefitEvent) Validate

func (r *ExplanationOfBenefitEvent) Validate() error

type ExplanationOfBenefitInsurance

type ExplanationOfBenefitInsurance struct {
	Id         *string    `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Focal      bool       `json:"focal" bson:"focal"`                                 // Coverage to be used for adjudication
	Coverage   *Reference `json:"coverage" bson:"coverage"`                           // Insurance information
	PreAuthRef []string   `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"` // Prior authorization reference number
}

func (*ExplanationOfBenefitInsurance) Validate

func (r *ExplanationOfBenefitInsurance) Validate() error

type ExplanationOfBenefitItem

type ExplanationOfBenefitItem struct {
	Id                      *string                                `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	Sequence                int                                    `json:"sequence" bson:"sequence"`                                                     // Item instance identifier
	CareTeamSequence        []int                                  `json:"careTeamSequence,omitempty" bson:"care_team_sequence,omitempty"`               // Applicable care team members
	DiagnosisSequence       []int                                  `json:"diagnosisSequence,omitempty" bson:"diagnosis_sequence,omitempty"`              // Applicable diagnoses
	ProcedureSequence       []int                                  `json:"procedureSequence,omitempty" bson:"procedure_sequence,omitempty"`              // Applicable procedures
	InformationSequence     []int                                  `json:"informationSequence,omitempty" bson:"information_sequence,omitempty"`          // Applicable exception and supporting information
	TraceNumber             []Identifier                           `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                          // Number for tracking
	Subject                 *Reference                             `json:"subject,omitempty" bson:"subject,omitempty"`                                   // The recipient of the products and services
	Revenue                 *CodeableConcept                       `json:"revenue,omitempty" bson:"revenue,omitempty"`                                   // Revenue or cost center code
	Category                *CodeableConcept                       `json:"category,omitempty" bson:"category,omitempty"`                                 // Benefit classification
	ProductOrService        *CodeableConcept                       `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`               // Billing, service, product, or drug code
	ProductOrServiceEnd     *CodeableConcept                       `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"`        // End of a range of codes
	Request                 []Reference                            `json:"request,omitempty" bson:"request,omitempty"`                                   // Request or Referral for Service
	Modifier                []CodeableConcept                      `json:"modifier,omitempty" bson:"modifier,omitempty"`                                 // Product or service billing modifiers
	ProgramCode             []CodeableConcept                      `json:"programCode,omitempty" bson:"program_code,omitempty"`                          // Program the product or service is provided under
	ServicedDate            *string                                `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`                        // Date or dates of service or product delivery
	ServicedPeriod          *Period                                `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"`                    // Date or dates of service or product delivery
	LocationCodeableConcept *CodeableConcept                       `json:"locationCodeableConcept,omitempty" bson:"location_codeable_concept,omitempty"` // Place of service or where product was supplied
	LocationAddress         *Address                               `json:"locationAddress,omitempty" bson:"location_address,omitempty"`                  // Place of service or where product was supplied
	LocationReference       *Reference                             `json:"locationReference,omitempty" bson:"location_reference,omitempty"`              // Place of service or where product was supplied
	PatientPaid             *Money                                 `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                          // Paid by the patient
	Quantity                *Quantity                              `json:"quantity,omitempty" bson:"quantity,omitempty"`                                 // Count of products or services
	UnitPrice               *Money                                 `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                              // Fee, charge or cost per item
	Factor                  *float64                               `json:"factor,omitempty" bson:"factor,omitempty"`                                     // Price scaling factor
	Tax                     *Money                                 `json:"tax,omitempty" bson:"tax,omitempty"`                                           // Total tax
	Net                     *Money                                 `json:"net,omitempty" bson:"net,omitempty"`                                           // Total item cost
	Udi                     []Reference                            `json:"udi,omitempty" bson:"udi,omitempty"`                                           // Unique device identifier
	BodySite                []ExplanationOfBenefitItemBodySite     `json:"bodySite,omitempty" bson:"body_site,omitempty"`                                // Anatomical location
	Encounter               []Reference                            `json:"encounter,omitempty" bson:"encounter,omitempty"`                               // Encounters associated with the listed treatments
	NoteNumber              []int                                  `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                            // Applicable note numbers
	ReviewOutcome           *ExplanationOfBenefitItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`                      // Adjudication results
	Adjudication            []ExplanationOfBenefitItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                         // Adjudication details
	Detail                  []ExplanationOfBenefitItemDetail       `json:"detail,omitempty" bson:"detail,omitempty"`                                     // Additional items
}

func (*ExplanationOfBenefitItem) Validate

func (r *ExplanationOfBenefitItem) Validate() error

type ExplanationOfBenefitItemAdjudication

type ExplanationOfBenefitItemAdjudication struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Category     *CodeableConcept `json:"category" bson:"category"`                              // Type of adjudication information
	Reason       *CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`              // Explanation of adjudication outcome
	Amount       *Money           `json:"amount,omitempty" bson:"amount,omitempty"`              // Monetary amount
	Quantity     *Quantity        `json:"quantity,omitempty" bson:"quantity,omitempty"`          // Non-monitary value
	DecisionDate *string          `json:"decisionDate,omitempty" bson:"decision_date,omitempty"` // When was adjudication performed
}

func (*ExplanationOfBenefitItemAdjudication) Validate

type ExplanationOfBenefitItemBodySite

type ExplanationOfBenefitItemBodySite struct {
	Id      *string             `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	Site    []CodeableReference `json:"site" bson:"site"`                            // Location
	SubSite []CodeableConcept   `json:"subSite,omitempty" bson:"sub_site,omitempty"` // Sub-location
}

func (*ExplanationOfBenefitItemBodySite) Validate

type ExplanationOfBenefitItemDetail

type ExplanationOfBenefitItemDetail struct {
	Id                  *string                                   `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	Sequence            int                                       `json:"sequence" bson:"sequence"`                                              // Product or service provided
	TraceNumber         []Identifier                              `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept                          `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	Category            *CodeableConcept                          `json:"category,omitempty" bson:"category,omitempty"`                          // Benefit classification
	ProductOrService    *CodeableConcept                          `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept                          `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept                         `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	ProgramCode         []CodeableConcept                         `json:"programCode,omitempty" bson:"program_code,omitempty"`                   // Program the product or service is provided under
	PatientPaid         *Money                                    `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                   // Paid by the patient
	Quantity            *Quantity                                 `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                                    `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                                  `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                                    `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                                    `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	Udi                 []Reference                               `json:"udi,omitempty" bson:"udi,omitempty"`                                    // Unique device identifier
	NoteNumber          []int                                     `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                     // Applicable note numbers
	ReviewOutcome       *ExplanationOfBenefitItemReviewOutcome    `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`               // Detail level adjudication results
	Adjudication        []ExplanationOfBenefitItemAdjudication    `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                  // Detail level adjudication details
	SubDetail           []ExplanationOfBenefitItemDetailSubDetail `json:"subDetail,omitempty" bson:"sub_detail,omitempty"`                       // Additional items
}

func (*ExplanationOfBenefitItemDetail) Validate

func (r *ExplanationOfBenefitItemDetail) Validate() error

type ExplanationOfBenefitItemDetailSubDetail

type ExplanationOfBenefitItemDetailSubDetail struct {
	Id                  *string                                `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	Sequence            int                                    `json:"sequence" bson:"sequence"`                                              // Product or service provided
	TraceNumber         []Identifier                           `json:"traceNumber,omitempty" bson:"trace_number,omitempty"`                   // Number for tracking
	Revenue             *CodeableConcept                       `json:"revenue,omitempty" bson:"revenue,omitempty"`                            // Revenue or cost center code
	Category            *CodeableConcept                       `json:"category,omitempty" bson:"category,omitempty"`                          // Benefit classification
	ProductOrService    *CodeableConcept                       `json:"productOrService,omitempty" bson:"product_or_service,omitempty"`        // Billing, service, product, or drug code
	ProductOrServiceEnd *CodeableConcept                       `json:"productOrServiceEnd,omitempty" bson:"product_or_service_end,omitempty"` // End of a range of codes
	Modifier            []CodeableConcept                      `json:"modifier,omitempty" bson:"modifier,omitempty"`                          // Service/Product billing modifiers
	ProgramCode         []CodeableConcept                      `json:"programCode,omitempty" bson:"program_code,omitempty"`                   // Program the product or service is provided under
	PatientPaid         *Money                                 `json:"patientPaid,omitempty" bson:"patient_paid,omitempty"`                   // Paid by the patient
	Quantity            *Quantity                              `json:"quantity,omitempty" bson:"quantity,omitempty"`                          // Count of products or services
	UnitPrice           *Money                                 `json:"unitPrice,omitempty" bson:"unit_price,omitempty"`                       // Fee, charge or cost per item
	Factor              *float64                               `json:"factor,omitempty" bson:"factor,omitempty"`                              // Price scaling factor
	Tax                 *Money                                 `json:"tax,omitempty" bson:"tax,omitempty"`                                    // Total tax
	Net                 *Money                                 `json:"net,omitempty" bson:"net,omitempty"`                                    // Total item cost
	Udi                 []Reference                            `json:"udi,omitempty" bson:"udi,omitempty"`                                    // Unique device identifier
	NoteNumber          []int                                  `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                     // Applicable note numbers
	ReviewOutcome       *ExplanationOfBenefitItemReviewOutcome `json:"reviewOutcome,omitempty" bson:"review_outcome,omitempty"`               // Subdetail level adjudication results
	Adjudication        []ExplanationOfBenefitItemAdjudication `json:"adjudication,omitempty" bson:"adjudication,omitempty"`                  // Subdetail level adjudication details
}

func (*ExplanationOfBenefitItemDetailSubDetail) Validate

type ExplanationOfBenefitItemReviewOutcome

type ExplanationOfBenefitItemReviewOutcome struct {
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Decision      *CodeableConcept  `json:"decision,omitempty" bson:"decision,omitempty"`             // Result of the adjudication
	Reason        []CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`                 // Reason for result of the adjudication
	PreAuthRef    *string           `json:"preAuthRef,omitempty" bson:"pre_auth_ref,omitempty"`       // Preauthorization reference
	PreAuthPeriod *Period           `json:"preAuthPeriod,omitempty" bson:"pre_auth_period,omitempty"` // Preauthorization reference effective period
}

func (*ExplanationOfBenefitItemReviewOutcome) Validate

type ExplanationOfBenefitPayee

type ExplanationOfBenefitPayee struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Type  *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`   // Category of recipient
	Party *Reference       `json:"party,omitempty" bson:"party,omitempty"` // Recipient reference
}

func (*ExplanationOfBenefitPayee) Validate

func (r *ExplanationOfBenefitPayee) Validate() error

type ExplanationOfBenefitPayment

type ExplanationOfBenefitPayment struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                          // Partial or complete payment
	Adjustment       *Money           `json:"adjustment,omitempty" bson:"adjustment,omitempty"`              // Payment adjustment for non-claim issues
	AdjustmentReason *CodeableConcept `json:"adjustmentReason,omitempty" bson:"adjustment_reason,omitempty"` // Explanation for the variance
	Date             *string          `json:"date,omitempty" bson:"date,omitempty"`                          // Expected date of payment
	Amount           *Money           `json:"amount,omitempty" bson:"amount,omitempty"`                      // Payable amount after adjustment
	Identifier       *Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`              // Business identifier for the payment
}

func (*ExplanationOfBenefitPayment) Validate

func (r *ExplanationOfBenefitPayment) Validate() error

type ExplanationOfBenefitProcedure

type ExplanationOfBenefitProcedure struct {
	Id                       *string           `json:"id,omitempty" bson:"id,omitempty"`                           // Unique id for inter-element referencing
	Sequence                 int               `json:"sequence" bson:"sequence"`                                   // Procedure instance identifier
	Type                     []CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                       // Category of Procedure
	Date                     *string           `json:"date,omitempty" bson:"date,omitempty"`                       // When the procedure was performed
	ProcedureCodeableConcept *CodeableConcept  `json:"procedureCodeableConcept" bson:"procedure_codeable_concept"` // Specific clinical procedure
	ProcedureReference       *Reference        `json:"procedureReference" bson:"procedure_reference"`              // Specific clinical procedure
	Udi                      []Reference       `json:"udi,omitempty" bson:"udi,omitempty"`                         // Unique device identifier
}

func (*ExplanationOfBenefitProcedure) Validate

func (r *ExplanationOfBenefitProcedure) Validate() error

type ExplanationOfBenefitProcessNote

type ExplanationOfBenefitProcessNote struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Class    *CodeableConcept `json:"class,omitempty" bson:"class,omitempty"`       // Business kind of note
	Number   *int             `json:"number,omitempty" bson:"number,omitempty"`     // Note instance identifier
	Type     *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`         // Note purpose
	Text     *string          `json:"text,omitempty" bson:"text,omitempty"`         // Note explanatory text
	Language *CodeableConcept `json:"language,omitempty" bson:"language,omitempty"` // Language of the text
}

func (*ExplanationOfBenefitProcessNote) Validate

func (r *ExplanationOfBenefitProcessNote) Validate() error

type ExplanationOfBenefitRelated

type ExplanationOfBenefitRelated struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Claim        *Reference       `json:"claim,omitempty" bson:"claim,omitempty"`               // Reference to the related claim
	Relationship *CodeableConcept `json:"relationship,omitempty" bson:"relationship,omitempty"` // How the reference claim is related
	Reference    *Identifier      `json:"reference,omitempty" bson:"reference,omitempty"`       // File or case reference
}

func (*ExplanationOfBenefitRelated) Validate

func (r *ExplanationOfBenefitRelated) Validate() error

type ExplanationOfBenefitStatus added in v0.0.3

type ExplanationOfBenefitStatus string

ExplanationOfBenefitStatus represents codes from http://hl7.org/fhir/ValueSet/explanationofbenefit-status

const (
	ExplanationOfBenefitStatusActive         ExplanationOfBenefitStatus = "active"
	ExplanationOfBenefitStatusCancelled      ExplanationOfBenefitStatus = "cancelled"
	ExplanationOfBenefitStatusDraft          ExplanationOfBenefitStatus = "draft"
	ExplanationOfBenefitStatusEnteredInError ExplanationOfBenefitStatus = "entered-in-error"
)

type ExplanationOfBenefitSupportingInfo

type ExplanationOfBenefitSupportingInfo struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Unique id for inter-element referencing
	Sequence                   int                    `json:"sequence" bson:"sequence"`                                                            // Information instance identifier
	Category                   *CodeableConcept       `json:"category" bson:"category"`                                                            // Classification of the supplied information
	Code                       *CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                                                // Type of information
	TimingDateTime             *string                `json:"timingDateTime,omitempty" bson:"timing_date_time,omitempty"`                          // When it occurred
	TimingPeriod               *Period                `json:"timingPeriod,omitempty" bson:"timing_period,omitempty"`                               // When it occurred
	TimingTiming               *Timing                `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`                               // When it occurred
	ValueBase64Binary          *string                `json:"valueBase64Binary,omitempty" bson:"value_base64_binary,omitempty"`                    // Data to be provided
	ValueBoolean               *bool                  `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                               // Data to be provided
	ValueCanonical             *string                `json:"valueCanonical,omitempty" bson:"value_canonical,omitempty"`                           // Data to be provided
	ValueCode                  *string                `json:"valueCode,omitempty" bson:"value_code,omitempty"`                                     // Data to be provided
	ValueDate                  *string                `json:"valueDate,omitempty" bson:"value_date,omitempty"`                                     // Data to be provided
	ValueDateTime              *string                `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                            // Data to be provided
	ValueDecimal               *float64               `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`                               // Data to be provided
	ValueId                    *string                `json:"valueId,omitempty" bson:"value_id,omitempty"`                                         // Data to be provided
	ValueInstant               *string                `json:"valueInstant,omitempty" bson:"value_instant,omitempty"`                               // Data to be provided
	ValueInteger               *int                   `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                               // Data to be provided
	ValueInteger64             *int64                 `json:"valueInteger64,omitempty" bson:"value_integer64,omitempty"`                           // Data to be provided
	ValueMarkdown              *string                `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                             // Data to be provided
	ValueOid                   *string                `json:"valueOid,omitempty" bson:"value_oid,omitempty"`                                       // Data to be provided
	ValuePositiveInt           *int                   `json:"valuePositiveInt,omitempty" bson:"value_positive_int,omitempty"`                      // Data to be provided
	ValueString                *string                `json:"valueString,omitempty" bson:"value_string,omitempty"`                                 // Data to be provided
	ValueTime                  *string                `json:"valueTime,omitempty" bson:"value_time,omitempty"`                                     // Data to be provided
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt,omitempty" bson:"value_unsigned_int,omitempty"`                      // Data to be provided
	ValueUri                   *string                `json:"valueUri,omitempty" bson:"value_uri,omitempty"`                                       // Data to be provided
	ValueUrl                   *string                `json:"valueUrl,omitempty" bson:"value_url,omitempty"`                                       // Data to be provided
	ValueUuid                  *uuid                  `json:"valueUuid,omitempty" bson:"value_uuid,omitempty"`                                     // Data to be provided
	ValueAddress               *Address               `json:"valueAddress,omitempty" bson:"value_address,omitempty"`                               // Data to be provided
	ValueAge                   *Age                   `json:"valueAge,omitempty" bson:"value_age,omitempty"`                                       // Data to be provided
	ValueAnnotation            *Annotation            `json:"valueAnnotation,omitempty" bson:"value_annotation,omitempty"`                         // Data to be provided
	ValueAttachment            *Attachment            `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`                         // Data to be provided
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`              // Data to be provided
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference,omitempty" bson:"value_codeable_reference,omitempty"`          // Data to be provided
	ValueCoding                *Coding                `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`                                 // Data to be provided
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint,omitempty" bson:"value_contact_point,omitempty"`                    // Data to be provided
	ValueCount                 *Count                 `json:"valueCount,omitempty" bson:"value_count,omitempty"`                                   // Data to be provided
	ValueDistance              *Distance              `json:"valueDistance,omitempty" bson:"value_distance,omitempty"`                             // Data to be provided
	ValueDuration              *Duration              `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`                             // Data to be provided
	ValueHumanName             *HumanName             `json:"valueHumanName,omitempty" bson:"value_human_name,omitempty"`                          // Data to be provided
	ValueIdentifier            *Identifier            `json:"valueIdentifier,omitempty" bson:"value_identifier,omitempty"`                         // Data to be provided
	ValueMoney                 *Money                 `json:"valueMoney,omitempty" bson:"value_money,omitempty"`                                   // Data to be provided
	ValuePeriod                *Period                `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                                 // Data to be provided
	ValueQuantity              *Quantity              `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                             // Data to be provided
	ValueRange                 *Range                 `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                   // Data to be provided
	ValueRatio                 *Ratio                 `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                                   // Data to be provided
	ValueRatioRange            *RatioRange            `json:"valueRatioRange,omitempty" bson:"value_ratio_range,omitempty"`                        // Data to be provided
	ValueReference             *Reference             `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                           // Data to be provided
	ValueSampledData           *SampledData           `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`                      // Data to be provided
	ValueSignature             *Signature             `json:"valueSignature,omitempty" bson:"value_signature,omitempty"`                           // Data to be provided
	ValueTiming                *Timing                `json:"valueTiming,omitempty" bson:"value_timing,omitempty"`                                 // Data to be provided
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail,omitempty" bson:"value_contact_detail,omitempty"`                  // Data to be provided
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement,omitempty" bson:"value_data_requirement,omitempty"`              // Data to be provided
	ValueExpression            *Expression            `json:"valueExpression,omitempty" bson:"value_expression,omitempty"`                         // Data to be provided
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition,omitempty" bson:"value_parameter_definition,omitempty"`      // Data to be provided
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact,omitempty" bson:"value_related_artifact,omitempty"`              // Data to be provided
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition,omitempty" bson:"value_trigger_definition,omitempty"`          // Data to be provided
	ValueUsageContext          *UsageContext          `json:"valueUsageContext,omitempty" bson:"value_usage_context,omitempty"`                    // Data to be provided
	ValueAvailability          *Availability          `json:"valueAvailability,omitempty" bson:"value_availability,omitempty"`                     // Data to be provided
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail,omitempty" bson:"value_extended_contact_detail,omitempty"` // Data to be provided
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail,omitempty" bson:"value_virtual_service_detail,omitempty"`   // Data to be provided
	ValueDosage                *Dosage                `json:"valueDosage,omitempty" bson:"value_dosage,omitempty"`                                 // Data to be provided
	ValueMeta                  *Meta                  `json:"valueMeta,omitempty" bson:"value_meta,omitempty"`                                     // Data to be provided
	Reason                     *Coding                `json:"reason,omitempty" bson:"reason,omitempty"`                                            // Explanation for the information
}

func (*ExplanationOfBenefitSupportingInfo) Validate

type ExplanationOfBenefitTotal

type ExplanationOfBenefitTotal struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Category *CodeableConcept `json:"category" bson:"category"`         // Type of adjudication information
	Amount   *Money           `json:"amount" bson:"amount"`             // Financial total for the category
}

func (*ExplanationOfBenefitTotal) Validate

func (r *ExplanationOfBenefitTotal) Validate() error

type Expression

type Expression struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Natural language description of the condition
	Name        *string `json:"name,omitempty" bson:"name,omitempty"`               // Short name assigned to expression for reuse
	Language    *string `json:"language,omitempty" bson:"language,omitempty"`       // text/cql | text/fhirpath | application/x-fhir-query | etc.
	Expression  *string `json:"expression,omitempty" bson:"expression,omitempty"`   // Expression in specified language
	Reference   *string `json:"reference,omitempty" bson:"reference,omitempty"`     // Where the expression is found
}

Expression Type: A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used.

func (*Expression) Validate

func (r *Expression) Validate() error

type ExtendedContactDetail

type ExtendedContactDetail struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Purpose      *CodeableConcept `json:"purpose,omitempty" bson:"purpose,omitempty"`           // The type of contact
	Name         []HumanName      `json:"name,omitempty" bson:"name,omitempty"`                 // Name of an individual to contact
	Telecom      []ContactPoint   `json:"telecom,omitempty" bson:"telecom,omitempty"`           // Contact details (e.g.phone/fax/url)
	Address      *Address         `json:"address,omitempty" bson:"address,omitempty"`           // Address for the contact
	Organization *Reference       `json:"organization,omitempty" bson:"organization,omitempty"` // This contact detail is handled/monitored by a specific organization
	Period       *Period          `json:"period,omitempty" bson:"period,omitempty"`             // Period that this contact was valid for usage
}

ExtendedContactDetail Type: Specifies contact information for a specific purpose over a period of time, might be handled/monitored by a specific named person or organization.

func (*ExtendedContactDetail) Validate

func (r *ExtendedContactDetail) Validate() error

type Extension

type Extension struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Unique id for inter-element referencing
	Url                        string                 `json:"url" bson:"url"`                                                                      // identifies the meaning of the extension
	ValueBase64Binary          *string                `json:"valueBase64Binary,omitempty" bson:"value_base64_binary,omitempty"`                    // Value of extension
	ValueBoolean               *bool                  `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                               // Value of extension
	ValueCanonical             *string                `json:"valueCanonical,omitempty" bson:"value_canonical,omitempty"`                           // Value of extension
	ValueCode                  *string                `json:"valueCode,omitempty" bson:"value_code,omitempty"`                                     // Value of extension
	ValueDate                  *string                `json:"valueDate,omitempty" bson:"value_date,omitempty"`                                     // Value of extension
	ValueDateTime              *string                `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                            // Value of extension
	ValueDecimal               *float64               `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`                               // Value of extension
	ValueId                    *string                `json:"valueId,omitempty" bson:"value_id,omitempty"`                                         // Value of extension
	ValueInstant               *string                `json:"valueInstant,omitempty" bson:"value_instant,omitempty"`                               // Value of extension
	ValueInteger               *int                   `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                               // Value of extension
	ValueInteger64             *int64                 `json:"valueInteger64,omitempty" bson:"value_integer64,omitempty"`                           // Value of extension
	ValueMarkdown              *string                `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                             // Value of extension
	ValueOid                   *string                `json:"valueOid,omitempty" bson:"value_oid,omitempty"`                                       // Value of extension
	ValuePositiveInt           *int                   `json:"valuePositiveInt,omitempty" bson:"value_positive_int,omitempty"`                      // Value of extension
	ValueString                *string                `json:"valueString,omitempty" bson:"value_string,omitempty"`                                 // Value of extension
	ValueTime                  *string                `json:"valueTime,omitempty" bson:"value_time,omitempty"`                                     // Value of extension
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt,omitempty" bson:"value_unsigned_int,omitempty"`                      // Value of extension
	ValueUri                   *string                `json:"valueUri,omitempty" bson:"value_uri,omitempty"`                                       // Value of extension
	ValueUrl                   *string                `json:"valueUrl,omitempty" bson:"value_url,omitempty"`                                       // Value of extension
	ValueUuid                  *uuid                  `json:"valueUuid,omitempty" bson:"value_uuid,omitempty"`                                     // Value of extension
	ValueAddress               *Address               `json:"valueAddress,omitempty" bson:"value_address,omitempty"`                               // Value of extension
	ValueAge                   *Age                   `json:"valueAge,omitempty" bson:"value_age,omitempty"`                                       // Value of extension
	ValueAnnotation            *Annotation            `json:"valueAnnotation,omitempty" bson:"value_annotation,omitempty"`                         // Value of extension
	ValueAttachment            *Attachment            `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`                         // Value of extension
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`              // Value of extension
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference,omitempty" bson:"value_codeable_reference,omitempty"`          // Value of extension
	ValueCoding                *Coding                `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`                                 // Value of extension
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint,omitempty" bson:"value_contact_point,omitempty"`                    // Value of extension
	ValueCount                 *Count                 `json:"valueCount,omitempty" bson:"value_count,omitempty"`                                   // Value of extension
	ValueDistance              *Distance              `json:"valueDistance,omitempty" bson:"value_distance,omitempty"`                             // Value of extension
	ValueDuration              *Duration              `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`                             // Value of extension
	ValueHumanName             *HumanName             `json:"valueHumanName,omitempty" bson:"value_human_name,omitempty"`                          // Value of extension
	ValueIdentifier            *Identifier            `json:"valueIdentifier,omitempty" bson:"value_identifier,omitempty"`                         // Value of extension
	ValueMoney                 *Money                 `json:"valueMoney,omitempty" bson:"value_money,omitempty"`                                   // Value of extension
	ValuePeriod                *Period                `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                                 // Value of extension
	ValueQuantity              *Quantity              `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                             // Value of extension
	ValueRange                 *Range                 `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                   // Value of extension
	ValueRatio                 *Ratio                 `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                                   // Value of extension
	ValueRatioRange            *RatioRange            `json:"valueRatioRange,omitempty" bson:"value_ratio_range,omitempty"`                        // Value of extension
	ValueReference             *Reference             `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                           // Value of extension
	ValueSampledData           *SampledData           `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`                      // Value of extension
	ValueSignature             *Signature             `json:"valueSignature,omitempty" bson:"value_signature,omitempty"`                           // Value of extension
	ValueTiming                *Timing                `json:"valueTiming,omitempty" bson:"value_timing,omitempty"`                                 // Value of extension
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail,omitempty" bson:"value_contact_detail,omitempty"`                  // Value of extension
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement,omitempty" bson:"value_data_requirement,omitempty"`              // Value of extension
	ValueExpression            *Expression            `json:"valueExpression,omitempty" bson:"value_expression,omitempty"`                         // Value of extension
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition,omitempty" bson:"value_parameter_definition,omitempty"`      // Value of extension
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact,omitempty" bson:"value_related_artifact,omitempty"`              // Value of extension
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition,omitempty" bson:"value_trigger_definition,omitempty"`          // Value of extension
	ValueUsageContext          *UsageContext          `json:"valueUsageContext,omitempty" bson:"value_usage_context,omitempty"`                    // Value of extension
	ValueAvailability          *Availability          `json:"valueAvailability,omitempty" bson:"value_availability,omitempty"`                     // Value of extension
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail,omitempty" bson:"value_extended_contact_detail,omitempty"` // Value of extension
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail,omitempty" bson:"value_virtual_service_detail,omitempty"`   // Value of extension
	ValueDosage                *Dosage                `json:"valueDosage,omitempty" bson:"value_dosage,omitempty"`                                 // Value of extension
	ValueMeta                  *Meta                  `json:"valueMeta,omitempty" bson:"value_meta,omitempty"`                                     // Value of extension
}

Extension Type: Optional Extension Element - found in all resources.

func (*Extension) Validate

func (r *Extension) Validate() error

type ExtensionContextType added in v0.0.3

type ExtensionContextType string

ExtensionContextType represents codes from http://hl7.org/fhir/ValueSet/extension-context-type

const (
	ExtensionContextTypeFhirpath  ExtensionContextType = "fhirpath"
	ExtensionContextTypeElement   ExtensionContextType = "element"
	ExtensionContextTypeExtension ExtensionContextType = "extension"
)

type FHIRBoolean added in v0.0.2

type FHIRBoolean struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"`       // xml:id (or equivalent in JSON)
	Value *bool   `json:"value,omitempty" bson:"value,omitempty"` // Primitive value for boolean
}

boolean Type: Value of "true" or "false"

func (*FHIRBoolean) Validate added in v0.0.2

func (r *FHIRBoolean) Validate() error

type FHIRDecimal added in v0.0.2

type FHIRDecimal struct {
	Id    *string  `json:"id,omitempty" bson:"id,omitempty"`       // xml:id (or equivalent in JSON)
	Value *float64 `json:"value,omitempty" bson:"value,omitempty"` // Primitive value for decimal
}

decimal Type: A rational number with implicit precision

func (*FHIRDecimal) Validate added in v0.0.2

func (r *FHIRDecimal) Validate() error

type FHIRDeviceStatus added in v0.0.3

type FHIRDeviceStatus string

FHIRDeviceStatus represents codes from http://hl7.org/fhir/ValueSet/device-status

const (
	FHIRDeviceStatusActive         FHIRDeviceStatus = "active"
	FHIRDeviceStatusInactive       FHIRDeviceStatus = "inactive"
	FHIRDeviceStatusEnteredInError FHIRDeviceStatus = "entered-in-error"
	FHIRDeviceStatusUnknown        FHIRDeviceStatus = "unknown"
)

type FHIRInteger added in v0.0.2

type FHIRInteger struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"`       // xml:id (or equivalent in JSON)
	Value *int    `json:"value,omitempty" bson:"value,omitempty"` // Primitive value for integer
}

integer Type: A whole number

func (*FHIRInteger) Validate added in v0.0.2

func (r *FHIRInteger) Validate() error

type FHIRInteger64 added in v0.0.2

type FHIRInteger64 struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"`       // xml:id (or equivalent in JSON)
	Value *int64  `json:"value,omitempty" bson:"value,omitempty"` // Primitive value for integer64
}

integer64 Type: A very large whole number

func (*FHIRInteger64) Validate added in v0.0.2

func (r *FHIRInteger64) Validate() error

type FHIRString added in v0.0.2

type FHIRString struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"`       // xml:id (or equivalent in JSON)
	Value *string `json:"value,omitempty" bson:"value,omitempty"` // Primitive value for uri
}

uri Type: String of characters used to identify a name or a resource

func (*FHIRString) Validate added in v0.0.2

func (r *FHIRString) Validate() error

type FHIRSubstanceStatus added in v0.0.3

type FHIRSubstanceStatus string

FHIRSubstanceStatus represents codes from http://hl7.org/fhir/ValueSet/substance-status

const (
	FHIRSubstanceStatusActive         FHIRSubstanceStatus = "active"
	FHIRSubstanceStatusInactive       FHIRSubstanceStatus = "inactive"
	FHIRSubstanceStatusEnteredInError FHIRSubstanceStatus = "entered-in-error"
)

type FHIRTypes added in v0.0.3

type FHIRTypes string

FHIRTypes represents codes from http://hl7.org/fhir/ValueSet/fhir-types

const (
	FHIRTypesBase                           FHIRTypes = "Base"
	FHIRTypesElement                        FHIRTypes = "Element"
	FHIRTypesBackboneElement                FHIRTypes = "BackboneElement"
	FHIRTypesDataType                       FHIRTypes = "DataType"
	FHIRTypesAddress                        FHIRTypes = "Address"
	FHIRTypesAnnotation                     FHIRTypes = "Annotation"
	FHIRTypesAttachment                     FHIRTypes = "Attachment"
	FHIRTypesAvailability                   FHIRTypes = "Availability"
	FHIRTypesBackboneType                   FHIRTypes = "BackboneType"
	FHIRTypesDosage                         FHIRTypes = "Dosage"
	FHIRTypesDosageCondition                FHIRTypes = "DosageCondition"
	FHIRTypesDosageDetails                  FHIRTypes = "DosageDetails"
	FHIRTypesDosageSafety                   FHIRTypes = "DosageSafety"
	FHIRTypesElementDefinition              FHIRTypes = "ElementDefinition"
	FHIRTypesMarketingStatus                FHIRTypes = "MarketingStatus"
	FHIRTypesProductShelfLife               FHIRTypes = "ProductShelfLife"
	FHIRTypesRelativeTime                   FHIRTypes = "RelativeTime"
	FHIRTypesTiming                         FHIRTypes = "Timing"
	FHIRTypesCodeableConcept                FHIRTypes = "CodeableConcept"
	FHIRTypesCodeableReference              FHIRTypes = "CodeableReference"
	FHIRTypesCoding                         FHIRTypes = "Coding"
	FHIRTypesContactDetail                  FHIRTypes = "ContactDetail"
	FHIRTypesContactPoint                   FHIRTypes = "ContactPoint"
	FHIRTypesDataRequirement                FHIRTypes = "DataRequirement"
	FHIRTypesExpression                     FHIRTypes = "Expression"
	FHIRTypesExtendedContactDetail          FHIRTypes = "ExtendedContactDetail"
	FHIRTypesExtension                      FHIRTypes = "Extension"
	FHIRTypesHumanName                      FHIRTypes = "HumanName"
	FHIRTypesIdentifier                     FHIRTypes = "Identifier"
	FHIRTypesMeta                           FHIRTypes = "Meta"
	FHIRTypesMonetaryComponent              FHIRTypes = "MonetaryComponent"
	FHIRTypesMoney                          FHIRTypes = "Money"
	FHIRTypesNarrative                      FHIRTypes = "Narrative"
	FHIRTypesParameterDefinition            FHIRTypes = "ParameterDefinition"
	FHIRTypesPeriod                         FHIRTypes = "Period"
	FHIRTypesPrimitiveType                  FHIRTypes = "PrimitiveType"
	FHIRTypesBase64Binary                   FHIRTypes = "base64Binary"
	FHIRTypesBoolean                        FHIRTypes = "boolean"
	FHIRTypesDate                           FHIRTypes = "date"
	FHIRTypesDateTime                       FHIRTypes = "dateTime"
	FHIRTypesDecimal                        FHIRTypes = "decimal"
	FHIRTypesInstant                        FHIRTypes = "instant"
	FHIRTypesInteger                        FHIRTypes = "integer"
	FHIRTypesPositiveInt                    FHIRTypes = "positiveInt"
	FHIRTypesUnsignedInt                    FHIRTypes = "unsignedInt"
	FHIRTypesInteger64                      FHIRTypes = "integer64"
	FHIRTypesString                         FHIRTypes = "string"
	FHIRTypesCode                           FHIRTypes = "code"
	FHIRTypesId                             FHIRTypes = "id"
	FHIRTypesMarkdown                       FHIRTypes = "markdown"
	FHIRTypesTime                           FHIRTypes = "time"
	FHIRTypesUri                            FHIRTypes = "uri"
	FHIRTypesCanonical                      FHIRTypes = "canonical"
	FHIRTypesOid                            FHIRTypes = "oid"
	FHIRTypesUrl                            FHIRTypes = "url"
	FHIRTypesUuid                           FHIRTypes = "uuid"
	FHIRTypesQuantity                       FHIRTypes = "Quantity"
	FHIRTypesAge                            FHIRTypes = "Age"
	FHIRTypesCount                          FHIRTypes = "Count"
	FHIRTypesDistance                       FHIRTypes = "Distance"
	FHIRTypesDuration                       FHIRTypes = "Duration"
	FHIRTypesRange                          FHIRTypes = "Range"
	FHIRTypesRatio                          FHIRTypes = "Ratio"
	FHIRTypesRatioRange                     FHIRTypes = "RatioRange"
	FHIRTypesReference                      FHIRTypes = "Reference"
	FHIRTypesRelatedArtifact                FHIRTypes = "RelatedArtifact"
	FHIRTypesSampledData                    FHIRTypes = "SampledData"
	FHIRTypesSignature                      FHIRTypes = "Signature"
	FHIRTypesTriggerDefinition              FHIRTypes = "TriggerDefinition"
	FHIRTypesUsageContext                   FHIRTypes = "UsageContext"
	FHIRTypesVirtualServiceDetail           FHIRTypes = "VirtualServiceDetail"
	FHIRTypesXhtml                          FHIRTypes = "xhtml"
	FHIRTypesResource                       FHIRTypes = "Resource"
	FHIRTypesBinary                         FHIRTypes = "Binary"
	FHIRTypesBundle                         FHIRTypes = "Bundle"
	FHIRTypesDomainResource                 FHIRTypes = "DomainResource"
	FHIRTypesAccount                        FHIRTypes = "Account"
	FHIRTypesActivityDefinition             FHIRTypes = "ActivityDefinition"
	FHIRTypesActorDefinition                FHIRTypes = "ActorDefinition"
	FHIRTypesAdministrableProductDefinition FHIRTypes = "AdministrableProductDefinition"
	FHIRTypesAdverseEvent                   FHIRTypes = "AdverseEvent"
	FHIRTypesAllergyIntolerance             FHIRTypes = "AllergyIntolerance"
	FHIRTypesAppointment                    FHIRTypes = "Appointment"
	FHIRTypesAppointmentResponse            FHIRTypes = "AppointmentResponse"
	FHIRTypesArtifactAssessment             FHIRTypes = "ArtifactAssessment"
	FHIRTypesAuditEvent                     FHIRTypes = "AuditEvent"
	FHIRTypesBasic                          FHIRTypes = "Basic"
	FHIRTypesBiologicallyDerivedProduct     FHIRTypes = "BiologicallyDerivedProduct"
	FHIRTypesBodyStructure                  FHIRTypes = "BodyStructure"
	FHIRTypesCanonicalResource              FHIRTypes = "CanonicalResource"
	FHIRTypesCapabilityStatement            FHIRTypes = "CapabilityStatement"
	FHIRTypesCarePlan                       FHIRTypes = "CarePlan"
	FHIRTypesCareTeam                       FHIRTypes = "CareTeam"
	FHIRTypesClaim                          FHIRTypes = "Claim"
	FHIRTypesClaimResponse                  FHIRTypes = "ClaimResponse"
	FHIRTypesClinicalUseDefinition          FHIRTypes = "ClinicalUseDefinition"
	FHIRTypesCodeSystem                     FHIRTypes = "CodeSystem"
	FHIRTypesCommunication                  FHIRTypes = "Communication"
	FHIRTypesCommunicationRequest           FHIRTypes = "CommunicationRequest"
	FHIRTypesCompartmentDefinition          FHIRTypes = "CompartmentDefinition"
	FHIRTypesComposition                    FHIRTypes = "Composition"
	FHIRTypesConceptMap                     FHIRTypes = "ConceptMap"
	FHIRTypesCondition                      FHIRTypes = "Condition"
	FHIRTypesConsent                        FHIRTypes = "Consent"
	FHIRTypesContract                       FHIRTypes = "Contract"
	FHIRTypesCoverage                       FHIRTypes = "Coverage"
	FHIRTypesCoverageEligibilityRequest     FHIRTypes = "CoverageEligibilityRequest"
	FHIRTypesCoverageEligibilityResponse    FHIRTypes = "CoverageEligibilityResponse"
	FHIRTypesDetectedIssue                  FHIRTypes = "DetectedIssue"
	FHIRTypesDevice                         FHIRTypes = "Device"
	FHIRTypesDeviceAlert                    FHIRTypes = "DeviceAlert"
	FHIRTypesDeviceAssociation              FHIRTypes = "DeviceAssociation"
	FHIRTypesDeviceDefinition               FHIRTypes = "DeviceDefinition"
	FHIRTypesDeviceMetric                   FHIRTypes = "DeviceMetric"
	FHIRTypesDeviceRequest                  FHIRTypes = "DeviceRequest"
	FHIRTypesDiagnosticReport               FHIRTypes = "DiagnosticReport"
	FHIRTypesDocumentReference              FHIRTypes = "DocumentReference"
	FHIRTypesEncounter                      FHIRTypes = "Encounter"
	FHIRTypesEndpoint                       FHIRTypes = "Endpoint"
	FHIRTypesEnrollmentRequest              FHIRTypes = "EnrollmentRequest"
	FHIRTypesEnrollmentResponse             FHIRTypes = "EnrollmentResponse"
	FHIRTypesEpisodeOfCare                  FHIRTypes = "EpisodeOfCare"
	FHIRTypesEventDefinition                FHIRTypes = "EventDefinition"
	FHIRTypesEvidence                       FHIRTypes = "Evidence"
	FHIRTypesEvidenceVariable               FHIRTypes = "EvidenceVariable"
	FHIRTypesExampleScenario                FHIRTypes = "ExampleScenario"
	FHIRTypesExplanationOfBenefit           FHIRTypes = "ExplanationOfBenefit"
	FHIRTypesFamilyMemberHistory            FHIRTypes = "FamilyMemberHistory"
	FHIRTypesFlag                           FHIRTypes = "Flag"
	FHIRTypesGoal                           FHIRTypes = "Goal"
	FHIRTypesGroup                          FHIRTypes = "Group"
	FHIRTypesGuidanceResponse               FHIRTypes = "GuidanceResponse"
	FHIRTypesHealthcareService              FHIRTypes = "HealthcareService"
	FHIRTypesImagingSelection               FHIRTypes = "ImagingSelection"
	FHIRTypesImagingStudy                   FHIRTypes = "ImagingStudy"
	FHIRTypesImmunization                   FHIRTypes = "Immunization"
	FHIRTypesImplementationGuide            FHIRTypes = "ImplementationGuide"
	FHIRTypesIngredient                     FHIRTypes = "Ingredient"
	FHIRTypesInsurancePlan                  FHIRTypes = "InsurancePlan"
	FHIRTypesInsuranceProduct               FHIRTypes = "InsuranceProduct"
	FHIRTypesInvoice                        FHIRTypes = "Invoice"
	FHIRTypesLibrary                        FHIRTypes = "Library"
	FHIRTypesList                           FHIRTypes = "List"
	FHIRTypesLocation                       FHIRTypes = "Location"
	FHIRTypesManufacturedItemDefinition     FHIRTypes = "ManufacturedItemDefinition"
	FHIRTypesMeasure                        FHIRTypes = "Measure"
	FHIRTypesMeasureReport                  FHIRTypes = "MeasureReport"
	FHIRTypesMedication                     FHIRTypes = "Medication"
	FHIRTypesMedicationAdministration       FHIRTypes = "MedicationAdministration"
	FHIRTypesMedicationDispense             FHIRTypes = "MedicationDispense"
	FHIRTypesMedicationRequest              FHIRTypes = "MedicationRequest"
	FHIRTypesMedicationStatement            FHIRTypes = "MedicationStatement"
	FHIRTypesMedicinalProductDefinition     FHIRTypes = "MedicinalProductDefinition"
	FHIRTypesMessageDefinition              FHIRTypes = "MessageDefinition"
	FHIRTypesMessageHeader                  FHIRTypes = "MessageHeader"
	FHIRTypesMetadataResource               FHIRTypes = "MetadataResource"
	FHIRTypesNamingSystem                   FHIRTypes = "NamingSystem"
	FHIRTypesNutritionIntake                FHIRTypes = "NutritionIntake"
	FHIRTypesNutritionOrder                 FHIRTypes = "NutritionOrder"
	FHIRTypesNutritionProduct               FHIRTypes = "NutritionProduct"
	FHIRTypesObservation                    FHIRTypes = "Observation"
	FHIRTypesObservationDefinition          FHIRTypes = "ObservationDefinition"
	FHIRTypesOperationDefinition            FHIRTypes = "OperationDefinition"
	FHIRTypesOperationOutcome               FHIRTypes = "OperationOutcome"
	FHIRTypesOrganization                   FHIRTypes = "Organization"
	FHIRTypesOrganizationAffiliation        FHIRTypes = "OrganizationAffiliation"
	FHIRTypesPackagedProductDefinition      FHIRTypes = "PackagedProductDefinition"
	FHIRTypesPatient                        FHIRTypes = "Patient"
	FHIRTypesPaymentNotice                  FHIRTypes = "PaymentNotice"
	FHIRTypesPaymentReconciliation          FHIRTypes = "PaymentReconciliation"
	FHIRTypesPerson                         FHIRTypes = "Person"
	FHIRTypesPlanDefinition                 FHIRTypes = "PlanDefinition"
	FHIRTypesPractitioner                   FHIRTypes = "Practitioner"
	FHIRTypesPractitionerRole               FHIRTypes = "PractitionerRole"
	FHIRTypesProcedure                      FHIRTypes = "Procedure"
	FHIRTypesProvenance                     FHIRTypes = "Provenance"
	FHIRTypesQuestionnaire                  FHIRTypes = "Questionnaire"
	FHIRTypesQuestionnaireResponse          FHIRTypes = "QuestionnaireResponse"
	FHIRTypesRegulatedAuthorization         FHIRTypes = "RegulatedAuthorization"
	FHIRTypesRelatedPerson                  FHIRTypes = "RelatedPerson"
	FHIRTypesRequestOrchestration           FHIRTypes = "RequestOrchestration"
	FHIRTypesRequirements                   FHIRTypes = "Requirements"
	FHIRTypesResearchStudy                  FHIRTypes = "ResearchStudy"
	FHIRTypesResearchSubject                FHIRTypes = "ResearchSubject"
	FHIRTypesRiskAssessment                 FHIRTypes = "RiskAssessment"
	FHIRTypesSchedule                       FHIRTypes = "Schedule"
	FHIRTypesSearchParameter                FHIRTypes = "SearchParameter"
	FHIRTypesServiceRequest                 FHIRTypes = "ServiceRequest"
	FHIRTypesSlot                           FHIRTypes = "Slot"
	FHIRTypesSpecimen                       FHIRTypes = "Specimen"
	FHIRTypesSpecimenDefinition             FHIRTypes = "SpecimenDefinition"
	FHIRTypesStructureDefinition            FHIRTypes = "StructureDefinition"
	FHIRTypesStructureMap                   FHIRTypes = "StructureMap"
	FHIRTypesSubscription                   FHIRTypes = "Subscription"
	FHIRTypesSubscriptionStatus             FHIRTypes = "SubscriptionStatus"
	FHIRTypesSubscriptionTopic              FHIRTypes = "SubscriptionTopic"
	FHIRTypesSubstance                      FHIRTypes = "Substance"
	FHIRTypesSubstanceDefinition            FHIRTypes = "SubstanceDefinition"
	FHIRTypesTask                           FHIRTypes = "Task"
	FHIRTypesTerminologyCapabilities        FHIRTypes = "TerminologyCapabilities"
	FHIRTypesValueSet                       FHIRTypes = "ValueSet"
	FHIRTypesVisionPrescription             FHIRTypes = "VisionPrescription"
	FHIRTypesParameters                     FHIRTypes = "Parameters"
)

type FHIRVersion added in v0.0.3

type FHIRVersion string

FHIRVersion represents codes from http://hl7.org/fhir/ValueSet/FHIR-version

const (
	FHIRVersionCode001           FHIRVersion = "0.01"
	FHIRVersionCode005           FHIRVersion = "0.05"
	FHIRVersionCode006           FHIRVersion = "0.06"
	FHIRVersionCode011           FHIRVersion = "0.11"
	FHIRVersionCode00            FHIRVersion = "0.0"
	FHIRVersionCode0080          FHIRVersion = "0.0.80"
	FHIRVersionCode0081          FHIRVersion = "0.0.81"
	FHIRVersionCode0082          FHIRVersion = "0.0.82"
	FHIRVersionCode04            FHIRVersion = "0.4"
	FHIRVersionCode040           FHIRVersion = "0.4.0"
	FHIRVersionCode05            FHIRVersion = "0.5"
	FHIRVersionCode050           FHIRVersion = "0.5.0"
	FHIRVersionCode10            FHIRVersion = "1.0"
	FHIRVersionCode100           FHIRVersion = "1.0.0"
	FHIRVersionCode101           FHIRVersion = "1.0.1"
	FHIRVersionCode102           FHIRVersion = "1.0.2"
	FHIRVersionCode11            FHIRVersion = "1.1"
	FHIRVersionCode110           FHIRVersion = "1.1.0"
	FHIRVersionCode14            FHIRVersion = "1.4"
	FHIRVersionCode140           FHIRVersion = "1.4.0"
	FHIRVersionCode16            FHIRVersion = "1.6"
	FHIRVersionCode160           FHIRVersion = "1.6.0"
	FHIRVersionCode18            FHIRVersion = "1.8"
	FHIRVersionCode180           FHIRVersion = "1.8.0"
	FHIRVersionCode30            FHIRVersion = "3.0"
	FHIRVersionCode300           FHIRVersion = "3.0.0"
	FHIRVersionCode301           FHIRVersion = "3.0.1"
	FHIRVersionCode302           FHIRVersion = "3.0.2"
	FHIRVersionCode33            FHIRVersion = "3.3"
	FHIRVersionCode330           FHIRVersion = "3.3.0"
	FHIRVersionCode35            FHIRVersion = "3.5"
	FHIRVersionCode350           FHIRVersion = "3.5.0"
	FHIRVersionCode40            FHIRVersion = "4.0"
	FHIRVersionCode400           FHIRVersion = "4.0.0"
	FHIRVersionCode401           FHIRVersion = "4.0.1"
	FHIRVersionCode41            FHIRVersion = "4.1"
	FHIRVersionCode410           FHIRVersion = "4.1.0"
	FHIRVersionCode42            FHIRVersion = "4.2"
	FHIRVersionCode420           FHIRVersion = "4.2.0"
	FHIRVersionCode43            FHIRVersion = "4.3"
	FHIRVersionCode430           FHIRVersion = "4.3.0"
	FHIRVersionCode430Cibuild    FHIRVersion = "4.3.0-cibuild"
	FHIRVersionCode430Snapshot1  FHIRVersion = "4.3.0-snapshot1"
	FHIRVersionCode44            FHIRVersion = "4.4"
	FHIRVersionCode440           FHIRVersion = "4.4.0"
	FHIRVersionCode45            FHIRVersion = "4.5"
	FHIRVersionCode450           FHIRVersion = "4.5.0"
	FHIRVersionCode46            FHIRVersion = "4.6"
	FHIRVersionCode460           FHIRVersion = "4.6.0"
	FHIRVersionCode50            FHIRVersion = "5.0"
	FHIRVersionCode500           FHIRVersion = "5.0.0"
	FHIRVersionCode500Cibuild    FHIRVersion = "5.0.0-cibuild"
	FHIRVersionCode500Snapshot1  FHIRVersion = "5.0.0-snapshot1"
	FHIRVersionCode500Snapshot2  FHIRVersion = "5.0.0-snapshot2"
	FHIRVersionCode500Ballot     FHIRVersion = "5.0.0-ballot"
	FHIRVersionCode500Snapshot3  FHIRVersion = "5.0.0-snapshot3"
	FHIRVersionCode500DraftFinal FHIRVersion = "5.0.0-draft-final"
	FHIRVersionCode60            FHIRVersion = "6.0"
	FHIRVersionCode600           FHIRVersion = "6.0.0"
	FHIRVersionCode600Ballo1     FHIRVersion = "6.0.0-ballo1"
	FHIRVersionCode600Ballot2    FHIRVersion = "6.0.0-ballot2"
	FHIRVersionCode600Ballot3    FHIRVersion = "6.0.0-ballot3"
)

type FamilyHistoryStatus added in v0.0.3

type FamilyHistoryStatus string

FamilyHistoryStatus represents codes from http://hl7.org/fhir/ValueSet/history-status

const (
	FamilyHistoryStatusPartial        FamilyHistoryStatus = "partial"
	FamilyHistoryStatusCompleted      FamilyHistoryStatus = "completed"
	FamilyHistoryStatusEnteredInError FamilyHistoryStatus = "entered-in-error"
	FamilyHistoryStatusHealthUnknown  FamilyHistoryStatus = "health-unknown"
)

type FamilyMemberHistory

type FamilyMemberHistory struct {
	ResourceType     string                         `json:"resourceType" bson:"resource_type"`                              // Type of resource
	Id               *string                        `json:"id,omitempty" bson:"id,omitempty"`                               // Logical id of this artifact
	Meta             *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                           // Metadata about the resource
	ImplicitRules    *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`        // A set of rules under which this content was created
	Language         *string                        `json:"language,omitempty" bson:"language,omitempty"`                   // Language of the resource content
	Text             *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                           // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                 // Contained, inline Resources
	Identifier       []Identifier                   `json:"identifier,omitempty" bson:"identifier,omitempty"`               // External Id(s) for this record
	Status           string                         `json:"status" bson:"status"`                                           // partial | completed | entered-in-error | health-unknown
	DataAbsentReason *CodeableConcept               `json:"dataAbsentReason,omitempty" bson:"data_absent_reason,omitempty"` // subject-unknown | withheld | unable-to-obtain | deferred
	Patient          *Reference                     `json:"patient" bson:"patient"`                                         // Patient history is about
	Date             *string                        `json:"date,omitempty" bson:"date,omitempty"`                           // When history was recorded or last updated
	Recorder         *Reference                     `json:"recorder,omitempty" bson:"recorder,omitempty"`                   // Who recorded the family member history
	Asserter         *Reference                     `json:"asserter,omitempty" bson:"asserter,omitempty"`                   // Person or device that asserts this family member history
	Name             *string                        `json:"name,omitempty" bson:"name,omitempty"`                           // The family member described
	Relationship     *CodeableConcept               `json:"relationship" bson:"relationship"`                               // Relationship to the subject
	Sex              *CodeableConcept               `json:"sex,omitempty" bson:"sex,omitempty"`                             // male | female | other | unknown
	BornPeriod       *Period                        `json:"bornPeriod,omitempty" bson:"born_period,omitempty"`              // (approximate) date of birth
	BornDate         *string                        `json:"bornDate,omitempty" bson:"born_date,omitempty"`                  // (approximate) date of birth
	BornString       *string                        `json:"bornString,omitempty" bson:"born_string,omitempty"`              // (approximate) date of birth
	AgeAge           *Age                           `json:"ageAge,omitempty" bson:"age_age,omitempty"`                      // (approximate) age
	AgeRange         *Range                         `json:"ageRange,omitempty" bson:"age_range,omitempty"`                  // (approximate) age
	AgeString        *string                        `json:"ageString,omitempty" bson:"age_string,omitempty"`                // (approximate) age
	EstimatedAge     *bool                          `json:"estimatedAge,omitempty" bson:"estimated_age,omitempty"`          // Age is estimated?
	DeceasedBoolean  *bool                          `json:"deceasedBoolean,omitempty" bson:"deceased_boolean,omitempty"`    // Dead? How old/when?
	DeceasedAge      *Age                           `json:"deceasedAge,omitempty" bson:"deceased_age,omitempty"`            // Dead? How old/when?
	DeceasedRange    *Range                         `json:"deceasedRange,omitempty" bson:"deceased_range,omitempty"`        // Dead? How old/when?
	DeceasedDate     *string                        `json:"deceasedDate,omitempty" bson:"deceased_date,omitempty"`          // Dead? How old/when?
	DeceasedString   *string                        `json:"deceasedString,omitempty" bson:"deceased_string,omitempty"`      // Dead? How old/when?
	Reason           []CodeableReference            `json:"reason,omitempty" bson:"reason,omitempty"`                       // Why was family member history performed?
	Note             []Annotation                   `json:"note,omitempty" bson:"note,omitempty"`                           // General note about related person
	Condition        []FamilyMemberHistoryCondition `json:"condition,omitempty" bson:"condition,omitempty"`                 // Condition that the related person had
	Procedure        []FamilyMemberHistoryProcedure `json:"procedure,omitempty" bson:"procedure,omitempty"`                 // Procedures that the related person had
}

Significant health conditions for a person related to the patient relevant in the context of care for the patient.

func (*FamilyMemberHistory) Validate

func (r *FamilyMemberHistory) Validate() error

type FamilyMemberHistoryCondition

type FamilyMemberHistoryCondition struct {
	Id                 *string          `json:"id,omitempty" bson:"id,omitempty"`                                   // Unique id for inter-element referencing
	Code               *CodeableConcept `json:"code" bson:"code"`                                                   // Condition, allergy, or intolerance suffered by relation
	Outcome            *CodeableConcept `json:"outcome,omitempty" bson:"outcome,omitempty"`                         // deceased | permanent disability | etc
	ContributedToDeath *bool            `json:"contributedToDeath,omitempty" bson:"contributed_to_death,omitempty"` // Whether the condition contributed to the cause of death
	OnsetAge           *Age             `json:"onsetAge,omitempty" bson:"onset_age,omitempty"`                      // When condition first manifested
	OnsetRange         *Range           `json:"onsetRange,omitempty" bson:"onset_range,omitempty"`                  // When condition first manifested
	OnsetPeriod        *Period          `json:"onsetPeriod,omitempty" bson:"onset_period,omitempty"`                // When condition first manifested
	OnsetString        *string          `json:"onsetString,omitempty" bson:"onset_string,omitempty"`                // When condition first manifested
	Note               []Annotation     `json:"note,omitempty" bson:"note,omitempty"`                               // Extra information about condition
}

func (*FamilyMemberHistoryCondition) Validate

func (r *FamilyMemberHistoryCondition) Validate() error

type FamilyMemberHistoryProcedure

type FamilyMemberHistoryProcedure struct {
	Id                 *string          `json:"id,omitempty" bson:"id,omitempty"`                                   // Unique id for inter-element referencing
	Code               *CodeableConcept `json:"code" bson:"code"`                                                   // Procedures performed on the related person
	Outcome            *CodeableConcept `json:"outcome,omitempty" bson:"outcome,omitempty"`                         // What happened following the procedure
	ContributedToDeath *bool            `json:"contributedToDeath,omitempty" bson:"contributed_to_death,omitempty"` // Whether the procedure contributed to the cause of death
	PerformedAge       *Age             `json:"performedAge,omitempty" bson:"performed_age,omitempty"`              // When the procedure was performed
	PerformedRange     *Range           `json:"performedRange,omitempty" bson:"performed_range,omitempty"`          // When the procedure was performed
	PerformedPeriod    *Period          `json:"performedPeriod,omitempty" bson:"performed_period,omitempty"`        // When the procedure was performed
	PerformedString    *string          `json:"performedString,omitempty" bson:"performed_string,omitempty"`        // When the procedure was performed
	PerformedDateTime  *string          `json:"performedDateTime,omitempty" bson:"performed_date_time,omitempty"`   // When the procedure was performed
	Note               []Annotation     `json:"note,omitempty" bson:"note,omitempty"`                               // Extra information about the procedure
}

func (*FamilyMemberHistoryProcedure) Validate

func (r *FamilyMemberHistoryProcedure) Validate() error

type FilterOperator added in v0.0.3

type FilterOperator string

FilterOperator represents codes from http://hl7.org/fhir/ValueSet/filter-operator

const (
	FilterOperatorCode           FilterOperator = "="
	FilterOperatorIsA            FilterOperator = "is-a"
	FilterOperatorDescendentOf   FilterOperator = "descendent-of"
	FilterOperatorIsNotA         FilterOperator = "is-not-a"
	FilterOperatorRegex          FilterOperator = "regex"
	FilterOperatorIn             FilterOperator = "in"
	FilterOperatorNotIn          FilterOperator = "not-in"
	FilterOperatorGeneralizes    FilterOperator = "generalizes"
	FilterOperatorChildOf        FilterOperator = "child-of"
	FilterOperatorDescendentLeaf FilterOperator = "descendent-leaf"
	FilterOperatorExists         FilterOperator = "exists"
)

type FinancialResourceStatusCodes added in v0.0.3

type FinancialResourceStatusCodes string

FinancialResourceStatusCodes represents codes from http://hl7.org/fhir/ValueSet/fm-status

const (
	FinancialResourceStatusCodesActive         FinancialResourceStatusCodes = "active"
	FinancialResourceStatusCodesCancelled      FinancialResourceStatusCodes = "cancelled"
	FinancialResourceStatusCodesDraft          FinancialResourceStatusCodes = "draft"
	FinancialResourceStatusCodesEnteredInError FinancialResourceStatusCodes = "entered-in-error"
)

type Flag

type Flag struct {
	ResourceType   string            `json:"resourceType" bson:"resource_type"`                         // Type of resource
	Id             *string           `json:"id,omitempty" bson:"id,omitempty"`                          // Logical id of this artifact
	Meta           *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                      // Metadata about the resource
	ImplicitRules  *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`   // A set of rules under which this content was created
	Language       *string           `json:"language,omitempty" bson:"language,omitempty"`              // Language of the resource content
	Text           *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                      // Text summary of the resource, for human interpretation
	Contained      []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`            // Contained, inline Resources
	Identifier     []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`          // Business identifier
	Status         *string           `json:"status,omitempty" bson:"status,omitempty"`                  // active | inactive | entered-in-error
	Category       []CodeableConcept `json:"category,omitempty" bson:"category,omitempty"`              // Clinical, administrative, etc
	Code           *CodeableConcept  `json:"code" bson:"code"`                                          // Coded or textual message to display to user
	Subject        *Reference        `json:"subject" bson:"subject"`                                    // Who/What is flag about?
	Period         *Period           `json:"period,omitempty" bson:"period,omitempty"`                  // Time period when flag is active
	Encounter      *Reference        `json:"encounter,omitempty" bson:"encounter,omitempty"`            // Alert relevant during encounter
	Author         *Reference        `json:"author,omitempty" bson:"author,omitempty"`                  // Flag creator
	SupportingInfo []Reference       `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"` // Extra information to use in context of the flag
}

Prospective warnings of potential issues when providing care to the patient.

func (*Flag) Validate

func (r *Flag) Validate() error

type FlagStatus added in v0.0.3

type FlagStatus string

FlagStatus represents codes from http://hl7.org/fhir/ValueSet/flag-status

const (
	FlagStatusActive         FlagStatus = "active"
	FlagStatusInactive       FlagStatus = "inactive"
	FlagStatusEnteredInError FlagStatus = "entered-in-error"
)

type GlobalLangPackSupportVS added in v0.0.3

type GlobalLangPackSupportVS string

GlobalLangPackSupportVS represents codes from http://hl7.org/fhir/ValueSet/global-langpack-support

const (
	GlobalLangPackSupportVSNotSupported GlobalLangPackSupportVS = "not-supported"
	GlobalLangPackSupportVSExplicit     GlobalLangPackSupportVS = "explicit"
	GlobalLangPackSupportVSImplicit     GlobalLangPackSupportVS = "implicit"
)

type Goal

type Goal struct {
	ResourceType         string            `json:"resourceType" bson:"resource_type"`                                      // Type of resource
	Id                   *string           `json:"id,omitempty" bson:"id,omitempty"`                                       // Logical id of this artifact
	Meta                 *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                                   // Metadata about the resource
	ImplicitRules        *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                // A set of rules under which this content was created
	Language             *string           `json:"language,omitempty" bson:"language,omitempty"`                           // Language of the resource content
	Text                 *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                                   // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`                         // Contained, inline Resources
	Identifier           []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                       // External Ids for this goal
	LifecycleStatus      string            `json:"lifecycleStatus" bson:"lifecycle_status"`                                // proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected
	AchievementStatus    *CodeableConcept  `json:"achievementStatus,omitempty" bson:"achievement_status,omitempty"`        // in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable
	Category             []CodeableConcept `json:"category,omitempty" bson:"category,omitempty"`                           // E.g. Treatment, dietary, behavioral, etc
	Continuous           *bool             `json:"continuous,omitempty" bson:"continuous,omitempty"`                       // After meeting the goal, ongoing activity is needed to sustain the goal objective
	Priority             *CodeableConcept  `json:"priority,omitempty" bson:"priority,omitempty"`                           // high-priority | medium-priority | low-priority
	Description          *CodeableConcept  `json:"description" bson:"description"`                                         // Code or text describing goal
	Subject              *Reference        `json:"subject" bson:"subject"`                                                 // Who this goal is intended for
	StartDate            *string           `json:"startDate,omitempty" bson:"start_date,omitempty"`                        // When goal pursuit begins
	StartCodeableConcept *CodeableConcept  `json:"startCodeableConcept,omitempty" bson:"start_codeable_concept,omitempty"` // When goal pursuit begins
	Acceptance           []GoalAcceptance  `json:"acceptance,omitempty" bson:"acceptance,omitempty"`                       // Individual acceptance of goal
	Target               []GoalTarget      `json:"target,omitempty" bson:"target,omitempty"`                               // Target outcome for the goal
	StatusDate           *string           `json:"statusDate,omitempty" bson:"status_date,omitempty"`                      // When goal achievment status took effect
	StatusReason         []CodeableConcept `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                  // Reason for current lifecycle status
	Recorder             *Reference        `json:"recorder,omitempty" bson:"recorder,omitempty"`                           // Who recorded the goal
	Source               *Reference        `json:"source,omitempty" bson:"source,omitempty"`                               // Who's responsible for creating Goal?
	Addresses            []Reference       `json:"addresses,omitempty" bson:"addresses,omitempty"`                         // Issues addressed by this goal
	Note                 []Annotation      `json:"note,omitempty" bson:"note,omitempty"`                                   // Comments about the goal
}

Describes the intended objective(s) for a patient, group, or organizational care. Examples include a patient's weight loss, restoration of an activity of daily living for a patient, obtaining herd immunity via immunization for a group, meeting a process improvement objective for an organization, etc.

func (*Goal) Validate

func (r *Goal) Validate() error

type GoalAcceptStatus added in v0.0.3

type GoalAcceptStatus string

GoalAcceptStatus represents codes from http://hl7.org/fhir/ValueSet/goal-accept-status

const (
	GoalAcceptStatusAgree    GoalAcceptStatus = "agree"
	GoalAcceptStatusDisagree GoalAcceptStatus = "disagree"
	GoalAcceptStatusPending  GoalAcceptStatus = "pending"
)

type GoalAcceptance

type GoalAcceptance struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Participant *Reference       `json:"participant" bson:"participant"`               // Individual or organization whose acceptance is reflected
	Status      *string          `json:"status,omitempty" bson:"status,omitempty"`     // agree | disagree | pending
	Priority    *CodeableConcept `json:"priority,omitempty" bson:"priority,omitempty"` // Priority of goal for individual
}

func (*GoalAcceptance) Validate

func (r *GoalAcceptance) Validate() error

type GoalLifecycleStatus added in v0.0.3

type GoalLifecycleStatus string

GoalLifecycleStatus represents codes from http://hl7.org/fhir/ValueSet/goal-status

const (
	GoalLifecycleStatusProposed       GoalLifecycleStatus = "proposed"
	GoalLifecycleStatusPlanned        GoalLifecycleStatus = "planned"
	GoalLifecycleStatusAccepted       GoalLifecycleStatus = "accepted"
	GoalLifecycleStatusActive         GoalLifecycleStatus = "active"
	GoalLifecycleStatusOnHold         GoalLifecycleStatus = "on-hold"
	GoalLifecycleStatusCompleted      GoalLifecycleStatus = "completed"
	GoalLifecycleStatusCancelled      GoalLifecycleStatus = "cancelled"
	GoalLifecycleStatusEnteredInError GoalLifecycleStatus = "entered-in-error"
	GoalLifecycleStatusRejected       GoalLifecycleStatus = "rejected"
)

type GoalTarget

type GoalTarget struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	Measure               *CodeableConcept `json:"measure,omitempty" bson:"measure,omitempty"`                               // The parameter whose value is being tracked
	DetailQuantity        *Quantity        `json:"detailQuantity,omitempty" bson:"detail_quantity,omitempty"`                // The target value to be achieved
	DetailRange           *Range           `json:"detailRange,omitempty" bson:"detail_range,omitempty"`                      // The target value to be achieved
	DetailCodeableConcept *CodeableConcept `json:"detailCodeableConcept,omitempty" bson:"detail_codeable_concept,omitempty"` // The target value to be achieved
	DetailString          *string          `json:"detailString,omitempty" bson:"detail_string,omitempty"`                    // The target value to be achieved
	DetailBoolean         *bool            `json:"detailBoolean,omitempty" bson:"detail_boolean,omitempty"`                  // The target value to be achieved
	DetailInteger         *int             `json:"detailInteger,omitempty" bson:"detail_integer,omitempty"`                  // The target value to be achieved
	DetailRatio           *Ratio           `json:"detailRatio,omitempty" bson:"detail_ratio,omitempty"`                      // The target value to be achieved
	DueDate               *string          `json:"dueDate,omitempty" bson:"due_date,omitempty"`                              // Reach goal on or before
	DueDuration           *Duration        `json:"dueDuration,omitempty" bson:"due_duration,omitempty"`                      // Reach goal on or before
}

func (*GoalTarget) Validate

func (r *GoalTarget) Validate() error

type Graphql

type Graphql struct {
}

Execute a graphql statement on a since resource or against the entire system. See the [Using GraphQL with FHIR](graphql.html) page for further details. For the purposes of graphQL compatibility, this operation can also be invoked using a POST with the graphQL as the body, or a JSON body (see [graphQL spec](http://graphql.org/) for details)

func (*Graphql) Validate

func (r *Graphql) Validate() error

type Group

type Group struct {
	ResourceType           string                `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string               `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string               `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string               `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this Group, represented as an absolute URI (globally unique)
	Identifier             []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Business Identifier for this Group
	Version                *string               `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the Group
	VersionAlgorithmString *string               `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding               `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string               `json:"name,omitempty" bson:"name,omitempty"`                                       // Label for Group
	Title                  *string               `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this Group (human friendly)
	Status                 *string               `json:"status,omitempty" bson:"status,omitempty"`                                   // draft | active | retired | unknown
	Experimental           *bool                 `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string               `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string               `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail       `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string               `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the group
	UseContext             []UsageContext        `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Purpose                *string               `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this Group is defined
	Copyright              *string               `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string               `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Type                   *string               `json:"type,omitempty" bson:"type,omitempty"`                                       // person | animal | practitioner | device | careteam | healthcareservice | location | organization | relatedperson | specimen | medication | medicinalproductdefinition | substance | substancedefinition | biologicallyDerivedProduct | nutritionProduct
	Membership             string                `json:"membership" bson:"membership"`                                               // definitional | conceptual | enumerated
	Code                   *CodeableConcept      `json:"code,omitempty" bson:"code,omitempty"`                                       // Use of the Group (and by implication, kind of members)
	Quantity               *int                  `json:"quantity,omitempty" bson:"quantity,omitempty"`                               // Number of members
	ManagingEntity         *Reference            `json:"managingEntity,omitempty" bson:"managing_entity,omitempty"`                  // Entity that is the custodian of the Group's definition
	CombinationMethod      *string               `json:"combinationMethod,omitempty" bson:"combination_method,omitempty"`            // all-of | any-of | at-least | at-most | except-subset
	CombinationThreshold   *int                  `json:"combinationThreshold,omitempty" bson:"combination_threshold,omitempty"`      // Provides the value of "n" when "at-least" or "at-most" codes are used
	Characteristic         []GroupCharacteristic `json:"characteristic,omitempty" bson:"characteristic,omitempty"`                   // Include / Exclude group members by Trait
	Member                 []GroupMember         `json:"member,omitempty" bson:"member,omitempty"`                                   // Who or what is in group
}

Represents a defined collection of entities that may be discussed or acted upon collectively but which are not typically expected to act collectively*. These collections are also not typically formally or legally recognized.\r\n\r\n*NOTE: Group may be used to define families or households, which in some circumstances may act collectively or have a degree of legal or formal recognition. This should be considered an exception. When Group is used for types of entities other than Patient or RelatedPerson, the expectation remains that the Group will not act collectively or have formal recognition - use Organization if these behaviors are needed. See more discussion [below](group.html#group-usage)

func (*Group) Validate

func (r *Group) Validate() error

type GroupCharacteristic

type GroupCharacteristic struct {
	Id                   *string           `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Code                 *CodeableConcept  `json:"code" bson:"code"`                                                       // Kind of characteristic
	ValueCodeableConcept *CodeableConcept  `json:"valueCodeableConcept" bson:"value_codeable_concept"`                     // Value held by characteristic
	ValueBoolean         *bool             `json:"valueBoolean" bson:"value_boolean"`                                      // Value held by characteristic
	ValueQuantity        *Quantity         `json:"valueQuantity" bson:"value_quantity"`                                    // Value held by characteristic
	ValueRange           *Range            `json:"valueRange" bson:"value_range"`                                          // Value held by characteristic
	ValueReference       *Reference        `json:"valueReference" bson:"value_reference"`                                  // Value held by characteristic
	ValueUri             *string           `json:"valueUri" bson:"value_uri"`                                              // Value held by characteristic
	ValueExpression      *Expression       `json:"valueExpression" bson:"value_expression"`                                // Value held by characteristic
	Exclude              bool              `json:"exclude" bson:"exclude"`                                                 // Group includes or excludes
	Description          *string           `json:"description,omitempty" bson:"description,omitempty"`                     // Natural language description of the characteristic
	Method               []CodeableConcept `json:"method,omitempty" bson:"method,omitempty"`                               // Method for how the characteristic value was determined
	Formula              *Expression       `json:"formula,omitempty" bson:"formula,omitempty"`                             // Formal algorithm to derive the value
	Determiner           *Reference        `json:"determiner,omitempty" bson:"determiner,omitempty"`                       // Who determines the value
	Offset               *CodeableConcept  `json:"offset,omitempty" bson:"offset,omitempty"`                               // Reference point for comparison
	InstancesUnsignedInt *int              `json:"instancesUnsignedInt,omitempty" bson:"instances_unsigned_int,omitempty"` // Number of occurrences meeting the characteristic
	InstancesRange       *Range            `json:"instancesRange,omitempty" bson:"instances_range,omitempty"`              // Number of occurrences meeting the characteristic
	DurationDuration     *Duration         `json:"durationDuration,omitempty" bson:"duration_duration,omitempty"`          // Length of time in which the characteristic is met
	DurationRange        *Range            `json:"durationRange,omitempty" bson:"duration_range,omitempty"`                // Length of time in which the characteristic is met
	Period               *Period           `json:"period,omitempty" bson:"period,omitempty"`                               // Period over which characteristic is tested
	Timing               []RelativeTime    `json:"timing,omitempty" bson:"timing,omitempty"`                               // Timing in which the characteristic is determined
}

func (*GroupCharacteristic) Validate

func (r *GroupCharacteristic) Validate() error

type GroupCharacteristicCombination added in v0.0.3

type GroupCharacteristicCombination string

GroupCharacteristicCombination represents codes from http://hl7.org/fhir/ValueSet/group-characteristic-combination

const (
	GroupCharacteristicCombinationAllOf        GroupCharacteristicCombination = "all-of"
	GroupCharacteristicCombinationAnyOf        GroupCharacteristicCombination = "any-of"
	GroupCharacteristicCombinationAtLeast      GroupCharacteristicCombination = "at-least"
	GroupCharacteristicCombinationAtMost       GroupCharacteristicCombination = "at-most"
	GroupCharacteristicCombinationExceptSubset GroupCharacteristicCombination = "except-subset"
	GroupCharacteristicCombinationStatistical  GroupCharacteristicCombination = "statistical"
	GroupCharacteristicCombinationNetEffect    GroupCharacteristicCombination = "net-effect"
	GroupCharacteristicCombinationDataset      GroupCharacteristicCombination = "dataset"
)

type GroupMember

type GroupMember struct {
	Id          *string           `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Entity      *Reference        `json:"entity" bson:"entity"`                               // Reference to the group member
	Involvement []CodeableConcept `json:"involvement,omitempty" bson:"involvement,omitempty"` // Code that describes how user is part of the group
	Period      *Period           `json:"period,omitempty" bson:"period,omitempty"`           // Period member belonged to the group
	Inactive    *bool             `json:"inactive,omitempty" bson:"inactive,omitempty"`       // If member is no longer in group
}

func (*GroupMember) Validate

func (r *GroupMember) Validate() error

type GroupMembershipBasis added in v0.0.3

type GroupMembershipBasis string

GroupMembershipBasis represents codes from http://hl7.org/fhir/ValueSet/group-membership-basis

const (
	GroupMembershipBasisDefinitional GroupMembershipBasis = "definitional"
	GroupMembershipBasisConceptual   GroupMembershipBasis = "conceptual"
	GroupMembershipBasisEnumerated   GroupMembershipBasis = "enumerated"
)

type GroupType added in v0.0.3

type GroupType string

GroupType represents codes from http://hl7.org/fhir/ValueSet/group-type

const (
	GroupTypePerson                     GroupType = "person"
	GroupTypeAnimal                     GroupType = "animal"
	GroupTypePractitioner               GroupType = "practitioner"
	GroupTypeDevice                     GroupType = "device"
	GroupTypeCareteam                   GroupType = "careteam"
	GroupTypeHealthcareservice          GroupType = "healthcareservice"
	GroupTypeLocation                   GroupType = "location"
	GroupTypeOrganization               GroupType = "organization"
	GroupTypeRelatedperson              GroupType = "relatedperson"
	GroupTypeSpecimen                   GroupType = "specimen"
	GroupTypeMedication                 GroupType = "medication"
	GroupTypeMedicinalproductdefinition GroupType = "medicinalproductdefinition"
	GroupTypeSubstance                  GroupType = "substance"
	GroupTypeSubstancedefinition        GroupType = "substancedefinition"
	GroupTypeBiologicallyDerivedProduct GroupType = "biologicallyDerivedProduct"
	GroupTypeNutritionProduct           GroupType = "nutritionProduct"
)

type GuidanceResponse

type GuidanceResponse struct {
	ResourceType          string              `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                    *string             `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta                  *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules         *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language              *string             `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text                  *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	RequestIdentifier     *Identifier         `json:"requestIdentifier,omitempty" bson:"request_identifier,omitempty"`    // The identifier of the request associated with this response, if any
	Identifier            []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Business identifier for guidance response
	ModuleUri             *string             `json:"moduleUri" bson:"module_uri"`                                        // What guidance was requested
	ModuleCanonical       *string             `json:"moduleCanonical" bson:"module_canonical"`                            // What guidance was requested
	ModuleCodeableConcept *CodeableConcept    `json:"moduleCodeableConcept" bson:"module_codeable_concept"`               // What guidance was requested
	Status                string              `json:"status" bson:"status"`                                               // success | data-requested | data-required | in-progress | failure | entered-in-error
	Subject               *Reference          `json:"subject,omitempty" bson:"subject,omitempty"`                         // Individual service was done for/to
	Encounter             *Reference          `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Encounter the guidance response is part of
	OccurrenceDateTime    *string             `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // When the guidance response was processed
	Performer             *Reference          `json:"performer,omitempty" bson:"performer,omitempty"`                     // Device returning the guidance
	Location              *Reference          `json:"location,omitempty" bson:"location,omitempty"`                       // Where guidance response occurred
	Reason                []CodeableReference `json:"reason,omitempty" bson:"reason,omitempty"`                           // Why guidance is needed
	Note                  []Annotation        `json:"note,omitempty" bson:"note,omitempty"`                               // Additional notes about the response
	EvaluationMessage     *Reference          `json:"evaluationMessage,omitempty" bson:"evaluation_message,omitempty"`    // Messages resulting from the evaluation of the artifact or artifacts
	OutputParameters      *Reference          `json:"outputParameters,omitempty" bson:"output_parameters,omitempty"`      // The output parameters of the evaluation, if any
	Result                []Reference         `json:"result,omitempty" bson:"result,omitempty"`                           // Proposed actions, if any
	DataRequirement       []DataRequirement   `json:"dataRequirement,omitempty" bson:"data_requirement,omitempty"`        // Additional required data
}

A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.

func (*GuidanceResponse) Validate

func (r *GuidanceResponse) Validate() error

type GuidanceResponseStatus added in v0.0.3

type GuidanceResponseStatus string

GuidanceResponseStatus represents codes from http://hl7.org/fhir/ValueSet/guidance-response-status

const (
	GuidanceResponseStatusSuccess        GuidanceResponseStatus = "success"
	GuidanceResponseStatusDataRequested  GuidanceResponseStatus = "data-requested"
	GuidanceResponseStatusDataRequired   GuidanceResponseStatus = "data-required"
	GuidanceResponseStatusInProgress     GuidanceResponseStatus = "in-progress"
	GuidanceResponseStatusFailure        GuidanceResponseStatus = "failure"
	GuidanceResponseStatusEnteredInError GuidanceResponseStatus = "entered-in-error"
)

type GuidePageGeneration added in v0.0.3

type GuidePageGeneration string

GuidePageGeneration represents codes from http://hl7.org/fhir/ValueSet/guide-page-generation

const (
	GuidePageGenerationHtml      GuidePageGeneration = "html"
	GuidePageGenerationMarkdown  GuidePageGeneration = "markdown"
	GuidePageGenerationXml       GuidePageGeneration = "xml"
	GuidePageGenerationGenerated GuidePageGeneration = "generated"
)

type HTTPVerb added in v0.0.3

type HTTPVerb string

HTTPVerb represents codes from http://hl7.org/fhir/ValueSet/http-verb

const (
	HTTPVerbGET    HTTPVerb = "GET"
	HTTPVerbHEAD   HTTPVerb = "HEAD"
	HTTPVerbPOST   HTTPVerb = "POST"
	HTTPVerbPUT    HTTPVerb = "PUT"
	HTTPVerbDELETE HTTPVerb = "DELETE"
	HTTPVerbPATCH  HTTPVerb = "PATCH"
)

type HealthcareService

type HealthcareService struct {
	ResourceType         string                         `json:"resourceType" bson:"resource_type"`                                      // Type of resource
	Id                   *string                        `json:"id,omitempty" bson:"id,omitempty"`                                       // Logical id of this artifact
	Meta                 *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                                   // Metadata about the resource
	ImplicitRules        *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                // A set of rules under which this content was created
	Language             *string                        `json:"language,omitempty" bson:"language,omitempty"`                           // Language of the resource content
	Text                 *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                                   // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                         // Contained, inline Resources
	Identifier           []Identifier                   `json:"identifier,omitempty" bson:"identifier,omitempty"`                       // External identifiers for this item
	Active               *bool                          `json:"active,omitempty" bson:"active,omitempty"`                               // Whether this HealthcareService record is in active use
	ProvidedBy           *Reference                     `json:"providedBy,omitempty" bson:"provided_by,omitempty"`                      // Organization that provides this service
	OfferedIn            []Reference                    `json:"offeredIn,omitempty" bson:"offered_in,omitempty"`                        // The service within which this service is offered
	Category             []CodeableConcept              `json:"category,omitempty" bson:"category,omitempty"`                           // Broad category of service being performed or delivered
	Type                 []CodeableConcept              `json:"type,omitempty" bson:"type,omitempty"`                                   // Type of service that may be delivered or performed
	Specialty            []CodeableConcept              `json:"specialty,omitempty" bson:"specialty,omitempty"`                         // Specialties handled by the HealthcareService
	Location             []Reference                    `json:"location,omitempty" bson:"location,omitempty"`                           // Location(s) where service may be provided
	Name                 *string                        `json:"name,omitempty" bson:"name,omitempty"`                                   // Description of service as presented to a consumer while searching
	Comment              *string                        `json:"comment,omitempty" bson:"comment,omitempty"`                             // Additional description and/or any specific issues not covered elsewhere
	ExtraDetails         *string                        `json:"extraDetails,omitempty" bson:"extra_details,omitempty"`                  // Extra details about the service that can't be placed in the other fields
	Photo                *Attachment                    `json:"photo,omitempty" bson:"photo,omitempty"`                                 // Facilitates quick identification of the service
	Contact              []ExtendedContactDetail        `json:"contact,omitempty" bson:"contact,omitempty"`                             // Official contact details for the HealthcareService
	CoverageArea         []Reference                    `json:"coverageArea,omitempty" bson:"coverage_area,omitempty"`                  // Location(s) service is intended for/available to
	ServiceProvisionCode []CodeableConcept              `json:"serviceProvisionCode,omitempty" bson:"service_provision_code,omitempty"` // Conditions under which service is available/offered
	Eligibility          []HealthcareServiceEligibility `json:"eligibility,omitempty" bson:"eligibility,omitempty"`                     // Specific eligibility requirements required to use the service
	Program              []CodeableConcept              `json:"program,omitempty" bson:"program,omitempty"`                             // Programs that this service is applicable to
	Characteristic       []CodeableConcept              `json:"characteristic,omitempty" bson:"characteristic,omitempty"`               // Collection of characteristics (attributes)
	Communication        []CodeableConcept              `json:"communication,omitempty" bson:"communication,omitempty"`                 // The language that this service is offered in
	ReferralMethod       []CodeableConcept              `json:"referralMethod,omitempty" bson:"referral_method,omitempty"`              // Ways that the service accepts referrals
	ReferralRequired     *bool                          `json:"referralRequired,omitempty" bson:"referral_required,omitempty"`          // A referral is required for access to this service
	AppointmentRequired  *bool                          `json:"appointmentRequired,omitempty" bson:"appointment_required,omitempty"`    // An appointment is required for access to this service
	Availability         *Availability                  `json:"availability,omitempty" bson:"availability,omitempty"`                   // Times the healthcare service is available (including exceptions)
	Endpoint             []Reference                    `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                           // Technical endpoints providing access to electronic services operated for the healthcare service
}

The details of a healthcare service available at a location or in a catalog. In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices.

func (*HealthcareService) Validate

func (r *HealthcareService) Validate() error

type HealthcareServiceEligibility

type HealthcareServiceEligibility struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Code                 *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                                   // Coded value for the eligibility
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // Value associated with the eligibility code
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // Value associated with the eligibility code
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // Value associated with the eligibility code
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // Value associated with the eligibility code
	ValueReference       *Reference       `json:"valueReference,omitempty" bson:"value_reference,omitempty"`              // Value associated with the eligibility code
	Comment              *string          `json:"comment,omitempty" bson:"comment,omitempty"`                             // Describes the eligibility conditions for the service
	Period               *Period          `json:"period,omitempty" bson:"period,omitempty"`                               // The period this eligibility rule applies
}

func (*HealthcareServiceEligibility) Validate

func (r *HealthcareServiceEligibility) Validate() error

type HumanName

type HumanName struct {
	Id     *string  `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Use    *string  `json:"use,omitempty" bson:"use,omitempty"`       // usual | official | temp | nickname | anonymous | old | maiden
	Text   *string  `json:"text,omitempty" bson:"text,omitempty"`     // Text representation of the full name
	Family *string  `json:"family,omitempty" bson:"family,omitempty"` // Family name (often called 'Surname')
	Given  []string `json:"given,omitempty" bson:"given,omitempty"`   // Given names (not always 'first'). Includes middle names
	Prefix []string `json:"prefix,omitempty" bson:"prefix,omitempty"` // Parts that come before the name
	Suffix []string `json:"suffix,omitempty" bson:"suffix,omitempty"` // Parts that come after the name
	Period *Period  `json:"period,omitempty" bson:"period,omitempty"` // Time period when name was/is in use
}

HumanName Type: A name, normally of a human, that can be used for other living entities (e.g. animals but not organizations) that have been assigned names by a human and may need the use of name parts or the need for usage information.

func (*HumanName) Validate

func (r *HumanName) Validate() error

type Identifier

type Identifier struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Use      *string          `json:"use,omitempty" bson:"use,omitempty"`           // usual | official | temp | secondary | old (If known)
	Type     *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`         // Description of identifier
	System   *string          `json:"system,omitempty" bson:"system,omitempty"`     // The namespace for the identifier value
	Value    *string          `json:"value,omitempty" bson:"value,omitempty"`       // The value that is unique
	Period   *Period          `json:"period,omitempty" bson:"period,omitempty"`     // Time period when id is/was valid for use
	Assigner *Reference       `json:"assigner,omitempty" bson:"assigner,omitempty"` // Organization that issued id (may be just text)
}

Identifier Type: An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.

func (*Identifier) Validate

func (r *Identifier) Validate() error

type IdentifierUse added in v0.0.3

type IdentifierUse string

IdentifierUse represents codes from http://hl7.org/fhir/ValueSet/identifier-use

const (
	IdentifierUseUsual     IdentifierUse = "usual"
	IdentifierUseOfficial  IdentifierUse = "official"
	IdentifierUseTemp      IdentifierUse = "temp"
	IdentifierUseSecondary IdentifierUse = "secondary"
	IdentifierUseOld       IdentifierUse = "old"
)

type IdentityAssuranceLevel added in v0.0.3

type IdentityAssuranceLevel string

IdentityAssuranceLevel represents codes from http://hl7.org/fhir/ValueSet/identity-assuranceLevel

const (
	IdentityAssuranceLevelLevel1 IdentityAssuranceLevel = "level1"
	IdentityAssuranceLevelLevel2 IdentityAssuranceLevel = "level2"
	IdentityAssuranceLevelLevel3 IdentityAssuranceLevel = "level3"
	IdentityAssuranceLevelLevel4 IdentityAssuranceLevel = "level4"
)

type ImagingSelection

type ImagingSelection struct {
	ResourceType        string                          `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                  *string                         `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                *Meta                           `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules       *string                         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language            *string                         `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                *Narrative                      `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained           []json.RawMessage               `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier          []Identifier                    `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // Business identifier for imaging selection
	Status              string                          `json:"status" bson:"status"`                                                  // available | entered-in-error | inactive | unknown
	Category            []CodeableConcept               `json:"category,omitempty" bson:"category,omitempty"`                          // Classifies the imaging selection
	Modality            *CodeableConcept                `json:"modality,omitempty" bson:"modality,omitempty"`                          // The distinct modality
	Code                *CodeableConcept                `json:"code" bson:"code"`                                                      // Imaging Selection purpose text or code
	Subject             *Reference                      `json:"subject,omitempty" bson:"subject,omitempty"`                            // Who or what is the subject of the imaging selection
	Issued              *string                         `json:"issued,omitempty" bson:"issued,omitempty"`                              // When the imaging selection was created
	Performer           []ImagingSelectionPerformer     `json:"performer,omitempty" bson:"performer,omitempty"`                        // Who performed imaging selection and what they did
	BasedOn             []Reference                     `json:"basedOn,omitempty" bson:"based_on,omitempty"`                           // Fulfills plan or order
	DerivedFrom         *Reference                      `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                   // The imaging study from which the imaging selection is derived
	StudyUid            *string                         `json:"studyUid,omitempty" bson:"study_uid,omitempty"`                         // DICOM Study Instance UID
	SeriesUid           *string                         `json:"seriesUid,omitempty" bson:"series_uid,omitempty"`                       // DICOM Series Instance UID
	SeriesNumber        *int                            `json:"seriesNumber,omitempty" bson:"series_number,omitempty"`                 // Numeric identifier of the selected series
	FrameOfReferenceUid *string                         `json:"frameOfReferenceUid,omitempty" bson:"frame_of_reference_uid,omitempty"` // The Frame of Reference UID for the selected images
	BodySite            []CodeableReference             `json:"bodySite,omitempty" bson:"body_site,omitempty"`                         // Selected anatomic structure
	Focus               []Reference                     `json:"focus,omitempty" bson:"focus,omitempty"`                                // Related resources that are the focus for the imaging selection
	Endpoint            []Reference                     `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                          // The network services providing access for the subset of the study
	Instance            []ImagingSelectionInstance      `json:"instance,omitempty" bson:"instance,omitempty"`                          // The selected instances
	ImageRegion3D       []ImagingSelectionImageRegion3D `json:"imageRegion3D,omitempty" bson:"image_region3_d,omitempty"`              // A 3D region in a DICOM frame of reference
}

A selection of DICOM SOP instances within a single Study and Series. This might include additional specifics such as a set of frames or an image region, allowing linkage to an Observation Resource.

func (*ImagingSelection) Validate

func (r *ImagingSelection) Validate() error

type ImagingSelection2DGraphicType added in v0.0.3

type ImagingSelection2DGraphicType string

ImagingSelection2DGraphicType represents codes from http://hl7.org/fhir/ValueSet/imagingselection-2dgraphictype

const (
	ImagingSelection2DGraphicTypePoint      ImagingSelection2DGraphicType = "point"
	ImagingSelection2DGraphicTypePolyline   ImagingSelection2DGraphicType = "polyline"
	ImagingSelection2DGraphicTypeMultipoint ImagingSelection2DGraphicType = "multipoint"
	ImagingSelection2DGraphicTypeCircle     ImagingSelection2DGraphicType = "circle"
	ImagingSelection2DGraphicTypeEllipse    ImagingSelection2DGraphicType = "ellipse"
)

type ImagingSelection3DGraphicType added in v0.0.3

type ImagingSelection3DGraphicType string

ImagingSelection3DGraphicType represents codes from http://hl7.org/fhir/ValueSet/imagingselection-3dgraphictype

const (
	ImagingSelection3DGraphicTypePoint      ImagingSelection3DGraphicType = "point"
	ImagingSelection3DGraphicTypeMultipoint ImagingSelection3DGraphicType = "multipoint"
	ImagingSelection3DGraphicTypePolyline   ImagingSelection3DGraphicType = "polyline"
	ImagingSelection3DGraphicTypePolygon    ImagingSelection3DGraphicType = "polygon"
	ImagingSelection3DGraphicTypeEllipse    ImagingSelection3DGraphicType = "ellipse"
	ImagingSelection3DGraphicTypeEllipsoid  ImagingSelection3DGraphicType = "ellipsoid"
)

type ImagingSelectionImageRegion3D

type ImagingSelectionImageRegion3D struct {
	Id         *string   `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	RegionType string    `json:"regionType" bson:"region_type"`    // point | multipoint | polyline | polygon | ellipse | ellipsoid
	Coordinate []float64 `json:"coordinate" bson:"coordinate"`     // Specifies the coordinates that define the image region
}

func (*ImagingSelectionImageRegion3D) Validate

func (r *ImagingSelectionImageRegion3D) Validate() error

type ImagingSelectionInstance

type ImagingSelectionInstance struct {
	Id                              *string                                 `json:"id,omitempty" bson:"id,omitempty"`                                                              // Unique id for inter-element referencing
	Uid                             string                                  `json:"uid" bson:"uid"`                                                                                // DICOM SOP Instance UID
	Number                          *int                                    `json:"number,omitempty" bson:"number,omitempty"`                                                      // The number of this instance in the series
	SopClass                        *string                                 `json:"sopClass,omitempty" bson:"sop_class,omitempty"`                                                 // DICOM class type
	FrameNumber                     []int                                   `json:"frameNumber,omitempty" bson:"frame_number,omitempty"`                                           // Selected frames
	ReferencedContentItemIdentifier []int                                   `json:"referencedContentItemIdentifier,omitempty" bson:"referenced_content_item_identifier,omitempty"` // Selected content items
	SegmentNumber                   []int                                   `json:"segmentNumber,omitempty" bson:"segment_number,omitempty"`                                       // Selected segments
	RegionOfInterest                []int                                   `json:"regionOfInterest,omitempty" bson:"region_of_interest,omitempty"`                                // Selected regions of interest
	WaveFormChannel                 []int                                   `json:"waveFormChannel,omitempty" bson:"wave_form_channel,omitempty"`                                  // Selected waveform channel
	ImageRegion2D                   []ImagingSelectionInstanceImageRegion2D `json:"imageRegion2D,omitempty" bson:"image_region2_d,omitempty"`                                      // A 2D region in an image
}

func (*ImagingSelectionInstance) Validate

func (r *ImagingSelectionInstance) Validate() error

type ImagingSelectionInstanceImageRegion2D

type ImagingSelectionInstanceImageRegion2D struct {
	Id         *string   `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	RegionType string    `json:"regionType" bson:"region_type"`    // point | polyline | multipoint | circle | ellipse
	Coordinate []float64 `json:"coordinate" bson:"coordinate"`     // The coordinates that define the image region
}

func (*ImagingSelectionInstanceImageRegion2D) Validate

type ImagingSelectionPerformer

type ImagingSelectionPerformer struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Type of performance
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Who performed the imaging selection
}

func (*ImagingSelectionPerformer) Validate

func (r *ImagingSelectionPerformer) Validate() error

type ImagingSelectionStatus added in v0.0.3

type ImagingSelectionStatus string

ImagingSelectionStatus represents codes from http://hl7.org/fhir/ValueSet/imagingselection-status

const (
	ImagingSelectionStatusAvailable      ImagingSelectionStatus = "available"
	ImagingSelectionStatusEnteredInError ImagingSelectionStatus = "entered-in-error"
	ImagingSelectionStatusInactive       ImagingSelectionStatus = "inactive"
	ImagingSelectionStatusUnknown        ImagingSelectionStatus = "unknown"
)

type ImagingStudy

type ImagingStudy struct {
	ResourceType      string               `json:"resourceType" bson:"resource_type"`                                // Type of resource
	Id                *string              `json:"id,omitempty" bson:"id,omitempty"`                                 // Logical id of this artifact
	Meta              *Meta                `json:"meta,omitempty" bson:"meta,omitempty"`                             // Metadata about the resource
	ImplicitRules     *string              `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`          // A set of rules under which this content was created
	Language          *string              `json:"language,omitempty" bson:"language,omitempty"`                     // Language of the resource content
	Text              *Narrative           `json:"text,omitempty" bson:"text,omitempty"`                             // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage    `json:"contained,omitempty" bson:"contained,omitempty"`                   // Contained, inline Resources
	Identifier        []Identifier         `json:"identifier,omitempty" bson:"identifier,omitempty"`                 // Business identifier for imaging study
	Status            string               `json:"status" bson:"status"`                                             // registered | available | cancelled | entered-in-error | unknown | inactive
	Modality          []CodeableConcept    `json:"modality,omitempty" bson:"modality,omitempty"`                     // The distinct values for series' modalities
	Subject           *Reference           `json:"subject" bson:"subject"`                                           // Who or what is the subject of the study
	Encounter         *Reference           `json:"encounter,omitempty" bson:"encounter,omitempty"`                   // Encounter with which this imaging study is associated
	Started           *string              `json:"started,omitempty" bson:"started,omitempty"`                       // When the study was started
	BasedOn           []Reference          `json:"basedOn,omitempty" bson:"based_on,omitempty"`                      // Fulfills plan or order
	Procedure         []Reference          `json:"procedure,omitempty" bson:"procedure,omitempty"`                   // Imaging performed procedure(s)
	Referrer          *Reference           `json:"referrer,omitempty" bson:"referrer,omitempty"`                     // Referring physician
	Endpoint          []Reference          `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                     // Study access endpoint
	Location          *Reference           `json:"location,omitempty" bson:"location,omitempty"`                     // Where imaging study occurred
	Reason            []CodeableReference  `json:"reason,omitempty" bson:"reason,omitempty"`                         // Why was imaging study performed?
	Note              []Annotation         `json:"note,omitempty" bson:"note,omitempty"`                             // Comments made about the imaging study
	Description       *string              `json:"description,omitempty" bson:"description,omitempty"`               // Study Description or Classification
	NumberOfSeries    *int                 `json:"numberOfSeries,omitempty" bson:"number_of_series,omitempty"`       // Number of Study Related Series
	NumberOfInstances *int                 `json:"numberOfInstances,omitempty" bson:"number_of_instances,omitempty"` // Number of Study Related Instances
	Series            []ImagingStudySeries `json:"series,omitempty" bson:"series,omitempty"`                         // The set of Series belonging to the study
}

Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of images or other data objects (called Service-Object Pair Instances or SOP Instances) acquired or produced in a common context.

func (*ImagingStudy) Validate

func (r *ImagingStudy) Validate() error

type ImagingStudySeries

type ImagingStudySeries struct {
	Id                *string                       `json:"id,omitempty" bson:"id,omitempty"`                                 // Unique id for inter-element referencing
	Uid               string                        `json:"uid" bson:"uid"`                                                   // DICOM Series Instance UID
	Number            *int                          `json:"number,omitempty" bson:"number,omitempty"`                         // Numeric identifier of this series
	Modality          *CodeableConcept              `json:"modality" bson:"modality"`                                         // The modality used for this series
	Description       *string                       `json:"description,omitempty" bson:"description,omitempty"`               // Series Description or Classification
	NumberOfInstances *int                          `json:"numberOfInstances,omitempty" bson:"number_of_instances,omitempty"` // Number of Series Related Instances
	Endpoint          []Reference                   `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                     // Series access endpoint
	BodySite          *CodeableReference            `json:"bodySite,omitempty" bson:"body_site,omitempty"`                    // Body part examined
	Specimen          []Reference                   `json:"specimen,omitempty" bson:"specimen,omitempty"`                     // Specimen imaged
	Started           *string                       `json:"started,omitempty" bson:"started,omitempty"`                       // When the series started
	Performer         []ImagingStudySeriesPerformer `json:"performer,omitempty" bson:"performer,omitempty"`                   // Who performed the series
	Instance          []ImagingStudySeriesInstance  `json:"instance,omitempty" bson:"instance,omitempty"`                     // A single SOP instance from the series
}

func (*ImagingStudySeries) Validate

func (r *ImagingStudySeries) Validate() error

type ImagingStudySeriesInstance

type ImagingStudySeriesInstance struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Uid      string  `json:"uid" bson:"uid"`                           // DICOM SOP Instance UID
	SopClass string  `json:"sopClass" bson:"sop_class"`                // DICOM class type
	Number   *int    `json:"number,omitempty" bson:"number,omitempty"` // The number of this instance in the series
	Title    *string `json:"title,omitempty" bson:"title,omitempty"`   // Name or title of the instance
}

func (*ImagingStudySeriesInstance) Validate

func (r *ImagingStudySeriesInstance) Validate() error

type ImagingStudySeriesPerformer

type ImagingStudySeriesPerformer struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Type of performance
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Who performed imaging study
}

func (*ImagingStudySeriesPerformer) Validate

func (r *ImagingStudySeriesPerformer) Validate() error

type ImagingStudyStatus added in v0.0.3

type ImagingStudyStatus string

ImagingStudyStatus represents codes from http://hl7.org/fhir/ValueSet/imagingstudy-status

const (
	ImagingStudyStatusRegistered     ImagingStudyStatus = "registered"
	ImagingStudyStatusAvailable      ImagingStudyStatus = "available"
	ImagingStudyStatusCancelled      ImagingStudyStatus = "cancelled"
	ImagingStudyStatusEnteredInError ImagingStudyStatus = "entered-in-error"
	ImagingStudyStatusUnknown        ImagingStudyStatus = "unknown"
	ImagingStudyStatusInactive       ImagingStudyStatus = "inactive"
)

type Immunization

type Immunization struct {
	ResourceType          string                           `json:"resourceType" bson:"resource_type"`                                       // Type of resource
	Id                    *string                          `json:"id,omitempty" bson:"id,omitempty"`                                        // Logical id of this artifact
	Meta                  *Meta                            `json:"meta,omitempty" bson:"meta,omitempty"`                                    // Metadata about the resource
	ImplicitRules         *string                          `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                 // A set of rules under which this content was created
	Language              *string                          `json:"language,omitempty" bson:"language,omitempty"`                            // Language of the resource content
	Text                  *Narrative                       `json:"text,omitempty" bson:"text,omitempty"`                                    // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage                `json:"contained,omitempty" bson:"contained,omitempty"`                          // Contained, inline Resources
	Identifier            []Identifier                     `json:"identifier,omitempty" bson:"identifier,omitempty"`                        // Business identifier
	BasedOn               []Reference                      `json:"basedOn,omitempty" bson:"based_on,omitempty"`                             // Authority that the immunization event is based on
	Status                string                           `json:"status" bson:"status"`                                                    // completed | entered-in-error | not-done
	StatusReason          *CodeableConcept                 `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                   // Reason for current status
	VaccineCode           *CodeableConcept                 `json:"vaccineCode" bson:"vaccine_code"`                                         // Vaccine administered
	AdministeredProduct   *CodeableReference               `json:"administeredProduct,omitempty" bson:"administered_product,omitempty"`     // Product that was administered
	Manufacturer          *CodeableReference               `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`                    // Vaccine manufacturer
	LotNumber             *string                          `json:"lotNumber,omitempty" bson:"lot_number,omitempty"`                         // Vaccine lot number
	ExpirationDate        *string                          `json:"expirationDate,omitempty" bson:"expiration_date,omitempty"`               // Vaccine expiration date
	Patient               *Reference                       `json:"patient" bson:"patient"`                                                  // Who was immunized
	Encounter             *Reference                       `json:"encounter,omitempty" bson:"encounter,omitempty"`                          // Encounter immunization was part of
	SupportingInformation []Reference                      `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"` // Additional information in support of the immunization
	OccurrenceDateTime    *string                          `json:"occurrenceDateTime" bson:"occurrence_date_time"`                          // Vaccine administration date
	OccurrenceString      *string                          `json:"occurrenceString" bson:"occurrence_string"`                               // Vaccine administration date
	PrimarySource         *bool                            `json:"primarySource,omitempty" bson:"primary_source,omitempty"`                 // Indicates context the data was captured in
	InformationSource     *CodeableReference               `json:"informationSource,omitempty" bson:"information_source,omitempty"`         // Indicates the source of a  reported record
	Location              *Reference                       `json:"location,omitempty" bson:"location,omitempty"`                            // The service delivery location
	Site                  *CodeableConcept                 `json:"site,omitempty" bson:"site,omitempty"`                                    // Body site vaccine  was administered
	Route                 *CodeableConcept                 `json:"route,omitempty" bson:"route,omitempty"`                                  // How vaccine entered body
	DoseQuantity          *Quantity                        `json:"doseQuantity,omitempty" bson:"dose_quantity,omitempty"`                   // Amount of vaccine administered
	Performer             []ImmunizationPerformer          `json:"performer,omitempty" bson:"performer,omitempty"`                          // Who performed event
	Note                  []Annotation                     `json:"note,omitempty" bson:"note,omitempty"`                                    // Additional immunization notes
	Reason                []CodeableReference              `json:"reason,omitempty" bson:"reason,omitempty"`                                // Why immunization occurred
	IsSubpotent           *bool                            `json:"isSubpotent,omitempty" bson:"is_subpotent,omitempty"`                     // Dose potency
	SubpotentReason       []CodeableConcept                `json:"subpotentReason,omitempty" bson:"subpotent_reason,omitempty"`             // Reason for being subpotent
	ProgramEligibility    []ImmunizationProgramEligibility `json:"programEligibility,omitempty" bson:"program_eligibility,omitempty"`       // Patient eligibility for a specific vaccination program
	FundingSource         *CodeableConcept                 `json:"fundingSource,omitempty" bson:"funding_source,omitempty"`                 // Funding source for the vaccine
	Reaction              []ImmunizationReaction           `json:"reaction,omitempty" bson:"reaction,omitempty"`                            // Details of a reaction that followed the immunization
	ProtocolApplied       []ImmunizationProtocolApplied    `json:"protocolApplied,omitempty" bson:"protocol_applied,omitempty"`             // Protocol followed by the provider
}

Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.

func (*Immunization) Validate

func (r *Immunization) Validate() error

type ImmunizationPerformer

type ImmunizationPerformer struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Type of performance
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Individual or organization who performed the event
}

func (*ImmunizationPerformer) Validate

func (r *ImmunizationPerformer) Validate() error

type ImmunizationProgramEligibility

type ImmunizationProgramEligibility struct {
	Id            *string          `json:"id,omitempty" bson:"id,omitempty"`    // Unique id for inter-element referencing
	Program       *CodeableConcept `json:"program" bson:"program"`              // The program that eligibility is declared for
	ProgramStatus *CodeableConcept `json:"programStatus" bson:"program_status"` // The patient's eligibility status for the program
}

func (*ImmunizationProgramEligibility) Validate

func (r *ImmunizationProgramEligibility) Validate() error

type ImmunizationProtocolApplied

type ImmunizationProtocolApplied struct {
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Series        *string           `json:"series,omitempty" bson:"series,omitempty"`                // Name of vaccine series
	Authority     *Reference        `json:"authority,omitempty" bson:"authority,omitempty"`          // Who is responsible for publishing the recommendations
	TargetDisease []CodeableConcept `json:"targetDisease,omitempty" bson:"target_disease,omitempty"` // Vaccine preventable disease being targeted
	DoseNumber    *CodeableConcept  `json:"doseNumber,omitempty" bson:"dose_number,omitempty"`       // Dose number within series
	SeriesDoses   *CodeableConcept  `json:"seriesDoses,omitempty" bson:"series_doses,omitempty"`     // Recommended number of doses for immunity
}

func (*ImmunizationProtocolApplied) Validate

func (r *ImmunizationProtocolApplied) Validate() error

type ImmunizationReaction

type ImmunizationReaction struct {
	Id            *string            `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Date          *string            `json:"date,omitempty" bson:"date,omitempty"`                   // When reaction started
	Manifestation *CodeableReference `json:"manifestation,omitempty" bson:"manifestation,omitempty"` // Additional information on reaction
	Reported      *bool              `json:"reported,omitempty" bson:"reported,omitempty"`           // Indicates self-reported reaction
}

func (*ImmunizationReaction) Validate

func (r *ImmunizationReaction) Validate() error

type ImmunizationStatusCodes added in v0.0.3

type ImmunizationStatusCodes string

ImmunizationStatusCodes represents codes from http://hl7.org/fhir/ValueSet/immunization-status

const (
	ImmunizationStatusCodesPreparation    ImmunizationStatusCodes = "preparation"
	ImmunizationStatusCodesInProgress     ImmunizationStatusCodes = "in-progress"
	ImmunizationStatusCodesNotDone        ImmunizationStatusCodes = "not-done"
	ImmunizationStatusCodesOnHold         ImmunizationStatusCodes = "on-hold"
	ImmunizationStatusCodesStopped        ImmunizationStatusCodes = "stopped"
	ImmunizationStatusCodesCompleted      ImmunizationStatusCodes = "completed"
	ImmunizationStatusCodesEnteredInError ImmunizationStatusCodes = "entered-in-error"
	ImmunizationStatusCodesUnknown        ImmunizationStatusCodes = "unknown"
)

type ImplementationGuide

type ImplementationGuide struct {
	ResourceType           string                         `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                        `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                        `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    string                         `json:"url" bson:"url"`                                                             // Canonical identifier for this implementation guide, represented as a URI (globally unique)
	Identifier             []Identifier                   `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the implementation guide (business identifier)
	Version                *string                        `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the implementation guide
	VersionAlgorithmString *string                        `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                        `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                         `json:"name" bson:"name"`                                                           // Name for this implementation guide (computer friendly)
	Title                  *string                        `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this implementation guide (human friendly)
	Status                 string                         `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                          `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                        `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                        `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                        `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the implementation guide
	UseContext             []UsageContext                 `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept              `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the implementation guide (if applicable)
	Purpose                *string                        `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this implementation guide is defined
	Copyright              *string                        `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                        `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	PackageId              string                         `json:"packageId" bson:"package_id"`                                                // NPM Package name for IG
	License                *string                        `json:"license,omitempty" bson:"license,omitempty"`                                 // SPDX license code for this IG (or not-open-source)
	FhirVersion            []string                       `json:"fhirVersion" bson:"fhir_version"`                                            // FHIR Version(s) this Implementation Guide targets
	DependsOn              []ImplementationGuideDependsOn `json:"dependsOn,omitempty" bson:"depends_on,omitempty"`                            // Another Implementation guide this depends on
	Global                 []ImplementationGuideGlobal    `json:"global,omitempty" bson:"global,omitempty"`                                   // Profiles that apply globally
	Definition             *ImplementationGuideDefinition `json:"definition,omitempty" bson:"definition,omitempty"`                           // Information needed to build the IG
	Manifest               *ImplementationGuideManifest   `json:"manifest,omitempty" bson:"manifest,omitempty"`                               // Information about an assembled IG
}

A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.

func (*ImplementationGuide) Validate

func (r *ImplementationGuide) Validate() error

type ImplementationGuideDefinition

type ImplementationGuideDefinition struct {
	Id        *string                                  `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Grouping  []ImplementationGuideDefinitionGrouping  `json:"grouping,omitempty" bson:"grouping,omitempty"`   // Grouping used to present related resources in the IG
	Resource  []ImplementationGuideDefinitionResource  `json:"resource,omitempty" bson:"resource,omitempty"`   // Resource in the implementation guide
	Page      *ImplementationGuideDefinitionPage       `json:"page,omitempty" bson:"page,omitempty"`           // Page/Section in the Guide
	Parameter []ImplementationGuideDefinitionParameter `json:"parameter,omitempty" bson:"parameter,omitempty"` // Defines how IG is built by tools
	Template  []ImplementationGuideDefinitionTemplate  `json:"template,omitempty" bson:"template,omitempty"`   // A template for building resources
}

func (*ImplementationGuideDefinition) Validate

func (r *ImplementationGuideDefinition) Validate() error

type ImplementationGuideDefinitionGrouping

type ImplementationGuideDefinitionGrouping struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Name        string  `json:"name" bson:"name"`                                   // Descriptive name for the package
	Description *string `json:"description,omitempty" bson:"description,omitempty"` // Human readable text describing the package
}

func (*ImplementationGuideDefinitionGrouping) Validate

type ImplementationGuideDefinitionPage

type ImplementationGuideDefinitionPage struct {
	Id             *string                             `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	SourceUrl      *string                             `json:"sourceUrl,omitempty" bson:"source_url,omitempty"`           // Source for page
	SourceString   *string                             `json:"sourceString,omitempty" bson:"source_string,omitempty"`     // Source for page
	SourceMarkdown *string                             `json:"sourceMarkdown,omitempty" bson:"source_markdown,omitempty"` // Source for page
	Name           string                              `json:"name" bson:"name"`                                          // Name of the page when published
	Title          string                              `json:"title" bson:"title"`                                        // Short title shown for navigational assistance
	Generation     string                              `json:"generation" bson:"generation"`                              // html | markdown | xml | generated
	Page           []ImplementationGuideDefinitionPage `json:"page,omitempty" bson:"page,omitempty"`                      // Nested Pages / Sections
}

func (*ImplementationGuideDefinitionPage) Validate

type ImplementationGuideDefinitionParameter

type ImplementationGuideDefinitionParameter struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Code  *Coding `json:"code" bson:"code"`                 // Code that identifies parameter
	Value string  `json:"value" bson:"value"`               // Value for named type
}

func (*ImplementationGuideDefinitionParameter) Validate

type ImplementationGuideDefinitionResource

type ImplementationGuideDefinitionResource struct {
	Id          *string    `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Reference   *Reference `json:"reference" bson:"reference"`                          // Location of the resource
	FhirVersion []string   `json:"fhirVersion,omitempty" bson:"fhir_version,omitempty"` // Versions this applies to (if different to IG)
	Name        *string    `json:"name,omitempty" bson:"name,omitempty"`                // Human readable name for the resource
	Description *string    `json:"description,omitempty" bson:"description,omitempty"`  // Reason why included in guide
	IsExample   *bool      `json:"isExample,omitempty" bson:"is_example,omitempty"`     // Is this an example
	Profile     []string   `json:"profile,omitempty" bson:"profile,omitempty"`          // Profile(s) this resource is valid against
	GroupingId  *string    `json:"groupingId,omitempty" bson:"grouping_id,omitempty"`   // Grouping this is part of
}

func (*ImplementationGuideDefinitionResource) Validate

type ImplementationGuideDefinitionTemplate

type ImplementationGuideDefinitionTemplate struct {
	Id     *string `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Code   string  `json:"code" bson:"code"`                       // Type of template specified
	Source string  `json:"source" bson:"source"`                   // The source location for the template
	Scope  *string `json:"scope,omitempty" bson:"scope,omitempty"` // The scope in which the template applies
}

func (*ImplementationGuideDefinitionTemplate) Validate

type ImplementationGuideDependsOn

type ImplementationGuideDependsOn struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`                // Unique id for inter-element referencing
	Uri       string  `json:"uri" bson:"uri"`                                  // Identity of the IG that this depends on
	PackageId *string `json:"packageId,omitempty" bson:"package_id,omitempty"` // NPM Package name for IG this depends on
	Version   *string `json:"version,omitempty" bson:"version,omitempty"`      // Version of the IG
	Reason    *string `json:"reason,omitempty" bson:"reason,omitempty"`        // Why dependency exists
}

func (*ImplementationGuideDependsOn) Validate

func (r *ImplementationGuideDependsOn) Validate() error

type ImplementationGuideGlobal

type ImplementationGuideGlobal struct {
	Id      *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type    string  `json:"type" bson:"type"`                 // Type this profile applies to
	Profile string  `json:"profile" bson:"profile"`           // Profile that all resources must conform to
}

func (*ImplementationGuideGlobal) Validate

func (r *ImplementationGuideGlobal) Validate() error

type ImplementationGuideManifest

type ImplementationGuideManifest struct {
	Id        *string                               `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Rendering *string                               `json:"rendering,omitempty" bson:"rendering,omitempty"` // Location of rendered implementation guide
	Resource  []ImplementationGuideManifestResource `json:"resource" bson:"resource"`                       // Resource in the implementation guide
	Page      []ImplementationGuideManifestPage     `json:"page,omitempty" bson:"page,omitempty"`           // HTML page within the parent IG
	Image     []string                              `json:"image,omitempty" bson:"image,omitempty"`         // Image within the IG
	Other     []string                              `json:"other,omitempty" bson:"other,omitempty"`         // Additional linkable file in IG
}

func (*ImplementationGuideManifest) Validate

func (r *ImplementationGuideManifest) Validate() error

type ImplementationGuideManifestPage

type ImplementationGuideManifestPage struct {
	Id     *string  `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Name   string   `json:"name" bson:"name"`                         // HTML page name
	Title  *string  `json:"title,omitempty" bson:"title,omitempty"`   // Title of the page, for references
	Anchor []string `json:"anchor,omitempty" bson:"anchor,omitempty"` // Anchor available on the page
}

func (*ImplementationGuideManifestPage) Validate

func (r *ImplementationGuideManifestPage) Validate() error

type ImplementationGuideManifestResource

type ImplementationGuideManifestResource struct {
	Id           *string    `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Reference    *Reference `json:"reference" bson:"reference"`                            // Location of the resource
	IsExample    *bool      `json:"isExample,omitempty" bson:"is_example,omitempty"`       // Is this an example
	Profile      []string   `json:"profile,omitempty" bson:"profile,omitempty"`            // Profile(s) this is an example of
	RelativePath *string    `json:"relativePath,omitempty" bson:"relative_path,omitempty"` // Relative path for page in IG
}

func (*ImplementationGuideManifestResource) Validate

type Ingredient

type Ingredient struct {
	ResourceType        string                   `json:"resourceType" bson:"resource_type"`                                   // Type of resource
	Id                  *string                  `json:"id,omitempty" bson:"id,omitempty"`                                    // Logical id of this artifact
	Meta                *Meta                    `json:"meta,omitempty" bson:"meta,omitempty"`                                // Metadata about the resource
	ImplicitRules       *string                  `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`             // A set of rules under which this content was created
	Language            *string                  `json:"language,omitempty" bson:"language,omitempty"`                        // Language of the resource content
	Text                *Narrative               `json:"text,omitempty" bson:"text,omitempty"`                                // Text summary of the resource, for human interpretation
	Contained           []json.RawMessage        `json:"contained,omitempty" bson:"contained,omitempty"`                      // Contained, inline Resources
	Identifier          *Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                    // An identifier or code by which the ingredient can be referenced
	Status              string                   `json:"status" bson:"status"`                                                // draft | active | retired | unknown
	For                 []Reference              `json:"for,omitempty" bson:"for,omitempty"`                                  // The product which this ingredient is a constituent part of
	Role                *CodeableConcept         `json:"role" bson:"role"`                                                    // Purpose of the ingredient within the product, e.g. active, inactive
	Function            []CodeableConcept        `json:"function,omitempty" bson:"function,omitempty"`                        // Precise action within the drug product, e.g. antioxidant, alkalizing agent
	Group               *CodeableConcept         `json:"group,omitempty" bson:"group,omitempty"`                              // A classification of the ingredient according to where in the physical item it tends to be used, such the outer shell of a tablet, inner body or ink
	AllergenicIndicator *bool                    `json:"allergenicIndicator,omitempty" bson:"allergenic_indicator,omitempty"` // If the ingredient is a known or suspected allergen
	Comment             *string                  `json:"comment,omitempty" bson:"comment,omitempty"`                          // A place for providing any notes that are relevant to the component, e.g. removed during process, adjusted for loss on drying
	Manufacturer        []IngredientManufacturer `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`                // An organization that manufactures this ingredient
	Substance           *IngredientSubstance     `json:"substance" bson:"substance"`                                          // The substance that comprises this ingredient
}

An ingredient of a manufactured item or pharmaceutical product.

func (*Ingredient) Validate

func (r *Ingredient) Validate() error

type IngredientManufacturer

type IngredientManufacturer struct {
	Id           *string    `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Role         *string    `json:"role,omitempty" bson:"role,omitempty"` // allowed | possible | actual
	Manufacturer *Reference `json:"manufacturer" bson:"manufacturer"`     // An organization that manufactures this ingredient
}

func (*IngredientManufacturer) Validate

func (r *IngredientManufacturer) Validate() error

type IngredientManufacturerRole added in v0.0.3

type IngredientManufacturerRole string

IngredientManufacturerRole represents codes from http://hl7.org/fhir/ValueSet/ingredient-manufacturer-role

const (
	IngredientManufacturerRoleAllowed  IngredientManufacturerRole = "allowed"
	IngredientManufacturerRolePossible IngredientManufacturerRole = "possible"
	IngredientManufacturerRoleActual   IngredientManufacturerRole = "actual"
)

type IngredientSubstance

type IngredientSubstance struct {
	Id       *string                       `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Code     *CodeableReference            `json:"code" bson:"code"`                             // A code or full resource that represents the ingredient substance
	Strength []IngredientSubstanceStrength `json:"strength,omitempty" bson:"strength,omitempty"` // The quantity of substance, per presentation, or per volume or mass, and type of quantity
}

func (*IngredientSubstance) Validate

func (r *IngredientSubstance) Validate() error

type IngredientSubstanceStrength

type IngredientSubstanceStrength struct {
	Id                           *string                                        `json:"id,omitempty" bson:"id,omitempty"`                                                       // Unique id for inter-element referencing
	PresentationRatio            *Ratio                                         `json:"presentationRatio,omitempty" bson:"presentation_ratio,omitempty"`                        // The quantity of substance in the unit of presentation
	PresentationRatioRange       *RatioRange                                    `json:"presentationRatioRange,omitempty" bson:"presentation_ratio_range,omitempty"`             // The quantity of substance in the unit of presentation
	PresentationCodeableConcept  *CodeableConcept                               `json:"presentationCodeableConcept,omitempty" bson:"presentation_codeable_concept,omitempty"`   // The quantity of substance in the unit of presentation
	PresentationQuantity         *Quantity                                      `json:"presentationQuantity,omitempty" bson:"presentation_quantity,omitempty"`                  // The quantity of substance in the unit of presentation
	TextPresentation             *string                                        `json:"textPresentation,omitempty" bson:"text_presentation,omitempty"`                          // Text of either the whole presentation strength or a part of it (rest being in Strength.presentation as a ratio)
	ConcentrationRatio           *Ratio                                         `json:"concentrationRatio,omitempty" bson:"concentration_ratio,omitempty"`                      // The strength per unitary volume (or mass)
	ConcentrationRatioRange      *RatioRange                                    `json:"concentrationRatioRange,omitempty" bson:"concentration_ratio_range,omitempty"`           // The strength per unitary volume (or mass)
	ConcentrationCodeableConcept *CodeableConcept                               `json:"concentrationCodeableConcept,omitempty" bson:"concentration_codeable_concept,omitempty"` // The strength per unitary volume (or mass)
	ConcentrationQuantity        *Quantity                                      `json:"concentrationQuantity,omitempty" bson:"concentration_quantity,omitempty"`                // The strength per unitary volume (or mass)
	TextConcentration            *string                                        `json:"textConcentration,omitempty" bson:"text_concentration,omitempty"`                        // Text of either the whole concentration strength or a part of it (rest being in Strength.concentration as a ratio)
	Basis                        *CodeableConcept                               `json:"basis,omitempty" bson:"basis,omitempty"`                                                 // A code that indicates if the strength is, for example, based on the ingredient substance as stated or on the substance base (when the ingredient is a salt)
	MeasurementPoint             *string                                        `json:"measurementPoint,omitempty" bson:"measurement_point,omitempty"`                          // When strength is measured at a particular point or distance
	Country                      []CodeableConcept                              `json:"country,omitempty" bson:"country,omitempty"`                                             // Where the strength range applies
	ReferenceStrength            []IngredientSubstanceStrengthReferenceStrength `json:"referenceStrength,omitempty" bson:"reference_strength,omitempty"`                        // Strength expressed in terms of a reference substance
}

func (*IngredientSubstanceStrength) Validate

func (r *IngredientSubstanceStrength) Validate() error

type IngredientSubstanceStrengthReferenceStrength

type IngredientSubstanceStrengthReferenceStrength struct {
	Id                 *string            `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Substance          *CodeableReference `json:"substance" bson:"substance"`                                    // Relevant reference substance
	StrengthRatio      *Ratio             `json:"strengthRatio" bson:"strength_ratio"`                           // Strength expressed in terms of a reference substance
	StrengthRatioRange *RatioRange        `json:"strengthRatioRange" bson:"strength_ratio_range"`                // Strength expressed in terms of a reference substance
	StrengthQuantity   *Quantity          `json:"strengthQuantity" bson:"strength_quantity"`                     // Strength expressed in terms of a reference substance
	MeasurementPoint   *string            `json:"measurementPoint,omitempty" bson:"measurement_point,omitempty"` // When strength is measured at a particular point or distance
	Country            []CodeableConcept  `json:"country,omitempty" bson:"country,omitempty"`                    // Where the strength range applies
}

func (*IngredientSubstanceStrengthReferenceStrength) Validate

type InsurancePlan

type InsurancePlan struct {
	ResourceType  string                      `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                     `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                     `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Business Identifier for Plan
	Type          *CodeableConcept            `json:"type,omitempty" bson:"type,omitempty"`                    // Classification of Plan
	Product       *Reference                  `json:"product,omitempty" bson:"product,omitempty"`              // The product that this plan is available under
	CoverageArea  []Reference                 `json:"coverageArea,omitempty" bson:"coverage_area,omitempty"`   // Where product-plan applies
	Network       []Reference                 `json:"network,omitempty" bson:"network,omitempty"`              // What networks provide coverage
	GeneralCost   []InsurancePlanGeneralCost  `json:"generalCost,omitempty" bson:"general_cost,omitempty"`     // Overall costs
	SpecificCost  []InsurancePlanSpecificCost `json:"specificCost,omitempty" bson:"specific_cost,omitempty"`   // Individual cost elements
}

Details of a Health Insurance plan provided by an organization under an InsuranceProduct.

func (*InsurancePlan) Validate

func (r *InsurancePlan) Validate() error

type InsurancePlanGeneralCost

type InsurancePlanGeneralCost struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`                // Unique id for inter-element referencing
	Type      *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`            // Classification of specific cost
	GroupSize *int             `json:"groupSize,omitempty" bson:"group_size,omitempty"` // Number of enrollees
	Cost      *Money           `json:"cost,omitempty" bson:"cost,omitempty"`            // Cost value
	Comment   *string          `json:"comment,omitempty" bson:"comment,omitempty"`      // Additional cost information
}

func (*InsurancePlanGeneralCost) Validate

func (r *InsurancePlanGeneralCost) Validate() error

type InsurancePlanSpecificCost

type InsurancePlanSpecificCost struct {
	Id       *string                            `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Category *CodeableConcept                   `json:"category" bson:"category"`                   // General category of benefit
	Benefit  []InsurancePlanSpecificCostBenefit `json:"benefit,omitempty" bson:"benefit,omitempty"` // Benefits list
}

func (*InsurancePlanSpecificCost) Validate

func (r *InsurancePlanSpecificCost) Validate() error

type InsurancePlanSpecificCostBenefit

type InsurancePlanSpecificCostBenefit struct {
	Id   *string                                `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Type *CodeableConcept                       `json:"type" bson:"type"`                     // Classification of benefit provided
	Cost []InsurancePlanSpecificCostBenefitCost `json:"cost,omitempty" bson:"cost,omitempty"` // List of the costs
}

func (*InsurancePlanSpecificCostBenefit) Validate

type InsurancePlanSpecificCostBenefitCost

type InsurancePlanSpecificCostBenefitCost struct {
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Type          *CodeableConcept  `json:"type" bson:"type"`                                       // Classification of specific cost
	Applicability *CodeableConcept  `json:"applicability,omitempty" bson:"applicability,omitempty"` // in-network | out-of-network | other
	Qualifier     []CodeableConcept `json:"qualifier,omitempty" bson:"qualifier,omitempty"`         // Additional information about the cost
	Value         *Quantity         `json:"value,omitempty" bson:"value,omitempty"`                 // The actual cost value
}

func (*InsurancePlanSpecificCostBenefitCost) Validate

type InsuranceProduct

type InsuranceProduct struct {
	ResourceType   string                     `json:"resourceType" bson:"resource_type"`                         // Type of resource
	Id             *string                    `json:"id,omitempty" bson:"id,omitempty"`                          // Logical id of this artifact
	Meta           *Meta                      `json:"meta,omitempty" bson:"meta,omitempty"`                      // Metadata about the resource
	ImplicitRules  *string                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`   // A set of rules under which this content was created
	Language       *string                    `json:"language,omitempty" bson:"language,omitempty"`              // Language of the resource content
	Text           *Narrative                 `json:"text,omitempty" bson:"text,omitempty"`                      // Text summary of the resource, for human interpretation
	Contained      []json.RawMessage          `json:"contained,omitempty" bson:"contained,omitempty"`            // Contained, inline Resources
	Identifier     []Identifier               `json:"identifier,omitempty" bson:"identifier,omitempty"`          // Business Identifier for Product
	Status         *string                    `json:"status,omitempty" bson:"status,omitempty"`                  // draft | active | retired | unknown
	Type           []CodeableConcept          `json:"type,omitempty" bson:"type,omitempty"`                      // Kind of product
	Name           *string                    `json:"name,omitempty" bson:"name,omitempty"`                      // Official name
	Alias          []string                   `json:"alias,omitempty" bson:"alias,omitempty"`                    // Alternate names
	Period         *Period                    `json:"period,omitempty" bson:"period,omitempty"`                  // When the product is available
	OwnedBy        *Reference                 `json:"ownedBy,omitempty" bson:"owned_by,omitempty"`               // Product issuer
	AdministeredBy *Reference                 `json:"administeredBy,omitempty" bson:"administered_by,omitempty"` // Product administrator
	CoverageArea   []Reference                `json:"coverageArea,omitempty" bson:"coverage_area,omitempty"`     // Where product applies
	Contact        []ExtendedContactDetail    `json:"contact,omitempty" bson:"contact,omitempty"`                // Official contact details relevant to the health insurance product
	Endpoint       []Reference                `json:"endpoint,omitempty" bson:"endpoint,omitempty"`              // Technical endpoint
	Network        []Reference                `json:"network,omitempty" bson:"network,omitempty"`                // What networks are Included
	Coverage       []InsuranceProductCoverage `json:"coverage,omitempty" bson:"coverage,omitempty"`              // Coverage details
	Related        []InsuranceProductRelated  `json:"related,omitempty" bson:"related,omitempty"`                // Associated insurance product
}

Details of a Health Insurance product provided by an organization.

func (*InsuranceProduct) Validate

func (r *InsuranceProduct) Validate() error

type InsuranceProductCoverage

type InsuranceProductCoverage struct {
	Id      *string                           `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Type    *CodeableConcept                  `json:"type" bson:"type"`                           // Classification of Coverage
	Network []Reference                       `json:"network,omitempty" bson:"network,omitempty"` // What networks provide coverage
	Benefit []InsuranceProductCoverageBenefit `json:"benefit" bson:"benefit"`                     // List of benefits
}

func (*InsuranceProductCoverage) Validate

func (r *InsuranceProductCoverage) Validate() error

type InsuranceProductCoverageBenefit

type InsuranceProductCoverageBenefit struct {
	Id          *string                                `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type        *CodeableConcept                       `json:"type" bson:"type"`                                   // Classification of benefit provided
	Requirement *string                                `json:"requirement,omitempty" bson:"requirement,omitempty"` // Referral requirements
	Limit       []InsuranceProductCoverageBenefitLimit `json:"limit,omitempty" bson:"limit,omitempty"`             // Limits on the provided benefits
}

func (*InsuranceProductCoverageBenefit) Validate

func (r *InsuranceProductCoverageBenefit) Validate() error

type InsuranceProductCoverageBenefitLimit

type InsuranceProductCoverageBenefitLimit struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Value *Quantity        `json:"value,omitempty" bson:"value,omitempty"` // Maximum value allowed
	Code  *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`   // Benefit limit details
}

func (*InsuranceProductCoverageBenefitLimit) Validate

type InsuranceProductRelated

type InsuranceProductRelated struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Product      *Reference       `json:"product,omitempty" bson:"product,omitempty"`           // Related Product reference
	Relationship *CodeableConcept `json:"relationship,omitempty" bson:"relationship,omitempty"` // Relationship of this product to the related product
	Period       *Period          `json:"period,omitempty" bson:"period,omitempty"`             // Period that this Relationship is valid
}

func (*InsuranceProductRelated) Validate

func (r *InsuranceProductRelated) Validate() error

type InteractionTrigger added in v0.0.3

type InteractionTrigger string

InteractionTrigger represents codes from http://hl7.org/fhir/ValueSet/interaction-trigger

const (
	InteractionTriggerRead                      InteractionTrigger = "read"
	InteractionTriggerVread                     InteractionTrigger = "vread"
	InteractionTriggerUpdate                    InteractionTrigger = "update"
	InteractionTriggerUpdateConditional         InteractionTrigger = "update-conditional"
	InteractionTriggerPatch                     InteractionTrigger = "patch"
	InteractionTriggerPatchConditional          InteractionTrigger = "patch-conditional"
	InteractionTriggerDelete                    InteractionTrigger = "delete"
	InteractionTriggerDeleteConditionalSingle   InteractionTrigger = "delete-conditional-single"
	InteractionTriggerDeleteConditionalMultiple InteractionTrigger = "delete-conditional-multiple"
	InteractionTriggerDeleteHistory             InteractionTrigger = "delete-history"
	InteractionTriggerDeleteHistoryVersion      InteractionTrigger = "delete-history-version"
	InteractionTriggerHistory                   InteractionTrigger = "history"
	InteractionTriggerHistoryInstance           InteractionTrigger = "history-instance"
	InteractionTriggerHistoryType               InteractionTrigger = "history-type"
	InteractionTriggerHistorySystem             InteractionTrigger = "history-system"
	InteractionTriggerCreate                    InteractionTrigger = "create"
	InteractionTriggerCreateConditional         InteractionTrigger = "create-conditional"
	InteractionTriggerSearch                    InteractionTrigger = "search"
	InteractionTriggerSearchType                InteractionTrigger = "search-type"
	InteractionTriggerSearchSystem              InteractionTrigger = "search-system"
	InteractionTriggerSearchCompartment         InteractionTrigger = "search-compartment"
	InteractionTriggerCapabilities              InteractionTrigger = "capabilities"
	InteractionTriggerTransaction               InteractionTrigger = "transaction"
	InteractionTriggerBatch                     InteractionTrigger = "batch"
	InteractionTriggerOperation                 InteractionTrigger = "operation"
)

type Invoice

type Invoice struct {
	ResourceType        string               `json:"resourceType" bson:"resource_type"`                                    // Type of resource
	Id                  *string              `json:"id,omitempty" bson:"id,omitempty"`                                     // Logical id of this artifact
	Meta                *Meta                `json:"meta,omitempty" bson:"meta,omitempty"`                                 // Metadata about the resource
	ImplicitRules       *string              `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`              // A set of rules under which this content was created
	Language            *string              `json:"language,omitempty" bson:"language,omitempty"`                         // Language of the resource content
	Text                *Narrative           `json:"text,omitempty" bson:"text,omitempty"`                                 // Text summary of the resource, for human interpretation
	Contained           []json.RawMessage    `json:"contained,omitempty" bson:"contained,omitempty"`                       // Contained, inline Resources
	Identifier          []Identifier         `json:"identifier,omitempty" bson:"identifier,omitempty"`                     // Business Identifier for item
	Status              string               `json:"status" bson:"status"`                                                 // draft | issued | balanced | cancelled | entered-in-error
	CancelledReason     *string              `json:"cancelledReason,omitempty" bson:"cancelled_reason,omitempty"`          // Reason for cancellation of this Invoice
	Type                *CodeableConcept     `json:"type,omitempty" bson:"type,omitempty"`                                 // Type of Invoice
	Subject             *Reference           `json:"subject,omitempty" bson:"subject,omitempty"`                           // Recipient(s) of goods and services
	Recipient           *Reference           `json:"recipient,omitempty" bson:"recipient,omitempty"`                       // Recipient of this invoice
	Creation            *string              `json:"creation,omitempty" bson:"creation,omitempty"`                         // When posted
	PeriodDate          *string              `json:"periodDate,omitempty" bson:"period_date,omitempty"`                    // Billing date or period
	PeriodPeriod        *Period              `json:"periodPeriod,omitempty" bson:"period_period,omitempty"`                // Billing date or period
	Participant         []InvoiceParticipant `json:"participant,omitempty" bson:"participant,omitempty"`                   // Participant in creation of this Invoice
	Issuer              *Reference           `json:"issuer,omitempty" bson:"issuer,omitempty"`                             // Issuing entity
	Account             *Reference           `json:"account,omitempty" bson:"account,omitempty"`                           // Account that is being balanced
	LineItem            []InvoiceLineItem    `json:"lineItem,omitempty" bson:"line_item,omitempty"`                        // Line items of this Invoice
	TotalPriceComponent []MonetaryComponent  `json:"totalPriceComponent,omitempty" bson:"total_price_component,omitempty"` // Components of Invoice total
	TotalNet            *Money               `json:"totalNet,omitempty" bson:"total_net,omitempty"`                        // Net total of this Invoice
	TotalGross          *Money               `json:"totalGross,omitempty" bson:"total_gross,omitempty"`                    // Gross total of this Invoice
	PaymentTerms        *string              `json:"paymentTerms,omitempty" bson:"payment_terms,omitempty"`                // Payment details
	Note                []Annotation         `json:"note,omitempty" bson:"note,omitempty"`                                 // Comments made about the invoice
}

Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose.

func (*Invoice) Validate

func (r *Invoice) Validate() error

type InvoiceLineItem

type InvoiceLineItem struct {
	Id                        *string             `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Sequence                  *int                `json:"sequence,omitempty" bson:"sequence,omitempty"`                  // Sequence number of line item
	ServicedDate              *string             `json:"servicedDate,omitempty" bson:"serviced_date,omitempty"`         // Service data or period
	ServicedPeriod            *Period             `json:"servicedPeriod,omitempty" bson:"serviced_period,omitempty"`     // Service data or period
	ChargeItemReference       *Reference          `json:"chargeItemReference" bson:"charge_item_reference"`              // Reference to ChargeItem containing details of this line item or an inline billing code
	ChargeItemCodeableConcept *CodeableConcept    `json:"chargeItemCodeableConcept" bson:"charge_item_codeable_concept"` // Reference to ChargeItem containing details of this line item or an inline billing code
	PriceComponent            []MonetaryComponent `json:"priceComponent,omitempty" bson:"price_component,omitempty"`     // Components of total line item price
}

func (*InvoiceLineItem) Validate

func (r *InvoiceLineItem) Validate() error

type InvoiceParticipant

type InvoiceParticipant struct {
	Id    *string          `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Role  *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"` // Type of involvement in creation of this Invoice
	Actor *Reference       `json:"actor" bson:"actor"`                   // Individual who was involved
}

func (*InvoiceParticipant) Validate

func (r *InvoiceParticipant) Validate() error

type InvoiceStatus added in v0.0.3

type InvoiceStatus string

InvoiceStatus represents codes from http://hl7.org/fhir/ValueSet/invoice-status

const (
	InvoiceStatusDraft          InvoiceStatus = "draft"
	InvoiceStatusIssued         InvoiceStatus = "issued"
	InvoiceStatusBalanced       InvoiceStatus = "balanced"
	InvoiceStatusCancelled      InvoiceStatus = "cancelled"
	InvoiceStatusEnteredInError InvoiceStatus = "entered-in-error"
)

type IssueSeverity added in v0.0.3

type IssueSeverity string

IssueSeverity represents codes from http://hl7.org/fhir/ValueSet/issue-severity

const (
	IssueSeverityFatal       IssueSeverity = "fatal"
	IssueSeverityError       IssueSeverity = "error"
	IssueSeverityWarning     IssueSeverity = "warning"
	IssueSeverityInformation IssueSeverity = "information"
	IssueSeveritySuccess     IssueSeverity = "success"
)

type IssueType added in v0.0.3

type IssueType string

IssueType represents codes from http://hl7.org/fhir/ValueSet/issue-type

const (
	IssueTypeInvalid         IssueType = "invalid"
	IssueTypeStructure       IssueType = "structure"
	IssueTypeRequired        IssueType = "required"
	IssueTypeValue           IssueType = "value"
	IssueTypeInvariant       IssueType = "invariant"
	IssueTypeSecurity        IssueType = "security"
	IssueTypeLogin           IssueType = "login"
	IssueTypeUnknown         IssueType = "unknown"
	IssueTypeExpired         IssueType = "expired"
	IssueTypeForbidden       IssueType = "forbidden"
	IssueTypeSuppressed      IssueType = "suppressed"
	IssueTypeProcessing      IssueType = "processing"
	IssueTypeNotSupported    IssueType = "not-supported"
	IssueTypeDuplicate       IssueType = "duplicate"
	IssueTypeMultipleMatches IssueType = "multiple-matches"
	IssueTypeNotFound        IssueType = "not-found"
	IssueTypeDeleted         IssueType = "deleted"
	IssueTypeTooLong         IssueType = "too-long"
	IssueTypeCodeInvalid     IssueType = "code-invalid"
	IssueTypeExtension       IssueType = "extension"
	IssueTypeTooCostly       IssueType = "too-costly"
	IssueTypeBusinessRule    IssueType = "business-rule"
	IssueTypeConflict        IssueType = "conflict"
	IssueTypeLimitedFilter   IssueType = "limited-filter"
	IssueTypeTransient       IssueType = "transient"
	IssueTypeLockError       IssueType = "lock-error"
	IssueTypeNoStore         IssueType = "no-store"
	IssueTypeException       IssueType = "exception"
	IssueTypeTimeout         IssueType = "timeout"
	IssueTypeIncomplete      IssueType = "incomplete"
	IssueTypeThrottled       IssueType = "throttled"
	IssueTypeInformational   IssueType = "informational"
	IssueTypeSuccess         IssueType = "success"
)

type Kind added in v0.0.3

type Kind string

Kind represents codes from http://hl7.org/fhir/ValueSet/coverage-kind

const (
	KindInsurance Kind = "insurance"
	KindSelfPay   Kind = "self-pay"
	KindOther     Kind = "other"
)

type Lastn

type Lastn struct {
}

The *lastn query* meets the common need for searching for the most recent or last n=number of observations for a subject. For example, retrieving the last 5 temperatures for a patient to view trends or fetching the most recent laboratory results or vitals signs. To ask a server to return the last n=number of observations, the *lastn* query uses the [normal search parameters](observation.html#search) defined for the Observation resource. However, rather than their normal use, they are interpreted as inputs - i.e.. instead of requiring that the resources literally contain the search parameters, they are passed to a server algorithm of some kind that uses them to determine the most appropriate matches. The request for a lastn query SHALL include: * A '$lastn' operation parameter * A subject using either the 'patient' or 'subject' search parameter * A 'category' parameter and/or a search parameter that contains a code element in its FHIRpath expression. ( e.g., 'code' or 'code-value-concept') The request for a lastn query MAY include: * Other Observation search parameters and modifiers The response from a lastn query is a set of observations: * Filtered by additional parameters * If not explicitly filtered by status then will include statuses of 'entered-in-error' * Ordered first by “equivalent” 'Observation.code' value * Codes SHALL be considered equivalent if the 'coding.value' *and* 'coding.system' are the same. * Text only codes SHALL be treated and grouped based on the text. * For codes with translations (multiple codings), the code translations are assumed to be equal and the grouping by code SHALL follow the transitive property of equality. For example: |Observation.code for observation a|Observation.code for observation b|Observation.code for observation c|number of groups [codes/text in each group]| |---|---|---|---| |a|b|c | 3 [a],[b],[c]| |a|b|a,c | 2 [a.c],[b]| |a|b|a,b | 1 [a,b]| |'textM'|'Text'|'t e x t'|3 ['text'],['Text'],['t e x t']| * The ordering of the “equivalent” code groups is not specified. * Ordered secondly (within each code group) from most recent effective time to the oldest effective time. For further guidance, refer here on [sorting](https://www.hl7.org/fhir/search.html#_sort). * Limited to the number of requested responses per group specified by the optional *max* query parameter * In case of a tie—when the effective times for more than one Observation in the same code group—both will be returned. Therefore, more Observations may be returned than is specified in *max*. For example, 4 Observations instead of 3 if the 3rd and 4th most recent observation had the same effective time. * If no maximum number is given then only the most recent Observation in each group is returned. Note that the individual Observation.code values used for grouping might not be explicit in the request, for example if a category of Observations is requested, or if a code is specified with the ':below' modifier. The set of returned observations should represent distinct real-world observations and not the same observation with changes in status or versions. If there are no matches, the *lastn* query SHALL return an empty search set with no error, but may include an operation outcome with further advice.

func (*Lastn) Validate

func (r *Lastn) Validate() error

type Library

type Library struct {
	ResourceType           string                `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string               `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string               `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string               `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this library, represented as a URI (globally unique)
	Identifier             []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the library
	Version                *string               `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the library
	VersionAlgorithmString *string               `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding               `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string               `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this library (computer friendly)
	Title                  *string               `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this library (human friendly)
	Subtitle               *string               `json:"subtitle,omitempty" bson:"subtitle,omitempty"`                               // Subordinate title of the library
	Status                 string                `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                 `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Type                   *CodeableConcept      `json:"type" bson:"type"`                                                           // logic-library | model-definition | asset-collection | module-definition | etc.
	SubjectCodeableConcept *CodeableConcept      `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"` // Type of individual the library content is focused on
	SubjectReference       *Reference            `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`              // Type of individual the library content is focused on
	Date                   *string               `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string               `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail       `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string               `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the library
	UseContext             []UsageContext        `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept     `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the library (if applicable)
	Purpose                *string               `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this library is defined
	Usage                  *string               `json:"usage,omitempty" bson:"usage,omitempty"`                                     // Describes the clinical usage of the library
	Copyright              *string               `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string               `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string               `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the library was approved by publisher
	LastReviewDate         *string               `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the library was last reviewed by the publisher
	EffectivePeriod        *Period               `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the library is expected to be used
	Topic                  []CodeableConcept     `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail       `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the content
	Editor                 []ContactDetail       `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the content
	Reviewer               []ContactDetail       `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the content
	Endorser               []ContactDetail       `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the content
	RelatedArtifact        []RelatedArtifact     `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
	Parameter              []ParameterDefinition `json:"parameter,omitempty" bson:"parameter,omitempty"`                             // Parameters defined by the library
	DataRequirement        []DataRequirement     `json:"dataRequirement,omitempty" bson:"data_requirement,omitempty"`                // What data is referenced by this library
	Content                []Attachment          `json:"content,omitempty" bson:"content,omitempty"`                                 // Contents of the library, either embedded or referenced
}

The Library resource is a general-purpose container for knowledge artifact definitions. It can be used to describe and expose existing knowledge artifacts such as logic libraries and information model descriptions, as well as to describe a collection of knowledge artifacts.

func (*Library) Validate

func (r *Library) Validate() error

type LinkRelationTypes added in v0.0.3

type LinkRelationTypes string

LinkRelationTypes represents codes from http://hl7.org/fhir/ValueSet/iana-link-relations

const (
	LinkRelationTypesAbout                  LinkRelationTypes = "about"
	LinkRelationTypesAcl                    LinkRelationTypes = "acl"
	LinkRelationTypesAlternate              LinkRelationTypes = "alternate"
	LinkRelationTypesAmphtml                LinkRelationTypes = "amphtml"
	LinkRelationTypesAppendix               LinkRelationTypes = "appendix"
	LinkRelationTypesAppleTouchIcon         LinkRelationTypes = "apple-touch-icon"
	LinkRelationTypesAppleTouchStartupImage LinkRelationTypes = "apple-touch-startup-image"
	LinkRelationTypesArchives               LinkRelationTypes = "archives"
	LinkRelationTypesAuthor                 LinkRelationTypes = "author"
	LinkRelationTypesBlockedBy              LinkRelationTypes = "blocked-by"
	LinkRelationTypesBookmark               LinkRelationTypes = "bookmark"
	LinkRelationTypesCanonical              LinkRelationTypes = "canonical"
	LinkRelationTypesChapter                LinkRelationTypes = "chapter"
	LinkRelationTypesCiteAs                 LinkRelationTypes = "cite-as"
	LinkRelationTypesCollection             LinkRelationTypes = "collection"
	LinkRelationTypesContents               LinkRelationTypes = "contents"
	LinkRelationTypesConvertedFrom          LinkRelationTypes = "convertedFrom"
	LinkRelationTypesCopyright              LinkRelationTypes = "copyright"
	LinkRelationTypesCreateForm             LinkRelationTypes = "create-form"
	LinkRelationTypesCurrent                LinkRelationTypes = "current"
	LinkRelationTypesDescribedby            LinkRelationTypes = "describedby"
	LinkRelationTypesDescribes              LinkRelationTypes = "describes"
	LinkRelationTypesDisclosure             LinkRelationTypes = "disclosure"
	LinkRelationTypesDnsPrefetch            LinkRelationTypes = "dns-prefetch"
	LinkRelationTypesDuplicate              LinkRelationTypes = "duplicate"
	LinkRelationTypesEdit                   LinkRelationTypes = "edit"
	LinkRelationTypesEditForm               LinkRelationTypes = "edit-form"
	LinkRelationTypesEditMedia              LinkRelationTypes = "edit-media"
	LinkRelationTypesEnclosure              LinkRelationTypes = "enclosure"
	LinkRelationTypesExternal               LinkRelationTypes = "external"
	LinkRelationTypesFirst                  LinkRelationTypes = "first"
	LinkRelationTypesGlossary               LinkRelationTypes = "glossary"
	LinkRelationTypesHelp                   LinkRelationTypes = "help"
	LinkRelationTypesHosts                  LinkRelationTypes = "hosts"
	LinkRelationTypesHub                    LinkRelationTypes = "hub"
	LinkRelationTypesIcon                   LinkRelationTypes = "icon"
	LinkRelationTypesIndex                  LinkRelationTypes = "index"
	LinkRelationTypesIntervalAfter          LinkRelationTypes = "intervalAfter"
	LinkRelationTypesIntervalBefore         LinkRelationTypes = "intervalBefore"
	LinkRelationTypesIntervalContains       LinkRelationTypes = "intervalContains"
	LinkRelationTypesIntervalDisjoint       LinkRelationTypes = "intervalDisjoint"
	LinkRelationTypesIntervalDuring         LinkRelationTypes = "intervalDuring"
	LinkRelationTypesIntervalEquals         LinkRelationTypes = "intervalEquals"
	LinkRelationTypesIntervalFinishedBy     LinkRelationTypes = "intervalFinishedBy"
	LinkRelationTypesIntervalFinishes       LinkRelationTypes = "intervalFinishes"
	LinkRelationTypesIntervalIn             LinkRelationTypes = "intervalIn"
	LinkRelationTypesIntervalMeets          LinkRelationTypes = "intervalMeets"
	LinkRelationTypesIntervalMetBy          LinkRelationTypes = "intervalMetBy"
	LinkRelationTypesIntervalOverlappedBy   LinkRelationTypes = "intervalOverlappedBy"
	LinkRelationTypesIntervalOverlaps       LinkRelationTypes = "intervalOverlaps"
	LinkRelationTypesIntervalStartedBy      LinkRelationTypes = "intervalStartedBy"
	LinkRelationTypesIntervalStarts         LinkRelationTypes = "intervalStarts"
	LinkRelationTypesItem                   LinkRelationTypes = "item"
	LinkRelationTypesLast                   LinkRelationTypes = "last"
	LinkRelationTypesLatestVersion          LinkRelationTypes = "latest-version"
	LinkRelationTypesLicense                LinkRelationTypes = "license"
	LinkRelationTypesLinkset                LinkRelationTypes = "linkset"
	LinkRelationTypesLrdd                   LinkRelationTypes = "lrdd"
	LinkRelationTypesManifest               LinkRelationTypes = "manifest"
	LinkRelationTypesMaskIcon               LinkRelationTypes = "mask-icon"
	LinkRelationTypesMediaFeed              LinkRelationTypes = "media-feed"
	LinkRelationTypesMemento                LinkRelationTypes = "memento"
	LinkRelationTypesMicropub               LinkRelationTypes = "micropub"
	LinkRelationTypesModulepreload          LinkRelationTypes = "modulepreload"
	LinkRelationTypesMonitor                LinkRelationTypes = "monitor"
	LinkRelationTypesMonitorGroup           LinkRelationTypes = "monitor-group"
	LinkRelationTypesNext                   LinkRelationTypes = "next"
	LinkRelationTypesNextArchive            LinkRelationTypes = "next-archive"
	LinkRelationTypesNofollow               LinkRelationTypes = "nofollow"
	LinkRelationTypesNoopener               LinkRelationTypes = "noopener"
	LinkRelationTypesNoreferrer             LinkRelationTypes = "noreferrer"
	LinkRelationTypesOpener                 LinkRelationTypes = "opener"
	LinkRelationTypesOpenid2LocalId         LinkRelationTypes = "openid2.local_id"
	LinkRelationTypesOpenid2Provider        LinkRelationTypes = "openid2.provider"
	LinkRelationTypesOriginal               LinkRelationTypes = "original"
	LinkRelationTypesP3Pv1                  LinkRelationTypes = "P3Pv1"
	LinkRelationTypesPayment                LinkRelationTypes = "payment"
	LinkRelationTypesPingback               LinkRelationTypes = "pingback"
	LinkRelationTypesPreconnect             LinkRelationTypes = "preconnect"
	LinkRelationTypesPredecessorVersion     LinkRelationTypes = "predecessor-version"
	LinkRelationTypesPrefetch               LinkRelationTypes = "prefetch"
	LinkRelationTypesPreload                LinkRelationTypes = "preload"
	LinkRelationTypesPrerender              LinkRelationTypes = "prerender"
	LinkRelationTypesPrev                   LinkRelationTypes = "prev"
	LinkRelationTypesPreview                LinkRelationTypes = "preview"
	LinkRelationTypesPrevious               LinkRelationTypes = "previous"
	LinkRelationTypesPrevArchive            LinkRelationTypes = "prev-archive"
	LinkRelationTypesPrivacyPolicy          LinkRelationTypes = "privacy-policy"
	LinkRelationTypesProfile                LinkRelationTypes = "profile"
	LinkRelationTypesPublication            LinkRelationTypes = "publication"
	LinkRelationTypesRelated                LinkRelationTypes = "related"
	LinkRelationTypesRestconf               LinkRelationTypes = "restconf"
	LinkRelationTypesReplies                LinkRelationTypes = "replies"
	LinkRelationTypesRuleinput              LinkRelationTypes = "ruleinput"
	LinkRelationTypesSearch                 LinkRelationTypes = "search"
	LinkRelationTypesSection                LinkRelationTypes = "section"
	LinkRelationTypesSelf                   LinkRelationTypes = "self"
	LinkRelationTypesService                LinkRelationTypes = "service"
	LinkRelationTypesServiceDesc            LinkRelationTypes = "service-desc"
	LinkRelationTypesServiceDoc             LinkRelationTypes = "service-doc"
	LinkRelationTypesServiceMeta            LinkRelationTypes = "service-meta"
	LinkRelationTypesSponsored              LinkRelationTypes = "sponsored"
	LinkRelationTypesStart                  LinkRelationTypes = "start"
	LinkRelationTypesStatus                 LinkRelationTypes = "status"
	LinkRelationTypesStylesheet             LinkRelationTypes = "stylesheet"
	LinkRelationTypesSubsection             LinkRelationTypes = "subsection"
	LinkRelationTypesSuccessorVersion       LinkRelationTypes = "successor-version"
	LinkRelationTypesSunset                 LinkRelationTypes = "sunset"
	LinkRelationTypesTag                    LinkRelationTypes = "tag"
	LinkRelationTypesTermsOfService         LinkRelationTypes = "terms-of-service"
	LinkRelationTypesTimegate               LinkRelationTypes = "timegate"
	LinkRelationTypesTimemap                LinkRelationTypes = "timemap"
	LinkRelationTypesType                   LinkRelationTypes = "type"
	LinkRelationTypesUgc                    LinkRelationTypes = "ugc"
	LinkRelationTypesUp                     LinkRelationTypes = "up"
	LinkRelationTypesVersionHistory         LinkRelationTypes = "version-history"
	LinkRelationTypesVia                    LinkRelationTypes = "via"
	LinkRelationTypesWebmention             LinkRelationTypes = "webmention"
	LinkRelationTypesWorkingCopy            LinkRelationTypes = "working-copy"
	LinkRelationTypesWorkingCopyOf          LinkRelationTypes = "working-copy-of"
)

type LinkType added in v0.0.3

type LinkType string

LinkType represents codes from http://hl7.org/fhir/ValueSet/link-type

const (
	LinkTypeReplacedBy LinkType = "replaced-by"
	LinkTypeReplaces   LinkType = "replaces"
	LinkTypeRefer      LinkType = "refer"
	LinkTypeSeealso    LinkType = "seealso"
)

type List

type List struct {
	ResourceType  string            `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string           `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Business identifier
	Status        string            `json:"status" bson:"status"`                                    // current | retired | entered-in-error
	Mode          string            `json:"mode" bson:"mode"`                                        // working | snapshot | changes
	Title         *string           `json:"title,omitempty" bson:"title,omitempty"`                  // Descriptive name for the list
	Code          *CodeableConcept  `json:"code,omitempty" bson:"code,omitempty"`                    // What the purpose of this list is
	Subject       []Reference       `json:"subject,omitempty" bson:"subject,omitempty"`              // If all resources have the same subject(s)
	Encounter     *Reference        `json:"encounter,omitempty" bson:"encounter,omitempty"`          // Context in which list created
	Date          *string           `json:"date,omitempty" bson:"date,omitempty"`                    // When the list was prepared
	Source        *Reference        `json:"source,omitempty" bson:"source,omitempty"`                // Who and/or what defined the list contents (aka Author)
	OrderedBy     *CodeableConcept  `json:"orderedBy,omitempty" bson:"ordered_by,omitempty"`         // What order the list has
	Note          []Annotation      `json:"note,omitempty" bson:"note,omitempty"`                    // Comments about the list
	Entry         []ListEntry       `json:"entry,omitempty" bson:"entry,omitempty"`                  // Entries in the list
	EmptyReason   *CodeableConcept  `json:"emptyReason,omitempty" bson:"empty_reason,omitempty"`     // Why list is empty
}

A List is a curated collection of resources, for things such as problem lists, allergy lists, facility list, organization list, etc.

func (*List) Validate

func (r *List) Validate() error

type ListEntry

type ListEntry struct {
	Id      *string          `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Flag    *CodeableConcept `json:"flag,omitempty" bson:"flag,omitempty"`       // Status/Workflow information about this item
	Deleted *bool            `json:"deleted,omitempty" bson:"deleted,omitempty"` // If this item is actually marked as deleted
	Date    *string          `json:"date,omitempty" bson:"date,omitempty"`       // When item added to list
	Item    *Reference       `json:"item" bson:"item"`                           // Actual entry
}

func (*ListEntry) Validate

func (r *ListEntry) Validate() error

type ListMode added in v0.0.3

type ListMode string

ListMode represents codes from http://hl7.org/fhir/ValueSet/list-mode

const (
	ListModeWorking  ListMode = "working"
	ListModeSnapshot ListMode = "snapshot"
	ListModeChanges  ListMode = "changes"
)

type ListStatus added in v0.0.3

type ListStatus string

ListStatus represents codes from http://hl7.org/fhir/ValueSet/list-status

const (
	ListStatusCurrent        ListStatus = "current"
	ListStatusRetired        ListStatus = "retired"
	ListStatusEnteredInError ListStatus = "entered-in-error"
)

type Location

type Location struct {
	ResourceType         string                  `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                   *string                 `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                 *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules        *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language             *string                 `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                 *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier           []Identifier            `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // Unique code or number identifying the location to its users
	Status               *string                 `json:"status,omitempty" bson:"status,omitempty"`                              // active | suspended | inactive
	OperationalStatus    *Coding                 `json:"operationalStatus,omitempty" bson:"operational_status,omitempty"`       // The operational status of the location (typically only for a bed/room)
	Code                 []CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                                  // Codes that identify this location
	Name                 *string                 `json:"name,omitempty" bson:"name,omitempty"`                                  // Name of the location as used by humans
	Alias                []string                `json:"alias,omitempty" bson:"alias,omitempty"`                                // A list of alternate names that the location is known as, or was known as, in the past
	Description          *string                 `json:"description,omitempty" bson:"description,omitempty"`                    // Additional details about the location that could be displayed as further information to identify the location beyond its name
	Mode                 *string                 `json:"mode,omitempty" bson:"mode,omitempty"`                                  // instance | kind
	Type                 []CodeableConcept       `json:"type,omitempty" bson:"type,omitempty"`                                  // Types of services available at this location
	Contact              []ExtendedContactDetail `json:"contact,omitempty" bson:"contact,omitempty"`                            // Official contact details for the location
	Address              *Address                `json:"address,omitempty" bson:"address,omitempty"`                            // Physical location
	Form                 *CodeableConcept        `json:"form,omitempty" bson:"form,omitempty"`                                  // Physical form of the location
	Position             *LocationPosition       `json:"position,omitempty" bson:"position,omitempty"`                          // The absolute geographic location
	ManagingOrganization *Reference              `json:"managingOrganization,omitempty" bson:"managing_organization,omitempty"` // Organization responsible for provisioning and upkeep
	PartOf               *Reference              `json:"partOf,omitempty" bson:"part_of,omitempty"`                             // Another Location this one is physically a part of
	Characteristic       []CodeableConcept       `json:"characteristic,omitempty" bson:"characteristic,omitempty"`              // Collection of characteristics (attributes)
	HoursOfOperation     *Availability           `json:"hoursOfOperation,omitempty" bson:"hours_of_operation,omitempty"`        // What days/times during a week is this location usually open (including exceptions)
	VirtualService       []VirtualServiceDetail  `json:"virtualService,omitempty" bson:"virtual_service,omitempty"`             // Connection details of a virtual service (e.g. conference call)
	Endpoint             []Reference             `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                          // Technical endpoints providing access to services operated for the location
}

Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.

func (*Location) Validate

func (r *Location) Validate() error

type LocationMode added in v0.0.3

type LocationMode string

LocationMode represents codes from http://hl7.org/fhir/ValueSet/location-mode

const (
	LocationModeInstance LocationMode = "instance"
	LocationModeKind     LocationMode = "kind"
)

type LocationPosition

type LocationPosition struct {
	Id        *string  `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Longitude float64  `json:"longitude" bson:"longitude"`                   // Longitude with WGS84 datum
	Latitude  float64  `json:"latitude" bson:"latitude"`                     // Latitude with WGS84 datum
	Altitude  *float64 `json:"altitude,omitempty" bson:"altitude,omitempty"` // Altitude with WGS84 datum
}

func (*LocationPosition) Validate

func (r *LocationPosition) Validate() error

type LocationStatus added in v0.0.3

type LocationStatus string

LocationStatus represents codes from http://hl7.org/fhir/ValueSet/location-status

const (
	LocationStatusActive    LocationStatus = "active"
	LocationStatusSuspended LocationStatus = "suspended"
	LocationStatusInactive  LocationStatus = "inactive"
)

type Lookup

type Lookup struct {
}

Given a code/system, or a Coding, get additional details about the concept, including definition, status, designations, and properties. One of the products of this operation is a full decomposition of a code from a structured terminology. When invoking this operation, a client SHALL provide both a system and a code, either using the system+code parameters, or in the coding parameter. Other parameters are optional

func (*Lookup) Validate

func (r *Lookup) Validate() error

type ManufacturedItemDefinition

type ManufacturedItemDefinition struct {
	ResourceType         string                                `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                   *string                               `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta                 *Meta                                 `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules        *string                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language             *string                               `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text                 *Narrative                            `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage                     `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier           []Identifier                          `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Unique identifier
	Status               string                                `json:"status" bson:"status"`                                               // draft | active | retired | unknown
	Name                 *string                               `json:"name,omitempty" bson:"name,omitempty"`                               // A descriptive name applied to this item
	ManufacturedDoseForm *CodeableConcept                      `json:"manufacturedDoseForm" bson:"manufactured_dose_form"`                 // Dose form as manufactured (before any necessary transformation)
	UnitOfPresentation   *CodeableConcept                      `json:"unitOfPresentation,omitempty" bson:"unit_of_presentation,omitempty"` // The “real-world” units in which the quantity of the item is described
	Manufacturer         []Reference                           `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`               // Manufacturer of the item, one of several possible
	MarketingStatus      []MarketingStatus                     `json:"marketingStatus,omitempty" bson:"marketing_status,omitempty"`        // Allows specifying that an item is on the market for sale, or that it is not available, and the dates and locations associated
	Ingredient           []CodeableConcept                     `json:"ingredient,omitempty" bson:"ingredient,omitempty"`                   // The ingredients of this manufactured item. Only needed if these are not specified by incoming references from the Ingredient resource
	Property             []ManufacturedItemDefinitionProperty  `json:"property,omitempty" bson:"property,omitempty"`                       // General characteristics of this item
	Component            []ManufacturedItemDefinitionComponent `json:"component,omitempty" bson:"component,omitempty"`                     // Physical parts of the manufactured item, that it is intrinsically made from. This is distinct from the ingredients that are part of its chemical makeup
}

The definition and characteristics of a medicinal manufactured item, such as a tablet or capsule, as contained in a packaged medicinal product.

func (*ManufacturedItemDefinition) Validate

func (r *ManufacturedItemDefinition) Validate() error

type ManufacturedItemDefinitionComponent

type ManufacturedItemDefinitionComponent struct {
	Id          *string                                          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type        *CodeableConcept                                 `json:"type" bson:"type"`                                   // Defining type of the component e.g. shell, layer, ink
	Function    []CodeableConcept                                `json:"function,omitempty" bson:"function,omitempty"`       // The function of this component within the item e.g. delivers active ingredient, masks taste
	Amount      []Quantity                                       `json:"amount,omitempty" bson:"amount,omitempty"`           // The measurable amount of total quantity of all substances in the component, expressible in different ways (e.g. by mass or volume)
	Constituent []ManufacturedItemDefinitionComponentConstituent `json:"constituent,omitempty" bson:"constituent,omitempty"` // A reference to a constituent of the manufactured item as a whole, linked here so that its component location within the item can be indicated. This not where the item's ingredient are primarily stated (for which see Ingredient.for or ManufacturedItemDefinition.ingredient)
	Property    []ManufacturedItemDefinitionProperty             `json:"property,omitempty" bson:"property,omitempty"`       // General characteristics of this component
	Component   []ManufacturedItemDefinitionComponent            `json:"component,omitempty" bson:"component,omitempty"`     // A component that this component contains or is made from
}

func (*ManufacturedItemDefinitionComponent) Validate

type ManufacturedItemDefinitionComponentConstituent

type ManufacturedItemDefinitionComponentConstituent struct {
	Id            *string             `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Amount        []Quantity          `json:"amount,omitempty" bson:"amount,omitempty"`                // The measurable amount of the substance, expressible in different ways (e.g. by mass or volume)
	Location      []CodeableConcept   `json:"location,omitempty" bson:"location,omitempty"`            // The physical location of the constituent/ingredient within the component
	Function      []CodeableConcept   `json:"function,omitempty" bson:"function,omitempty"`            // The function of this constituent within the component e.g. binder
	HasIngredient []CodeableReference `json:"hasIngredient,omitempty" bson:"has_ingredient,omitempty"` // The ingredient that is the constituent of the given component
}

func (*ManufacturedItemDefinitionComponentConstituent) Validate

type ManufacturedItemDefinitionProperty

type ManufacturedItemDefinitionProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                                       // A code expressing the type of characteristic
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // A value for the characteristic
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // A value for the characteristic
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // A value for the characteristic
	ValueDate            *string          `json:"valueDate,omitempty" bson:"value_date,omitempty"`                        // A value for the characteristic
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // A value for the characteristic
	ValueMarkdown        *string          `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                // A value for the characteristic
	ValueAttachment      *Attachment      `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`            // A value for the characteristic
	ValueReference       *Reference       `json:"valueReference,omitempty" bson:"value_reference,omitempty"`              // A value for the characteristic
}

func (*ManufacturedItemDefinitionProperty) Validate

type MarketingStatus

type MarketingStatus struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Country      *CodeableConcept `json:"country,omitempty" bson:"country,omitempty"`           // The country in which the marketing status applies
	Jurisdiction *CodeableConcept `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"` // The jurisdiction in which the marketing status applies
	Status       *CodeableConcept `json:"status" bson:"status"`                                 // This attribute provides information on the status of the marketing of the item
	DateRange    *Period          `json:"dateRange,omitempty" bson:"date_range,omitempty"`      // The dates that the item is made available on the market by the owner (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction. Note that “on the market” refers to the release of the item into the distribution chain
	RestoreDate  *string          `json:"restoreDate,omitempty" bson:"restore_date,omitempty"`  // The date when the item is due to be placed back on the market by the owner, manufacturer or distributor, after a suspension
}

MarketingStatus Type: The marketing status describes the date when an item is actually put on the market or the date as of which it is no longer available.

func (*MarketingStatus) Validate

func (r *MarketingStatus) Validate() error

type Match

type Match struct {
}

A Master Patient Index ([MPI](http://en.wikipedia.org/wiki/Enterprise_master_patient_index) ) is a service used to manage patient identification in a context where multiple patient databases exist. Healthcare applications and middleware use the MPI to match patients between the databases, and to store new patient details as they are encountered. MPIs are highly specialized applications, often tailored extensively to the institution's particular mix of patients. MPIs can also be run on a regional and national basis. To ask an MPI to match a patient, clients use the "$match" operation, which accepts a patient resource which may be only partially complete. The data provided is interpreted as an MPI input and processed by an algorithm of some kind that uses the data to determine the most appropriate matches in the patient set. Note that different MPI matching algorithms have different required inputs. Consult with the vendor implementing the $match operation as to its specific behaviors. The generic $match operation does not specify any particular algorithm, nor a minimum set of information that must be provided when asking for an MPI match operation to be performed, but many implementations will have a set of minimum information, which may be declared in their definition of the $match operation by specifying a profile on the resource parameter, indicating which properties are required in the search. The patient resource submitted to the operation does not have to be complete, nor does it need to pass validation (i.e. mandatory fields don't need to be populated), but it does have to be a valid instance, as it is used as the reference data to match against. Implementers of the $match algorithm should consider the relevance of returning inactive patients, particularly ones associated with patient merges. E.g. If an inactive patient is "matched" and its merged target resource will be included, then the inactive one may be excluded, however if a patient was just marked as inactive for other reasons, it could be included in the results. (any specific MPI algorithm may or might not behave as in these examples)

func (*Match) Validate

func (r *Match) Validate() error

type Measure

type Measure struct {
	ResourceType                    string                    `json:"resourceType" bson:"resource_type"`                                                            // Type of resource
	Id                              *string                   `json:"id,omitempty" bson:"id,omitempty"`                                                             // Logical id of this artifact
	Meta                            *Meta                     `json:"meta,omitempty" bson:"meta,omitempty"`                                                         // Metadata about the resource
	ImplicitRules                   *string                   `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                                      // A set of rules under which this content was created
	Language                        *string                   `json:"language,omitempty" bson:"language,omitempty"`                                                 // Language of the resource content
	Text                            *Narrative                `json:"text,omitempty" bson:"text,omitempty"`                                                         // Text summary of the resource, for human interpretation
	Contained                       []json.RawMessage         `json:"contained,omitempty" bson:"contained,omitempty"`                                               // Contained, inline Resources
	Url                             *string                   `json:"url,omitempty" bson:"url,omitempty"`                                                           // Canonical identifier for this measure, represented as a URI (globally unique)
	Identifier                      []Identifier              `json:"identifier,omitempty" bson:"identifier,omitempty"`                                             // Additional identifier for the measure
	Version                         *string                   `json:"version,omitempty" bson:"version,omitempty"`                                                   // Business version of the measure
	VersionAlgorithmString          *string                   `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"`                   // How to compare versions
	VersionAlgorithmCoding          *Coding                   `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"`                   // How to compare versions
	Name                            *string                   `json:"name,omitempty" bson:"name,omitempty"`                                                         // Name for this measure (computer friendly)
	Title                           *string                   `json:"title,omitempty" bson:"title,omitempty"`                                                       // Name for this measure (human friendly)
	Subtitle                        *string                   `json:"subtitle,omitempty" bson:"subtitle,omitempty"`                                                 // Subordinate title of the measure
	Status                          string                    `json:"status" bson:"status"`                                                                         // draft | active | retired | unknown
	Experimental                    *bool                     `json:"experimental,omitempty" bson:"experimental,omitempty"`                                         // For testing only - never for real usage
	SubjectCodeableConcept          *CodeableConcept          `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"`                   // E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
	SubjectReference                *Reference                `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`                                // E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
	Date                            *string                   `json:"date,omitempty" bson:"date,omitempty"`                                                         // Date last changed
	Publisher                       *string                   `json:"publisher,omitempty" bson:"publisher,omitempty"`                                               // Name of the publisher/steward (organization or individual)
	Contact                         []ContactDetail           `json:"contact,omitempty" bson:"contact,omitempty"`                                                   // Contact details for the publisher
	Description                     *string                   `json:"description,omitempty" bson:"description,omitempty"`                                           // Natural language description of the measure
	UseContext                      []UsageContext            `json:"useContext,omitempty" bson:"use_context,omitempty"`                                            // The context that the content is intended to support
	Jurisdiction                    []CodeableConcept         `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                                         // Jurisdiction of the authority that maintains the measure (if applicable)
	Purpose                         *string                   `json:"purpose,omitempty" bson:"purpose,omitempty"`                                                   // Why this measure is defined
	Usage                           *string                   `json:"usage,omitempty" bson:"usage,omitempty"`                                                       // Describes the clinical usage of the measure
	Copyright                       *string                   `json:"copyright,omitempty" bson:"copyright,omitempty"`                                               // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel                  *string                   `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                                    // Copyright holder and year(s)
	ApprovalDate                    *string                   `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                                        // When the measure was approved by publisher
	LastReviewDate                  *string                   `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                                   // When the measure was last reviewed by the publisher
	EffectivePeriod                 *Period                   `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                                  // When the measure is expected to be used
	ReportingFrequency              *Quantity                 `json:"reportingFrequency,omitempty" bson:"reporting_frequency,omitempty"`                            // The frequency in which this measure should be reported (e.g. 1 '/a' - yearly, 4 '/a' - quarterly)
	Topic                           []CodeableConcept         `json:"topic,omitempty" bson:"topic,omitempty"`                                                       // The category of the measure, such as Education, Treatment, Assessment, etc
	Author                          []ContactDetail           `json:"author,omitempty" bson:"author,omitempty"`                                                     // Who authored the content
	Editor                          []ContactDetail           `json:"editor,omitempty" bson:"editor,omitempty"`                                                     // Who edited the content
	Reviewer                        []ContactDetail           `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                                                 // Who reviewed the content
	Endorser                        []ContactDetail           `json:"endorser,omitempty" bson:"endorser,omitempty"`                                                 // Who endorsed the content
	RelatedArtifact                 []RelatedArtifact         `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                                  // Additional documentation, citations, etc
	Library                         []string                  `json:"library,omitempty" bson:"library,omitempty"`                                                   // Logic used by the measure
	Disclaimer                      *string                   `json:"disclaimer,omitempty" bson:"disclaimer,omitempty"`                                             // Disclaimer for use of the measure or its referenced content
	RiskAdjustment                  *string                   `json:"riskAdjustment,omitempty" bson:"risk_adjustment,omitempty"`                                    // How risk adjustment is applied for this measure
	RateAggregation                 *string                   `json:"rateAggregation,omitempty" bson:"rate_aggregation,omitempty"`                                  // How is rate aggregation performed for this measure
	Rationale                       *string                   `json:"rationale,omitempty" bson:"rationale,omitempty"`                                               // Justification for the measure in terms of impact, gap in care, and evidence
	ClinicalRecommendationStatement *string                   `json:"clinicalRecommendationStatement,omitempty" bson:"clinical_recommendation_statement,omitempty"` // Summary of clinical guidelines
	Term                            []MeasureTerm             `json:"term,omitempty" bson:"term,omitempty"`                                                         // Defined terms used in the measure documentation
	Guidance                        *string                   `json:"guidance,omitempty" bson:"guidance,omitempty"`                                                 // Additional guidance for implementers (deprecated)
	Group                           []MeasureGroup            `json:"group,omitempty" bson:"group,omitempty"`                                                       // Population criteria group
	SupplementalData                []MeasureSupplementalData `json:"supplementalData,omitempty" bson:"supplemental_data,omitempty"`                                // What other data should be reported with the measure
}

The Measure resource provides the definition of a quality measure.

func (*Measure) Validate

func (r *Measure) Validate() error

type MeasureGroup

type MeasureGroup struct {
	Id                          *string                  `json:"id,omitempty" bson:"id,omitempty"`                                                     // Unique id for inter-element referencing
	LinkId                      *string                  `json:"linkId,omitempty" bson:"link_id,omitempty"`                                            // Unique id for group in measure
	Title                       *string                  `json:"title,omitempty" bson:"title,omitempty"`                                               // Title of the group. This title is expected in the corresponding MeasureReport.group.title
	Code                        *CodeableConcept         `json:"code,omitempty" bson:"code,omitempty"`                                                 // Meaning of the group
	Description                 *string                  `json:"description,omitempty" bson:"description,omitempty"`                                   // Summary description
	Type                        []CodeableConcept        `json:"type,omitempty" bson:"type,omitempty"`                                                 // process | outcome | structure | patient-reported-outcome
	SubjectCodeableConcept      *CodeableConcept         `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"`           // E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
	SubjectReference            *Reference               `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`                        // E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
	Basis                       *string                  `json:"basis,omitempty" bson:"basis,omitempty"`                                               // Population basis
	BasisRequirement            []DataRequirement        `json:"basisRequirement,omitempty" bson:"basis_requirement,omitempty"`                        // Population basis requirements
	Scoring                     *CodeableConcept         `json:"scoring,omitempty" bson:"scoring,omitempty"`                                           // proportion | ratio | continuous-variable | cohort | composite
	ScoringUnit                 *CodeableConcept         `json:"scoringUnit,omitempty" bson:"scoring_unit,omitempty"`                                  // What units?
	ScoringPrecision            *int                     `json:"scoringPrecision,omitempty" bson:"scoring_precision,omitempty"`                        // How many decimals (The number of decimal places to include in the score when the score is a decimal-valued result)
	CompositeScoring            *CodeableConcept         `json:"compositeScoring,omitempty" bson:"composite_scoring,omitempty"`                        // opportunity | all-or-nothing | linear | weighted
	Component                   []MeasureGroupComponent  `json:"component,omitempty" bson:"component,omitempty"`                                       // A component of a composite measure
	RateAggregation             *string                  `json:"rateAggregation,omitempty" bson:"rate_aggregation,omitempty"`                          // How is rate aggregation performed for this measure
	ImprovementNotation         *CodeableConcept         `json:"improvementNotation,omitempty" bson:"improvement_notation,omitempty"`                  // increase | decrease
	ImprovementNotationGuidance *string                  `json:"improvementNotationGuidance,omitempty" bson:"improvement_notation_guidance,omitempty"` // Explanation of improvement notation
	Library                     []string                 `json:"library,omitempty" bson:"library,omitempty"`                                           // Logic used by the measure group
	Population                  []MeasureGroupPopulation `json:"population,omitempty" bson:"population,omitempty"`                                     // Population criteria
	Stratifier                  []MeasureGroupStratifier `json:"stratifier,omitempty" bson:"stratifier,omitempty"`                                     // Stratifier criteria for the measure
}

func (*MeasureGroup) Validate

func (r *MeasureGroup) Validate() error

type MeasureGroupComponent

type MeasureGroupComponent struct {
	Id      *string  `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	Measure *string  `json:"measure,omitempty" bson:"measure,omitempty"`  // What measure?
	GroupId *string  `json:"groupId,omitempty" bson:"group_id,omitempty"` // What group?
	Weight  *float64 `json:"weight,omitempty" bson:"weight,omitempty"`    // What weight?
}

func (*MeasureGroupComponent) Validate

func (r *MeasureGroupComponent) Validate() error

type MeasureGroupPopulation

type MeasureGroupPopulation struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                                 // Unique id for inter-element referencing
	LinkId            *string          `json:"linkId,omitempty" bson:"link_id,omitempty"`                        // Unique id for population in measure
	Title             *string          `json:"title,omitempty" bson:"title,omitempty"`                           // Title of the group's population. This title is expected in the corresponding MeasureReport.group.population.title
	Code              *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                             // initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
	Description       *string          `json:"description,omitempty" bson:"description,omitempty"`               // The human readable description of this population criteria
	Criteria          *Expression      `json:"criteria,omitempty" bson:"criteria,omitempty"`                     // The criteria that defines this population
	GroupDefinition   *Reference       `json:"groupDefinition,omitempty" bson:"group_definition,omitempty"`      // A group resource that defines this population
	InputPopulationId *string          `json:"inputPopulationId,omitempty" bson:"input_population_id,omitempty"` // Which population
	AggregateMethod   *CodeableConcept `json:"aggregateMethod,omitempty" bson:"aggregate_method,omitempty"`      // Aggregation method for a measure score (e.g. sum, average, median, minimum, maximum, count)
}

func (*MeasureGroupPopulation) Validate

func (r *MeasureGroupPopulation) Validate() error

type MeasureGroupStratifier

type MeasureGroupStratifier struct {
	Id              *string                           `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	LinkId          *string                           `json:"linkId,omitempty" bson:"link_id,omitempty"`                   // Unique id for stratifier in measure
	Title           *string                           `json:"title,omitempty" bson:"title,omitempty"`                      // Title of a group's stratifier. This title is expected in the corresponding MeasureReport.group.title
	Code            *CodeableConcept                  `json:"code,omitempty" bson:"code,omitempty"`                        // Meaning of the stratifier
	Description     *string                           `json:"description,omitempty" bson:"description,omitempty"`          // The human readable description of this stratifier
	Criteria        *Expression                       `json:"criteria,omitempty" bson:"criteria,omitempty"`                // How the measure should be stratified
	GroupDefinition *Reference                        `json:"groupDefinition,omitempty" bson:"group_definition,omitempty"` // A group resource that defines this population
	Component       []MeasureGroupStratifierComponent `json:"component,omitempty" bson:"component,omitempty"`              // Stratifier criteria component for the measure
}

func (*MeasureGroupStratifier) Validate

func (r *MeasureGroupStratifier) Validate() error

type MeasureGroupStratifierComponent

type MeasureGroupStratifierComponent struct {
	Id              *string          `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	LinkId          *string          `json:"linkId,omitempty" bson:"link_id,omitempty"`                   // Unique id for stratifier component in measure
	Code            *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                        // Meaning of the stratifier component
	Description     *string          `json:"description,omitempty" bson:"description,omitempty"`          // The human readable description of this stratifier component
	Criteria        *Expression      `json:"criteria,omitempty" bson:"criteria,omitempty"`                // Component of how the measure should be stratified
	GroupDefinition *Reference       `json:"groupDefinition,omitempty" bson:"group_definition,omitempty"` // A group resource that defines this population
	ValueSet        *string          `json:"valueSet,omitempty" bson:"value_set,omitempty"`               // What stratum values?
	Unit            *string          `json:"unit,omitempty" bson:"unit,omitempty"`                        // What units?
}

func (*MeasureGroupStratifierComponent) Validate

func (r *MeasureGroupStratifierComponent) Validate() error

type MeasureReport

type MeasureReport struct {
	ResourceType      string               `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string              `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta                `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string              `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string              `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative           `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage    `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Identifier        []Identifier         `json:"identifier,omitempty" bson:"identifier,omitempty"`                // Additional identifier for the MeasureReport
	Category          *CodeableConcept     `json:"category,omitempty" bson:"category,omitempty"`                    // The category of measure report instance this is (example codes include deqm, ra, vbp)
	Messages          *Reference           `json:"messages,omitempty" bson:"messages,omitempty"`                    // Evaluation messages
	Status            string               `json:"status" bson:"status"`                                            // complete | pending | error
	Type              string               `json:"type" bson:"type"`                                                // individual | subject-list | summary | data-exchange
	DataUpdateType    *string              `json:"dataUpdateType,omitempty" bson:"data_update_type,omitempty"`      // incremental | snapshot
	Measure           *string              `json:"measure,omitempty" bson:"measure,omitempty"`                      // What measure was calculated
	Subject           *Reference           `json:"subject,omitempty" bson:"subject,omitempty"`                      // What individual(s) the report is for
	Date              *string              `json:"date,omitempty" bson:"date,omitempty"`                            // When the measure report was generated
	Reporter          *Reference           `json:"reporter,omitempty" bson:"reporter,omitempty"`                    // Who is reporting the data
	ReportingVendor   *Reference           `json:"reportingVendor,omitempty" bson:"reporting_vendor,omitempty"`     // What vendor prepared the data
	Location          []Reference          `json:"location,omitempty" bson:"location,omitempty"`                    // Where the reported data is from
	Period            *Period              `json:"period" bson:"period"`                                            // What period the report covers
	InputParameters   *Reference           `json:"inputParameters,omitempty" bson:"input_parameters,omitempty"`     // What parameters were provided to the report
	Group             []MeasureReportGroup `json:"group,omitempty" bson:"group,omitempty"`                          // Measure results for each group
	SupplementalData  []Reference          `json:"supplementalData,omitempty" bson:"supplemental_data,omitempty"`   // Additional information collected for the report
	EvaluatedResource []Reference          `json:"evaluatedResource,omitempty" bson:"evaluated_resource,omitempty"` // What data was used to calculate the measure score
}

The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation.

func (*MeasureReport) Validate

func (r *MeasureReport) Validate() error

type MeasureReportGroup

type MeasureReportGroup struct {
	Id                          *string                        `json:"id,omitempty" bson:"id,omitempty"`                                                      // Unique id for inter-element referencing
	LinkId                      *string                        `json:"linkId,omitempty" bson:"link_id,omitempty"`                                             // Pointer to specific group from Measure
	Title                       *string                        `json:"title,omitempty" bson:"title,omitempty"`                                                // Title of a group. Note- this value is copied from this element in Measure
	CalculatedDate              *string                        `json:"calculatedDate,omitempty" bson:"calculated_date,omitempty"`                             // The date the Measure Report was calculated
	Code                        *CodeableConcept               `json:"code,omitempty" bson:"code,omitempty"`                                                  // Meaning of the group
	Description                 *string                        `json:"description,omitempty" bson:"description,omitempty"`                                    // Summary description
	Type                        *CodeableConcept               `json:"type,omitempty" bson:"type,omitempty"`                                                  // process | outcome | structure | patient-reported-outcome
	Subject                     *Reference                     `json:"subject,omitempty" bson:"subject,omitempty"`                                            // What individual(s) the report is for
	Scoring                     *CodeableConcept               `json:"scoring,omitempty" bson:"scoring,omitempty"`                                            // What scoring method (e.g. proportion, ratio, continuous-variable)
	ImprovementNotation         *CodeableConcept               `json:"improvementNotation,omitempty" bson:"improvement_notation,omitempty"`                   // increase | decrease
	ImprovementNotationGuidance *string                        `json:"improvementNotationGuidance,omitempty" bson:"improvement_notation_guidance,omitempty"`  // Explanation of improvement notation
	Population                  []MeasureReportGroupPopulation `json:"population,omitempty" bson:"population,omitempty"`                                      // The populations in the group
	MeasureScoreQuantity        *Quantity                      `json:"measureScoreQuantity,omitempty" bson:"measure_score_quantity,omitempty"`                // What score this group achieved
	MeasureScoreDateTime        *string                        `json:"measureScoreDateTime,omitempty" bson:"measure_score_date_time,omitempty"`               // What score this group achieved
	MeasureScoreCodeableConcept *CodeableConcept               `json:"measureScoreCodeableConcept,omitempty" bson:"measure_score_codeable_concept,omitempty"` // What score this group achieved
	MeasureScorePeriod          *Period                        `json:"measureScorePeriod,omitempty" bson:"measure_score_period,omitempty"`                    // What score this group achieved
	MeasureScoreRange           *Range                         `json:"measureScoreRange,omitempty" bson:"measure_score_range,omitempty"`                      // What score this group achieved
	MeasureScoreDuration        *Duration                      `json:"measureScoreDuration,omitempty" bson:"measure_score_duration,omitempty"`                // What score this group achieved
	MeasureScoreBoolean         *bool                          `json:"measureScoreBoolean,omitempty" bson:"measure_score_boolean,omitempty"`                  // What score this group achieved
	MeasureScoreRatio           *Ratio                         `json:"measureScoreRatio,omitempty" bson:"measure_score_ratio,omitempty"`                      // What score this group achieved
	Stratifier                  []MeasureReportGroupStratifier `json:"stratifier,omitempty" bson:"stratifier,omitempty"`                                      // Stratification results
}

func (*MeasureReportGroup) Validate

func (r *MeasureReportGroup) Validate() error

type MeasureReportGroupPopulation

type MeasureReportGroupPopulation struct {
	Id             *string          `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	LinkId         *string          `json:"linkId,omitempty" bson:"link_id,omitempty"`                 // Pointer to specific population from Measure
	Title          *string          `json:"title,omitempty" bson:"title,omitempty"`                    // Title of a group. Note- this value is copied from this element in Measure
	Code           *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                      // initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
	Description    *string          `json:"description,omitempty" bson:"description,omitempty"`        // The human readable description of this population criteria
	Count          *int             `json:"count,omitempty" bson:"count,omitempty"`                    // Size of the population
	CountQuantity  *Quantity        `json:"countQuantity,omitempty" bson:"count_quantity,omitempty"`   // Size of the population as a quantity
	SubjectResults *Reference       `json:"subjectResults,omitempty" bson:"subject_results,omitempty"` // For subject-list reports, the subject results in this population
	SubjectReport  []Reference      `json:"subjectReport,omitempty" bson:"subject_report,omitempty"`   // For subject-list reports, references to the individual reports for subjects in this population
	Subjects       *Reference       `json:"subjects,omitempty" bson:"subjects,omitempty"`              // What individual(s) in the population
}

func (*MeasureReportGroupPopulation) Validate

func (r *MeasureReportGroupPopulation) Validate() error

type MeasureReportGroupStratifier

type MeasureReportGroupStratifier struct {
	Id          *string                               `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	LinkId      *string                               `json:"linkId,omitempty" bson:"link_id,omitempty"`          // Pointer to specific stratifier from Measure
	Title       *string                               `json:"title,omitempty" bson:"title,omitempty"`             // Title of a group's stratifier. Note- this value is copied from this element in Measure
	Code        *CodeableConcept                      `json:"code,omitempty" bson:"code,omitempty"`               // What stratifier of the group
	Description *string                               `json:"description,omitempty" bson:"description,omitempty"` // The human readable description of this stratifier
	Stratum     []MeasureReportGroupStratifierStratum `json:"stratum,omitempty" bson:"stratum,omitempty"`         // Stratum results, one for each unique value, or set of values, in the stratifier, or stratifier components
}

func (*MeasureReportGroupStratifier) Validate

func (r *MeasureReportGroupStratifier) Validate() error

type MeasureReportGroupStratifierStratum

type MeasureReportGroupStratifierStratum struct {
	Id                          *string                                         `json:"id,omitempty" bson:"id,omitempty"`                                                      // Unique id for inter-element referencing
	ValueCodeableConcept        *CodeableConcept                                `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`                // The stratum value, e.g. male
	ValueBoolean                *bool                                           `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                                 // The stratum value, e.g. male
	ValueQuantity               *Quantity                                       `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                               // The stratum value, e.g. male
	ValueRange                  *Range                                          `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                     // The stratum value, e.g. male
	ValueReference              *Reference                                      `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                             // The stratum value, e.g. male
	Component                   []MeasureReportGroupStratifierStratumComponent  `json:"component,omitempty" bson:"component,omitempty"`                                        // Stratifier component values
	Population                  []MeasureReportGroupStratifierStratumPopulation `json:"population,omitempty" bson:"population,omitempty"`                                      // Population results in this stratum
	MeasureScoreQuantity        *Quantity                                       `json:"measureScoreQuantity,omitempty" bson:"measure_score_quantity,omitempty"`                // What score this stratum achieved
	MeasureScoreDateTime        *string                                         `json:"measureScoreDateTime,omitempty" bson:"measure_score_date_time,omitempty"`               // What score this stratum achieved
	MeasureScoreCodeableConcept *CodeableConcept                                `json:"measureScoreCodeableConcept,omitempty" bson:"measure_score_codeable_concept,omitempty"` // What score this stratum achieved
	MeasureScorePeriod          *Period                                         `json:"measureScorePeriod,omitempty" bson:"measure_score_period,omitempty"`                    // What score this stratum achieved
	MeasureScoreRange           *Range                                          `json:"measureScoreRange,omitempty" bson:"measure_score_range,omitempty"`                      // What score this stratum achieved
	MeasureScoreDuration        *Duration                                       `json:"measureScoreDuration,omitempty" bson:"measure_score_duration,omitempty"`                // What score this stratum achieved
	MeasureScoreBoolean         *bool                                           `json:"measureScoreBoolean,omitempty" bson:"measure_score_boolean,omitempty"`                  // What score this stratum achieved
	MeasureScoreRatio           *Ratio                                          `json:"measureScoreRatio,omitempty" bson:"measure_score_ratio,omitempty"`                      // What score this stratum achieved
}

func (*MeasureReportGroupStratifierStratum) Validate

type MeasureReportGroupStratifierStratumComponent

type MeasureReportGroupStratifierStratumComponent struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	LinkId               *string          `json:"linkId,omitempty" bson:"link_id,omitempty"`          // Pointer to specific stratifier component from Measure
	Code                 *CodeableConcept `json:"code" bson:"code"`                                   // What stratifier component of the group
	Description          *string          `json:"description,omitempty" bson:"description,omitempty"` // The human readable description of this stratifier component
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // The stratum component value, e.g. male
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // The stratum component value, e.g. male
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // The stratum component value, e.g. male
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // The stratum component value, e.g. male
	ValueReference       *Reference       `json:"valueReference" bson:"value_reference"`              // The stratum component value, e.g. male
}

func (*MeasureReportGroupStratifierStratumComponent) Validate

type MeasureReportGroupStratifierStratumPopulation

type MeasureReportGroupStratifierStratumPopulation struct {
	Id             *string          `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	LinkId         *string          `json:"linkId,omitempty" bson:"link_id,omitempty"`                 // Pointer to specific population from Measure
	Code           *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                      // initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation
	Count          *int             `json:"count,omitempty" bson:"count,omitempty"`                    // Size of the population
	CountQuantity  *Quantity        `json:"countQuantity,omitempty" bson:"count_quantity,omitempty"`   // Size of the population as a quantity
	SubjectResults *Reference       `json:"subjectResults,omitempty" bson:"subject_results,omitempty"` // For subject-list reports, the subject results in this population
	SubjectReport  []Reference      `json:"subjectReport,omitempty" bson:"subject_report,omitempty"`   // For subject-list reports, a subject result in this population
	Subjects       *Reference       `json:"subjects,omitempty" bson:"subjects,omitempty"`              // What individual(s) in the population
}

func (*MeasureReportGroupStratifierStratumPopulation) Validate

type MeasureReportStatus added in v0.0.3

type MeasureReportStatus string

MeasureReportStatus represents codes from http://hl7.org/fhir/ValueSet/measure-report-status

const (
	MeasureReportStatusComplete MeasureReportStatus = "complete"
	MeasureReportStatusPending  MeasureReportStatus = "pending"
	MeasureReportStatusError    MeasureReportStatus = "error"
)

type MeasureReportType added in v0.0.3

type MeasureReportType string

MeasureReportType represents codes from http://hl7.org/fhir/ValueSet/measure-report-type

const (
	MeasureReportTypeIndividual   MeasureReportType = "individual"
	MeasureReportTypeSubjectList  MeasureReportType = "subject-list"
	MeasureReportTypeSummary      MeasureReportType = "summary"
	MeasureReportTypeDataExchange MeasureReportType = "data-exchange"
)

type MeasureSupplementalData

type MeasureSupplementalData struct {
	Id          *string           `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	LinkId      *string           `json:"linkId,omitempty" bson:"link_id,omitempty"`          // Unique id for supplementalData in measure
	Code        *CodeableConcept  `json:"code,omitempty" bson:"code,omitempty"`               // Meaning of the supplemental data
	Usage       []CodeableConcept `json:"usage,omitempty" bson:"usage,omitempty"`             // supplemental-data | risk-adjustment-factor
	Description *string           `json:"description,omitempty" bson:"description,omitempty"` // The human readable description of this supplemental data
	Criteria    *Expression       `json:"criteria" bson:"criteria"`                           // Expression describing additional data to be reported
	ValueSet    *string           `json:"valueSet,omitempty" bson:"value_set,omitempty"`      // What supplemental data values?
	Unit        *string           `json:"unit,omitempty" bson:"unit,omitempty"`               // What units?
}

func (*MeasureSupplementalData) Validate

func (r *MeasureSupplementalData) Validate() error

type MeasureTerm

type MeasureTerm struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Code       *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`             // What term?
	Definition *string          `json:"definition,omitempty" bson:"definition,omitempty"` // Meaning of the term
}

func (*MeasureTerm) Validate

func (r *MeasureTerm) Validate() error

type Medication

type Medication struct {
	ResourceType                 string                 `json:"resourceType" bson:"resource_type"`                                                      // Type of resource
	Id                           *string                `json:"id,omitempty" bson:"id,omitempty"`                                                       // Logical id of this artifact
	Meta                         *Meta                  `json:"meta,omitempty" bson:"meta,omitempty"`                                                   // Metadata about the resource
	ImplicitRules                *string                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                                // A set of rules under which this content was created
	Language                     *string                `json:"language,omitempty" bson:"language,omitempty"`                                           // Language of the resource content
	Text                         *Narrative             `json:"text,omitempty" bson:"text,omitempty"`                                                   // Text summary of the resource, for human interpretation
	Contained                    []json.RawMessage      `json:"contained,omitempty" bson:"contained,omitempty"`                                         // Contained, inline Resources
	Identifier                   []Identifier           `json:"identifier,omitempty" bson:"identifier,omitempty"`                                       // Business identifier for this medication
	Code                         *CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                                                   // Codes that identify this medication
	Status                       *string                `json:"status,omitempty" bson:"status,omitempty"`                                               // active | inactive | entered-in-error
	MarketingAuthorizationHolder *Reference             `json:"marketingAuthorizationHolder,omitempty" bson:"marketing_authorization_holder,omitempty"` // Organization that has authorization to market medication
	DoseForm                     *CodeableConcept       `json:"doseForm,omitempty" bson:"dose_form,omitempty"`                                          // powder | tablets | capsule +
	PackageSize                  *MedicationPackageSize `json:"packageSize,omitempty" bson:"package_size,omitempty"`                                    // When the code does not specify the package size, this backbone element can be used to specify the overall amount of medication in the package
	Ingredient                   []MedicationIngredient `json:"ingredient,omitempty" bson:"ingredient,omitempty"`                                       // Components of a medication. These can be ingredient substances or other medications, in the case of combination packaged medications
	Instance                     *MedicationInstance    `json:"instance,omitempty" bson:"instance,omitempty"`                                           // Details about packaged medications
	Definition                   *Reference             `json:"definition,omitempty" bson:"definition,omitempty"`                                       // Formal definition of the medication
}

This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.

func (*Medication) Validate

func (r *Medication) Validate() error

type MedicationAdministration

type MedicationAdministration struct {
	ResourceType          string                              `json:"resourceType" bson:"resource_type"`                                       // Type of resource
	Id                    *string                             `json:"id,omitempty" bson:"id,omitempty"`                                        // Logical id of this artifact
	Meta                  *Meta                               `json:"meta,omitempty" bson:"meta,omitempty"`                                    // Metadata about the resource
	ImplicitRules         *string                             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                 // A set of rules under which this content was created
	Language              *string                             `json:"language,omitempty" bson:"language,omitempty"`                            // Language of the resource content
	Text                  *Narrative                          `json:"text,omitempty" bson:"text,omitempty"`                                    // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage                   `json:"contained,omitempty" bson:"contained,omitempty"`                          // Contained, inline Resources
	Identifier            []Identifier                        `json:"identifier,omitempty" bson:"identifier,omitempty"`                        // External identifier
	BasedOn               []Reference                         `json:"basedOn,omitempty" bson:"based_on,omitempty"`                             // Plan this is fulfilled by this administration
	PartOf                []Reference                         `json:"partOf,omitempty" bson:"part_of,omitempty"`                               // Part of referenced event
	Status                string                              `json:"status" bson:"status"`                                                    // in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
	StatusReason          []CodeableConcept                   `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                   // Reason status of the administration changed
	Category              []CodeableConcept                   `json:"category,omitempty" bson:"category,omitempty"`                            // Type of medication administration
	Medication            *CodeableReference                  `json:"medication" bson:"medication"`                                            // What was administered
	Subject               *Reference                          `json:"subject" bson:"subject"`                                                  // Who received medication
	Encounter             *Reference                          `json:"encounter,omitempty" bson:"encounter,omitempty"`                          // Encounter administered as part of
	SupportingInformation []Reference                         `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"` // Additional information to support administration
	OccurrenceDateTime    *string                             `json:"occurrenceDateTime" bson:"occurrence_date_time"`                          // Specific date/time or interval of time during which the administration took place (or did not take place)
	OccurrencePeriod      *Period                             `json:"occurrencePeriod" bson:"occurrence_period"`                               // Specific date/time or interval of time during which the administration took place (or did not take place)
	OccurrenceTiming      *Timing                             `json:"occurrenceTiming" bson:"occurrence_timing"`                               // Specific date/time or interval of time during which the administration took place (or did not take place)
	Recorded              *string                             `json:"recorded,omitempty" bson:"recorded,omitempty"`                            // When the MedicationAdministration was first captured in the subject's record
	IsSubPotent           *bool                               `json:"isSubPotent,omitempty" bson:"is_sub_potent,omitempty"`                    // An indication that the full ordered dose was not administered
	SubPotentReason       []CodeableConcept                   `json:"subPotentReason,omitempty" bson:"sub_potent_reason,omitempty"`            // Reason full dose was not administered
	Performer             []MedicationAdministrationPerformer `json:"performer,omitempty" bson:"performer,omitempty"`                          // Who or what performed the medication administration and what type of performance they did
	Reason                []CodeableReference                 `json:"reason,omitempty" bson:"reason,omitempty"`                                // Reason that supports why the medication was administered
	Request               *Reference                          `json:"request,omitempty" bson:"request,omitempty"`                              // Request administration performed against
	Device                []CodeableReference                 `json:"device,omitempty" bson:"device,omitempty"`                                // Device used to administer
	Note                  []Annotation                        `json:"note,omitempty" bson:"note,omitempty"`                                    // Information about the administration
	Dosage                *MedicationAdministrationDosage     `json:"dosage,omitempty" bson:"dosage,omitempty"`                                // Details of how medication was taken
	EventHistory          []Reference                         `json:"eventHistory,omitempty" bson:"event_history,omitempty"`                   // A list of events of interest in the lifecycle
}

Describes the event of a patient consuming or otherwise being administered a medication. This may be as simple as swallowing a tablet or it may be a long running infusion. Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner. This event can also be used to record waste using a status of not-done and the appropriate statusReason.

func (*MedicationAdministration) Validate

func (r *MedicationAdministration) Validate() error

type MedicationAdministrationDosage

type MedicationAdministrationDosage struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Text         *string          `json:"text,omitempty" bson:"text,omitempty"`                  // Free text dosage instructions e.g. SIG
	Site         *CodeableConcept `json:"site,omitempty" bson:"site,omitempty"`                  // Body site administered to
	Route        *CodeableConcept `json:"route,omitempty" bson:"route,omitempty"`                // Path of substance into body
	Method       *CodeableConcept `json:"method,omitempty" bson:"method,omitempty"`              // How drug was administered
	Dose         *Quantity        `json:"dose,omitempty" bson:"dose,omitempty"`                  // Amount of medication per dose
	RateRatio    *Ratio           `json:"rateRatio,omitempty" bson:"rate_ratio,omitempty"`       // Dose quantity per unit of time
	RateQuantity *Quantity        `json:"rateQuantity,omitempty" bson:"rate_quantity,omitempty"` // Dose quantity per unit of time
}

func (*MedicationAdministrationDosage) Validate

func (r *MedicationAdministrationDosage) Validate() error

type MedicationAdministrationPerformer

type MedicationAdministrationPerformer struct {
	Id       *string            `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept   `json:"function,omitempty" bson:"function,omitempty"` // Type of performance
	Actor    *CodeableReference `json:"actor" bson:"actor"`                           // Who or what performed the medication administration
}

func (*MedicationAdministrationPerformer) Validate

type MedicationAdministrationStatusCodes added in v0.0.3

type MedicationAdministrationStatusCodes string

MedicationAdministrationStatusCodes represents codes from http://hl7.org/fhir/ValueSet/medication-admin-status

const (
	MedicationAdministrationStatusCodesInProgress     MedicationAdministrationStatusCodes = "in-progress"
	MedicationAdministrationStatusCodesNotDone        MedicationAdministrationStatusCodes = "not-done"
	MedicationAdministrationStatusCodesOnHold         MedicationAdministrationStatusCodes = "on-hold"
	MedicationAdministrationStatusCodesCompleted      MedicationAdministrationStatusCodes = "completed"
	MedicationAdministrationStatusCodesEnteredInError MedicationAdministrationStatusCodes = "entered-in-error"
	MedicationAdministrationStatusCodesStopped        MedicationAdministrationStatusCodes = "stopped"
	MedicationAdministrationStatusCodesUnknown        MedicationAdministrationStatusCodes = "unknown"
)

type MedicationDispense

type MedicationDispense struct {
	ResourceType            string                          `json:"resourceType" bson:"resource_type"`                                           // Type of resource
	Id                      *string                         `json:"id,omitempty" bson:"id,omitempty"`                                            // Logical id of this artifact
	Meta                    *Meta                           `json:"meta,omitempty" bson:"meta,omitempty"`                                        // Metadata about the resource
	ImplicitRules           *string                         `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                     // A set of rules under which this content was created
	Language                *string                         `json:"language,omitempty" bson:"language,omitempty"`                                // Language of the resource content
	Text                    *Narrative                      `json:"text,omitempty" bson:"text,omitempty"`                                        // Text summary of the resource, for human interpretation
	Contained               []json.RawMessage               `json:"contained,omitempty" bson:"contained,omitempty"`                              // Contained, inline Resources
	Identifier              []Identifier                    `json:"identifier,omitempty" bson:"identifier,omitempty"`                            // External identifier
	BasedOn                 []Reference                     `json:"basedOn,omitempty" bson:"based_on,omitempty"`                                 // Plan that is fulfilled by this dispense
	PartOf                  []Reference                     `json:"partOf,omitempty" bson:"part_of,omitempty"`                                   // Event that dispense is part of
	Status                  string                          `json:"status" bson:"status"`                                                        // preparation | in-progress | cancelled | on-hold | completed | entered-in-error | unfulfilled | declined | unknown
	NotPerformedReason      *CodeableReference              `json:"notPerformedReason,omitempty" bson:"not_performed_reason,omitempty"`          // Why a dispense was not performed
	StatusChanged           *string                         `json:"statusChanged,omitempty" bson:"status_changed,omitempty"`                     // When the status changed
	Category                []CodeableConcept               `json:"category,omitempty" bson:"category,omitempty"`                                // Type of medication dispense
	Medication              *CodeableReference              `json:"medication" bson:"medication"`                                                // What medication was (or was intended to be) supplied
	Subject                 *Reference                      `json:"subject" bson:"subject"`                                                      // Who the dispense is for
	Encounter               *Reference                      `json:"encounter,omitempty" bson:"encounter,omitempty"`                              // Encounter associated with event
	SupportingInformation   []Reference                     `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"`     // Information that supports the dispensing of the medication
	Performer               []MedicationDispensePerformer   `json:"performer,omitempty" bson:"performer,omitempty"`                              // Who performed event
	Location                *Reference                      `json:"location,omitempty" bson:"location,omitempty"`                                // Where the dispense occurred
	AuthorizingPrescription []Reference                     `json:"authorizingPrescription,omitempty" bson:"authorizing_prescription,omitempty"` // Medication order that authorizes the dispense
	Type                    *CodeableConcept                `json:"type,omitempty" bson:"type,omitempty"`                                        // Trial fill, partial fill, emergency fill, etc
	Quantity                *Quantity                       `json:"quantity,omitempty" bson:"quantity,omitempty"`                                // Amount of medication
	DaysSupply              *Quantity                       `json:"daysSupply,omitempty" bson:"days_supply,omitempty"`                           // Amount of medication expressed as a timing amount
	FillNumber              *int                            `json:"fillNumber,omitempty" bson:"fill_number,omitempty"`                           // A number that represents the known fill this dispense represents
	Recorded                *string                         `json:"recorded,omitempty" bson:"recorded,omitempty"`                                // When the recording of the dispense started
	WhenPrepared            *string                         `json:"whenPrepared,omitempty" bson:"when_prepared,omitempty"`                       // When product was packaged and reviewed
	WhenHandedOver          *string                         `json:"whenHandedOver,omitempty" bson:"when_handed_over,omitempty"`                  // When product was given out
	Destination             *Reference                      `json:"destination,omitempty" bson:"destination,omitempty"`                          // Where the medication was/will be sent
	Receiver                []Reference                     `json:"receiver,omitempty" bson:"receiver,omitempty"`                                // Who collected the medication or where the medication was delivered
	Note                    []Annotation                    `json:"note,omitempty" bson:"note,omitempty"`                                        // Information about the dispense
	DosageInstruction       *DosageDetails                  `json:"dosageInstruction,omitempty" bson:"dosage_instruction,omitempty"`             // How the medication is to be used by the patient or administered by the caregiver
	DoseAdministrationAid   *CodeableConcept                `json:"doseAdministrationAid,omitempty" bson:"dose_administration_aid,omitempty"`    // Type of adherence packaging to use for the dispense
	Substitution            *MedicationDispenseSubstitution `json:"substitution,omitempty" bson:"substitution,omitempty"`                        // Whether a substitution was performed on the dispense
	EventHistory            []Reference                     `json:"eventHistory,omitempty" bson:"event_history,omitempty"`                       // A list of relevant lifecycle events
}

Indicates that a medication product is to be or has been dispensed for a named person/patient. This includes a description of the medication product (supply) provided and the instructions for administering the medication. The medication dispense is the result of a pharmacy system responding to a medication order.

func (*MedicationDispense) Validate

func (r *MedicationDispense) Validate() error

type MedicationDispensePerformer

type MedicationDispensePerformer struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Who performed the dispense and what they did
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Individual who was performing
}

func (*MedicationDispensePerformer) Validate

func (r *MedicationDispensePerformer) Validate() error

type MedicationDispenseStatusCodes added in v0.0.3

type MedicationDispenseStatusCodes string

MedicationDispenseStatusCodes represents codes from http://hl7.org/fhir/ValueSet/medicationdispense-status

const (
	MedicationDispenseStatusCodesPreparation    MedicationDispenseStatusCodes = "preparation"
	MedicationDispenseStatusCodesInProgress     MedicationDispenseStatusCodes = "in-progress"
	MedicationDispenseStatusCodesCancelled      MedicationDispenseStatusCodes = "cancelled"
	MedicationDispenseStatusCodesOnHold         MedicationDispenseStatusCodes = "on-hold"
	MedicationDispenseStatusCodesCompleted      MedicationDispenseStatusCodes = "completed"
	MedicationDispenseStatusCodesEnteredInError MedicationDispenseStatusCodes = "entered-in-error"
	MedicationDispenseStatusCodesUnfulfilled    MedicationDispenseStatusCodes = "unfulfilled"
	MedicationDispenseStatusCodesDeclined       MedicationDispenseStatusCodes = "declined"
	MedicationDispenseStatusCodesUnknown        MedicationDispenseStatusCodes = "unknown"
)

type MedicationDispenseSubstitution

type MedicationDispenseSubstitution struct {
	Id               *string           `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	WasSubstituted   bool              `json:"wasSubstituted" bson:"was_substituted"`                         // Whether a substitution was or was not performed on the dispense
	Type             *CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                          // Code signifying whether a different drug was dispensed from what was prescribed
	Reason           []CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`                      // Why was substitution made
	ResponsibleParty *Reference        `json:"responsibleParty,omitempty" bson:"responsible_party,omitempty"` // Who is responsible for the substitution
}

func (*MedicationDispenseSubstitution) Validate

func (r *MedicationDispenseSubstitution) Validate() error

type MedicationIngredient

type MedicationIngredient struct {
	Id                      *string            `json:"id,omitempty" bson:"id,omitempty"`                                             // Unique id for inter-element referencing
	Item                    *CodeableReference `json:"item" bson:"item"`                                                             // The specific substance or medication that is the ingredient
	IsActive                *bool              `json:"isActive,omitempty" bson:"is_active,omitempty"`                                // Active ingredient indicator
	Role                    *CodeableConcept   `json:"role,omitempty" bson:"role,omitempty"`                                         // A code that defines the type of ingredient, active, base, etc.
	StrengthRatio           *Ratio             `json:"strengthRatio,omitempty" bson:"strength_ratio,omitempty"`                      // Quantity of ingredient present
	StrengthCodeableConcept *CodeableConcept   `json:"strengthCodeableConcept,omitempty" bson:"strength_codeable_concept,omitempty"` // Quantity of ingredient present
	StrengthQuantity        *Quantity          `json:"strengthQuantity,omitempty" bson:"strength_quantity,omitempty"`                // Quantity of ingredient present
}

func (*MedicationIngredient) Validate

func (r *MedicationIngredient) Validate() error

type MedicationInstance

type MedicationInstance struct {
	Id             *string      `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Identifier     []Identifier `json:"identifier,omitempty" bson:"identifier,omitempty"`          // Identifier for the physical instance, typically a serial number
	LotNumber      *string      `json:"lotNumber,omitempty" bson:"lot_number,omitempty"`           // Identifier assigned to batch
	ExpirationDate *string      `json:"expirationDate,omitempty" bson:"expiration_date,omitempty"` // When instance will expire
}

func (*MedicationInstance) Validate

func (r *MedicationInstance) Validate() error

type MedicationPackageSize

type MedicationPackageSize struct {
	Id            *string   `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	NumberOfItems *Quantity `json:"numberOfItems,omitempty" bson:"number_of_items,omitempty"` // The number of items in the package that are represented by the code
	AmountPerItem *Ratio    `json:"amountPerItem,omitempty" bson:"amount_per_item,omitempty"` // The amount per each item
}

func (*MedicationPackageSize) Validate

func (r *MedicationPackageSize) Validate() error

type MedicationRequest

type MedicationRequest struct {
	ResourceType            string                            `json:"resourceType" bson:"resource_type"`                                            // Type of resource
	Id                      *string                           `json:"id,omitempty" bson:"id,omitempty"`                                             // Logical id of this artifact
	Meta                    *Meta                             `json:"meta,omitempty" bson:"meta,omitempty"`                                         // Metadata about the resource
	ImplicitRules           *string                           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                      // A set of rules under which this content was created
	Language                *string                           `json:"language,omitempty" bson:"language,omitempty"`                                 // Language of the resource content
	Text                    *Narrative                        `json:"text,omitempty" bson:"text,omitempty"`                                         // Text summary of the resource, for human interpretation
	Contained               []json.RawMessage                 `json:"contained,omitempty" bson:"contained,omitempty"`                               // Contained, inline Resources
	Identifier              []Identifier                      `json:"identifier,omitempty" bson:"identifier,omitempty"`                             // External ids for this request
	BasedOn                 []Reference                       `json:"basedOn,omitempty" bson:"based_on,omitempty"`                                  // A plan or request that is fulfilled in whole or in part by this medication request
	PriorPrescription       *Reference                        `json:"priorPrescription,omitempty" bson:"prior_prescription,omitempty"`              // Reference to an order/prescription that is being replaced by this MedicationRequest
	GroupIdentifier         *Identifier                       `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"`                  // Composite request this is part of
	Status                  string                            `json:"status" bson:"status"`                                                         // active | on-hold | ended | stopped | completed | cancelled | entered-in-error | draft | unknown
	StatusReason            *CodeableConcept                  `json:"statusReason,omitempty" bson:"status_reason,omitempty"`                        // Reason for current status
	StatusChanged           *string                           `json:"statusChanged,omitempty" bson:"status_changed,omitempty"`                      // When the status was changed
	Intent                  string                            `json:"intent" bson:"intent"`                                                         // proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option (immutable)
	Category                []CodeableConcept                 `json:"category,omitempty" bson:"category,omitempty"`                                 // Grouping or category of medication request
	Priority                *string                           `json:"priority,omitempty" bson:"priority,omitempty"`                                 // routine | urgent | asap | stat
	DoNotPerform            *bool                             `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`                       // If true, indicates the provider is ordering a patient should not take the specified medication
	Medication              *CodeableReference                `json:"medication" bson:"medication"`                                                 // Medication to be taken
	Subject                 *Reference                        `json:"subject" bson:"subject"`                                                       // Individual or group for whom the medication has been requested
	InformationSource       []Reference                       `json:"informationSource,omitempty" bson:"information_source,omitempty"`              // The person or organization who provided the information about this request, if the source is someone other than the requestor
	Encounter               *Reference                        `json:"encounter,omitempty" bson:"encounter,omitempty"`                               // Encounter created as part of encounter/admission/stay
	SupportingInformation   []Reference                       `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"`      // Information to support fulfilling of the medication
	AuthoredOn              *string                           `json:"authoredOn,omitempty" bson:"authored_on,omitempty"`                            // When request was initially authored
	Requester               *Reference                        `json:"requester,omitempty" bson:"requester,omitempty"`                               // Who/What requested the Request
	IsRecordOfRequest       *bool                             `json:"isRecordOfRequest,omitempty" bson:"is_record_of_request,omitempty"`            // Whether this is record of a Medication Request or the actual request itself
	PerformerType           *CodeableConcept                  `json:"performerType,omitempty" bson:"performer_type,omitempty"`                      // Desired kind of performer of the medication administration
	Performer               []Reference                       `json:"performer,omitempty" bson:"performer,omitempty"`                               // Intended performer of administration
	Device                  []CodeableReference               `json:"device,omitempty" bson:"device,omitempty"`                                     // Intended type of device for the administration
	Recorder                *Reference                        `json:"recorder,omitempty" bson:"recorder,omitempty"`                                 // Person who entered the request
	Reason                  []CodeableReference               `json:"reason,omitempty" bson:"reason,omitempty"`                                     // Reason or indication for ordering or not ordering the medication
	CourseOfTherapyType     *CodeableConcept                  `json:"courseOfTherapyType,omitempty" bson:"course_of_therapy_type,omitempty"`        // Overall pattern of medication administration
	Insurance               []Reference                       `json:"insurance,omitempty" bson:"insurance,omitempty"`                               // Associated insurance coverage
	Note                    []Annotation                      `json:"note,omitempty" bson:"note,omitempty"`                                         // Information about the prescription
	EffectiveTimingDuration *Duration                         `json:"effectiveTimingDuration,omitempty" bson:"effective_timing_duration,omitempty"` // Period over which the medication is to be taken, can be specified as a duration or a range
	EffectiveTimingRange    *Range                            `json:"effectiveTimingRange,omitempty" bson:"effective_timing_range,omitempty"`       // Period over which the medication is to be taken, can be specified as a duration or a range
	EffectiveTimingPeriod   *Period                           `json:"effectiveTimingPeriod,omitempty" bson:"effective_timing_period,omitempty"`     // Period over which the medication is to be taken, can be specified as a duration or a range
	DosageInstruction       *DosageDetails                    `json:"dosageInstruction,omitempty" bson:"dosage_instruction,omitempty"`              // Specific instructions for how the medication should be taken
	DispenseRequest         *MedicationRequestDispenseRequest `json:"dispenseRequest,omitempty" bson:"dispense_request,omitempty"`                  // Medication supply authorization
	Substitution            *MedicationRequestSubstitution    `json:"substitution,omitempty" bson:"substitution,omitempty"`                         // Any restrictions on medication substitution
	EventHistory            []Reference                       `json:"eventHistory,omitempty" bson:"event_history,omitempty"`                        // A list of events of interest in the lifecycle
}

An order or request for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationRequest" rather than "MedicationPrescription" or "MedicationOrder" to generalize the use across inpatient and outpatient settings, including care plans, etc., and to harmonize with workflow patterns.

func (*MedicationRequest) Validate

func (r *MedicationRequest) Validate() error

type MedicationRequestDispenseRequest

type MedicationRequestDispenseRequest struct {
	Id                     *string                                      `json:"id,omitempty" bson:"id,omitempty"`                                            // Unique id for inter-element referencing
	InitialFill            *MedicationRequestDispenseRequestInitialFill `json:"initialFill,omitempty" bson:"initial_fill,omitempty"`                         // First fill details
	DispenseInterval       *Duration                                    `json:"dispenseInterval,omitempty" bson:"dispense_interval,omitempty"`               // Minimum period of time between dispenses
	ValidityPeriod         *Period                                      `json:"validityPeriod,omitempty" bson:"validity_period,omitempty"`                   // Time period supply is authorized for
	NumberOfRepeatsAllowed *int                                         `json:"numberOfRepeatsAllowed,omitempty" bson:"number_of_repeats_allowed,omitempty"` // Number of refills authorized
	Quantity               *Quantity                                    `json:"quantity,omitempty" bson:"quantity,omitempty"`                                // Amount of medication to supply per dispense
	ExpectedSupplyDuration *Duration                                    `json:"expectedSupplyDuration,omitempty" bson:"expected_supply_duration,omitempty"`  // Number of days supply per dispense
	Dispenser              *Reference                                   `json:"dispenser,omitempty" bson:"dispenser,omitempty"`                              // Intended performer of dispense
	DispenserInstruction   []CodeableConcept                            `json:"dispenserInstruction,omitempty" bson:"dispenser_instruction,omitempty"`       // Additional information for the dispenser
	DoseAdministrationAid  *CodeableConcept                             `json:"doseAdministrationAid,omitempty" bson:"dose_administration_aid,omitempty"`    // Type of adherence packaging to use for the dispense
	Destination            *Reference                                   `json:"destination,omitempty" bson:"destination,omitempty"`                          // Where the medication is expected to be delivered
}

func (*MedicationRequestDispenseRequest) Validate

type MedicationRequestDispenseRequestInitialFill

type MedicationRequestDispenseRequestInitialFill struct {
	Id       *string   `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Quantity *Quantity `json:"quantity,omitempty" bson:"quantity,omitempty"` // First fill quantity
	Duration *Duration `json:"duration,omitempty" bson:"duration,omitempty"` // First fill duration
}

func (*MedicationRequestDispenseRequestInitialFill) Validate

type MedicationRequestIntent added in v0.0.3

type MedicationRequestIntent string

MedicationRequestIntent represents codes from http://hl7.org/fhir/ValueSet/medicationrequest-intent

const (
	MedicationRequestIntentProposal      MedicationRequestIntent = "proposal"
	MedicationRequestIntentPlan          MedicationRequestIntent = "plan"
	MedicationRequestIntentOrder         MedicationRequestIntent = "order"
	MedicationRequestIntentOriginalOrder MedicationRequestIntent = "original-order"
	MedicationRequestIntentReflexOrder   MedicationRequestIntent = "reflex-order"
	MedicationRequestIntentFillerOrder   MedicationRequestIntent = "filler-order"
	MedicationRequestIntentInstanceOrder MedicationRequestIntent = "instance-order"
	MedicationRequestIntentOption        MedicationRequestIntent = "option"
)

type MedicationRequestSubstitution

type MedicationRequestSubstitution struct {
	Id                     *string          `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	AllowedBoolean         *bool            `json:"allowedBoolean" bson:"allowed_boolean"`                  // Whether substitution is allowed or not
	AllowedCodeableConcept *CodeableConcept `json:"allowedCodeableConcept" bson:"allowed_codeable_concept"` // Whether substitution is allowed or not
	Reason                 *CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`               // Why should (not) substitution be made
}

func (*MedicationRequestSubstitution) Validate

func (r *MedicationRequestSubstitution) Validate() error

type MedicationStatement

type MedicationStatement struct {
	ResourceType               string                        `json:"resourceType" bson:"resource_type"`                                                  // Type of resource
	Id                         *string                       `json:"id,omitempty" bson:"id,omitempty"`                                                   // Logical id of this artifact
	Meta                       *Meta                         `json:"meta,omitempty" bson:"meta,omitempty"`                                               // Metadata about the resource
	ImplicitRules              *string                       `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                            // A set of rules under which this content was created
	Language                   *string                       `json:"language,omitempty" bson:"language,omitempty"`                                       // Language of the resource content
	Text                       *Narrative                    `json:"text,omitempty" bson:"text,omitempty"`                                               // Text summary of the resource, for human interpretation
	Contained                  []json.RawMessage             `json:"contained,omitempty" bson:"contained,omitempty"`                                     // Contained, inline Resources
	Identifier                 []Identifier                  `json:"identifier,omitempty" bson:"identifier,omitempty"`                                   // External identifier
	PartOf                     []Reference                   `json:"partOf,omitempty" bson:"part_of,omitempty"`                                          // Part of referenced event
	Status                     string                        `json:"status" bson:"status"`                                                               // recorded | entered-in-error | draft
	Category                   []CodeableConcept             `json:"category,omitempty" bson:"category,omitempty"`                                       // Type of medication statement
	Medication                 *CodeableReference            `json:"medication" bson:"medication"`                                                       // The medication that is/was taken (or not taken)
	Subject                    *Reference                    `json:"subject" bson:"subject"`                                                             // Who is/was taking  the medication
	Encounter                  *Reference                    `json:"encounter,omitempty" bson:"encounter,omitempty"`                                     // Encounter associated with MedicationStatement
	EffectiveDateTime          *string                       `json:"effectiveDateTime,omitempty" bson:"effective_date_time,omitempty"`                   // The date/time or interval when the medication is/was/will be taken
	EffectivePeriod            *Period                       `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                        // The date/time or interval when the medication is/was/will be taken
	EffectiveTiming            *Timing                       `json:"effectiveTiming,omitempty" bson:"effective_timing,omitempty"`                        // The date/time or interval when the medication is/was/will be taken
	DateAsserted               *string                       `json:"dateAsserted,omitempty" bson:"date_asserted,omitempty"`                              // When the usage was asserted?
	Author                     *Reference                    `json:"author,omitempty" bson:"author,omitempty"`                                           // Who/What authored the statement
	InformationSource          []Reference                   `json:"informationSource,omitempty" bson:"information_source,omitempty"`                    // Person or organization that provided the information about the taking of this medication
	DerivedFrom                []Reference                   `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                                // Link to information used to derive the MedicationStatement
	Reason                     []CodeableReference           `json:"reason,omitempty" bson:"reason,omitempty"`                                           // Reason for why the medication is being/was taken
	Note                       []Annotation                  `json:"note,omitempty" bson:"note,omitempty"`                                               // Further information about the usage
	RelatedClinicalInformation []Reference                   `json:"relatedClinicalInformation,omitempty" bson:"related_clinical_information,omitempty"` // Link to information relevant to the usage of a medication
	Dosage                     *DosageDetails                `json:"dosage,omitempty" bson:"dosage,omitempty"`                                           // Details of how medication is/was taken or should be taken
	Adherence                  *MedicationStatementAdherence `json:"adherence,omitempty" bson:"adherence,omitempty"`                                     // Indicates whether the medication is or is not being consumed or administered
}

A record of a medication consumed by a patient. A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future. The source of this information can be the patient, patient representative (e.g., spouse, significant other, family member, caregiver), or a clinician. A common scenario where this information is captured is during the history taking process during a patient encounter or stay. The medication information may come from sources such as the patient's memory, from a prescription bottle, or from a list of medications the patient, clinician or other party maintains. The primary difference between a MedicationStatement and a MedicationAdministration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication. A MedicationStatement is often, if not always, less specific. There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise. As stated earlier, the MedicationStatement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party. MedicationAdministration is more formal and is not missing detailed information.

func (*MedicationStatement) Validate

func (r *MedicationStatement) Validate() error

type MedicationStatementAdherence

type MedicationStatementAdherence struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Code   *CodeableConcept `json:"code" bson:"code"`                         // Type of adherence
	Reason *CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"` // Details of the reason for the current use of the medication
}

func (*MedicationStatementAdherence) Validate

func (r *MedicationStatementAdherence) Validate() error

type MedicationStatementStatusCodes added in v0.0.3

type MedicationStatementStatusCodes string

MedicationStatementStatusCodes represents codes from http://hl7.org/fhir/ValueSet/medication-statement-status

const (
	MedicationStatementStatusCodesRecorded       MedicationStatementStatusCodes = "recorded"
	MedicationStatementStatusCodesEnteredInError MedicationStatementStatusCodes = "entered-in-error"
	MedicationStatementStatusCodesDraft          MedicationStatementStatusCodes = "draft"
)

type MedicationStatusCodes added in v0.0.3

type MedicationStatusCodes string

MedicationStatusCodes represents codes from http://hl7.org/fhir/ValueSet/medication-status

const (
	MedicationStatusCodesActive         MedicationStatusCodes = "active"
	MedicationStatusCodesInactive       MedicationStatusCodes = "inactive"
	MedicationStatusCodesEnteredInError MedicationStatusCodes = "entered-in-error"
)

type MedicationrequestStatus added in v0.0.3

type MedicationrequestStatus string

MedicationrequestStatus represents codes from http://hl7.org/fhir/ValueSet/medicationrequest-status

const (
	MedicationrequestStatusActive         MedicationrequestStatus = "active"
	MedicationrequestStatusOnHold         MedicationrequestStatus = "on-hold"
	MedicationrequestStatusEnded          MedicationrequestStatus = "ended"
	MedicationrequestStatusStopped        MedicationrequestStatus = "stopped"
	MedicationrequestStatusCompleted      MedicationrequestStatus = "completed"
	MedicationrequestStatusCancelled      MedicationrequestStatus = "cancelled"
	MedicationrequestStatusEnteredInError MedicationrequestStatus = "entered-in-error"
	MedicationrequestStatusDraft          MedicationrequestStatus = "draft"
	MedicationrequestStatusUnknown        MedicationrequestStatus = "unknown"
)

type MedicinalProductDefinition

type MedicinalProductDefinition struct {
	ResourceType                   string                                     `json:"resourceType" bson:"resource_type"`                                                           // Type of resource
	Id                             *string                                    `json:"id,omitempty" bson:"id,omitempty"`                                                            // Logical id of this artifact
	Meta                           *Meta                                      `json:"meta,omitempty" bson:"meta,omitempty"`                                                        // Metadata about the resource
	ImplicitRules                  *string                                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                                     // A set of rules under which this content was created
	Language                       *string                                    `json:"language,omitempty" bson:"language,omitempty"`                                                // Language of the resource content
	Text                           *Narrative                                 `json:"text,omitempty" bson:"text,omitempty"`                                                        // Text summary of the resource, for human interpretation
	Contained                      []json.RawMessage                          `json:"contained,omitempty" bson:"contained,omitempty"`                                              // Contained, inline Resources
	Identifier                     []Identifier                               `json:"identifier,omitempty" bson:"identifier,omitempty"`                                            // Business identifier for this product. Could be an MPID
	Type                           *CodeableConcept                           `json:"type,omitempty" bson:"type,omitempty"`                                                        // Regulatory type, e.g. Investigational or Authorized
	Domain                         *CodeableConcept                           `json:"domain,omitempty" bson:"domain,omitempty"`                                                    // If this medicine applies to human or veterinary uses
	Version                        *string                                    `json:"version,omitempty" bson:"version,omitempty"`                                                  // A business identifier relating to a specific version of the product
	Status                         *CodeableConcept                           `json:"status,omitempty" bson:"status,omitempty"`                                                    // The status within the lifecycle of this product record
	StatusDate                     *string                                    `json:"statusDate,omitempty" bson:"status_date,omitempty"`                                           // The date at which the given status became applicable
	Description                    *string                                    `json:"description,omitempty" bson:"description,omitempty"`                                          // General description of this product
	CombinedPharmaceuticalDoseForm *CodeableConcept                           `json:"combinedPharmaceuticalDoseForm,omitempty" bson:"combined_pharmaceutical_dose_form,omitempty"` // The dose form for a single part product, or combined form of a multiple part product
	Route                          []CodeableConcept                          `json:"route,omitempty" bson:"route,omitempty"`                                                      // The path by which the product is taken into or makes contact with the body
	Indication                     *string                                    `json:"indication,omitempty" bson:"indication,omitempty"`                                            // Description of indication(s) for this product, used when structured indications are not required
	LegalStatusOfSupply            *CodeableConcept                           `json:"legalStatusOfSupply,omitempty" bson:"legal_status_of_supply,omitempty"`                       // The legal status of supply of the medicinal product as classified by the regulator
	AdditionalMonitoringIndicator  *CodeableConcept                           `json:"additionalMonitoringIndicator,omitempty" bson:"additional_monitoring_indicator,omitempty"`    // Whether the Medicinal Product is subject to additional monitoring for regulatory reasons
	SpecialMeasures                []CodeableConcept                          `json:"specialMeasures,omitempty" bson:"special_measures,omitempty"`                                 // Whether the Medicinal Product is subject to special measures for regulatory reasons
	PediatricUseIndicator          *CodeableConcept                           `json:"pediatricUseIndicator,omitempty" bson:"pediatric_use_indicator,omitempty"`                    // If authorised for use in children
	Classification                 []CodeableConcept                          `json:"classification,omitempty" bson:"classification,omitempty"`                                    // Allows the product to be classified by various systems
	MarketingStatus                []MarketingStatus                          `json:"marketingStatus,omitempty" bson:"marketing_status,omitempty"`                                 // Marketing status of the medicinal product, in contrast to marketing authorization
	PackagedMedicinalProduct       []CodeableConcept                          `json:"packagedMedicinalProduct,omitempty" bson:"packaged_medicinal_product,omitempty"`              // Package type for the product
	ComprisedOf                    []Reference                                `json:"comprisedOf,omitempty" bson:"comprised_of,omitempty"`                                         // Types of medicinal manufactured items and/or devices that this product consists of, such as tablets, capsule, or syringes
	Ingredient                     []CodeableConcept                          `json:"ingredient,omitempty" bson:"ingredient,omitempty"`                                            // The ingredients of this medicinal product - when not detailed in other resources
	Impurity                       []CodeableReference                        `json:"impurity,omitempty" bson:"impurity,omitempty"`                                                // Any component of the drug product which is not the chemical entity defined as the drug substance, or an excipient in the drug product
	AttachedDocument               []Reference                                `json:"attachedDocument,omitempty" bson:"attached_document,omitempty"`                               // Additional documentation about the medicinal product
	MasterFile                     []Reference                                `json:"masterFile,omitempty" bson:"master_file,omitempty"`                                           // A master file for the medicinal product (e.g. Pharmacovigilance System Master File)
	Contact                        []MedicinalProductDefinitionContact        `json:"contact,omitempty" bson:"contact,omitempty"`                                                  // A product specific contact, person (in a role), or an organization
	ClinicalTrial                  []Reference                                `json:"clinicalTrial,omitempty" bson:"clinical_trial,omitempty"`                                     // Clinical trials or studies that this product is involved in
	Code                           []Coding                                   `json:"code,omitempty" bson:"code,omitempty"`                                                        // A code that this product is known by, within some formal terminology
	Name                           []MedicinalProductDefinitionName           `json:"name" bson:"name"`                                                                            // The product's name, including full name and possibly coded parts
	CrossReference                 []MedicinalProductDefinitionCrossReference `json:"crossReference,omitempty" bson:"cross_reference,omitempty"`                                   // Reference to another product, e.g. for linking authorised to investigational product
	Operation                      []MedicinalProductDefinitionOperation      `json:"operation,omitempty" bson:"operation,omitempty"`                                              // A manufacturing or administrative process for the medicinal product
	Characteristic                 []MedicinalProductDefinitionCharacteristic `json:"characteristic,omitempty" bson:"characteristic,omitempty"`                                    // Key product features such as "sugar free", "modified release"
}

Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs, to support prescribing, adverse events management etc.).

func (*MedicinalProductDefinition) Validate

func (r *MedicinalProductDefinition) Validate() error

type MedicinalProductDefinitionCharacteristic

type MedicinalProductDefinitionCharacteristic struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                                       // A code expressing the type of characteristic
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // A value for the characteristic
	ValueMarkdown        *string          `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                // A value for the characteristic
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // A value for the characteristic
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // A value for the characteristic
	ValueInteger         *int             `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                  // A value for the characteristic
	ValueDate            *string          `json:"valueDate,omitempty" bson:"value_date,omitempty"`                        // A value for the characteristic
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // A value for the characteristic
	ValueAttachment      *Attachment      `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`            // A value for the characteristic
}

func (*MedicinalProductDefinitionCharacteristic) Validate

type MedicinalProductDefinitionContact

type MedicinalProductDefinitionContact struct {
	Id      *string          `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Type    *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"` // Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information
	Contact *Reference       `json:"contact" bson:"contact"`               // A product specific contact, person (in a role), or an organization
}

func (*MedicinalProductDefinitionContact) Validate

type MedicinalProductDefinitionCrossReference

type MedicinalProductDefinitionCrossReference struct {
	Id      *string            `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Product *CodeableReference `json:"product" bson:"product"`               // Reference to another product, e.g. for linking authorised to investigational product
	Type    *CodeableConcept   `json:"type,omitempty" bson:"type,omitempty"` // The type of relationship, for instance branded to generic or virtual to actual product
}

func (*MedicinalProductDefinitionCrossReference) Validate

type MedicinalProductDefinitionName

type MedicinalProductDefinitionName struct {
	Id          *string                               `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	ProductName string                                `json:"productName" bson:"product_name"`        // The full product name
	Type        *CodeableConcept                      `json:"type,omitempty" bson:"type,omitempty"`   // Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary
	Part        []MedicinalProductDefinitionNamePart  `json:"part,omitempty" bson:"part,omitempty"`   // Coding words or phrases of the name
	Usage       []MedicinalProductDefinitionNameUsage `json:"usage,omitempty" bson:"usage,omitempty"` // Country and jurisdiction where the name applies
}

func (*MedicinalProductDefinitionName) Validate

func (r *MedicinalProductDefinitionName) Validate() error

type MedicinalProductDefinitionNamePart

type MedicinalProductDefinitionNamePart struct {
	Id   *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Part string           `json:"part" bson:"part"`                 // A fragment of a product name
	Type *CodeableConcept `json:"type" bson:"type"`                 // Identifying type for this part of the name (e.g. strength part)
}

func (*MedicinalProductDefinitionNamePart) Validate

type MedicinalProductDefinitionNameUsage

type MedicinalProductDefinitionNameUsage struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Country      *CodeableConcept `json:"country" bson:"country"`                               // Country code for where this name applies
	Jurisdiction *CodeableConcept `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"` // Jurisdiction code for where this name applies
	Language     *CodeableConcept `json:"language" bson:"language"`                             // Language code for this name
}

func (*MedicinalProductDefinitionNameUsage) Validate

type MedicinalProductDefinitionOperation

type MedicinalProductDefinitionOperation struct {
	Id                       *string            `json:"id,omitempty" bson:"id,omitempty"`                                              // Unique id for inter-element referencing
	Type                     *CodeableReference `json:"type,omitempty" bson:"type,omitempty"`                                          // The type of manufacturing operation e.g. manufacturing itself, re-packaging
	EffectiveDate            *Period            `json:"effectiveDate,omitempty" bson:"effective_date,omitempty"`                       // Date range of applicability
	Organization             []Reference        `json:"organization,omitempty" bson:"organization,omitempty"`                          // The organization responsible for the particular process, e.g. the manufacturer or importer
	ConfidentialityIndicator *CodeableConcept   `json:"confidentialityIndicator,omitempty" bson:"confidentiality_indicator,omitempty"` // Specifies whether this process is considered proprietary or confidential
}

func (*MedicinalProductDefinitionOperation) Validate

type MessageDefinition

type MessageDefinition struct {
	ResourceType           string                             `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                            `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                              `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                            `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                         `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage                  `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                            `json:"url,omitempty" bson:"url,omitempty"`                                         // The cannonical URL for a given MessageDefinition
	Identifier             []Identifier                       `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Business Identifier for a given MessageDefinition
	Version                *string                            `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the message definition
	VersionAlgorithmString *string                            `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                            `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                            `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this message definition (computer friendly)
	Title                  *string                            `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this message definition (human friendly)
	Replaces               []string                           `json:"replaces,omitempty" bson:"replaces,omitempty"`                               // Takes the place of
	Status                 string                             `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                              `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   string                             `json:"date" bson:"date"`                                                           // Date last changed
	Publisher              *string                            `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                    `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                            `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the message definition
	UseContext             []UsageContext                     `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept                  `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the message definition (if applicable)
	Purpose                *string                            `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this message definition is defined
	Copyright              *string                            `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                            `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Base                   *string                            `json:"base,omitempty" bson:"base,omitempty"`                                       // Definition this one is based on
	Parent                 []string                           `json:"parent,omitempty" bson:"parent,omitempty"`                                   // Protocol/workflow this is part of
	EventCoding            *Coding                            `json:"eventCoding" bson:"event_coding"`                                            // Event code  or link to the EventDefinition
	EventUri               *string                            `json:"eventUri" bson:"event_uri"`                                                  // Event code  or link to the EventDefinition
	Category               *string                            `json:"category,omitempty" bson:"category,omitempty"`                               // consequence | currency | notification
	Focus                  []MessageDefinitionFocus           `json:"focus,omitempty" bson:"focus,omitempty"`                                     // Resource(s) that are the subject of the event
	ResponseRequired       *string                            `json:"responseRequired,omitempty" bson:"response_required,omitempty"`              // always | on-error | never | on-success
	AllowedResponse        []MessageDefinitionAllowedResponse `json:"allowedResponse,omitempty" bson:"allowed_response,omitempty"`                // Responses to this message
}

Defines the characteristics of a message that can be shared between systems, including the type of event that initiates the message, the content to be transmitted and what response(s), if any, are permitted.

func (*MessageDefinition) Validate

func (r *MessageDefinition) Validate() error

type MessageDefinitionAllowedResponse

type MessageDefinitionAllowedResponse struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Message   string  `json:"message" bson:"message"`                         // Reference to allowed message definition response
	Situation *string `json:"situation,omitempty" bson:"situation,omitempty"` // When should this response be used
}

func (*MessageDefinitionAllowedResponse) Validate

type MessageDefinitionFocus

type MessageDefinitionFocus struct {
	Id      *string `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Code    string  `json:"code" bson:"code"`                           // Type of resource
	Profile *string `json:"profile,omitempty" bson:"profile,omitempty"` // Profile that must be adhered to by focus
	Min     int     `json:"min" bson:"min"`                             // Minimum number of focuses of this type
	Max     *string `json:"max,omitempty" bson:"max,omitempty"`         // Maximum number of focuses of this type
}

func (*MessageDefinitionFocus) Validate

func (r *MessageDefinitionFocus) Validate() error

type MessageHeader

type MessageHeader struct {
	ResourceType   string                     `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id             *string                    `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta           *Meta                      `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules  *string                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language       *string                    `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text           *Narrative                 `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained      []json.RawMessage          `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	EventCoding    *Coding                    `json:"eventCoding" bson:"event_coding"`                         // The real world event that triggered this messsage
	EventUri       *string                    `json:"eventUri" bson:"event_uri"`                               // The real world event that triggered this messsage
	EventCanonical *string                    `json:"eventCanonical" bson:"event_canonical"`                   // The real world event that triggered this messsage
	Destination    []MessageHeaderDestination `json:"destination,omitempty" bson:"destination,omitempty"`      // Message destination application(s)
	Source         *MessageHeaderSource       `json:"source" bson:"source"`                                    // Message source application
	Reason         *CodeableConcept           `json:"reason,omitempty" bson:"reason,omitempty"`                // Cause of event
	Response       *MessageHeaderResponse     `json:"response,omitempty" bson:"response,omitempty"`            // If this is a reply to prior message
	Focus          []Reference                `json:"focus,omitempty" bson:"focus,omitempty"`                  // The actual content of the message
	Definition     *string                    `json:"definition,omitempty" bson:"definition,omitempty"`        // Link to the definition for this message
}

The header for a message exchange that is either requesting or responding to an action. The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.

func (*MessageHeader) Validate

func (r *MessageHeader) Validate() error

type MessageHeaderDestination

type MessageHeaderDestination struct {
	Id                *string    `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	EndpointUrl       *string    `json:"endpointUrl,omitempty" bson:"endpoint_url,omitempty"`             // Actual destination address or Endpoint resource
	EndpointReference *Reference `json:"endpointReference,omitempty" bson:"endpoint_reference,omitempty"` // Actual destination address or Endpoint resource
	Name              *string    `json:"name,omitempty" bson:"name,omitempty"`                            // Name of system
	Receiver          *Reference `json:"receiver,omitempty" bson:"receiver,omitempty"`                    // Intended "real-world" recipient for the data
}

func (*MessageHeaderDestination) Validate

func (r *MessageHeaderDestination) Validate() error

type MessageHeaderResponse

type MessageHeaderResponse struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Identifier *Identifier `json:"identifier" bson:"identifier"`               // Bundle.identifier of original message
	Code       string      `json:"code" bson:"code"`                           // ok | transient-error | fatal-error
	Details    *Reference  `json:"details,omitempty" bson:"details,omitempty"` // Specific list of hints/warnings/errors
}

func (*MessageHeaderResponse) Validate

func (r *MessageHeaderResponse) Validate() error

type MessageHeaderSource

type MessageHeaderSource struct {
	Id                *string       `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	EndpointUrl       *string       `json:"endpointUrl,omitempty" bson:"endpoint_url,omitempty"`             // Actual source address or Endpoint resource
	EndpointReference *Reference    `json:"endpointReference,omitempty" bson:"endpoint_reference,omitempty"` // Actual source address or Endpoint resource
	Name              *string       `json:"name,omitempty" bson:"name,omitempty"`                            // Name of system
	Software          *string       `json:"software,omitempty" bson:"software,omitempty"`                    // Name of software running the system
	Version           *string       `json:"version,omitempty" bson:"version,omitempty"`                      // Version of software running
	Contact           *ContactPoint `json:"contact,omitempty" bson:"contact,omitempty"`                      // Human contact for problems
	Sender            *Reference    `json:"sender,omitempty" bson:"sender,omitempty"`                        // Real world sender of the message
}

func (*MessageHeaderSource) Validate

func (r *MessageHeaderSource) Validate() error

type MessageSignificanceCategory added in v0.0.3

type MessageSignificanceCategory string

MessageSignificanceCategory represents codes from http://hl7.org/fhir/ValueSet/message-significance-category

const (
	MessageSignificanceCategoryConsequence  MessageSignificanceCategory = "consequence"
	MessageSignificanceCategoryCurrency     MessageSignificanceCategory = "currency"
	MessageSignificanceCategoryNotification MessageSignificanceCategory = "notification"
)

type MessageheaderResponseRequest added in v0.0.3

type MessageheaderResponseRequest string

MessageheaderResponseRequest represents codes from http://hl7.org/fhir/ValueSet/messageheader-response-request

const (
	MessageheaderResponseRequestAlways    MessageheaderResponseRequest = "always"
	MessageheaderResponseRequestOnError   MessageheaderResponseRequest = "on-error"
	MessageheaderResponseRequestNever     MessageheaderResponseRequest = "never"
	MessageheaderResponseRequestOnSuccess MessageheaderResponseRequest = "on-success"
)

type Meta

type Meta struct {
	Id          *string  `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	VersionId   *string  `json:"versionId,omitempty" bson:"version_id,omitempty"`     // Version specific identifier
	LastUpdated *string  `json:"lastUpdated,omitempty" bson:"last_updated,omitempty"` // When the resource version last changed
	Source      *string  `json:"source,omitempty" bson:"source,omitempty"`            // Identifies where the resource comes from
	Profile     []string `json:"profile,omitempty" bson:"profile,omitempty"`          // Profiles this resource claims to conform to
	Security    []Coding `json:"security,omitempty" bson:"security,omitempty"`        // Security Labels applied to this resource
	Tag         []Coding `json:"tag,omitempty" bson:"tag,omitempty"`                  // Tags applied to this resource
}

Meta Type: The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

func (*Meta) Validate

func (r *Meta) Validate() error

type MetadataResource

type MetadataResource struct {
	ResourceType           string            `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string           `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string           `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string           `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this {{title}}, represented as an absolute URI (globally unique)
	Identifier             []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the {{title}}
	Version                *string           `json:"version,omitempty" bson:"version,omitempty"`                                 // Canonical version of the {{title}}
	VersionAlgorithmString *string           `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding           `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string           `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this {{title}} (computer friendly)
	Title                  *string           `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this {{title}} (human friendly)
	Status                 string            `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool             `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string           `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string           `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail   `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string           `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the {{title}}
	UseContext             []UsageContext    `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the {{title}} (if applicable)
	Purpose                *string           `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this {{title}} is defined
	Copyright              *string           `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string           `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Usage                  *string           `json:"usage,omitempty" bson:"usage,omitempty"`                                     // Describes the clinical usage of the {{title}}
	ApprovalDate           *string           `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the {{title}} was approved by publisher
	LastReviewDate         *string           `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the {{title}} was last reviewed by the publisher
	EffectivePeriod        *Period           `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the {{title}} is expected to be used
	Topic                  []CodeableConcept `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail   `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the {{title}}
	Editor                 []ContactDetail   `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the {{title}}
	Reviewer               []ContactDetail   `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the {{title}}
	Endorser               []ContactDetail   `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the {{title}}
	RelatedArtifact        []RelatedArtifact `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
}

Common Interface declaration for conformance and knowledge artifact resources.

func (*MetadataResource) Validate

func (r *MetadataResource) Validate() error

type MonetaryComponent

type MonetaryComponent struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Type   string           `json:"type" bson:"type"`                         // base | surcharge | discount | tax | informational
	Code   *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`     // Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
	Factor *float64         `json:"factor,omitempty" bson:"factor,omitempty"` // Factor used for calculating this component
	Amount *Money           `json:"amount,omitempty" bson:"amount,omitempty"` // Explicit value amount to be used
}

MonetaryComponent Type: Financial line items use this datatype to commonly categorize the value, and other factors that may effect how the value should be interpreted.

func (*MonetaryComponent) Validate

func (r *MonetaryComponent) Validate() error

type Money

type Money struct {
	Id       *string  `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Value    *float64 `json:"value,omitempty" bson:"value,omitempty"`       // Numerical value (with implicit precision)
	Currency *string  `json:"currency,omitempty" bson:"currency,omitempty"` // ISO 4217 Currency Code
}

Money Type: An amount of economic utility in some recognized currency.

func (*Money) Validate

func (r *Money) Validate() error

type MoneyQuantity

type MoneyQuantity struct {
	Quantity []Quantity `json:"Quantity,omitempty" bson:"quantity,omitempty"` // An amount of money. With regard to precision, see [Decimal Precision](datatypes.html#precision)
}

An amount of money. With regard to precision, see [Decimal Precision](datatypes.html#precision)

func (*MoneyQuantity) Validate

func (r *MoneyQuantity) Validate() error

type NameUse added in v0.0.3

type NameUse string

NameUse represents codes from http://hl7.org/fhir/ValueSet/name-use

const (
	NameUseUsual     NameUse = "usual"
	NameUseOfficial  NameUse = "official"
	NameUseTemp      NameUse = "temp"
	NameUseNickname  NameUse = "nickname"
	NameUseAnonymous NameUse = "anonymous"
	NameUseOld       NameUse = "old"
	NameUseMaiden    NameUse = "maiden"
)

type NamingSystem

type NamingSystem struct {
	ResourceType           string                 `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                  `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative             `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage      `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this naming system, represented as a URI (globally unique)
	Identifier             []Identifier           `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the naming system (business identifier)
	Version                *string                `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the naming system
	VersionAlgorithmString *string                `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                 `json:"name" bson:"name"`                                                           // Name for this naming system (computer friendly)
	Title                  *string                `json:"title,omitempty" bson:"title,omitempty"`                                     // Title for this naming system (human friendly)
	Status                 string                 `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Kind                   string                 `json:"kind" bson:"kind"`                                                           // codesystem | identifier | root
	Experimental           *bool                  `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   string                 `json:"date" bson:"date"`                                                           // Date last changed
	Publisher              *string                `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail        `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Responsible            *string                `json:"responsible,omitempty" bson:"responsible,omitempty"`                         // Who maintains system namespace?
	Type                   *CodeableConcept       `json:"type,omitempty" bson:"type,omitempty"`                                       // e.g. driver,  provider,  patient, bank etc
	Description            *string                `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the naming system
	UseContext             []UsageContext         `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept      `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the naming system (if applicable)
	Purpose                *string                `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this naming system is defined
	Copyright              *string                `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string                `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the NamingSystem was approved by publisher
	LastReviewDate         *string                `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the NamingSystem was last reviewed by the publisher
	EffectivePeriod        *Period                `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the NamingSystem is expected to be used
	Topic                  []CodeableConcept      `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail        `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the CodeSystem
	Editor                 []ContactDetail        `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the NamingSystem
	Reviewer               []ContactDetail        `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the NamingSystem
	Endorser               []ContactDetail        `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the NamingSystem
	RelatedArtifact        []RelatedArtifact      `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
	Usage                  *string                `json:"usage,omitempty" bson:"usage,omitempty"`                                     // How/where is it used
	UniqueId               []NamingSystemUniqueId `json:"uniqueId" bson:"unique_id"`                                                  // Unique identifiers used for system
}

A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc. Represents a "System" used within the Identifier and Coding data types.

func (*NamingSystem) Validate

func (r *NamingSystem) Validate() error

type NamingSystemIdentifierType added in v0.0.3

type NamingSystemIdentifierType string

NamingSystemIdentifierType represents codes from http://hl7.org/fhir/ValueSet/namingsystem-identifier-type

const (
	NamingSystemIdentifierTypeOid          NamingSystemIdentifierType = "oid"
	NamingSystemIdentifierTypeUuid         NamingSystemIdentifierType = "uuid"
	NamingSystemIdentifierTypeUri          NamingSystemIdentifierType = "uri"
	NamingSystemIdentifierTypeIriStem      NamingSystemIdentifierType = "iri-stem"
	NamingSystemIdentifierTypeV2csmnemonic NamingSystemIdentifierType = "v2csmnemonic"
	NamingSystemIdentifierTypeOther        NamingSystemIdentifierType = "other"
)

type NamingSystemType added in v0.0.3

type NamingSystemType string

NamingSystemType represents codes from http://hl7.org/fhir/ValueSet/namingsystem-type

const (
	NamingSystemTypeCodesystem NamingSystemType = "codesystem"
	NamingSystemTypeIdentifier NamingSystemType = "identifier"
	NamingSystemTypeRoot       NamingSystemType = "root"
)

type NamingSystemUniqueId

type NamingSystemUniqueId struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Type          string  `json:"type" bson:"type"`                                       // oid | uuid | uri | iri-stem | v2csmnemonic | other
	Value         string  `json:"value" bson:"value"`                                     // The unique identifier
	Preferred     *bool   `json:"preferred,omitempty" bson:"preferred,omitempty"`         // Is this the id that should be used for this type
	Comment       *string `json:"comment,omitempty" bson:"comment,omitempty"`             // Notes about identifier usage
	Period        *Period `json:"period,omitempty" bson:"period,omitempty"`               // When is identifier valid?
	Authoritative *bool   `json:"authoritative,omitempty" bson:"authoritative,omitempty"` // Whether the identifier is authoritative
}

func (*NamingSystemUniqueId) Validate

func (r *NamingSystemUniqueId) Validate() error

type Narrative

type Narrative struct {
	Id     *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Status string  `json:"status" bson:"status"`             // generated | extensions | additional | empty
	Div    string  `json:"div" bson:"div"`                   // Limited xhtml content
}

Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.

func (*Narrative) Validate

func (r *Narrative) Validate() error

type NarrativeStatus added in v0.0.3

type NarrativeStatus string

NarrativeStatus represents codes from http://hl7.org/fhir/ValueSet/narrative-status

const (
	NarrativeStatusGenerated  NarrativeStatus = "generated"
	NarrativeStatusExtensions NarrativeStatus = "extensions"
	NarrativeStatusAdditional NarrativeStatus = "additional"
	NarrativeStatusEmpty      NarrativeStatus = "empty"
)

type NoteType added in v0.0.3

type NoteType string

NoteType represents codes from http://hl7.org/fhir/ValueSet/note-type

const (
	NoteTypeDisplay   NoteType = "display"
	NoteTypePrint     NoteType = "print"
	NoteTypePrintoper NoteType = "printoper"
)

type NutritionIntake

type NutritionIntake struct {
	ResourceType       string                         `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                        `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                        `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier         []Identifier                   `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // External identifier
	BasedOn            []Reference                    `json:"basedOn,omitempty" bson:"based_on,omitempty"`                        // Fulfils plan, proposal or order
	PartOf             []Reference                    `json:"partOf,omitempty" bson:"part_of,omitempty"`                          // Part of referenced event
	Status             string                         `json:"status" bson:"status"`                                               // preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
	StatusReason       []CodeableConcept              `json:"statusReason,omitempty" bson:"status_reason,omitempty"`              // Reason for current status
	Code               *CodeableConcept               `json:"code,omitempty" bson:"code,omitempty"`                               // Code representing an overall type of nutrition intake
	Subject            *Reference                     `json:"subject" bson:"subject"`                                             // Who is/was consuming the food (i.e. solid and/or liquid)
	Encounter          *Reference                     `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Encounter associated with NutritionIntake
	OccurrenceDateTime *string                        `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // The date/time or interval when the food (i.e. solid and/or liquid) is/was consumed
	OccurrencePeriod   *Period                        `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // The date/time or interval when the food (i.e. solid and/or liquid) is/was consumed
	Recorded           *string                        `json:"recorded,omitempty" bson:"recorded,omitempty"`                       // When the intake was recorded
	ReportedBoolean    *bool                          `json:"reportedBoolean,omitempty" bson:"reported_boolean,omitempty"`        // Indicates if this is a reported rather than a primary record.  Can also indicate the source that provided the information about the consumption
	ReportedReference  *Reference                     `json:"reportedReference,omitempty" bson:"reported_reference,omitempty"`    // Indicates if this is a reported rather than a primary record.  Can also indicate the source that provided the information about the consumption
	NutritionItem      []NutritionIntakeNutritionItem `json:"nutritionItem,omitempty" bson:"nutrition_item,omitempty"`            // The nutrition product intended for consumption and/or administration
	Performer          []NutritionIntakePerformer     `json:"performer,omitempty" bson:"performer,omitempty"`                     // Who or what performed the intake and how they were involved
	Location           *Reference                     `json:"location,omitempty" bson:"location,omitempty"`                       // Where the intake occurred
	DerivedFrom        []Reference                    `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                // Additional supporting information
	Reason             []CodeableReference            `json:"reason,omitempty" bson:"reason,omitempty"`                           // Reason for why the food (i.e. solid and/or liquid) is /was consumed
	Note               []Annotation                   `json:"note,omitempty" bson:"note,omitempty"`                               // Further information about the consumption
}

A record of intake by a patient. A NutritionIntake may indicate that the patient may be consuming the food (i.e., solid and/or liquid), breastmilk, infant formula, supplements, enteral formula now or has consumed it in the past. The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician. A common scenario where this information is captured is during the history taking process during a patient visit or stay or through an app that tracks food (i.e., solid and/or liquid), breastmilk, infant formula, supplements, enteral formula consumed. The consumption information may come from sources such as the patient's memory, from a nutrition label, or from a clinician documenting observed intake.

func (*NutritionIntake) Validate

func (r *NutritionIntake) Validate() error

type NutritionIntakeNutritionItem

type NutritionIntakeNutritionItem struct {
	Id               *string                                       `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Type             *CodeableConcept                              `json:"type,omitempty" bson:"type,omitempty"`                          // The type of food (i.e. solid or liquid) product
	NutritionProduct *CodeableReference                            `json:"nutritionProduct,omitempty" bson:"nutrition_product,omitempty"` // A product used for nutritional purposes (e.g. food or supplement)
	ConsumedItem     []NutritionIntakeNutritionItemConsumedItem    `json:"consumedItem,omitempty" bson:"consumed_item,omitempty"`         // What nutrition item was consumed
	NotConsumedItem  []NutritionIntakeNutritionItemNotConsumedItem `json:"notConsumedItem,omitempty" bson:"not_consumed_item,omitempty"`  // What nutrition item was not consumed
}

func (*NutritionIntakeNutritionItem) Validate

func (r *NutritionIntakeNutritionItem) Validate() error

type NutritionIntakeNutritionItemConsumedItem

type NutritionIntakeNutritionItemConsumedItem struct {
	Id           *string                                               `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Schedule     *Timing                                               `json:"schedule,omitempty" bson:"schedule,omitempty"`          // Scheduled frequency of consumption
	Amount       *Quantity                                             `json:"amount,omitempty" bson:"amount,omitempty"`              // Quantity of the specified food (i.e. solid and/or liquid)
	RateQuantity *Quantity                                             `json:"rateQuantity,omitempty" bson:"rate_quantity,omitempty"` // Rate of enteral feeding administration
	RateRatio    *Ratio                                                `json:"rateRatio,omitempty" bson:"rate_ratio,omitempty"`       // Rate of enteral feeding administration
	TotalIntake  []NutritionIntakeNutritionItemConsumedItemTotalIntake `json:"totalIntake,omitempty" bson:"total_intake,omitempty"`   // Nutrients and/or energy contained in the intake
}

func (*NutritionIntakeNutritionItemConsumedItem) Validate

type NutritionIntakeNutritionItemConsumedItemTotalIntake

type NutritionIntakeNutritionItemConsumedItemTotalIntake struct {
	Id       *string            `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Nutrient *CodeableReference `json:"nutrient" bson:"nutrient"`                 // Type of nutrient consumed in the intake
	Amount   *Quantity          `json:"amount" bson:"amount"`                     // Total amount of nutrient consumed
	Energy   *Quantity          `json:"energy,omitempty" bson:"energy,omitempty"` // Total energy consumed in kilocalories or kilojoules
}

func (*NutritionIntakeNutritionItemConsumedItemTotalIntake) Validate

type NutritionIntakeNutritionItemNotConsumedItem

type NutritionIntakeNutritionItemNotConsumedItem struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Reason   *CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`     // Reason the nutrition item was not consumed
	Schedule *Timing          `json:"schedule,omitempty" bson:"schedule,omitempty"` // The intended frequency of consumption that was not followed
	Amount   *Quantity        `json:"amount,omitempty" bson:"amount,omitempty"`     // Quantity of the specified food (i.e. solid and/or liquid) that was not consumed
}

func (*NutritionIntakeNutritionItemNotConsumedItem) Validate

type NutritionIntakePerformer

type NutritionIntakePerformer struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Type of performer
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Who or what performed the intake
}

func (*NutritionIntakePerformer) Validate

func (r *NutritionIntakePerformer) Validate() error

type NutritionOrder

type NutritionOrder struct {
	ResourceType           string                        `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                       `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                         `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                       `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                       `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                    `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage             `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Identifier             []Identifier                  `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Identifiers assigned to this order
	BasedOn                []Reference                   `json:"basedOn,omitempty" bson:"based_on,omitempty"`                                // What this order fulfills
	GroupIdentifier        *Identifier                   `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"`                // Composite Request ID
	Status                 string                        `json:"status" bson:"status"`                                                       // draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
	Intent                 string                        `json:"intent" bson:"intent"`                                                       // proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
	Priority               *string                       `json:"priority,omitempty" bson:"priority,omitempty"`                               // routine | urgent | asap | stat
	Subject                *Reference                    `json:"subject" bson:"subject"`                                                     // Who requires the diet, formula or nutritional supplement
	Encounter              *Reference                    `json:"encounter,omitempty" bson:"encounter,omitempty"`                             // The encounter associated with this nutrition order
	SupportingInformation  []Reference                   `json:"supportingInformation,omitempty" bson:"supporting_information,omitempty"`    // Information to support fulfilling of the nutrition order
	DateTime               string                        `json:"dateTime" bson:"date_time"`                                                  // Date and time the nutrition order was requested
	Requester              *Reference                    `json:"requester,omitempty" bson:"requester,omitempty"`                             // Who ordered the diet, formula or nutritional supplement
	Performer              []CodeableReference           `json:"performer,omitempty" bson:"performer,omitempty"`                             // Who is intended to perform the administration of the nutrition order
	AllergyIntolerance     []Reference                   `json:"allergyIntolerance,omitempty" bson:"allergy_intolerance,omitempty"`          // List of the patient's food and nutrition-related allergies and intolerances
	FoodPreferenceModifier []CodeableConcept             `json:"foodPreferenceModifier,omitempty" bson:"food_preference_modifier,omitempty"` // Order-specific modifier about the type of food that should be given
	ExcludeFoodModifier    []CodeableConcept             `json:"excludeFoodModifier,omitempty" bson:"exclude_food_modifier,omitempty"`       // Food that should not be given
	OutsideFoodAllowed     *bool                         `json:"outsideFoodAllowed,omitempty" bson:"outside_food_allowed,omitempty"`         // Capture if patient is permitted to consume food from outside of current setting brought by the patient, family, and/or caregiver
	OralDiet               *NutritionOrderOralDiet       `json:"oralDiet,omitempty" bson:"oral_diet,omitempty"`                              // Oral diet components
	Supplement             []NutritionOrderSupplement    `json:"supplement,omitempty" bson:"supplement,omitempty"`                           // Supplement components
	EnteralFormula         *NutritionOrderEnteralFormula `json:"enteralFormula,omitempty" bson:"enteral_formula,omitempty"`                  // Enteral formula product
	Additive               []NutritionOrderAdditive      `json:"additive,omitempty" bson:"additive,omitempty"`                               // Modular additive to add to the oral diet, supplement, and/or enteral feeding
	Note                   []Annotation                  `json:"note,omitempty" bson:"note,omitempty"`                                       // Comments
}

A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to an individual or group.

func (*NutritionOrder) Validate

func (r *NutritionOrder) Validate() error

type NutritionOrderAdditive

type NutritionOrderAdditive struct {
	Id                    *string            `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	ModularType           *CodeableReference `json:"modularType,omitempty" bson:"modular_type,omitempty"`                      // Type of modular component to add to the oral diet, supplement, and/or enteral feeding
	ProductName           *string            `json:"productName,omitempty" bson:"product_name,omitempty"`                      // Product or brand name of the modular additive
	Quantity              *Quantity          `json:"quantity,omitempty" bson:"quantity,omitempty"`                             // Amount of additive to be given or mixed in with the oral diet, supplement, and/or enteral feeding
	RouteOfAdministration []CodeableConcept  `json:"routeOfAdministration,omitempty" bson:"route_of_administration,omitempty"` // How the additive should enter the patient's gastrointestinal tract
}

func (*NutritionOrderAdditive) Validate

func (r *NutritionOrderAdditive) Validate() error

type NutritionOrderEnteralFormula

type NutritionOrderEnteralFormula struct {
	Id                            *string                                      `json:"id,omitempty" bson:"id,omitempty"`                                                          // Unique id for inter-element referencing
	Type                          *CodeableReference                           `json:"type,omitempty" bson:"type,omitempty"`                                                      // Type of patient enteral feeding
	ProductName                   *string                                      `json:"productName,omitempty" bson:"product_name,omitempty"`                                       // Product or brand name of the enteral feeding
	DeliveryDeviceCodeableConcept *CodeableConcept                             `json:"deliveryDeviceCodeableConcept,omitempty" bson:"delivery_device_codeable_concept,omitempty"` // Intended type of device for the enteral feeding administration
	DeliveryDeviceCanonical       *string                                      `json:"deliveryDeviceCanonical,omitempty" bson:"delivery_device_canonical,omitempty"`              // Intended type of device for the enteral feeding administration
	CaloricDensity                *Quantity                                    `json:"caloricDensity,omitempty" bson:"caloric_density,omitempty"`                                 // Amount of energy per specified volume of feeding that is required
	RouteOfAdministration         []CodeableConcept                            `json:"routeOfAdministration,omitempty" bson:"route_of_administration,omitempty"`                  // How the enteral feeding should enter the patient's gastrointestinal tract
	Administration                []NutritionOrderEnteralFormulaAdministration `json:"administration,omitempty" bson:"administration,omitempty"`                                  // Formula feeding instruction as structured data
	MaxVolumeToAdminister         *Quantity                                    `json:"maxVolumeToAdminister,omitempty" bson:"max_volume_to_administer,omitempty"`                 // Upper limit on formula feeding volume per unit of time
	AdministrationInstruction     *string                                      `json:"administrationInstruction,omitempty" bson:"administration_instruction,omitempty"`           // Formula feeding instructions expressed as text
}

func (*NutritionOrderEnteralFormula) Validate

func (r *NutritionOrderEnteralFormula) Validate() error

type NutritionOrderEnteralFormulaAdministration

type NutritionOrderEnteralFormulaAdministration struct {
	Id           *string                                             `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Schedule     *NutritionOrderEnteralFormulaAdministrationSchedule `json:"schedule,omitempty" bson:"schedule,omitempty"`          // Scheduling information for enteral feeding products
	Quantity     *Quantity                                           `json:"quantity,omitempty" bson:"quantity,omitempty"`          // The volume of formula feeding to provide
	RateQuantity *Quantity                                           `json:"rateQuantity,omitempty" bson:"rate_quantity,omitempty"` // Speed with which the formula feeding is provided per period of time
	RateRatio    *Ratio                                              `json:"rateRatio,omitempty" bson:"rate_ratio,omitempty"`       // Speed with which the formula feeding is provided per period of time
}

func (*NutritionOrderEnteralFormulaAdministration) Validate

type NutritionOrderEnteralFormulaAdministrationSchedule

type NutritionOrderEnteralFormulaAdministrationSchedule struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Timing      []Timing         `json:"timing,omitempty" bson:"timing,omitempty"`             // Scheduled frequency of enteral feeding
	AsNeeded    *bool            `json:"asNeeded,omitempty" bson:"as_needed,omitempty"`        // Take 'as needed'
	AsNeededFor *CodeableConcept `json:"asNeededFor,omitempty" bson:"as_needed_for,omitempty"` // Take 'as needed' for x
}

func (*NutritionOrderEnteralFormulaAdministrationSchedule) Validate

type NutritionOrderOralDiet

type NutritionOrderOralDiet struct {
	Id             *string                          `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Type           []CodeableConcept                `json:"type,omitempty" bson:"type,omitempty"`                      // Type of oral diet or diet restrictions that can be consumed orally
	Schedule       *NutritionOrderOralDietSchedule  `json:"schedule,omitempty" bson:"schedule,omitempty"`              // Scheduling information for oral diets
	Nutrient       []NutritionOrderOralDietNutrient `json:"nutrient,omitempty" bson:"nutrient,omitempty"`              // The nutrient that is modified and the quantity in the diet
	Texture        []NutritionOrderOralDietTexture  `json:"texture,omitempty" bson:"texture,omitempty"`                // Texture modifications in addition to the oral diet type
	Instruction    *string                          `json:"instruction,omitempty" bson:"instruction,omitempty"`        // Instructions or additional information about the oral diet
	CaloricDensity *Quantity                        `json:"caloricDensity,omitempty" bson:"caloric_density,omitempty"` // Amount of energy per specified volume of oral diet
}

func (*NutritionOrderOralDiet) Validate

func (r *NutritionOrderOralDiet) Validate() error

type NutritionOrderOralDietNutrient

type NutritionOrderOralDietNutrient struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Modifier *CodeableConcept `json:"modifier,omitempty" bson:"modifier,omitempty"` // Nutrient modified in the oral diet type
	Amount   *Quantity        `json:"amount,omitempty" bson:"amount,omitempty"`     // Quantity of the specified nutrient
}

func (*NutritionOrderOralDietNutrient) Validate

func (r *NutritionOrderOralDietNutrient) Validate() error

type NutritionOrderOralDietSchedule

type NutritionOrderOralDietSchedule struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Timing      []Timing         `json:"timing,omitempty" bson:"timing,omitempty"`             // Scheduled frequency of diet
	AsNeeded    *bool            `json:"asNeeded,omitempty" bson:"as_needed,omitempty"`        // Take 'as needed'
	AsNeededFor *CodeableConcept `json:"asNeededFor,omitempty" bson:"as_needed_for,omitempty"` // Take 'as needed' for x
}

func (*NutritionOrderOralDietSchedule) Validate

func (r *NutritionOrderOralDietSchedule) Validate() error

type NutritionOrderOralDietTexture

type NutritionOrderOralDietTexture struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Modifier *CodeableConcept `json:"modifier,omitempty" bson:"modifier,omitempty"` // Food (i.e. solid and/or liquid) texture modifications in addition to those in the oral diet type
	Type     *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`         // Food (i.e. solid and/or liquid) types that undergo texture alteration
}

func (*NutritionOrderOralDietTexture) Validate

func (r *NutritionOrderOralDietTexture) Validate() error

type NutritionOrderSupplement

type NutritionOrderSupplement struct {
	Id             *string                           `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Type           *CodeableReference                `json:"type,omitempty" bson:"type,omitempty"`                      // Type of supplement product requested
	ProductName    *string                           `json:"productName,omitempty" bson:"product_name,omitempty"`       // Product or brand name of the nutritional supplement
	Schedule       *NutritionOrderSupplementSchedule `json:"schedule,omitempty" bson:"schedule,omitempty"`              // Scheduling information for supplements
	Quantity       *Quantity                         `json:"quantity,omitempty" bson:"quantity,omitempty"`              // Amount of the nutritional supplement
	Instruction    *string                           `json:"instruction,omitempty" bson:"instruction,omitempty"`        // Instructions or additional information about the oral supplement
	CaloricDensity *Quantity                         `json:"caloricDensity,omitempty" bson:"caloric_density,omitempty"` // Amount of energy per specified volume of supplement that is required
}

func (*NutritionOrderSupplement) Validate

func (r *NutritionOrderSupplement) Validate() error

type NutritionOrderSupplementSchedule

type NutritionOrderSupplementSchedule struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Timing      []Timing         `json:"timing,omitempty" bson:"timing,omitempty"`             // Scheduled frequency of supplement
	AsNeeded    *bool            `json:"asNeeded,omitempty" bson:"as_needed,omitempty"`        // Take 'as needed'
	AsNeededFor *CodeableConcept `json:"asNeededFor,omitempty" bson:"as_needed_for,omitempty"` // Take 'as needed' for x
}

func (*NutritionOrderSupplementSchedule) Validate

type NutritionProduct

type NutritionProduct struct {
	ResourceType      string                           `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string                          `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta                            `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string                          `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string                          `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative                       `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage                `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Code              *CodeableConcept                 `json:"code,omitempty" bson:"code,omitempty"`                            // A code that can identify the product
	Status            string                           `json:"status" bson:"status"`                                            // active | inactive | entered-in-error
	Category          []CodeableConcept                `json:"category,omitempty" bson:"category,omitempty"`                    // Broad product groups, like Fruit, Grain, Beverages, or Vegetables Products
	Manufacturer      []Reference                      `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`            // Manufacturer, representative or person officially responsible for the product
	Nutrient          []NutritionProductNutrient       `json:"nutrient,omitempty" bson:"nutrient,omitempty"`                    // The product's nutritional information expressed by the nutrients
	IngredientSummary *string                          `json:"ingredientSummary,omitempty" bson:"ingredient_summary,omitempty"` // Textual description of product ingredients
	Ingredient        []NutritionProductIngredient     `json:"ingredient,omitempty" bson:"ingredient,omitempty"`                // Ingredients contained in this product
	Energy            *Quantity                        `json:"energy,omitempty" bson:"energy,omitempty"`                        // The amount of energy present in the product expressed in kilocalories or kilojoules
	Characteristic    []NutritionProductCharacteristic `json:"characteristic,omitempty" bson:"characteristic,omitempty"`        // Specifies descriptive properties of the nutrition product
	Instance          []NutritionProductInstance       `json:"instance,omitempty" bson:"instance,omitempty"`                    // One or several physical instances or occurrences of the nutrition product
	Note              []Annotation                     `json:"note,omitempty" bson:"note,omitempty"`                            // Comments made about the product
}

A food or supplement that is consumed by patients.

func (*NutritionProduct) Validate

func (r *NutritionProduct) Validate() error

type NutritionProductCharacteristic

type NutritionProductCharacteristic struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                   // Code specifying the type of characteristic
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // The value of the characteristic
	ValueString          *string          `json:"valueString" bson:"value_string"`                    // The value of the characteristic
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // The value of the characteristic
	ValueBase64Binary    *string          `json:"valueBase64Binary" bson:"value_base64_binary"`       // The value of the characteristic
	ValueAttachment      *Attachment      `json:"valueAttachment" bson:"value_attachment"`            // The value of the characteristic
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // The value of the characteristic
}

func (*NutritionProductCharacteristic) Validate

func (r *NutritionProductCharacteristic) Validate() error

type NutritionProductIngredient

type NutritionProductIngredient struct {
	Id             *string            `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Item           *CodeableReference `json:"item" bson:"item"`                                          // The ingredient contained in the product
	AmountRatio    *Ratio             `json:"amountRatio,omitempty" bson:"amount_ratio,omitempty"`       // The amount of ingredient that is in the product
	AmountQuantity *Quantity          `json:"amountQuantity,omitempty" bson:"amount_quantity,omitempty"` // The amount of ingredient that is in the product
	Allergen       *bool              `json:"allergen,omitempty" bson:"allergen,omitempty"`              // A known or suspected allergenic and/or substance that is associated with an intolerance
}

func (*NutritionProductIngredient) Validate

func (r *NutritionProductIngredient) Validate() error

type NutritionProductInstance

type NutritionProductInstance struct {
	Id                    *string      `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	Quantity              *Quantity    `json:"quantity,omitempty" bson:"quantity,omitempty"`                             // The amount of items or instances
	Identifier            []Identifier `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // The identifier for the physical instance, typically a serial number or manufacturer number
	Name                  *string      `json:"name,omitempty" bson:"name,omitempty"`                                     // The name or brand for the specific product
	LotNumber             *string      `json:"lotNumber,omitempty" bson:"lot_number,omitempty"`                          // The identification of the batch or lot of the product
	Expiry                *string      `json:"expiry,omitempty" bson:"expiry,omitempty"`                                 // The expiry date or date and time for the product
	UseBy                 *string      `json:"useBy,omitempty" bson:"use_by,omitempty"`                                  // The date until which the product is expected to be good for consumption
	BiologicalSourceEvent *Identifier  `json:"biologicalSourceEvent,omitempty" bson:"biological_source_event,omitempty"` // An identifier of the donation, collection, or pooling event from which biological material in this nutrition product was derived
}

func (*NutritionProductInstance) Validate

func (r *NutritionProductInstance) Validate() error

type NutritionProductNutrient

type NutritionProductNutrient struct {
	Id             *string            `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Item           *CodeableReference `json:"item" bson:"item"`                                          // The (relevant) nutrients in the product
	AmountRatio    *Ratio             `json:"amountRatio,omitempty" bson:"amount_ratio,omitempty"`       // The amount of nutrient present in the product
	AmountQuantity *Quantity          `json:"amountQuantity,omitempty" bson:"amount_quantity,omitempty"` // The amount of nutrient present in the product
}

func (*NutritionProductNutrient) Validate

func (r *NutritionProductNutrient) Validate() error

type NutritionProductStatus added in v0.0.3

type NutritionProductStatus string

NutritionProductStatus represents codes from http://hl7.org/fhir/ValueSet/nutritionproduct-status

const (
	NutritionProductStatusActive         NutritionProductStatus = "active"
	NutritionProductStatusInactive       NutritionProductStatus = "inactive"
	NutritionProductStatusEnteredInError NutritionProductStatus = "entered-in-error"
)

type Observation

type Observation struct {
	ResourceType          string                      `json:"resourceType" bson:"resource_type"`                                       // Type of resource
	Id                    *string                     `json:"id,omitempty" bson:"id,omitempty"`                                        // Logical id of this artifact
	Meta                  *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                                    // Metadata about the resource
	ImplicitRules         *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                 // A set of rules under which this content was created
	Language              *string                     `json:"language,omitempty" bson:"language,omitempty"`                            // Language of the resource content
	Text                  *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                                    // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`                          // Contained, inline Resources
	Identifier            []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`                        // Business Identifier for observation
	BasedOn               []Reference                 `json:"basedOn,omitempty" bson:"based_on,omitempty"`                             // Fulfills plan, proposal or order
	TriggeredBy           []ObservationTriggeredBy    `json:"triggeredBy,omitempty" bson:"triggered_by,omitempty"`                     // Triggering observation(s)
	PartOf                []Reference                 `json:"partOf,omitempty" bson:"part_of,omitempty"`                               // Part of referenced event
	Status                string                      `json:"status" bson:"status"`                                                    // registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
	Category              []CodeableConcept           `json:"category,omitempty" bson:"category,omitempty"`                            // Classification of  type of observation
	Code                  *CodeableConcept            `json:"code" bson:"code"`                                                        // Type of observation (code / type)
	Subject               *Reference                  `json:"subject,omitempty" bson:"subject,omitempty"`                              // Who and/or what the observation is about
	Focus                 []Reference                 `json:"focus,omitempty" bson:"focus,omitempty"`                                  // What the observation is about, when it is not about the subject of record
	Organizer             *bool                       `json:"organizer,omitempty" bson:"organizer,omitempty"`                          // This observation organizes/groups a set of sub-observations
	Encounter             *Reference                  `json:"encounter,omitempty" bson:"encounter,omitempty"`                          // Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension
	EffectiveDateTime     *string                     `json:"effectiveDateTime,omitempty" bson:"effective_date_time,omitempty"`        // Clinically relevant time/time-period for observation
	EffectivePeriod       *Period                     `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`             // Clinically relevant time/time-period for observation
	EffectiveTiming       *Timing                     `json:"effectiveTiming,omitempty" bson:"effective_timing,omitempty"`             // Clinically relevant time/time-period for observation
	EffectiveInstant      *string                     `json:"effectiveInstant,omitempty" bson:"effective_instant,omitempty"`           // Clinically relevant time/time-period for observation
	Issued                *string                     `json:"issued,omitempty" bson:"issued,omitempty"`                                // Date/Time this version was made available
	Performer             []Reference                 `json:"performer,omitempty" bson:"performer,omitempty"`                          // Who is responsible for the observation
	ValueQuantity         *Quantity                   `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                 // Actual result
	ValueCodeableConcept  *CodeableConcept            `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`  // Actual result
	ValueString           *string                     `json:"valueString,omitempty" bson:"value_string,omitempty"`                     // Actual result
	ValueBoolean          *bool                       `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                   // Actual result
	ValueInteger          *int                        `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                   // Actual result
	ValueRange            *Range                      `json:"valueRange,omitempty" bson:"value_range,omitempty"`                       // Actual result
	ValueRatio            *Ratio                      `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                       // Actual result
	ValueSampledData      *SampledData                `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`          // Actual result
	ValueTime             *string                     `json:"valueTime,omitempty" bson:"value_time,omitempty"`                         // Actual result
	ValueDateTime         *string                     `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                // Actual result
	ValuePeriod           *Period                     `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                     // Actual result
	ValueAttachment       *Attachment                 `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`             // Actual result
	DataAbsentReason      *CodeableConcept            `json:"dataAbsentReason,omitempty" bson:"data_absent_reason,omitempty"`          // Why the result value is missing
	Interpretation        []CodeableConcept           `json:"interpretation,omitempty" bson:"interpretation,omitempty"`                // High, low, normal, etc
	InterpretationContext []CodeableReference         `json:"interpretationContext,omitempty" bson:"interpretation_context,omitempty"` // Context for understanding the observation
	Note                  []Annotation                `json:"note,omitempty" bson:"note,omitempty"`                                    // Comments about the observation
	BodySite              *CodeableConcept            `json:"bodySite,omitempty" bson:"body_site,omitempty"`                           // DEPRECATED: Observed body part
	BodyStructure         *CodeableReference          `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`                 // Observed body structure
	Method                *CodeableConcept            `json:"method,omitempty" bson:"method,omitempty"`                                // How it was done
	Specimen              *Reference                  `json:"specimen,omitempty" bson:"specimen,omitempty"`                            // Specimen used for this observation
	Device                *Reference                  `json:"device,omitempty" bson:"device,omitempty"`                                // A reference to the device that generates the measurements or the device settings for the device
	ReferenceRange        []ObservationReferenceRange `json:"referenceRange,omitempty" bson:"reference_range,omitempty"`               // Provides guide for interpretation
	HasMember             []Reference                 `json:"hasMember,omitempty" bson:"has_member,omitempty"`                         // Related resource that belongs to the Observation group
	DerivedFrom           []Reference                 `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                     // Related resource from which the observation is made
	Component             []ObservationComponent      `json:"component,omitempty" bson:"component,omitempty"`                          // Component results
}

Measurements and simple assertions made about a patient, device or other subject.

func (*Observation) Validate

func (r *Observation) Validate() error

type ObservationComponent

type ObservationComponent struct {
	Id                   *string                     `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Code                 *CodeableConcept            `json:"code" bson:"code"`                                                       // Type of component observation (code / type)
	ValueQuantity        *Quantity                   `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // Actual component result
	ValueCodeableConcept *CodeableConcept            `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // Actual component result
	ValueString          *string                     `json:"valueString,omitempty" bson:"value_string,omitempty"`                    // Actual component result
	ValueBoolean         *bool                       `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // Actual component result
	ValueInteger         *int                        `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                  // Actual component result
	ValueRange           *Range                      `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // Actual component result
	ValueRatio           *Ratio                      `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                      // Actual component result
	ValueSampledData     *SampledData                `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`         // Actual component result
	ValueTime            *string                     `json:"valueTime,omitempty" bson:"value_time,omitempty"`                        // Actual component result
	ValueDateTime        *string                     `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`               // Actual component result
	ValuePeriod          *Period                     `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                    // Actual component result
	ValueAttachment      *Attachment                 `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`            // Actual component result
	DataAbsentReason     *CodeableConcept            `json:"dataAbsentReason,omitempty" bson:"data_absent_reason,omitempty"`         // Why the component result value is missing
	Interpretation       []CodeableConcept           `json:"interpretation,omitempty" bson:"interpretation,omitempty"`               // High, low, normal, etc
	ReferenceRange       []ObservationReferenceRange `json:"referenceRange,omitempty" bson:"reference_range,omitempty"`              // Provides guide for interpretation of component result value
}

func (*ObservationComponent) Validate

func (r *ObservationComponent) Validate() error

type ObservationDataType added in v0.0.3

type ObservationDataType string

ObservationDataType represents codes from http://hl7.org/fhir/ValueSet/permitted-data-type

const (
	ObservationDataTypeQuantity        ObservationDataType = "Quantity"
	ObservationDataTypeCodeableConcept ObservationDataType = "CodeableConcept"
	ObservationDataTypeString          ObservationDataType = "string"
	ObservationDataTypeBoolean         ObservationDataType = "boolean"
	ObservationDataTypeInteger         ObservationDataType = "integer"
	ObservationDataTypeRange           ObservationDataType = "Range"
	ObservationDataTypeRatio           ObservationDataType = "Ratio"
	ObservationDataTypeSampledData     ObservationDataType = "SampledData"
	ObservationDataTypeTime            ObservationDataType = "time"
	ObservationDataTypeDateTime        ObservationDataType = "dateTime"
	ObservationDataTypePeriod          ObservationDataType = "Period"
)

type ObservationDefinition

type ObservationDefinition struct {
	ResourceType           string                                `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                               `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                                 `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                               `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                            `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage                     `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                               `json:"url,omitempty" bson:"url,omitempty"`                                         // Logical canonical URL to reference this ObservationDefinition (globally unique)
	Identifier             *Identifier                           `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Business identifier of the ObservationDefinition
	Version                *string                               `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the ObservationDefinition
	VersionAlgorithmString *string                               `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                               `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                               `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this ObservationDefinition (computer friendly)
	Title                  *string                               `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this ObservationDefinition (human friendly)
	Status                 string                                `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                                 `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // If For testing only - never for real usage
	Date                   *string                               `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                               `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // The name of the individual or organization that published the ObservationDefinition
	Contact                []ContactDetail                       `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                               `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the ObservationDefinition
	UseContext             []UsageContext                        `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // Content intends to support these contexts
	Jurisdiction           []CodeableConcept                     `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the this ObservationDefinition (if applicable)
	Purpose                *string                               `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this ObservationDefinition is defined
	Copyright              *string                               `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                               `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string                               `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When ObservationDefinition was approved by publisher
	LastReviewDate         *string                               `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // Date on which the asset content was last reviewed by the publisher
	EffectivePeriod        *Period                               `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // The effective date range for the ObservationDefinition
	DerivedFromCanonical   []string                              `json:"derivedFromCanonical,omitempty" bson:"derived_from_canonical,omitempty"`     // Based on FHIR definition of another observation
	DerivedFromUri         []string                              `json:"derivedFromUri,omitempty" bson:"derived_from_uri,omitempty"`                 // Based on external definition
	Subject                []CodeableConcept                     `json:"subject,omitempty" bson:"subject,omitempty"`                                 // Type of subject for the defined observation
	PerformerType          *CodeableConcept                      `json:"performerType,omitempty" bson:"performer_type,omitempty"`                    // Desired kind of performer for such kind of observation
	Category               []CodeableConcept                     `json:"category,omitempty" bson:"category,omitempty"`                               // General type of observation
	Code                   *CodeableConcept                      `json:"code" bson:"code"`                                                           // Type of observation
	PermittedDataType      []string                              `json:"permittedDataType,omitempty" bson:"permitted_data_type,omitempty"`           // Quantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
	MultipleResultsAllowed *bool                                 `json:"multipleResultsAllowed,omitempty" bson:"multiple_results_allowed,omitempty"` // Multiple results allowed for conforming observations
	BodyStructure          *CodeableReference                    `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`                    // Body structure to be observed
	Method                 *CodeableConcept                      `json:"method,omitempty" bson:"method,omitempty"`                                   // Method used to produce the observation
	Specimen               []Reference                           `json:"specimen,omitempty" bson:"specimen,omitempty"`                               // Kind of specimen used by this type of observation
	DeviceReference        *Reference                            `json:"deviceReference,omitempty" bson:"device_reference,omitempty"`                // Measurement device or model of device
	DeviceCanonical        *string                               `json:"deviceCanonical,omitempty" bson:"device_canonical,omitempty"`                // Measurement device or model of device
	PreferredReportName    *string                               `json:"preferredReportName,omitempty" bson:"preferred_report_name,omitempty"`       // The preferred name to be used when reporting the observation results
	PermittedUnit          []Coding                              `json:"permittedUnit,omitempty" bson:"permitted_unit,omitempty"`                    // Unit for quantitative results
	QualifiedValue         []ObservationDefinitionQualifiedValue `json:"qualifiedValue,omitempty" bson:"qualified_value,omitempty"`                  // Set of qualified values for observation results
	HasMember              []Reference                           `json:"hasMember,omitempty" bson:"has_member,omitempty"`                            // Definitions of related resources belonging to this kind of observation group
	Component              []ObservationDefinitionComponent      `json:"component,omitempty" bson:"component,omitempty"`                             // Component results
}

Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service.

func (*ObservationDefinition) Validate

func (r *ObservationDefinition) Validate() error

type ObservationDefinitionComponent

type ObservationDefinitionComponent struct {
	Id                *string                               `json:"id,omitempty" bson:"id,omitempty"`                                 // Unique id for inter-element referencing
	Code              *CodeableConcept                      `json:"code" bson:"code"`                                                 // Type of observation
	PermittedDataType []string                              `json:"permittedDataType,omitempty" bson:"permitted_data_type,omitempty"` // Quantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
	PermittedUnit     []Coding                              `json:"permittedUnit,omitempty" bson:"permitted_unit,omitempty"`          // Unit for quantitative results
	QualifiedValue    []ObservationDefinitionQualifiedValue `json:"qualifiedValue,omitempty" bson:"qualified_value,omitempty"`        // Set of qualified values for observation results
}

func (*ObservationDefinitionComponent) Validate

func (r *ObservationDefinitionComponent) Validate() error

type ObservationDefinitionQualifiedValue

type ObservationDefinitionQualifiedValue struct {
	Id                         *string           `json:"id,omitempty" bson:"id,omitempty"`                                                     // Unique id for inter-element referencing
	Context                    *CodeableConcept  `json:"context,omitempty" bson:"context,omitempty"`                                           // Context qualifier for the set of qualified values
	AppliesTo                  []CodeableConcept `json:"appliesTo,omitempty" bson:"applies_to,omitempty"`                                      // Targetted population for the set of qualified values
	SexParameterForClinicalUse *string           `json:"sexParameterForClinicalUse,omitempty" bson:"sex_parameter_for_clinical_use,omitempty"` // male | female | other | unknown
	Age                        *Range            `json:"age,omitempty" bson:"age,omitempty"`                                                   // Applicable age range for the set of qualified values
	GestationalAge             *Range            `json:"gestationalAge,omitempty" bson:"gestational_age,omitempty"`                            // Applicable gestational age range for the set of qualified values
	Condition                  *string           `json:"condition,omitempty" bson:"condition,omitempty"`                                       // Validity criterion for the qualified value
	RangeCategory              *string           `json:"rangeCategory,omitempty" bson:"range_category,omitempty"`                              // reference | critical | absolute
	Range                      *Range            `json:"range,omitempty" bson:"range,omitempty"`                                               // The range for continuous or ordinal observations
	ValidCodedValueSet         *string           `json:"validCodedValueSet,omitempty" bson:"valid_coded_value_set,omitempty"`                  // Value set of valid coded values as part of this set of qualified values
	NormalCodedValueSet        *string           `json:"normalCodedValueSet,omitempty" bson:"normal_coded_value_set,omitempty"`                // Value set of normal coded values as part of this set of qualified values
	AbnormalCodedValueSet      *string           `json:"abnormalCodedValueSet,omitempty" bson:"abnormal_coded_value_set,omitempty"`            // Value set of abnormal coded values as part of this set of qualified values
	CriticalCodedValueSet      *string           `json:"criticalCodedValueSet,omitempty" bson:"critical_coded_value_set,omitempty"`            // Value set of critical coded values as part of this set of qualified values
	Interpretation             []CodeableConcept `json:"interpretation,omitempty" bson:"interpretation,omitempty"`                             // Expected coded interpretation values
}

func (*ObservationDefinitionQualifiedValue) Validate

type ObservationRangeCategory added in v0.0.3

type ObservationRangeCategory string

ObservationRangeCategory represents codes from http://hl7.org/fhir/ValueSet/observation-range-category

const (
	ObservationRangeCategoryReference ObservationRangeCategory = "reference"
	ObservationRangeCategoryCritical  ObservationRangeCategory = "critical"
	ObservationRangeCategoryAbsolute  ObservationRangeCategory = "absolute"
)

type ObservationReferenceRange

type ObservationReferenceRange struct {
	Id          *string           `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Low         *Quantity         `json:"low,omitempty" bson:"low,omitempty"`                  // Low Range, if relevant
	High        *Quantity         `json:"high,omitempty" bson:"high,omitempty"`                // High Range, if relevant
	NormalValue *CodeableConcept  `json:"normalValue,omitempty" bson:"normal_value,omitempty"` // Normal value, if relevant
	Type        *CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                // Reference range qualifier
	AppliesTo   []CodeableConcept `json:"appliesTo,omitempty" bson:"applies_to,omitempty"`     // Reference range population
	Age         *Range            `json:"age,omitempty" bson:"age,omitempty"`                  // Applicable age range, if relevant
	Text        *string           `json:"text,omitempty" bson:"text,omitempty"`                // Text based reference range in an observation
}

func (*ObservationReferenceRange) Validate

func (r *ObservationReferenceRange) Validate() error

type ObservationStatus added in v0.0.3

type ObservationStatus string

ObservationStatus represents codes from http://hl7.org/fhir/ValueSet/observation-status

const (
	ObservationStatusRegistered        ObservationStatus = "registered"
	ObservationStatusSpecimenInProcess ObservationStatus = "specimen-in-process"
	ObservationStatusPreliminary       ObservationStatus = "preliminary"
	ObservationStatusFinal             ObservationStatus = "final"
	ObservationStatusAmended           ObservationStatus = "amended"
	ObservationStatusCorrected         ObservationStatus = "corrected"
	ObservationStatusAppended          ObservationStatus = "appended"
	ObservationStatusCancelled         ObservationStatus = "cancelled"
	ObservationStatusEnteredInError    ObservationStatus = "entered-in-error"
	ObservationStatusUnknown           ObservationStatus = "unknown"
	ObservationStatusCannotBeObtained  ObservationStatus = "cannot-be-obtained"
)

type ObservationTriggeredBy

type ObservationTriggeredBy struct {
	Id          *string    `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Observation *Reference `json:"observation" bson:"observation"`           // Triggering observation
	Type        string     `json:"type" bson:"type"`                         // reflex | repeat | re-run
	Reason      *string    `json:"reason,omitempty" bson:"reason,omitempty"` // Reason that the observation was triggered
}

func (*ObservationTriggeredBy) Validate

func (r *ObservationTriggeredBy) Validate() error

type OperationDefinition

type OperationDefinition struct {
	ResourceType           string                         `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                        `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                        `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                        `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this operation definition, represented as an absolute URI (globally unique)
	Identifier             []Identifier                   `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the implementation guide (business identifier)
	Version                *string                        `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the operation definition
	VersionAlgorithmString *string                        `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                        `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                         `json:"name" bson:"name"`                                                           // Name for this operation definition (computer friendly)
	Title                  *string                        `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this operation definition (human friendly)
	Status                 string                         `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Kind                   string                         `json:"kind" bson:"kind"`                                                           // operation | query
	Experimental           *bool                          `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                        `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                        `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                        `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the operation definition
	UseContext             []UsageContext                 `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept              `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the operation definition (if applicable)
	Purpose                *string                        `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this operation definition is defined
	Copyright              *string                        `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                        `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	AffectsState           *bool                          `json:"affectsState,omitempty" bson:"affects_state,omitempty"`                      // Whether content is changed by the operation
	Synchronicity          *string                        `json:"synchronicity,omitempty" bson:"synchronicity,omitempty"`                     // synchronous | asynchronous | either
	Code                   string                         `json:"code" bson:"code"`                                                           // Recommended name for operation in search url
	Comment                *string                        `json:"comment,omitempty" bson:"comment,omitempty"`                                 // Additional information about use
	Base                   *string                        `json:"base,omitempty" bson:"base,omitempty"`                                       // Marks this as a profile of the base
	Resource               []string                       `json:"resource,omitempty" bson:"resource,omitempty"`                               // Types this operation applies to
	System                 bool                           `json:"system" bson:"system"`                                                       // Invoke at the system level?
	Type                   bool                           `json:"type" bson:"type"`                                                           // Invoke at the type level?
	Instance               bool                           `json:"instance" bson:"instance"`                                                   // Invoke on an instance?
	InputProfile           *string                        `json:"inputProfile,omitempty" bson:"input_profile,omitempty"`                      // Validation information for in parameters
	OutputProfile          *string                        `json:"outputProfile,omitempty" bson:"output_profile,omitempty"`                    // Validation information for out parameters
	Parameter              []OperationDefinitionParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`                             // Parameters for the operation/query
	Overload               []OperationDefinitionOverload  `json:"overload,omitempty" bson:"overload,omitempty"`                               // Define overloaded variants for when  generating code
}

A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).

func (*OperationDefinition) Validate

func (r *OperationDefinition) Validate() error

type OperationDefinitionOverload

type OperationDefinitionOverload struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	ParameterName []string `json:"parameterName,omitempty" bson:"parameter_name,omitempty"` // Name of parameter to include in overload
	Comment       *string  `json:"comment,omitempty" bson:"comment,omitempty"`              // Comments to go on overload
}

func (*OperationDefinitionOverload) Validate

func (r *OperationDefinitionOverload) Validate() error

type OperationDefinitionParameter

type OperationDefinitionParameter struct {
	Id             *string                                      `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Name           string                                       `json:"name" bson:"name"`                                          // Name in Parameters.parameter.name or in URL
	Use            string                                       `json:"use" bson:"use"`                                            // in | out
	Scope          []string                                     `json:"scope,omitempty" bson:"scope,omitempty"`                    // instance | type | system
	Min            int                                          `json:"min" bson:"min"`                                            // Minimum Cardinality
	Max            string                                       `json:"max" bson:"max"`                                            // Maximum Cardinality (a number or *)
	Documentation  *string                                      `json:"documentation,omitempty" bson:"documentation,omitempty"`    // Description of meaning/use
	Type           *string                                      `json:"type,omitempty" bson:"type,omitempty"`                      // What type this parameter has
	AllowedType    []string                                     `json:"allowedType,omitempty" bson:"allowed_type,omitempty"`       // Allowed sub-type this parameter can have (if type is abstract)
	TargetProfile  []string                                     `json:"targetProfile,omitempty" bson:"target_profile,omitempty"`   // If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types
	SearchType     *string                                      `json:"searchType,omitempty" bson:"search_type,omitempty"`         // number | date | string | token | reference | composite | quantity | uri | special | resource
	Binding        *OperationDefinitionParameterBinding         `json:"binding,omitempty" bson:"binding,omitempty"`                // ValueSet details if this is coded
	ReferencedFrom []OperationDefinitionParameterReferencedFrom `json:"referencedFrom,omitempty" bson:"referenced_from,omitempty"` // References to this parameter
	Part           []OperationDefinitionParameter               `json:"part,omitempty" bson:"part,omitempty"`                      // Parts of a nested Parameter
}

func (*OperationDefinitionParameter) Validate

func (r *OperationDefinitionParameter) Validate() error

type OperationDefinitionParameterBinding

type OperationDefinitionParameterBinding struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Strength string  `json:"strength" bson:"strength"`         // required | extensible | preferred | example | descriptive
	ValueSet string  `json:"valueSet" bson:"value_set"`        // Source of value set
}

func (*OperationDefinitionParameterBinding) Validate

type OperationDefinitionParameterReferencedFrom

type OperationDefinitionParameterReferencedFrom struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"`              // Unique id for inter-element referencing
	Source   string  `json:"source" bson:"source"`                          // Referencing parameter
	SourceId *string `json:"sourceId,omitempty" bson:"source_id,omitempty"` // Element id of reference
}

func (*OperationDefinitionParameterReferencedFrom) Validate

type OperationKind added in v0.0.3

type OperationKind string

OperationKind represents codes from http://hl7.org/fhir/ValueSet/operation-kind

const (
	OperationKindOperation OperationKind = "operation"
	OperationKindQuery     OperationKind = "query"
)

type OperationOutcome

type OperationOutcome struct {
	ResourceType  string                  `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                 `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                 `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Issue         []OperationOutcomeIssue `json:"issue" bson:"issue"`                                      // A single issue associated with the action
}

A collection of error, warning, or information messages that result from a system action.

func (*OperationOutcome) Validate

func (r *OperationOutcome) Validate() error

type OperationOutcomeIssue

type OperationOutcomeIssue struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Severity    string           `json:"severity" bson:"severity"`                           // fatal | error | warning | information | success
	Code        string           `json:"code" bson:"code"`                                   // Error or warning code
	Details     *CodeableConcept `json:"details,omitempty" bson:"details,omitempty"`         // Additional details about the error
	Diagnostics *string          `json:"diagnostics,omitempty" bson:"diagnostics,omitempty"` // Additional diagnostic information about the issue
	Location    []string         `json:"location,omitempty" bson:"location,omitempty"`       // Deprecated: Path of element(s) related to issue
	Expression  []string         `json:"expression,omitempty" bson:"expression,omitempty"`   // FHIRPath of element(s) related to issue
}

func (*OperationOutcomeIssue) Validate

func (r *OperationOutcomeIssue) Validate() error

type OperationParameterScope added in v0.0.3

type OperationParameterScope string

OperationParameterScope represents codes from http://hl7.org/fhir/ValueSet/operation-parameter-scope

const (
	OperationParameterScopeInstance OperationParameterScope = "instance"
	OperationParameterScopeType     OperationParameterScope = "type"
	OperationParameterScopeSystem   OperationParameterScope = "system"
)

type OperationParameterUse added in v0.0.3

type OperationParameterUse string

OperationParameterUse represents codes from http://hl7.org/fhir/ValueSet/operation-parameter-use

const (
	OperationParameterUseIn  OperationParameterUse = "in"
	OperationParameterUseOut OperationParameterUse = "out"
)

type OperationSynchronicityControl added in v0.0.3

type OperationSynchronicityControl string

OperationSynchronicityControl represents codes from http://hl7.org/fhir/ValueSet/synchronicity-control

const (
	OperationSynchronicityControlSynchronous  OperationSynchronicityControl = "synchronous"
	OperationSynchronicityControlAsynchronous OperationSynchronicityControl = "asynchronous"
	OperationSynchronicityControlEither       OperationSynchronicityControl = "either"
)

type Organization

type Organization struct {
	ResourceType  string                      `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                     `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                     `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Identifies this organization  across multiple systems
	Active        *bool                       `json:"active,omitempty" bson:"active,omitempty"`                // Whether the organization's record is still in active use
	Type          []CodeableConcept           `json:"type,omitempty" bson:"type,omitempty"`                    // Kind of organization
	Name          *string                     `json:"name,omitempty" bson:"name,omitempty"`                    // Name used for the organization
	Alias         []string                    `json:"alias,omitempty" bson:"alias,omitempty"`                  // A list of alternate names that the organization is known as, or was known as in the past
	Description   *string                     `json:"description,omitempty" bson:"description,omitempty"`      // Additional details about the Organization that could be displayed as further information to identify the Organization beyond its name
	Contact       []ExtendedContactDetail     `json:"contact,omitempty" bson:"contact,omitempty"`              // Official contact details for the Organization
	PartOf        *Reference                  `json:"partOf,omitempty" bson:"part_of,omitempty"`               // The organization of which this organization forms a part
	Endpoint      []Reference                 `json:"endpoint,omitempty" bson:"endpoint,omitempty"`            // Technical endpoints providing access to services operated for the organization
	Qualification []OrganizationQualification `json:"qualification,omitempty" bson:"qualification,omitempty"`  // Qualifications, certifications, accreditations, licenses, training, etc. pertaining to the provision of care
}

A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.

func (*Organization) Validate

func (r *Organization) Validate() error

type OrganizationAffiliation

type OrganizationAffiliation struct {
	ResourceType              string                  `json:"resourceType" bson:"resource_type"`                                               // Type of resource
	Id                        *string                 `json:"id,omitempty" bson:"id,omitempty"`                                                // Logical id of this artifact
	Meta                      *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                                            // Metadata about the resource
	ImplicitRules             *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                         // A set of rules under which this content was created
	Language                  *string                 `json:"language,omitempty" bson:"language,omitempty"`                                    // Language of the resource content
	Text                      *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                                            // Text summary of the resource, for human interpretation
	Contained                 []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`                                  // Contained, inline Resources
	Identifier                []Identifier            `json:"identifier,omitempty" bson:"identifier,omitempty"`                                // Business identifiers that are specific to this role
	Active                    *bool                   `json:"active,omitempty" bson:"active,omitempty"`                                        // Whether this organization affiliation record is in active use
	Period                    *Period                 `json:"period,omitempty" bson:"period,omitempty"`                                        // The period during which the participatingOrganization is affiliated with the primary organization
	Organization              *Reference              `json:"organization,omitempty" bson:"organization,omitempty"`                            // Organization where the role is available
	ParticipatingOrganization *Reference              `json:"participatingOrganization,omitempty" bson:"participating_organization,omitempty"` // Organization that provides/performs the role (e.g. providing services or is a member of)
	Network                   []Reference             `json:"network,omitempty" bson:"network,omitempty"`                                      // The network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)
	Code                      []CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                                            // Definition of the role the participatingOrganization plays
	Specialty                 []CodeableConcept       `json:"specialty,omitempty" bson:"specialty,omitempty"`                                  // Specific specialty of the participatingOrganization in the context of the role
	Location                  []Reference             `json:"location,omitempty" bson:"location,omitempty"`                                    // The location(s) at which the role occurs
	HealthcareService         []Reference             `json:"healthcareService,omitempty" bson:"healthcare_service,omitempty"`                 // Healthcare services provided through the role
	Contact                   []ExtendedContactDetail `json:"contact,omitempty" bson:"contact,omitempty"`                                      // Official contact details at the participatingOrganization relevant to this Affiliation
	Endpoint                  []Reference             `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                                    // Technical endpoints providing access to services operated for this role
}

Defines an affiliation/assotiation/relationship between 2 distinct organizations, that is not a part-of relationship/sub-division relationship.

func (*OrganizationAffiliation) Validate

func (r *OrganizationAffiliation) Validate() error

type OrganizationQualification

type OrganizationQualification struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Identifier []Identifier     `json:"identifier,omitempty" bson:"identifier,omitempty"` // An identifier for this qualification for the organization
	Code       *CodeableConcept `json:"code" bson:"code"`                                 // Coded representation of the qualification
	Status     *CodeableConcept `json:"status,omitempty" bson:"status,omitempty"`         // Status/progress of the qualification
	Period     *Period          `json:"period,omitempty" bson:"period,omitempty"`         // Period during which the qualification is valid
	Issuer     *Reference       `json:"issuer,omitempty" bson:"issuer,omitempty"`         // Organization that regulates and issues the qualification
}

func (*OrganizationQualification) Validate

func (r *OrganizationQualification) Validate() error

type PackagedProductDefinition

type PackagedProductDefinition struct {
	ResourceType          string                                         `json:"resourceType" bson:"resource_type"`                                        // Type of resource
	Id                    *string                                        `json:"id,omitempty" bson:"id,omitempty"`                                         // Logical id of this artifact
	Meta                  *Meta                                          `json:"meta,omitempty" bson:"meta,omitempty"`                                     // Metadata about the resource
	ImplicitRules         *string                                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                  // A set of rules under which this content was created
	Language              *string                                        `json:"language,omitempty" bson:"language,omitempty"`                             // Language of the resource content
	Text                  *Narrative                                     `json:"text,omitempty" bson:"text,omitempty"`                                     // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage                              `json:"contained,omitempty" bson:"contained,omitempty"`                           // Contained, inline Resources
	Identifier            []Identifier                                   `json:"identifier,omitempty" bson:"identifier,omitempty"`                         // A unique identifier for this package as whole - not for the content of the package
	Name                  *string                                        `json:"name,omitempty" bson:"name,omitempty"`                                     // A name for this package. Typically as listed in a drug formulary, catalogue, inventory etc
	Type                  *CodeableConcept                               `json:"type,omitempty" bson:"type,omitempty"`                                     // A high level category e.g. medicinal product, raw material, shipping container etc
	PackageFor            []Reference                                    `json:"packageFor,omitempty" bson:"package_for,omitempty"`                        // The product that this is a pack for
	Status                *CodeableConcept                               `json:"status,omitempty" bson:"status,omitempty"`                                 // The status within the lifecycle of this item. High level - not intended to duplicate details elsewhere e.g. legal status, or authorization/marketing status
	StatusDate            *string                                        `json:"statusDate,omitempty" bson:"status_date,omitempty"`                        // The date at which the given status became applicable
	ContainedItemQuantity []Quantity                                     `json:"containedItemQuantity,omitempty" bson:"contained_item_quantity,omitempty"` // A total of the complete count of contained items of a particular type/form, independent of sub-packaging or organization. This can be considered as the pack size. See also packaging.containedItem.amount (especially the long definition)
	Description           *string                                        `json:"description,omitempty" bson:"description,omitempty"`                       // Textual description. Note that this is not the name of the package or product
	LegalStatusOfSupply   []PackagedProductDefinitionLegalStatusOfSupply `json:"legalStatusOfSupply,omitempty" bson:"legal_status_of_supply,omitempty"`    // The legal status of supply of the packaged item as classified by the regulator
	MarketingStatus       []MarketingStatus                              `json:"marketingStatus,omitempty" bson:"marketing_status,omitempty"`              // Allows specifying that an item is on the market for sale, or that it is not available, and the dates and locations associated
	CopackagedIndicator   *bool                                          `json:"copackagedIndicator,omitempty" bson:"copackaged_indicator,omitempty"`      // Identifies if the drug product is supplied with another item such as a diluent or adjuvant
	Manufacturer          []Reference                                    `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`                     // Manufacturer of this package type (multiple means these are all possible manufacturers)
	AttachedDocument      []Reference                                    `json:"attachedDocument,omitempty" bson:"attached_document,omitempty"`            // Additional information or supporting documentation about the packaged product
	Packaging             *PackagedProductDefinitionPackaging            `json:"packaging,omitempty" bson:"packaging,omitempty"`                           // A packaging item, as a container for medically related items, possibly with other packaging items within, or a packaging component, such as bottle cap
	Characteristic        []PackagedProductDefinitionPackagingProperty   `json:"characteristic,omitempty" bson:"characteristic,omitempty"`                 // Allows the key features to be recorded, such as "hospital pack", "nurse prescribable"
}

A medically related item or items, in a container or package.

func (*PackagedProductDefinition) Validate

func (r *PackagedProductDefinition) Validate() error

type PackagedProductDefinitionLegalStatusOfSupply

type PackagedProductDefinitionLegalStatusOfSupply struct {
	Id           *string          `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Code         *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`                 // The actual status of supply. In what situation this package type may be supplied for use
	Jurisdiction *CodeableConcept `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"` // The place where the legal status of supply applies
}

func (*PackagedProductDefinitionLegalStatusOfSupply) Validate

type PackagedProductDefinitionPackaging

type PackagedProductDefinitionPackaging struct {
	Id                *string                                           `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Identifier        []Identifier                                      `json:"identifier,omitempty" bson:"identifier,omitempty"`                // An identifier that is specific to this particular part of the packaging. Including possibly a Data Carrier Identifier
	Type              *CodeableConcept                                  `json:"type,omitempty" bson:"type,omitempty"`                            // The physical type of the container of the items
	ComponentPart     *bool                                             `json:"componentPart,omitempty" bson:"component_part,omitempty"`         // Is this a part of the packaging (e.g. a cap or bottle stopper), rather than the packaging itself (e.g. a bottle or vial)
	Quantity          *int                                              `json:"quantity,omitempty" bson:"quantity,omitempty"`                    // The quantity of this level of packaging in the package that contains it (with the outermost level being 1)
	Material          []CodeableConcept                                 `json:"material,omitempty" bson:"material,omitempty"`                    // Material type of the package item
	AlternateMaterial []CodeableConcept                                 `json:"alternateMaterial,omitempty" bson:"alternate_material,omitempty"` // A possible alternate material for this part of the packaging, that is allowed to be used instead of the usual material
	ShelfLifeStorage  []ProductShelfLife                                `json:"shelfLifeStorage,omitempty" bson:"shelf_life_storage,omitempty"`  // Shelf Life and storage information
	Manufacturer      []Reference                                       `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`            // Manufacturer of this packaging item (multiple means these are all potential manufacturers)
	Property          []PackagedProductDefinitionPackagingProperty      `json:"property,omitempty" bson:"property,omitempty"`                    // General characteristics of this item
	ContainedItem     []PackagedProductDefinitionPackagingContainedItem `json:"containedItem,omitempty" bson:"contained_item,omitempty"`         // The item(s) within the packaging
	Packaging         []PackagedProductDefinitionPackaging              `json:"packaging,omitempty" bson:"packaging,omitempty"`                  // Allows containers (and parts of containers) within containers, still as a part of single packaged product
}

func (*PackagedProductDefinitionPackaging) Validate

type PackagedProductDefinitionPackagingContainedItem

type PackagedProductDefinitionPackagingContainedItem struct {
	Id     *string            `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Item   *CodeableReference `json:"item" bson:"item"`                         // The actual item(s) of medication, as manufactured, or a device, or other medically related item (food, biologicals, raw materials, medical fluids, gases etc.), as contained in the package
	Amount *Quantity          `json:"amount,omitempty" bson:"amount,omitempty"` // The number of this type of item within this packaging or for continuous items such as liquids it is the quantity (for example 25ml). See also PackagedProductDefinition.containedItemQuantity (especially the long definition)
}

func (*PackagedProductDefinitionPackagingContainedItem) Validate

type PackagedProductDefinitionPackagingProperty

type PackagedProductDefinitionPackagingProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                                       // A code expressing the type of characteristic
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // A value for the characteristic
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // A value for the characteristic
	ValueDate            *string          `json:"valueDate,omitempty" bson:"value_date,omitempty"`                        // A value for the characteristic
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // A value for the characteristic
	ValueAttachment      *Attachment      `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`            // A value for the characteristic
}

func (*PackagedProductDefinitionPackagingProperty) Validate

type ParameterDefinition

type ParameterDefinition struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          *string `json:"name,omitempty" bson:"name,omitempty"`                   // Name used to access the parameter value
	Use           string  `json:"use" bson:"use"`                                         // in | out
	Min           *int    `json:"min,omitempty" bson:"min,omitempty"`                     // Minimum cardinality
	Max           *string `json:"max,omitempty" bson:"max,omitempty"`                     // Maximum cardinality (a number of *)
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // A brief description of the parameter
	Type          string  `json:"type" bson:"type"`                                       // What type of value
	Profile       *string `json:"profile,omitempty" bson:"profile,omitempty"`             // What profile the value is expected to be
}

ParameterDefinition Type: The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse.

func (*ParameterDefinition) Validate

func (r *ParameterDefinition) Validate() error

type Parameters

type Parameters struct {
	ResourceType  string                `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string               `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string               `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Parameter     []ParametersParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`          // Operation Parameter
}

This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment). It is not persisted or allowed to be referenced by other resources except as described in the definition of the Parameters resource.

func (*Parameters) Validate

func (r *Parameters) Validate() error

type ParametersParameter

type ParametersParameter struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                                    // Unique id for inter-element referencing
	Name                       string                 `json:"name" bson:"name"`                                                                    // Name from the definition
	ValueBase64Binary          *string                `json:"valueBase64Binary,omitempty" bson:"value_base64_binary,omitempty"`                    // If parameter is a data type
	ValueBoolean               *bool                  `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                               // If parameter is a data type
	ValueCanonical             *string                `json:"valueCanonical,omitempty" bson:"value_canonical,omitempty"`                           // If parameter is a data type
	ValueCode                  *string                `json:"valueCode,omitempty" bson:"value_code,omitempty"`                                     // If parameter is a data type
	ValueDate                  *string                `json:"valueDate,omitempty" bson:"value_date,omitempty"`                                     // If parameter is a data type
	ValueDateTime              *string                `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"`                            // If parameter is a data type
	ValueDecimal               *float64               `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`                               // If parameter is a data type
	ValueId                    *string                `json:"valueId,omitempty" bson:"value_id,omitempty"`                                         // If parameter is a data type
	ValueInstant               *string                `json:"valueInstant,omitempty" bson:"value_instant,omitempty"`                               // If parameter is a data type
	ValueInteger               *int                   `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`                               // If parameter is a data type
	ValueInteger64             *int64                 `json:"valueInteger64,omitempty" bson:"value_integer64,omitempty"`                           // If parameter is a data type
	ValueMarkdown              *string                `json:"valueMarkdown,omitempty" bson:"value_markdown,omitempty"`                             // If parameter is a data type
	ValueOid                   *string                `json:"valueOid,omitempty" bson:"value_oid,omitempty"`                                       // If parameter is a data type
	ValuePositiveInt           *int                   `json:"valuePositiveInt,omitempty" bson:"value_positive_int,omitempty"`                      // If parameter is a data type
	ValueString                *string                `json:"valueString,omitempty" bson:"value_string,omitempty"`                                 // If parameter is a data type
	ValueTime                  *string                `json:"valueTime,omitempty" bson:"value_time,omitempty"`                                     // If parameter is a data type
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt,omitempty" bson:"value_unsigned_int,omitempty"`                      // If parameter is a data type
	ValueUri                   *string                `json:"valueUri,omitempty" bson:"value_uri,omitempty"`                                       // If parameter is a data type
	ValueUrl                   *string                `json:"valueUrl,omitempty" bson:"value_url,omitempty"`                                       // If parameter is a data type
	ValueUuid                  *uuid                  `json:"valueUuid,omitempty" bson:"value_uuid,omitempty"`                                     // If parameter is a data type
	ValueAddress               *Address               `json:"valueAddress,omitempty" bson:"value_address,omitempty"`                               // If parameter is a data type
	ValueAge                   *Age                   `json:"valueAge,omitempty" bson:"value_age,omitempty"`                                       // If parameter is a data type
	ValueAnnotation            *Annotation            `json:"valueAnnotation,omitempty" bson:"value_annotation,omitempty"`                         // If parameter is a data type
	ValueAttachment            *Attachment            `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`                         // If parameter is a data type
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"`              // If parameter is a data type
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference,omitempty" bson:"value_codeable_reference,omitempty"`          // If parameter is a data type
	ValueCoding                *Coding                `json:"valueCoding,omitempty" bson:"value_coding,omitempty"`                                 // If parameter is a data type
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint,omitempty" bson:"value_contact_point,omitempty"`                    // If parameter is a data type
	ValueCount                 *Count                 `json:"valueCount,omitempty" bson:"value_count,omitempty"`                                   // If parameter is a data type
	ValueDistance              *Distance              `json:"valueDistance,omitempty" bson:"value_distance,omitempty"`                             // If parameter is a data type
	ValueDuration              *Duration              `json:"valueDuration,omitempty" bson:"value_duration,omitempty"`                             // If parameter is a data type
	ValueHumanName             *HumanName             `json:"valueHumanName,omitempty" bson:"value_human_name,omitempty"`                          // If parameter is a data type
	ValueIdentifier            *Identifier            `json:"valueIdentifier,omitempty" bson:"value_identifier,omitempty"`                         // If parameter is a data type
	ValueMoney                 *Money                 `json:"valueMoney,omitempty" bson:"value_money,omitempty"`                                   // If parameter is a data type
	ValuePeriod                *Period                `json:"valuePeriod,omitempty" bson:"value_period,omitempty"`                                 // If parameter is a data type
	ValueQuantity              *Quantity              `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                             // If parameter is a data type
	ValueRange                 *Range                 `json:"valueRange,omitempty" bson:"value_range,omitempty"`                                   // If parameter is a data type
	ValueRatio                 *Ratio                 `json:"valueRatio,omitempty" bson:"value_ratio,omitempty"`                                   // If parameter is a data type
	ValueRatioRange            *RatioRange            `json:"valueRatioRange,omitempty" bson:"value_ratio_range,omitempty"`                        // If parameter is a data type
	ValueReference             *Reference             `json:"valueReference,omitempty" bson:"value_reference,omitempty"`                           // If parameter is a data type
	ValueSampledData           *SampledData           `json:"valueSampledData,omitempty" bson:"value_sampled_data,omitempty"`                      // If parameter is a data type
	ValueSignature             *Signature             `json:"valueSignature,omitempty" bson:"value_signature,omitempty"`                           // If parameter is a data type
	ValueTiming                *Timing                `json:"valueTiming,omitempty" bson:"value_timing,omitempty"`                                 // If parameter is a data type
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail,omitempty" bson:"value_contact_detail,omitempty"`                  // If parameter is a data type
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement,omitempty" bson:"value_data_requirement,omitempty"`              // If parameter is a data type
	ValueExpression            *Expression            `json:"valueExpression,omitempty" bson:"value_expression,omitempty"`                         // If parameter is a data type
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition,omitempty" bson:"value_parameter_definition,omitempty"`      // If parameter is a data type
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact,omitempty" bson:"value_related_artifact,omitempty"`              // If parameter is a data type
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition,omitempty" bson:"value_trigger_definition,omitempty"`          // If parameter is a data type
	ValueUsageContext          *UsageContext          `json:"valueUsageContext,omitempty" bson:"value_usage_context,omitempty"`                    // If parameter is a data type
	ValueAvailability          *Availability          `json:"valueAvailability,omitempty" bson:"value_availability,omitempty"`                     // If parameter is a data type
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail,omitempty" bson:"value_extended_contact_detail,omitempty"` // If parameter is a data type
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail,omitempty" bson:"value_virtual_service_detail,omitempty"`   // If parameter is a data type
	ValueDosage                *Dosage                `json:"valueDosage,omitempty" bson:"value_dosage,omitempty"`                                 // If parameter is a data type
	ValueMeta                  *Meta                  `json:"valueMeta,omitempty" bson:"value_meta,omitempty"`                                     // If parameter is a data type
	Resource                   json.RawMessage        `json:"resource,omitempty" bson:"resource,omitempty"`                                        // If parameter is a whole resource
	Part                       []ParametersParameter  `json:"part,omitempty" bson:"part,omitempty"`                                                // Named part of a multi-part parameter
}

func (*ParametersParameter) Validate

func (r *ParametersParameter) Validate() error

type ParticipationStatus added in v0.0.3

type ParticipationStatus string

ParticipationStatus represents codes from http://hl7.org/fhir/ValueSet/participationstatus

const (
	ParticipationStatusAccepted    ParticipationStatus = "accepted"
	ParticipationStatusDeclined    ParticipationStatus = "declined"
	ParticipationStatusTentative   ParticipationStatus = "tentative"
	ParticipationStatusNeedsAction ParticipationStatus = "needs-action"
)

type PatchMimeTypes added in v0.0.3

type PatchMimeTypes string

PatchMimeTypes represents codes from http://hl7.org/fhir/ValueSet/patchmimetypes

const (
	PatchMimeTypesApplicationfhirxml       PatchMimeTypes = "application/fhir+xml"
	PatchMimeTypesApplicationfhirjson      PatchMimeTypes = "application/fhir+json"
	PatchMimeTypesApplicationfhirturtle    PatchMimeTypes = "application/fhir+turtle"
	PatchMimeTypesApplicationjsonPatchjson PatchMimeTypes = "application/json-patch+json"
	PatchMimeTypesApplicationxmlPatchxml   PatchMimeTypes = "application/xml-patch+xml"
)

type Patient

type Patient struct {
	ResourceType         string                 `json:"resourceType" bson:"resource_type"`                                      // Type of resource
	Id                   *string                `json:"id,omitempty" bson:"id,omitempty"`                                       // Logical id of this artifact
	Meta                 *Meta                  `json:"meta,omitempty" bson:"meta,omitempty"`                                   // Metadata about the resource
	ImplicitRules        *string                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                // A set of rules under which this content was created
	Language             *string                `json:"language,omitempty" bson:"language,omitempty"`                           // Language of the resource content
	Text                 *Narrative             `json:"text,omitempty" bson:"text,omitempty"`                                   // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage      `json:"contained,omitempty" bson:"contained,omitempty"`                         // Contained, inline Resources
	Identifier           []Identifier           `json:"identifier,omitempty" bson:"identifier,omitempty"`                       // An identifier for this patient
	Active               *bool                  `json:"active,omitempty" bson:"active,omitempty"`                               // Whether this patient's record is in active use
	Name                 []HumanName            `json:"name,omitempty" bson:"name,omitempty"`                                   // A name associated with the patient
	Telecom              []ContactPoint         `json:"telecom,omitempty" bson:"telecom,omitempty"`                             // A contact detail for the individual
	Gender               *string                `json:"gender,omitempty" bson:"gender,omitempty"`                               // male | female | other | unknown
	BirthDate            *string                `json:"birthDate,omitempty" bson:"birth_date,omitempty"`                        // The date of birth for the individual
	DeceasedBoolean      *bool                  `json:"deceasedBoolean,omitempty" bson:"deceased_boolean,omitempty"`            // Indicates if/when the individual is deceased
	DeceasedDateTime     *string                `json:"deceasedDateTime,omitempty" bson:"deceased_date_time,omitempty"`         // Indicates if/when the individual is deceased
	Address              []Address              `json:"address,omitempty" bson:"address,omitempty"`                             // An address for the individual
	MaritalStatus        *CodeableConcept       `json:"maritalStatus,omitempty" bson:"marital_status,omitempty"`                // Marital (civil) status of a patient
	MultipleBirthBoolean *bool                  `json:"multipleBirthBoolean,omitempty" bson:"multiple_birth_boolean,omitempty"` // Whether patient is part of a multiple birth
	MultipleBirthInteger *int                   `json:"multipleBirthInteger,omitempty" bson:"multiple_birth_integer,omitempty"` // Whether patient is part of a multiple birth
	Photo                []Attachment           `json:"photo,omitempty" bson:"photo,omitempty"`                                 // Image of the patient
	Contact              []PatientContact       `json:"contact,omitempty" bson:"contact,omitempty"`                             // A contact party (e.g. guardian, partner, friend) for the patient
	Communication        []PatientCommunication `json:"communication,omitempty" bson:"communication,omitempty"`                 // A language which may be used to communicate with the patient about his or her health
	GeneralPractitioner  []Reference            `json:"generalPractitioner,omitempty" bson:"general_practitioner,omitempty"`    // Patient's nominated primary care provider
	ManagingOrganization *Reference             `json:"managingOrganization,omitempty" bson:"managing_organization,omitempty"`  // Organization that is the custodian of the patient record
	Link                 []PatientLink          `json:"link,omitempty" bson:"link,omitempty"`                                   // Link to a Patient or RelatedPerson resource that concerns the same actual individual
}

Demographics and other administrative information about an individual or animal that is the subject of potential, past, current, or future health-related care, services, or processes.

func (*Patient) Validate

func (r *Patient) Validate() error

type PatientCommunication

type PatientCommunication struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Language  *CodeableConcept `json:"language" bson:"language"`                       // The language which can be used to communicate with the patient about his or her health
	Preferred *bool            `json:"preferred,omitempty" bson:"preferred,omitempty"` // Language preference indicator
}

func (*PatientCommunication) Validate

func (r *PatientCommunication) Validate() error

type PatientContact

type PatientContact struct {
	Id                *string           `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Relationship      []CodeableConcept `json:"relationship,omitempty" bson:"relationship,omitempty"`            // The kind of personal relationship
	Role              []CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                            // The kind of functional role
	Name              *HumanName        `json:"name,omitempty" bson:"name,omitempty"`                            // A name associated with the contact person
	AdditionalName    []HumanName       `json:"additionalName,omitempty" bson:"additional_name,omitempty"`       // Additional names for the contact person
	Telecom           []ContactPoint    `json:"telecom,omitempty" bson:"telecom,omitempty"`                      // A contact detail for the person
	Address           *Address          `json:"address,omitempty" bson:"address,omitempty"`                      // Address for the contact person
	AdditionalAddress []Address         `json:"additionalAddress,omitempty" bson:"additional_address,omitempty"` // Additional addresses for the contact person
	Gender            *string           `json:"gender,omitempty" bson:"gender,omitempty"`                        // male | female | other | unknown
	Organization      *Reference        `json:"organization,omitempty" bson:"organization,omitempty"`            // Organization that is associated with the contact
	Period            *Period           `json:"period,omitempty" bson:"period,omitempty"`                        // The period during which this contact person or organization is valid to be contacted relating to this patient
}

func (*PatientContact) Validate

func (r *PatientContact) Validate() error
type PatientLink struct {
	Id    *string    `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Other *Reference `json:"other" bson:"other"`               // The other patient or related person resource that the link refers to
	Type  string     `json:"type" bson:"type"`                 // replaced-by | replaces | refer | seealso
}

func (*PatientLink) Validate

func (r *PatientLink) Validate() error

type PaymentNotice

type PaymentNotice struct {
	ResourceType  string            `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string           `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta             `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string           `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative        `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Business Identifier for the payment notice
	Status        string            `json:"status" bson:"status"`                                    // active | cancelled | draft | entered-in-error
	StatusReason  *string           `json:"statusReason,omitempty" bson:"status_reason,omitempty"`   // Reason for status change
	Request       *Reference        `json:"request,omitempty" bson:"request,omitempty"`              // Request reference
	Response      *Reference        `json:"response,omitempty" bson:"response,omitempty"`            // Response reference
	Created       string            `json:"created" bson:"created"`                                  // Creation date
	Reporter      *Reference        `json:"reporter,omitempty" bson:"reporter,omitempty"`            // Responsible practitioner
	Payment       *Reference        `json:"payment,omitempty" bson:"payment,omitempty"`              // Payment reference
	PaymentDate   *string           `json:"paymentDate,omitempty" bson:"payment_date,omitempty"`     // Payment or clearing date
	Payee         *Reference        `json:"payee,omitempty" bson:"payee,omitempty"`                  // Party being paid
	Recipient     *Reference        `json:"recipient" bson:"recipient"`                              // Party being notified
	Amount        *Money            `json:"amount" bson:"amount"`                                    // Monetary amount of the payment
	PaymentStatus *CodeableConcept  `json:"paymentStatus,omitempty" bson:"payment_status,omitempty"` // Issued or cleared Status of the payment
}

This resource provides the status of the payment for goods and services rendered, and the request and response resource references.

func (*PaymentNotice) Validate

func (r *PaymentNotice) Validate() error

type PaymentOutcome added in v0.0.3

type PaymentOutcome string

PaymentOutcome represents codes from http://hl7.org/fhir/ValueSet/payment-outcome

const (
	PaymentOutcomeQueued   PaymentOutcome = "queued"
	PaymentOutcomeComplete PaymentOutcome = "complete"
	PaymentOutcomeError    PaymentOutcome = "error"
	PaymentOutcomePartial  PaymentOutcome = "partial"
)

type PaymentReconciliation

type PaymentReconciliation struct {
	ResourceType      string                             `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string                            `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta                              `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string                            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string                            `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative                         `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage                  `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Identifier        []Identifier                       `json:"identifier,omitempty" bson:"identifier,omitempty"`                // Business Identifier for a payment reconciliation
	Type              *CodeableConcept                   `json:"type" bson:"type"`                                                // Category of payment
	Status            string                             `json:"status" bson:"status"`                                            // active | cancelled | draft | entered-in-error
	StatusReason      *string                            `json:"statusReason,omitempty" bson:"status_reason,omitempty"`           // Reason for status change
	Kind              *CodeableConcept                   `json:"kind,omitempty" bson:"kind,omitempty"`                            // Workflow originating payment
	Period            *Period                            `json:"period,omitempty" bson:"period,omitempty"`                        // Period covered
	Created           string                             `json:"created" bson:"created"`                                          // Creation date
	Enterer           *Reference                         `json:"enterer,omitempty" bson:"enterer,omitempty"`                      // Who entered the payment
	IssuerType        *CodeableConcept                   `json:"issuerType,omitempty" bson:"issuer_type,omitempty"`               // Nature of the source
	PaymentIssuer     *Reference                         `json:"paymentIssuer,omitempty" bson:"payment_issuer,omitempty"`         // Party generating payment
	Request           *Reference                         `json:"request,omitempty" bson:"request,omitempty"`                      // Reference to requesting resource
	Requestor         *Reference                         `json:"requestor,omitempty" bson:"requestor,omitempty"`                  // Responsible practitioner
	Outcome           *string                            `json:"outcome,omitempty" bson:"outcome,omitempty"`                      // queued | complete | error | partial
	Disposition       *string                            `json:"disposition,omitempty" bson:"disposition,omitempty"`              // Disposition message
	Date              string                             `json:"date" bson:"date"`                                                // When payment issued
	Location          *Reference                         `json:"location,omitempty" bson:"location,omitempty"`                    // Where payment collected
	Method            *CodeableConcept                   `json:"method,omitempty" bson:"method,omitempty"`                        // Payment instrument
	CardBrand         *string                            `json:"cardBrand,omitempty" bson:"card_brand,omitempty"`                 // Type of card
	AccountNumber     *string                            `json:"accountNumber,omitempty" bson:"account_number,omitempty"`         // Digits for verification
	ExpirationDate    *string                            `json:"expirationDate,omitempty" bson:"expiration_date,omitempty"`       // Expiration year-month
	Processor         *string                            `json:"processor,omitempty" bson:"processor,omitempty"`                  // Processor name
	ReferenceNumber   *string                            `json:"referenceNumber,omitempty" bson:"reference_number,omitempty"`     // Check number or payment reference
	Authorization     *string                            `json:"authorization,omitempty" bson:"authorization,omitempty"`          // Authorization number
	TenderedAmount    *Money                             `json:"tenderedAmount,omitempty" bson:"tendered_amount,omitempty"`       // Amount offered by the issuer
	ReturnedAmount    *Money                             `json:"returnedAmount,omitempty" bson:"returned_amount,omitempty"`       // Amount returned by the receiver
	Amount            *Money                             `json:"amount,omitempty" bson:"amount,omitempty"`                        // Total amount of Payment
	PaymentIdentifier *Identifier                        `json:"paymentIdentifier,omitempty" bson:"payment_identifier,omitempty"` // Business identifier for the payment
	Allocation        []PaymentReconciliationAllocation  `json:"allocation,omitempty" bson:"allocation,omitempty"`                // Settlement particulars
	FormCode          *CodeableConcept                   `json:"formCode,omitempty" bson:"form_code,omitempty"`                   // Printed form identifier
	ProcessNote       []PaymentReconciliationProcessNote `json:"processNote,omitempty" bson:"process_note,omitempty"`             // Note concerning processing
}

This resource provides the details including amount of a payment and allocates the payment items being paid.

func (*PaymentReconciliation) Validate

func (r *PaymentReconciliation) Validate() error

type PaymentReconciliationAllocation

type PaymentReconciliationAllocation struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                                          // Unique id for inter-element referencing
	Identifier            *Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`                          // Business identifier of the payment detail
	Predecessor           *Identifier      `json:"predecessor,omitempty" bson:"predecessor,omitempty"`                        // Business identifier of the prior payment detail
	Target                *Reference       `json:"target,omitempty" bson:"target,omitempty"`                                  // Subject of the payment
	TargetItemString      *string          `json:"targetItemString,omitempty" bson:"target_item_string,omitempty"`            // Sub-element of the subject
	TargetItemIdentifier  *Identifier      `json:"targetItemIdentifier,omitempty" bson:"target_item_identifier,omitempty"`    // Sub-element of the subject
	TargetItemPositiveInt *int             `json:"targetItemPositiveInt,omitempty" bson:"target_item_positive_int,omitempty"` // Sub-element of the subject
	Encounter             *Reference       `json:"encounter,omitempty" bson:"encounter,omitempty"`                            // Applied-to encounter
	Account               *Reference       `json:"account,omitempty" bson:"account,omitempty"`                                // Applied-to account
	Type                  *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                                      // Category of payment
	Submitter             *Reference       `json:"submitter,omitempty" bson:"submitter,omitempty"`                            // Submitter of the request
	Response              *Reference       `json:"response,omitempty" bson:"response,omitempty"`                              // Response committing to a payment
	Date                  *string          `json:"date,omitempty" bson:"date,omitempty"`                                      // Date of commitment to pay
	Responsible           *Reference       `json:"responsible,omitempty" bson:"responsible,omitempty"`                        // Contact for the response
	Payee                 *Reference       `json:"payee,omitempty" bson:"payee,omitempty"`                                    // Recipient of the payment
	Amount                *Money           `json:"amount,omitempty" bson:"amount,omitempty"`                                  // Amount allocated to this payable
	NoteNumber            []int            `json:"noteNumber,omitempty" bson:"note_number,omitempty"`                         // Applicable note numbers
}

func (*PaymentReconciliationAllocation) Validate

func (r *PaymentReconciliationAllocation) Validate() error

type PaymentReconciliationProcessNote

type PaymentReconciliationProcessNote struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Class  *CodeableConcept `json:"class,omitempty" bson:"class,omitempty"`   // Business kind of note
	Number *int             `json:"number,omitempty" bson:"number,omitempty"` // Note instance identifier
	Type   *string          `json:"type,omitempty" bson:"type,omitempty"`     // display | print | printoper
	Text   *string          `json:"text,omitempty" bson:"text,omitempty"`     // Note explanatory text
}

func (*PaymentReconciliationProcessNote) Validate

type Period

type Period struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Start *string `json:"start,omitempty" bson:"start,omitempty"` // Starting time with inclusive boundary
	End   *string `json:"end,omitempty" bson:"end,omitempty"`     // End time with inclusive boundary, if not ongoing
}

Period Type: A time period defined by a start and end date and optionally time.

func (*Period) Validate

func (r *Period) Validate() error

type Person

type Person struct {
	ResourceType         string                `json:"resourceType" bson:"resource_type"`                                     // Type of resource
	Id                   *string               `json:"id,omitempty" bson:"id,omitempty"`                                      // Logical id of this artifact
	Meta                 *Meta                 `json:"meta,omitempty" bson:"meta,omitempty"`                                  // Metadata about the resource
	ImplicitRules        *string               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`               // A set of rules under which this content was created
	Language             *string               `json:"language,omitempty" bson:"language,omitempty"`                          // Language of the resource content
	Text                 *Narrative            `json:"text,omitempty" bson:"text,omitempty"`                                  // Text summary of the resource, for human interpretation
	Contained            []json.RawMessage     `json:"contained,omitempty" bson:"contained,omitempty"`                        // Contained, inline Resources
	Identifier           []Identifier          `json:"identifier,omitempty" bson:"identifier,omitempty"`                      // A human identifier for this person
	Active               *bool                 `json:"active,omitempty" bson:"active,omitempty"`                              // This person's record is in active use
	Name                 []HumanName           `json:"name,omitempty" bson:"name,omitempty"`                                  // A name associated with the person
	Telecom              []ContactPoint        `json:"telecom,omitempty" bson:"telecom,omitempty"`                            // A contact detail for the person
	Gender               *string               `json:"gender,omitempty" bson:"gender,omitempty"`                              // male | female | other | unknown
	BirthDate            *string               `json:"birthDate,omitempty" bson:"birth_date,omitempty"`                       // The date on which the person was born
	DeceasedBoolean      *bool                 `json:"deceasedBoolean,omitempty" bson:"deceased_boolean,omitempty"`           // Indicates if the individual is deceased or not
	DeceasedDateTime     *string               `json:"deceasedDateTime,omitempty" bson:"deceased_date_time,omitempty"`        // Indicates if the individual is deceased or not
	Address              []Address             `json:"address,omitempty" bson:"address,omitempty"`                            // One or more addresses for the person
	MaritalStatus        *CodeableConcept      `json:"maritalStatus,omitempty" bson:"marital_status,omitempty"`               // Marital (civil) status of a person
	Photo                []Attachment          `json:"photo,omitempty" bson:"photo,omitempty"`                                // Image of the person
	Communication        []PersonCommunication `json:"communication,omitempty" bson:"communication,omitempty"`                // A language which may be used to communicate with the person about his or her health
	ManagingOrganization *Reference            `json:"managingOrganization,omitempty" bson:"managing_organization,omitempty"` // The organization that is the custodian of the person record
	Link                 []PersonLink          `json:"link,omitempty" bson:"link,omitempty"`                                  // Link to a resource that concerns the same actual person
}

Demographics and administrative information about a person independent of a specific health-related context.

func (*Person) Validate

func (r *Person) Validate() error

type PersonCommunication

type PersonCommunication struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Language  *CodeableConcept `json:"language" bson:"language"`                       // The language which can be used to communicate with the person about his or her health
	Preferred *bool            `json:"preferred,omitempty" bson:"preferred,omitempty"` // Language preference indicator
}

func (*PersonCommunication) Validate

func (r *PersonCommunication) Validate() error
type PersonLink struct {
	Id        *string    `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Target    *Reference `json:"target" bson:"target"`                           // The resource to which this actual person is associated
	Assurance *string    `json:"assurance,omitempty" bson:"assurance,omitempty"` // level1 | level2 | level3 | level4
}

func (*PersonLink) Validate

func (r *PersonLink) Validate() error

type PlanDefinition

type PlanDefinition struct {
	ResourceType            string                 `json:"resourceType" bson:"resource_type"`                                             // Type of resource
	Id                      *string                `json:"id,omitempty" bson:"id,omitempty"`                                              // Logical id of this artifact
	Meta                    *Meta                  `json:"meta,omitempty" bson:"meta,omitempty"`                                          // Metadata about the resource
	ImplicitRules           *string                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                       // A set of rules under which this content was created
	Language                *string                `json:"language,omitempty" bson:"language,omitempty"`                                  // Language of the resource content
	Text                    *Narrative             `json:"text,omitempty" bson:"text,omitempty"`                                          // Text summary of the resource, for human interpretation
	Contained               []json.RawMessage      `json:"contained,omitempty" bson:"contained,omitempty"`                                // Contained, inline Resources
	Url                     *string                `json:"url,omitempty" bson:"url,omitempty"`                                            // Canonical identifier for this plan definition, represented as a URI (globally unique)
	Identifier              []Identifier           `json:"identifier,omitempty" bson:"identifier,omitempty"`                              // Additional identifier for the plan definition
	Version                 *string                `json:"version,omitempty" bson:"version,omitempty"`                                    // Business version of the plan definition
	VersionAlgorithmString  *string                `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"`    // How to compare versions
	VersionAlgorithmCoding  *Coding                `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"`    // How to compare versions
	Name                    *string                `json:"name,omitempty" bson:"name,omitempty"`                                          // Name for this plan definition (computer friendly)
	Title                   *string                `json:"title,omitempty" bson:"title,omitempty"`                                        // Name for this plan definition (human friendly)
	Subtitle                *string                `json:"subtitle,omitempty" bson:"subtitle,omitempty"`                                  // Subordinate title of the plan definition
	Type                    *CodeableConcept       `json:"type,omitempty" bson:"type,omitempty"`                                          // order-set | protocol | eca-rule | workflow-definition | etc.
	Status                  string                 `json:"status" bson:"status"`                                                          // draft | active | retired | unknown
	Experimental            *bool                  `json:"experimental,omitempty" bson:"experimental,omitempty"`                          // For testing only - never for real usage
	SubjectCodeableConcept  *CodeableConcept       `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"`    // Type of individual the plan definition is focused on
	SubjectReference        *Reference             `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`                 // Type of individual the plan definition is focused on
	SubjectCanonical        *string                `json:"subjectCanonical,omitempty" bson:"subject_canonical,omitempty"`                 // Type of individual the plan definition is focused on
	Date                    *string                `json:"date,omitempty" bson:"date,omitempty"`                                          // Date last changed
	Publisher               *string                `json:"publisher,omitempty" bson:"publisher,omitempty"`                                // Name of the publisher/steward (organization or individual)
	Contact                 []ContactDetail        `json:"contact,omitempty" bson:"contact,omitempty"`                                    // Contact details for the publisher
	Description             *string                `json:"description,omitempty" bson:"description,omitempty"`                            // Natural language description of the plan definition
	UseContext              []UsageContext         `json:"useContext,omitempty" bson:"use_context,omitempty"`                             // The context that the content is intended to support
	Jurisdiction            []CodeableConcept      `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                          // Jurisdiction of the authority that maintains the plan definition (if applicable)
	Purpose                 *string                `json:"purpose,omitempty" bson:"purpose,omitempty"`                                    // Why this plan definition is defined
	Usage                   *string                `json:"usage,omitempty" bson:"usage,omitempty"`                                        // Describes the clinical usage of the plan
	Copyright               *string                `json:"copyright,omitempty" bson:"copyright,omitempty"`                                // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel          *string                `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                     // Copyright holder and year(s)
	ApprovalDate            *string                `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                         // When the plan definition was approved by publisher
	LastReviewDate          *string                `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                    // When the plan definition was last reviewed by the publisher
	EffectivePeriod         *Period                `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                   // When the plan definition is expected to be used
	Topic                   []CodeableConcept      `json:"topic,omitempty" bson:"topic,omitempty"`                                        // E.g. Education, Treatment, Assessment
	Author                  []ContactDetail        `json:"author,omitempty" bson:"author,omitempty"`                                      // Who authored the content
	Editor                  []ContactDetail        `json:"editor,omitempty" bson:"editor,omitempty"`                                      // Who edited the content
	Reviewer                []ContactDetail        `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                                  // Who reviewed the content
	Endorser                []ContactDetail        `json:"endorser,omitempty" bson:"endorser,omitempty"`                                  // Who endorsed the content
	RelatedArtifact         []RelatedArtifact      `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                   // Additional documentation, citations
	Library                 []string               `json:"library,omitempty" bson:"library,omitempty"`                                    // Logic used by the plan definition
	Goal                    []PlanDefinitionGoal   `json:"goal,omitempty" bson:"goal,omitempty"`                                          // What the plan is trying to accomplish
	Actor                   []PlanDefinitionActor  `json:"actor,omitempty" bson:"actor,omitempty"`                                        // Actors within the plan
	Action                  []PlanDefinitionAction `json:"action,omitempty" bson:"action,omitempty"`                                      // Action defined by the plan
	AsNeededBoolean         *bool                  `json:"asNeededBoolean,omitempty" bson:"as_needed_boolean,omitempty"`                  // Preconditions for service
	AsNeededCodeableConcept *CodeableConcept       `json:"asNeededCodeableConcept,omitempty" bson:"as_needed_codeable_concept,omitempty"` // Preconditions for service
}

This resource allows for the definition of various types of plans as a sharable, consumable, and executable artifact. The resource is general enough to support the description of a broad range of clinical and non-clinical artifacts such as clinical decision support rules, order sets, protocols, drug quality specifications, and drug manufacturing process.

func (*PlanDefinition) Validate

func (r *PlanDefinition) Validate() error

type PlanDefinitionAction

type PlanDefinitionAction struct {
	Id                     *string                             `json:"id,omitempty" bson:"id,omitempty"`                                           // Unique id for inter-element referencing
	LinkId                 *string                             `json:"linkId,omitempty" bson:"link_id,omitempty"`                                  // Unique id for the action in the PlanDefinition
	Prefix                 *string                             `json:"prefix,omitempty" bson:"prefix,omitempty"`                                   // User-visible prefix for the action (e.g. 1. or A.)
	Title                  *string                             `json:"title,omitempty" bson:"title,omitempty"`                                     // User-visible title
	Description            *string                             `json:"description,omitempty" bson:"description,omitempty"`                         // Brief description of the action
	TextEquivalent         *string                             `json:"textEquivalent,omitempty" bson:"text_equivalent,omitempty"`                  // Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
	Priority               *string                             `json:"priority,omitempty" bson:"priority,omitempty"`                               // routine | urgent | asap | stat
	Code                   *CodeableConcept                    `json:"code,omitempty" bson:"code,omitempty"`                                       // Code representing the meaning of the action or sub-actions
	Reason                 []CodeableConcept                   `json:"reason,omitempty" bson:"reason,omitempty"`                                   // Why the action should be performed
	Documentation          []RelatedArtifact                   `json:"documentation,omitempty" bson:"documentation,omitempty"`                     // Supporting documentation for the intended performer of the action
	GoalId                 []string                            `json:"goalId,omitempty" bson:"goal_id,omitempty"`                                  // What goals this action supports
	SubjectCodeableConcept *CodeableConcept                    `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"` // Type of individual the action is focused on
	SubjectReference       *Reference                          `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`              // Type of individual the action is focused on
	SubjectCanonical       *string                             `json:"subjectCanonical,omitempty" bson:"subject_canonical,omitempty"`              // Type of individual the action is focused on
	Trigger                []TriggerDefinition                 `json:"trigger,omitempty" bson:"trigger,omitempty"`                                 // When the action should be triggered
	Condition              []PlanDefinitionActionCondition     `json:"condition,omitempty" bson:"condition,omitempty"`                             // Whether or not the action is applicable
	Input                  []PlanDefinitionActionInput         `json:"input,omitempty" bson:"input,omitempty"`                                     // Input data requirements
	Output                 []PlanDefinitionActionOutput        `json:"output,omitempty" bson:"output,omitempty"`                                   // Output data definition
	RelatedAction          []PlanDefinitionActionRelatedAction `json:"relatedAction,omitempty" bson:"related_action,omitempty"`                    // Relationship to another action
	TimingAge              *Age                                `json:"timingAge,omitempty" bson:"timing_age,omitempty"`                            // When the action should take place
	TimingDuration         *Duration                           `json:"timingDuration,omitempty" bson:"timing_duration,omitempty"`                  // When the action should take place
	TimingRange            *Range                              `json:"timingRange,omitempty" bson:"timing_range,omitempty"`                        // When the action should take place
	TimingTiming           *Timing                             `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`                      // When the action should take place
	TimingRelativeTime     *RelativeTime                       `json:"timingRelativeTime,omitempty" bson:"timing_relative_time,omitempty"`         // When the action should take place
	Location               *CodeableReference                  `json:"location,omitempty" bson:"location,omitempty"`                               // Where it should happen
	Participant            []PlanDefinitionActionParticipant   `json:"participant,omitempty" bson:"participant,omitempty"`                         // Who should participate in the action
	Type                   *CodeableConcept                    `json:"type,omitempty" bson:"type,omitempty"`                                       // create | update | remove | fire-event | etc.
	ApplicabilityBehavior  *string                             `json:"applicabilityBehavior,omitempty" bson:"applicability_behavior,omitempty"`    // all | any
	GroupingBehavior       *string                             `json:"groupingBehavior,omitempty" bson:"grouping_behavior,omitempty"`              // visual-group | logical-group | sentence-group
	SelectionBehavior      *string                             `json:"selectionBehavior,omitempty" bson:"selection_behavior,omitempty"`            // any | all | all-or-none | exactly-one | at-most-one | one-or-more
	RequiredBehavior       *string                             `json:"requiredBehavior,omitempty" bson:"required_behavior,omitempty"`              // must | could | must-unless-documented
	PrecheckBehavior       *string                             `json:"precheckBehavior,omitempty" bson:"precheck_behavior,omitempty"`              // yes | no
	CardinalityBehavior    *string                             `json:"cardinalityBehavior,omitempty" bson:"cardinality_behavior,omitempty"`        // single | multiple
	DefinitionCanonical    *string                             `json:"definitionCanonical,omitempty" bson:"definition_canonical,omitempty"`        // Description of the activity to be performed
	DefinitionUri          *string                             `json:"definitionUri,omitempty" bson:"definition_uri,omitempty"`                    // Description of the activity to be performed
	Transform              *string                             `json:"transform,omitempty" bson:"transform,omitempty"`                             // Transform to apply the template
	DynamicValue           []PlanDefinitionActionDynamicValue  `json:"dynamicValue,omitempty" bson:"dynamic_value,omitempty"`                      // Dynamic aspects of the definition
	Action                 []PlanDefinitionAction              `json:"action,omitempty" bson:"action,omitempty"`                                   // A sub-action
}

func (*PlanDefinitionAction) Validate

func (r *PlanDefinitionAction) Validate() error

type PlanDefinitionActionCondition

type PlanDefinitionActionCondition struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Kind       string      `json:"kind" bson:"kind"`                                 // applicability | start | stop
	Expression *Expression `json:"expression,omitempty" bson:"expression,omitempty"` // Boolean-valued expression
}

func (*PlanDefinitionActionCondition) Validate

func (r *PlanDefinitionActionCondition) Validate() error

type PlanDefinitionActionDynamicValue

type PlanDefinitionActionDynamicValue struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Path       *string     `json:"path,omitempty" bson:"path,omitempty"`             // The path to the element to be set dynamically
	Expression *Expression `json:"expression,omitempty" bson:"expression,omitempty"` // An expression that provides the dynamic value for the customization
}

func (*PlanDefinitionActionDynamicValue) Validate

type PlanDefinitionActionInput

type PlanDefinitionActionInput struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Title       *string          `json:"title,omitempty" bson:"title,omitempty"`              // User-visible title
	Requirement *DataRequirement `json:"requirement,omitempty" bson:"requirement,omitempty"`  // What data is provided
	RelatedData *string          `json:"relatedData,omitempty" bson:"related_data,omitempty"` // What data is provided
}

func (*PlanDefinitionActionInput) Validate

func (r *PlanDefinitionActionInput) Validate() error

type PlanDefinitionActionOutput

type PlanDefinitionActionOutput struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Title       *string          `json:"title,omitempty" bson:"title,omitempty"`              // User-visible title
	Requirement *DataRequirement `json:"requirement,omitempty" bson:"requirement,omitempty"`  // What data is provided
	RelatedData *string          `json:"relatedData,omitempty" bson:"related_data,omitempty"` // What data is provided
}

func (*PlanDefinitionActionOutput) Validate

func (r *PlanDefinitionActionOutput) Validate() error

type PlanDefinitionActionParticipant

type PlanDefinitionActionParticipant struct {
	Id            *string          `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	ActorId       *string          `json:"actorId,omitempty" bson:"actor_id,omitempty"`             // What actor
	Type          *string          `json:"type,omitempty" bson:"type,omitempty"`                    // careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
	TypeCanonical *string          `json:"typeCanonical,omitempty" bson:"type_canonical,omitempty"` // Who or what can participate
	TypeReference *Reference       `json:"typeReference,omitempty" bson:"type_reference,omitempty"` // Who or what can participate
	Role          *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                    // E.g. Nurse, Surgeon, Parent
	Function      *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"`            // E.g. Author, Reviewer, Witness, etc
}

func (*PlanDefinitionActionParticipant) Validate

func (r *PlanDefinitionActionParticipant) Validate() error

type PlanDefinitionActionRelatedAction

type PlanDefinitionActionRelatedAction struct {
	Id              *string   `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	TargetId        string    `json:"targetId" bson:"target_id"`                                   // What action is this related to
	Relationship    string    `json:"relationship" bson:"relationship"`                            // before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
	EndRelationship *string   `json:"endRelationship,omitempty" bson:"end_relationship,omitempty"` // before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
	OffsetDuration  *Duration `json:"offsetDuration,omitempty" bson:"offset_duration,omitempty"`   // Time offset for the relationship
	OffsetRange     *Range    `json:"offsetRange,omitempty" bson:"offset_range,omitempty"`         // Time offset for the relationship
}

func (*PlanDefinitionActionRelatedAction) Validate

type PlanDefinitionActor

type PlanDefinitionActor struct {
	Id          *string                     `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Title       *string                     `json:"title,omitempty" bson:"title,omitempty"`             // User-visible title
	Description *string                     `json:"description,omitempty" bson:"description,omitempty"` // Describes the actor
	Option      []PlanDefinitionActorOption `json:"option" bson:"option"`                               // Who or what can be this actor
}

func (*PlanDefinitionActor) Validate

func (r *PlanDefinitionActor) Validate() error

type PlanDefinitionActorOption

type PlanDefinitionActorOption struct {
	Id            *string          `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Type          *string          `json:"type,omitempty" bson:"type,omitempty"`                    // careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
	TypeCanonical *string          `json:"typeCanonical,omitempty" bson:"type_canonical,omitempty"` // Who or what can participate
	TypeReference *Reference       `json:"typeReference,omitempty" bson:"type_reference,omitempty"` // Who or what can participate
	Role          *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                    // E.g. Nurse, Surgeon, Parent
}

func (*PlanDefinitionActorOption) Validate

func (r *PlanDefinitionActorOption) Validate() error

type PlanDefinitionGoal

type PlanDefinitionGoal struct {
	Id            *string                    `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Category      *CodeableConcept           `json:"category,omitempty" bson:"category,omitempty"`           // E.g. Treatment, dietary, behavioral
	Description   *CodeableConcept           `json:"description" bson:"description"`                         // Code or text describing the goal
	Priority      *CodeableConcept           `json:"priority,omitempty" bson:"priority,omitempty"`           // high-priority | medium-priority | low-priority
	Start         *CodeableConcept           `json:"start,omitempty" bson:"start,omitempty"`                 // When goal pursuit begins
	Addresses     []CodeableConcept          `json:"addresses,omitempty" bson:"addresses,omitempty"`         // What does the goal address
	Documentation []RelatedArtifact          `json:"documentation,omitempty" bson:"documentation,omitempty"` // Supporting documentation for the goal
	Target        []PlanDefinitionGoalTarget `json:"target,omitempty" bson:"target,omitempty"`               // Target outcome for the goal
}

func (*PlanDefinitionGoal) Validate

func (r *PlanDefinitionGoal) Validate() error

type PlanDefinitionGoalTarget

type PlanDefinitionGoalTarget struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	Measure               *CodeableConcept `json:"measure,omitempty" bson:"measure,omitempty"`                               // The parameter whose value is to be tracked
	DetailQuantity        *Quantity        `json:"detailQuantity,omitempty" bson:"detail_quantity,omitempty"`                // The target value to be achieved
	DetailRange           *Range           `json:"detailRange,omitempty" bson:"detail_range,omitempty"`                      // The target value to be achieved
	DetailCodeableConcept *CodeableConcept `json:"detailCodeableConcept,omitempty" bson:"detail_codeable_concept,omitempty"` // The target value to be achieved
	DetailString          *string          `json:"detailString,omitempty" bson:"detail_string,omitempty"`                    // The target value to be achieved
	DetailBoolean         *bool            `json:"detailBoolean,omitempty" bson:"detail_boolean,omitempty"`                  // The target value to be achieved
	DetailInteger         *int             `json:"detailInteger,omitempty" bson:"detail_integer,omitempty"`                  // The target value to be achieved
	DetailRatio           *Ratio           `json:"detailRatio,omitempty" bson:"detail_ratio,omitempty"`                      // The target value to be achieved
	Due                   *Duration        `json:"due,omitempty" bson:"due,omitempty"`                                       // Reach goal within
}

func (*PlanDefinitionGoalTarget) Validate

func (r *PlanDefinitionGoalTarget) Validate() error

type Practitioner

type Practitioner struct {
	ResourceType     string                      `json:"resourceType" bson:"resource_type"`                              // Type of resource
	Id               *string                     `json:"id,omitempty" bson:"id,omitempty"`                               // Logical id of this artifact
	Meta             *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                           // Metadata about the resource
	ImplicitRules    *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`        // A set of rules under which this content was created
	Language         *string                     `json:"language,omitempty" bson:"language,omitempty"`                   // Language of the resource content
	Text             *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                           // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`                 // Contained, inline Resources
	Identifier       []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`               // An identifier for the person as this agent
	Active           *bool                       `json:"active,omitempty" bson:"active,omitempty"`                       // Whether this practitioner's record is in active use
	Name             []HumanName                 `json:"name,omitempty" bson:"name,omitempty"`                           // The name(s) associated with the practitioner
	Telecom          []ContactPoint              `json:"telecom,omitempty" bson:"telecom,omitempty"`                     // A contact detail for the practitioner (that apply to all roles)
	Gender           *string                     `json:"gender,omitempty" bson:"gender,omitempty"`                       // male | female | other | unknown
	BirthDate        *string                     `json:"birthDate,omitempty" bson:"birth_date,omitempty"`                // The date  on which the practitioner was born
	DeceasedBoolean  *bool                       `json:"deceasedBoolean,omitempty" bson:"deceased_boolean,omitempty"`    // Indicates if the practitioner is deceased or not
	DeceasedDateTime *string                     `json:"deceasedDateTime,omitempty" bson:"deceased_date_time,omitempty"` // Indicates if the practitioner is deceased or not
	Address          []Address                   `json:"address,omitempty" bson:"address,omitempty"`                     // Address(es) of the practitioner that are not role specific (typically home address)
	Photo            []Attachment                `json:"photo,omitempty" bson:"photo,omitempty"`                         // Image of the person
	Qualification    []PractitionerQualification `json:"qualification,omitempty" bson:"qualification,omitempty"`         // Qualifications, certifications, accreditations, licenses, training, etc. pertaining to the provision of care
	Communication    []PractitionerCommunication `json:"communication,omitempty" bson:"communication,omitempty"`         // A language which may be used to communicate with the practitioner
}

A person who is directly or indirectly involved in the provisioning of healthcare or related services.

func (*Practitioner) Validate

func (r *Practitioner) Validate() error

type PractitionerCommunication

type PractitionerCommunication struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Language  *CodeableConcept `json:"language" bson:"language"`                       // The language code used to communicate with the practitioner
	Preferred *bool            `json:"preferred,omitempty" bson:"preferred,omitempty"` // Language preference indicator
}

func (*PractitionerCommunication) Validate

func (r *PractitionerCommunication) Validate() error

type PractitionerQualification

type PractitionerQualification struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Identifier []Identifier     `json:"identifier,omitempty" bson:"identifier,omitempty"` // An identifier for this qualification for the practitioner
	Code       *CodeableConcept `json:"code" bson:"code"`                                 // Coded representation of the qualification
	Status     *CodeableConcept `json:"status,omitempty" bson:"status,omitempty"`         // Status/progress  of the qualification
	Period     *Period          `json:"period,omitempty" bson:"period,omitempty"`         // Period during which the qualification is valid
	Issuer     *Reference       `json:"issuer,omitempty" bson:"issuer,omitempty"`         // Organization that regulates and issues the qualification
}

func (*PractitionerQualification) Validate

func (r *PractitionerQualification) Validate() error

type PractitionerRole

type PractitionerRole struct {
	ResourceType      string                  `json:"resourceType" bson:"resource_type"`                               // Type of resource
	Id                *string                 `json:"id,omitempty" bson:"id,omitempty"`                                // Logical id of this artifact
	Meta              *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                            // Metadata about the resource
	ImplicitRules     *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`         // A set of rules under which this content was created
	Language          *string                 `json:"language,omitempty" bson:"language,omitempty"`                    // Language of the resource content
	Text              *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                            // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`                  // Contained, inline Resources
	Identifier        []Identifier            `json:"identifier,omitempty" bson:"identifier,omitempty"`                // Identifiers for a role/location
	Active            *bool                   `json:"active,omitempty" bson:"active,omitempty"`                        // Whether this practitioner role record is in active use
	Period            *Period                 `json:"period,omitempty" bson:"period,omitempty"`                        // The period during which the practitioner is authorized to perform in these role(s)
	Practitioner      *Reference              `json:"practitioner,omitempty" bson:"practitioner,omitempty"`            // Practitioner that provides services for the organization
	Organization      *Reference              `json:"organization,omitempty" bson:"organization,omitempty"`            // Organization where the role is available
	Network           []Reference             `json:"network,omitempty" bson:"network,omitempty"`                      // The network in which the PractitionerRole provides the role's services (if defined) at the indicated locations (if defined)
	Code              []CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                            // Roles which this practitioner may perform
	Display           *string                 `json:"display,omitempty" bson:"display,omitempty"`                      // Denormalized practitioner name, role, organization and location
	Specialty         []CodeableConcept       `json:"specialty,omitempty" bson:"specialty,omitempty"`                  // Specific specialty of the practitioner
	Location          []Reference             `json:"location,omitempty" bson:"location,omitempty"`                    // Location(s) where the practitioner provides care
	HealthcareService []Reference             `json:"healthcareService,omitempty" bson:"healthcare_service,omitempty"` // Healthcare services provided for this role's Organization/Location(s)
	Contact           []ExtendedContactDetail `json:"contact,omitempty" bson:"contact,omitempty"`                      // Official contact details relating to this PractitionerRole
	Characteristic    []CodeableConcept       `json:"characteristic,omitempty" bson:"characteristic,omitempty"`        // Collection of characteristics (attributes)
	Communication     []CodeableConcept       `json:"communication,omitempty" bson:"communication,omitempty"`          // A language the practitioner (in this role) can use in patient communication
	Availability      *Availability           `json:"availability,omitempty" bson:"availability,omitempty"`            // Times the Practitioner is available at this location and/or healthcare service (including exceptions)
	Endpoint          []Reference             `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                    // Endpoints for interacting with the practitioner in this role
}

A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time.

func (*PractitionerRole) Validate

func (r *PractitionerRole) Validate() error

type PreferredId

type PreferredId struct {
}

This operation returns the preferred identifiers for identifiers, and terminologies. The operation takes 2 parameters: * a system identifier - either a URI, an OID, or a v2 table 0396 (other) code * a code for what kind of identifier is desired (URI, OID, v2 table 0396 identifier) and returns either the requested identifier, or an HTTP errors response with an OperationOutcome because either the provided identifier was not recognized, or the requested identiifer type is not known. The principle use of this operation is when converting between v2, CDA and FHIR Identifier/CX/II and CodeableConcepts/C(N/W)E/CD but the operation may also find use when converting metadata such as profiles.

func (*PreferredId) Validate

func (r *PreferredId) Validate() error

type PriceComponentType added in v0.0.3

type PriceComponentType string

PriceComponentType represents codes from http://hl7.org/fhir/ValueSet/price-component-type

const (
	PriceComponentTypeBase          PriceComponentType = "base"
	PriceComponentTypeSurcharge     PriceComponentType = "surcharge"
	PriceComponentTypeDiscount      PriceComponentType = "discount"
	PriceComponentTypeTax           PriceComponentType = "tax"
	PriceComponentTypeInformational PriceComponentType = "informational"
)

type PrimitiveType

type PrimitiveType struct {
	Id *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
}

PrimitiveType Type: The base type for all re-useable types defined that have a simple property.

func (*PrimitiveType) Validate

func (r *PrimitiveType) Validate() error

type Procedure

type Procedure struct {
	ResourceType       string                 `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                  `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative             `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage      `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier         []Identifier           `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // External Identifiers for this procedure
	BasedOn            []Reference            `json:"basedOn,omitempty" bson:"based_on,omitempty"`                        // A request for this procedure
	PartOf             []Reference            `json:"partOf,omitempty" bson:"part_of,omitempty"`                          // Part of referenced event
	Status             string                 `json:"status" bson:"status"`                                               // preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
	StatusReason       *CodeableConcept       `json:"statusReason,omitempty" bson:"status_reason,omitempty"`              // Reason for current status
	Category           []CodeableConcept      `json:"category,omitempty" bson:"category,omitempty"`                       // Classification of the procedure
	Code               *CodeableConcept       `json:"code,omitempty" bson:"code,omitempty"`                               // Identification of the procedure
	Subject            *Reference             `json:"subject" bson:"subject"`                                             // Individual or entity the procedure was performed on
	Focus              *Reference             `json:"focus,omitempty" bson:"focus,omitempty"`                             // Who is the target of the procedure when it is not the subject of record only
	Encounter          *Reference             `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // The Encounter during which this Procedure was created
	OccurrenceDateTime *string                `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // When the procedure occurred or is occurring
	OccurrencePeriod   *Period                `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // When the procedure occurred or is occurring
	OccurrenceString   *string                `json:"occurrenceString,omitempty" bson:"occurrence_string,omitempty"`      // When the procedure occurred or is occurring
	OccurrenceAge      *Age                   `json:"occurrenceAge,omitempty" bson:"occurrence_age,omitempty"`            // When the procedure occurred or is occurring
	OccurrenceRange    *Range                 `json:"occurrenceRange,omitempty" bson:"occurrence_range,omitempty"`        // When the procedure occurred or is occurring
	OccurrenceTiming   *Timing                `json:"occurrenceTiming,omitempty" bson:"occurrence_timing,omitempty"`      // When the procedure occurred or is occurring
	Recorded           *string                `json:"recorded,omitempty" bson:"recorded,omitempty"`                       // When the procedure was first captured in the subject's record
	Recorder           *Reference             `json:"recorder,omitempty" bson:"recorder,omitempty"`                       // Who recorded the procedure
	ReportedBoolean    *bool                  `json:"reportedBoolean,omitempty" bson:"reported_boolean,omitempty"`        // Reported rather than primary record
	ReportedReference  *Reference             `json:"reportedReference,omitempty" bson:"reported_reference,omitempty"`    // Reported rather than primary record
	Performer          []ProcedurePerformer   `json:"performer,omitempty" bson:"performer,omitempty"`                     // Who performed the procedure and what they did
	Location           *Reference             `json:"location,omitempty" bson:"location,omitempty"`                       // Where the procedure happened
	Reason             []CodeableReference    `json:"reason,omitempty" bson:"reason,omitempty"`                           // The justification that the procedure was performed
	BodySite           []CodeableConcept      `json:"bodySite,omitempty" bson:"body_site,omitempty"`                      // Target body sites
	BodyStructure      *Reference             `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`            // Target body structure
	Outcome            []CodeableReference    `json:"outcome,omitempty" bson:"outcome,omitempty"`                         // The result of procedure
	Report             []Reference            `json:"report,omitempty" bson:"report,omitempty"`                           // Any report resulting from the procedure
	Complication       []CodeableReference    `json:"complication,omitempty" bson:"complication,omitempty"`               // Complication following the procedure
	FollowUp           []CodeableReference    `json:"followUp,omitempty" bson:"follow_up,omitempty"`                      // Instructions for follow up
	Note               []Annotation           `json:"note,omitempty" bson:"note,omitempty"`                               // Additional information about the procedure
	FocalDevice        []ProcedureFocalDevice `json:"focalDevice,omitempty" bson:"focal_device,omitempty"`                // Manipulated, implanted, or removed device
	Used               []CodeableReference    `json:"used,omitempty" bson:"used,omitempty"`                               // Items used during procedure
	SupportingInfo     []Reference            `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`          // Extra information relevant to the procedure
}

An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy. This can be a quality or safety inspection for a location, organization, or device. This can be an accreditation procedure on a practitioner for licensing.

func (*Procedure) Validate

func (r *Procedure) Validate() error

type ProcedureFocalDevice

type ProcedureFocalDevice struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Action      *CodeableConcept `json:"action,omitempty" bson:"action,omitempty"` // Kind of change to device
	Manipulated *Reference       `json:"manipulated" bson:"manipulated"`           // Device that was changed
}

func (*ProcedureFocalDevice) Validate

func (r *ProcedureFocalDevice) Validate() error

type ProcedurePerformer

type ProcedurePerformer struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Function   *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"`       // Type of performance
	Actor      *Reference       `json:"actor" bson:"actor"`                                 // Who performed the procedure
	OnBehalfOf *Reference       `json:"onBehalfOf,omitempty" bson:"on_behalf_of,omitempty"` // Organization the device or practitioner was acting for
	Period     *Period          `json:"period,omitempty" bson:"period,omitempty"`           // When the performer performed the procedure
}

func (*ProcedurePerformer) Validate

func (r *ProcedurePerformer) Validate() error

type ProcessMessage

type ProcessMessage struct {
}

This operation accepts a message, processes it according to the definition of the event in the message header, and returns one or more response messages. In addition to processing the message event, a server may choose to retain all or some the resources and make them available on a RESTful interface, but is not required to do so.

func (*ProcessMessage) Validate

func (r *ProcessMessage) Validate() error

type ProductShelfLife

type ProductShelfLife struct {
	Id                           *string           `json:"id,omitempty" bson:"id,omitempty"`                                                        // Unique id for inter-element referencing
	Type                         *CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                                                    // This describes the shelf life, taking into account various scenarios such as shelf life of the packaged Medicinal Product itself, shelf life after transformation where necessary and shelf life after the first opening of a bottle, etc. The shelf life type shall be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified
	PeriodDuration               *Duration         `json:"periodDuration,omitempty" bson:"period_duration,omitempty"`                               // The shelf life time period can be specified using a numerical value for the period of time and its unit of time measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used
	PeriodString                 *string           `json:"periodString,omitempty" bson:"period_string,omitempty"`                                   // The shelf life time period can be specified using a numerical value for the period of time and its unit of time measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used
	SpecialPrecautionsForStorage []CodeableConcept `json:"specialPrecautionsForStorage,omitempty" bson:"special_precautions_for_storage,omitempty"` // Special precautions for storage, if any, can be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified
}

ProductShelfLife Type: The shelf-life and storage information for a medicinal product item or container can be described using this class.

func (*ProductShelfLife) Validate

func (r *ProductShelfLife) Validate() error

type PropertyRepresentation added in v0.0.3

type PropertyRepresentation string

PropertyRepresentation represents codes from http://hl7.org/fhir/ValueSet/property-representation

const (
	PropertyRepresentationXmlAttr  PropertyRepresentation = "xmlAttr"
	PropertyRepresentationXmlText  PropertyRepresentation = "xmlText"
	PropertyRepresentationTypeAttr PropertyRepresentation = "typeAttr"
	PropertyRepresentationCdaText  PropertyRepresentation = "cdaText"
	PropertyRepresentationXhtml    PropertyRepresentation = "xhtml"
)

type PropertyType added in v0.0.3

type PropertyType string

PropertyType represents codes from http://hl7.org/fhir/ValueSet/concept-property-type

const (
	PropertyTypeCode     PropertyType = "code"
	PropertyTypeCoding   PropertyType = "Coding"
	PropertyTypeString   PropertyType = "string"
	PropertyTypeInteger  PropertyType = "integer"
	PropertyTypeBoolean  PropertyType = "boolean"
	PropertyTypeDateTime PropertyType = "dateTime"
	PropertyTypeDecimal  PropertyType = "decimal"
)

type Provenance

type Provenance struct {
	ResourceType     string              `json:"resourceType" bson:"resource_type"`                              // Type of resource
	Id               *string             `json:"id,omitempty" bson:"id,omitempty"`                               // Logical id of this artifact
	Meta             *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                           // Metadata about the resource
	ImplicitRules    *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`        // A set of rules under which this content was created
	Language         *string             `json:"language,omitempty" bson:"language,omitempty"`                   // Language of the resource content
	Text             *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                           // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`                 // Contained, inline Resources
	Target           []Reference         `json:"target" bson:"target"`                                           // Target Reference(s) (usually version specific)
	OccurredPeriod   *Period             `json:"occurredPeriod,omitempty" bson:"occurred_period,omitempty"`      // When the activity occurred
	OccurredDateTime *string             `json:"occurredDateTime,omitempty" bson:"occurred_date_time,omitempty"` // When the activity occurred
	Recorded         *string             `json:"recorded,omitempty" bson:"recorded,omitempty"`                   // When the activity was recorded / updated
	Policy           []string            `json:"policy,omitempty" bson:"policy,omitempty"`                       // Policy or plan the activity was defined by
	Location         *Reference          `json:"location,omitempty" bson:"location,omitempty"`                   // Where the activity occurred
	Authorization    []CodeableReference `json:"authorization,omitempty" bson:"authorization,omitempty"`         // Authorization (purposeOfUse) related to the event
	Why              *string             `json:"why,omitempty" bson:"why,omitempty"`                             // Why was the event performed?
	Activity         *CodeableConcept    `json:"activity,omitempty" bson:"activity,omitempty"`                   // Activity that occurred
	BasedOn          []Reference         `json:"basedOn,omitempty" bson:"based_on,omitempty"`                    // Workflow authorization within which this event occurred
	Patient          *Reference          `json:"patient,omitempty" bson:"patient,omitempty"`                     // The patient is the subject of the data created/updated (.target) by the activity
	Encounter        *Reference          `json:"encounter,omitempty" bson:"encounter,omitempty"`                 // Encounter within which this event occurred or which the event is tightly associated
	Agent            []ProvenanceAgent   `json:"agent" bson:"agent"`                                             // Actor involved
	Entity           []ProvenanceEntity  `json:"entity,omitempty" bson:"entity,omitempty"`                       // An entity used in this activity
	Signature        []Signature         `json:"signature,omitempty" bson:"signature,omitempty"`                 // Signature on target
}

Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which MAY impact security, privacy, and trust policies.

func (*Provenance) Validate

func (r *Provenance) Validate() error

type ProvenanceAgent

type ProvenanceAgent struct {
	Id         *string           `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Type       *CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`               // How the agent participated
	Role       []CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`               // What the agents role was
	Who        *Reference        `json:"who" bson:"who"`                                     // The agent that participated in the event
	OnBehalfOf *Reference        `json:"onBehalfOf,omitempty" bson:"on_behalf_of,omitempty"` // The agent that delegated
}

func (*ProvenanceAgent) Validate

func (r *ProvenanceAgent) Validate() error

type ProvenanceEntity

type ProvenanceEntity struct {
	Id    *string           `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Role  string            `json:"role" bson:"role"`                       // revision | quotation | source | instantiates | removal
	What  *Reference        `json:"what" bson:"what"`                       // Identity of entity
	Agent []ProvenanceAgent `json:"agent,omitempty" bson:"agent,omitempty"` // Entity is attributed to this agent
}

func (*ProvenanceEntity) Validate

func (r *ProvenanceEntity) Validate() error

type ProvenanceEntityRole added in v0.0.3

type ProvenanceEntityRole string

ProvenanceEntityRole represents codes from http://hl7.org/fhir/ValueSet/provenance-entity-role

const (
	ProvenanceEntityRoleRevision     ProvenanceEntityRole = "revision"
	ProvenanceEntityRoleQuotation    ProvenanceEntityRole = "quotation"
	ProvenanceEntityRoleSource       ProvenanceEntityRole = "source"
	ProvenanceEntityRoleInstantiates ProvenanceEntityRole = "instantiates"
	ProvenanceEntityRoleRemoval      ProvenanceEntityRole = "removal"
)

type PublicationStatus added in v0.0.3

type PublicationStatus string

PublicationStatus represents codes from http://hl7.org/fhir/ValueSet/publication-status

const (
	PublicationStatusDraft   PublicationStatus = "draft"
	PublicationStatusActive  PublicationStatus = "active"
	PublicationStatusRetired PublicationStatus = "retired"
	PublicationStatusUnknown PublicationStatus = "unknown"
)

type Purge

type Purge struct {
}

This operation is used to request the removal of all current and historical versions for all resources in a patient compartment. The result will be an OperationOutcome with results and/or details about execution. Following are some common 'issue-type' values: - 'success' the request has been completed to the server's satisfaction - the patient and associated resources are no longer accessible - 'incomplete' the request is partially complete, but additional processing will continue (e.g., the server is continuing to clean out resources) When supported, it is recommended (though not required) to support an [Asynchronous Request Pattern](async.html). Note that the deletion of resources typically involves many policy decisions. Implementers are expected to use this operation in conjunction with their policies for such a request - e.g., soft vs. hard delete, audibility/traceability, evaluation of referential integrity, etc.

func (*Purge) Validate

func (r *Purge) Validate() error

type Quantity

type Quantity struct {
	Id         *string  `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Value      *float64 `json:"value,omitempty" bson:"value,omitempty"`           // Numerical value (with implicit precision)
	Comparator *string  `json:"comparator,omitempty" bson:"comparator,omitempty"` // < | <= | >= | > | ad - how to understand the value
	Unit       *string  `json:"unit,omitempty" bson:"unit,omitempty"`             // Unit representation
	System     *string  `json:"system,omitempty" bson:"system,omitempty"`         // System that defines coded unit form
	Code       *string  `json:"code,omitempty" bson:"code,omitempty"`             // Coded form of the unit
}

Quantity Type: A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies.

func (*Quantity) Validate

func (r *Quantity) Validate() error

type QuantityComparator added in v0.0.3

type QuantityComparator string

QuantityComparator represents codes from http://hl7.org/fhir/ValueSet/quantity-comparator

const (
	QuantityComparatorCode   QuantityComparator = "<"
	QuantityComparatorCode_2 QuantityComparator = "<="
	QuantityComparatorCode_3 QuantityComparator = ">="
	QuantityComparatorCode_4 QuantityComparator = ">"
	QuantityComparatorAd     QuantityComparator = "ad"
)

type Questionnaire

type Questionnaire struct {
	ResourceType           string              `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string             `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string             `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string             `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this questionnaire, represented as an absolute URI (globally unique)
	Identifier             []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Business identifier for questionnaire
	Version                *string             `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the questionnaire
	VersionAlgorithmString *string             `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding             `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string             `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this questionnaire (computer friendly)
	Title                  *string             `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this questionnaire (human friendly)
	DerivedFrom            []string            `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                        // Based on Questionnaire
	Status                 string              `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool               `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	SubjectType            []string            `json:"subjectType,omitempty" bson:"subject_type,omitempty"`                        // Resource that can be subject of QuestionnaireResponse
	Date                   *string             `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string             `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail     `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string             `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the questionnaire
	UseContext             []UsageContext      `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept   `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the questionnaire (if applicable)
	Purpose                *string             `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this questionnaire is defined
	Copyright              *string             `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string             `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string             `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the questionnaire was approved by publisher
	LastReviewDate         *string             `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the questionnaire was last reviewed by the publisher
	EffectivePeriod        *Period             `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the questionnaire is expected to be used
	Code                   []Coding            `json:"code,omitempty" bson:"code,omitempty"`                                       // Concept that represents the overall questionnaire
	Item                   []QuestionnaireItem `json:"item,omitempty" bson:"item,omitempty"`                                       // Questions and sections within the Questionnaire
}

A structured set of questions intended to guide the collection of answers from end-users. Questionnaires provide detailed control over order, presentation, phraseology and grouping to allow coherent, consistent data collection.

func (*Questionnaire) Validate

func (r *Questionnaire) Validate() error

type QuestionnaireAnswerConstraint added in v0.0.3

type QuestionnaireAnswerConstraint string

QuestionnaireAnswerConstraint represents codes from http://hl7.org/fhir/ValueSet/questionnaire-answer-constraint

const (
	QuestionnaireAnswerConstraintOptionsOnly     QuestionnaireAnswerConstraint = "optionsOnly"
	QuestionnaireAnswerConstraintOptionsOrType   QuestionnaireAnswerConstraint = "optionsOrType"
	QuestionnaireAnswerConstraintOptionsOrString QuestionnaireAnswerConstraint = "optionsOrString"
)

type QuestionnaireItem

type QuestionnaireItem struct {
	Id               *string                         `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	LinkId           string                          `json:"linkId" bson:"link_id"`                                         // Unique id for item in questionnaire
	Definition       []string                        `json:"definition,omitempty" bson:"definition,omitempty"`              // ElementDefinition - details for the item
	Code             []Coding                        `json:"code,omitempty" bson:"code,omitempty"`                          // Corresponding concept for this item in a terminology
	Prefix           *string                         `json:"prefix,omitempty" bson:"prefix,omitempty"`                      // E.g. "1(a)", "2.5.3"
	Text             *string                         `json:"text,omitempty" bson:"text,omitempty"`                          // Primary text for the item
	Type             string                          `json:"type" bson:"type"`                                              // group | display | boolean | decimal | integer | date | dateTime +
	EnableWhen       []QuestionnaireItemEnableWhen   `json:"enableWhen,omitempty" bson:"enable_when,omitempty"`             // Only allow data when
	EnableBehavior   *string                         `json:"enableBehavior,omitempty" bson:"enable_behavior,omitempty"`     // all | any
	DisabledDisplay  *string                         `json:"disabledDisplay,omitempty" bson:"disabled_display,omitempty"`   // hidden | protected
	Required         *bool                           `json:"required,omitempty" bson:"required,omitempty"`                  // Whether the item must be included in data results
	Repeats          *bool                           `json:"repeats,omitempty" bson:"repeats,omitempty"`                    // Whether the item may repeat
	ReadOnly         *bool                           `json:"readOnly,omitempty" bson:"read_only,omitempty"`                 // Don't allow human editing
	MaxLength        *int                            `json:"maxLength,omitempty" bson:"max_length,omitempty"`               // No more than these many characters
	AnswerConstraint *string                         `json:"answerConstraint,omitempty" bson:"answer_constraint,omitempty"` // optionsOnly | optionsOrType | optionsOrString
	AnswerValueSet   *string                         `json:"answerValueSet,omitempty" bson:"answer_value_set,omitempty"`    // ValueSet containing permitted answers
	AnswerOption     []QuestionnaireItemAnswerOption `json:"answerOption,omitempty" bson:"answer_option,omitempty"`         // Permitted answer
	Initial          []QuestionnaireItemInitial      `json:"initial,omitempty" bson:"initial,omitempty"`                    // Initial value(s) when item is first rendered
	Item             []QuestionnaireItem             `json:"item,omitempty" bson:"item,omitempty"`                          // Nested questionnaire items
}

func (*QuestionnaireItem) Validate

func (r *QuestionnaireItem) Validate() error

type QuestionnaireItemAnswerOption

type QuestionnaireItemAnswerOption struct {
	Id              *string    `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	ValueDecimal    *float64   `json:"valueDecimal" bson:"value_decimal"`                           // Answer value
	ValueInteger    *int       `json:"valueInteger" bson:"value_integer"`                           // Answer value
	ValueDate       *string    `json:"valueDate" bson:"value_date"`                                 // Answer value
	ValueDateTime   *string    `json:"valueDateTime" bson:"value_date_time"`                        // Answer value
	ValueTime       *string    `json:"valueTime" bson:"value_time"`                                 // Answer value
	ValueString     *string    `json:"valueString" bson:"value_string"`                             // Answer value
	ValueUri        *string    `json:"valueUri" bson:"value_uri"`                                   // Answer value
	ValueCoding     *Coding    `json:"valueCoding" bson:"value_coding"`                             // Answer value
	ValueQuantity   *Quantity  `json:"valueQuantity" bson:"value_quantity"`                         // Answer value
	ValueReference  *Reference `json:"valueReference" bson:"value_reference"`                       // Answer value
	InitialSelected *bool      `json:"initialSelected,omitempty" bson:"initial_selected,omitempty"` // Whether option is selected by default
}

func (*QuestionnaireItemAnswerOption) Validate

func (r *QuestionnaireItemAnswerOption) Validate() error

type QuestionnaireItemDisabledDisplay added in v0.0.3

type QuestionnaireItemDisabledDisplay string

QuestionnaireItemDisabledDisplay represents codes from http://hl7.org/fhir/ValueSet/questionnaire-disabled-display

const (
	QuestionnaireItemDisabledDisplayHidden    QuestionnaireItemDisabledDisplay = "hidden"
	QuestionnaireItemDisabledDisplayProtected QuestionnaireItemDisabledDisplay = "protected"
)

type QuestionnaireItemEnableWhen

type QuestionnaireItemEnableWhen struct {
	Id               *string     `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	Question         string      `json:"question" bson:"question"`                  // The linkId of question that determines whether item is enabled/disabled
	Operator         string      `json:"operator" bson:"operator"`                  // exists | = | != | > | < | >= | <=
	AnswerBoolean    *bool       `json:"answerBoolean" bson:"answer_boolean"`       // Value for question comparison based on operator
	AnswerDecimal    *float64    `json:"answerDecimal" bson:"answer_decimal"`       // Value for question comparison based on operator
	AnswerInteger    *int        `json:"answerInteger" bson:"answer_integer"`       // Value for question comparison based on operator
	AnswerDate       *string     `json:"answerDate" bson:"answer_date"`             // Value for question comparison based on operator
	AnswerDateTime   *string     `json:"answerDateTime" bson:"answer_date_time"`    // Value for question comparison based on operator
	AnswerTime       *string     `json:"answerTime" bson:"answer_time"`             // Value for question comparison based on operator
	AnswerString     *string     `json:"answerString" bson:"answer_string"`         // Value for question comparison based on operator
	AnswerCoding     *Coding     `json:"answerCoding" bson:"answer_coding"`         // Value for question comparison based on operator
	AnswerQuantity   *Quantity   `json:"answerQuantity" bson:"answer_quantity"`     // Value for question comparison based on operator
	AnswerReference  *Reference  `json:"answerReference" bson:"answer_reference"`   // Value for question comparison based on operator
	AnswerUri        *string     `json:"answerUri" bson:"answer_uri"`               // Value for question comparison based on operator
	AnswerAttachment *Attachment `json:"answerAttachment" bson:"answer_attachment"` // Value for question comparison based on operator
}

func (*QuestionnaireItemEnableWhen) Validate

func (r *QuestionnaireItemEnableWhen) Validate() error

type QuestionnaireItemInitial

type QuestionnaireItemInitial struct {
	Id              *string     `json:"id,omitempty" bson:"id,omitempty"`        // Unique id for inter-element referencing
	ValueBoolean    *bool       `json:"valueBoolean" bson:"value_boolean"`       // Actual value for initializing the question
	ValueDecimal    *float64    `json:"valueDecimal" bson:"value_decimal"`       // Actual value for initializing the question
	ValueInteger    *int        `json:"valueInteger" bson:"value_integer"`       // Actual value for initializing the question
	ValueDate       *string     `json:"valueDate" bson:"value_date"`             // Actual value for initializing the question
	ValueDateTime   *string     `json:"valueDateTime" bson:"value_date_time"`    // Actual value for initializing the question
	ValueTime       *string     `json:"valueTime" bson:"value_time"`             // Actual value for initializing the question
	ValueString     *string     `json:"valueString" bson:"value_string"`         // Actual value for initializing the question
	ValueUri        *string     `json:"valueUri" bson:"value_uri"`               // Actual value for initializing the question
	ValueAttachment *Attachment `json:"valueAttachment" bson:"value_attachment"` // Actual value for initializing the question
	ValueCoding     *Coding     `json:"valueCoding" bson:"value_coding"`         // Actual value for initializing the question
	ValueQuantity   *Quantity   `json:"valueQuantity" bson:"value_quantity"`     // Actual value for initializing the question
	ValueReference  *Reference  `json:"valueReference" bson:"value_reference"`   // Actual value for initializing the question
}

func (*QuestionnaireItemInitial) Validate

func (r *QuestionnaireItemInitial) Validate() error

type QuestionnaireItemOperator added in v0.0.3

type QuestionnaireItemOperator string

QuestionnaireItemOperator represents codes from http://hl7.org/fhir/ValueSet/questionnaire-enable-operator

const (
	QuestionnaireItemOperatorExists QuestionnaireItemOperator = "exists"
	QuestionnaireItemOperatorCode   QuestionnaireItemOperator = "="
	QuestionnaireItemOperatorCode_2 QuestionnaireItemOperator = "!="
	QuestionnaireItemOperatorCode_3 QuestionnaireItemOperator = ">"
	QuestionnaireItemOperatorCode_4 QuestionnaireItemOperator = "<"
	QuestionnaireItemOperatorCode_5 QuestionnaireItemOperator = ">="
	QuestionnaireItemOperatorCode_6 QuestionnaireItemOperator = "<="
)

type QuestionnaireItemTypeUsable added in v0.0.3

type QuestionnaireItemTypeUsable string

QuestionnaireItemTypeUsable represents codes from http://hl7.org/fhir/ValueSet/item-type-useable

const (
	QuestionnaireItemTypeUsableGroup      QuestionnaireItemTypeUsable = "group"
	QuestionnaireItemTypeUsableDisplay    QuestionnaireItemTypeUsable = "display"
	QuestionnaireItemTypeUsableQuestion   QuestionnaireItemTypeUsable = "question"
	QuestionnaireItemTypeUsableBoolean    QuestionnaireItemTypeUsable = "boolean"
	QuestionnaireItemTypeUsableDecimal    QuestionnaireItemTypeUsable = "decimal"
	QuestionnaireItemTypeUsableInteger    QuestionnaireItemTypeUsable = "integer"
	QuestionnaireItemTypeUsableDate       QuestionnaireItemTypeUsable = "date"
	QuestionnaireItemTypeUsableDateTime   QuestionnaireItemTypeUsable = "dateTime"
	QuestionnaireItemTypeUsableTime       QuestionnaireItemTypeUsable = "time"
	QuestionnaireItemTypeUsableString     QuestionnaireItemTypeUsable = "string"
	QuestionnaireItemTypeUsableText       QuestionnaireItemTypeUsable = "text"
	QuestionnaireItemTypeUsableUrl        QuestionnaireItemTypeUsable = "url"
	QuestionnaireItemTypeUsableCoding     QuestionnaireItemTypeUsable = "coding"
	QuestionnaireItemTypeUsableAttachment QuestionnaireItemTypeUsable = "attachment"
	QuestionnaireItemTypeUsableReference  QuestionnaireItemTypeUsable = "reference"
	QuestionnaireItemTypeUsableQuantity   QuestionnaireItemTypeUsable = "quantity"
)

type QuestionnaireResponse

type QuestionnaireResponse struct {
	ResourceType  string                      `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                     `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                     `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Business identifier for this set of answers
	BasedOn       []Reference                 `json:"basedOn,omitempty" bson:"based_on,omitempty"`             // Request fulfilled by this QuestionnaireResponse
	PartOf        []Reference                 `json:"partOf,omitempty" bson:"part_of,omitempty"`               // Part of referenced event
	Questionnaire string                      `json:"questionnaire" bson:"questionnaire"`                      // Canonical URL of Questionnaire being answered
	Status        string                      `json:"status" bson:"status"`                                    // in-progress | completed | amended | entered-in-error | stopped
	Subject       *Reference                  `json:"subject,omitempty" bson:"subject,omitempty"`              // The subject of the questions
	Encounter     *Reference                  `json:"encounter,omitempty" bson:"encounter,omitempty"`          // Encounter the questionnaire response is part of
	Authored      *string                     `json:"authored,omitempty" bson:"authored,omitempty"`            // Date the answers were gathered
	Author        *Reference                  `json:"author,omitempty" bson:"author,omitempty"`                // The individual or device that received and recorded the answers
	Source        *Reference                  `json:"source,omitempty" bson:"source,omitempty"`                // The individual or device that answered the questions
	Item          []QuestionnaireResponseItem `json:"item,omitempty" bson:"item,omitempty"`                    // Groups and questions
}

A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to.

func (*QuestionnaireResponse) Validate

func (r *QuestionnaireResponse) Validate() error

type QuestionnaireResponseItem

type QuestionnaireResponseItem struct {
	Id         *string                           `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	LinkId     string                            `json:"linkId" bson:"link_id"`                            // Pointer to specific item from Questionnaire
	Definition []string                          `json:"definition,omitempty" bson:"definition,omitempty"` // ElementDefinition - details for the item
	Text       *string                           `json:"text,omitempty" bson:"text,omitempty"`             // Name for group or question text
	Answer     []QuestionnaireResponseItemAnswer `json:"answer,omitempty" bson:"answer,omitempty"`         // The response(s) to the question
	Item       []QuestionnaireResponseItem       `json:"item,omitempty" bson:"item,omitempty"`             // Child items of group item
}

func (*QuestionnaireResponseItem) Validate

func (r *QuestionnaireResponseItem) Validate() error

type QuestionnaireResponseItemAnswer

type QuestionnaireResponseItemAnswer struct {
	Id              *string                     `json:"id,omitempty" bson:"id,omitempty"`        // Unique id for inter-element referencing
	ValueBoolean    *bool                       `json:"valueBoolean" bson:"value_boolean"`       // Single-valued answer to the question
	ValueDecimal    *float64                    `json:"valueDecimal" bson:"value_decimal"`       // Single-valued answer to the question
	ValueInteger    *int                        `json:"valueInteger" bson:"value_integer"`       // Single-valued answer to the question
	ValueDate       *string                     `json:"valueDate" bson:"value_date"`             // Single-valued answer to the question
	ValueDateTime   *string                     `json:"valueDateTime" bson:"value_date_time"`    // Single-valued answer to the question
	ValueTime       *string                     `json:"valueTime" bson:"value_time"`             // Single-valued answer to the question
	ValueString     *string                     `json:"valueString" bson:"value_string"`         // Single-valued answer to the question
	ValueUri        *string                     `json:"valueUri" bson:"value_uri"`               // Single-valued answer to the question
	ValueAttachment *Attachment                 `json:"valueAttachment" bson:"value_attachment"` // Single-valued answer to the question
	ValueCoding     *Coding                     `json:"valueCoding" bson:"value_coding"`         // Single-valued answer to the question
	ValueQuantity   *Quantity                   `json:"valueQuantity" bson:"value_quantity"`     // Single-valued answer to the question
	ValueReference  *Reference                  `json:"valueReference" bson:"value_reference"`   // Single-valued answer to the question
	Item            []QuestionnaireResponseItem `json:"item,omitempty" bson:"item,omitempty"`    // Child items of question
}

func (*QuestionnaireResponseItemAnswer) Validate

func (r *QuestionnaireResponseItemAnswer) Validate() error

type QuestionnaireResponseStatus added in v0.0.3

type QuestionnaireResponseStatus string

QuestionnaireResponseStatus represents codes from http://hl7.org/fhir/ValueSet/questionnaire-answers-status

const (
	QuestionnaireResponseStatusInProgress     QuestionnaireResponseStatus = "in-progress"
	QuestionnaireResponseStatusCompleted      QuestionnaireResponseStatus = "completed"
	QuestionnaireResponseStatusAmended        QuestionnaireResponseStatus = "amended"
	QuestionnaireResponseStatusEnteredInError QuestionnaireResponseStatus = "entered-in-error"
	QuestionnaireResponseStatusStopped        QuestionnaireResponseStatus = "stopped"
)

type Range

type Range struct {
	Id   *string   `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Low  *Quantity `json:"low,omitempty" bson:"low,omitempty"`   // Low limit
	High *Quantity `json:"high,omitempty" bson:"high,omitempty"` // High limit
}

Range Type: A set of ordered Quantities defined by a low and high limit.

func (*Range) Validate

func (r *Range) Validate() error

type Ratio

type Ratio struct {
	Id          *string   `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Numerator   *Quantity `json:"numerator,omitempty" bson:"numerator,omitempty"`     // Numerator value
	Denominator *Quantity `json:"denominator,omitempty" bson:"denominator,omitempty"` // Denominator value
}

Ratio Type: A relationship of two Quantity values - expressed as a numerator and a denominator.

func (*Ratio) Validate

func (r *Ratio) Validate() error

type RatioRange

type RatioRange struct {
	Id            *string   `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	LowNumerator  *Quantity `json:"lowNumerator,omitempty" bson:"low_numerator,omitempty"`   // Low Numerator limit
	HighNumerator *Quantity `json:"highNumerator,omitempty" bson:"high_numerator,omitempty"` // High Numerator limit
	Denominator   *Quantity `json:"denominator,omitempty" bson:"denominator,omitempty"`      // Denominator value
}

RatioRange Type: A range of ratios expressed as a low and high numerator and a denominator.

func (*RatioRange) Validate

func (r *RatioRange) Validate() error

type Reference

type Reference struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Reference  *string     `json:"reference,omitempty" bson:"reference,omitempty"`   // Literal reference, Relative, internal or absolute URL
	Type       *string     `json:"type,omitempty" bson:"type,omitempty"`             // Type the reference refers to (e.g. "Patient") - must be a resource in resources
	Identifier *Identifier `json:"identifier,omitempty" bson:"identifier,omitempty"` // Logical reference, when literal reference is not known
	Display    *string     `json:"display,omitempty" bson:"display,omitempty"`       // Text alternative for the resource
}

Reference Type: A reference from one resource to another.

func (*Reference) Validate

func (r *Reference) Validate() error

type ReferenceHandlingPolicy added in v0.0.3

type ReferenceHandlingPolicy string

ReferenceHandlingPolicy represents codes from http://hl7.org/fhir/ValueSet/reference-handling-policy

const (
	ReferenceHandlingPolicyLiteral  ReferenceHandlingPolicy = "literal"
	ReferenceHandlingPolicyLogical  ReferenceHandlingPolicy = "logical"
	ReferenceHandlingPolicyResolves ReferenceHandlingPolicy = "resolves"
	ReferenceHandlingPolicyEnforced ReferenceHandlingPolicy = "enforced"
	ReferenceHandlingPolicyLocal    ReferenceHandlingPolicy = "local"
)

type ReferenceVersionRules added in v0.0.3

type ReferenceVersionRules string

ReferenceVersionRules represents codes from http://hl7.org/fhir/ValueSet/reference-version-rules

const (
	ReferenceVersionRulesEither      ReferenceVersionRules = "either"
	ReferenceVersionRulesIndependent ReferenceVersionRules = "independent"
	ReferenceVersionRulesSpecific    ReferenceVersionRules = "specific"
)

type RegulatedAuthorization

type RegulatedAuthorization struct {
	ResourceType     string                      `json:"resourceType" bson:"resource_type"`                             // Type of resource
	Id               *string                     `json:"id,omitempty" bson:"id,omitempty"`                              // Logical id of this artifact
	Meta             *Meta                       `json:"meta,omitempty" bson:"meta,omitempty"`                          // Metadata about the resource
	ImplicitRules    *string                     `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`       // A set of rules under which this content was created
	Language         *string                     `json:"language,omitempty" bson:"language,omitempty"`                  // Language of the resource content
	Text             *Narrative                  `json:"text,omitempty" bson:"text,omitempty"`                          // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage           `json:"contained,omitempty" bson:"contained,omitempty"`                // Contained, inline Resources
	Identifier       []Identifier                `json:"identifier,omitempty" bson:"identifier,omitempty"`              // Business identifier for the authorization, typically assigned by the authorizing body
	Subject          []Reference                 `json:"subject,omitempty" bson:"subject,omitempty"`                    // The product type, treatment, facility or activity that is being authorized
	Type             *CodeableConcept            `json:"type,omitempty" bson:"type,omitempty"`                          // Overall type of this authorization, for example drug marketing approval, orphan drug designation
	Description      *string                     `json:"description,omitempty" bson:"description,omitempty"`            // General textual supporting information
	Region           []CodeableConcept           `json:"region,omitempty" bson:"region,omitempty"`                      // The territory in which the authorization has been granted
	Status           *CodeableConcept            `json:"status,omitempty" bson:"status,omitempty"`                      // The status that is authorised e.g. approved. Intermediate states can be tracked with cases and applications
	StatusDate       *string                     `json:"statusDate,omitempty" bson:"status_date,omitempty"`             // The date at which the current status was assigned
	ValidityPeriod   *Period                     `json:"validityPeriod,omitempty" bson:"validity_period,omitempty"`     // The time period in which the regulatory approval etc. is in effect, e.g. a Marketing Authorization includes the date of authorization and/or expiration date
	Indication       []CodeableReference         `json:"indication,omitempty" bson:"indication,omitempty"`              // Condition for which the use of the regulated product applies
	IntendedUse      *CodeableConcept            `json:"intendedUse,omitempty" bson:"intended_use,omitempty"`           // The intended use of the product, e.g. prevention, treatment
	Basis            []CodeableConcept           `json:"basis,omitempty" bson:"basis,omitempty"`                        // The legal/regulatory framework or reasons under which this authorization is granted
	Holder           *Reference                  `json:"holder,omitempty" bson:"holder,omitempty"`                      // The organization that has been granted this authorization, by the regulator
	Regulator        *Reference                  `json:"regulator,omitempty" bson:"regulator,omitempty"`                // The regulatory authority or authorizing body granting the authorization
	AttachedDocument []Reference                 `json:"attachedDocument,omitempty" bson:"attached_document,omitempty"` // Additional information or supporting documentation about the authorization
	Case             *RegulatedAuthorizationCase `json:"case,omitempty" bson:"case,omitempty"`                          // The case or regulatory procedure for granting or amending a regulated authorization. Note: This area is subject to ongoing review and the workgroup is seeking implementer feedback on its use (see link at bottom of page)
}

Regulatory approval, clearance or licensing related to a regulated product, treatment, facility or activity that is cited in a guidance, regulation, rule or legislative act. An example is Market Authorization relating to a Medicinal Product.

func (*RegulatedAuthorization) Validate

func (r *RegulatedAuthorization) Validate() error

type RegulatedAuthorizationCase

type RegulatedAuthorizationCase struct {
	Id           *string                      `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Identifier   *Identifier                  `json:"identifier,omitempty" bson:"identifier,omitempty"`       // Identifier by which this case can be referenced
	Type         *CodeableConcept             `json:"type,omitempty" bson:"type,omitempty"`                   // The defining type of case
	Status       *CodeableConcept             `json:"status,omitempty" bson:"status,omitempty"`               // The status associated with the case
	DatePeriod   *Period                      `json:"datePeriod,omitempty" bson:"date_period,omitempty"`      // Relevant date for this case
	DateDateTime *string                      `json:"dateDateTime,omitempty" bson:"date_date_time,omitempty"` // Relevant date for this case
	Application  []RegulatedAuthorizationCase `json:"application,omitempty" bson:"application,omitempty"`     // Applications submitted to obtain a regulated authorization. Steps within the longer running case or procedure
}

func (*RegulatedAuthorizationCase) Validate

func (r *RegulatedAuthorizationCase) Validate() error

type RelatedArtifact

type RelatedArtifact struct {
	Id                 *string     `json:"id,omitempty" bson:"id,omitempty"`                                  // Unique id for inter-element referencing
	Type               string      `json:"type" bson:"type"`                                                  // documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of
	Label              *string     `json:"label,omitempty" bson:"label,omitempty"`                            // Short label
	Display            *string     `json:"display,omitempty" bson:"display,omitempty"`                        // Brief description of the related artifact
	Citation           *string     `json:"citation,omitempty" bson:"citation,omitempty"`                      // Bibliographic citation for the artifact
	Document           *Attachment `json:"document,omitempty" bson:"document,omitempty"`                      // What document is being referenced
	Resource           *string     `json:"resource,omitempty" bson:"resource,omitempty"`                      // What artifact is being referenced
	ResourceReference  *Reference  `json:"resourceReference,omitempty" bson:"resource_reference,omitempty"`   // What artifact, if not a conformance resource
	ArtifactMarkdown   *string     `json:"artifactMarkdown,omitempty" bson:"artifact_markdown,omitempty"`     // What document, citation, artifact, or resource is being referenced
	ArtifactAttachment *Attachment `json:"artifactAttachment,omitempty" bson:"artifact_attachment,omitempty"` // What document, citation, artifact, or resource is being referenced
	ArtifactCanonical  *string     `json:"artifactCanonical,omitempty" bson:"artifact_canonical,omitempty"`   // What document, citation, artifact, or resource is being referenced
	ArtifactReference  *Reference  `json:"artifactReference,omitempty" bson:"artifact_reference,omitempty"`   // What document, citation, artifact, or resource is being referenced
}

RelatedArtifact Type: Related artifacts such as dependencies, components, additional documentation, justification, or bibliographic references.

func (*RelatedArtifact) Validate

func (r *RelatedArtifact) Validate() error

type RelatedArtifactType added in v0.0.3

type RelatedArtifactType string

RelatedArtifactType represents codes from http://hl7.org/fhir/ValueSet/related-artifact-type

const (
	RelatedArtifactTypeDocumentation RelatedArtifactType = "documentation"
	RelatedArtifactTypeJustification RelatedArtifactType = "justification"
	RelatedArtifactTypeCitation      RelatedArtifactType = "citation"
	RelatedArtifactTypePredecessor   RelatedArtifactType = "predecessor"
	RelatedArtifactTypeSuccessor     RelatedArtifactType = "successor"
	RelatedArtifactTypeDerivedFrom   RelatedArtifactType = "derived-from"
	RelatedArtifactTypeDependsOn     RelatedArtifactType = "depends-on"
	RelatedArtifactTypeComposedOf    RelatedArtifactType = "composed-of"
	RelatedArtifactTypePartOf        RelatedArtifactType = "part-of"
)

type RelatedPerson

type RelatedPerson struct {
	ResourceType  string                       `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string                      `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                        `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string                      `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string                      `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative                   `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage            `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`        // A human identifier for this person
	Active        *bool                        `json:"active,omitempty" bson:"active,omitempty"`                // Whether this related person's record is in active use
	Patient       *Reference                   `json:"patient" bson:"patient"`                                  // The patient this person is related to
	Relationship  []CodeableConcept            `json:"relationship,omitempty" bson:"relationship,omitempty"`    // The personal relationship of the related person to the patient
	Role          []CodeableConcept            `json:"role,omitempty" bson:"role,omitempty"`                    // The functional role of the related person to the patient
	Name          []HumanName                  `json:"name,omitempty" bson:"name,omitempty"`                    // A name associated with the person
	Telecom       []ContactPoint               `json:"telecom,omitempty" bson:"telecom,omitempty"`              // A contact detail for the person
	Gender        *string                      `json:"gender,omitempty" bson:"gender,omitempty"`                // male | female | other | unknown
	BirthDate     *string                      `json:"birthDate,omitempty" bson:"birth_date,omitempty"`         // The date on which the related person was born
	Address       []Address                    `json:"address,omitempty" bson:"address,omitempty"`              // Address where the related person can be contacted or visited
	Photo         []Attachment                 `json:"photo,omitempty" bson:"photo,omitempty"`                  // Image of the person
	Period        *Period                      `json:"period,omitempty" bson:"period,omitempty"`                // Period of time that this relationship is considered valid
	Communication []RelatedPersonCommunication `json:"communication,omitempty" bson:"communication,omitempty"`  // A language which may be used to communicate with the related person about the patient's health
}

Information about a person that is involved in a patient's health or the care for a patient, but who is not the primary target of healthcare.

func (*RelatedPerson) Validate

func (r *RelatedPerson) Validate() error

type RelatedPersonCommunication

type RelatedPersonCommunication struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Language  *CodeableConcept `json:"language" bson:"language"`                       // The language which can be used to communicate with the related person about the patient's health
	Preferred *bool            `json:"preferred,omitempty" bson:"preferred,omitempty"` // Language preference indicator
}

func (*RelatedPersonCommunication) Validate

func (r *RelatedPersonCommunication) Validate() error

type RelativeTime

type RelativeTime struct {
	Id                *string          `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	ContextReference  *Reference       `json:"contextReference,omitempty" bson:"context_reference,omitempty"`   // The specific event occurrence or resource context used as a base point (reference point) in time
	ContextDefinition *string          `json:"contextDefinition,omitempty" bson:"context_definition,omitempty"` // The type of event used as a base point
	ContextPath       *string          `json:"contextPath,omitempty" bson:"context_path,omitempty"`             // Path to the element defining the basis for the relative time
	ContextCode       *CodeableConcept `json:"contextCode,omitempty" bson:"context_code,omitempty"`             // Coded representation of the event used as a base point (reference point) in time
	OffsetDuration    *Duration        `json:"offsetDuration,omitempty" bson:"offset_duration,omitempty"`       // An offset or offset range before (negative values) or after (positive values) the event
	OffsetRange       *Range           `json:"offsetRange,omitempty" bson:"offset_range,omitempty"`             // An offset or offset range before (negative values) or after (positive values) the event
	Text              *string          `json:"text,omitempty" bson:"text,omitempty"`                            // Free-text description
}

RelativeTime Type: RelativeTime expresses a time or time period as relative to the time of an event defined in data types other than dateTime.

func (*RelativeTime) Validate

func (r *RelativeTime) Validate() error

type RequestIntent added in v0.0.3

type RequestIntent string

RequestIntent represents codes from http://hl7.org/fhir/ValueSet/request-intent

const (
	RequestIntentProposal      RequestIntent = "proposal"
	RequestIntentSolicitOffer  RequestIntent = "solicit-offer"
	RequestIntentOfferResponse RequestIntent = "offer-response"
	RequestIntentPlan          RequestIntent = "plan"
	RequestIntentDirective     RequestIntent = "directive"
	RequestIntentOrder         RequestIntent = "order"
	RequestIntentOriginalOrder RequestIntent = "original-order"
	RequestIntentReflexOrder   RequestIntent = "reflex-order"
	RequestIntentFillerOrder   RequestIntent = "filler-order"
	RequestIntentInstanceOrder RequestIntent = "instance-order"
	RequestIntentOption        RequestIntent = "option"
)

type RequestOrchestration

type RequestOrchestration struct {
	ResourceType          string                       `json:"resourceType" bson:"resource_type"`                                       // Type of resource
	Id                    *string                      `json:"id,omitempty" bson:"id,omitempty"`                                        // Logical id of this artifact
	Meta                  *Meta                        `json:"meta,omitempty" bson:"meta,omitempty"`                                    // Metadata about the resource
	ImplicitRules         *string                      `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                 // A set of rules under which this content was created
	Language              *string                      `json:"language,omitempty" bson:"language,omitempty"`                            // Language of the resource content
	Text                  *Narrative                   `json:"text,omitempty" bson:"text,omitempty"`                                    // Text summary of the resource, for human interpretation
	Contained             []json.RawMessage            `json:"contained,omitempty" bson:"contained,omitempty"`                          // Contained, inline Resources
	Identifier            []Identifier                 `json:"identifier,omitempty" bson:"identifier,omitempty"`                        // Business identifier
	InstantiatesCanonical []string                     `json:"instantiatesCanonical,omitempty" bson:"instantiates_canonical,omitempty"` // Instantiates FHIR protocol or definition
	InstantiatesUri       []string                     `json:"instantiatesUri,omitempty" bson:"instantiates_uri,omitempty"`             // Instantiates external protocol or definition
	BasedOn               []Reference                  `json:"basedOn,omitempty" bson:"based_on,omitempty"`                             // Fulfills plan, proposal, or order
	Replaces              []Reference                  `json:"replaces,omitempty" bson:"replaces,omitempty"`                            // Request(s) replaced by this request
	GroupIdentifier       *Identifier                  `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"`             // Composite request this is part of
	Status                string                       `json:"status" bson:"status"`                                                    // draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
	Intent                string                       `json:"intent" bson:"intent"`                                                    // proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
	Priority              *string                      `json:"priority,omitempty" bson:"priority,omitempty"`                            // routine | urgent | asap | stat
	Code                  *CodeableConcept             `json:"code,omitempty" bson:"code,omitempty"`                                    // What's being requested/ordered
	Subject               *Reference                   `json:"subject,omitempty" bson:"subject,omitempty"`                              // Who the request orchestration is about
	Encounter             *Reference                   `json:"encounter,omitempty" bson:"encounter,omitempty"`                          // Created as part of
	AuthoredOn            *string                      `json:"authoredOn,omitempty" bson:"authored_on,omitempty"`                       // When the request orchestration was authored
	Author                *Reference                   `json:"author,omitempty" bson:"author,omitempty"`                                // Device or practitioner that authored the request orchestration
	Reason                []CodeableReference          `json:"reason,omitempty" bson:"reason,omitempty"`                                // Why the request orchestration is needed
	Goal                  []Reference                  `json:"goal,omitempty" bson:"goal,omitempty"`                                    // What goals
	Note                  []Annotation                 `json:"note,omitempty" bson:"note,omitempty"`                                    // Additional notes about the response
	Action                []RequestOrchestrationAction `json:"action,omitempty" bson:"action,omitempty"`                                // Proposed actions, if any
}

A set of related requests that can be used to capture intended activities that have inter-dependencies such as "give this medication after that one".

func (*RequestOrchestration) Validate

func (r *RequestOrchestration) Validate() error

type RequestOrchestrationAction

type RequestOrchestrationAction struct {
	Id                    *string                                   `json:"id,omitempty" bson:"id,omitempty"`                                        // Unique id for inter-element referencing
	LinkId                *string                                   `json:"linkId,omitempty" bson:"link_id,omitempty"`                               // Pointer to specific item from the PlanDefinition
	Prefix                *string                                   `json:"prefix,omitempty" bson:"prefix,omitempty"`                                // User-visible prefix for the action (e.g. 1. or A.)
	Title                 *string                                   `json:"title,omitempty" bson:"title,omitempty"`                                  // User-visible title
	Description           *string                                   `json:"description,omitempty" bson:"description,omitempty"`                      // Short description of the action
	TextEquivalent        *string                                   `json:"textEquivalent,omitempty" bson:"text_equivalent,omitempty"`               // Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
	Priority              *string                                   `json:"priority,omitempty" bson:"priority,omitempty"`                            // routine | urgent | asap | stat
	Code                  []CodeableConcept                         `json:"code,omitempty" bson:"code,omitempty"`                                    // Code representing the meaning of the action or sub-actions
	Documentation         []RelatedArtifact                         `json:"documentation,omitempty" bson:"documentation,omitempty"`                  // Supporting documentation for the intended performer of the action
	Goal                  []Reference                               `json:"goal,omitempty" bson:"goal,omitempty"`                                    // What goals
	Condition             []RequestOrchestrationActionCondition     `json:"condition,omitempty" bson:"condition,omitempty"`                          // Whether or not the action is applicable
	Input                 []RequestOrchestrationActionInput         `json:"input,omitempty" bson:"input,omitempty"`                                  // Input data requirements
	Output                []RequestOrchestrationActionOutput        `json:"output,omitempty" bson:"output,omitempty"`                                // Output data definition
	RelatedAction         []RequestOrchestrationActionRelatedAction `json:"relatedAction,omitempty" bson:"related_action,omitempty"`                 // Relationship to another action
	TimingDateTime        *string                                   `json:"timingDateTime,omitempty" bson:"timing_date_time,omitempty"`              // When the action should take place
	TimingAge             *Age                                      `json:"timingAge,omitempty" bson:"timing_age,omitempty"`                         // When the action should take place
	TimingPeriod          *Period                                   `json:"timingPeriod,omitempty" bson:"timing_period,omitempty"`                   // When the action should take place
	TimingDuration        *Duration                                 `json:"timingDuration,omitempty" bson:"timing_duration,omitempty"`               // When the action should take place
	TimingRange           *Range                                    `json:"timingRange,omitempty" bson:"timing_range,omitempty"`                     // When the action should take place
	TimingTiming          *Timing                                   `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`                   // When the action should take place
	TimingRelativeTime    *RelativeTime                             `json:"timingRelativeTime,omitempty" bson:"timing_relative_time,omitempty"`      // When the action should take place
	Location              *CodeableReference                        `json:"location,omitempty" bson:"location,omitempty"`                            // Where it should happen
	Participant           []RequestOrchestrationActionParticipant   `json:"participant,omitempty" bson:"participant,omitempty"`                      // Who should perform the action
	Type                  *CodeableConcept                          `json:"type,omitempty" bson:"type,omitempty"`                                    // create | update | remove | fire-event
	ApplicabilityBehavior *string                                   `json:"applicabilityBehavior,omitempty" bson:"applicability_behavior,omitempty"` // all | any
	GroupingBehavior      *string                                   `json:"groupingBehavior,omitempty" bson:"grouping_behavior,omitempty"`           // visual-group | logical-group | sentence-group
	SelectionBehavior     *string                                   `json:"selectionBehavior,omitempty" bson:"selection_behavior,omitempty"`         // any | all | all-or-none | exactly-one | at-most-one | one-or-more
	RequiredBehavior      *string                                   `json:"requiredBehavior,omitempty" bson:"required_behavior,omitempty"`           // must | could | must-unless-documented
	PrecheckBehavior      *string                                   `json:"precheckBehavior,omitempty" bson:"precheck_behavior,omitempty"`           // yes | no
	CardinalityBehavior   *string                                   `json:"cardinalityBehavior,omitempty" bson:"cardinality_behavior,omitempty"`     // single | multiple
	Resource              *Reference                                `json:"resource,omitempty" bson:"resource,omitempty"`                            // The target of the action
	DefinitionCanonical   *string                                   `json:"definitionCanonical,omitempty" bson:"definition_canonical,omitempty"`     // Description of the activity to be performed
	DefinitionUri         *string                                   `json:"definitionUri,omitempty" bson:"definition_uri,omitempty"`                 // Description of the activity to be performed
	Transform             *string                                   `json:"transform,omitempty" bson:"transform,omitempty"`                          // Transform to apply the template
	DynamicValue          []RequestOrchestrationActionDynamicValue  `json:"dynamicValue,omitempty" bson:"dynamic_value,omitempty"`                   // Dynamic aspects of the definition
	Action                []RequestOrchestrationAction              `json:"action,omitempty" bson:"action,omitempty"`                                // Sub action
}

func (*RequestOrchestrationAction) Validate

func (r *RequestOrchestrationAction) Validate() error

type RequestOrchestrationActionCondition

type RequestOrchestrationActionCondition struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Kind       string      `json:"kind" bson:"kind"`                                 // applicability | start | stop
	Expression *Expression `json:"expression,omitempty" bson:"expression,omitempty"` // Boolean-valued expression
}

func (*RequestOrchestrationActionCondition) Validate

type RequestOrchestrationActionDynamicValue

type RequestOrchestrationActionDynamicValue struct {
	Id         *string     `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Path       *string     `json:"path,omitempty" bson:"path,omitempty"`             // The path to the element to be set dynamically
	Expression *Expression `json:"expression,omitempty" bson:"expression,omitempty"` // An expression that provides the dynamic value for the customization
}

func (*RequestOrchestrationActionDynamicValue) Validate

type RequestOrchestrationActionInput

type RequestOrchestrationActionInput struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Title       *string          `json:"title,omitempty" bson:"title,omitempty"`              // User-visible title
	Requirement *DataRequirement `json:"requirement,omitempty" bson:"requirement,omitempty"`  // What data is provided
	RelatedData *string          `json:"relatedData,omitempty" bson:"related_data,omitempty"` // What data is provided
}

func (*RequestOrchestrationActionInput) Validate

func (r *RequestOrchestrationActionInput) Validate() error

type RequestOrchestrationActionOutput

type RequestOrchestrationActionOutput struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Title       *string          `json:"title,omitempty" bson:"title,omitempty"`              // User-visible title
	Requirement *DataRequirement `json:"requirement,omitempty" bson:"requirement,omitempty"`  // What data is provided
	RelatedData *string          `json:"relatedData,omitempty" bson:"related_data,omitempty"` // What data is provided
}

func (*RequestOrchestrationActionOutput) Validate

type RequestOrchestrationActionParticipant

type RequestOrchestrationActionParticipant struct {
	Id             *string          `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Type           *string          `json:"type,omitempty" bson:"type,omitempty"`                      // careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson
	TypeCanonical  *string          `json:"typeCanonical,omitempty" bson:"type_canonical,omitempty"`   // Who or what can participate
	TypeReference  *Reference       `json:"typeReference,omitempty" bson:"type_reference,omitempty"`   // Who or what can participate
	Role           *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                      // E.g. Nurse, Surgeon, Parent, etc
	Function       *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"`              // E.g. Author, Reviewer, Witness, etc
	ActorCanonical *string          `json:"actorCanonical,omitempty" bson:"actor_canonical,omitempty"` // Who/what is participating?
	ActorReference *Reference       `json:"actorReference,omitempty" bson:"actor_reference,omitempty"` // Who/what is participating?
}

func (*RequestOrchestrationActionParticipant) Validate

type RequestOrchestrationActionRelatedAction

type RequestOrchestrationActionRelatedAction struct {
	Id              *string   `json:"id,omitempty" bson:"id,omitempty"`                            // Unique id for inter-element referencing
	TargetId        string    `json:"targetId" bson:"target_id"`                                   // What action this is related to
	Relationship    string    `json:"relationship" bson:"relationship"`                            // before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
	EndRelationship *string   `json:"endRelationship,omitempty" bson:"end_relationship,omitempty"` // before | before-start | before-end | concurrent | concurrent-with-start | concurrent-with-end | after | after-start | after-end
	OffsetDuration  *Duration `json:"offsetDuration,omitempty" bson:"offset_duration,omitempty"`   // Time offset for the relationship
	OffsetRange     *Range    `json:"offsetRange,omitempty" bson:"offset_range,omitempty"`         // Time offset for the relationship
}

func (*RequestOrchestrationActionRelatedAction) Validate

type RequestPriority added in v0.0.3

type RequestPriority string

RequestPriority represents codes from http://hl7.org/fhir/ValueSet/request-priority

const (
	RequestPriorityRoutine RequestPriority = "routine"
	RequestPriorityUrgent  RequestPriority = "urgent"
	RequestPriorityAsap    RequestPriority = "asap"
	RequestPriorityStat    RequestPriority = "stat"
)

type RequestResourceTypes added in v0.0.3

type RequestResourceTypes string

RequestResourceTypes represents codes from http://hl7.org/fhir/ValueSet/request-resource-types

const (
	RequestResourceTypesBase                           RequestResourceTypes = "Base"
	RequestResourceTypesElement                        RequestResourceTypes = "Element"
	RequestResourceTypesBackboneElement                RequestResourceTypes = "BackboneElement"
	RequestResourceTypesDataType                       RequestResourceTypes = "DataType"
	RequestResourceTypesAddress                        RequestResourceTypes = "Address"
	RequestResourceTypesAnnotation                     RequestResourceTypes = "Annotation"
	RequestResourceTypesAttachment                     RequestResourceTypes = "Attachment"
	RequestResourceTypesAvailability                   RequestResourceTypes = "Availability"
	RequestResourceTypesBackboneType                   RequestResourceTypes = "BackboneType"
	RequestResourceTypesDosage                         RequestResourceTypes = "Dosage"
	RequestResourceTypesDosageCondition                RequestResourceTypes = "DosageCondition"
	RequestResourceTypesDosageDetails                  RequestResourceTypes = "DosageDetails"
	RequestResourceTypesDosageSafety                   RequestResourceTypes = "DosageSafety"
	RequestResourceTypesElementDefinition              RequestResourceTypes = "ElementDefinition"
	RequestResourceTypesMarketingStatus                RequestResourceTypes = "MarketingStatus"
	RequestResourceTypesProductShelfLife               RequestResourceTypes = "ProductShelfLife"
	RequestResourceTypesRelativeTime                   RequestResourceTypes = "RelativeTime"
	RequestResourceTypesTiming                         RequestResourceTypes = "Timing"
	RequestResourceTypesCodeableConcept                RequestResourceTypes = "CodeableConcept"
	RequestResourceTypesCodeableReference              RequestResourceTypes = "CodeableReference"
	RequestResourceTypesCoding                         RequestResourceTypes = "Coding"
	RequestResourceTypesContactDetail                  RequestResourceTypes = "ContactDetail"
	RequestResourceTypesContactPoint                   RequestResourceTypes = "ContactPoint"
	RequestResourceTypesDataRequirement                RequestResourceTypes = "DataRequirement"
	RequestResourceTypesExpression                     RequestResourceTypes = "Expression"
	RequestResourceTypesExtendedContactDetail          RequestResourceTypes = "ExtendedContactDetail"
	RequestResourceTypesExtension                      RequestResourceTypes = "Extension"
	RequestResourceTypesHumanName                      RequestResourceTypes = "HumanName"
	RequestResourceTypesIdentifier                     RequestResourceTypes = "Identifier"
	RequestResourceTypesMeta                           RequestResourceTypes = "Meta"
	RequestResourceTypesMonetaryComponent              RequestResourceTypes = "MonetaryComponent"
	RequestResourceTypesMoney                          RequestResourceTypes = "Money"
	RequestResourceTypesNarrative                      RequestResourceTypes = "Narrative"
	RequestResourceTypesParameterDefinition            RequestResourceTypes = "ParameterDefinition"
	RequestResourceTypesPeriod                         RequestResourceTypes = "Period"
	RequestResourceTypesPrimitiveType                  RequestResourceTypes = "PrimitiveType"
	RequestResourceTypesBase64Binary                   RequestResourceTypes = "base64Binary"
	RequestResourceTypesBoolean                        RequestResourceTypes = "boolean"
	RequestResourceTypesDate                           RequestResourceTypes = "date"
	RequestResourceTypesDateTime                       RequestResourceTypes = "dateTime"
	RequestResourceTypesDecimal                        RequestResourceTypes = "decimal"
	RequestResourceTypesInstant                        RequestResourceTypes = "instant"
	RequestResourceTypesInteger                        RequestResourceTypes = "integer"
	RequestResourceTypesPositiveInt                    RequestResourceTypes = "positiveInt"
	RequestResourceTypesUnsignedInt                    RequestResourceTypes = "unsignedInt"
	RequestResourceTypesInteger64                      RequestResourceTypes = "integer64"
	RequestResourceTypesString                         RequestResourceTypes = "string"
	RequestResourceTypesCode                           RequestResourceTypes = "code"
	RequestResourceTypesId                             RequestResourceTypes = "id"
	RequestResourceTypesMarkdown                       RequestResourceTypes = "markdown"
	RequestResourceTypesTime                           RequestResourceTypes = "time"
	RequestResourceTypesUri                            RequestResourceTypes = "uri"
	RequestResourceTypesCanonical                      RequestResourceTypes = "canonical"
	RequestResourceTypesOid                            RequestResourceTypes = "oid"
	RequestResourceTypesUrl                            RequestResourceTypes = "url"
	RequestResourceTypesUuid                           RequestResourceTypes = "uuid"
	RequestResourceTypesQuantity                       RequestResourceTypes = "Quantity"
	RequestResourceTypesAge                            RequestResourceTypes = "Age"
	RequestResourceTypesCount                          RequestResourceTypes = "Count"
	RequestResourceTypesDistance                       RequestResourceTypes = "Distance"
	RequestResourceTypesDuration                       RequestResourceTypes = "Duration"
	RequestResourceTypesRange                          RequestResourceTypes = "Range"
	RequestResourceTypesRatio                          RequestResourceTypes = "Ratio"
	RequestResourceTypesRatioRange                     RequestResourceTypes = "RatioRange"
	RequestResourceTypesReference                      RequestResourceTypes = "Reference"
	RequestResourceTypesRelatedArtifact                RequestResourceTypes = "RelatedArtifact"
	RequestResourceTypesSampledData                    RequestResourceTypes = "SampledData"
	RequestResourceTypesSignature                      RequestResourceTypes = "Signature"
	RequestResourceTypesTriggerDefinition              RequestResourceTypes = "TriggerDefinition"
	RequestResourceTypesUsageContext                   RequestResourceTypes = "UsageContext"
	RequestResourceTypesVirtualServiceDetail           RequestResourceTypes = "VirtualServiceDetail"
	RequestResourceTypesXhtml                          RequestResourceTypes = "xhtml"
	RequestResourceTypesResource                       RequestResourceTypes = "Resource"
	RequestResourceTypesBinary                         RequestResourceTypes = "Binary"
	RequestResourceTypesBundle                         RequestResourceTypes = "Bundle"
	RequestResourceTypesDomainResource                 RequestResourceTypes = "DomainResource"
	RequestResourceTypesAccount                        RequestResourceTypes = "Account"
	RequestResourceTypesActivityDefinition             RequestResourceTypes = "ActivityDefinition"
	RequestResourceTypesActorDefinition                RequestResourceTypes = "ActorDefinition"
	RequestResourceTypesAdministrableProductDefinition RequestResourceTypes = "AdministrableProductDefinition"
	RequestResourceTypesAdverseEvent                   RequestResourceTypes = "AdverseEvent"
	RequestResourceTypesAllergyIntolerance             RequestResourceTypes = "AllergyIntolerance"
	RequestResourceTypesAppointment                    RequestResourceTypes = "Appointment"
	RequestResourceTypesAppointmentResponse            RequestResourceTypes = "AppointmentResponse"
	RequestResourceTypesArtifactAssessment             RequestResourceTypes = "ArtifactAssessment"
	RequestResourceTypesAuditEvent                     RequestResourceTypes = "AuditEvent"
	RequestResourceTypesBasic                          RequestResourceTypes = "Basic"
	RequestResourceTypesBiologicallyDerivedProduct     RequestResourceTypes = "BiologicallyDerivedProduct"
	RequestResourceTypesBodyStructure                  RequestResourceTypes = "BodyStructure"
	RequestResourceTypesCanonicalResource              RequestResourceTypes = "CanonicalResource"
	RequestResourceTypesCapabilityStatement            RequestResourceTypes = "CapabilityStatement"
	RequestResourceTypesCarePlan                       RequestResourceTypes = "CarePlan"
	RequestResourceTypesCareTeam                       RequestResourceTypes = "CareTeam"
	RequestResourceTypesClaim                          RequestResourceTypes = "Claim"
	RequestResourceTypesClaimResponse                  RequestResourceTypes = "ClaimResponse"
	RequestResourceTypesClinicalUseDefinition          RequestResourceTypes = "ClinicalUseDefinition"
	RequestResourceTypesCodeSystem                     RequestResourceTypes = "CodeSystem"
	RequestResourceTypesCommunication                  RequestResourceTypes = "Communication"
	RequestResourceTypesCommunicationRequest           RequestResourceTypes = "CommunicationRequest"
	RequestResourceTypesCompartmentDefinition          RequestResourceTypes = "CompartmentDefinition"
	RequestResourceTypesComposition                    RequestResourceTypes = "Composition"
	RequestResourceTypesConceptMap                     RequestResourceTypes = "ConceptMap"
	RequestResourceTypesCondition                      RequestResourceTypes = "Condition"
	RequestResourceTypesConsent                        RequestResourceTypes = "Consent"
	RequestResourceTypesContract                       RequestResourceTypes = "Contract"
	RequestResourceTypesCoverage                       RequestResourceTypes = "Coverage"
	RequestResourceTypesCoverageEligibilityRequest     RequestResourceTypes = "CoverageEligibilityRequest"
	RequestResourceTypesCoverageEligibilityResponse    RequestResourceTypes = "CoverageEligibilityResponse"
	RequestResourceTypesDetectedIssue                  RequestResourceTypes = "DetectedIssue"
	RequestResourceTypesDevice                         RequestResourceTypes = "Device"
	RequestResourceTypesDeviceAlert                    RequestResourceTypes = "DeviceAlert"
	RequestResourceTypesDeviceAssociation              RequestResourceTypes = "DeviceAssociation"
	RequestResourceTypesDeviceDefinition               RequestResourceTypes = "DeviceDefinition"
	RequestResourceTypesDeviceMetric                   RequestResourceTypes = "DeviceMetric"
	RequestResourceTypesDeviceRequest                  RequestResourceTypes = "DeviceRequest"
	RequestResourceTypesDiagnosticReport               RequestResourceTypes = "DiagnosticReport"
	RequestResourceTypesDocumentReference              RequestResourceTypes = "DocumentReference"
	RequestResourceTypesEncounter                      RequestResourceTypes = "Encounter"
	RequestResourceTypesEndpoint                       RequestResourceTypes = "Endpoint"
	RequestResourceTypesEnrollmentRequest              RequestResourceTypes = "EnrollmentRequest"
	RequestResourceTypesEnrollmentResponse             RequestResourceTypes = "EnrollmentResponse"
	RequestResourceTypesEpisodeOfCare                  RequestResourceTypes = "EpisodeOfCare"
	RequestResourceTypesEventDefinition                RequestResourceTypes = "EventDefinition"
	RequestResourceTypesEvidence                       RequestResourceTypes = "Evidence"
	RequestResourceTypesEvidenceVariable               RequestResourceTypes = "EvidenceVariable"
	RequestResourceTypesExampleScenario                RequestResourceTypes = "ExampleScenario"
	RequestResourceTypesExplanationOfBenefit           RequestResourceTypes = "ExplanationOfBenefit"
	RequestResourceTypesFamilyMemberHistory            RequestResourceTypes = "FamilyMemberHistory"
	RequestResourceTypesFlag                           RequestResourceTypes = "Flag"
	RequestResourceTypesGoal                           RequestResourceTypes = "Goal"
	RequestResourceTypesGroup                          RequestResourceTypes = "Group"
	RequestResourceTypesGuidanceResponse               RequestResourceTypes = "GuidanceResponse"
	RequestResourceTypesHealthcareService              RequestResourceTypes = "HealthcareService"
	RequestResourceTypesImagingSelection               RequestResourceTypes = "ImagingSelection"
	RequestResourceTypesImagingStudy                   RequestResourceTypes = "ImagingStudy"
	RequestResourceTypesImmunization                   RequestResourceTypes = "Immunization"
	RequestResourceTypesImplementationGuide            RequestResourceTypes = "ImplementationGuide"
	RequestResourceTypesIngredient                     RequestResourceTypes = "Ingredient"
	RequestResourceTypesInsurancePlan                  RequestResourceTypes = "InsurancePlan"
	RequestResourceTypesInsuranceProduct               RequestResourceTypes = "InsuranceProduct"
	RequestResourceTypesInvoice                        RequestResourceTypes = "Invoice"
	RequestResourceTypesLibrary                        RequestResourceTypes = "Library"
	RequestResourceTypesList                           RequestResourceTypes = "List"
	RequestResourceTypesLocation                       RequestResourceTypes = "Location"
	RequestResourceTypesManufacturedItemDefinition     RequestResourceTypes = "ManufacturedItemDefinition"
	RequestResourceTypesMeasure                        RequestResourceTypes = "Measure"
	RequestResourceTypesMeasureReport                  RequestResourceTypes = "MeasureReport"
	RequestResourceTypesMedication                     RequestResourceTypes = "Medication"
	RequestResourceTypesMedicationAdministration       RequestResourceTypes = "MedicationAdministration"
	RequestResourceTypesMedicationDispense             RequestResourceTypes = "MedicationDispense"
	RequestResourceTypesMedicationRequest              RequestResourceTypes = "MedicationRequest"
	RequestResourceTypesMedicationStatement            RequestResourceTypes = "MedicationStatement"
	RequestResourceTypesMedicinalProductDefinition     RequestResourceTypes = "MedicinalProductDefinition"
	RequestResourceTypesMessageDefinition              RequestResourceTypes = "MessageDefinition"
	RequestResourceTypesMessageHeader                  RequestResourceTypes = "MessageHeader"
	RequestResourceTypesMetadataResource               RequestResourceTypes = "MetadataResource"
	RequestResourceTypesNamingSystem                   RequestResourceTypes = "NamingSystem"
	RequestResourceTypesNutritionIntake                RequestResourceTypes = "NutritionIntake"
	RequestResourceTypesNutritionOrder                 RequestResourceTypes = "NutritionOrder"
	RequestResourceTypesNutritionProduct               RequestResourceTypes = "NutritionProduct"
	RequestResourceTypesObservation                    RequestResourceTypes = "Observation"
	RequestResourceTypesObservationDefinition          RequestResourceTypes = "ObservationDefinition"
	RequestResourceTypesOperationDefinition            RequestResourceTypes = "OperationDefinition"
	RequestResourceTypesOperationOutcome               RequestResourceTypes = "OperationOutcome"
	RequestResourceTypesOrganization                   RequestResourceTypes = "Organization"
	RequestResourceTypesOrganizationAffiliation        RequestResourceTypes = "OrganizationAffiliation"
	RequestResourceTypesPackagedProductDefinition      RequestResourceTypes = "PackagedProductDefinition"
	RequestResourceTypesPatient                        RequestResourceTypes = "Patient"
	RequestResourceTypesPaymentNotice                  RequestResourceTypes = "PaymentNotice"
	RequestResourceTypesPaymentReconciliation          RequestResourceTypes = "PaymentReconciliation"
	RequestResourceTypesPerson                         RequestResourceTypes = "Person"
	RequestResourceTypesPlanDefinition                 RequestResourceTypes = "PlanDefinition"
	RequestResourceTypesPractitioner                   RequestResourceTypes = "Practitioner"
	RequestResourceTypesPractitionerRole               RequestResourceTypes = "PractitionerRole"
	RequestResourceTypesProcedure                      RequestResourceTypes = "Procedure"
	RequestResourceTypesProvenance                     RequestResourceTypes = "Provenance"
	RequestResourceTypesQuestionnaire                  RequestResourceTypes = "Questionnaire"
	RequestResourceTypesQuestionnaireResponse          RequestResourceTypes = "QuestionnaireResponse"
	RequestResourceTypesRegulatedAuthorization         RequestResourceTypes = "RegulatedAuthorization"
	RequestResourceTypesRelatedPerson                  RequestResourceTypes = "RelatedPerson"
	RequestResourceTypesRequestOrchestration           RequestResourceTypes = "RequestOrchestration"
	RequestResourceTypesRequirements                   RequestResourceTypes = "Requirements"
	RequestResourceTypesResearchStudy                  RequestResourceTypes = "ResearchStudy"
	RequestResourceTypesResearchSubject                RequestResourceTypes = "ResearchSubject"
	RequestResourceTypesRiskAssessment                 RequestResourceTypes = "RiskAssessment"
	RequestResourceTypesSchedule                       RequestResourceTypes = "Schedule"
	RequestResourceTypesSearchParameter                RequestResourceTypes = "SearchParameter"
	RequestResourceTypesServiceRequest                 RequestResourceTypes = "ServiceRequest"
	RequestResourceTypesSlot                           RequestResourceTypes = "Slot"
	RequestResourceTypesSpecimen                       RequestResourceTypes = "Specimen"
	RequestResourceTypesSpecimenDefinition             RequestResourceTypes = "SpecimenDefinition"
	RequestResourceTypesStructureDefinition            RequestResourceTypes = "StructureDefinition"
	RequestResourceTypesStructureMap                   RequestResourceTypes = "StructureMap"
	RequestResourceTypesSubscription                   RequestResourceTypes = "Subscription"
	RequestResourceTypesSubscriptionStatus             RequestResourceTypes = "SubscriptionStatus"
	RequestResourceTypesSubscriptionTopic              RequestResourceTypes = "SubscriptionTopic"
	RequestResourceTypesSubstance                      RequestResourceTypes = "Substance"
	RequestResourceTypesSubstanceDefinition            RequestResourceTypes = "SubstanceDefinition"
	RequestResourceTypesTask                           RequestResourceTypes = "Task"
	RequestResourceTypesTerminologyCapabilities        RequestResourceTypes = "TerminologyCapabilities"
	RequestResourceTypesValueSet                       RequestResourceTypes = "ValueSet"
	RequestResourceTypesVisionPrescription             RequestResourceTypes = "VisionPrescription"
	RequestResourceTypesParameters                     RequestResourceTypes = "Parameters"
)

type RequestStatus added in v0.0.3

type RequestStatus string

RequestStatus represents codes from http://hl7.org/fhir/ValueSet/request-status

const (
	RequestStatusDraft          RequestStatus = "draft"
	RequestStatusActive         RequestStatus = "active"
	RequestStatusOnHold         RequestStatus = "on-hold"
	RequestStatusEnteredInError RequestStatus = "entered-in-error"
	RequestStatusEnded          RequestStatus = "ended"
	RequestStatusCompleted      RequestStatus = "completed"
	RequestStatusRevoked        RequestStatus = "revoked"
	RequestStatusUnknown        RequestStatus = "unknown"
)

type Requirements

type Requirements struct {
	ResourceType           string                  `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                 `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                 `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                 `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this Requirements, represented as a URI (globally unique)
	Identifier             []Identifier            `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the Requirements (business identifier)
	Version                *string                 `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the Requirements
	VersionAlgorithmString *string                 `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                 `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                 `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this Requirements (computer friendly)
	Title                  *string                 `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this Requirements (human friendly)
	Status                 string                  `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                   `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                 `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                 `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail         `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                 `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the requirements
	UseContext             []UsageContext          `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept       `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the Requirements (if applicable)
	Purpose                *string                 `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this Requirements is defined
	Copyright              *string                 `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                 `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	DerivedFrom            []string                `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                        // Other set of Requirements this builds on
	Imports                []RequirementsImports   `json:"imports,omitempty" bson:"imports,omitempty"`                                 // External requirements that apply here
	Reference              []string                `json:"reference,omitempty" bson:"reference,omitempty"`                             // External artifact (rule/document etc. that) created this set of requirements
	Actor                  []RequirementsActor     `json:"actor,omitempty" bson:"actor,omitempty"`                                     // Actor for these requirements
	Statement              []RequirementsStatement `json:"statement,omitempty" bson:"statement,omitempty"`                             // Conformance requirement statement
}

The Requirements resource is used to describe an actor - a human or an application that plays a role in data exchange, and that may have obligations associated with the role the actor plays.

func (*Requirements) Validate

func (r *Requirements) Validate() error

type RequirementsActor

type RequirementsActor struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Reference string  `json:"reference" bson:"reference"`         // Actor referenced
	Key       *string `json:"key,omitempty" bson:"key,omitempty"` // Unique label for actor (used in statements)
}

func (*RequirementsActor) Validate

func (r *RequirementsActor) Validate() error

type RequirementsImports

type RequirementsImports struct {
	Id        *string  `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Reference string   `json:"reference" bson:"reference"`         // Source of imported statements
	Key       []string `json:"key,omitempty" bson:"key,omitempty"` // Statement key
}

func (*RequirementsImports) Validate

func (r *RequirementsImports) Validate() error

type RequirementsStatement

type RequirementsStatement struct {
	Id             *string                           `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Key            string                            `json:"key" bson:"key"`                                           // Key that identifies this statement
	Label          *string                           `json:"label,omitempty" bson:"label,omitempty"`                   // Short Human label for this statement
	Conformance    []string                          `json:"conformance,omitempty" bson:"conformance,omitempty"`       // SHALL | SHOULD | MAY | SHOULD-NOT | SHALL-NOT
	Conditionality *bool                             `json:"conditionality,omitempty" bson:"conditionality,omitempty"` // Set to true if requirements statement is conditional
	Requirement    string                            `json:"requirement" bson:"requirement"`                           // The actual requirement
	Category       []Coding                          `json:"category,omitempty" bson:"category,omitempty"`             // High level categorization of a statement
	DerivedFrom    *RequirementsStatementDerivedFrom `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`      // Another statement this is refining, tightening, or establishing more context for
	PartOf         *RequirementsStatementPartOf      `json:"partOf,omitempty" bson:"part_of,omitempty"`                // Higher-level requirement or statement which this is a logical sub-requirement of
	SatisfiedBy    []string                          `json:"satisfiedBy,omitempty" bson:"satisfied_by,omitempty"`      // Design artifact that satisfies this requirement
	Reference      []string                          `json:"reference,omitempty" bson:"reference,omitempty"`           // External artifact (rule/document etc. that) created this requirement
	Source         []Reference                       `json:"source,omitempty" bson:"source,omitempty"`                 // Who asked for this statement
	Actor          []string                          `json:"actor,omitempty" bson:"actor,omitempty"`                   // Key of relevant actor
}

func (*RequirementsStatement) Validate

func (r *RequirementsStatement) Validate() error

type RequirementsStatementDerivedFrom

type RequirementsStatementDerivedFrom struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Reference *string `json:"reference,omitempty" bson:"reference,omitempty"` // Pointer to Requirements instance
	Key       string  `json:"key" bson:"key"`                                 // Key of referenced statement
}

func (*RequirementsStatementDerivedFrom) Validate

type RequirementsStatementPartOf

type RequirementsStatementPartOf struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Reference *string `json:"reference,omitempty" bson:"reference,omitempty"` // Pointer to Requirements instance
	Key       string  `json:"key" bson:"key"`                                 // Key of referenced statement
}

func (*RequirementsStatementPartOf) Validate

func (r *RequirementsStatementPartOf) Validate() error

type ResearchStudy

type ResearchStudy struct {
	ResourceType       string                         `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                        `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                        `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Url                *string                        `json:"url,omitempty" bson:"url,omitempty"`                                 // Canonical identifier for this study resource
	Identifier         []Identifier                   `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Business Identifier for study
	Version            *string                        `json:"version,omitempty" bson:"version,omitempty"`                         // The business version for the study record
	Name               *string                        `json:"name,omitempty" bson:"name,omitempty"`                               // Name for this study (computer friendly)
	Title              *string                        `json:"title,omitempty" bson:"title,omitempty"`                             // Human readable name of the study
	Label              []ResearchStudyLabel           `json:"label,omitempty" bson:"label,omitempty"`                             // Additional names for the study
	Protocol           []Reference                    `json:"protocol,omitempty" bson:"protocol,omitempty"`                       // Steps followed in executing study
	PartOf             []Reference                    `json:"partOf,omitempty" bson:"part_of,omitempty"`                          // Part of larger study
	CiteAs             *string                        `json:"citeAs,omitempty" bson:"cite_as,omitempty"`                          // How to cite this ResearchStudy
	RelatesTo          []ResearchStudyRelatesTo       `json:"relatesTo,omitempty" bson:"relates_to,omitempty"`                    // Relationships to other Resources
	Date               *string                        `json:"date,omitempty" bson:"date,omitempty"`                               // Date the resource last changed
	Status             string                         `json:"status" bson:"status"`                                               // draft | active | retired | unknown
	PrimaryPurposeType *CodeableConcept               `json:"primaryPurposeType,omitempty" bson:"primary_purpose_type,omitempty"` // treatment | prevention | diagnostic | supportive-care | screening | health-services-research | basic-science | device-feasibility
	Phase              *CodeableConcept               `json:"phase,omitempty" bson:"phase,omitempty"`                             // Classifier used for clinical trials
	StudyDesign        []CodeableConcept              `json:"studyDesign,omitempty" bson:"study_design,omitempty"`                // Classifications of the study design characteristics
	Focus              []CodeableReference            `json:"focus,omitempty" bson:"focus,omitempty"`                             // Drugs, devices, etc. under study
	Condition          []CodeableConcept              `json:"condition,omitempty" bson:"condition,omitempty"`                     // Condition being studied
	Keyword            []CodeableConcept              `json:"keyword,omitempty" bson:"keyword,omitempty"`                         // Used to search for the study
	Region             []CodeableConcept              `json:"region,omitempty" bson:"region,omitempty"`                           // Geographic area for the study
	DescriptionSummary *string                        `json:"descriptionSummary,omitempty" bson:"description_summary,omitempty"`  // Brief text explaining the study
	Description        *string                        `json:"description,omitempty" bson:"description,omitempty"`                 // Detailed narrative of the study
	Period             *Period                        `json:"period,omitempty" bson:"period,omitempty"`                           // When the study began and ended
	Site               []Reference                    `json:"site,omitempty" bson:"site,omitempty"`                               // Facility where study activities are conducted
	Note               []Annotation                   `json:"note,omitempty" bson:"note,omitempty"`                               // Comments made about the study
	Classifier         []CodeableConcept              `json:"classifier,omitempty" bson:"classifier,omitempty"`                   // Classification for the study
	AssociatedParty    []ResearchStudyAssociatedParty `json:"associatedParty,omitempty" bson:"associated_party,omitempty"`        // Sponsors, collaborators, and other parties
	ProgressStatus     []ResearchStudyProgressStatus  `json:"progressStatus,omitempty" bson:"progress_status,omitempty"`          // Status of study with time for that status
	WhyStopped         *CodeableConcept               `json:"whyStopped,omitempty" bson:"why_stopped,omitempty"`                  // accrual-goal-met | closed-due-to-toxicity | closed-due-to-lack-of-study-progress | temporarily-closed-per-study-design
	Recruitment        *ResearchStudyRecruitment      `json:"recruitment,omitempty" bson:"recruitment,omitempty"`                 // Target or actual group of participants enrolled in study
	ComparisonGroup    []ResearchStudyComparisonGroup `json:"comparisonGroup,omitempty" bson:"comparison_group,omitempty"`        // Defined path through the study for a subject
	Objective          []ResearchStudyObjective       `json:"objective,omitempty" bson:"objective,omitempty"`                     // A goal for the study
	Result             []Reference                    `json:"result,omitempty" bson:"result,omitempty"`                           // Link to results generated during the study
}

A scientific study intended to increase health-related knowledge. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future.

func (*ResearchStudy) Validate

func (r *ResearchStudy) Validate() error

type ResearchStudyAssociatedParty

type ResearchStudyAssociatedParty struct {
	Id         *string           `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Name       *string           `json:"name,omitempty" bson:"name,omitempty"`             // Name of associated party
	Role       *CodeableConcept  `json:"role" bson:"role"`                                 // sponsor | lead-sponsor | sponsor-investigator | primary-investigator | collaborator | funding-source | general-contact | recruitment-contact | sub-investigator | study-chair | irb | data-monitoring
	Period     []Period          `json:"period,omitempty" bson:"period,omitempty"`         // When active in the role
	Classifier []CodeableConcept `json:"classifier,omitempty" bson:"classifier,omitempty"` // nih | fda | government | nonprofit | academic | industry
	Party      *Reference        `json:"party,omitempty" bson:"party,omitempty"`           // Individual or organization associated with study (use practitionerRole to specify their organisation)
}

func (*ResearchStudyAssociatedParty) Validate

func (r *ResearchStudyAssociatedParty) Validate() error

type ResearchStudyComparisonGroup

type ResearchStudyComparisonGroup struct {
	Id            *string    `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	TargetNumber  *int       `json:"targetNumber,omitempty" bson:"target_number,omitempty"`   // Estimated total number of participants to be enrolled in the comparison group
	ActualNumber  *int       `json:"actualNumber,omitempty" bson:"actual_number,omitempty"`   // Actual total number of participants enrolled in the comparison group
	Eligibility   *Reference `json:"eligibility,omitempty" bson:"eligibility,omitempty"`      // Inclusion and exclusion criteria for the comparison group
	ObservedGroup *Reference `json:"observedGroup,omitempty" bson:"observed_group,omitempty"` // Group of participants who were enrolled in the comparison group
	Description   *string    `json:"description,omitempty" bson:"description,omitempty"`      // Description of the comparison Group
}

func (*ResearchStudyComparisonGroup) Validate

func (r *ResearchStudyComparisonGroup) Validate() error

type ResearchStudyLabel

type ResearchStudyLabel struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Type     *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`         // primary | official | scientific | plain-language | subtitle | short-title | acronym | earlier-title | language | auto-translated | human-use | machine-use | duplicate-uid
	Value    *string          `json:"value,omitempty" bson:"value,omitempty"`       // The name
	Language *string          `json:"language,omitempty" bson:"language,omitempty"` // Used to express the specific language
}

func (*ResearchStudyLabel) Validate

func (r *ResearchStudyLabel) Validate() error

type ResearchStudyObjective

type ResearchStudyObjective struct {
	Id             *string                                `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	Name           *string                                `json:"name,omitempty" bson:"name,omitempty"`                      // Label for the objective
	Type           *CodeableConcept                       `json:"type,omitempty" bson:"type,omitempty"`                      // primary | secondary | exploratory
	Description    *string                                `json:"description,omitempty" bson:"description,omitempty"`        // Description of the objective
	OutcomeMeasure []ResearchStudyObjectiveOutcomeMeasure `json:"outcomeMeasure,omitempty" bson:"outcome_measure,omitempty"` // A variable measured during the study
}

func (*ResearchStudyObjective) Validate

func (r *ResearchStudyObjective) Validate() error

type ResearchStudyObjectiveOutcomeMeasure

type ResearchStudyObjectiveOutcomeMeasure struct {
	Id                   *string                                             `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Name                 *string                                             `json:"name,omitempty" bson:"name,omitempty"`                                   // Label for the outcome measure
	Type                 *CodeableConcept                                    `json:"type,omitempty" bson:"type,omitempty"`                                   // primary | secondary | exploratory
	Description          *string                                             `json:"description,omitempty" bson:"description,omitempty"`                     // Description of the outcome measure
	Endpoint             *Reference                                          `json:"endpoint" bson:"endpoint"`                                               // Definition of the outcome measure
	Population           *Reference                                          `json:"population,omitempty" bson:"population,omitempty"`                       // Population for this estimand
	Intervention         *Reference                                          `json:"intervention,omitempty" bson:"intervention,omitempty"`                   // Comparison group of interest
	Comparator           *Reference                                          `json:"comparator,omitempty" bson:"comparator,omitempty"`                       // Comparison group for comparison
	SummaryMeasure       *CodeableConcept                                    `json:"summaryMeasure,omitempty" bson:"summary_measure,omitempty"`              // Statistical measure for treatment effect estimate
	EndpointAnalysisPlan *Reference                                          `json:"endpointAnalysisPlan,omitempty" bson:"endpoint_analysis_plan,omitempty"` // Statistical analysis plan for a single endpoint
	EventHandling        []ResearchStudyObjectiveOutcomeMeasureEventHandling `json:"eventHandling,omitempty" bson:"event_handling,omitempty"`                // Handling of intercurrent event
}

func (*ResearchStudyObjectiveOutcomeMeasure) Validate

type ResearchStudyObjectiveOutcomeMeasureEventHandling

type ResearchStudyObjectiveOutcomeMeasureEventHandling struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Event       *CodeableConcept `json:"event,omitempty" bson:"event,omitempty"`             // The event
	Group       *CodeableConcept `json:"group,omitempty" bson:"group,omitempty"`             // The group that is affected by this event handling
	Handling    *CodeableConcept `json:"handling,omitempty" bson:"handling,omitempty"`       // How the data is handled
	Description *string          `json:"description,omitempty" bson:"description,omitempty"` // Text summary of event handling
}

func (*ResearchStudyObjectiveOutcomeMeasureEventHandling) Validate

type ResearchStudyProgressStatus

type ResearchStudyProgressStatus struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	State  *CodeableConcept `json:"state" bson:"state"`                       // Label for status or state (e.g. recruitment status)
	Actual *bool            `json:"actual,omitempty" bson:"actual,omitempty"` // Actual if true else anticipated
	Period *Period          `json:"period,omitempty" bson:"period,omitempty"` // Date range
}

func (*ResearchStudyProgressStatus) Validate

func (r *ResearchStudyProgressStatus) Validate() error

type ResearchStudyRecruitment

type ResearchStudyRecruitment struct {
	Id           *string    `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	TargetNumber *int       `json:"targetNumber,omitempty" bson:"target_number,omitempty"` // Estimated total number of participants to be enrolled
	ActualNumber *int       `json:"actualNumber,omitempty" bson:"actual_number,omitempty"` // Actual total number of participants enrolled in study
	Eligibility  *Reference `json:"eligibility,omitempty" bson:"eligibility,omitempty"`    // Inclusion and exclusion criteria
	ActualGroup  *Reference `json:"actualGroup,omitempty" bson:"actual_group,omitempty"`   // Group of participants who were enrolled in study
	Description  *string    `json:"description,omitempty" bson:"description,omitempty"`    // Description of the recruitment
}

func (*ResearchStudyRecruitment) Validate

func (r *ResearchStudyRecruitment) Validate() error

type ResearchStudyRelatesTo

type ResearchStudyRelatesTo struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`          // Unique id for inter-element referencing
	Type             *CodeableConcept `json:"type" bson:"type"`                          // documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as | reprint | reprint-of | summarizes
	TargetUri        *string          `json:"targetUri" bson:"target_uri"`               // The artifact that is related to this ResearchStudy
	TargetAttachment *Attachment      `json:"targetAttachment" bson:"target_attachment"` // The artifact that is related to this ResearchStudy
	TargetCanonical  *string          `json:"targetCanonical" bson:"target_canonical"`   // The artifact that is related to this ResearchStudy
	TargetReference  *Reference       `json:"targetReference" bson:"target_reference"`   // The artifact that is related to this ResearchStudy
	TargetMarkdown   *string          `json:"targetMarkdown" bson:"target_markdown"`     // The artifact that is related to this ResearchStudy
}

func (*ResearchStudyRelatesTo) Validate

func (r *ResearchStudyRelatesTo) Validate() error

type ResearchSubject

type ResearchSubject struct {
	ResourceType     string                            `json:"resourceType" bson:"resource_type"`                             // Type of resource
	Id               *string                           `json:"id,omitempty" bson:"id,omitempty"`                              // Logical id of this artifact
	Meta             *Meta                             `json:"meta,omitempty" bson:"meta,omitempty"`                          // Metadata about the resource
	ImplicitRules    *string                           `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`       // A set of rules under which this content was created
	Language         *string                           `json:"language,omitempty" bson:"language,omitempty"`                  // Language of the resource content
	Text             *Narrative                        `json:"text,omitempty" bson:"text,omitempty"`                          // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage                 `json:"contained,omitempty" bson:"contained,omitempty"`                // Contained, inline Resources
	Identifier       []Identifier                      `json:"identifier,omitempty" bson:"identifier,omitempty"`              // Business Identifier for research subject in a study
	Status           string                            `json:"status" bson:"status"`                                          // draft | active | retired | unknown
	Period           *Period                           `json:"period,omitempty" bson:"period,omitempty"`                      // Start and end of participation
	Study            *Reference                        `json:"study" bson:"study"`                                            // Study subject is part of
	Subject          *Reference                        `json:"subject" bson:"subject"`                                        // Who or what is part of study
	SubjectState     []ResearchSubjectSubjectState     `json:"subjectState,omitempty" bson:"subject_state,omitempty"`         // A duration in the lifecycle of the ResearchSubject within a ResearchStudy
	SubjectMilestone []ResearchSubjectSubjectMilestone `json:"subjectMilestone,omitempty" bson:"subject_milestone,omitempty"` // A significant event in the progress of a ResearchSubject
	ComparisonGroup  []CodeableReference               `json:"comparisonGroup,omitempty" bson:"comparison_group,omitempty"`   // A group to which the subject is assigned
	Consent          []Reference                       `json:"consent,omitempty" bson:"consent,omitempty"`                    // Agreement to participate in study
}

A ResearchSubject is a participant or object which is the recipient of investigative activities in a research study.

func (*ResearchSubject) Validate

func (r *ResearchSubject) Validate() error

type ResearchSubjectSubjectMilestone

type ResearchSubjectSubjectMilestone struct {
	Id        *string           `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Milestone *CodeableConcept  `json:"milestone" bson:"milestone"`
	Date      *string           `json:"date,omitempty" bson:"date,omitempty"` // The date/time when this milestone event was completed
	Reason    []CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`
}

func (*ResearchSubjectSubjectMilestone) Validate

func (r *ResearchSubjectSubjectMilestone) Validate() error

type ResearchSubjectSubjectState

type ResearchSubjectSubjectState struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	Code      *CodeableConcept `json:"code" bson:"code"`                            // candidate | in-prescreening | in-screening | eligible | ineligible | on-study | on-study-intervention | in-follow-up | off-study
	StartDate string           `json:"startDate" bson:"start_date"`                 // The date a research subject entered the given state
	EndDate   *string          `json:"endDate,omitempty" bson:"end_date,omitempty"` // The date a research subject exited or left the given state
	Reason    *CodeableConcept `json:"reason,omitempty" bson:"reason,omitempty"`    // State change reason
}

func (*ResearchSubjectSubjectState) Validate

func (r *ResearchSubjectSubjectState) Validate() error

type Resource

type Resource struct {
	ResourceType  string  `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta   `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
}

This is the base resource type for everything.

func (*Resource) Validate

func (r *Resource) Validate() error

type ResourceType added in v0.0.3

type ResourceType string

ResourceType represents codes from http://hl7.org/fhir/ValueSet/resource-types

const (
	ResourceTypeBase                           ResourceType = "Base"
	ResourceTypeElement                        ResourceType = "Element"
	ResourceTypeBackboneElement                ResourceType = "BackboneElement"
	ResourceTypeDataType                       ResourceType = "DataType"
	ResourceTypeAddress                        ResourceType = "Address"
	ResourceTypeAnnotation                     ResourceType = "Annotation"
	ResourceTypeAttachment                     ResourceType = "Attachment"
	ResourceTypeAvailability                   ResourceType = "Availability"
	ResourceTypeBackboneType                   ResourceType = "BackboneType"
	ResourceTypeDosage                         ResourceType = "Dosage"
	ResourceTypeDosageCondition                ResourceType = "DosageCondition"
	ResourceTypeDosageDetails                  ResourceType = "DosageDetails"
	ResourceTypeDosageSafety                   ResourceType = "DosageSafety"
	ResourceTypeElementDefinition              ResourceType = "ElementDefinition"
	ResourceTypeMarketingStatus                ResourceType = "MarketingStatus"
	ResourceTypeProductShelfLife               ResourceType = "ProductShelfLife"
	ResourceTypeRelativeTime                   ResourceType = "RelativeTime"
	ResourceTypeTiming                         ResourceType = "Timing"
	ResourceTypeCodeableConcept                ResourceType = "CodeableConcept"
	ResourceTypeCodeableReference              ResourceType = "CodeableReference"
	ResourceTypeCoding                         ResourceType = "Coding"
	ResourceTypeContactDetail                  ResourceType = "ContactDetail"
	ResourceTypeContactPoint                   ResourceType = "ContactPoint"
	ResourceTypeDataRequirement                ResourceType = "DataRequirement"
	ResourceTypeExpression                     ResourceType = "Expression"
	ResourceTypeExtendedContactDetail          ResourceType = "ExtendedContactDetail"
	ResourceTypeExtension                      ResourceType = "Extension"
	ResourceTypeHumanName                      ResourceType = "HumanName"
	ResourceTypeIdentifier                     ResourceType = "Identifier"
	ResourceTypeMeta                           ResourceType = "Meta"
	ResourceTypeMonetaryComponent              ResourceType = "MonetaryComponent"
	ResourceTypeMoney                          ResourceType = "Money"
	ResourceTypeNarrative                      ResourceType = "Narrative"
	ResourceTypeParameterDefinition            ResourceType = "ParameterDefinition"
	ResourceTypePeriod                         ResourceType = "Period"
	ResourceTypePrimitiveType                  ResourceType = "PrimitiveType"
	ResourceTypeBase64Binary                   ResourceType = "base64Binary"
	ResourceTypeBoolean                        ResourceType = "boolean"
	ResourceTypeDate                           ResourceType = "date"
	ResourceTypeDateTime                       ResourceType = "dateTime"
	ResourceTypeDecimal                        ResourceType = "decimal"
	ResourceTypeInstant                        ResourceType = "instant"
	ResourceTypeInteger                        ResourceType = "integer"
	ResourceTypePositiveInt                    ResourceType = "positiveInt"
	ResourceTypeUnsignedInt                    ResourceType = "unsignedInt"
	ResourceTypeInteger64                      ResourceType = "integer64"
	ResourceTypeString                         ResourceType = "string"
	ResourceTypeCode                           ResourceType = "code"
	ResourceTypeId                             ResourceType = "id"
	ResourceTypeMarkdown                       ResourceType = "markdown"
	ResourceTypeTime                           ResourceType = "time"
	ResourceTypeUri                            ResourceType = "uri"
	ResourceTypeCanonical                      ResourceType = "canonical"
	ResourceTypeOid                            ResourceType = "oid"
	ResourceTypeUrl                            ResourceType = "url"
	ResourceTypeUuid                           ResourceType = "uuid"
	ResourceTypeQuantity                       ResourceType = "Quantity"
	ResourceTypeAge                            ResourceType = "Age"
	ResourceTypeCount                          ResourceType = "Count"
	ResourceTypeDistance                       ResourceType = "Distance"
	ResourceTypeDuration                       ResourceType = "Duration"
	ResourceTypeRange                          ResourceType = "Range"
	ResourceTypeRatio                          ResourceType = "Ratio"
	ResourceTypeRatioRange                     ResourceType = "RatioRange"
	ResourceTypeReference                      ResourceType = "Reference"
	ResourceTypeRelatedArtifact                ResourceType = "RelatedArtifact"
	ResourceTypeSampledData                    ResourceType = "SampledData"
	ResourceTypeSignature                      ResourceType = "Signature"
	ResourceTypeTriggerDefinition              ResourceType = "TriggerDefinition"
	ResourceTypeUsageContext                   ResourceType = "UsageContext"
	ResourceTypeVirtualServiceDetail           ResourceType = "VirtualServiceDetail"
	ResourceTypeXhtml                          ResourceType = "xhtml"
	ResourceTypeResource                       ResourceType = "Resource"
	ResourceTypeBinary                         ResourceType = "Binary"
	ResourceTypeBundle                         ResourceType = "Bundle"
	ResourceTypeDomainResource                 ResourceType = "DomainResource"
	ResourceTypeAccount                        ResourceType = "Account"
	ResourceTypeActivityDefinition             ResourceType = "ActivityDefinition"
	ResourceTypeActorDefinition                ResourceType = "ActorDefinition"
	ResourceTypeAdministrableProductDefinition ResourceType = "AdministrableProductDefinition"
	ResourceTypeAdverseEvent                   ResourceType = "AdverseEvent"
	ResourceTypeAllergyIntolerance             ResourceType = "AllergyIntolerance"
	ResourceTypeAppointment                    ResourceType = "Appointment"
	ResourceTypeAppointmentResponse            ResourceType = "AppointmentResponse"
	ResourceTypeArtifactAssessment             ResourceType = "ArtifactAssessment"
	ResourceTypeAuditEvent                     ResourceType = "AuditEvent"
	ResourceTypeBasic                          ResourceType = "Basic"
	ResourceTypeBiologicallyDerivedProduct     ResourceType = "BiologicallyDerivedProduct"
	ResourceTypeBodyStructure                  ResourceType = "BodyStructure"
	ResourceTypeCanonicalResource              ResourceType = "CanonicalResource"
	ResourceTypeCapabilityStatement            ResourceType = "CapabilityStatement"
	ResourceTypeCarePlan                       ResourceType = "CarePlan"
	ResourceTypeCareTeam                       ResourceType = "CareTeam"
	ResourceTypeClaim                          ResourceType = "Claim"
	ResourceTypeClaimResponse                  ResourceType = "ClaimResponse"
	ResourceTypeClinicalUseDefinition          ResourceType = "ClinicalUseDefinition"
	ResourceTypeCodeSystem                     ResourceType = "CodeSystem"
	ResourceTypeCommunication                  ResourceType = "Communication"
	ResourceTypeCommunicationRequest           ResourceType = "CommunicationRequest"
	ResourceTypeCompartmentDefinition          ResourceType = "CompartmentDefinition"
	ResourceTypeComposition                    ResourceType = "Composition"
	ResourceTypeConceptMap                     ResourceType = "ConceptMap"
	ResourceTypeCondition                      ResourceType = "Condition"
	ResourceTypeConsent                        ResourceType = "Consent"
	ResourceTypeContract                       ResourceType = "Contract"
	ResourceTypeCoverage                       ResourceType = "Coverage"
	ResourceTypeCoverageEligibilityRequest     ResourceType = "CoverageEligibilityRequest"
	ResourceTypeCoverageEligibilityResponse    ResourceType = "CoverageEligibilityResponse"
	ResourceTypeDetectedIssue                  ResourceType = "DetectedIssue"
	ResourceTypeDevice                         ResourceType = "Device"
	ResourceTypeDeviceAlert                    ResourceType = "DeviceAlert"
	ResourceTypeDeviceAssociation              ResourceType = "DeviceAssociation"
	ResourceTypeDeviceDefinition               ResourceType = "DeviceDefinition"
	ResourceTypeDeviceMetric                   ResourceType = "DeviceMetric"
	ResourceTypeDeviceRequest                  ResourceType = "DeviceRequest"
	ResourceTypeDiagnosticReport               ResourceType = "DiagnosticReport"
	ResourceTypeDocumentReference              ResourceType = "DocumentReference"
	ResourceTypeEncounter                      ResourceType = "Encounter"
	ResourceTypeEndpoint                       ResourceType = "Endpoint"
	ResourceTypeEnrollmentRequest              ResourceType = "EnrollmentRequest"
	ResourceTypeEnrollmentResponse             ResourceType = "EnrollmentResponse"
	ResourceTypeEpisodeOfCare                  ResourceType = "EpisodeOfCare"
	ResourceTypeEventDefinition                ResourceType = "EventDefinition"
	ResourceTypeEvidence                       ResourceType = "Evidence"
	ResourceTypeEvidenceVariable               ResourceType = "EvidenceVariable"
	ResourceTypeExampleScenario                ResourceType = "ExampleScenario"
	ResourceTypeExplanationOfBenefit           ResourceType = "ExplanationOfBenefit"
	ResourceTypeFamilyMemberHistory            ResourceType = "FamilyMemberHistory"
	ResourceTypeFlag                           ResourceType = "Flag"
	ResourceTypeGoal                           ResourceType = "Goal"
	ResourceTypeGroup                          ResourceType = "Group"
	ResourceTypeGuidanceResponse               ResourceType = "GuidanceResponse"
	ResourceTypeHealthcareService              ResourceType = "HealthcareService"
	ResourceTypeImagingSelection               ResourceType = "ImagingSelection"
	ResourceTypeImagingStudy                   ResourceType = "ImagingStudy"
	ResourceTypeImmunization                   ResourceType = "Immunization"
	ResourceTypeImplementationGuide            ResourceType = "ImplementationGuide"
	ResourceTypeIngredient                     ResourceType = "Ingredient"
	ResourceTypeInsurancePlan                  ResourceType = "InsurancePlan"
	ResourceTypeInsuranceProduct               ResourceType = "InsuranceProduct"
	ResourceTypeInvoice                        ResourceType = "Invoice"
	ResourceTypeLibrary                        ResourceType = "Library"
	ResourceTypeList                           ResourceType = "List"
	ResourceTypeLocation                       ResourceType = "Location"
	ResourceTypeManufacturedItemDefinition     ResourceType = "ManufacturedItemDefinition"
	ResourceTypeMeasure                        ResourceType = "Measure"
	ResourceTypeMeasureReport                  ResourceType = "MeasureReport"
	ResourceTypeMedication                     ResourceType = "Medication"
	ResourceTypeMedicationAdministration       ResourceType = "MedicationAdministration"
	ResourceTypeMedicationDispense             ResourceType = "MedicationDispense"
	ResourceTypeMedicationRequest              ResourceType = "MedicationRequest"
	ResourceTypeMedicationStatement            ResourceType = "MedicationStatement"
	ResourceTypeMedicinalProductDefinition     ResourceType = "MedicinalProductDefinition"
	ResourceTypeMessageDefinition              ResourceType = "MessageDefinition"
	ResourceTypeMessageHeader                  ResourceType = "MessageHeader"
	ResourceTypeMetadataResource               ResourceType = "MetadataResource"
	ResourceTypeNamingSystem                   ResourceType = "NamingSystem"
	ResourceTypeNutritionIntake                ResourceType = "NutritionIntake"
	ResourceTypeNutritionOrder                 ResourceType = "NutritionOrder"
	ResourceTypeNutritionProduct               ResourceType = "NutritionProduct"
	ResourceTypeObservation                    ResourceType = "Observation"
	ResourceTypeObservationDefinition          ResourceType = "ObservationDefinition"
	ResourceTypeOperationDefinition            ResourceType = "OperationDefinition"
	ResourceTypeOperationOutcome               ResourceType = "OperationOutcome"
	ResourceTypeOrganization                   ResourceType = "Organization"
	ResourceTypeOrganizationAffiliation        ResourceType = "OrganizationAffiliation"
	ResourceTypePackagedProductDefinition      ResourceType = "PackagedProductDefinition"
	ResourceTypePatient                        ResourceType = "Patient"
	ResourceTypePaymentNotice                  ResourceType = "PaymentNotice"
	ResourceTypePaymentReconciliation          ResourceType = "PaymentReconciliation"
	ResourceTypePerson                         ResourceType = "Person"
	ResourceTypePlanDefinition                 ResourceType = "PlanDefinition"
	ResourceTypePractitioner                   ResourceType = "Practitioner"
	ResourceTypePractitionerRole               ResourceType = "PractitionerRole"
	ResourceTypeProcedure                      ResourceType = "Procedure"
	ResourceTypeProvenance                     ResourceType = "Provenance"
	ResourceTypeQuestionnaire                  ResourceType = "Questionnaire"
	ResourceTypeQuestionnaireResponse          ResourceType = "QuestionnaireResponse"
	ResourceTypeRegulatedAuthorization         ResourceType = "RegulatedAuthorization"
	ResourceTypeRelatedPerson                  ResourceType = "RelatedPerson"
	ResourceTypeRequestOrchestration           ResourceType = "RequestOrchestration"
	ResourceTypeRequirements                   ResourceType = "Requirements"
	ResourceTypeResearchStudy                  ResourceType = "ResearchStudy"
	ResourceTypeResearchSubject                ResourceType = "ResearchSubject"
	ResourceTypeRiskAssessment                 ResourceType = "RiskAssessment"
	ResourceTypeSchedule                       ResourceType = "Schedule"
	ResourceTypeSearchParameter                ResourceType = "SearchParameter"
	ResourceTypeServiceRequest                 ResourceType = "ServiceRequest"
	ResourceTypeSlot                           ResourceType = "Slot"
	ResourceTypeSpecimen                       ResourceType = "Specimen"
	ResourceTypeSpecimenDefinition             ResourceType = "SpecimenDefinition"
	ResourceTypeStructureDefinition            ResourceType = "StructureDefinition"
	ResourceTypeStructureMap                   ResourceType = "StructureMap"
	ResourceTypeSubscription                   ResourceType = "Subscription"
	ResourceTypeSubscriptionStatus             ResourceType = "SubscriptionStatus"
	ResourceTypeSubscriptionTopic              ResourceType = "SubscriptionTopic"
	ResourceTypeSubstance                      ResourceType = "Substance"
	ResourceTypeSubstanceDefinition            ResourceType = "SubstanceDefinition"
	ResourceTypeTask                           ResourceType = "Task"
	ResourceTypeTerminologyCapabilities        ResourceType = "TerminologyCapabilities"
	ResourceTypeValueSet                       ResourceType = "ValueSet"
	ResourceTypeVisionPrescription             ResourceType = "VisionPrescription"
	ResourceTypeParameters                     ResourceType = "Parameters"
)

type ResourceVersionPolicy added in v0.0.3

type ResourceVersionPolicy string

ResourceVersionPolicy represents codes from http://hl7.org/fhir/ValueSet/versioning-policy

const (
	ResourceVersionPolicyNoVersion       ResourceVersionPolicy = "no-version"
	ResourceVersionPolicyVersioned       ResourceVersionPolicy = "versioned"
	ResourceVersionPolicyVersionedUpdate ResourceVersionPolicy = "versioned-update"
)

type ResponseType added in v0.0.3

type ResponseType string

ResponseType represents codes from http://hl7.org/fhir/ValueSet/response-code

const (
	ResponseTypeOk             ResponseType = "ok"
	ResponseTypeTransientError ResponseType = "transient-error"
	ResponseTypeFatalError     ResponseType = "fatal-error"
)

type RestfulCapabilityMode added in v0.0.3

type RestfulCapabilityMode string

RestfulCapabilityMode represents codes from http://hl7.org/fhir/ValueSet/restful-capability-mode

const (
	RestfulCapabilityModeClient RestfulCapabilityMode = "client"
	RestfulCapabilityModeServer RestfulCapabilityMode = "server"
)

type RiskAssessment

type RiskAssessment struct {
	ResourceType       string                     `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                    `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                      `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                    `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative                 `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage          `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier         []Identifier               `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Unique identifier for the assessment
	BasedOn            *Reference                 `json:"basedOn,omitempty" bson:"based_on,omitempty"`                        // Request fulfilled by this assessment
	Parent             *Reference                 `json:"parent,omitempty" bson:"parent,omitempty"`                           // Part of this occurrence
	Status             string                     `json:"status" bson:"status"`                                               // registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
	Method             *CodeableConcept           `json:"method,omitempty" bson:"method,omitempty"`                           // Evaluation mechanism
	Code               *CodeableConcept           `json:"code,omitempty" bson:"code,omitempty"`                               // Type of assessment
	Subject            *Reference                 `json:"subject" bson:"subject"`                                             // Who/what does assessment apply to?
	Encounter          *Reference                 `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Where was assessment performed?
	OccurrenceDateTime *string                    `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // When was assessment made?
	OccurrencePeriod   *Period                    `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // When was assessment made?
	Condition          *Reference                 `json:"condition,omitempty" bson:"condition,omitempty"`                     // Condition assessed
	Performer          *Reference                 `json:"performer,omitempty" bson:"performer,omitempty"`                     // Who did assessment?
	Reason             []CodeableReference        `json:"reason,omitempty" bson:"reason,omitempty"`                           // Why was the assessment necessary?
	Basis              []Reference                `json:"basis,omitempty" bson:"basis,omitempty"`                             // Information used in assessment
	Prediction         []RiskAssessmentPrediction `json:"prediction,omitempty" bson:"prediction,omitempty"`                   // Outcome predicted
	Mitigation         *string                    `json:"mitigation,omitempty" bson:"mitigation,omitempty"`                   // How to reduce risk
	Note               []Annotation               `json:"note,omitempty" bson:"note,omitempty"`                               // Comments on the risk assessment
}

An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome.

func (*RiskAssessment) Validate

func (r *RiskAssessment) Validate() error

type RiskAssessmentPrediction

type RiskAssessmentPrediction struct {
	Id                  *string          `json:"id,omitempty" bson:"id,omitempty"`                                    // Unique id for inter-element referencing
	Outcome             *CodeableConcept `json:"outcome,omitempty" bson:"outcome,omitempty"`                          // Possible outcome for the subject
	ProbabilityDecimal  *float64         `json:"probabilityDecimal,omitempty" bson:"probability_decimal,omitempty"`   // Likelihood of specified outcome
	ProbabilityQuantity *Quantity        `json:"probabilityQuantity,omitempty" bson:"probability_quantity,omitempty"` // Likelihood of specified outcome
	ProbabilityRange    *Range           `json:"probabilityRange,omitempty" bson:"probability_range,omitempty"`       // Likelihood of specified outcome
	QualitativeRisk     *CodeableConcept `json:"qualitativeRisk,omitempty" bson:"qualitative_risk,omitempty"`         // Likelihood of specified outcome as a qualitative value
	RelativeRisk        *float64         `json:"relativeRisk,omitempty" bson:"relative_risk,omitempty"`               // Relative likelihood
	WhenPeriod          *Period          `json:"whenPeriod,omitempty" bson:"when_period,omitempty"`                   // Timeframe or age range
	WhenRange           *Range           `json:"whenRange,omitempty" bson:"when_range,omitempty"`                     // Timeframe or age range
	Rationale           *string          `json:"rationale,omitempty" bson:"rationale,omitempty"`                      // Explanation of prediction
}

func (*RiskAssessmentPrediction) Validate

func (r *RiskAssessmentPrediction) Validate() error

type SPDXLicense added in v0.0.3

type SPDXLicense string

SPDXLicense represents codes from http://hl7.org/fhir/ValueSet/spdx-license

const (
	SPDXLicenseNotOpenSource                  SPDXLicense = "not-open-source"
	SPDXLicenseCode0BSD                       SPDXLicense = "0BSD"
	SPDXLicenseAAL                            SPDXLicense = "AAL"
	SPDXLicenseAbstyles                       SPDXLicense = "Abstyles"
	SPDXLicenseAdobe2006                      SPDXLicense = "Adobe-2006"
	SPDXLicenseAdobeGlyph                     SPDXLicense = "Adobe-Glyph"
	SPDXLicenseADSL                           SPDXLicense = "ADSL"
	SPDXLicenseAFL11                          SPDXLicense = "AFL-1.1"
	SPDXLicenseAFL12                          SPDXLicense = "AFL-1.2"
	SPDXLicenseAFL20                          SPDXLicense = "AFL-2.0"
	SPDXLicenseAFL21                          SPDXLicense = "AFL-2.1"
	SPDXLicenseAFL30                          SPDXLicense = "AFL-3.0"
	SPDXLicenseAfmparse                       SPDXLicense = "Afmparse"
	SPDXLicenseAGPL10Only                     SPDXLicense = "AGPL-1.0-only"
	SPDXLicenseAGPL10OrLater                  SPDXLicense = "AGPL-1.0-or-later"
	SPDXLicenseAGPL30Only                     SPDXLicense = "AGPL-3.0-only"
	SPDXLicenseAGPL30OrLater                  SPDXLicense = "AGPL-3.0-or-later"
	SPDXLicenseAladdin                        SPDXLicense = "Aladdin"
	SPDXLicenseAMDPLPA                        SPDXLicense = "AMDPLPA"
	SPDXLicenseAML                            SPDXLicense = "AML"
	SPDXLicenseAMPAS                          SPDXLicense = "AMPAS"
	SPDXLicenseANTLRPD                        SPDXLicense = "ANTLR-PD"
	SPDXLicenseApache10                       SPDXLicense = "Apache-1.0"
	SPDXLicenseApache11                       SPDXLicense = "Apache-1.1"
	SPDXLicenseApache20                       SPDXLicense = "Apache-2.0"
	SPDXLicenseAPAFML                         SPDXLicense = "APAFML"
	SPDXLicenseAPL10                          SPDXLicense = "APL-1.0"
	SPDXLicenseAPSL10                         SPDXLicense = "APSL-1.0"
	SPDXLicenseAPSL11                         SPDXLicense = "APSL-1.1"
	SPDXLicenseAPSL12                         SPDXLicense = "APSL-1.2"
	SPDXLicenseAPSL20                         SPDXLicense = "APSL-2.0"
	SPDXLicenseArtistic10Cl8                  SPDXLicense = "Artistic-1.0-cl8"
	SPDXLicenseArtistic10Perl                 SPDXLicense = "Artistic-1.0-Perl"
	SPDXLicenseArtistic10                     SPDXLicense = "Artistic-1.0"
	SPDXLicenseArtistic20                     SPDXLicense = "Artistic-2.0"
	SPDXLicenseBahyph                         SPDXLicense = "Bahyph"
	SPDXLicenseBarr                           SPDXLicense = "Barr"
	SPDXLicenseBeerware                       SPDXLicense = "Beerware"
	SPDXLicenseBitTorrent10                   SPDXLicense = "BitTorrent-1.0"
	SPDXLicenseBitTorrent11                   SPDXLicense = "BitTorrent-1.1"
	SPDXLicenseBorceux                        SPDXLicense = "Borceux"
	SPDXLicenseBSD1Clause                     SPDXLicense = "BSD-1-Clause"
	SPDXLicenseBSD2ClauseFreeBSD              SPDXLicense = "BSD-2-Clause-FreeBSD"
	SPDXLicenseBSD2ClauseNetBSD               SPDXLicense = "BSD-2-Clause-NetBSD"
	SPDXLicenseBSD2ClausePatent               SPDXLicense = "BSD-2-Clause-Patent"
	SPDXLicenseBSD2Clause                     SPDXLicense = "BSD-2-Clause"
	SPDXLicenseBSD3ClauseAttribution          SPDXLicense = "BSD-3-Clause-Attribution"
	SPDXLicenseBSD3ClauseClear                SPDXLicense = "BSD-3-Clause-Clear"
	SPDXLicenseBSD3ClauseLBNL                 SPDXLicense = "BSD-3-Clause-LBNL"
	SPDXLicenseBSD3ClauseNoNuclearLicense2014 SPDXLicense = "BSD-3-Clause-No-Nuclear-License-2014"
	SPDXLicenseBSD3ClauseNoNuclearLicense     SPDXLicense = "BSD-3-Clause-No-Nuclear-License"
	SPDXLicenseBSD3ClauseNoNuclearWarranty    SPDXLicense = "BSD-3-Clause-No-Nuclear-Warranty"
	SPDXLicenseBSD3Clause                     SPDXLicense = "BSD-3-Clause"
	SPDXLicenseBSD4ClauseUC                   SPDXLicense = "BSD-4-Clause-UC"
	SPDXLicenseBSD4Clause                     SPDXLicense = "BSD-4-Clause"
	SPDXLicenseBSDProtection                  SPDXLicense = "BSD-Protection"
	SPDXLicenseBSDSourceCode                  SPDXLicense = "BSD-Source-Code"
	SPDXLicenseBSL10                          SPDXLicense = "BSL-1.0"
	SPDXLicenseBzip2105                       SPDXLicense = "bzip2-1.0.5"
	SPDXLicenseBzip2106                       SPDXLicense = "bzip2-1.0.6"
	SPDXLicenseCaldera                        SPDXLicense = "Caldera"
	SPDXLicenseCATOSL11                       SPDXLicense = "CATOSL-1.1"
	SPDXLicenseCCBY10                         SPDXLicense = "CC-BY-1.0"
	SPDXLicenseCCBY20                         SPDXLicense = "CC-BY-2.0"
	SPDXLicenseCCBY25                         SPDXLicense = "CC-BY-2.5"
	SPDXLicenseCCBY30                         SPDXLicense = "CC-BY-3.0"
	SPDXLicenseCCBY40                         SPDXLicense = "CC-BY-4.0"
	SPDXLicenseCCBYNC10                       SPDXLicense = "CC-BY-NC-1.0"
	SPDXLicenseCCBYNC20                       SPDXLicense = "CC-BY-NC-2.0"
	SPDXLicenseCCBYNC25                       SPDXLicense = "CC-BY-NC-2.5"
	SPDXLicenseCCBYNC30                       SPDXLicense = "CC-BY-NC-3.0"
	SPDXLicenseCCBYNC40                       SPDXLicense = "CC-BY-NC-4.0"
	SPDXLicenseCCBYNCND10                     SPDXLicense = "CC-BY-NC-ND-1.0"
	SPDXLicenseCCBYNCND20                     SPDXLicense = "CC-BY-NC-ND-2.0"
	SPDXLicenseCCBYNCND25                     SPDXLicense = "CC-BY-NC-ND-2.5"
	SPDXLicenseCCBYNCND30                     SPDXLicense = "CC-BY-NC-ND-3.0"
	SPDXLicenseCCBYNCND40                     SPDXLicense = "CC-BY-NC-ND-4.0"
	SPDXLicenseCCBYNCSA10                     SPDXLicense = "CC-BY-NC-SA-1.0"
	SPDXLicenseCCBYNCSA20                     SPDXLicense = "CC-BY-NC-SA-2.0"
	SPDXLicenseCCBYNCSA25                     SPDXLicense = "CC-BY-NC-SA-2.5"
	SPDXLicenseCCBYNCSA30                     SPDXLicense = "CC-BY-NC-SA-3.0"
	SPDXLicenseCCBYNCSA40                     SPDXLicense = "CC-BY-NC-SA-4.0"
	SPDXLicenseCCBYND10                       SPDXLicense = "CC-BY-ND-1.0"
	SPDXLicenseCCBYND20                       SPDXLicense = "CC-BY-ND-2.0"
	SPDXLicenseCCBYND25                       SPDXLicense = "CC-BY-ND-2.5"
	SPDXLicenseCCBYND30                       SPDXLicense = "CC-BY-ND-3.0"
	SPDXLicenseCCBYND40                       SPDXLicense = "CC-BY-ND-4.0"
	SPDXLicenseCCBYSA10                       SPDXLicense = "CC-BY-SA-1.0"
	SPDXLicenseCCBYSA20                       SPDXLicense = "CC-BY-SA-2.0"
	SPDXLicenseCCBYSA25                       SPDXLicense = "CC-BY-SA-2.5"
	SPDXLicenseCCBYSA30                       SPDXLicense = "CC-BY-SA-3.0"
	SPDXLicenseCCBYSA40                       SPDXLicense = "CC-BY-SA-4.0"
	SPDXLicenseCC010                          SPDXLicense = "CC0-1.0"
	SPDXLicenseCDDL10                         SPDXLicense = "CDDL-1.0"
	SPDXLicenseCDDL11                         SPDXLicense = "CDDL-1.1"
	SPDXLicenseCDLAPermissive10               SPDXLicense = "CDLA-Permissive-1.0"
	SPDXLicenseCDLASharing10                  SPDXLicense = "CDLA-Sharing-1.0"
	SPDXLicenseCECILL10                       SPDXLicense = "CECILL-1.0"
	SPDXLicenseCECILL11                       SPDXLicense = "CECILL-1.1"
	SPDXLicenseCECILL20                       SPDXLicense = "CECILL-2.0"
	SPDXLicenseCECILL21                       SPDXLicense = "CECILL-2.1"
	SPDXLicenseCECILLB                        SPDXLicense = "CECILL-B"
	SPDXLicenseCECILLC                        SPDXLicense = "CECILL-C"
	SPDXLicenseClArtistic                     SPDXLicense = "ClArtistic"
	SPDXLicenseCNRIJython                     SPDXLicense = "CNRI-Jython"
	SPDXLicenseCNRIPythonGPLCompatible        SPDXLicense = "CNRI-Python-GPL-Compatible"
	SPDXLicenseCNRIPython                     SPDXLicense = "CNRI-Python"
	SPDXLicenseCondor11                       SPDXLicense = "Condor-1.1"
	SPDXLicenseCPAL10                         SPDXLicense = "CPAL-1.0"
	SPDXLicenseCPL10                          SPDXLicense = "CPL-1.0"
	SPDXLicenseCPOL102                        SPDXLicense = "CPOL-1.02"
	SPDXLicenseCrossword                      SPDXLicense = "Crossword"
	SPDXLicenseCrystalStacker                 SPDXLicense = "CrystalStacker"
	SPDXLicenseCUAOPL10                       SPDXLicense = "CUA-OPL-1.0"
	SPDXLicenseCube                           SPDXLicense = "Cube"
	SPDXLicenseCurl                           SPDXLicense = "curl"
	SPDXLicenseDFSL10                         SPDXLicense = "D-FSL-1.0"
	SPDXLicenseDiffmark                       SPDXLicense = "diffmark"
	SPDXLicenseDOC                            SPDXLicense = "DOC"
	SPDXLicenseDotseqn                        SPDXLicense = "Dotseqn"
	SPDXLicenseDSDP                           SPDXLicense = "DSDP"
	SPDXLicenseDvipdfm                        SPDXLicense = "dvipdfm"
	SPDXLicenseECL10                          SPDXLicense = "ECL-1.0"
	SPDXLicenseECL20                          SPDXLicense = "ECL-2.0"
	SPDXLicenseEFL10                          SPDXLicense = "EFL-1.0"
	SPDXLicenseEFL20                          SPDXLicense = "EFL-2.0"
	SPDXLicenseEGenix                         SPDXLicense = "eGenix"
	SPDXLicenseEntessa                        SPDXLicense = "Entessa"
	SPDXLicenseEPL10                          SPDXLicense = "EPL-1.0"
	SPDXLicenseEPL20                          SPDXLicense = "EPL-2.0"
	SPDXLicenseErlPL11                        SPDXLicense = "ErlPL-1.1"
	SPDXLicenseEUDatagrid                     SPDXLicense = "EUDatagrid"
	SPDXLicenseEUPL10                         SPDXLicense = "EUPL-1.0"
	SPDXLicenseEUPL11                         SPDXLicense = "EUPL-1.1"
	SPDXLicenseEUPL12                         SPDXLicense = "EUPL-1.2"
	SPDXLicenseEurosym                        SPDXLicense = "Eurosym"
	SPDXLicenseFair                           SPDXLicense = "Fair"
	SPDXLicenseFrameworx10                    SPDXLicense = "Frameworx-1.0"
	SPDXLicenseFreeImage                      SPDXLicense = "FreeImage"
	SPDXLicenseFSFAP                          SPDXLicense = "FSFAP"
	SPDXLicenseFSFUL                          SPDXLicense = "FSFUL"
	SPDXLicenseFSFULLR                        SPDXLicense = "FSFULLR"
	SPDXLicenseFTL                            SPDXLicense = "FTL"
	SPDXLicenseGFDL11Only                     SPDXLicense = "GFDL-1.1-only"
	SPDXLicenseGFDL11OrLater                  SPDXLicense = "GFDL-1.1-or-later"
	SPDXLicenseGFDL12Only                     SPDXLicense = "GFDL-1.2-only"
	SPDXLicenseGFDL12OrLater                  SPDXLicense = "GFDL-1.2-or-later"
	SPDXLicenseGFDL13Only                     SPDXLicense = "GFDL-1.3-only"
	SPDXLicenseGFDL13OrLater                  SPDXLicense = "GFDL-1.3-or-later"
	SPDXLicenseGiftware                       SPDXLicense = "Giftware"
	SPDXLicenseGL2PS                          SPDXLicense = "GL2PS"
	SPDXLicenseGlide                          SPDXLicense = "Glide"
	SPDXLicenseGlulxe                         SPDXLicense = "Glulxe"
	SPDXLicenseGnuplot                        SPDXLicense = "gnuplot"
	SPDXLicenseGPL10Only                      SPDXLicense = "GPL-1.0-only"
	SPDXLicenseGPL10OrLater                   SPDXLicense = "GPL-1.0-or-later"
	SPDXLicenseGPL20Only                      SPDXLicense = "GPL-2.0-only"
	SPDXLicenseGPL20OrLater                   SPDXLicense = "GPL-2.0-or-later"
	SPDXLicenseGPL30Only                      SPDXLicense = "GPL-3.0-only"
	SPDXLicenseGPL30OrLater                   SPDXLicense = "GPL-3.0-or-later"
	SPDXLicenseGSOAP13b                       SPDXLicense = "gSOAP-1.3b"
	SPDXLicenseHaskellReport                  SPDXLicense = "HaskellReport"
	SPDXLicenseHPND                           SPDXLicense = "HPND"
	SPDXLicenseIBMPibs                        SPDXLicense = "IBM-pibs"
	SPDXLicenseICU                            SPDXLicense = "ICU"
	SPDXLicenseIJG                            SPDXLicense = "IJG"
	SPDXLicenseImageMagick                    SPDXLicense = "ImageMagick"
	SPDXLicenseIMatix                         SPDXLicense = "iMatix"
	SPDXLicenseImlib2                         SPDXLicense = "Imlib2"
	SPDXLicenseInfoZIP                        SPDXLicense = "Info-ZIP"
	SPDXLicenseIntelACPI                      SPDXLicense = "Intel-ACPI"
	SPDXLicenseIntel                          SPDXLicense = "Intel"
	SPDXLicenseInterbase10                    SPDXLicense = "Interbase-1.0"
	SPDXLicenseIPA                            SPDXLicense = "IPA"
	SPDXLicenseIPL10                          SPDXLicense = "IPL-1.0"
	SPDXLicenseISC                            SPDXLicense = "ISC"
	SPDXLicenseJasPer20                       SPDXLicense = "JasPer-2.0"
	SPDXLicenseJSON                           SPDXLicense = "JSON"
	SPDXLicenseLAL12                          SPDXLicense = "LAL-1.2"
	SPDXLicenseLAL13                          SPDXLicense = "LAL-1.3"
	SPDXLicenseLatex2e                        SPDXLicense = "Latex2e"
	SPDXLicenseLeptonica                      SPDXLicense = "Leptonica"
	SPDXLicenseLGPL20Only                     SPDXLicense = "LGPL-2.0-only"
	SPDXLicenseLGPL20OrLater                  SPDXLicense = "LGPL-2.0-or-later"
	SPDXLicenseLGPL21Only                     SPDXLicense = "LGPL-2.1-only"
	SPDXLicenseLGPL21OrLater                  SPDXLicense = "LGPL-2.1-or-later"
	SPDXLicenseLGPL30Only                     SPDXLicense = "LGPL-3.0-only"
	SPDXLicenseLGPL30OrLater                  SPDXLicense = "LGPL-3.0-or-later"
	SPDXLicenseLGPLLR                         SPDXLicense = "LGPLLR"
	SPDXLicenseLibpng                         SPDXLicense = "Libpng"
	SPDXLicenseLibtiff                        SPDXLicense = "libtiff"
	SPDXLicenseLiLiQP11                       SPDXLicense = "LiLiQ-P-1.1"
	SPDXLicenseLiLiQR11                       SPDXLicense = "LiLiQ-R-1.1"
	SPDXLicenseLiLiQRplus11                   SPDXLicense = "LiLiQ-Rplus-1.1"
	SPDXLicenseLinuxOpenIB                    SPDXLicense = "Linux-OpenIB"
	SPDXLicenseLPL10                          SPDXLicense = "LPL-1.0"
	SPDXLicenseLPL102                         SPDXLicense = "LPL-1.02"
	SPDXLicenseLPPL10                         SPDXLicense = "LPPL-1.0"
	SPDXLicenseLPPL11                         SPDXLicense = "LPPL-1.1"
	SPDXLicenseLPPL12                         SPDXLicense = "LPPL-1.2"
	SPDXLicenseLPPL13a                        SPDXLicense = "LPPL-1.3a"
	SPDXLicenseLPPL13c                        SPDXLicense = "LPPL-1.3c"
	SPDXLicenseMakeIndex                      SPDXLicense = "MakeIndex"
	SPDXLicenseMirOS                          SPDXLicense = "MirOS"
	SPDXLicenseMIT0                           SPDXLicense = "MIT-0"
	SPDXLicenseMITAdvertising                 SPDXLicense = "MIT-advertising"
	SPDXLicenseMITCMU                         SPDXLicense = "MIT-CMU"
	SPDXLicenseMITEnna                        SPDXLicense = "MIT-enna"
	SPDXLicenseMITFeh                         SPDXLicense = "MIT-feh"
	SPDXLicenseMIT                            SPDXLicense = "MIT"
	SPDXLicenseMITNFA                         SPDXLicense = "MITNFA"
	SPDXLicenseMotosoto                       SPDXLicense = "Motosoto"
	SPDXLicenseMpich2                         SPDXLicense = "mpich2"
	SPDXLicenseMPL10                          SPDXLicense = "MPL-1.0"
	SPDXLicenseMPL11                          SPDXLicense = "MPL-1.1"
	SPDXLicenseMPL20NoCopyleftException       SPDXLicense = "MPL-2.0-no-copyleft-exception"
	SPDXLicenseMPL20                          SPDXLicense = "MPL-2.0"
	SPDXLicenseMSPL                           SPDXLicense = "MS-PL"
	SPDXLicenseMSRL                           SPDXLicense = "MS-RL"
	SPDXLicenseMTLL                           SPDXLicense = "MTLL"
	SPDXLicenseMultics                        SPDXLicense = "Multics"
	SPDXLicenseMup                            SPDXLicense = "Mup"
	SPDXLicenseNASA13                         SPDXLicense = "NASA-1.3"
	SPDXLicenseNaumen                         SPDXLicense = "Naumen"
	SPDXLicenseNBPL10                         SPDXLicense = "NBPL-1.0"
	SPDXLicenseNCSA                           SPDXLicense = "NCSA"
	SPDXLicenseNetSNMP                        SPDXLicense = "Net-SNMP"
	SPDXLicenseNetCDF                         SPDXLicense = "NetCDF"
	SPDXLicenseNewsletr                       SPDXLicense = "Newsletr"
	SPDXLicenseNGPL                           SPDXLicense = "NGPL"
	SPDXLicenseNLOD10                         SPDXLicense = "NLOD-1.0"
	SPDXLicenseNLPL                           SPDXLicense = "NLPL"
	SPDXLicenseNokia                          SPDXLicense = "Nokia"
	SPDXLicenseNOSL                           SPDXLicense = "NOSL"
	SPDXLicenseNoweb                          SPDXLicense = "Noweb"
	SPDXLicenseNPL10                          SPDXLicense = "NPL-1.0"
	SPDXLicenseNPL11                          SPDXLicense = "NPL-1.1"
	SPDXLicenseNPOSL30                        SPDXLicense = "NPOSL-3.0"
	SPDXLicenseNRL                            SPDXLicense = "NRL"
	SPDXLicenseNTP                            SPDXLicense = "NTP"
	SPDXLicenseOCCTPL                         SPDXLicense = "OCCT-PL"
	SPDXLicenseOCLC20                         SPDXLicense = "OCLC-2.0"
	SPDXLicenseODbL10                         SPDXLicense = "ODbL-1.0"
	SPDXLicenseOFL10                          SPDXLicense = "OFL-1.0"
	SPDXLicenseOFL11                          SPDXLicense = "OFL-1.1"
	SPDXLicenseOGTSL                          SPDXLicense = "OGTSL"
	SPDXLicenseOLDAP11                        SPDXLicense = "OLDAP-1.1"
	SPDXLicenseOLDAP12                        SPDXLicense = "OLDAP-1.2"
	SPDXLicenseOLDAP13                        SPDXLicense = "OLDAP-1.3"
	SPDXLicenseOLDAP14                        SPDXLicense = "OLDAP-1.4"
	SPDXLicenseOLDAP201                       SPDXLicense = "OLDAP-2.0.1"
	SPDXLicenseOLDAP20                        SPDXLicense = "OLDAP-2.0"
	SPDXLicenseOLDAP21                        SPDXLicense = "OLDAP-2.1"
	SPDXLicenseOLDAP221                       SPDXLicense = "OLDAP-2.2.1"
	SPDXLicenseOLDAP222                       SPDXLicense = "OLDAP-2.2.2"
	SPDXLicenseOLDAP22                        SPDXLicense = "OLDAP-2.2"
	SPDXLicenseOLDAP23                        SPDXLicense = "OLDAP-2.3"
	SPDXLicenseOLDAP24                        SPDXLicense = "OLDAP-2.4"
	SPDXLicenseOLDAP25                        SPDXLicense = "OLDAP-2.5"
	SPDXLicenseOLDAP26                        SPDXLicense = "OLDAP-2.6"
	SPDXLicenseOLDAP27                        SPDXLicense = "OLDAP-2.7"
	SPDXLicenseOLDAP28                        SPDXLicense = "OLDAP-2.8"
	SPDXLicenseOML                            SPDXLicense = "OML"
	SPDXLicenseOpenSSL                        SPDXLicense = "OpenSSL"
	SPDXLicenseOPL10                          SPDXLicense = "OPL-1.0"
	SPDXLicenseOSETPL21                       SPDXLicense = "OSET-PL-2.1"
	SPDXLicenseOSL10                          SPDXLicense = "OSL-1.0"
	SPDXLicenseOSL11                          SPDXLicense = "OSL-1.1"
	SPDXLicenseOSL20                          SPDXLicense = "OSL-2.0"
	SPDXLicenseOSL21                          SPDXLicense = "OSL-2.1"
	SPDXLicenseOSL30                          SPDXLicense = "OSL-3.0"
	SPDXLicensePDDL10                         SPDXLicense = "PDDL-1.0"
	SPDXLicensePHP30                          SPDXLicense = "PHP-3.0"
	SPDXLicensePHP301                         SPDXLicense = "PHP-3.01"
	SPDXLicensePlexus                         SPDXLicense = "Plexus"
	SPDXLicensePostgreSQL                     SPDXLicense = "PostgreSQL"
	SPDXLicensePsfrag                         SPDXLicense = "psfrag"
	SPDXLicensePsutils                        SPDXLicense = "psutils"
	SPDXLicensePython20                       SPDXLicense = "Python-2.0"
	SPDXLicenseQhull                          SPDXLicense = "Qhull"
	SPDXLicenseQPL10                          SPDXLicense = "QPL-1.0"
	SPDXLicenseRdisc                          SPDXLicense = "Rdisc"
	SPDXLicenseRHeCos11                       SPDXLicense = "RHeCos-1.1"
	SPDXLicenseRPL11                          SPDXLicense = "RPL-1.1"
	SPDXLicenseRPL15                          SPDXLicense = "RPL-1.5"
	SPDXLicenseRPSL10                         SPDXLicense = "RPSL-1.0"
	SPDXLicenseRSAMD                          SPDXLicense = "RSA-MD"
	SPDXLicenseRSCPL                          SPDXLicense = "RSCPL"
	SPDXLicenseRuby                           SPDXLicense = "Ruby"
	SPDXLicenseSAXPD                          SPDXLicense = "SAX-PD"
	SPDXLicenseSaxpath                        SPDXLicense = "Saxpath"
	SPDXLicenseSCEA                           SPDXLicense = "SCEA"
	SPDXLicenseSendmail                       SPDXLicense = "Sendmail"
	SPDXLicenseSGIB10                         SPDXLicense = "SGI-B-1.0"
	SPDXLicenseSGIB11                         SPDXLicense = "SGI-B-1.1"
	SPDXLicenseSGIB20                         SPDXLicense = "SGI-B-2.0"
	SPDXLicenseSimPL20                        SPDXLicense = "SimPL-2.0"
	SPDXLicenseSISSL12                        SPDXLicense = "SISSL-1.2"
	SPDXLicenseSISSL                          SPDXLicense = "SISSL"
	SPDXLicenseSleepycat                      SPDXLicense = "Sleepycat"
	SPDXLicenseSMLNJ                          SPDXLicense = "SMLNJ"
	SPDXLicenseSMPPL                          SPDXLicense = "SMPPL"
	SPDXLicenseSNIA                           SPDXLicense = "SNIA"
	SPDXLicenseSpencer86                      SPDXLicense = "Spencer-86"
	SPDXLicenseSpencer94                      SPDXLicense = "Spencer-94"
	SPDXLicenseSpencer99                      SPDXLicense = "Spencer-99"
	SPDXLicenseSPL10                          SPDXLicense = "SPL-1.0"
	SPDXLicenseSugarCRM113                    SPDXLicense = "SugarCRM-1.1.3"
	SPDXLicenseSWL                            SPDXLicense = "SWL"
	SPDXLicenseTCL                            SPDXLicense = "TCL"
	SPDXLicenseTCPWrappers                    SPDXLicense = "TCP-wrappers"
	SPDXLicenseTMate                          SPDXLicense = "TMate"
	SPDXLicenseTORQUE11                       SPDXLicense = "TORQUE-1.1"
	SPDXLicenseTOSL                           SPDXLicense = "TOSL"
	SPDXLicenseUnicodeDFS2015                 SPDXLicense = "Unicode-DFS-2015"
	SPDXLicenseUnicodeDFS2016                 SPDXLicense = "Unicode-DFS-2016"
	SPDXLicenseUnicodeTOU                     SPDXLicense = "Unicode-TOU"
	SPDXLicenseUnlicense                      SPDXLicense = "Unlicense"
	SPDXLicenseUPL10                          SPDXLicense = "UPL-1.0"
	SPDXLicenseVim                            SPDXLicense = "Vim"
	SPDXLicenseVOSTROM                        SPDXLicense = "VOSTROM"
	SPDXLicenseVSL10                          SPDXLicense = "VSL-1.0"
	SPDXLicenseW3C19980720                    SPDXLicense = "W3C-19980720"
	SPDXLicenseW3C20150513                    SPDXLicense = "W3C-20150513"
	SPDXLicenseW3C                            SPDXLicense = "W3C"
	SPDXLicenseWatcom10                       SPDXLicense = "Watcom-1.0"
	SPDXLicenseWsuipa                         SPDXLicense = "Wsuipa"
	SPDXLicenseWTFPL                          SPDXLicense = "WTFPL"
	SPDXLicenseX11                            SPDXLicense = "X11"
	SPDXLicenseXerox                          SPDXLicense = "Xerox"
	SPDXLicenseXFree8611                      SPDXLicense = "XFree86-1.1"
	SPDXLicenseXinetd                         SPDXLicense = "xinetd"
	SPDXLicenseXnet                           SPDXLicense = "Xnet"
	SPDXLicenseXpp                            SPDXLicense = "xpp"
	SPDXLicenseXSkat                          SPDXLicense = "XSkat"
	SPDXLicenseYPL10                          SPDXLicense = "YPL-1.0"
	SPDXLicenseYPL11                          SPDXLicense = "YPL-1.1"
	SPDXLicenseZed                            SPDXLicense = "Zed"
	SPDXLicenseZend20                         SPDXLicense = "Zend-2.0"
	SPDXLicenseZimbra13                       SPDXLicense = "Zimbra-1.3"
	SPDXLicenseZimbra14                       SPDXLicense = "Zimbra-1.4"
	SPDXLicenseZlibAcknowledgement            SPDXLicense = "zlib-acknowledgement"
	SPDXLicenseZlib                           SPDXLicense = "Zlib"
	SPDXLicenseZPL11                          SPDXLicense = "ZPL-1.1"
	SPDXLicenseZPL20                          SPDXLicense = "ZPL-2.0"
	SPDXLicenseZPL21                          SPDXLicense = "ZPL-2.1"
)

type SampledData

type SampledData struct {
	Id           *string   `json:"id,omitempty" bson:"id,omitempty"`                  // Unique id for inter-element referencing
	Origin       *Quantity `json:"origin" bson:"origin"`                              // Zero value and units
	Interval     *float64  `json:"interval,omitempty" bson:"interval,omitempty"`      // Number of intervalUnits between samples
	IntervalUnit string    `json:"intervalUnit" bson:"interval_unit"`                 // The measurement unit of the interval between samples
	Factor       *float64  `json:"factor,omitempty" bson:"factor,omitempty"`          // Multiply data by this before adding to origin
	LowerLimit   *float64  `json:"lowerLimit,omitempty" bson:"lower_limit,omitempty"` // Lower limit of detection
	UpperLimit   *float64  `json:"upperLimit,omitempty" bson:"upper_limit,omitempty"` // Upper limit of detection
	Dimensions   int       `json:"dimensions" bson:"dimensions"`                      // Number of sample points at each time point
	CodeMap      *string   `json:"codeMap,omitempty" bson:"code_map,omitempty"`       // Defines the codes used in the data
	Offsets      *string   `json:"offsets,omitempty" bson:"offsets,omitempty"`        // Offsets, typically in time, at which data values were taken
	Data         *string   `json:"data,omitempty" bson:"data,omitempty"`              // Decimal values with spaces, or "E" | "U" | "L", or another code
}

SampledData Type: A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.

func (*SampledData) Validate

func (r *SampledData) Validate() error

type Schedule

type Schedule struct {
	ResourceType    string              `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id              *string             `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta            *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules   *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language        *string             `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	Text            *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                        // Text summary of the resource, for human interpretation
	Contained       []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`              // Contained, inline Resources
	Identifier      []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`            // External Ids for this item
	Active          *bool               `json:"active,omitempty" bson:"active,omitempty"`                    // Whether this schedule is in active use
	ServiceCategory []CodeableConcept   `json:"serviceCategory,omitempty" bson:"service_category,omitempty"` // High-level category
	ServiceType     []CodeableReference `json:"serviceType,omitempty" bson:"service_type,omitempty"`         // Specific service
	Specialty       []CodeableConcept   `json:"specialty,omitempty" bson:"specialty,omitempty"`              // Type of specialty needed
	Name            *string             `json:"name,omitempty" bson:"name,omitempty"`                        // Human-readable label
	Actor           []Reference         `json:"actor" bson:"actor"`                                          // Resource(s) that availability information is being provided for
	PlanningHorizon *Period             `json:"planningHorizon,omitempty" bson:"planning_horizon,omitempty"` // Period of time covered by schedule
	Comment         *string             `json:"comment,omitempty" bson:"comment,omitempty"`                  // Comments on availability
}

A container for slots of time that may be available for booking appointments.

func (*Schedule) Validate

func (r *Schedule) Validate() error

type SearchComparator added in v0.0.3

type SearchComparator string

SearchComparator represents codes from http://hl7.org/fhir/ValueSet/search-comparator

const (
	SearchComparatorEq SearchComparator = "eq"
	SearchComparatorNe SearchComparator = "ne"
	SearchComparatorGt SearchComparator = "gt"
	SearchComparatorLt SearchComparator = "lt"
	SearchComparatorGe SearchComparator = "ge"
	SearchComparatorLe SearchComparator = "le"
	SearchComparatorSa SearchComparator = "sa"
	SearchComparatorEb SearchComparator = "eb"
	SearchComparatorAp SearchComparator = "ap"
)

type SearchEntryMode added in v0.0.3

type SearchEntryMode string

SearchEntryMode represents codes from http://hl7.org/fhir/ValueSet/search-entry-mode

const (
	SearchEntryModeMatch   SearchEntryMode = "match"
	SearchEntryModeInclude SearchEntryMode = "include"
	SearchEntryModeOutcome SearchEntryMode = "outcome"
)

type SearchModifierAllCodes added in v0.0.3

type SearchModifierAllCodes string

SearchModifierAllCodes represents codes from http://hl7.org/fhir/ValueSet/search-modifier-all-codes

const (
	SearchModifierAllCodesMissing      SearchModifierAllCodes = "missing"
	SearchModifierAllCodesExact        SearchModifierAllCodes = "exact"
	SearchModifierAllCodesContains     SearchModifierAllCodes = "contains"
	SearchModifierAllCodesNot          SearchModifierAllCodes = "not"
	SearchModifierAllCodesText         SearchModifierAllCodes = "text"
	SearchModifierAllCodesIn           SearchModifierAllCodes = "in"
	SearchModifierAllCodesNotIn        SearchModifierAllCodes = "not-in"
	SearchModifierAllCodesBelow        SearchModifierAllCodes = "below"
	SearchModifierAllCodesAbove        SearchModifierAllCodes = "above"
	SearchModifierAllCodesType         SearchModifierAllCodes = "type"
	SearchModifierAllCodesIdentifier   SearchModifierAllCodes = "identifier"
	SearchModifierAllCodesOfType       SearchModifierAllCodes = "of-type"
	SearchModifierAllCodesCodeText     SearchModifierAllCodes = "code-text"
	SearchModifierAllCodesTextAdvanced SearchModifierAllCodes = "text-advanced"
	SearchModifierAllCodesIterate      SearchModifierAllCodes = "iterate"
)

type SearchModifierCode added in v0.0.3

type SearchModifierCode string

SearchModifierCode represents codes from http://hl7.org/fhir/ValueSet/search-modifier-code

const (
	SearchModifierCodeMissing      SearchModifierCode = "missing"
	SearchModifierCodeExact        SearchModifierCode = "exact"
	SearchModifierCodeContains     SearchModifierCode = "contains"
	SearchModifierCodeNot          SearchModifierCode = "not"
	SearchModifierCodeText         SearchModifierCode = "text"
	SearchModifierCodeIn           SearchModifierCode = "in"
	SearchModifierCodeNotIn        SearchModifierCode = "not-in"
	SearchModifierCodeBelow        SearchModifierCode = "below"
	SearchModifierCodeAbove        SearchModifierCode = "above"
	SearchModifierCodeType         SearchModifierCode = "type"
	SearchModifierCodeIdentifier   SearchModifierCode = "identifier"
	SearchModifierCodeOfType       SearchModifierCode = "of-type"
	SearchModifierCodeCodeText     SearchModifierCode = "code-text"
	SearchModifierCodeTextAdvanced SearchModifierCode = "text-advanced"
	SearchModifierCodeIterate      SearchModifierCode = "iterate"
)

type SearchParamType added in v0.0.3

type SearchParamType string

SearchParamType represents codes from http://hl7.org/fhir/ValueSet/search-param-type

const (
	SearchParamTypeNumber    SearchParamType = "number"
	SearchParamTypeDate      SearchParamType = "date"
	SearchParamTypeString    SearchParamType = "string"
	SearchParamTypeToken     SearchParamType = "token"
	SearchParamTypeReference SearchParamType = "reference"
	SearchParamTypeComposite SearchParamType = "composite"
	SearchParamTypeQuantity  SearchParamType = "quantity"
	SearchParamTypeUri       SearchParamType = "uri"
	SearchParamTypeSpecial   SearchParamType = "special"
	SearchParamTypeResource  SearchParamType = "resource"
)

type SearchParameter

type SearchParameter struct {
	ResourceType           string                     `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                    `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                      `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                    `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                 `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage          `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    string                     `json:"url" bson:"url"`                                                             // Canonical identifier for this search parameter, represented as a URI (globally unique)
	Identifier             []Identifier               `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the search parameter (business identifier)
	Version                *string                    `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the search parameter
	VersionAlgorithmString *string                    `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                    `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                     `json:"name" bson:"name"`                                                           // Name for this search parameter (computer friendly)
	Title                  *string                    `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this search parameter (human friendly)
	DerivedFrom            *string                    `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                        // Original definition for the search parameter
	Status                 string                     `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                      `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                    `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                    `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail            `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            string                     `json:"description" bson:"description"`                                             // Natural language description of the search parameter
	UseContext             []UsageContext             `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept          `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the search parameter (if applicable)
	Purpose                *string                    `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this search parameter is defined
	Copyright              *string                    `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                    `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Code                   string                     `json:"code" bson:"code"`                                                           // Recommended name for parameter in search url
	AliasCode              []string                   `json:"aliasCode,omitempty" bson:"alias_code,omitempty"`                            // Additional recommended names for parameter in search url
	Base                   []string                   `json:"base" bson:"base"`                                                           // The resource type(s) this search parameter applies to
	Type                   string                     `json:"type" bson:"type"`                                                           // number | date | string | token | reference | composite | quantity | uri | special | resource
	Expression             *string                    `json:"expression,omitempty" bson:"expression,omitempty"`                           // FHIRPath expression that extracts the values
	ProcessingMode         *string                    `json:"processingMode,omitempty" bson:"processing_mode,omitempty"`                  // normal | phonetic | other
	Constraint             *string                    `json:"constraint,omitempty" bson:"constraint,omitempty"`                           // FHIRPath expression that constraints the usage of this SearchParameter
	Target                 []string                   `json:"target,omitempty" bson:"target,omitempty"`                                   // Types of resource (if a resource reference)
	MultipleOr             *bool                      `json:"multipleOr,omitempty" bson:"multiple_or,omitempty"`                          // Allow multiple values per parameter (or)
	MultipleAnd            *bool                      `json:"multipleAnd,omitempty" bson:"multiple_and,omitempty"`                        // Allow multiple parameters (and)
	Comparator             []string                   `json:"comparator,omitempty" bson:"comparator,omitempty"`                           // eq | ne | gt | lt | ge | le | sa | eb | ap
	Modifier               []string                   `json:"modifier,omitempty" bson:"modifier,omitempty"`                               // missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
	Chain                  []string                   `json:"chain,omitempty" bson:"chain,omitempty"`                                     // Chained names supported
	Component              []SearchParameterComponent `json:"component,omitempty" bson:"component,omitempty"`                             // For Composite resources to define the parts
}

A search parameter that defines a named search item that can be used to search/filter on a resource.

func (*SearchParameter) Validate

func (r *SearchParameter) Validate() error

type SearchParameterComponent

type SearchParameterComponent struct {
	Id         *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Definition string  `json:"definition" bson:"definition"`     // Defines how the part works
	Expression string  `json:"expression" bson:"expression"`     // Sub-expression relative to main expression
}

func (*SearchParameterComponent) Validate

func (r *SearchParameterComponent) Validate() error

type SearchProcessingModeType added in v0.0.3

type SearchProcessingModeType string

SearchProcessingModeType represents codes from http://hl7.org/fhir/ValueSet/search-processingmode

const (
	SearchProcessingModeTypeNormal   SearchProcessingModeType = "normal"
	SearchProcessingModeTypePhonetic SearchProcessingModeType = "phonetic"
	SearchProcessingModeTypeOther    SearchProcessingModeType = "other"
)

type ServiceRequest

type ServiceRequest struct {
	ResourceType       string                             `json:"resourceType" bson:"resource_type"`                                  // Type of resource
	Id                 *string                            `json:"id,omitempty" bson:"id,omitempty"`                                   // Logical id of this artifact
	Meta               *Meta                              `json:"meta,omitempty" bson:"meta,omitempty"`                               // Metadata about the resource
	ImplicitRules      *string                            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`            // A set of rules under which this content was created
	Language           *string                            `json:"language,omitempty" bson:"language,omitempty"`                       // Language of the resource content
	Text               *Narrative                         `json:"text,omitempty" bson:"text,omitempty"`                               // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage                  `json:"contained,omitempty" bson:"contained,omitempty"`                     // Contained, inline Resources
	Identifier         []Identifier                       `json:"identifier,omitempty" bson:"identifier,omitempty"`                   // Identifiers assigned to this order
	BasedOn            []Reference                        `json:"basedOn,omitempty" bson:"based_on,omitempty"`                        // What request fulfills
	Replaces           []Reference                        `json:"replaces,omitempty" bson:"replaces,omitempty"`                       // What request replaces
	Requisition        *Identifier                        `json:"requisition,omitempty" bson:"requisition,omitempty"`                 // Composite Request ID
	Status             string                             `json:"status" bson:"status"`                                               // draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
	StatusReason       []CodeableConcept                  `json:"statusReason,omitempty" bson:"status_reason,omitempty"`              // Reason for current status
	Intent             string                             `json:"intent" bson:"intent"`                                               // proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
	Category           []CodeableConcept                  `json:"category,omitempty" bson:"category,omitempty"`                       // Classification of service
	Priority           *string                            `json:"priority,omitempty" bson:"priority,omitempty"`                       // routine | urgent | asap | stat
	DoNotPerform       *bool                              `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`             // True if service/procedure should not be performed
	Code               *CodeableReference                 `json:"code,omitempty" bson:"code,omitempty"`                               // What is being requested/ordered
	OrderDetail        []ServiceRequestOrderDetail        `json:"orderDetail,omitempty" bson:"order_detail,omitempty"`                // Additional information about the request
	QuantityQuantity   *Quantity                          `json:"quantityQuantity,omitempty" bson:"quantity_quantity,omitempty"`      // Service amount
	QuantityRatio      *Ratio                             `json:"quantityRatio,omitempty" bson:"quantity_ratio,omitempty"`            // Service amount
	QuantityRange      *Range                             `json:"quantityRange,omitempty" bson:"quantity_range,omitempty"`            // Service amount
	Subject            *Reference                         `json:"subject" bson:"subject"`                                             // Individual or Entity the service is ordered for
	Focus              []Reference                        `json:"focus,omitempty" bson:"focus,omitempty"`                             // What the service request is about, when it is not about the subject of record
	Encounter          *Reference                         `json:"encounter,omitempty" bson:"encounter,omitempty"`                     // Encounter in which the request was created
	OccurrenceDateTime *string                            `json:"occurrenceDateTime,omitempty" bson:"occurrence_date_time,omitempty"` // When service should occur
	OccurrencePeriod   *Period                            `json:"occurrencePeriod,omitempty" bson:"occurrence_period,omitempty"`      // When service should occur
	OccurrenceTiming   *Timing                            `json:"occurrenceTiming,omitempty" bson:"occurrence_timing,omitempty"`      // When service should occur
	AsNeeded           *bool                              `json:"asNeeded,omitempty" bson:"as_needed,omitempty"`                      // Perform the service "as needed"
	AsNeededFor        []CodeableConcept                  `json:"asNeededFor,omitempty" bson:"as_needed_for,omitempty"`               // Specified criteria for the service
	AuthoredOn         *string                            `json:"authoredOn,omitempty" bson:"authored_on,omitempty"`                  // Date request signed
	Requester          *Reference                         `json:"requester,omitempty" bson:"requester,omitempty"`                     // Who/what is requesting service
	PerformerType      *CodeableConcept                   `json:"performerType,omitempty" bson:"performer_type,omitempty"`            // Performer role
	Performer          []Reference                        `json:"performer,omitempty" bson:"performer,omitempty"`                     // Requested performer
	Location           []CodeableReference                `json:"location,omitempty" bson:"location,omitempty"`                       // Requested location
	Reason             []CodeableReference                `json:"reason,omitempty" bson:"reason,omitempty"`                           // Reason or indication for requesting the service
	Insurance          []Reference                        `json:"insurance,omitempty" bson:"insurance,omitempty"`                     // Associated insurance coverage
	SupportingInfo     []CodeableReference                `json:"supportingInfo,omitempty" bson:"supporting_info,omitempty"`          // Additional clinical information
	Specimen           []Reference                        `json:"specimen,omitempty" bson:"specimen,omitempty"`                       // Procedure Samples
	BodyStructure      *CodeableReference                 `json:"bodyStructure,omitempty" bson:"body_structure,omitempty"`            // BodyStructure-based location on the body
	Note               []Annotation                       `json:"note,omitempty" bson:"note,omitempty"`                               // Comments
	PatientInstruction []ServiceRequestPatientInstruction `json:"patientInstruction,omitempty" bson:"patient_instruction,omitempty"`  // Patient or consumer-oriented instructions
	RelevantHistory    []Reference                        `json:"relevantHistory,omitempty" bson:"relevant_history,omitempty"`        // Request provenance
}

A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.

func (*ServiceRequest) Validate

func (r *ServiceRequest) Validate() error

type ServiceRequestOrderDetail

type ServiceRequestOrderDetail struct {
	Id                            *string                              `json:"id,omitempty" bson:"id,omitempty"`                                                          // Unique id for inter-element referencing
	ParameterFocusCodeableConcept *CodeableConcept                     `json:"parameterFocusCodeableConcept,omitempty" bson:"parameter_focus_codeable_concept,omitempty"` // The context of the order details by reference
	ParameterFocusReference       *Reference                           `json:"parameterFocusReference,omitempty" bson:"parameter_focus_reference,omitempty"`              // The context of the order details by reference
	ParameterFocusCanonical       *string                              `json:"parameterFocusCanonical,omitempty" bson:"parameter_focus_canonical,omitempty"`              // The context of the order details by reference
	Parameter                     []ServiceRequestOrderDetailParameter `json:"parameter" bson:"parameter"`                                                                // The parameter details for the service being requested
}

func (*ServiceRequestOrderDetail) Validate

func (r *ServiceRequestOrderDetail) Validate() error

type ServiceRequestOrderDetailParameter

type ServiceRequestOrderDetailParameter struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code                 *CodeableConcept `json:"code" bson:"code"`                                   // The detail of the order being requested
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // The value for the order detail
	ValueRatio           *Ratio           `json:"valueRatio" bson:"value_ratio"`                      // The value for the order detail
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // The value for the order detail
	ValueBoolean         *bool            `json:"valueBoolean" bson:"value_boolean"`                  // The value for the order detail
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // The value for the order detail
	ValueString          *string          `json:"valueString" bson:"value_string"`                    // The value for the order detail
	ValuePeriod          *Period          `json:"valuePeriod" bson:"value_period"`                    // The value for the order detail
}

func (*ServiceRequestOrderDetailParameter) Validate

type ServiceRequestPatientInstruction

type ServiceRequestPatientInstruction struct {
	Id                   *string    `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	InstructionMarkdown  *string    `json:"instructionMarkdown,omitempty" bson:"instruction_markdown,omitempty"`   // Patient or consumer-oriented instructions
	InstructionReference *Reference `json:"instructionReference,omitempty" bson:"instruction_reference,omitempty"` // Patient or consumer-oriented instructions
}

func (*ServiceRequestPatientInstruction) Validate

type Signature

type Signature struct {
	Id           *string    `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Type         []Coding   `json:"type,omitempty" bson:"type,omitempty"`                  // Indication of the reason the entity signed the object(s)
	When         *string    `json:"when,omitempty" bson:"when,omitempty"`                  // When the signature was created
	Who          *Reference `json:"who,omitempty" bson:"who,omitempty"`                    // Who signed
	OnBehalfOf   *Reference `json:"onBehalfOf,omitempty" bson:"on_behalf_of,omitempty"`    // The party represented
	TargetFormat *string    `json:"targetFormat,omitempty" bson:"target_format,omitempty"` // The technical format of the signed resources
	SigFormat    *string    `json:"sigFormat,omitempty" bson:"sig_format,omitempty"`       // The technical format of the signature
	Data         *string    `json:"data,omitempty" bson:"data,omitempty"`                  // The actual signature content (XML Signature, JSON Jose, picture, etc.)
}

Signature Type: A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities.

func (*Signature) Validate

func (r *Signature) Validate() error

type SimpleQuantity

type SimpleQuantity struct {
	Quantity []Quantity `json:"Quantity,omitempty" bson:"quantity,omitempty"` // A fixed quantity (no comparator)
}

A fixed quantity (no comparator)

func (*SimpleQuantity) Validate

func (r *SimpleQuantity) Validate() error

type SlicingRules added in v0.0.3

type SlicingRules string

SlicingRules represents codes from http://hl7.org/fhir/ValueSet/resource-slicing-rules

const (
	SlicingRulesClosed    SlicingRules = "closed"
	SlicingRulesOpen      SlicingRules = "open"
	SlicingRulesOpenAtEnd SlicingRules = "openAtEnd"
)

type Slot

type Slot struct {
	ResourceType    string              `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id              *string             `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta            *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules   *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language        *string             `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	Text            *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                        // Text summary of the resource, for human interpretation
	Contained       []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`              // Contained, inline Resources
	Identifier      []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`            // External Ids for this item
	ServiceCategory []CodeableConcept   `json:"serviceCategory,omitempty" bson:"service_category,omitempty"` // A broad categorization of the service that is to be performed during this appointment
	ServiceType     []CodeableReference `json:"serviceType,omitempty" bson:"service_type,omitempty"`         // The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the Schedule resource
	Specialty       []CodeableConcept   `json:"specialty,omitempty" bson:"specialty,omitempty"`              // The specialty of a practitioner that would be required to perform the service requested in this appointment
	AppointmentType []CodeableConcept   `json:"appointmentType,omitempty" bson:"appointment_type,omitempty"` // The style of appointment or patient that may be booked in the slot (not service type)
	Schedule        *Reference          `json:"schedule" bson:"schedule"`                                    // The schedule resource that this slot defines an interval of status information
	Status          string              `json:"status" bson:"status"`                                        // busy | free | busy-unavailable | busy-tentative | entered-in-error
	Start           string              `json:"start" bson:"start"`                                          // Date/Time that the slot is to begin
	End             string              `json:"end" bson:"end"`                                              // Date/Time that the slot is to conclude
	Overbooked      *bool               `json:"overbooked,omitempty" bson:"overbooked,omitempty"`            // This slot has already been overbooked, appointments are unlikely to be accepted for this time
	Comment         *string             `json:"comment,omitempty" bson:"comment,omitempty"`                  // Comments on the slot to describe any extended information. Such as custom constraints on the slot
}

A slot of time on a schedule that may be available for booking appointments.

func (*Slot) Validate

func (r *Slot) Validate() error

type SlotStatus added in v0.0.3

type SlotStatus string

SlotStatus represents codes from http://hl7.org/fhir/ValueSet/slotstatus

const (
	SlotStatusBusy            SlotStatus = "busy"
	SlotStatusFree            SlotStatus = "free"
	SlotStatusBusyUnavailable SlotStatus = "busy-unavailable"
	SlotStatusBusyTentative   SlotStatus = "busy-tentative"
	SlotStatusEnteredInError  SlotStatus = "entered-in-error"
)

type Snapshot

type Snapshot struct {
}

Generates a StructureDefinition(structuredefinition.html) instance with a snapshot, based on a differential in a specified StructureDefinition(structuredefinition.html). If the operation is not called at the instance level, either *definition* or *url* 'in' parameters must be provided. If more than one is specified, servers may raise an error or may resolve with the parameter of their choice. If called at the instance level, these parameters will be ignored. Snapshot generation is dependent on profiles that are referenced - if those profiles change, the snapshot can change. For a frozen package, $snapshot is idempotent.

func (*Snapshot) Validate

func (r *Snapshot) Validate() error

type SortDirection added in v0.0.3

type SortDirection string

SortDirection represents codes from http://hl7.org/fhir/ValueSet/sort-direction

const (
	SortDirectionAscending  SortDirection = "ascending"
	SortDirectionDescending SortDirection = "descending"
)

type Specimen

type Specimen struct {
	ResourceType  string               `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string              `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta                `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string              `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string              `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative           `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage    `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier         `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Primary specimen identifier
	Status        *string              `json:"status,omitempty" bson:"status,omitempty"`                // available | unavailable | unsatisfactory | entered-in-error
	Type          *CodeableConcept     `json:"type,omitempty" bson:"type,omitempty"`                    // Kind of material that forms the specimen
	Subject       *Reference           `json:"subject,omitempty" bson:"subject,omitempty"`              // Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance, a biologically-derived product, or a device
	ReceivedTime  *string              `json:"receivedTime,omitempty" bson:"received_time,omitempty"`   // The time when specimen is received by the testing laboratory
	Parent        []Reference          `json:"parent,omitempty" bson:"parent,omitempty"`                // Specimen from which this specimen originated
	Request       []Reference          `json:"request,omitempty" bson:"request,omitempty"`              // Why the specimen was collected
	Combined      *string              `json:"combined,omitempty" bson:"combined,omitempty"`            // grouped | pooled
	Role          []CodeableConcept    `json:"role,omitempty" bson:"role,omitempty"`                    // The role the specimen serves
	Feature       []SpecimenFeature    `json:"feature,omitempty" bson:"feature,omitempty"`              // The physical feature of a specimen
	Collection    *SpecimenCollection  `json:"collection,omitempty" bson:"collection,omitempty"`        // Collection details
	Processing    []SpecimenProcessing `json:"processing,omitempty" bson:"processing,omitempty"`        // Processing and processing step details
	Container     []SpecimenContainer  `json:"container,omitempty" bson:"container,omitempty"`          // Direct container of specimen (tube/slide, etc.)
	Condition     []CodeableConcept    `json:"condition,omitempty" bson:"condition,omitempty"`          // State of the specimen
	Note          []Annotation         `json:"note,omitempty" bson:"note,omitempty"`                    // Comments
}

A sample to be used for analysis.

func (*Specimen) Validate

func (r *Specimen) Validate() error

type SpecimenCollection

type SpecimenCollection struct {
	Id                           *string            `json:"id,omitempty" bson:"id,omitempty"`                                                        // Unique id for inter-element referencing
	Collector                    *Reference         `json:"collector,omitempty" bson:"collector,omitempty"`                                          // Who collected the specimen
	CollectedDateTime            *string            `json:"collectedDateTime,omitempty" bson:"collected_date_time,omitempty"`                        // Collection time
	CollectedPeriod              *Period            `json:"collectedPeriod,omitempty" bson:"collected_period,omitempty"`                             // Collection time
	Duration                     *Duration          `json:"duration,omitempty" bson:"duration,omitempty"`                                            // How long it took to collect specimen
	Quantity                     *Quantity          `json:"quantity,omitempty" bson:"quantity,omitempty"`                                            // The quantity of specimen collected
	Method                       *CodeableConcept   `json:"method,omitempty" bson:"method,omitempty"`                                                // Technique used to perform collection
	DeviceCodeableConcept        *CodeableConcept   `json:"deviceCodeableConcept,omitempty" bson:"device_codeable_concept,omitempty"`                // Device used to perform collection
	DeviceReference              *Reference         `json:"deviceReference,omitempty" bson:"device_reference,omitempty"`                             // Device used to perform collection
	DeviceCanonical              *string            `json:"deviceCanonical,omitempty" bson:"device_canonical,omitempty"`                             // Device used to perform collection
	Procedure                    *Reference         `json:"procedure,omitempty" bson:"procedure,omitempty"`                                          // The procedure that collects the specimen
	BodySite                     *CodeableReference `json:"bodySite,omitempty" bson:"body_site,omitempty"`                                           // Anatomical collection site
	FastingStatusCodeableConcept *CodeableConcept   `json:"fastingStatusCodeableConcept,omitempty" bson:"fasting_status_codeable_concept,omitempty"` // Whether or how long patient abstained from food and/or drink
	FastingStatusDuration        *Duration          `json:"fastingStatusDuration,omitempty" bson:"fasting_status_duration,omitempty"`                // Whether or how long patient abstained from food and/or drink
}

func (*SpecimenCollection) Validate

func (r *SpecimenCollection) Validate() error

type SpecimenCombined added in v0.0.3

type SpecimenCombined string

SpecimenCombined represents codes from http://hl7.org/fhir/ValueSet/specimen-combined

const (
	SpecimenCombinedGrouped SpecimenCombined = "grouped"
	SpecimenCombinedPooled  SpecimenCombined = "pooled"
)

type SpecimenContainedPreference added in v0.0.3

type SpecimenContainedPreference string

SpecimenContainedPreference represents codes from http://hl7.org/fhir/ValueSet/specimen-contained-preference

const (
	SpecimenContainedPreferencePreferred SpecimenContainedPreference = "preferred"
	SpecimenContainedPreferenceAlternate SpecimenContainedPreference = "alternate"
)

type SpecimenContainer

type SpecimenContainer struct {
	Id                    *string          `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	DeviceCodeableConcept *CodeableConcept `json:"deviceCodeableConcept" bson:"device_codeable_concept"`          // Device resource for the container
	DeviceReference       *Reference       `json:"deviceReference" bson:"device_reference"`                       // Device resource for the container
	DeviceCanonical       *string          `json:"deviceCanonical" bson:"device_canonical"`                       // Device resource for the container
	SpecimenQuantity      *Quantity        `json:"specimenQuantity,omitempty" bson:"specimen_quantity,omitempty"` // Quantity of specimen within container
}

func (*SpecimenContainer) Validate

func (r *SpecimenContainer) Validate() error

type SpecimenDefinition

type SpecimenDefinition struct {
	ResourceType           string                         `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                        `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                          `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                        `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                        `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                     `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage              `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                        `json:"url,omitempty" bson:"url,omitempty"`                                         // Logical canonical URL to reference this SpecimenDefinition (globally unique)
	Identifier             *Identifier                    `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Business identifier
	Version                *string                        `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the SpecimenDefinition
	VersionAlgorithmString *string                        `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                        `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                        `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this {{title}} (computer friendly)
	Title                  *string                        `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this SpecimenDefinition (Human friendly)
	DerivedFromCanonical   []string                       `json:"derivedFromCanonical,omitempty" bson:"derived_from_canonical,omitempty"`     // Based on FHIR definition of another SpecimenDefinition
	DerivedFromUri         []string                       `json:"derivedFromUri,omitempty" bson:"derived_from_uri,omitempty"`                 // Based on external definition
	Status                 string                         `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                          `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // If this SpecimenDefinition is not for real usage
	SubjectCodeableConcept *CodeableConcept               `json:"subjectCodeableConcept,omitempty" bson:"subject_codeable_concept,omitempty"` // Type of subject for specimen collection
	SubjectReference       *Reference                     `json:"subjectReference,omitempty" bson:"subject_reference,omitempty"`              // Type of subject for specimen collection
	Date                   *string                        `json:"date,omitempty" bson:"date,omitempty"`                                       // Date status first applied
	Publisher              *string                        `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // The name of the individual or organization that published the SpecimenDefinition
	Contact                []ContactDetail                `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                        `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the SpecimenDefinition
	UseContext             []UsageContext                 `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // Content intends to support these contexts
	Jurisdiction           []CodeableConcept              `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the this SpecimenDefinition (if applicable)
	Purpose                *string                        `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this SpecimenDefinition is defined
	Copyright              *string                        `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                        `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string                        `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When SpecimenDefinition was approved by publisher
	LastReviewDate         *string                        `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // The date on which the asset content was last reviewed by the publisher
	EffectivePeriod        *Period                        `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // The effective date range for the SpecimenDefinition
	TypeCollected          *CodeableConcept               `json:"typeCollected,omitempty" bson:"type_collected,omitempty"`                    // Kind of material to collect
	PatientPreparation     []CodeableConcept              `json:"patientPreparation,omitempty" bson:"patient_preparation,omitempty"`          // Patient preparation for collection
	TimeAspect             *string                        `json:"timeAspect,omitempty" bson:"time_aspect,omitempty"`                          // Time aspect for collection
	Collection             []CodeableConcept              `json:"collection,omitempty" bson:"collection,omitempty"`                           // Specimen collection procedure
	TypeTested             []SpecimenDefinitionTypeTested `json:"typeTested,omitempty" bson:"type_tested,omitempty"`                          // Specimen in container intended for testing by lab
}

A kind of specimen with associated set of requirements.

func (*SpecimenDefinition) Validate

func (r *SpecimenDefinition) Validate() error

type SpecimenDefinitionTypeTested

type SpecimenDefinitionTypeTested struct {
	Id                 *string                                `json:"id,omitempty" bson:"id,omitempty"`                                  // Unique id for inter-element referencing
	IsDerived          *bool                                  `json:"isDerived,omitempty" bson:"is_derived,omitempty"`                   // Primary or secondary specimen
	Type               *CodeableConcept                       `json:"type,omitempty" bson:"type,omitempty"`                              // Type of intended specimen
	Preference         string                                 `json:"preference" bson:"preference"`                                      // preferred | alternate
	Container          *SpecimenDefinitionTypeTestedContainer `json:"container,omitempty" bson:"container,omitempty"`                    // The specimen's container
	Requirement        *string                                `json:"requirement,omitempty" bson:"requirement,omitempty"`                // Requirements for specimen delivery and special handling
	RetentionTime      *Duration                              `json:"retentionTime,omitempty" bson:"retention_time,omitempty"`           // The usual time for retaining this kind of specimen
	SingleUse          *bool                                  `json:"singleUse,omitempty" bson:"single_use,omitempty"`                   // Specimen for single use only
	RejectionCriterion []CodeableConcept                      `json:"rejectionCriterion,omitempty" bson:"rejection_criterion,omitempty"` // Criterion specified for specimen rejection
	Handling           []SpecimenDefinitionTypeTestedHandling `json:"handling,omitempty" bson:"handling,omitempty"`                      // Specimen handling before testing
	TestingDestination []CodeableConcept                      `json:"testingDestination,omitempty" bson:"testing_destination,omitempty"` // Where the specimen will be tested
}

func (*SpecimenDefinitionTypeTested) Validate

func (r *SpecimenDefinitionTypeTested) Validate() error

type SpecimenDefinitionTypeTestedContainer

type SpecimenDefinitionTypeTestedContainer struct {
	Id                    *string                                         `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	Material              *CodeableConcept                                `json:"material,omitempty" bson:"material,omitempty"`                             // The material type used for the container
	Type                  *CodeableConcept                                `json:"type,omitempty" bson:"type,omitempty"`                                     // Kind of container associated with the kind of specimen
	Cap                   *CodeableConcept                                `json:"cap,omitempty" bson:"cap,omitempty"`                                       // Color of container cap
	Description           *string                                         `json:"description,omitempty" bson:"description,omitempty"`                       // The description of the kind of container
	Capacity              *Quantity                                       `json:"capacity,omitempty" bson:"capacity,omitempty"`                             // The capacity of this kind of container
	MinimumVolumeQuantity *Quantity                                       `json:"minimumVolumeQuantity,omitempty" bson:"minimum_volume_quantity,omitempty"` // Minimum volume
	MinimumVolumeString   *string                                         `json:"minimumVolumeString,omitempty" bson:"minimum_volume_string,omitempty"`     // Minimum volume
	Additive              []SpecimenDefinitionTypeTestedContainerAdditive `json:"additive,omitempty" bson:"additive,omitempty"`                             // Additive associated with container
	Preparation           *string                                         `json:"preparation,omitempty" bson:"preparation,omitempty"`                       // Special processing applied to the container for this specimen type
}

func (*SpecimenDefinitionTypeTestedContainer) Validate

type SpecimenDefinitionTypeTestedContainerAdditive

type SpecimenDefinitionTypeTestedContainerAdditive struct {
	Id                      *string          `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	AdditiveCodeableConcept *CodeableConcept `json:"additiveCodeableConcept" bson:"additive_codeable_concept"` // Additive associated with container
	AdditiveReference       *Reference       `json:"additiveReference" bson:"additive_reference"`              // Additive associated with container
}

func (*SpecimenDefinitionTypeTestedContainerAdditive) Validate

type SpecimenDefinitionTypeTestedHandling

type SpecimenDefinitionTypeTestedHandling struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	TemperatureQualifier *CodeableConcept `json:"temperatureQualifier,omitempty" bson:"temperature_qualifier,omitempty"` // Qualifies the interval of temperature
	TemperatureRange     *Range           `json:"temperatureRange,omitempty" bson:"temperature_range,omitempty"`         // Temperature range for these handling instructions
	MaxDuration          *Duration        `json:"maxDuration,omitempty" bson:"max_duration,omitempty"`                   // Maximum preservation time
	Instruction          *string          `json:"instruction,omitempty" bson:"instruction,omitempty"`                    // Preservation instruction
}

func (*SpecimenDefinitionTypeTestedHandling) Validate

type SpecimenFeature

type SpecimenFeature struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type        *CodeableConcept `json:"type" bson:"type"`                 // Highlighted feature
	Description string           `json:"description" bson:"description"`   // Information about the feature
}

func (*SpecimenFeature) Validate

func (r *SpecimenFeature) Validate() error

type SpecimenProcessing

type SpecimenProcessing struct {
	Id                    *string             `json:"id,omitempty" bson:"id,omitempty"`                                         // Unique id for inter-element referencing
	Description           *string             `json:"description,omitempty" bson:"description,omitempty"`                       // Textual description of procedure
	Method                *CodeableConcept    `json:"method,omitempty" bson:"method,omitempty"`                                 // Indicates the treatment step  applied to the specimen
	Performer             *Reference          `json:"performer,omitempty" bson:"performer,omitempty"`                           // Entity processing specimen
	DeviceCodeableConcept *CodeableConcept    `json:"deviceCodeableConcept,omitempty" bson:"device_codeable_concept,omitempty"` // Device used to process the specimen
	DeviceReference       *Reference          `json:"deviceReference,omitempty" bson:"device_reference,omitempty"`              // Device used to process the specimen
	DeviceCanonical       *string             `json:"deviceCanonical,omitempty" bson:"device_canonical,omitempty"`              // Device used to process the specimen
	Additive              []CodeableReference `json:"additive,omitempty" bson:"additive,omitempty"`                             // Material used in the processing step
	TimeDateTime          *string             `json:"timeDateTime,omitempty" bson:"time_date_time,omitempty"`                   // Date and time of specimen processing
	TimePeriod            *Period             `json:"timePeriod,omitempty" bson:"time_period,omitempty"`                        // Date and time of specimen processing
	TimeDuration          *Duration           `json:"timeDuration,omitempty" bson:"time_duration,omitempty"`                    // Date and time of specimen processing
}

func (*SpecimenProcessing) Validate

func (r *SpecimenProcessing) Validate() error

type SpecimenStatus added in v0.0.3

type SpecimenStatus string

SpecimenStatus represents codes from http://hl7.org/fhir/ValueSet/specimen-status

const (
	SpecimenStatusAvailable      SpecimenStatus = "available"
	SpecimenStatusUnavailable    SpecimenStatus = "unavailable"
	SpecimenStatusUnsatisfactory SpecimenStatus = "unsatisfactory"
	SpecimenStatusEnteredInError SpecimenStatus = "entered-in-error"
)

type Stats

type Stats struct {
}

The Statistics operation performs a set of statistical calculations on a set of clinical measurements such as a blood pressure as stored on the server. This operation evaluates Observation(observation.html) resources having valueQuantity elements that have UCUM unit codes. Alternatively, the [measure workflow pattern](measure.html) should be used when defining a quality measure (e.g. a description of how to calculate a particular measurement or set of measurements) as part of a workflow. The set of Observations is defined by 4 parameters: * the subject of the observations for which the statistics are being generated ('subject') * which observations to generate statistics for ('code' and 'system', or 'coding') * the time period over which to generate statistics 'duration' or 'period') * the set of statistical analyses to return ('statistic') Possible statistical analyses (see [StatisticsCode](valueset-observation-statistics.html)): - **average** ("Average"): The [mean](https://en.wikipedia.org/wiki/Arithmetic_mean) of N measurements over the stated period. - **maximum** ("Maximum"): The [maximum](https://en.wikipedia.org/wiki/Maximal_element) value of N measurements over the stated period. - **minimum** ("Minimum"): The [minimum](https://en.wikipedia.org/wiki/Minimal_element) value of N measurements over the stated period. - **count** ("Count"): The [number] of valid measurements over the stated period that contributed to the other statistical outputs. - **total-count** ("Total Count"): The total [number] of valid measurements over the stated period, including observations that were ignored because they did not contain valid result values. - **median** ("Median"): The [median](https://en.wikipedia.org/wiki/Median) of N measurements over the stated period. - **std-dev** ("Standard Deviation"): The [standard deviation](https://en.wikipedia.org/wiki/Standard_deviation) of N measurements over the stated period. - **sum** ("Sum"): The [sum](https://en.wikipedia.org/wiki/Summation) of N measurements over the stated period. - **variance** ("Variance"): The [variance](https://en.wikipedia.org/wiki/Variance) of N measurements over the stated period. - **20-percent** ("20th Percentile"): The 20th [Percentile](https://en.wikipedia.org/wiki/Percentile) of N measurements over the stated period. - **80-percent** ("80th Percentile"): The 80th [Percentile](https://en.wikipedia.org/wiki/Percentile) of N measurements over the stated period. - **4-lower** ("Lower Quartile"): The lower [Quartile](https://en.wikipedia.org/wiki/Quartile) Boundary of N measurements over the stated period. - **4-upper** ("Upper Quartile"): The upper [Quartile](https://en.wikipedia.org/wiki/Quartile) Boundary of N measurements over the stated period. - **4-dev** ("Quartile Deviation"): The difference between the upper and lower [Quartiles](https://en.wikipedia.org/wiki/Quartile) is called the Interquartile range. (IQR = Q3-Q1) Quartile deviation or Semi-interquartile range is one-half the difference between the first and the third quartiles. - **5-1** ("1st Quintile"): The lowest of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population. - **5-2** ("2nd Quintile"): The second of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population. - **5-3** ("3rd Quintile"): The third of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population. - **5-4** ("4th Quintile"): The fourth of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population. - **skew** ("Skew"): Skewness is a measure of the asymmetry of the probability distribution of a real-valued random variable about its mean. The skewness value can be positive or negative, or even undefined. Source: [Wikipedia](https://en.wikipedia.org/wiki/Skewness). - **kurtosis** ("Kurtosis"): Kurtosis is a measure of the "tailedness" of the probability distribution of a real-valued random variable. Source: [Wikipedia](https://en.wikipedia.org/wiki/Kurtosis). - **regression** ("Regression"): Linear regression is an approach for modeling two-dimensional sample points with one independent variable and one dependent variable (conventionally, the x and y coordinates in a Cartesian coordinate system) and finds a linear function (a non-vertical straight line) that, as accurately as possible, predicts the dependent variable values as a function of the independent variables. Source: [Wikipedia](https://en.wikipedia.org/wiki/Simple_linear_regression) This Statistic code will return both a gradient and an intercept value. If successful, the operation returns an Observation resource for each code with the results of the statistical calculations as component value pairs where the component code = the statistical code. The Observation also contains the input parameters 'patient','code' and 'duration' parameters. If unsuccessful, an OperationOutcome(operationoutcome.html) with an error message will be returned. The client can request that all the observations on which the statistics are based be returned as well, using the include parameter. If an include parameter is specified, a limit may also be specified; the sources observations are subsetted at the server's discretion if count > limit. This functionality is included with the intent of supporting graphical presentation

func (*Stats) Validate

func (r *Stats) Validate() error

type Status

type Status struct {
}

This operation is used to get current status information about one or more topic-based Subscriptions, each described by a SubscriptionStatus resource.

func (*Status) Validate

func (r *Status) Validate() error

type StructureDefinition

type StructureDefinition struct {
	ResourceType           string                           `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                          `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                            `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                          `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                          `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                       `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage                `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    string                           `json:"url" bson:"url"`                                                             // Canonical identifier for this structure definition, represented as a URI (globally unique)
	Identifier             []Identifier                     `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the structure definition
	Version                *string                          `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the structure definition
	VersionAlgorithmString *string                          `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                          `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                           `json:"name" bson:"name"`                                                           // Name for this structure definition (computer friendly)
	Title                  *string                          `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this structure definition (human friendly)
	Status                 string                           `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                            `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                          `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                          `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                  `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                          `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the structure definition
	UseContext             []UsageContext                   `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept                `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the structure definition (if applicable)
	Purpose                *string                          `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this structure definition is defined
	Copyright              *string                          `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                          `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Keyword                []Coding                         `json:"keyword,omitempty" bson:"keyword,omitempty"`                                 // Assist with indexing and finding
	FhirVersion            *string                          `json:"fhirVersion,omitempty" bson:"fhir_version,omitempty"`                        // FHIR Version this StructureDefinition targets
	Mapping                []StructureDefinitionMapping     `json:"mapping,omitempty" bson:"mapping,omitempty"`                                 // External specification that the content is mapped to
	Kind                   string                           `json:"kind" bson:"kind"`                                                           // primitive-type | complex-type | resource | logical
	Abstract               bool                             `json:"abstract" bson:"abstract"`                                                   // Whether the structure is abstract
	Context                []StructureDefinitionContext     `json:"context,omitempty" bson:"context,omitempty"`                                 // If an extension, where it can be used in instances
	ContextInvariant       []string                         `json:"contextInvariant,omitempty" bson:"context_invariant,omitempty"`              // FHIRPath invariants - when the extension can be used
	Type                   string                           `json:"type" bson:"type"`                                                           // Type defined or constrained by this structure
	BaseDefinition         *string                          `json:"baseDefinition,omitempty" bson:"base_definition,omitempty"`                  // Definition that this type is constrained/specialized from
	Derivation             *string                          `json:"derivation,omitempty" bson:"derivation,omitempty"`                           // specialization | constraint - How relates to base definition
	Snapshot               *StructureDefinitionSnapshot     `json:"snapshot,omitempty" bson:"snapshot,omitempty"`                               // Snapshot view of the structure
	Differential           *StructureDefinitionDifferential `json:"differential,omitempty" bson:"differential,omitempty"`                       // Differential view of the structure
}

A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types.

func (*StructureDefinition) Validate

func (r *StructureDefinition) Validate() error

type StructureDefinitionContext

type StructureDefinitionContext struct {
	Id         *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Type       string  `json:"type" bson:"type"`                 // fhirpath | element | extension
	Expression string  `json:"expression" bson:"expression"`     // Where the extension can be used in instances
}

func (*StructureDefinitionContext) Validate

func (r *StructureDefinitionContext) Validate() error

type StructureDefinitionDifferential

type StructureDefinitionDifferential struct {
	Id      *string             `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Element []ElementDefinition `json:"element" bson:"element"`           // Definition of elements in the resource (if no StructureDefinition)
}

func (*StructureDefinitionDifferential) Validate

func (r *StructureDefinitionDifferential) Validate() error

type StructureDefinitionKind added in v0.0.3

type StructureDefinitionKind string

StructureDefinitionKind represents codes from http://hl7.org/fhir/ValueSet/structure-definition-kind

const (
	StructureDefinitionKindPrimitiveType StructureDefinitionKind = "primitive-type"
	StructureDefinitionKindComplexType   StructureDefinitionKind = "complex-type"
	StructureDefinitionKindResource      StructureDefinitionKind = "resource"
	StructureDefinitionKindLogical       StructureDefinitionKind = "logical"
)

type StructureDefinitionMapping

type StructureDefinitionMapping struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Identity string  `json:"identity" bson:"identity"`                   // Internal id when this mapping is used
	Uri      *string `json:"uri,omitempty" bson:"uri,omitempty"`         // Identifies what this mapping refers to
	Name     *string `json:"name,omitempty" bson:"name,omitempty"`       // Names what this mapping refers to
	Comment  *string `json:"comment,omitempty" bson:"comment,omitempty"` // Versions, Issues, Scope limitations etc
}

func (*StructureDefinitionMapping) Validate

func (r *StructureDefinitionMapping) Validate() error

type StructureDefinitionSnapshot

type StructureDefinitionSnapshot struct {
	Id      *string             `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Element []ElementDefinition `json:"element" bson:"element"`           // Definition of elements in the resource (if no StructureDefinition)
}

func (*StructureDefinitionSnapshot) Validate

func (r *StructureDefinitionSnapshot) Validate() error

type StructureMap

type StructureMap struct {
	ResourceType           string                  `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                 `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                 `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    string                  `json:"url" bson:"url"`                                                             // Canonical identifier for this structure map, represented as a URI (globally unique)
	Identifier             []Identifier            `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the structure map
	Version                *string                 `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the structure map
	VersionAlgorithmString *string                 `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                 `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   string                  `json:"name" bson:"name"`                                                           // Name for this structure map (computer friendly)
	Title                  *string                 `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this structure map (human friendly)
	Status                 string                  `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                   `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string                 `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string                 `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail         `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                 `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the structure map
	UseContext             []UsageContext          `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept       `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the structure map (if applicable)
	Purpose                *string                 `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this structure map is defined
	Copyright              *string                 `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                 `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Structure              []StructureMapStructure `json:"structure,omitempty" bson:"structure,omitempty"`                             // Structure Definition used by this map
	Import                 []string                `json:"import,omitempty" bson:"import,omitempty"`                                   // Other maps used by this map (canonical URLs)
	Const                  []StructureMapConst     `json:"const,omitempty" bson:"const,omitempty"`                                     // Definition of the constant value used in the map rules
	Group                  []StructureMapGroup     `json:"group" bson:"group"`                                                         // Named sections for reader convenience
}

A Map of relationships between 2 structures that can be used to transform data.

func (*StructureMap) Validate

func (r *StructureMap) Validate() error

type StructureMapConst

type StructureMapConst struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"`       // Unique id for inter-element referencing
	Name  *string `json:"name,omitempty" bson:"name,omitempty"`   // Constant name
	Value *string `json:"value,omitempty" bson:"value,omitempty"` // FHIRPath exression - value of the constant
}

func (*StructureMapConst) Validate

func (r *StructureMapConst) Validate() error

type StructureMapGroup

type StructureMapGroup struct {
	Id            *string                  `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          string                   `json:"name" bson:"name"`                                       // Human-readable label
	Extends       *string                  `json:"extends,omitempty" bson:"extends,omitempty"`             // Another group that this group adds rules to
	TypeMode      *string                  `json:"typeMode,omitempty" bson:"type_mode,omitempty"`          // types | type-and-types
	Documentation *string                  `json:"documentation,omitempty" bson:"documentation,omitempty"` // Additional description/explanation for group
	Input         []StructureMapGroupInput `json:"input" bson:"input"`                                     // Named instance provided when invoking the map
	Rule          []StructureMapGroupRule  `json:"rule,omitempty" bson:"rule,omitempty"`                   // Transform Rule from source to target
}

func (*StructureMapGroup) Validate

func (r *StructureMapGroup) Validate() error

type StructureMapGroupInput

type StructureMapGroupInput struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          string  `json:"name" bson:"name"`                                       // Name for this instance of data
	Type          *string `json:"type,omitempty" bson:"type,omitempty"`                   // Type for this instance of data
	Mode          string  `json:"mode" bson:"mode"`                                       // source | target
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Documentation for this instance of data
}

func (*StructureMapGroupInput) Validate

func (r *StructureMapGroupInput) Validate() error

type StructureMapGroupRule

type StructureMapGroupRule struct {
	Id            *string                          `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          *string                          `json:"name,omitempty" bson:"name,omitempty"`                   // Name of the rule for internal references
	Source        []StructureMapGroupRuleSource    `json:"source" bson:"source"`                                   // Source inputs to the mapping
	Target        []StructureMapGroupRuleTarget    `json:"target,omitempty" bson:"target,omitempty"`               // Content to create because of this mapping rule
	Rule          []StructureMapGroupRule          `json:"rule,omitempty" bson:"rule,omitempty"`                   // Rules contained in this rule
	Dependent     []StructureMapGroupRuleDependent `json:"dependent,omitempty" bson:"dependent,omitempty"`         // Which other rules to apply in the context of this rule
	Documentation *string                          `json:"documentation,omitempty" bson:"documentation,omitempty"` // Documentation for this instance of data
}

func (*StructureMapGroupRule) Validate

func (r *StructureMapGroupRule) Validate() error

type StructureMapGroupRuleDependent

type StructureMapGroupRuleDependent struct {
	Id        *string                                `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Name      string                                 `json:"name" bson:"name"`                 // Name of a rule or group to apply
	Parameter []StructureMapGroupRuleTargetParameter `json:"parameter" bson:"parameter"`       // Parameter to pass to the rule or group
}

func (*StructureMapGroupRuleDependent) Validate

func (r *StructureMapGroupRuleDependent) Validate() error

type StructureMapGroupRuleSource

type StructureMapGroupRuleSource struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Context      string  `json:"context" bson:"context"`                                // Type or variable this rule applies to
	Min          *int    `json:"min,omitempty" bson:"min,omitempty"`                    // Specified minimum cardinality
	Max          *string `json:"max,omitempty" bson:"max,omitempty"`                    // Specified maximum cardinality (number or *)
	Type         *string `json:"type,omitempty" bson:"type,omitempty"`                  // Rule only applies if source has this type
	DefaultValue *string `json:"defaultValue,omitempty" bson:"default_value,omitempty"` // Default value if no value exists
	Element      *string `json:"element,omitempty" bson:"element,omitempty"`            // Optional field for this source
	ListMode     *string `json:"listMode,omitempty" bson:"list_mode,omitempty"`         // first | not_first | last | not_last | only_one
	Variable     *string `json:"variable,omitempty" bson:"variable,omitempty"`          // Named context for field, if a field is specified
	Condition    *string `json:"condition,omitempty" bson:"condition,omitempty"`        // FHIRPath expression  - must be true or the rule does not apply
	Check        *string `json:"check,omitempty" bson:"check,omitempty"`                // FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
	LogMessage   *string `json:"logMessage,omitempty" bson:"log_message,omitempty"`     // Message to put in log if source exists (FHIRPath)
}

func (*StructureMapGroupRuleSource) Validate

func (r *StructureMapGroupRuleSource) Validate() error

type StructureMapGroupRuleTarget

type StructureMapGroupRuleTarget struct {
	Id         *string                                `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Context    *string                                `json:"context,omitempty" bson:"context,omitempty"`         // Variable this rule applies to
	Element    *string                                `json:"element,omitempty" bson:"element,omitempty"`         // Field to create in the context
	Variable   *string                                `json:"variable,omitempty" bson:"variable,omitempty"`       // Named context for field, if desired, and a field is specified
	ListMode   []string                               `json:"listMode,omitempty" bson:"list_mode,omitempty"`      // first | share | last | single
	ListRuleId *string                                `json:"listRuleId,omitempty" bson:"list_rule_id,omitempty"` // Internal rule reference for shared list items
	Transform  *string                                `json:"transform,omitempty" bson:"transform,omitempty"`     // create | copy +
	Parameter  []StructureMapGroupRuleTargetParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`     // Parameters to the transform
}

func (*StructureMapGroupRuleTarget) Validate

func (r *StructureMapGroupRuleTarget) Validate() error

type StructureMapGroupRuleTargetParameter

type StructureMapGroupRuleTargetParameter struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	ValueId       *string  `json:"valueId" bson:"value_id"`              // Parameter value - variable or literal
	ValueString   *string  `json:"valueString" bson:"value_string"`      // Parameter value - variable or literal
	ValueBoolean  *bool    `json:"valueBoolean" bson:"value_boolean"`    // Parameter value - variable or literal
	ValueInteger  *int     `json:"valueInteger" bson:"value_integer"`    // Parameter value - variable or literal
	ValueDecimal  *float64 `json:"valueDecimal" bson:"value_decimal"`    // Parameter value - variable or literal
	ValueDate     *string  `json:"valueDate" bson:"value_date"`          // Parameter value - variable or literal
	ValueTime     *string  `json:"valueTime" bson:"value_time"`          // Parameter value - variable or literal
	ValueDateTime *string  `json:"valueDateTime" bson:"value_date_time"` // Parameter value - variable or literal
}

func (*StructureMapGroupRuleTargetParameter) Validate

type StructureMapGroupTypeMode added in v0.0.3

type StructureMapGroupTypeMode string

StructureMapGroupTypeMode represents codes from http://hl7.org/fhir/ValueSet/map-group-type-mode

const (
	StructureMapGroupTypeModeTypes        StructureMapGroupTypeMode = "types"
	StructureMapGroupTypeModeTypeAndTypes StructureMapGroupTypeMode = "type-and-types"
)

type StructureMapInputMode added in v0.0.3

type StructureMapInputMode string

StructureMapInputMode represents codes from http://hl7.org/fhir/ValueSet/map-input-mode

const (
	StructureMapInputModeSource StructureMapInputMode = "source"
	StructureMapInputModeTarget StructureMapInputMode = "target"
)

type StructureMapModelMode added in v0.0.3

type StructureMapModelMode string

StructureMapModelMode represents codes from http://hl7.org/fhir/ValueSet/map-model-mode

const (
	StructureMapModelModeSource   StructureMapModelMode = "source"
	StructureMapModelModeQueried  StructureMapModelMode = "queried"
	StructureMapModelModeTarget   StructureMapModelMode = "target"
	StructureMapModelModeProduced StructureMapModelMode = "produced"
)

type StructureMapSourceListMode added in v0.0.3

type StructureMapSourceListMode string

StructureMapSourceListMode represents codes from http://hl7.org/fhir/ValueSet/map-source-list-mode

const (
	StructureMapSourceListModeFirst    StructureMapSourceListMode = "first"
	StructureMapSourceListModeNotFirst StructureMapSourceListMode = "not_first"
	StructureMapSourceListModeLast     StructureMapSourceListMode = "last"
	StructureMapSourceListModeNotLast  StructureMapSourceListMode = "not_last"
	StructureMapSourceListModeOnlyOne  StructureMapSourceListMode = "only_one"
)

type StructureMapStructure

type StructureMapStructure struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Url           string  `json:"url" bson:"url"`                                         // Canonical reference to structure definition
	Mode          string  `json:"mode" bson:"mode"`                                       // source | queried | target | produced
	Alias         *string `json:"alias,omitempty" bson:"alias,omitempty"`                 // Name for type in this map
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Documentation on use of structure
}

func (*StructureMapStructure) Validate

func (r *StructureMapStructure) Validate() error

type StructureMapTargetListMode added in v0.0.3

type StructureMapTargetListMode string

StructureMapTargetListMode represents codes from http://hl7.org/fhir/ValueSet/map-target-list-mode

const (
	StructureMapTargetListModeFirst  StructureMapTargetListMode = "first"
	StructureMapTargetListModeShare  StructureMapTargetListMode = "share"
	StructureMapTargetListModeLast   StructureMapTargetListMode = "last"
	StructureMapTargetListModeSingle StructureMapTargetListMode = "single"
)

type StructureMapTransform added in v0.0.3

type StructureMapTransform string

StructureMapTransform represents codes from http://hl7.org/fhir/ValueSet/map-transform

const (
	StructureMapTransformCreate    StructureMapTransform = "create"
	StructureMapTransformCopy      StructureMapTransform = "copy"
	StructureMapTransformTruncate  StructureMapTransform = "truncate"
	StructureMapTransformEscape    StructureMapTransform = "escape"
	StructureMapTransformCast      StructureMapTransform = "cast"
	StructureMapTransformAppend    StructureMapTransform = "append"
	StructureMapTransformTranslate StructureMapTransform = "translate"
	StructureMapTransformReference StructureMapTransform = "reference"
	StructureMapTransformDateOp    StructureMapTransform = "dateOp"
	StructureMapTransformUuid      StructureMapTransform = "uuid"
	StructureMapTransformPointer   StructureMapTransform = "pointer"
	StructureMapTransformEvaluate  StructureMapTransform = "evaluate"
	StructureMapTransformCc        StructureMapTransform = "cc"
	StructureMapTransformC         StructureMapTransform = "c"
	StructureMapTransformQty       StructureMapTransform = "qty"
	StructureMapTransformId        StructureMapTransform = "id"
	StructureMapTransformCp        StructureMapTransform = "cp"
)

type Submit

type Submit struct {
}

This operation is used to submit an EligibilityRequest for assessment either as a single EligibilityRequest resource instance or as a Bundle containing the EligibilityRequest and other referenced resources, or Bundle containing a batch of EligibilityRequest resources, either as single EligibilityRequests resources or Bundle resources, for processing. The only input parameter is the single EligibilityRequest or Bundle resource and the only output is a single EligibilityResponse, Bundle of EligibilityResponses or an OperationOutcome resource.

func (*Submit) Validate

func (r *Submit) Validate() error

type SubmitData

type SubmitData struct {
}

The submit-data operation is used to submit data-of-interest for one or more measures for one or more subjects. Each submitted Bundle **SHOULD** contain resources for a single subject and **SHOULD** contain all of the MeasureReports and data of interest related to that subject. There is no expectation that the submitted data represents all the data-of-interest, only that all the data submitted is relevant to the calculation of the measure for a particular subject or population. The dataUpdateType element of the MeasureReport resource is used to indicate whether the data being submitted is a snapshot or incremental update. Additional guidance about data exchange for quality reporting can be found in the Data Exchange for Quality Measures implementation guide. Note that the use of the [X-Provenance header data](https://hl7.org/fhir/6.0.0-ballot3/provenance.html#header) with data that establishes provenance being submitted/collected **SHOULD** be supported. This provides the capability for associating the provider with the data submitted through the $submit-data transaction. If the X-Provenance header is used it should be consistent with the reporter element in the DEQM Data Exchange MeasureReport Profile. This operation is purposefully not allowed on a Measure instance because the MeasureReport included in the Bundle specifies the measure.\n\nNOTE: This operation is being deprecated in favor of just posting the bundles to the root of the server, either as collection or transaction bundles.

func (*SubmitData) Validate

func (r *SubmitData) Validate() error

type SubmitDataUpdateType added in v0.0.3

type SubmitDataUpdateType string

SubmitDataUpdateType represents codes from http://hl7.org/fhir/ValueSet/submit-data-update-type

const (
	SubmitDataUpdateTypeIncremental SubmitDataUpdateType = "incremental"
	SubmitDataUpdateTypeSnapshot    SubmitDataUpdateType = "snapshot"
)

type Subscription

type Subscription struct {
	ResourceType    string                  `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id              *string                 `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta            *Meta                   `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules   *string                 `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language        *string                 `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	Text            *Narrative              `json:"text,omitempty" bson:"text,omitempty"`                        // Text summary of the resource, for human interpretation
	Contained       []json.RawMessage       `json:"contained,omitempty" bson:"contained,omitempty"`              // Contained, inline Resources
	Identifier      []Identifier            `json:"identifier,omitempty" bson:"identifier,omitempty"`            // Additional identifiers (business identifier)
	Name            *string                 `json:"name,omitempty" bson:"name,omitempty"`                        // Human readable name for this subscription
	Status          string                  `json:"status" bson:"status"`                                        // requested | active | error | off | entered-in-error
	Topic           string                  `json:"topic" bson:"topic"`                                          // Reference to the subscription topic being subscribed to
	Contact         []ContactPoint          `json:"contact,omitempty" bson:"contact,omitempty"`                  // Contact details for source (e.g. troubleshooting)
	End             *string                 `json:"end,omitempty" bson:"end,omitempty"`                          // When to automatically delete the subscription
	ManagingEntity  *Reference              `json:"managingEntity,omitempty" bson:"managing_entity,omitempty"`   // Entity responsible for Subscription changes
	Reason          *string                 `json:"reason,omitempty" bson:"reason,omitempty"`                    // Description of why this subscription was created
	FilterBy        []SubscriptionFilterBy  `json:"filterBy,omitempty" bson:"filter_by,omitempty"`               // Criteria for narrowing the subscription topic stream
	ChannelType     *Coding                 `json:"channelType" bson:"channel_type"`                             // Channel type for notifications
	Endpoint        *string                 `json:"endpoint,omitempty" bson:"endpoint,omitempty"`                // URL where the channel sends notifications
	Parameter       []SubscriptionParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`              // Channel type dependent information
	HeartbeatPeriod *int                    `json:"heartbeatPeriod,omitempty" bson:"heartbeat_period,omitempty"` // Interval in seconds to send 'heartbeat' notification
	Timeout         *int                    `json:"timeout,omitempty" bson:"timeout,omitempty"`                  // Timeout in seconds to attempt notification delivery
	ContentType     *string                 `json:"contentType,omitempty" bson:"content_type,omitempty"`         // MIME type to send, or omit for no payload
	Content         *string                 `json:"content,omitempty" bson:"content,omitempty"`                  // empty | id-only | full-resource
	MaxCount        *int                    `json:"maxCount,omitempty" bson:"max_count,omitempty"`               // Maximum number of events that can be combined in a single notification
}

The subscription resource describes a particular client's request to be notified about a SubscriptionTopic.

func (*Subscription) Validate

func (r *Subscription) Validate() error

type SubscriptionFilterBy

type SubscriptionFilterBy struct {
	Id              *string           `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Resource        *string           `json:"resource,omitempty" bson:"resource,omitempty"`     // Allowed Resource (reference to definition) for this Subscription filter
	FilterParameter string            `json:"filterParameter" bson:"filter_parameter"`          // Filter label defined in SubscriptionTopic
	Comparator      *string           `json:"comparator,omitempty" bson:"comparator,omitempty"` // eq | ne | gt | lt | ge | le | sa | eb | ap
	Modifier        *string           `json:"modifier,omitempty" bson:"modifier,omitempty"`     // missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
	Value           string            `json:"value" bson:"value"`                               // Literal value or resource path
	Event           []CodeableConcept `json:"event,omitempty" bson:"event,omitempty"`           // Event to filter by
}

func (*SubscriptionFilterBy) Validate

func (r *SubscriptionFilterBy) Validate() error

type SubscriptionNotificationType added in v0.0.3

type SubscriptionNotificationType string

SubscriptionNotificationType represents codes from http://hl7.org/fhir/ValueSet/subscription-notification-type

const (
	SubscriptionNotificationTypeHandshake         SubscriptionNotificationType = "handshake"
	SubscriptionNotificationTypeHeartbeat         SubscriptionNotificationType = "heartbeat"
	SubscriptionNotificationTypeEventNotification SubscriptionNotificationType = "event-notification"
	SubscriptionNotificationTypeQueryStatus       SubscriptionNotificationType = "query-status"
	SubscriptionNotificationTypeQueryEvent        SubscriptionNotificationType = "query-event"
)

type SubscriptionParameter

type SubscriptionParameter struct {
	Id    *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Name  string  `json:"name" bson:"name"`                 // Name (key) of the parameter
	Value string  `json:"value" bson:"value"`               // Value of the parameter to use or pass through
}

func (*SubscriptionParameter) Validate

func (r *SubscriptionParameter) Validate() error

type SubscriptionPayloadContent added in v0.0.3

type SubscriptionPayloadContent string

SubscriptionPayloadContent represents codes from http://hl7.org/fhir/ValueSet/subscription-payload-content

const (
	SubscriptionPayloadContentEmpty        SubscriptionPayloadContent = "empty"
	SubscriptionPayloadContentIdOnly       SubscriptionPayloadContent = "id-only"
	SubscriptionPayloadContentFullResource SubscriptionPayloadContent = "full-resource"
)

type SubscriptionStatus

type SubscriptionStatus struct {
	ResourceType                 string                                `json:"resourceType" bson:"resource_type"`                                                       // Type of resource
	Id                           *string                               `json:"id,omitempty" bson:"id,omitempty"`                                                        // Logical id of this artifact
	Meta                         *Meta                                 `json:"meta,omitempty" bson:"meta,omitempty"`                                                    // Metadata about the resource
	ImplicitRules                *string                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                                 // A set of rules under which this content was created
	Language                     *string                               `json:"language,omitempty" bson:"language,omitempty"`                                            // Language of the resource content
	Text                         *Narrative                            `json:"text,omitempty" bson:"text,omitempty"`                                                    // Text summary of the resource, for human interpretation
	Contained                    []json.RawMessage                     `json:"contained,omitempty" bson:"contained,omitempty"`                                          // Contained, inline Resources
	Status                       *string                               `json:"status,omitempty" bson:"status,omitempty"`                                                // requested | active | error | off | entered-in-error
	Type                         string                                `json:"type" bson:"type"`                                                                        // handshake | heartbeat | event-notification | query-status | query-event
	EventsSinceSubscriptionStart *int64                                `json:"eventsSinceSubscriptionStart,omitempty" bson:"events_since_subscription_start,omitempty"` // Events since the Subscription was created
	NotificationEvent            []SubscriptionStatusNotificationEvent `json:"notificationEvent,omitempty" bson:"notification_event,omitempty"`                         // Detailed information about any events relevant to this notification
	Subscription                 *Reference                            `json:"subscription" bson:"subscription"`                                                        // Reference to the Subscription responsible for this notification
	Topic                        *string                               `json:"topic,omitempty" bson:"topic,omitempty"`                                                  // Reference to the SubscriptionTopic this notification relates to
	Error                        []CodeableConcept                     `json:"error,omitempty" bson:"error,omitempty"`                                                  // List of errors on the subscription
}

The SubscriptionStatus resource describes the state of a Subscription during notifications. It is not persisted.

func (*SubscriptionStatus) Validate

func (r *SubscriptionStatus) Validate() error

type SubscriptionStatusCodes added in v0.0.3

type SubscriptionStatusCodes string

SubscriptionStatusCodes represents codes from http://hl7.org/fhir/ValueSet/subscription-status

const (
	SubscriptionStatusCodesRequested      SubscriptionStatusCodes = "requested"
	SubscriptionStatusCodesActive         SubscriptionStatusCodes = "active"
	SubscriptionStatusCodesError          SubscriptionStatusCodes = "error"
	SubscriptionStatusCodesOff            SubscriptionStatusCodes = "off"
	SubscriptionStatusCodesEnteredInError SubscriptionStatusCodes = "entered-in-error"
)

type SubscriptionStatusNotificationEvent

type SubscriptionStatusNotificationEvent struct {
	Id                *string                                                `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	EventNumber       int64                                                  `json:"eventNumber" bson:"event_number"`                                 // Sequencing index of this event
	TriggerEvent      []CodeableConcept                                      `json:"triggerEvent,omitempty" bson:"trigger_event,omitempty"`           // Event that triggered this notification
	Timestamp         *string                                                `json:"timestamp,omitempty" bson:"timestamp,omitempty"`                  // The instant this event occurred
	Focus             *Reference                                             `json:"focus,omitempty" bson:"focus,omitempty"`                          // Reference to the primary resource or information of this event
	AdditionalContext []Reference                                            `json:"additionalContext,omitempty" bson:"additional_context,omitempty"` // References related to the focus resource and/or context of this event
	RelatedQuery      []SubscriptionStatusNotificationEventRelatedQuery      `json:"relatedQuery,omitempty" bson:"related_query,omitempty"`           // Query describing data relevant to this notification
	AuthorizationHint []SubscriptionStatusNotificationEventAuthorizationHint `json:"authorizationHint,omitempty" bson:"authorization_hint,omitempty"` // Authorization information relevant to a notification
}

func (*SubscriptionStatusNotificationEvent) Validate

type SubscriptionStatusNotificationEventAuthorizationHint

type SubscriptionStatusNotificationEventAuthorizationHint struct {
	Id                *string `json:"id,omitempty" bson:"id,omitempty"`            // Unique id for inter-element referencing
	AuthorizationType *Coding `json:"authorizationType" bson:"authorization_type"` // Classification of the authorization hint, e.g., 'oAuthChallengeToken'
	Value             *string `json:"value,omitempty" bson:"value,omitempty"`      // Authorization value, as defined by the 'authorizationType'
}

func (*SubscriptionStatusNotificationEventAuthorizationHint) Validate

type SubscriptionStatusNotificationEventRelatedQuery

type SubscriptionStatusNotificationEventRelatedQuery struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`                // Unique id for inter-element referencing
	QueryType *Coding `json:"queryType,omitempty" bson:"query_type,omitempty"` // Coded information describing the type of data this query provides
	Query     string  `json:"query" bson:"query"`                              // Query to perform
}

func (*SubscriptionStatusNotificationEventRelatedQuery) Validate

type SubscriptionTopic

type SubscriptionTopic struct {
	ResourceType           string                     `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                    `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                      `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                    `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                    `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                 `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage          `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    string                     `json:"url" bson:"url"`                                                             // Canonical identifier for this subscription topic, represented as an absolute URI (globally unique)
	Identifier             []Identifier               `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Business identifier for subscription topic
	Version                *string                    `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the subscription topic
	VersionAlgorithmString *string                    `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                    `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                    `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this subscription topic (computer friendly)
	Title                  *string                    `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this subscription topic (human friendly)
	DerivedFrom            []string                   `json:"derivedFrom,omitempty" bson:"derived_from,omitempty"`                        // Based on FHIR protocol or definition
	Status                 string                     `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                      `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // If For testing only - never for real usage
	Date                   *string                    `json:"date,omitempty" bson:"date,omitempty"`                                       // Date status first applied
	Publisher              *string                    `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // The name of the individual or organization that published the SubscriptionTopic
	Contact                []ContactDetail            `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                    `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the SubscriptionTopic
	UseContext             []UsageContext             `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // Content intends to support these contexts
	Jurisdiction           []CodeableConcept          `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Intended jurisdiction of the SubscriptionTopic (if applicable)
	Purpose                *string                    `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this SubscriptionTopic is defined
	Copyright              *string                    `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                    `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string                    `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When SubscriptionTopic is/was approved by publisher
	LastReviewDate         *string                    `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // Date the Subscription Topic was last reviewed by the publisher
	EffectivePeriod        *Period                    `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // The effective date range for the SubscriptionTopic
	Trigger                []SubscriptionTopicTrigger `json:"trigger,omitempty" bson:"trigger,omitempty"`                                 // Definition of a trigger for the subscription topic
}

Describes a stream of resource state changes identified by trigger criteria and annotated with labels useful to filter projections from this topic.

func (*SubscriptionTopic) Validate

func (r *SubscriptionTopic) Validate() error

type SubscriptionTopicTrigger

type SubscriptionTopicTrigger struct {
	Id                   *string                                     `json:"id,omitempty" bson:"id,omitempty"`                                      // Unique id for inter-element referencing
	Description          *string                                     `json:"description,omitempty" bson:"description,omitempty"`                    // Text representation of the resource trigger
	Resource             string                                      `json:"resource" bson:"resource"`                                              // Key Data Type, Resource (reference to definition), or relevant definition for this trigger
	SupportedInteraction []string                                    `json:"supportedInteraction,omitempty" bson:"supported_interaction,omitempty"` // create | update | delete
	QueryCriteria        *SubscriptionTopicTriggerQueryCriteria      `json:"queryCriteria,omitempty" bson:"query_criteria,omitempty"`               // Query based trigger rule
	FhirPathCriteria     *string                                     `json:"fhirPathCriteria,omitempty" bson:"fhir_path_criteria,omitempty"`        // FHIRPath based trigger rule
	Event                *CodeableConcept                            `json:"event,omitempty" bson:"event,omitempty"`                                // Event which can trigger a notification from the SubscriptionTopic
	CanFilterBy          []SubscriptionTopicTriggerCanFilterBy       `json:"canFilterBy,omitempty" bson:"can_filter_by,omitempty"`                  // Properties by which a Subscription can filter notifications based on this trigger
	NotificationShape    []SubscriptionTopicTriggerNotificationShape `json:"notificationShape,omitempty" bson:"notification_shape,omitempty"`       // Properties for describing the shape of notifications generated by this trigger
}

func (*SubscriptionTopicTrigger) Validate

func (r *SubscriptionTopicTrigger) Validate() error

type SubscriptionTopicTriggerCanFilterBy

type SubscriptionTopicTriggerCanFilterBy struct {
	Id               *string  `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Description      *string  `json:"description,omitempty" bson:"description,omitempty"`            // Description of this filter parameter
	Resource         *string  `json:"resource,omitempty" bson:"resource,omitempty"`                  // URL of the triggering Resource that this filter applies to
	FilterParameter  string   `json:"filterParameter" bson:"filter_parameter"`                       // Human-readable and computation-friendly name for a filter parameter usable by subscriptions on this topic, via Subscription.filterBy.filterParameter
	FilterDefinition *string  `json:"filterDefinition,omitempty" bson:"filter_definition,omitempty"` // Canonical URL for a filterParameter definition
	Comparator       []string `json:"comparator,omitempty" bson:"comparator,omitempty"`              // eq | ne | gt | lt | ge | le | sa | eb | ap
	Modifier         []string `json:"modifier,omitempty" bson:"modifier,omitempty"`                  // missing | exact | contains | not | text | in | not-in | below | above | type | identifier | of-type | code-text | text-advanced | iterate
}

func (*SubscriptionTopicTriggerCanFilterBy) Validate

type SubscriptionTopicTriggerNotificationShape

type SubscriptionTopicTriggerNotificationShape struct {
	Id           *string                                                 `json:"id,omitempty" bson:"id,omitempty"`                      // Unique id for inter-element referencing
	Resource     string                                                  `json:"resource" bson:"resource"`                              // URL of the key definition that is the focus in a notification shape
	Include      []string                                                `json:"include,omitempty" bson:"include,omitempty"`            // Include directives, rooted in the resource for this shape
	RevInclude   []string                                                `json:"revInclude,omitempty" bson:"rev_include,omitempty"`     // Reverse include directives, rooted in the resource for this shape
	RelatedQuery []SubscriptionTopicTriggerNotificationShapeRelatedQuery `json:"relatedQuery,omitempty" bson:"related_query,omitempty"` // Query describing data relevant to this notification
}

func (*SubscriptionTopicTriggerNotificationShape) Validate

type SubscriptionTopicTriggerNotificationShapeRelatedQuery

type SubscriptionTopicTriggerNotificationShapeRelatedQuery struct {
	Id        *string `json:"id,omitempty" bson:"id,omitempty"`                // Unique id for inter-element referencing
	QueryType *Coding `json:"queryType,omitempty" bson:"query_type,omitempty"` // Coded information describing the type of data this query provides
	Query     string  `json:"query" bson:"query"`                              // Query to perform
}

func (*SubscriptionTopicTriggerNotificationShapeRelatedQuery) Validate

type SubscriptionTopicTriggerQueryCriteria

type SubscriptionTopicTriggerQueryCriteria struct {
	Id              *string `json:"id,omitempty" bson:"id,omitempty"`                             // Unique id for inter-element referencing
	Previous        *string `json:"previous,omitempty" bson:"previous,omitempty"`                 // Rule applied to previous resource state
	ResultForCreate *string `json:"resultForCreate,omitempty" bson:"result_for_create,omitempty"` // test-passes | test-fails
	Current         *string `json:"current,omitempty" bson:"current,omitempty"`                   // Rule applied to current resource state
	ResultForDelete *string `json:"resultForDelete,omitempty" bson:"result_for_delete,omitempty"` // test-passes | test-fails
	RequireBoth     *bool   `json:"requireBoth,omitempty" bson:"require_both,omitempty"`          // Both must be true flag
}

func (*SubscriptionTopicTriggerQueryCriteria) Validate

type Substance

type Substance struct {
	ResourceType  string             `json:"resourceType" bson:"resource_type"`                       // Type of resource
	Id            *string            `json:"id,omitempty" bson:"id,omitempty"`                        // Logical id of this artifact
	Meta          *Meta              `json:"meta,omitempty" bson:"meta,omitempty"`                    // Metadata about the resource
	ImplicitRules *string            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"` // A set of rules under which this content was created
	Language      *string            `json:"language,omitempty" bson:"language,omitempty"`            // Language of the resource content
	Text          *Narrative         `json:"text,omitempty" bson:"text,omitempty"`                    // Text summary of the resource, for human interpretation
	Contained     []json.RawMessage  `json:"contained,omitempty" bson:"contained,omitempty"`          // Contained, inline Resources
	Identifier    []Identifier       `json:"identifier,omitempty" bson:"identifier,omitempty"`        // Unique identifier
	Status        *string            `json:"status,omitempty" bson:"status,omitempty"`                // active | inactive | entered-in-error
	Category      []CodeableConcept  `json:"category,omitempty" bson:"category,omitempty"`            // What class/type of substance this is
	Code          *CodeableReference `json:"code" bson:"code"`                                        // What substance this is
	Description   *string            `json:"description,omitempty" bson:"description,omitempty"`      // Textual description of the substance, comments
	Expiry        *string            `json:"expiry,omitempty" bson:"expiry,omitempty"`                // When no longer valid to use
	Quantity      *Quantity          `json:"quantity,omitempty" bson:"quantity,omitempty"`            // Amount of substance in the package
}

A homogeneous material with a definite composition.

func (*Substance) Validate

func (r *Substance) Validate() error

type SubstanceDefinition

type SubstanceDefinition struct {
	ResourceType     string                                `json:"resourceType" bson:"resource_type"`                            // Type of resource
	Id               *string                               `json:"id,omitempty" bson:"id,omitempty"`                             // Logical id of this artifact
	Meta             *Meta                                 `json:"meta,omitempty" bson:"meta,omitempty"`                         // Metadata about the resource
	ImplicitRules    *string                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`      // A set of rules under which this content was created
	Language         *string                               `json:"language,omitempty" bson:"language,omitempty"`                 // Language of the resource content
	Text             *Narrative                            `json:"text,omitempty" bson:"text,omitempty"`                         // Text summary of the resource, for human interpretation
	Contained        []json.RawMessage                     `json:"contained,omitempty" bson:"contained,omitempty"`               // Contained, inline Resources
	Identifier       []Identifier                          `json:"identifier,omitempty" bson:"identifier,omitempty"`             // Identifier by which this substance is known
	Version          *string                               `json:"version,omitempty" bson:"version,omitempty"`                   // A business level edition or revision identifier
	Status           *CodeableConcept                      `json:"status,omitempty" bson:"status,omitempty"`                     // Status of substance within the catalogue e.g. active, retired
	Classification   []CodeableConcept                     `json:"classification,omitempty" bson:"classification,omitempty"`     // A categorization, high level e.g. polymer or nucleic acid, or food, chemical, biological, or lower e.g. polymer linear or branch chain, or type of impurity
	Domain           *CodeableConcept                      `json:"domain,omitempty" bson:"domain,omitempty"`                     // The applicable usage of the substance, as an example human or veterinary
	Grade            []CodeableConcept                     `json:"grade,omitempty" bson:"grade,omitempty"`                       // The quality standard, established benchmark, to which substance complies (e.g. USP/NF, BP)
	Description      *string                               `json:"description,omitempty" bson:"description,omitempty"`           // Textual description of the substance
	Note             []Annotation                          `json:"note,omitempty" bson:"note,omitempty"`                         // Textual comment about the substance's catalogue or registry record
	Manufacturer     []Reference                           `json:"manufacturer,omitempty" bson:"manufacturer,omitempty"`         // The entity that creates, makes, produces or fabricates the substance
	Supplier         []Reference                           `json:"supplier,omitempty" bson:"supplier,omitempty"`                 // An entity that is the source for the substance. It may be different from the manufacturer
	Moiety           []SubstanceDefinitionMoiety           `json:"moiety,omitempty" bson:"moiety,omitempty"`                     // Moiety, for structural modifications
	Characterization []SubstanceDefinitionCharacterization `json:"characterization,omitempty" bson:"characterization,omitempty"` // General specifications for this substance
	Property         []SubstanceDefinitionProperty         `json:"property,omitempty" bson:"property,omitempty"`                 // General specifications for this substance
	MolecularWeight  []SubstanceDefinitionMolecularWeight  `json:"molecularWeight,omitempty" bson:"molecular_weight,omitempty"`  // The average mass of a molecule of a compound
	Structure        *SubstanceDefinitionStructure         `json:"structure,omitempty" bson:"structure,omitempty"`               // Structural information
	Code             []SubstanceDefinitionCode             `json:"code,omitempty" bson:"code,omitempty"`                         // Codes associated with the substance
	Name             []SubstanceDefinitionName             `json:"name,omitempty" bson:"name,omitempty"`                         // Names applicable to this substance
	Relationship     []SubstanceDefinitionRelationship     `json:"relationship,omitempty" bson:"relationship,omitempty"`         // A link between this substance and another
	SourceMaterial   *SubstanceDefinitionSourceMaterial    `json:"sourceMaterial,omitempty" bson:"source_material,omitempty"`    // Material or taxonomic/anatomical source
}

The detailed description of a substance, typically at a level beyond what is used for prescribing.

func (*SubstanceDefinition) Validate

func (r *SubstanceDefinition) Validate() error

type SubstanceDefinitionCharacterization

type SubstanceDefinitionCharacterization struct {
	Id          *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Technique   *CodeableConcept `json:"technique,omitempty" bson:"technique,omitempty"`     // The method used to find the characterization e.g. HPLC
	Form        *CodeableConcept `json:"form,omitempty" bson:"form,omitempty"`               // Describes the nature of the chemical entity and explains, for instance, whether this is a base or a salt form
	Description *string          `json:"description,omitempty" bson:"description,omitempty"` // The description or justification in support of the interpretation of the data file
	File        []Attachment     `json:"file,omitempty" bson:"file,omitempty"`               // The data produced by the analytical instrument or a pictorial representation of that data. Examples: a JCAMP, JDX, or ADX file, or a chromatogram or spectrum analysis
}

func (*SubstanceDefinitionCharacterization) Validate

type SubstanceDefinitionCode

type SubstanceDefinitionCode struct {
	Id         *string          `json:"id,omitempty" bson:"id,omitempty"`                  // Unique id for inter-element referencing
	Code       *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`              // The specific code
	Status     *CodeableConcept `json:"status,omitempty" bson:"status,omitempty"`          // Status of the code assignment, for example 'provisional', 'approved'
	StatusDate *string          `json:"statusDate,omitempty" bson:"status_date,omitempty"` // The date at which the code status was changed
	Note       []Annotation     `json:"note,omitempty" bson:"note,omitempty"`              // Any comment can be provided in this field
	Source     []Reference      `json:"source,omitempty" bson:"source,omitempty"`          // Supporting literature
}

func (*SubstanceDefinitionCode) Validate

func (r *SubstanceDefinitionCode) Validate() error

type SubstanceDefinitionMoiety

type SubstanceDefinitionMoiety struct {
	Id               *string          `json:"id,omitempty" bson:"id,omitempty"`                              // Unique id for inter-element referencing
	Role             *CodeableConcept `json:"role,omitempty" bson:"role,omitempty"`                          // Role that the moiety is playing
	Identifier       *Identifier      `json:"identifier,omitempty" bson:"identifier,omitempty"`              // Identifier by which this moiety substance is known
	Name             *string          `json:"name,omitempty" bson:"name,omitempty"`                          // Textual name for this moiety substance
	Stereochemistry  *CodeableConcept `json:"stereochemistry,omitempty" bson:"stereochemistry,omitempty"`    // Stereochemistry type
	OpticalActivity  *CodeableConcept `json:"opticalActivity,omitempty" bson:"optical_activity,omitempty"`   // Optical activity type
	MolecularFormula *string          `json:"molecularFormula,omitempty" bson:"molecular_formula,omitempty"` // Molecular formula for this moiety (e.g. with the Hill system)
	AmountQuantity   *Quantity        `json:"amountQuantity,omitempty" bson:"amount_quantity,omitempty"`     // Quantitative value for this moiety
	AmountString     *string          `json:"amountString,omitempty" bson:"amount_string,omitempty"`         // Quantitative value for this moiety
	MeasurementType  *CodeableConcept `json:"measurementType,omitempty" bson:"measurement_type,omitempty"`   // The measurement type of the quantitative value
}

func (*SubstanceDefinitionMoiety) Validate

func (r *SubstanceDefinitionMoiety) Validate() error

type SubstanceDefinitionMolecularWeight

type SubstanceDefinitionMolecularWeight struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Method *CodeableConcept `json:"method,omitempty" bson:"method,omitempty"` // The method by which the weight was determined
	Type   *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`     // Type of molecular weight e.g. exact, average, weight average
	Amount *Quantity        `json:"amount" bson:"amount"`                     // Used to capture quantitative values for a variety of elements
}

func (*SubstanceDefinitionMolecularWeight) Validate

type SubstanceDefinitionName

type SubstanceDefinitionName struct {
	Id           *string                           `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Name         string                            `json:"name" bson:"name"`                                     // The actual name
	Type         *CodeableConcept                  `json:"type,omitempty" bson:"type,omitempty"`                 // Name type e.g. 'systematic',  'scientific, 'brand'
	Status       *CodeableConcept                  `json:"status,omitempty" bson:"status,omitempty"`             // The status of the name e.g. 'current', 'proposed'
	Preferred    *bool                             `json:"preferred,omitempty" bson:"preferred,omitempty"`       // If this is the preferred name for this substance
	Language     []CodeableConcept                 `json:"language,omitempty" bson:"language,omitempty"`         // Human language that the name is written in
	Domain       []CodeableConcept                 `json:"domain,omitempty" bson:"domain,omitempty"`             // The use context of this name e.g. as an active ingredient or as a food colour additive
	Jurisdiction []CodeableConcept                 `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"` // The jurisdiction where this name applies
	Synonym      []SubstanceDefinitionName         `json:"synonym,omitempty" bson:"synonym,omitempty"`           // A synonym of this particular name, by which the substance is also known
	Translation  []SubstanceDefinitionName         `json:"translation,omitempty" bson:"translation,omitempty"`   // A translation for this name into another human language
	Official     []SubstanceDefinitionNameOfficial `json:"official,omitempty" bson:"official,omitempty"`         // Details of the official nature of this name
	Source       []Reference                       `json:"source,omitempty" bson:"source,omitempty"`             // Supporting literature
}

func (*SubstanceDefinitionName) Validate

func (r *SubstanceDefinitionName) Validate() error

type SubstanceDefinitionNameOfficial

type SubstanceDefinitionNameOfficial struct {
	Id        *string          `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	Authority *CodeableConcept `json:"authority,omitempty" bson:"authority,omitempty"` // Which authority uses this official name
	Status    *CodeableConcept `json:"status,omitempty" bson:"status,omitempty"`       // The status of the official name, for example 'draft', 'active'
	Date      *string          `json:"date,omitempty" bson:"date,omitempty"`           // Date of official name change
}

func (*SubstanceDefinitionNameOfficial) Validate

func (r *SubstanceDefinitionNameOfficial) Validate() error

type SubstanceDefinitionProperty

type SubstanceDefinitionProperty struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                                       // Unique id for inter-element referencing
	Type                 *CodeableConcept `json:"type" bson:"type"`                                                       // A code expressing the type of property
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept,omitempty" bson:"value_codeable_concept,omitempty"` // A value for the property
	ValueQuantity        *Quantity        `json:"valueQuantity,omitempty" bson:"value_quantity,omitempty"`                // A value for the property
	ValueRange           *Range           `json:"valueRange,omitempty" bson:"value_range,omitempty"`                      // A value for the property
	ValueDate            *string          `json:"valueDate,omitempty" bson:"value_date,omitempty"`                        // A value for the property
	ValueBoolean         *bool            `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`                  // A value for the property
	ValueAttachment      *Attachment      `json:"valueAttachment,omitempty" bson:"value_attachment,omitempty"`            // A value for the property
}

func (*SubstanceDefinitionProperty) Validate

func (r *SubstanceDefinitionProperty) Validate() error

type SubstanceDefinitionRelationship

type SubstanceDefinitionRelationship struct {
	Id                                 *string          `json:"id,omitempty" bson:"id,omitempty"`                                                                    // Unique id for inter-element referencing
	SubstanceDefinitionReference       *Reference       `json:"substanceDefinitionReference,omitempty" bson:"substance_definition_reference,omitempty"`              // A pointer to another substance, as a resource or a representational code
	SubstanceDefinitionCodeableConcept *CodeableConcept `json:"substanceDefinitionCodeableConcept,omitempty" bson:"substance_definition_codeable_concept,omitempty"` // A pointer to another substance, as a resource or a representational code
	Type                               *CodeableConcept `json:"type" bson:"type"`                                                                                    // For example "salt to parent", "active moiety"
	IsDefining                         *bool            `json:"isDefining,omitempty" bson:"is_defining,omitempty"`                                                   // For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible relationships
	AmountQuantity                     *Quantity        `json:"amountQuantity,omitempty" bson:"amount_quantity,omitempty"`                                           // A numeric factor for the relationship, e.g. that a substance salt has some percentage of active substance in relation to some other
	AmountRatio                        *Ratio           `json:"amountRatio,omitempty" bson:"amount_ratio,omitempty"`                                                 // A numeric factor for the relationship, e.g. that a substance salt has some percentage of active substance in relation to some other
	AmountString                       *string          `json:"amountString,omitempty" bson:"amount_string,omitempty"`                                               // A numeric factor for the relationship, e.g. that a substance salt has some percentage of active substance in relation to some other
	RatioHighLimitAmount               *Ratio           `json:"ratioHighLimitAmount,omitempty" bson:"ratio_high_limit_amount,omitempty"`                             // For use when the numeric has an uncertain range
	Comparator                         *CodeableConcept `json:"comparator,omitempty" bson:"comparator,omitempty"`                                                    // An operator for the amount, for example "average", "approximately", "less than"
	Source                             []Reference      `json:"source,omitempty" bson:"source,omitempty"`                                                            // Supporting literature
}

func (*SubstanceDefinitionRelationship) Validate

func (r *SubstanceDefinitionRelationship) Validate() error

type SubstanceDefinitionSourceMaterial

type SubstanceDefinitionSourceMaterial struct {
	Id              *string           `json:"id,omitempty" bson:"id,omitempty"`                             // Unique id for inter-element referencing
	Type            *CodeableConcept  `json:"type,omitempty" bson:"type,omitempty"`                         // Classification of the origin of the raw material. e.g. cat hair is an Animal source type
	Genus           *CodeableConcept  `json:"genus,omitempty" bson:"genus,omitempty"`                       // The genus of an organism e.g. the Latin epithet of the plant/animal scientific name
	Species         *CodeableConcept  `json:"species,omitempty" bson:"species,omitempty"`                   // The species of an organism e.g. the Latin epithet of the species of the plant/animal
	Part            *CodeableConcept  `json:"part,omitempty" bson:"part,omitempty"`                         // An anatomical origin of the source material within an organism
	CountryOfOrigin []CodeableConcept `json:"countryOfOrigin,omitempty" bson:"country_of_origin,omitempty"` // The country or countries where the material is harvested
}

func (*SubstanceDefinitionSourceMaterial) Validate

type SubstanceDefinitionStructure

type SubstanceDefinitionStructure struct {
	Id                       *string                                      `json:"id,omitempty" bson:"id,omitempty"`                                                // Unique id for inter-element referencing
	Stereochemistry          *CodeableConcept                             `json:"stereochemistry,omitempty" bson:"stereochemistry,omitempty"`                      // Stereochemistry type
	OpticalActivity          *CodeableConcept                             `json:"opticalActivity,omitempty" bson:"optical_activity,omitempty"`                     // Optical activity type
	MolecularFormula         *string                                      `json:"molecularFormula,omitempty" bson:"molecular_formula,omitempty"`                   // An expression which states the number and type of atoms present in a molecule of a substance
	MolecularFormulaByMoiety *string                                      `json:"molecularFormulaByMoiety,omitempty" bson:"molecular_formula_by_moiety,omitempty"` // Specified per moiety according to the Hill system
	MolecularWeight          *SubstanceDefinitionMolecularWeight          `json:"molecularWeight,omitempty" bson:"molecular_weight,omitempty"`                     // The molecular weight or weight range
	Technique                []CodeableConcept                            `json:"technique,omitempty" bson:"technique,omitempty"`                                  // The method used to find the structure e.g. X-ray, NMR
	SourceDocument           []Reference                                  `json:"sourceDocument,omitempty" bson:"source_document,omitempty"`                       // Source of information for the structure
	Representation           []SubstanceDefinitionStructureRepresentation `json:"representation,omitempty" bson:"representation,omitempty"`                        // A depiction of the structure of the substance
}

func (*SubstanceDefinitionStructure) Validate

func (r *SubstanceDefinitionStructure) Validate() error

type SubstanceDefinitionStructureRepresentation

type SubstanceDefinitionStructureRepresentation struct {
	Id             *string          `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Type           *CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`                     // The kind of structural representation (e.g. full, partial)
	Representation *string          `json:"representation,omitempty" bson:"representation,omitempty"` // The structural representation as a text string in a standard format
	Format         *CodeableConcept `json:"format,omitempty" bson:"format,omitempty"`                 // The format of the representation e.g. InChI, SMILES, MOLFILE (note: not the physical file format)
	Document       *Reference       `json:"document,omitempty" bson:"document,omitempty"`             // An attachment with the structural representation e.g. a structure graphic or AnIML file
}

func (*SubstanceDefinitionStructureRepresentation) Validate

type Subsumes

type Subsumes struct {
}

Test the subsumption relationship between code/Coding A and code/Coding B given the semantics of subsumption in the underlying code system (see [hierarchyMeaning](codesystem-definitions.html#CodeSystem.hierarchyMeaning)). When invoking this operation, a client SHALL provide both A and B codes, either as code or Coding parameters. The system parameter is required unless the operation is invoked on an instance of a code system resource. Other parameters are optional

func (*Subsumes) Validate

func (r *Subsumes) Validate() error

type SupplementedMimeTypes added in v0.0.3

type SupplementedMimeTypes string

SupplementedMimeTypes represents codes from http://hl7.org/fhir/ValueSet/supplemented-mimetypes

const (
	SupplementedMimeTypesXml  SupplementedMimeTypes = "xml"
	SupplementedMimeTypesJson SupplementedMimeTypes = "json"
	SupplementedMimeTypesTtl  SupplementedMimeTypes = "ttl"
)

type SystemRestfulInteraction added in v0.0.3

type SystemRestfulInteraction string

SystemRestfulInteraction represents codes from http://hl7.org/fhir/ValueSet/system-restful-interaction

const (
	SystemRestfulInteractionRead                      SystemRestfulInteraction = "read"
	SystemRestfulInteractionVread                     SystemRestfulInteraction = "vread"
	SystemRestfulInteractionUpdate                    SystemRestfulInteraction = "update"
	SystemRestfulInteractionUpdateConditional         SystemRestfulInteraction = "update-conditional"
	SystemRestfulInteractionPatch                     SystemRestfulInteraction = "patch"
	SystemRestfulInteractionPatchConditional          SystemRestfulInteraction = "patch-conditional"
	SystemRestfulInteractionDelete                    SystemRestfulInteraction = "delete"
	SystemRestfulInteractionDeleteConditionalSingle   SystemRestfulInteraction = "delete-conditional-single"
	SystemRestfulInteractionDeleteConditionalMultiple SystemRestfulInteraction = "delete-conditional-multiple"
	SystemRestfulInteractionDeleteHistory             SystemRestfulInteraction = "delete-history"
	SystemRestfulInteractionDeleteHistoryVersion      SystemRestfulInteraction = "delete-history-version"
	SystemRestfulInteractionHistory                   SystemRestfulInteraction = "history"
	SystemRestfulInteractionHistoryInstance           SystemRestfulInteraction = "history-instance"
	SystemRestfulInteractionHistoryType               SystemRestfulInteraction = "history-type"
	SystemRestfulInteractionHistorySystem             SystemRestfulInteraction = "history-system"
	SystemRestfulInteractionCreate                    SystemRestfulInteraction = "create"
	SystemRestfulInteractionCreateConditional         SystemRestfulInteraction = "create-conditional"
	SystemRestfulInteractionSearch                    SystemRestfulInteraction = "search"
	SystemRestfulInteractionSearchType                SystemRestfulInteraction = "search-type"
	SystemRestfulInteractionSearchSystem              SystemRestfulInteraction = "search-system"
	SystemRestfulInteractionSearchCompartment         SystemRestfulInteraction = "search-compartment"
	SystemRestfulInteractionCapabilities              SystemRestfulInteraction = "capabilities"
	SystemRestfulInteractionTransaction               SystemRestfulInteraction = "transaction"
	SystemRestfulInteractionBatch                     SystemRestfulInteraction = "batch"
	SystemRestfulInteractionOperation                 SystemRestfulInteraction = "operation"
)

type Task

type Task struct {
	ResourceType       string              `json:"resourceType" bson:"resource_type"`                                 // Type of resource
	Id                 *string             `json:"id,omitempty" bson:"id,omitempty"`                                  // Logical id of this artifact
	Meta               *Meta               `json:"meta,omitempty" bson:"meta,omitempty"`                              // Metadata about the resource
	ImplicitRules      *string             `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`           // A set of rules under which this content was created
	Language           *string             `json:"language,omitempty" bson:"language,omitempty"`                      // Language of the resource content
	Text               *Narrative          `json:"text,omitempty" bson:"text,omitempty"`                              // Text summary of the resource, for human interpretation
	Contained          []json.RawMessage   `json:"contained,omitempty" bson:"contained,omitempty"`                    // Contained, inline Resources
	Identifier         []Identifier        `json:"identifier,omitempty" bson:"identifier,omitempty"`                  // Task Instance Identifier
	BasedOn            []Reference         `json:"basedOn,omitempty" bson:"based_on,omitempty"`                       // Request fulfilled by this task
	GroupIdentifier    *Identifier         `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"`       // Requisition or grouper id
	PartOf             []Reference         `json:"partOf,omitempty" bson:"part_of,omitempty"`                         // Composite task
	Status             string              `json:"status" bson:"status"`                                              // draft | requested | received | accepted | +
	StatusReason       []CodeableReference `json:"statusReason,omitempty" bson:"status_reason,omitempty"`             // Reason for current status
	BusinessStatus     *CodeableConcept    `json:"businessStatus,omitempty" bson:"business_status,omitempty"`         // E.g. "Specimen collected", "IV prepped"
	Intent             string              `json:"intent" bson:"intent"`                                              // unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
	Priority           *string             `json:"priority,omitempty" bson:"priority,omitempty"`                      // routine | urgent | asap | stat
	DoNotPerform       *bool               `json:"doNotPerform,omitempty" bson:"do_not_perform,omitempty"`            // True if Task is prohibiting action
	Code               *CodeableConcept    `json:"code,omitempty" bson:"code,omitempty"`                              // Task Type
	Description        *string             `json:"description,omitempty" bson:"description,omitempty"`                // Human-readable explanation of task
	Focus              []TaskFocus         `json:"focus,omitempty" bson:"focus,omitempty"`                            // What task is acting on
	For                *Reference          `json:"for,omitempty" bson:"for,omitempty"`                                // Beneficiary of the Task
	Encounter          *Reference          `json:"encounter,omitempty" bson:"encounter,omitempty"`                    // Healthcare event during which this task originated
	RequestedPeriod    *Period             `json:"requestedPeriod,omitempty" bson:"requested_period,omitempty"`       // When the task should be performed
	ExecutionPeriod    *Period             `json:"executionPeriod,omitempty" bson:"execution_period,omitempty"`       // Start and end time of execution
	AuthoredOn         *string             `json:"authoredOn,omitempty" bson:"authored_on,omitempty"`                 // Task Creation Date
	LastModified       *string             `json:"lastModified,omitempty" bson:"last_modified,omitempty"`             // Task Last Modified Date
	Requester          *Reference          `json:"requester,omitempty" bson:"requester,omitempty"`                    // Who is asking for task to be done
	RequestedPerformer []CodeableReference `json:"requestedPerformer,omitempty" bson:"requested_performer,omitempty"` // Who should perform the Task
	Owner              *Reference          `json:"owner,omitempty" bson:"owner,omitempty"`                            // Responsible individual
	Performer          []TaskPerformer     `json:"performer,omitempty" bson:"performer,omitempty"`                    // Who or what performed the task
	Location           *Reference          `json:"location,omitempty" bson:"location,omitempty"`                      // Where task occurs
	Reason             []CodeableReference `json:"reason,omitempty" bson:"reason,omitempty"`                          // Why task is needed
	Insurance          []Reference         `json:"insurance,omitempty" bson:"insurance,omitempty"`                    // Associated insurance coverage
	Note               []Annotation        `json:"note,omitempty" bson:"note,omitempty"`                              // Comments made about the task
	RelevantHistory    []Reference         `json:"relevantHistory,omitempty" bson:"relevant_history,omitempty"`       // Key events in history of the Task
	Restriction        *TaskRestriction    `json:"restriction,omitempty" bson:"restriction,omitempty"`                // Constraints on fulfillment tasks
	Input              []TaskInput         `json:"input,omitempty" bson:"input,omitempty"`                            // Information used to perform task
	Output             []TaskOutput        `json:"output,omitempty" bson:"output,omitempty"`                          // Information produced as part of task
}

A task to be performed as a part of a workflow and the related information like inputs, outputs and execution progress.

func (*Task) Validate

func (r *Task) Validate() error

type TaskFocus

type TaskFocus struct {
	Id             *string    `json:"id,omitempty" bson:"id,omitempty"`      // Unique id for inter-element referencing
	ValueReference *Reference `json:"valueReference" bson:"value_reference"` // What task is acting on
	ValueCanonical *string    `json:"valueCanonical" bson:"value_canonical"` // What task is acting on
}

func (*TaskFocus) Validate

func (r *TaskFocus) Validate() error

type TaskInput

type TaskInput struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Type                       *CodeableConcept       `json:"type" bson:"type"`                                                // Label for the input
	ValueBase64Binary          *string                `json:"valueBase64Binary" bson:"value_base64_binary"`                    // Content to use in performing the task
	ValueBoolean               *bool                  `json:"valueBoolean" bson:"value_boolean"`                               // Content to use in performing the task
	ValueCanonical             *string                `json:"valueCanonical" bson:"value_canonical"`                           // Content to use in performing the task
	ValueCode                  *string                `json:"valueCode" bson:"value_code"`                                     // Content to use in performing the task
	ValueDate                  *string                `json:"valueDate" bson:"value_date"`                                     // Content to use in performing the task
	ValueDateTime              *string                `json:"valueDateTime" bson:"value_date_time"`                            // Content to use in performing the task
	ValueDecimal               *float64               `json:"valueDecimal" bson:"value_decimal"`                               // Content to use in performing the task
	ValueId                    *string                `json:"valueId" bson:"value_id"`                                         // Content to use in performing the task
	ValueInstant               *string                `json:"valueInstant" bson:"value_instant"`                               // Content to use in performing the task
	ValueInteger               *int                   `json:"valueInteger" bson:"value_integer"`                               // Content to use in performing the task
	ValueInteger64             *int64                 `json:"valueInteger64" bson:"value_integer64"`                           // Content to use in performing the task
	ValueMarkdown              *string                `json:"valueMarkdown" bson:"value_markdown"`                             // Content to use in performing the task
	ValueOid                   *string                `json:"valueOid" bson:"value_oid"`                                       // Content to use in performing the task
	ValuePositiveInt           *int                   `json:"valuePositiveInt" bson:"value_positive_int"`                      // Content to use in performing the task
	ValueString                *string                `json:"valueString" bson:"value_string"`                                 // Content to use in performing the task
	ValueTime                  *string                `json:"valueTime" bson:"value_time"`                                     // Content to use in performing the task
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt" bson:"value_unsigned_int"`                      // Content to use in performing the task
	ValueUri                   *string                `json:"valueUri" bson:"value_uri"`                                       // Content to use in performing the task
	ValueUrl                   *string                `json:"valueUrl" bson:"value_url"`                                       // Content to use in performing the task
	ValueUuid                  *uuid                  `json:"valueUuid" bson:"value_uuid"`                                     // Content to use in performing the task
	ValueAddress               *Address               `json:"valueAddress" bson:"value_address"`                               // Content to use in performing the task
	ValueAge                   *Age                   `json:"valueAge" bson:"value_age"`                                       // Content to use in performing the task
	ValueAnnotation            *Annotation            `json:"valueAnnotation" bson:"value_annotation"`                         // Content to use in performing the task
	ValueAttachment            *Attachment            `json:"valueAttachment" bson:"value_attachment"`                         // Content to use in performing the task
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept" bson:"value_codeable_concept"`              // Content to use in performing the task
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference" bson:"value_codeable_reference"`          // Content to use in performing the task
	ValueCoding                *Coding                `json:"valueCoding" bson:"value_coding"`                                 // Content to use in performing the task
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint" bson:"value_contact_point"`                    // Content to use in performing the task
	ValueCount                 *Count                 `json:"valueCount" bson:"value_count"`                                   // Content to use in performing the task
	ValueDistance              *Distance              `json:"valueDistance" bson:"value_distance"`                             // Content to use in performing the task
	ValueDuration              *Duration              `json:"valueDuration" bson:"value_duration"`                             // Content to use in performing the task
	ValueHumanName             *HumanName             `json:"valueHumanName" bson:"value_human_name"`                          // Content to use in performing the task
	ValueIdentifier            *Identifier            `json:"valueIdentifier" bson:"value_identifier"`                         // Content to use in performing the task
	ValueMoney                 *Money                 `json:"valueMoney" bson:"value_money"`                                   // Content to use in performing the task
	ValuePeriod                *Period                `json:"valuePeriod" bson:"value_period"`                                 // Content to use in performing the task
	ValueQuantity              *Quantity              `json:"valueQuantity" bson:"value_quantity"`                             // Content to use in performing the task
	ValueRange                 *Range                 `json:"valueRange" bson:"value_range"`                                   // Content to use in performing the task
	ValueRatio                 *Ratio                 `json:"valueRatio" bson:"value_ratio"`                                   // Content to use in performing the task
	ValueRatioRange            *RatioRange            `json:"valueRatioRange" bson:"value_ratio_range"`                        // Content to use in performing the task
	ValueReference             *Reference             `json:"valueReference" bson:"value_reference"`                           // Content to use in performing the task
	ValueSampledData           *SampledData           `json:"valueSampledData" bson:"value_sampled_data"`                      // Content to use in performing the task
	ValueSignature             *Signature             `json:"valueSignature" bson:"value_signature"`                           // Content to use in performing the task
	ValueTiming                *Timing                `json:"valueTiming" bson:"value_timing"`                                 // Content to use in performing the task
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail" bson:"value_contact_detail"`                  // Content to use in performing the task
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement" bson:"value_data_requirement"`              // Content to use in performing the task
	ValueExpression            *Expression            `json:"valueExpression" bson:"value_expression"`                         // Content to use in performing the task
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition" bson:"value_parameter_definition"`      // Content to use in performing the task
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact" bson:"value_related_artifact"`              // Content to use in performing the task
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition" bson:"value_trigger_definition"`          // Content to use in performing the task
	ValueUsageContext          *UsageContext          `json:"valueUsageContext" bson:"value_usage_context"`                    // Content to use in performing the task
	ValueAvailability          *Availability          `json:"valueAvailability" bson:"value_availability"`                     // Content to use in performing the task
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail" bson:"value_extended_contact_detail"` // Content to use in performing the task
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail" bson:"value_virtual_service_detail"`   // Content to use in performing the task
	ValueDosage                *Dosage                `json:"valueDosage" bson:"value_dosage"`                                 // Content to use in performing the task
	ValueMeta                  *Meta                  `json:"valueMeta" bson:"value_meta"`                                     // Content to use in performing the task
}

func (*TaskInput) Validate

func (r *TaskInput) Validate() error

type TaskIntent added in v0.0.3

type TaskIntent string

TaskIntent represents codes from http://hl7.org/fhir/ValueSet/task-intent

const (
	TaskIntentUnknown       TaskIntent = "unknown"
	TaskIntentProposal      TaskIntent = "proposal"
	TaskIntentSolicitOffer  TaskIntent = "solicit-offer"
	TaskIntentOfferResponse TaskIntent = "offer-response"
	TaskIntentPlan          TaskIntent = "plan"
	TaskIntentDirective     TaskIntent = "directive"
	TaskIntentOrder         TaskIntent = "order"
	TaskIntentOriginalOrder TaskIntent = "original-order"
	TaskIntentReflexOrder   TaskIntent = "reflex-order"
	TaskIntentFillerOrder   TaskIntent = "filler-order"
	TaskIntentInstanceOrder TaskIntent = "instance-order"
	TaskIntentOption        TaskIntent = "option"
)

type TaskOutput

type TaskOutput struct {
	Id                         *string                `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Type                       *CodeableConcept       `json:"type" bson:"type"`                                                // Label for output
	ValueBase64Binary          *string                `json:"valueBase64Binary" bson:"value_base64_binary"`                    // Result of output
	ValueBoolean               *bool                  `json:"valueBoolean" bson:"value_boolean"`                               // Result of output
	ValueCanonical             *string                `json:"valueCanonical" bson:"value_canonical"`                           // Result of output
	ValueCode                  *string                `json:"valueCode" bson:"value_code"`                                     // Result of output
	ValueDate                  *string                `json:"valueDate" bson:"value_date"`                                     // Result of output
	ValueDateTime              *string                `json:"valueDateTime" bson:"value_date_time"`                            // Result of output
	ValueDecimal               *float64               `json:"valueDecimal" bson:"value_decimal"`                               // Result of output
	ValueId                    *string                `json:"valueId" bson:"value_id"`                                         // Result of output
	ValueInstant               *string                `json:"valueInstant" bson:"value_instant"`                               // Result of output
	ValueInteger               *int                   `json:"valueInteger" bson:"value_integer"`                               // Result of output
	ValueInteger64             *int64                 `json:"valueInteger64" bson:"value_integer64"`                           // Result of output
	ValueMarkdown              *string                `json:"valueMarkdown" bson:"value_markdown"`                             // Result of output
	ValueOid                   *string                `json:"valueOid" bson:"value_oid"`                                       // Result of output
	ValuePositiveInt           *int                   `json:"valuePositiveInt" bson:"value_positive_int"`                      // Result of output
	ValueString                *string                `json:"valueString" bson:"value_string"`                                 // Result of output
	ValueTime                  *string                `json:"valueTime" bson:"value_time"`                                     // Result of output
	ValueUnsignedInt           *int                   `json:"valueUnsignedInt" bson:"value_unsigned_int"`                      // Result of output
	ValueUri                   *string                `json:"valueUri" bson:"value_uri"`                                       // Result of output
	ValueUrl                   *string                `json:"valueUrl" bson:"value_url"`                                       // Result of output
	ValueUuid                  *uuid                  `json:"valueUuid" bson:"value_uuid"`                                     // Result of output
	ValueAddress               *Address               `json:"valueAddress" bson:"value_address"`                               // Result of output
	ValueAge                   *Age                   `json:"valueAge" bson:"value_age"`                                       // Result of output
	ValueAnnotation            *Annotation            `json:"valueAnnotation" bson:"value_annotation"`                         // Result of output
	ValueAttachment            *Attachment            `json:"valueAttachment" bson:"value_attachment"`                         // Result of output
	ValueCodeableConcept       *CodeableConcept       `json:"valueCodeableConcept" bson:"value_codeable_concept"`              // Result of output
	ValueCodeableReference     *CodeableReference     `json:"valueCodeableReference" bson:"value_codeable_reference"`          // Result of output
	ValueCoding                *Coding                `json:"valueCoding" bson:"value_coding"`                                 // Result of output
	ValueContactPoint          *ContactPoint          `json:"valueContactPoint" bson:"value_contact_point"`                    // Result of output
	ValueCount                 *Count                 `json:"valueCount" bson:"value_count"`                                   // Result of output
	ValueDistance              *Distance              `json:"valueDistance" bson:"value_distance"`                             // Result of output
	ValueDuration              *Duration              `json:"valueDuration" bson:"value_duration"`                             // Result of output
	ValueHumanName             *HumanName             `json:"valueHumanName" bson:"value_human_name"`                          // Result of output
	ValueIdentifier            *Identifier            `json:"valueIdentifier" bson:"value_identifier"`                         // Result of output
	ValueMoney                 *Money                 `json:"valueMoney" bson:"value_money"`                                   // Result of output
	ValuePeriod                *Period                `json:"valuePeriod" bson:"value_period"`                                 // Result of output
	ValueQuantity              *Quantity              `json:"valueQuantity" bson:"value_quantity"`                             // Result of output
	ValueRange                 *Range                 `json:"valueRange" bson:"value_range"`                                   // Result of output
	ValueRatio                 *Ratio                 `json:"valueRatio" bson:"value_ratio"`                                   // Result of output
	ValueRatioRange            *RatioRange            `json:"valueRatioRange" bson:"value_ratio_range"`                        // Result of output
	ValueReference             *Reference             `json:"valueReference" bson:"value_reference"`                           // Result of output
	ValueSampledData           *SampledData           `json:"valueSampledData" bson:"value_sampled_data"`                      // Result of output
	ValueSignature             *Signature             `json:"valueSignature" bson:"value_signature"`                           // Result of output
	ValueTiming                *Timing                `json:"valueTiming" bson:"value_timing"`                                 // Result of output
	ValueContactDetail         *ContactDetail         `json:"valueContactDetail" bson:"value_contact_detail"`                  // Result of output
	ValueDataRequirement       *DataRequirement       `json:"valueDataRequirement" bson:"value_data_requirement"`              // Result of output
	ValueExpression            *Expression            `json:"valueExpression" bson:"value_expression"`                         // Result of output
	ValueParameterDefinition   *ParameterDefinition   `json:"valueParameterDefinition" bson:"value_parameter_definition"`      // Result of output
	ValueRelatedArtifact       *RelatedArtifact       `json:"valueRelatedArtifact" bson:"value_related_artifact"`              // Result of output
	ValueTriggerDefinition     *TriggerDefinition     `json:"valueTriggerDefinition" bson:"value_trigger_definition"`          // Result of output
	ValueUsageContext          *UsageContext          `json:"valueUsageContext" bson:"value_usage_context"`                    // Result of output
	ValueAvailability          *Availability          `json:"valueAvailability" bson:"value_availability"`                     // Result of output
	ValueExtendedContactDetail *ExtendedContactDetail `json:"valueExtendedContactDetail" bson:"value_extended_contact_detail"` // Result of output
	ValueVirtualServiceDetail  *VirtualServiceDetail  `json:"valueVirtualServiceDetail" bson:"value_virtual_service_detail"`   // Result of output
	ValueDosage                *Dosage                `json:"valueDosage" bson:"value_dosage"`                                 // Result of output
	ValueMeta                  *Meta                  `json:"valueMeta" bson:"value_meta"`                                     // Result of output
}

func (*TaskOutput) Validate

func (r *TaskOutput) Validate() error

type TaskPerformer

type TaskPerformer struct {
	Id       *string          `json:"id,omitempty" bson:"id,omitempty"`             // Unique id for inter-element referencing
	Function *CodeableConcept `json:"function,omitempty" bson:"function,omitempty"` // Type of performance
	Actor    *Reference       `json:"actor" bson:"actor"`                           // Who performed the task
}

func (*TaskPerformer) Validate

func (r *TaskPerformer) Validate() error

type TaskRestriction

type TaskRestriction struct {
	Id          *string     `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Repetitions *int        `json:"repetitions,omitempty" bson:"repetitions,omitempty"` // How many times to repeat
	Period      *Period     `json:"period,omitempty" bson:"period,omitempty"`           // When fulfillment is sought
	Recipient   []Reference `json:"recipient,omitempty" bson:"recipient,omitempty"`     // Individual or entity from whom fulfillment is being sought
}

func (*TaskRestriction) Validate

func (r *TaskRestriction) Validate() error

type TaskStatus added in v0.0.3

type TaskStatus string

TaskStatus represents codes from http://hl7.org/fhir/ValueSet/task-status

const (
	TaskStatusDraft          TaskStatus = "draft"
	TaskStatusRequested      TaskStatus = "requested"
	TaskStatusReceived       TaskStatus = "received"
	TaskStatusAccepted       TaskStatus = "accepted"
	TaskStatusRejected       TaskStatus = "rejected"
	TaskStatusReady          TaskStatus = "ready"
	TaskStatusCancelled      TaskStatus = "cancelled"
	TaskStatusInProgress     TaskStatus = "in-progress"
	TaskStatusOnHold         TaskStatus = "on-hold"
	TaskStatusFailed         TaskStatus = "failed"
	TaskStatusCompleted      TaskStatus = "completed"
	TaskStatusEnteredInError TaskStatus = "entered-in-error"
)

type TerminologyCapabilities

type TerminologyCapabilities struct {
	ResourceType           string                                 `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string                                `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta                                  `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string                                `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string                                `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative                             `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage                      `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string                                `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this terminology capabilities, represented as a URI (globally unique)
	Identifier             []Identifier                           `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the terminology capabilities
	Version                *string                                `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the terminology capabilities
	VersionAlgorithmString *string                                `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding                                `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string                                `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this terminology capabilities (computer friendly)
	Title                  *string                                `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this terminology capabilities (human friendly)
	Status                 string                                 `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool                                  `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   string                                 `json:"date" bson:"date"`                                                           // Date last changed
	Publisher              *string                                `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail                        `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string                                `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the terminology capabilities
	UseContext             []UsageContext                         `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept                      `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the terminology capabilities (if applicable)
	Purpose                *string                                `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this terminology capabilities is defined
	Copyright              *string                                `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string                                `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	Kind                   string                                 `json:"kind" bson:"kind"`                                                           // instance | capability | requirements
	Software               *TerminologyCapabilitiesSoftware       `json:"software,omitempty" bson:"software,omitempty"`                               // Software that is covered by this terminology capability statement
	Implementation         *TerminologyCapabilitiesImplementation `json:"implementation,omitempty" bson:"implementation,omitempty"`                   // If this describes a specific instance
	LockedDate             *bool                                  `json:"lockedDate,omitempty" bson:"locked_date,omitempty"`                          // Whether lockedDate is supported
	CodeSystem             []TerminologyCapabilitiesCodeSystem    `json:"codeSystem,omitempty" bson:"code_system,omitempty"`                          // A code system supported by the server
	Supplements            *TerminologyCapabilitiesSupplements    `json:"supplements,omitempty" bson:"supplements,omitempty"`                         // Supplement Support Information
	Expansion              *TerminologyCapabilitiesExpansion      `json:"expansion,omitempty" bson:"expansion,omitempty"`                             // Information about the [ValueSet/$expand](valueset-operation-expand.html) operation
	CodeSearch             *string                                `json:"codeSearch,omitempty" bson:"code_search,omitempty"`                          // in-compose | in-expansion | in-compose-or-expansion
	ValidateCode           *TerminologyCapabilitiesValidateCode   `json:"validateCode,omitempty" bson:"validate_code,omitempty"`                      // Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation
	Translation            *TerminologyCapabilitiesTranslation    `json:"translation,omitempty" bson:"translation,omitempty"`                         // Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation
}

A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.

func (*TerminologyCapabilities) Validate

func (r *TerminologyCapabilities) Validate() error

type TerminologyCapabilitiesCodeSystem

type TerminologyCapabilitiesCodeSystem struct {
	Id          *string                                    `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Uri         *string                                    `json:"uri,omitempty" bson:"uri,omitempty"`                 // Canonical identifier for the code system, represented as a URI (no version portion)
	Supplement  []string                                   `json:"supplement,omitempty" bson:"supplement,omitempty"`   // Canonical identifier for a supported supplement to this code system (including supplement version)
	Version     []TerminologyCapabilitiesCodeSystemVersion `json:"version,omitempty" bson:"version,omitempty"`         // Version of Code System supported
	Content     string                                     `json:"content" bson:"content"`                             // not-present | example | fragment | complete | supplement
	Subsumption *bool                                      `json:"subsumption,omitempty" bson:"subsumption,omitempty"` // Whether subsumption is supported
}

func (*TerminologyCapabilitiesCodeSystem) Validate

type TerminologyCapabilitiesCodeSystemVersion

type TerminologyCapabilitiesCodeSystemVersion struct {
	Id            *string                                          `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Code          *string                                          `json:"code,omitempty" bson:"code,omitempty"`                   // Version identifier for this version
	IsDefault     *bool                                            `json:"isDefault,omitempty" bson:"is_default,omitempty"`        // If this is the default version for this code system
	Supplement    []string                                         `json:"supplement,omitempty" bson:"supplement,omitempty"`       // Canonical identifier for a supported supplement to this code system version (including supplement version)
	Compositional *bool                                            `json:"compositional,omitempty" bson:"compositional,omitempty"` // If compositional grammar is supported
	Language      []string                                         `json:"language,omitempty" bson:"language,omitempty"`           // Language Displays supported
	Filter        []TerminologyCapabilitiesCodeSystemVersionFilter `json:"filter,omitempty" bson:"filter,omitempty"`               // Filter Properties supported
	Property      []string                                         `json:"property,omitempty" bson:"property,omitempty"`           // Properties supported for $lookup
}

func (*TerminologyCapabilitiesCodeSystemVersion) Validate

type TerminologyCapabilitiesCodeSystemVersionFilter

type TerminologyCapabilitiesCodeSystemVersionFilter struct {
	Id   *string  `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Code string   `json:"code" bson:"code"`                 // Code of the property supported
	Op   []string `json:"op" bson:"op"`                     // Operations supported for the property
}

func (*TerminologyCapabilitiesCodeSystemVersionFilter) Validate

type TerminologyCapabilitiesExpansion

type TerminologyCapabilitiesExpansion struct {
	Id           *string                                     `json:"id,omitempty" bson:"id,omitempty"`                     // Unique id for inter-element referencing
	Hierarchical *bool                                       `json:"hierarchical,omitempty" bson:"hierarchical,omitempty"` // Whether the server can return nested value sets
	Paging       *bool                                       `json:"paging,omitempty" bson:"paging,omitempty"`             // Whether the server supports paging on expansion
	Incomplete   *bool                                       `json:"incomplete,omitempty" bson:"incomplete,omitempty"`     // Allow request for incomplete expansions?
	Parameter    []TerminologyCapabilitiesExpansionParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`       // Supported expansion parameter
	TextFilter   *string                                     `json:"textFilter,omitempty" bson:"text_filter,omitempty"`    // Documentation about text searching works
}

func (*TerminologyCapabilitiesExpansion) Validate

type TerminologyCapabilitiesExpansionParameter

type TerminologyCapabilitiesExpansionParameter struct {
	Id            *string `json:"id,omitempty" bson:"id,omitempty"`                       // Unique id for inter-element referencing
	Name          string  `json:"name" bson:"name"`                                       // Name of the supported expansion parameter
	Documentation *string `json:"documentation,omitempty" bson:"documentation,omitempty"` // Description of support for parameter
}

func (*TerminologyCapabilitiesExpansionParameter) Validate

type TerminologyCapabilitiesImplementation

type TerminologyCapabilitiesImplementation struct {
	Id          *string `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Description string  `json:"description" bson:"description"`     // Describes this specific instance
	Url         *string `json:"url,omitempty" bson:"url,omitempty"` // Base URL for the implementation
}

func (*TerminologyCapabilitiesImplementation) Validate

type TerminologyCapabilitiesSoftware

type TerminologyCapabilitiesSoftware struct {
	Id      *string `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Name    string  `json:"name" bson:"name"`                           // A name the software is known by
	Version *string `json:"version,omitempty" bson:"version,omitempty"` // Version covered by this statement
}

func (*TerminologyCapabilitiesSoftware) Validate

func (r *TerminologyCapabilitiesSoftware) Validate() error

type TerminologyCapabilitiesSupplements

type TerminologyCapabilitiesSupplements struct {
	Id      *string `json:"id,omitempty" bson:"id,omitempty"`           // Unique id for inter-element referencing
	Globals *string `json:"globals,omitempty" bson:"globals,omitempty"` // not-supported | explicit | implicit
}

func (*TerminologyCapabilitiesSupplements) Validate

type TerminologyCapabilitiesTranslation

type TerminologyCapabilitiesTranslation struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	NeedsMap bool    `json:"needsMap" bson:"needs_map"`        // Whether the client must identify the map
}

func (*TerminologyCapabilitiesTranslation) Validate

type TerminologyCapabilitiesValidateCode

type TerminologyCapabilitiesValidateCode struct {
	Id           *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Translations bool    `json:"translations" bson:"translations"` // Whether translations are validated
}

func (*TerminologyCapabilitiesValidateCode) Validate

type Timing

type Timing struct {
	Id     *string          `json:"id,omitempty" bson:"id,omitempty"`         // Unique id for inter-element referencing
	Event  []string         `json:"event,omitempty" bson:"event,omitempty"`   // When the event occurs
	Repeat *TimingRepeat    `json:"repeat,omitempty" bson:"repeat,omitempty"` // When the event is to occur
	Code   *CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`     // C | BID | TID | QID | AM | PM | QD | QOD | +
}

Timing Type: Specifies an event that may occur multiple times. Timing schedules are used to record when things are planned, expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds, and may be used for reporting the schedule to which past regular activities were carried out.

func (*Timing) Validate

func (r *Timing) Validate() error

type TimingRepeat

type TimingRepeat struct {
	Id             *string   `json:"id,omitempty" bson:"id,omitempty"`                          // Unique id for inter-element referencing
	BoundsDuration *Duration `json:"boundsDuration,omitempty" bson:"bounds_duration,omitempty"` // Length/Range of lengths, or (Start and/or end) limits
	BoundsRange    *Range    `json:"boundsRange,omitempty" bson:"bounds_range,omitempty"`       // Length/Range of lengths, or (Start and/or end) limits
	BoundsPeriod   *Period   `json:"boundsPeriod,omitempty" bson:"bounds_period,omitempty"`     // Length/Range of lengths, or (Start and/or end) limits
	Count          *int      `json:"count,omitempty" bson:"count,omitempty"`                    // Number of times to repeat
	CountMax       *int      `json:"countMax,omitempty" bson:"count_max,omitempty"`             // Maximum number of times to repeat
	Duration       *float64  `json:"duration,omitempty" bson:"duration,omitempty"`              // How long when it happens
	DurationMax    *float64  `json:"durationMax,omitempty" bson:"duration_max,omitempty"`       // How long when it happens (Max)
	DurationUnit   *string   `json:"durationUnit,omitempty" bson:"duration_unit,omitempty"`     // s | min | h | d | wk | mo | a - unit of time (UCUM)
	Frequency      *int      `json:"frequency,omitempty" bson:"frequency,omitempty"`            // Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
	FrequencyMax   *int      `json:"frequencyMax,omitempty" bson:"frequency_max,omitempty"`     // Event occurs up to frequencyMax times per period
	Period         *float64  `json:"period,omitempty" bson:"period,omitempty"`                  // The duration to which the frequency applies. I.e. Event occurs frequency times per period
	PeriodMax      *float64  `json:"periodMax,omitempty" bson:"period_max,omitempty"`           // Upper limit of period (3-4 hours)
	PeriodUnit     *string   `json:"periodUnit,omitempty" bson:"period_unit,omitempty"`         // s | min | h | d | wk | mo | a - unit of time (UCUM)
	StartOffset    *Quantity `json:"startOffset,omitempty" bson:"start_offset,omitempty"`       // Events within the repeat period do not start until startOffset has elapsed
	EndOffset      *Quantity `json:"endOffset,omitempty" bson:"end_offset,omitempty"`           // Events within the repeat period step once endOffset before the end of the period
	DayOfWeek      []string  `json:"dayOfWeek,omitempty" bson:"day_of_week,omitempty"`          // mon | tue | wed | thu | fri | sat | sun
	TimeOfDay      []string  `json:"timeOfDay,omitempty" bson:"time_of_day,omitempty"`          // Time of day for action
	When           []string  `json:"when,omitempty" bson:"when,omitempty"`                      // Code for time period of occurrence
	Offset         *int      `json:"offset,omitempty" bson:"offset,omitempty"`                  // Minutes from event (before or after)
}

func (*TimingRepeat) Validate

func (r *TimingRepeat) Validate() error

type Transform

type Transform struct {
}

The transform operation takes input content, applies a structure map transform, and then returns the output.

func (*Transform) Validate

func (r *Transform) Validate() error

type Translate

type Translate struct {
}

Translate a code from one value set to another, based on the specified ConceptMap resource. If no ConceptMap resource is specified, then other additional knowledge available to the server may be used. One (and only one) of the in parameters (sourceCode, sourceCoding, sourceCodeableConcept, targetCode, targetCoding, or targetCodeableConcept) SHALL be provided, to identify the code that is to be translated. The operation returns a set of parameters including a 'result' for whether there is an acceptable match, and a list of possible matches. Note that the list of matches may include notes of codes for which mapping is specifically excluded (i.e. 'not-related-to'), so implementers have to check the target.relationship for each match. If a source* parameter is provided, the $translate operation will return all matches whereby the provided source concept is the source of a mapping relationship (in a specified ConceptMap or otherwise known to the server). If a target* parameter is provided, the $translate operation will return all matches whereby the provided target concept is the target of a mapping relationship (in a specified ConceptMap or otherwise known to the server). Note: The source value set is an optional parameter because in some cases, the client cannot know what the source value set is. However, without a source value set, the server may be unable to safely identify an applicable concept map, and would return an error. For this reason, a source value set SHOULD always be provided. Note that servers may be able to identify an appropriate concept map without a source value set if there is a full mapping for the entire code system in the concept map, or by manual intervention.

func (*Translate) Validate

func (r *Translate) Validate() error

type TranslateId

type TranslateId struct {
}

This operation returns an identifier of the target type. The operation takes 5 parameters: * a source identifier value - either a URI, an OID, or a v2 table 0396 (other) code * a code for what type of identifier the source identifier is * a code for what kind of identifier is desired (URI, OID, v2 table 0396 identifier) * an optional parameter preferredOnly for whether only the preferred identifier is desired * an optional date to return only identifiers that have a validity period that includes that date and returns either the requested identifier(s), or an HTTP errors response with an OperationOutcome because either the provided identifier was not recognized, or the requested identiifer type is not known.

func (*TranslateId) Validate

func (r *TranslateId) Validate() error

type TriggerDefinition

type TriggerDefinition struct {
	Id                *string           `json:"id,omitempty" bson:"id,omitempty"`                                // Unique id for inter-element referencing
	Type              string            `json:"type" bson:"type"`                                                // named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended | subscription-topic
	Name              *string           `json:"name,omitempty" bson:"name,omitempty"`                            // Name or URI that identifies the event
	Code              *CodeableConcept  `json:"code,omitempty" bson:"code,omitempty"`                            // Coded definition of the event
	SubscriptionTopic *string           `json:"subscriptionTopic,omitempty" bson:"subscription_topic,omitempty"` // What event
	TimingTiming      *Timing           `json:"timingTiming,omitempty" bson:"timing_timing,omitempty"`           // Timing of the event
	TimingDate        *string           `json:"timingDate,omitempty" bson:"timing_date,omitempty"`               // Timing of the event
	TimingDateTime    *string           `json:"timingDateTime,omitempty" bson:"timing_date_time,omitempty"`      // Timing of the event
	Data              []DataRequirement `json:"data,omitempty" bson:"data,omitempty"`                            // Triggering data of the event (multiple = 'and')
	Condition         *Expression       `json:"condition,omitempty" bson:"condition,omitempty"`                  // Whether the event triggers (boolean expression)
}

TriggerDefinition Type: A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element.

func (*TriggerDefinition) Validate

func (r *TriggerDefinition) Validate() error

type TriggerType added in v0.0.3

type TriggerType string

TriggerType represents codes from http://hl7.org/fhir/ValueSet/trigger-type

const (
	TriggerTypeNamedEvent        TriggerType = "named-event"
	TriggerTypePeriodic          TriggerType = "periodic"
	TriggerTypeDataChanged       TriggerType = "data-changed"
	TriggerTypeDataAdded         TriggerType = "data-added"
	TriggerTypeDataModified      TriggerType = "data-modified"
	TriggerTypeDataRemoved       TriggerType = "data-removed"
	TriggerTypeDataAccessed      TriggerType = "data-accessed"
	TriggerTypeDataAccessEnded   TriggerType = "data-access-ended"
	TriggerTypeSubscriptionTopic TriggerType = "subscription-topic"
)

type TriggeredBytype added in v0.0.3

type TriggeredBytype string

TriggeredBytype represents codes from http://hl7.org/fhir/ValueSet/observation-triggeredbytype

const (
	TriggeredBytypeReflex TriggeredBytype = "reflex"
	TriggeredBytypeRepeat TriggeredBytype = "repeat"
	TriggeredBytypeReRun  TriggeredBytype = "re-run"
)

type TypeDerivationRule added in v0.0.3

type TypeDerivationRule string

TypeDerivationRule represents codes from http://hl7.org/fhir/ValueSet/type-derivation-rule

const (
	TypeDerivationRuleSpecialization TypeDerivationRule = "specialization"
	TypeDerivationRuleConstraint     TypeDerivationRule = "constraint"
)

type TypeRestfulInteraction added in v0.0.3

type TypeRestfulInteraction string

TypeRestfulInteraction represents codes from http://hl7.org/fhir/ValueSet/type-restful-interaction

const (
	TypeRestfulInteractionRead                      TypeRestfulInteraction = "read"
	TypeRestfulInteractionVread                     TypeRestfulInteraction = "vread"
	TypeRestfulInteractionUpdate                    TypeRestfulInteraction = "update"
	TypeRestfulInteractionUpdateConditional         TypeRestfulInteraction = "update-conditional"
	TypeRestfulInteractionPatch                     TypeRestfulInteraction = "patch"
	TypeRestfulInteractionPatchConditional          TypeRestfulInteraction = "patch-conditional"
	TypeRestfulInteractionDelete                    TypeRestfulInteraction = "delete"
	TypeRestfulInteractionDeleteConditionalSingle   TypeRestfulInteraction = "delete-conditional-single"
	TypeRestfulInteractionDeleteConditionalMultiple TypeRestfulInteraction = "delete-conditional-multiple"
	TypeRestfulInteractionDeleteHistory             TypeRestfulInteraction = "delete-history"
	TypeRestfulInteractionDeleteHistoryVersion      TypeRestfulInteraction = "delete-history-version"
	TypeRestfulInteractionHistory                   TypeRestfulInteraction = "history"
	TypeRestfulInteractionHistoryInstance           TypeRestfulInteraction = "history-instance"
	TypeRestfulInteractionHistoryType               TypeRestfulInteraction = "history-type"
	TypeRestfulInteractionHistorySystem             TypeRestfulInteraction = "history-system"
	TypeRestfulInteractionCreate                    TypeRestfulInteraction = "create"
	TypeRestfulInteractionCreateConditional         TypeRestfulInteraction = "create-conditional"
	TypeRestfulInteractionSearch                    TypeRestfulInteraction = "search"
	TypeRestfulInteractionSearchType                TypeRestfulInteraction = "search-type"
	TypeRestfulInteractionSearchSystem              TypeRestfulInteraction = "search-system"
	TypeRestfulInteractionSearchCompartment         TypeRestfulInteraction = "search-compartment"
	TypeRestfulInteractionCapabilities              TypeRestfulInteraction = "capabilities"
	TypeRestfulInteractionTransaction               TypeRestfulInteraction = "transaction"
	TypeRestfulInteractionBatch                     TypeRestfulInteraction = "batch"
	TypeRestfulInteractionOperation                 TypeRestfulInteraction = "operation"
)

type UDIEntryType added in v0.0.3

type UDIEntryType string

UDIEntryType represents codes from http://hl7.org/fhir/ValueSet/udi-entry-type

const (
	UDIEntryTypeBarcode                UDIEntryType = "barcode"
	UDIEntryTypeRfid                   UDIEntryType = "rfid"
	UDIEntryTypeManual                 UDIEntryType = "manual"
	UDIEntryTypeCard                   UDIEntryType = "card"
	UDIEntryTypeSelfReported           UDIEntryType = "self-reported"
	UDIEntryTypeElectronicTransmission UDIEntryType = "electronic-transmission"
	UDIEntryTypeUnknown                UDIEntryType = "unknown"
)

type UnitsOfTime added in v0.0.3

type UnitsOfTime string

UnitsOfTime represents codes from http://hl7.org/fhir/ValueSet/units-of-time

const (
	UnitsOfTimeS   UnitsOfTime = "s"
	UnitsOfTimeMin UnitsOfTime = "min"
	UnitsOfTimeH   UnitsOfTime = "h"
	UnitsOfTimeD   UnitsOfTime = "d"
	UnitsOfTimeWk  UnitsOfTime = "wk"
	UnitsOfTimeMo  UnitsOfTime = "mo"
	UnitsOfTimeA   UnitsOfTime = "a"
)

type UsageContext

type UsageContext struct {
	Id                   *string          `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code                 *Coding          `json:"code" bson:"code"`                                   // Type of context being specified
	ValueCodeableConcept *CodeableConcept `json:"valueCodeableConcept" bson:"value_codeable_concept"` // Value that defines the context
	ValueQuantity        *Quantity        `json:"valueQuantity" bson:"value_quantity"`                // Value that defines the context
	ValueRange           *Range           `json:"valueRange" bson:"value_range"`                      // Value that defines the context
	ValueReference       *Reference       `json:"valueReference" bson:"value_reference"`              // Value that defines the context
}

UsageContext Type: Specifies clinical/business/etc. metadata that can be used to retrieve, index and/or categorize an artifact. This metadata can either be specific to the applicable population (e.g., age category, DRG) or the specific context of care (e.g., venue, care setting, provider of care).

func (*UsageContext) Validate

func (r *UsageContext) Validate() error

type Use added in v0.0.3

type Use string

Use represents codes from http://hl7.org/fhir/ValueSet/claim-use

const (
	UseClaim            Use = "claim"
	UsePreauthorization Use = "preauthorization"
	UsePredetermination Use = "predetermination"
)

type Validate

type Validate struct {
}

The validate operation checks whether the attached content would be acceptable either generally, as a create, an update or as a delete to an existing resource. The action the server takes depends on the mode parameter: * [mode not provided]: The server checks the content of the resource against any schema, constraint rules, and other general terminology rules * create: The server checks the content, and then checks that the content would be acceptable as a create (e.g. that the content would not violate any uniqueness constraints) * update: The server checks the content, and then checks that it would accept it as an update against the nominated specific resource (e.g. that there are no changes to immutable fields the server does not allow to change, and checking version integrity if appropriate) * delete: The server ignores the content, and checks that the nominated resource is allowed to be deleted (e.g. checking referential integrity rules) Modes update and delete can only be used when the operation is invoked at the resource instance level. The return from this operation is an OperationOutcome(operationoutcome.html) Note that this operation is not the only way to validate resources - see [Validating Resources](validation.html) for further information.

func (*Validate) Validate

func (r *Validate) Validate() error

type ValidateCode

type ValidateCode struct {
}

Validate that a coded value is in the set of codes allowed by a value set. If the operation is not called at the instance level, one of the in parameters url, context or valueSet must be provided. One (and only one) of the in parameters code, coding, or codeableConcept must be provided. If a code is provided, either a system or inferSystem **SHOULD** be provided. The operation returns a result (true / false), an error message, and the recommended display for the code. When validating a code or a coding, then the code, system and version output parameters **SHOULD** be populated when possible. When a validating a CodeableConcept, then the codeableConcept output parameter **SHOULD** be populated when possible.

func (*ValidateCode) Validate

func (r *ValidateCode) Validate() error

type ValueFilterComparator added in v0.0.3

type ValueFilterComparator string

ValueFilterComparator represents codes from http://hl7.org/fhir/ValueSet/value-filter-comparator

const (
	ValueFilterComparatorEq ValueFilterComparator = "eq"
	ValueFilterComparatorNe ValueFilterComparator = "ne"
	ValueFilterComparatorGt ValueFilterComparator = "gt"
	ValueFilterComparatorLt ValueFilterComparator = "lt"
	ValueFilterComparatorGe ValueFilterComparator = "ge"
	ValueFilterComparatorLe ValueFilterComparator = "le"
	ValueFilterComparatorSa ValueFilterComparator = "sa"
	ValueFilterComparatorEb ValueFilterComparator = "eb"
	ValueFilterComparatorAp ValueFilterComparator = "ap"
)

type ValueSet

type ValueSet struct {
	ResourceType           string             `json:"resourceType" bson:"resource_type"`                                          // Type of resource
	Id                     *string            `json:"id,omitempty" bson:"id,omitempty"`                                           // Logical id of this artifact
	Meta                   *Meta              `json:"meta,omitempty" bson:"meta,omitempty"`                                       // Metadata about the resource
	ImplicitRules          *string            `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`                    // A set of rules under which this content was created
	Language               *string            `json:"language,omitempty" bson:"language,omitempty"`                               // Language of the resource content
	Text                   *Narrative         `json:"text,omitempty" bson:"text,omitempty"`                                       // Text summary of the resource, for human interpretation
	Contained              []json.RawMessage  `json:"contained,omitempty" bson:"contained,omitempty"`                             // Contained, inline Resources
	Url                    *string            `json:"url,omitempty" bson:"url,omitempty"`                                         // Canonical identifier for this value set, represented as a URI (globally unique)
	Identifier             []Identifier       `json:"identifier,omitempty" bson:"identifier,omitempty"`                           // Additional identifier for the value set (business identifier)
	Version                *string            `json:"version,omitempty" bson:"version,omitempty"`                                 // Business version of the value set
	VersionAlgorithmString *string            `json:"versionAlgorithmString,omitempty" bson:"version_algorithm_string,omitempty"` // How to compare versions
	VersionAlgorithmCoding *Coding            `json:"versionAlgorithmCoding,omitempty" bson:"version_algorithm_coding,omitempty"` // How to compare versions
	Name                   *string            `json:"name,omitempty" bson:"name,omitempty"`                                       // Name for this value set (computer friendly)
	Title                  *string            `json:"title,omitempty" bson:"title,omitempty"`                                     // Name for this value set (human friendly)
	Status                 string             `json:"status" bson:"status"`                                                       // draft | active | retired | unknown
	Experimental           *bool              `json:"experimental,omitempty" bson:"experimental,omitempty"`                       // For testing only - never for real usage
	Date                   *string            `json:"date,omitempty" bson:"date,omitempty"`                                       // Date last changed
	Publisher              *string            `json:"publisher,omitempty" bson:"publisher,omitempty"`                             // Name of the publisher/steward (organization or individual)
	Contact                []ContactDetail    `json:"contact,omitempty" bson:"contact,omitempty"`                                 // Contact details for the publisher
	Description            *string            `json:"description,omitempty" bson:"description,omitempty"`                         // Natural language description of the value set
	UseContext             []UsageContext     `json:"useContext,omitempty" bson:"use_context,omitempty"`                          // The context that the content is intended to support
	Jurisdiction           []CodeableConcept  `json:"jurisdiction,omitempty" bson:"jurisdiction,omitempty"`                       // Jurisdiction of the authority that maintains the  value set (if applicable)
	Immutable              *bool              `json:"immutable,omitempty" bson:"immutable,omitempty"`                             // Indicates whether or not any change to the content logical definition may occur
	Purpose                *string            `json:"purpose,omitempty" bson:"purpose,omitempty"`                                 // Why this value set is defined
	Copyright              *string            `json:"copyright,omitempty" bson:"copyright,omitempty"`                             // Notice about intellectual property ownership, can include restrictions on use
	CopyrightLabel         *string            `json:"copyrightLabel,omitempty" bson:"copyright_label,omitempty"`                  // Copyright holder and year(s)
	ApprovalDate           *string            `json:"approvalDate,omitempty" bson:"approval_date,omitempty"`                      // When the ValueSet was approved by publisher
	LastReviewDate         *string            `json:"lastReviewDate,omitempty" bson:"last_review_date,omitempty"`                 // When the ValueSet was last reviewed by the publisher
	EffectivePeriod        *Period            `json:"effectivePeriod,omitempty" bson:"effective_period,omitempty"`                // When the ValueSet is expected to be used
	Topic                  []CodeableConcept  `json:"topic,omitempty" bson:"topic,omitempty"`                                     // E.g. Education, Treatment, Assessment, etc
	Author                 []ContactDetail    `json:"author,omitempty" bson:"author,omitempty"`                                   // Who authored the ValueSet
	Editor                 []ContactDetail    `json:"editor,omitempty" bson:"editor,omitempty"`                                   // Who edited the ValueSet
	Reviewer               []ContactDetail    `json:"reviewer,omitempty" bson:"reviewer,omitempty"`                               // Who reviewed the ValueSet
	Endorser               []ContactDetail    `json:"endorser,omitempty" bson:"endorser,omitempty"`                               // Who endorsed the ValueSet
	RelatedArtifact        []RelatedArtifact  `json:"relatedArtifact,omitempty" bson:"related_artifact,omitempty"`                // Additional documentation, citations, etc
	Compose                *ValueSetCompose   `json:"compose,omitempty" bson:"compose,omitempty"`                                 // Content logical definition of the value set (CLD)
	Expansion              *ValueSetExpansion `json:"expansion,omitempty" bson:"expansion,omitempty"`                             // Used when the value set is "expanded"
}

A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [[CodeSystem]] definitions and their use in [coded elements](terminologies.html).

func (*ValueSet) Validate

func (r *ValueSet) Validate() error

type ValueSetCompose

type ValueSetCompose struct {
	Id         *string                  `json:"id,omitempty" bson:"id,omitempty"`                  // Unique id for inter-element referencing
	LockedDate *string                  `json:"lockedDate,omitempty" bson:"locked_date,omitempty"` // Fixed date for references with no specified version (transitive)
	Inactive   *bool                    `json:"inactive,omitempty" bson:"inactive,omitempty"`      // Whether inactive codes are in the value set
	Include    []ValueSetComposeInclude `json:"include" bson:"include"`                            // Include one or more codes from a code system or other value set(s)
	Exclude    []ValueSetComposeInclude `json:"exclude,omitempty" bson:"exclude,omitempty"`        // Explicitly exclude codes from a code system or other value sets
	Property   []string                 `json:"property,omitempty" bson:"property,omitempty"`      // Property to return if client doesn't override
}

func (*ValueSetCompose) Validate

func (r *ValueSetCompose) Validate() error

type ValueSetComposeInclude

type ValueSetComposeInclude struct {
	Id        *string                         `json:"id,omitempty" bson:"id,omitempty"`               // Unique id for inter-element referencing
	System    *string                         `json:"system,omitempty" bson:"system,omitempty"`       // The system the codes come from
	Version   *string                         `json:"version,omitempty" bson:"version,omitempty"`     // Specific version of the code system referred to
	Concept   []ValueSetComposeIncludeConcept `json:"concept,omitempty" bson:"concept,omitempty"`     // A concept defined in the system
	Filter    []ValueSetComposeIncludeFilter  `json:"filter,omitempty" bson:"filter,omitempty"`       // Select codes/concepts by their properties (including relationships)
	ValueSet  []string                        `json:"valueSet,omitempty" bson:"value_set,omitempty"`  // Select the contents included in this value set
	Copyright *string                         `json:"copyright,omitempty" bson:"copyright,omitempty"` // A copyright statement for the specific code system included in the value set
}

func (*ValueSetComposeInclude) Validate

func (r *ValueSetComposeInclude) Validate() error

type ValueSetComposeIncludeConcept

type ValueSetComposeIncludeConcept struct {
	Id          *string                                    `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	Code        string                                     `json:"code" bson:"code"`                                   // Code or expression from system
	Display     *string                                    `json:"display,omitempty" bson:"display,omitempty"`         // Text to display for this code for this value set in this valueset
	Designation []ValueSetComposeIncludeConceptDesignation `json:"designation,omitempty" bson:"designation,omitempty"` // Additional representations for this concept
}

func (*ValueSetComposeIncludeConcept) Validate

func (r *ValueSetComposeIncludeConcept) Validate() error

type ValueSetComposeIncludeConceptDesignation

type ValueSetComposeIncludeConceptDesignation struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`                        // Unique id for inter-element referencing
	Language      *string  `json:"language,omitempty" bson:"language,omitempty"`            // Human language of the designation
	Use           *Coding  `json:"use,omitempty" bson:"use,omitempty"`                      // Types of uses of designations
	AdditionalUse []Coding `json:"additionalUse,omitempty" bson:"additional_use,omitempty"` // Additional ways how this designation would be used
	Value         string   `json:"value" bson:"value"`                                      // The text value for this designation
}

func (*ValueSetComposeIncludeConceptDesignation) Validate

type ValueSetComposeIncludeFilter

type ValueSetComposeIncludeFilter struct {
	Id       *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Property string  `json:"property" bson:"property"`         // A property/filter defined by the code system
	Op       string  `json:"op" bson:"op"`                     // = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | child-of | descendent-leaf | exists
	Value    string  `json:"value" bson:"value"`               // Code from the system, or regex criteria, or boolean value for exists
}

func (*ValueSetComposeIncludeFilter) Validate

func (r *ValueSetComposeIncludeFilter) Validate() error

type ValueSetExpansion

type ValueSetExpansion struct {
	Id         *string                      `json:"id,omitempty" bson:"id,omitempty"`                 // Unique id for inter-element referencing
	Identifier *string                      `json:"identifier,omitempty" bson:"identifier,omitempty"` // Identifies the value set expansion (business identifier)
	Next       *string                      `json:"next,omitempty" bson:"next,omitempty"`             // Opaque urls for paging through expansion results
	Timestamp  string                       `json:"timestamp" bson:"timestamp"`                       // Time ValueSet expansion happened
	Total      *int                         `json:"total,omitempty" bson:"total,omitempty"`           // Total number of codes in the expansion
	Offset     *int                         `json:"offset,omitempty" bson:"offset,omitempty"`         // Offset at which this resource starts
	Parameter  []ValueSetExpansionParameter `json:"parameter,omitempty" bson:"parameter,omitempty"`   // Parameter that controlled the expansion process
	Property   []ValueSetExpansionProperty  `json:"property,omitempty" bson:"property,omitempty"`     // Additional information supplied about each concept
	Contains   []ValueSetExpansionContains  `json:"contains,omitempty" bson:"contains,omitempty"`     // Codes in the value set
}

func (*ValueSetExpansion) Validate

func (r *ValueSetExpansion) Validate() error

type ValueSetExpansionContains

type ValueSetExpansionContains struct {
	Id          *string                                    `json:"id,omitempty" bson:"id,omitempty"`                   // Unique id for inter-element referencing
	System      *string                                    `json:"system,omitempty" bson:"system,omitempty"`           // System value for the code
	Abstract    *bool                                      `json:"abstract,omitempty" bson:"abstract,omitempty"`       // If user cannot select this entry
	Inactive    *bool                                      `json:"inactive,omitempty" bson:"inactive,omitempty"`       // If concept is inactive in the code system
	Version     *string                                    `json:"version,omitempty" bson:"version,omitempty"`         // Version in which this code/display is defined
	Code        *string                                    `json:"code,omitempty" bson:"code,omitempty"`               // Code - if blank, this is not a selectable code
	Display     *string                                    `json:"display,omitempty" bson:"display,omitempty"`         // User display for the concept
	Designation []ValueSetComposeIncludeConceptDesignation `json:"designation,omitempty" bson:"designation,omitempty"` // Additional representations for this item
	Property    []ValueSetExpansionContainsProperty        `json:"property,omitempty" bson:"property,omitempty"`       // Property value for the concept
	Contains    []ValueSetExpansionContains                `json:"contains,omitempty" bson:"contains,omitempty"`       // Codes contained under this entry
}

func (*ValueSetExpansionContains) Validate

func (r *ValueSetExpansionContains) Validate() error

type ValueSetExpansionContainsProperty

type ValueSetExpansionContainsProperty struct {
	Id            *string                                        `json:"id,omitempty" bson:"id,omitempty"`                    // Unique id for inter-element referencing
	Code          string                                         `json:"code" bson:"code"`                                    // Reference to ValueSet.expansion.property.code
	ValueCode     *string                                        `json:"valueCode" bson:"value_code"`                         // Value of the property for this concept
	ValueCoding   *Coding                                        `json:"valueCoding" bson:"value_coding"`                     // Value of the property for this concept
	ValueString   *string                                        `json:"valueString" bson:"value_string"`                     // Value of the property for this concept
	ValueInteger  *int                                           `json:"valueInteger" bson:"value_integer"`                   // Value of the property for this concept
	ValueBoolean  *bool                                          `json:"valueBoolean" bson:"value_boolean"`                   // Value of the property for this concept
	ValueDateTime *string                                        `json:"valueDateTime" bson:"value_date_time"`                // Value of the property for this concept
	ValueDecimal  *float64                                       `json:"valueDecimal" bson:"value_decimal"`                   // Value of the property for this concept
	SubProperty   []ValueSetExpansionContainsPropertySubProperty `json:"subProperty,omitempty" bson:"sub_property,omitempty"` // SubProperty value for the concept
}

func (*ValueSetExpansionContainsProperty) Validate

type ValueSetExpansionContainsPropertySubProperty

type ValueSetExpansionContainsPropertySubProperty struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`     // Unique id for inter-element referencing
	Code          string   `json:"code" bson:"code"`                     // Reference to ValueSet.expansion.property.code
	ValueCode     *string  `json:"valueCode" bson:"value_code"`          // Value of the subproperty for this concept
	ValueCoding   *Coding  `json:"valueCoding" bson:"value_coding"`      // Value of the subproperty for this concept
	ValueString   *string  `json:"valueString" bson:"value_string"`      // Value of the subproperty for this concept
	ValueInteger  *int     `json:"valueInteger" bson:"value_integer"`    // Value of the subproperty for this concept
	ValueBoolean  *bool    `json:"valueBoolean" bson:"value_boolean"`    // Value of the subproperty for this concept
	ValueDateTime *string  `json:"valueDateTime" bson:"value_date_time"` // Value of the subproperty for this concept
	ValueDecimal  *float64 `json:"valueDecimal" bson:"value_decimal"`    // Value of the subproperty for this concept
}

func (*ValueSetExpansionContainsPropertySubProperty) Validate

type ValueSetExpansionParameter

type ValueSetExpansionParameter struct {
	Id            *string  `json:"id,omitempty" bson:"id,omitempty"`                         // Unique id for inter-element referencing
	Name          string   `json:"name" bson:"name"`                                         // Name as assigned by the client or server
	ValueString   *string  `json:"valueString,omitempty" bson:"value_string,omitempty"`      // Value of the named parameter
	ValueBoolean  *bool    `json:"valueBoolean,omitempty" bson:"value_boolean,omitempty"`    // Value of the named parameter
	ValueInteger  *int     `json:"valueInteger,omitempty" bson:"value_integer,omitempty"`    // Value of the named parameter
	ValueDecimal  *float64 `json:"valueDecimal,omitempty" bson:"value_decimal,omitempty"`    // Value of the named parameter
	ValueUri      *string  `json:"valueUri,omitempty" bson:"value_uri,omitempty"`            // Value of the named parameter
	ValueCode     *string  `json:"valueCode,omitempty" bson:"value_code,omitempty"`          // Value of the named parameter
	ValueDateTime *string  `json:"valueDateTime,omitempty" bson:"value_date_time,omitempty"` // Value of the named parameter
}

func (*ValueSetExpansionParameter) Validate

func (r *ValueSetExpansionParameter) Validate() error

type ValueSetExpansionProperty

type ValueSetExpansionProperty struct {
	Id   *string `json:"id,omitempty" bson:"id,omitempty"`   // Unique id for inter-element referencing
	Code string  `json:"code" bson:"code"`                   // Identifies the property on the concepts, and when referred to in operations
	Uri  *string `json:"uri,omitempty" bson:"uri,omitempty"` // Formal identifier for the property
}

func (*ValueSetExpansionProperty) Validate

func (r *ValueSetExpansionProperty) Validate() error

type VersionIndependentResourceTypesAll added in v0.0.3

type VersionIndependentResourceTypesAll string

VersionIndependentResourceTypesAll represents codes from http://hl7.org/fhir/ValueSet/version-independent-all-resource-types

const (
	VersionIndependentResourceTypesAllBodySite                          VersionIndependentResourceTypesAll = "BodySite"
	VersionIndependentResourceTypesAllCatalogEntry                      VersionIndependentResourceTypesAll = "CatalogEntry"
	VersionIndependentResourceTypesAllConformance                       VersionIndependentResourceTypesAll = "Conformance"
	VersionIndependentResourceTypesAllDataElement                       VersionIndependentResourceTypesAll = "DataElement"
	VersionIndependentResourceTypesAllDeviceComponent                   VersionIndependentResourceTypesAll = "DeviceComponent"
	VersionIndependentResourceTypesAllDeviceUseRequest                  VersionIndependentResourceTypesAll = "DeviceUseRequest"
	VersionIndependentResourceTypesAllDeviceUseStatement                VersionIndependentResourceTypesAll = "DeviceUseStatement"
	VersionIndependentResourceTypesAllDiagnosticOrder                   VersionIndependentResourceTypesAll = "DiagnosticOrder"
	VersionIndependentResourceTypesAllDocumentManifest                  VersionIndependentResourceTypesAll = "DocumentManifest"
	VersionIndependentResourceTypesAllEffectEvidenceSynthesis           VersionIndependentResourceTypesAll = "EffectEvidenceSynthesis"
	VersionIndependentResourceTypesAllEligibilityRequest                VersionIndependentResourceTypesAll = "EligibilityRequest"
	VersionIndependentResourceTypesAllEligibilityResponse               VersionIndependentResourceTypesAll = "EligibilityResponse"
	VersionIndependentResourceTypesAllExpansionProfile                  VersionIndependentResourceTypesAll = "ExpansionProfile"
	VersionIndependentResourceTypesAllImagingManifest                   VersionIndependentResourceTypesAll = "ImagingManifest"
	VersionIndependentResourceTypesAllImagingObjectSelection            VersionIndependentResourceTypesAll = "ImagingObjectSelection"
	VersionIndependentResourceTypesAllMedia                             VersionIndependentResourceTypesAll = "Media"
	VersionIndependentResourceTypesAllMedicationOrder                   VersionIndependentResourceTypesAll = "MedicationOrder"
	VersionIndependentResourceTypesAllMedicationUsage                   VersionIndependentResourceTypesAll = "MedicationUsage"
	VersionIndependentResourceTypesAllMedicinalProduct                  VersionIndependentResourceTypesAll = "MedicinalProduct"
	VersionIndependentResourceTypesAllMedicinalProductAuthorization     VersionIndependentResourceTypesAll = "MedicinalProductAuthorization"
	VersionIndependentResourceTypesAllMedicinalProductContraindication  VersionIndependentResourceTypesAll = "MedicinalProductContraindication"
	VersionIndependentResourceTypesAllMedicinalProductIndication        VersionIndependentResourceTypesAll = "MedicinalProductIndication"
	VersionIndependentResourceTypesAllMedicinalProductIngredient        VersionIndependentResourceTypesAll = "MedicinalProductIngredient"
	VersionIndependentResourceTypesAllMedicinalProductInteraction       VersionIndependentResourceTypesAll = "MedicinalProductInteraction"
	VersionIndependentResourceTypesAllMedicinalProductManufactured      VersionIndependentResourceTypesAll = "MedicinalProductManufactured"
	VersionIndependentResourceTypesAllMedicinalProductPackaged          VersionIndependentResourceTypesAll = "MedicinalProductPackaged"
	VersionIndependentResourceTypesAllMedicinalProductPharmaceutical    VersionIndependentResourceTypesAll = "MedicinalProductPharmaceutical"
	VersionIndependentResourceTypesAllMedicinalProductUndesirableEffect VersionIndependentResourceTypesAll = "MedicinalProductUndesirableEffect"
	VersionIndependentResourceTypesAllOrder                             VersionIndependentResourceTypesAll = "Order"
	VersionIndependentResourceTypesAllOrderResponse                     VersionIndependentResourceTypesAll = "OrderResponse"
	VersionIndependentResourceTypesAllProcedureRequest                  VersionIndependentResourceTypesAll = "ProcedureRequest"
	VersionIndependentResourceTypesAllProcessRequest                    VersionIndependentResourceTypesAll = "ProcessRequest"
	VersionIndependentResourceTypesAllProcessResponse                   VersionIndependentResourceTypesAll = "ProcessResponse"
	VersionIndependentResourceTypesAllReferralRequest                   VersionIndependentResourceTypesAll = "ReferralRequest"
	VersionIndependentResourceTypesAllRequestGroup                      VersionIndependentResourceTypesAll = "RequestGroup"
	VersionIndependentResourceTypesAllResearchDefinition                VersionIndependentResourceTypesAll = "ResearchDefinition"
	VersionIndependentResourceTypesAllResearchElementDefinition         VersionIndependentResourceTypesAll = "ResearchElementDefinition"
	VersionIndependentResourceTypesAllRiskEvidenceSynthesis             VersionIndependentResourceTypesAll = "RiskEvidenceSynthesis"
	VersionIndependentResourceTypesAllSequence                          VersionIndependentResourceTypesAll = "Sequence"
	VersionIndependentResourceTypesAllServiceDefinition                 VersionIndependentResourceTypesAll = "ServiceDefinition"
	VersionIndependentResourceTypesAllSubstanceSpecification            VersionIndependentResourceTypesAll = "SubstanceSpecification"
)

type Versions

type Versions struct {
}

Using the [FHIR Version Mime Type Parameter](http.html#version-parameter), a server can support [multiple versions on the same end-point](versioning.html#mt-version). The only way for client to find out what versions a server supports in this fashion is the $versions operation. The client invokes the operation with no parameters. and the server returns the list of supported versions, along with the default version it will use if no fhirVersion parameter is present

func (*Versions) Validate

func (r *Versions) Validate() error

type VirtualServiceDetail

type VirtualServiceDetail struct {
	Id                           *string                `json:"id,omitempty" bson:"id,omitempty"`                                                        // Unique id for inter-element referencing
	ChannelType                  *Coding                `json:"channelType,omitempty" bson:"channel_type,omitempty"`                                     // Channel Type
	AddressUrl                   *string                `json:"addressUrl,omitempty" bson:"address_url,omitempty"`                                       // Contact address/number
	AddressString                *string                `json:"addressString,omitempty" bson:"address_string,omitempty"`                                 // Contact address/number
	AddressContactPoint          *ContactPoint          `json:"addressContactPoint,omitempty" bson:"address_contact_point,omitempty"`                    // Contact address/number
	AddressExtendedContactDetail *ExtendedContactDetail `json:"addressExtendedContactDetail,omitempty" bson:"address_extended_contact_detail,omitempty"` // Contact address/number
	AdditionalInfo               []string               `json:"additionalInfo,omitempty" bson:"additional_info,omitempty"`                               // Web address to see alternative connection details
	MaxParticipants              *int                   `json:"maxParticipants,omitempty" bson:"max_participants,omitempty"`                             // Maximum number of participants supported by the virtual service
	SessionKey                   *string                `json:"sessionKey,omitempty" bson:"session_key,omitempty"`                                       // Session Key required by the virtual service
}

VirtualServiceDetail Type: The set of values required to describe a virtual service's connection details, including some limitations of the service.

func (*VirtualServiceDetail) Validate

func (r *VirtualServiceDetail) Validate() error

type VisionBase added in v0.0.3

type VisionBase string

VisionBase represents codes from http://hl7.org/fhir/ValueSet/vision-base-codes

const (
	VisionBaseUp   VisionBase = "up"
	VisionBaseDown VisionBase = "down"
	VisionBaseIn   VisionBase = "in"
	VisionBaseOut  VisionBase = "out"
)

type VisionEyes added in v0.0.3

type VisionEyes string

VisionEyes represents codes from http://hl7.org/fhir/ValueSet/vision-eye-codes

const (
	VisionEyesRight VisionEyes = "right"
	VisionEyesLeft  VisionEyes = "left"
)

type VisionPrescription

type VisionPrescription struct {
	ResourceType      string                                `json:"resourceType" bson:"resource_type"`                           // Type of resource
	Id                *string                               `json:"id,omitempty" bson:"id,omitempty"`                            // Logical id of this artifact
	Meta              *Meta                                 `json:"meta,omitempty" bson:"meta,omitempty"`                        // Metadata about the resource
	ImplicitRules     *string                               `json:"implicitRules,omitempty" bson:"implicit_rules,omitempty"`     // A set of rules under which this content was created
	Language          *string                               `json:"language,omitempty" bson:"language,omitempty"`                // Language of the resource content
	Text              *Narrative                            `json:"text,omitempty" bson:"text,omitempty"`                        // Text summary of the resource, for human interpretation
	Contained         []json.RawMessage                     `json:"contained,omitempty" bson:"contained,omitempty"`              // Contained, inline Resources
	Identifier        []Identifier                          `json:"identifier,omitempty" bson:"identifier,omitempty"`            // Business Identifier for vision prescription
	BasedOn           []Reference                           `json:"basedOn,omitempty" bson:"based_on,omitempty"`                 // What prescription fulfills
	GroupIdentifier   *Identifier                           `json:"groupIdentifier,omitempty" bson:"group_identifier,omitempty"` // Composite request identifier
	Status            string                                `json:"status" bson:"status"`                                        // active | cancelled | draft | entered-in-error
	Priority          *string                               `json:"priority,omitempty" bson:"priority,omitempty"`                // routine | urgent | asap | stat
	Created           string                                `json:"created" bson:"created"`                                      // Response creation date
	Patient           *Reference                            `json:"patient" bson:"patient"`                                      // Who prescription is for
	Encounter         *Reference                            `json:"encounter,omitempty" bson:"encounter,omitempty"`              // Created during encounter / admission / stay
	DateWritten       string                                `json:"dateWritten" bson:"date_written"`                             // When prescription was authorized
	Prescriber        *Reference                            `json:"prescriber" bson:"prescriber"`                                // Who authorized the vision prescription
	LensSpecification []VisionPrescriptionLensSpecification `json:"lensSpecification" bson:"lens_specification"`                 // Vision lens authorization
}

An authorization for the provision of glasses and/or contact lenses to a patient.

func (*VisionPrescription) Validate

func (r *VisionPrescription) Validate() error

type VisionPrescriptionLensSpecification

type VisionPrescriptionLensSpecification struct {
	Id        *string                                    `json:"id,omitempty" bson:"id,omitempty"`                // Unique id for inter-element referencing
	Product   *CodeableConcept                           `json:"product" bson:"product"`                          // Product to be supplied
	Eye       string                                     `json:"eye" bson:"eye"`                                  // right | left
	Sphere    *float64                                   `json:"sphere,omitempty" bson:"sphere,omitempty"`        // Power of the lens
	Cylinder  *float64                                   `json:"cylinder,omitempty" bson:"cylinder,omitempty"`    // Lens power for astigmatism
	Axis      *int                                       `json:"axis,omitempty" bson:"axis,omitempty"`            // Lens meridian which contain no power for astigmatism
	Prism     []VisionPrescriptionLensSpecificationPrism `json:"prism,omitempty" bson:"prism,omitempty"`          // Eye alignment compensation
	Add       *float64                                   `json:"add,omitempty" bson:"add,omitempty"`              // Added power for multifocal levels
	Power     *float64                                   `json:"power,omitempty" bson:"power,omitempty"`          // Contact lens power
	BackCurve *float64                                   `json:"backCurve,omitempty" bson:"back_curve,omitempty"` // Contact lens back curvature
	Diameter  *float64                                   `json:"diameter,omitempty" bson:"diameter,omitempty"`    // Contact lens diameter
	Duration  *Quantity                                  `json:"duration,omitempty" bson:"duration,omitempty"`    // Lens wear duration
	Color     *string                                    `json:"color,omitempty" bson:"color,omitempty"`          // Color required
	Brand     *string                                    `json:"brand,omitempty" bson:"brand,omitempty"`          // Brand required
	Note      []Annotation                               `json:"note,omitempty" bson:"note,omitempty"`            // Notes for coatings
}

func (*VisionPrescriptionLensSpecification) Validate

type VisionPrescriptionLensSpecificationPrism

type VisionPrescriptionLensSpecificationPrism struct {
	Id     *string `json:"id,omitempty" bson:"id,omitempty"` // Unique id for inter-element referencing
	Amount float64 `json:"amount" bson:"amount"`             // Amount of adjustment
	Base   string  `json:"base" bson:"base"`                 // up | down | in | out
}

func (*VisionPrescriptionLensSpecificationPrism) Validate

type WeekOfMonth added in v0.0.3

type WeekOfMonth string

WeekOfMonth represents codes from http://hl7.org/fhir/ValueSet/week-of-month

const (
	WeekOfMonthFirst  WeekOfMonth = "first"
	WeekOfMonthSecond WeekOfMonth = "second"
	WeekOfMonthThird  WeekOfMonth = "third"
	WeekOfMonthFourth WeekOfMonth = "fourth"
	WeekOfMonthLast   WeekOfMonth = "last"
)

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL