basic

package
v0.0.0-...-692df37 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package basic provides basic resources that are valid across FHIR versions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Address

type Address struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The purpose of this address.
	Use *Code
	// Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.
	Type *Code
	// Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.
	Text *String
	// This component contains the house number, apartment number, street name, street direction,  P.O. Box number, delivery hints, and similar address information.
	Line []String
	// The name of the city, town, suburb, village or other community or delivery center.
	City *String
	// The name of the administrative area (county).
	District *String
	// Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).
	State *String
	// A postal code designating a region defined by the postal service.
	PostalCode *String
	// Country - a nation as commonly understood or generally accepted.
	Country *String
	// Time period when address was/is in use.
	Period *Period
}

Base StructureDefinition for 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.

Need to be able to record postal addresses, along with notes about their use.

func (Address) MarshalJSON

func (r Address) MarshalJSON() ([]byte, error)

func (Address) MarshalXML

func (r Address) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Address) MemSize

func (r Address) MemSize() int

func (Address) String

func (r Address) String() string

type Age

type Age struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
	Comparator *Code
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

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

func (Age) MarshalJSON

func (r Age) MarshalJSON() ([]byte, error)

func (Age) MarshalXML

func (r Age) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Age) MemSize

func (r Age) MemSize() int

func (Age) String

func (r Age) String() string

type Annotation

type Annotation struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The individual responsible for making the annotation.
	Author isAnnotationAuthor
	// Indicates when this particular annotation was made.
	Time *DateTime
	// The text of the annotation in markdown format.
	Text Markdown
}

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

func (Annotation) MarshalJSON

func (r Annotation) MarshalJSON() ([]byte, error)

func (Annotation) MarshalXML

func (r Annotation) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Annotation) MemSize

func (r Annotation) MemSize() int

func (Annotation) String

func (r Annotation) String() string

type Attachment

type Attachment struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.
	ContentType *Code
	// The human language of the content. The value can be any valid value according to BCP 47.
	Language *Code
	// The actual data of the attachment - a sequence of bytes, base64 encoded.
	Data *Base64Binary
	// A location where the data can be accessed.
	Url *Url
	// The number of bytes of data that make up this attachment (before base64 encoding, if that is done).
	Size *UnsignedInt
	// The calculated hash of the data using SHA-1. Represented using base64.
	Hash *Base64Binary
	// A label or set of text to display in place of the data.
	Title *String
	// The date that the attachment was first created.
	Creation *DateTime
}

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

Many models need to include data defined in other specifications that is complex and opaque to the healthcare model. This includes documents, media recordings, structured data, etc.

func (Attachment) MarshalJSON

func (r Attachment) MarshalJSON() ([]byte, error)

func (Attachment) MarshalXML

func (r Attachment) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Attachment) MemSize

func (r Attachment) MemSize() int

func (Attachment) String

func (r Attachment) String() string

type Base64Binary

type Base64Binary struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

Base StructureDefinition for base64Binary Type: A stream of bytes

func (Base64Binary) MarshalJSON

func (r Base64Binary) MarshalJSON() ([]byte, error)

func (Base64Binary) MarshalXML

func (r Base64Binary) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Base64Binary) MemSize

func (r Base64Binary) MemSize() int

type Boolean

type Boolean struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *bool
}

Base StructureDefinition for boolean Type: Value of "true" or "false"

func (Boolean) MarshalJSON

func (r Boolean) MarshalJSON() ([]byte, error)

func (Boolean) MarshalXML

func (r Boolean) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Boolean) MemSize

func (r Boolean) MemSize() int

type Bundle

type Bundle struct {
	// The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
	Id *Id
	// The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
	Meta *Meta
	// A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
	ImplicitRules *Uri
	// The base language in which the resource is written.
	Language *Code
	// A persistent identifier for the bundle that won't change as a bundle is copied from server to server.
	Identifier *Identifier
	// Indicates the purpose of this bundle - how it is intended to be used.
	Type Code
	// The date/time that the bundle was assembled - i.e. when the resources were placed in the bundle.
	Timestamp *Instant
	// If a set of search matches, this is the total number of entries of type 'match' across all pages in the search.  It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle.
	Total *UnsignedInt
	// A series of links that provide context to this bundle.
	Link []BundleLink
	// An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).
	Entry []BundleEntry
	// Digital Signature - base64 encoded. XML-DSig or a JWT.
	Signature *Signature
}

A container for a collection of resources.

func (Bundle) MarshalJSON

func (r Bundle) MarshalJSON() ([]byte, error)

func (Bundle) MarshalXML

func (r Bundle) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Bundle) MemSize

func (r Bundle) MemSize() int

func (Bundle) ResourceId

func (r Bundle) ResourceId() (string, bool)

func (Bundle) ResourceType

func (r Bundle) ResourceType() string

func (Bundle) String

func (r Bundle) String() string

type BundleEntry

type BundleEntry struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// A series of links that provide context to this entry.
	Link []BundleLink
	// The Absolute URL for the resource.  The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
	// * fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
	// * Results from operations might involve resources that are not identified.
	FullUrl *Uri
	// The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.
	Resource model.Resource
	// Information about the search process that lead to the creation of this entry.
	Search *BundleEntrySearch
	// Additional information about how this entry should be processed as part of a transaction or batch.  For history, it shows how the entry was processed to create the version contained in the entry.
	Request *BundleEntryRequest
	// Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.
	Response *BundleEntryResponse
}

An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).

func (BundleEntry) MarshalJSON

func (r BundleEntry) MarshalJSON() ([]byte, error)

func (BundleEntry) MarshalXML

func (r BundleEntry) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (BundleEntry) MemSize

func (r BundleEntry) MemSize() int

type BundleEntryRequest

type BundleEntryRequest struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred.
	Method Code
	// The URL for this entry, relative to the root (the address to which the request is posted).
	Url Uri
	// If the ETag values match, return a 304 Not Modified status. See the API documentation for ["Conditional Read"](http.html#cread).
	IfNoneMatch *String
	// Only perform the operation if the last updated date matches. See the API documentation for ["Conditional Read"](http.html#cread).
	IfModifiedSince *Instant
	// Only perform the operation if the Etag value matches. For more information, see the API section ["Managing Resource Contention"](http.html#concurrency).
	IfMatch *String
	// Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for ["Conditional Create"](http.html#ccreate). This is just the query portion of the URL - what follows the "?" (not including the "?").
	IfNoneExist *String
}

Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.

func (BundleEntryRequest) MarshalJSON

func (r BundleEntryRequest) MarshalJSON() ([]byte, error)

func (BundleEntryRequest) MarshalXML

func (r BundleEntryRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (BundleEntryRequest) MemSize

func (r BundleEntryRequest) MemSize() int

type BundleEntryResponse

type BundleEntryResponse struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.
	Status String
	// The location header created by processing this operation, populated if the operation returns a location.
	Location *Uri
	// The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).
	Etag *String
	// The date/time that the resource was modified on the server.
	LastModified *Instant
	// An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.
	Outcome model.Resource
}

Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.

func (BundleEntryResponse) MarshalJSON

func (r BundleEntryResponse) MarshalJSON() ([]byte, error)

func (BundleEntryResponse) MarshalXML

func (r BundleEntryResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (BundleEntryResponse) MemSize

func (r BundleEntryResponse) MemSize() int

type BundleEntrySearch

type BundleEntrySearch struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.
	Mode *Code
	// When searching, the server's search ranking score for the entry.
	Score *Decimal
}

Information about the search process that lead to the creation of this entry.

func (BundleEntrySearch) MarshalJSON

func (r BundleEntrySearch) MarshalJSON() ([]byte, error)

func (BundleEntrySearch) MarshalXML

func (r BundleEntrySearch) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (BundleEntrySearch) MemSize

func (r BundleEntrySearch) MemSize() int
type BundleLink struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1).
	Relation String
	// The reference details for the link.
	Url Uri
}

A series of links that provide context to this bundle.

func (BundleLink) MarshalJSON

func (r BundleLink) MarshalJSON() ([]byte, error)

func (BundleLink) MarshalXML

func (r BundleLink) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (BundleLink) MemSize

func (r BundleLink) MemSize() int

type Canonical

type Canonical struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for canonical
	Value *string
}

Base StructureDefinition for canonical type: A URI that is a reference to a canonical URL on a FHIR resource

func (Canonical) MarshalJSON

func (r Canonical) MarshalJSON() ([]byte, error)

func (Canonical) MarshalXML

func (r Canonical) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Canonical) MemSize

func (r Canonical) MemSize() int

type CapabilityStatement

type CapabilityStatement struct {
	// The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
	Id *Id
	// The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
	Meta *Meta
	// A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
	ImplicitRules *Uri
	// The base language in which the resource is written.
	Language *Code
	// A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
	Text *Narrative
	// These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
	Contained []model.Resource
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// An absolute URI that is used to identify this capability statement when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this capability statement is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the capability statement is stored on different servers.
	Url *Uri
	// The identifier that is used to identify this version of the capability statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the capability statement author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
	Version *String
	// A natural language name identifying the capability statement. This name should be usable as an identifier for the module by machine processing applications such as code generation.
	Name *String
	// A short, descriptive, user-friendly title for the capability statement.
	Title *String
	// The status of this capability statement. Enables tracking the life-cycle of the content.
	Status Code
	// A Boolean value to indicate that this capability statement is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
	Experimental *Boolean
	// The date  (and optionally time) when the capability statement was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the capability statement changes.
	Date DateTime
	// The name of the organization or individual that published the capability statement.
	Publisher *String
	// Contact details to assist a user in finding and communicating with the publisher.
	Contact []ContactDetail
	// A free text natural language description of the capability statement from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.
	Description *Markdown
	// The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate capability statement instances.
	UseContext []UsageContext
	// A legal or geographic region in which the capability statement is intended to be used.
	Jurisdiction []CodeableConcept
	// Explanation of why this capability statement is needed and why it has been designed as it has.
	Purpose *Markdown
	// A copyright statement relating to the capability statement and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the capability statement.
	Copyright *Markdown
	// The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).
	Kind Code
	// Reference to a canonical URL of another CapabilityStatement that this software implements. This capability statement is a published API description that corresponds to a business service. The server may actually implement a subset of the capability statement it claims to implement, so the capability statement must specify the full capability details.
	Instantiates []Canonical
	// Reference to a canonical URL of another CapabilityStatement that this software adds to. The capability statement automatically includes everything in the other statement, and it is not duplicated, though the server may repeat the same resources, interactions and operations to add additional details to them.
	Imports []Canonical
	// Software that is covered by this capability statement.  It is used when the capability statement describes the capabilities of a particular software version, independent of an installation.
	Software *CapabilityStatementSoftware
	// Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program.
	Implementation *CapabilityStatementImplementation
	// The version of the FHIR specification that this CapabilityStatement describes (which SHALL be the same as the FHIR version of the CapabilityStatement itself). There is no default value.
	FhirVersion Code
	// A list of the formats supported by this implementation using their content types.
	Format []Code
	// A list of the patch formats supported by this implementation using their content types.
	PatchFormat []Code
	// A list of implementation guides that the server does (or should) support in their entirety.
	ImplementationGuide []Canonical
	// A definition of the restful capabilities of the solution, if any.
	Rest []CapabilityStatementRest
	// A description of the messaging capabilities of the solution.
	Messaging []CapabilityStatementMessaging
	// A document definition.
	Document []CapabilityStatementDocument
}

A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server 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) MarshalJSON

func (r CapabilityStatement) MarshalJSON() ([]byte, error)

func (CapabilityStatement) MarshalXML

func (r CapabilityStatement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (CapabilityStatement) MemSize

func (r CapabilityStatement) MemSize() int

func (CapabilityStatement) ResourceId

func (r CapabilityStatement) ResourceId() (string, bool)

func (CapabilityStatement) ResourceType

func (r CapabilityStatement) ResourceType() string

func (CapabilityStatement) String

func (r CapabilityStatement) String() string

type CapabilityStatementDocument

type CapabilityStatementDocument struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Mode of this document declaration - whether an application is a producer or consumer.
	Mode Code
	// A description of how the application supports or uses the specified document profile.  For example, when documents are created, what action is taken with consumed documents, etc.
	Documentation *Markdown
	// A profile on the document Bundle that constrains which resources are present, and their contents.
	Profile Canonical
}

A document definition.

func (CapabilityStatementDocument) MarshalJSON

func (r CapabilityStatementDocument) MarshalJSON() ([]byte, error)

func (CapabilityStatementDocument) MarshalXML

func (r CapabilityStatementDocument) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (CapabilityStatementDocument) MemSize

func (r CapabilityStatementDocument) MemSize() int

type CapabilityStatementImplementation

type CapabilityStatementImplementation struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Information about the specific installation that this capability statement relates to.
	Description String
	// An absolute base URL for the implementation.  This forms the base for REST interfaces as well as the mailbox and document interfaces.
	Url *Url
	// The organization responsible for the management of the instance and oversight of the data on the server at the specified URL.
	Custodian *Reference
}

Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program.

func (CapabilityStatementImplementation) MarshalJSON

func (r CapabilityStatementImplementation) MarshalJSON() ([]byte, error)

func (CapabilityStatementImplementation) MarshalXML

func (CapabilityStatementImplementation) MemSize

type CapabilityStatementMessaging

type CapabilityStatementMessaging struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// An endpoint (network accessible address) to which messages and/or replies are to be sent.
	Endpoint []CapabilityStatementMessagingEndpoint
	// Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).
	ReliableCache *UnsignedInt
	// Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the capability statement.  For example, the process for becoming an authorized messaging exchange partner.
	Documentation *Markdown
	// References to message definitions for messages this system can send or receive.
	SupportedMessage []CapabilityStatementMessagingSupportedMessage
}

A description of the messaging capabilities of the solution.

func (CapabilityStatementMessaging) MarshalJSON

func (r CapabilityStatementMessaging) MarshalJSON() ([]byte, error)

func (CapabilityStatementMessaging) MarshalXML

func (CapabilityStatementMessaging) MemSize

func (r CapabilityStatementMessaging) MemSize() int

type CapabilityStatementMessagingEndpoint

type CapabilityStatementMessagingEndpoint struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// A list of the messaging transport protocol(s) identifiers, supported by this endpoint.
	Protocol Coding
	// The network address of the endpoint. For solutions that do not use network addresses for routing, it can be just an identifier.
	Address Url
}

An endpoint (network accessible address) to which messages and/or replies are to be sent.

func (CapabilityStatementMessagingEndpoint) MarshalJSON

func (r CapabilityStatementMessagingEndpoint) MarshalJSON() ([]byte, error)

func (CapabilityStatementMessagingEndpoint) MarshalXML

func (CapabilityStatementMessagingEndpoint) MemSize

type CapabilityStatementMessagingSupportedMessage

type CapabilityStatementMessagingSupportedMessage struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The mode of this event declaration - whether application is sender or receiver.
	Mode Code
	// Points to a message definition that identifies the messaging event, message structure, allowed responses, etc.
	Definition Canonical
}

References to message definitions for messages this system can send or receive.

func (CapabilityStatementMessagingSupportedMessage) MarshalJSON

func (CapabilityStatementMessagingSupportedMessage) MarshalXML

func (CapabilityStatementMessagingSupportedMessage) MemSize

type CapabilityStatementRest

type CapabilityStatementRest struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Identifies whether this portion of the statement is describing the ability to initiate or receive restful operations.
	Mode Code
	// Information about the system's restful capabilities that apply across all applications, such as security.
	Documentation *Markdown
	// Information about security implementation from an interface perspective - what a client needs to know.
	Security *CapabilityStatementRestSecurity
	// A specification of the restful capabilities of the solution for a specific resource type.
	Resource []CapabilityStatementRestResource
	// A specification of restful operations supported by the system.
	Interaction []CapabilityStatementRestInteraction
	// Search parameters that are supported for searching all resources for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.
	SearchParam []CapabilityStatementRestResourceSearchParam
	// Definition of an operation or a named query together with its parameters and their meaning and type.
	Operation []CapabilityStatementRestResourceOperation
	// An absolute URI which is a reference to the definition of a compartment that the system supports. The reference is to a CompartmentDefinition resource by its canonical URL .
	Compartment []Canonical
}

A definition of the restful capabilities of the solution, if any.

func (CapabilityStatementRest) MarshalJSON

func (r CapabilityStatementRest) MarshalJSON() ([]byte, error)

func (CapabilityStatementRest) MarshalXML

func (r CapabilityStatementRest) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (CapabilityStatementRest) MemSize

func (r CapabilityStatementRest) MemSize() int

type CapabilityStatementRestInteraction

type CapabilityStatementRestInteraction struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// A coded identifier of the operation, supported by the system.
	Code Code
	// Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.
	Documentation *Markdown
}

A specification of restful operations supported by the system.

func (CapabilityStatementRestInteraction) MarshalJSON

func (r CapabilityStatementRestInteraction) MarshalJSON() ([]byte, error)

func (CapabilityStatementRestInteraction) MarshalXML

func (CapabilityStatementRestInteraction) MemSize

type CapabilityStatementRestResource

type CapabilityStatementRestResource struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// A type of resource exposed via the restful interface.
	Type Code
	// A specification of the profile that describes the solution's overall support for the resource, including any constraints on cardinality, bindings, lengths or other limitations. See further discussion in [Using Profiles](profiling.html#profile-uses).
	Profile *Canonical
	// A list of profiles that represent different use cases supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources that are conformant to a particular profile, and allows clients that use its services to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile. See further discussion in [Using Profiles](profiling.html#profile-uses).
	SupportedProfile []Canonical
	// Additional information about the resource type used by the system.
	Documentation *Markdown
	// Identifies a restful operation supported by the solution.
	Interaction []CapabilityStatementRestResourceInteraction
	// This field is set to no-version to specify that the system does not support (server) or use (client) versioning for this resource type. If this has some other value, the server must at least correctly track and populate the versionId meta-property on resources. If the value is 'versioned-update', then the server supports all the versioning features, including using e-tags for version integrity in the API.
	Versioning *Code
	// A flag for whether the server is able to return past versions as part of the vRead operation.
	ReadHistory *Boolean
	// A flag to indicate that the server allows or needs to allow the client to create new identities on the server (that is, the client PUTs to a location where there is no existing resource). Allowing this operation means that the server allows the client to create new identities on the server.
	UpdateCreate *Boolean
	// A flag that indicates that the server supports conditional create.
	ConditionalCreate *Boolean
	// A code that indicates how the server supports conditional read.
	ConditionalRead *Code
	// A flag that indicates that the server supports conditional update.
	ConditionalUpdate *Boolean
	// A code that indicates how the server supports conditional delete.
	ConditionalDelete *Code
	// A set of flags that defines how references are supported.
	ReferencePolicy []Code
	// A list of _include values supported by the server.
	SearchInclude []String
	// A list of _revinclude (reverse include) values supported by the server.
	SearchRevInclude []String
	// Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.
	SearchParam []CapabilityStatementRestResourceSearchParam
	// Definition of an operation or a named query together with its parameters and their meaning and type. Consult the definition of the operation for details about how to invoke the operation, and the parameters.
	Operation []CapabilityStatementRestResourceOperation
}

A specification of the restful capabilities of the solution for a specific resource type.

func (CapabilityStatementRestResource) MarshalJSON

func (r CapabilityStatementRestResource) MarshalJSON() ([]byte, error)

func (CapabilityStatementRestResource) MarshalXML

func (CapabilityStatementRestResource) MemSize

type CapabilityStatementRestResourceInteraction

type CapabilityStatementRestResourceInteraction struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Coded identifier of the operation, supported by the system resource.
	Code Code
	// Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.
	Documentation *Markdown
}

Identifies a restful operation supported by the solution.

func (CapabilityStatementRestResourceInteraction) MarshalJSON

func (CapabilityStatementRestResourceInteraction) MarshalXML

func (CapabilityStatementRestResourceInteraction) MemSize

type CapabilityStatementRestResourceOperation

type CapabilityStatementRestResourceOperation struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The name of the operation or query. For an operation, this is the name  prefixed with $ and used in the URL. For a query, this is the name used in the _query parameter when the query is called.
	Name String
	// Where the formal definition can be found. If a server references the base definition of an Operation (i.e. from the specification itself such as “`http://hl7.org/fhir/OperationDefinition/ValueSet-expand“`), that means it supports the full capabilities of the operation - e.g. both GET and POST invocation.  If it only supports a subset, it must define its own custom [OperationDefinition](operationdefinition.html#) with a 'base' of the original OperationDefinition.  The custom definition would describe the specific subset of functionality supported.
	Definition Canonical
	// Documentation that describes anything special about the operation behavior, possibly detailing different behavior for system, type and instance-level invocation of the operation.
	Documentation *Markdown
}

Definition of an operation or a named query together with its parameters and their meaning and type. Consult the definition of the operation for details about how to invoke the operation, and the parameters.

func (CapabilityStatementRestResourceOperation) MarshalJSON

func (CapabilityStatementRestResourceOperation) MarshalXML

func (CapabilityStatementRestResourceOperation) MemSize

type CapabilityStatementRestResourceSearchParam

type CapabilityStatementRestResourceSearchParam struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The name of the search parameter used in the interface.
	Name String
	// An absolute URI that is a formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter (a reference to [SearchParameter.url](searchparameter-definitions.html#SearchParameter.url)). This element SHALL be populated if the search parameter refers to a SearchParameter defined by the FHIR core specification or externally defined IGs.
	Definition *Canonical
	// The type of value a search parameter refers to, and how the content is interpreted.
	Type Code
	// This allows documentation of any distinct behaviors about how the search parameter is used.  For example, text matching algorithms.
	Documentation *Markdown
}

Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.

func (CapabilityStatementRestResourceSearchParam) MarshalJSON

func (CapabilityStatementRestResourceSearchParam) MarshalXML

func (CapabilityStatementRestResourceSearchParam) MemSize

type CapabilityStatementRestSecurity

type CapabilityStatementRestSecurity struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Server adds CORS headers when responding to requests - this enables Javascript applications to use the server.
	Cors *Boolean
	// Types of security services that are supported/required by the system.
	Service []CodeableConcept
	// General description of how security works.
	Description *Markdown
}

Information about security implementation from an interface perspective - what a client needs to know.

func (CapabilityStatementRestSecurity) MarshalJSON

func (r CapabilityStatementRestSecurity) MarshalJSON() ([]byte, error)

func (CapabilityStatementRestSecurity) MarshalXML

func (CapabilityStatementRestSecurity) MemSize

type CapabilityStatementSoftware

type CapabilityStatementSoftware struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Name the software is known by.
	Name String
	// The version identifier for the software covered by this statement.
	Version *String
	// Date this version of the software was released.
	ReleaseDate *DateTime
}

Software that is covered by this capability statement. It is used when the capability statement describes the capabilities of a particular software version, independent of an installation.

func (CapabilityStatementSoftware) MarshalJSON

func (r CapabilityStatementSoftware) MarshalJSON() ([]byte, error)

func (CapabilityStatementSoftware) MarshalXML

func (r CapabilityStatementSoftware) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (CapabilityStatementSoftware) MemSize

func (r CapabilityStatementSoftware) MemSize() int

type Code

type Code struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for code
	Value *string
}

Base StructureDefinition for code type: A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

func (Code) MarshalJSON

func (r Code) MarshalJSON() ([]byte, error)

func (Code) MarshalXML

func (r Code) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Code) MemSize

func (r Code) MemSize() int

type CodeableConcept

type CodeableConcept struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// A reference to a code defined by a terminology system.
	Coding []Coding
	// A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
	Text *String
}

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

This is a common pattern in healthcare - a concept that may be defined by one or more codes from formal definitions including LOINC and SNOMED CT, and/or defined by the provision of text that captures a human sense of the concept.

func (CodeableConcept) MarshalJSON

func (r CodeableConcept) MarshalJSON() ([]byte, error)

func (CodeableConcept) MarshalXML

func (r CodeableConcept) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (CodeableConcept) MemSize

func (r CodeableConcept) MemSize() int

func (CodeableConcept) String

func (r CodeableConcept) String() string

type Coding

type Coding struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The identification of the code system that defines the meaning of the symbol in the code.
	System *Uri
	// The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
	Version *String
	// A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
	Code *Code
	// A representation of the meaning of the code in the system, following the rules of the system.
	Display *String
	// Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
	UserSelected *Boolean
}

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

References to codes are very common in healthcare models.

func (Coding) MarshalJSON

func (r Coding) MarshalJSON() ([]byte, error)

func (Coding) MarshalXML

func (r Coding) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Coding) MemSize

func (r Coding) MemSize() int

func (Coding) String

func (r Coding) String() string

type ContactDetail

type ContactDetail struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The name of an individual to contact.
	Name *String
	// The contact details for the individual (if a name was provided) or the organization.
	Telecom []ContactPoint
}

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

Need to track contact information in the same way across multiple resources.

func (ContactDetail) MarshalJSON

func (r ContactDetail) MarshalJSON() ([]byte, error)

func (ContactDetail) MarshalXML

func (r ContactDetail) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ContactDetail) MemSize

func (r ContactDetail) MemSize() int

func (ContactDetail) String

func (r ContactDetail) String() string

type ContactPoint

type ContactPoint struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Telecommunications form for contact point - what communications system is required to make use of the contact.
	System *Code
	// The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
	Value *String
	// Identifies the purpose for the contact point.
	Use *Code
	// Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.
	Rank *PositiveInt
	// Time period when the contact point was/is in use.
	Period *Period
}

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

Need to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc.

func (ContactPoint) MarshalJSON

func (r ContactPoint) MarshalJSON() ([]byte, error)

func (ContactPoint) MarshalXML

func (r ContactPoint) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ContactPoint) MemSize

func (r ContactPoint) MemSize() int

func (ContactPoint) String

func (r ContactPoint) String() string

type Contributor

type Contributor struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The type of contributor.
	Type Code
	// The name of the individual or organization responsible for the contribution.
	Name String
	// Contact details to assist a user in finding and communicating with the contributor.
	Contact []ContactDetail
}

Base StructureDefinition for Contributor Type: A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers.

Need to track contributor information in the same way across multiple resources.

func (Contributor) MarshalJSON

func (r Contributor) MarshalJSON() ([]byte, error)

func (Contributor) MarshalXML

func (r Contributor) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Contributor) MemSize

func (r Contributor) MemSize() int

func (Contributor) String

func (r Contributor) String() string

type Count

type Count struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
	Comparator *Code
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

Base StructureDefinition for 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.

Need to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, and currencies such as $100.32USD.

func (Count) MarshalJSON

func (r Count) MarshalJSON() ([]byte, error)

func (Count) MarshalXML

func (r Count) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Count) MemSize

func (r Count) MemSize() int

func (Count) String

func (r Count) String() string

type DataRequirement

type DataRequirement struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile.
	Type Code
	// The profile of the required data, specified as the uri of the profile definition.
	Profile []Canonical
	// The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed.
	Subject isDataRequirementSubject
	// Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available.
	//
	// The value of mustSupport SHALL be a FHIRPath resolveable on the type of the DataRequirement. The path SHALL consist only of identifiers, constant indexers, and .resolve() (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).
	MustSupport []String
	// Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed.
	CodeFilter []DataRequirementCodeFilter
	// Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed.
	DateFilter []DataRequirementDateFilter
	// Specifies a maximum number of results that are required (uses the _count search parameter).
	Limit *PositiveInt
	// Specifies the order of the results to be returned.
	Sort []DataRequirementSort
}

Base StructureDefinition for 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) MarshalJSON

func (r DataRequirement) MarshalJSON() ([]byte, error)

func (DataRequirement) MarshalXML

func (r DataRequirement) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (DataRequirement) MemSize

func (r DataRequirement) MemSize() int

func (DataRequirement) String

func (r DataRequirement) String() string

type DataRequirementCodeFilter

type DataRequirementCodeFilter struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolveable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept.
	Path *String
	// A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept.
	SearchParam *String
	// The valueset for the code filter. The valueSet and code elements are additive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.
	ValueSet *Canonical
	// The codes for the code filter. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codes.
	Code []Coding
}

Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed.

func (DataRequirementCodeFilter) MarshalJSON

func (r DataRequirementCodeFilter) MarshalJSON() ([]byte, error)

func (DataRequirementCodeFilter) MarshalXML

func (r DataRequirementCodeFilter) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (DataRequirementCodeFilter) MemSize

func (r DataRequirementCodeFilter) MemSize() int

type DataRequirementDateFilter

type DataRequirementDateFilter struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolveable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing.
	Path *String
	// A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing.
	SearchParam *String
	// The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now.
	Value isDataRequirementDateFilterValue
}

Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed.

func (DataRequirementDateFilter) MarshalJSON

func (r DataRequirementDateFilter) MarshalJSON() ([]byte, error)

func (DataRequirementDateFilter) MarshalXML

func (r DataRequirementDateFilter) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (DataRequirementDateFilter) MemSize

func (r DataRequirementDateFilter) MemSize() int

type DataRequirementSort

type DataRequirementSort struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The attribute of the sort. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant.
	Path String
	// The direction of the sort, ascending or descending.
	Direction Code
}

Specifies the order of the results to be returned.

func (DataRequirementSort) MarshalJSON

func (r DataRequirementSort) MarshalJSON() ([]byte, error)

func (DataRequirementSort) MarshalXML

func (r DataRequirementSort) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (DataRequirementSort) MemSize

func (r DataRequirementSort) MemSize() int

type Date

type Date struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

Base StructureDefinition for date Type: A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date. Dates SHALL be valid dates.

func (Date) MarshalJSON

func (r Date) MarshalJSON() ([]byte, error)

func (Date) MarshalXML

func (r Date) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Date) MemSize

func (r Date) MemSize() int

type DateTime

type DateTime struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

Base StructureDefinition for dateTime Type: A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.

func (DateTime) MarshalJSON

func (r DateTime) MarshalJSON() ([]byte, error)

func (DateTime) MarshalXML

func (r DateTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (DateTime) MemSize

func (r DateTime) MemSize() int

type Decimal

type Decimal struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *apd.Decimal
}

Base StructureDefinition for decimal Type: A rational number with implicit precision

func (Decimal) MarshalJSON

func (r Decimal) MarshalJSON() ([]byte, error)

func (Decimal) MarshalXML

func (r Decimal) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Decimal) MemSize

func (r Decimal) MemSize() int

type Distance

type Distance struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
	Comparator *Code
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

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

func (Distance) MarshalJSON

func (r Distance) MarshalJSON() ([]byte, error)

func (Distance) MarshalXML

func (r Distance) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Distance) MemSize

func (r Distance) MemSize() int

func (Distance) String

func (r Distance) String() string

type Dosage

type Dosage struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Indicates the order in which the dosage instructions should be applied or interpreted.
	Sequence *Integer
	// Free text dosage instructions e.g. SIG.
	Text *String
	// Supplemental instructions to the patient on how to take the medication  (e.g. "with meals" or"take half to one hour before food") or warnings for the patient about the medication (e.g. "may cause drowsiness" or "avoid exposure of skin to direct sunlight or sunlamps").
	AdditionalInstruction []CodeableConcept
	// Instructions in terms that are understood by the patient or consumer.
	PatientInstruction *String
	// When medication should be administered.
	Timing *Timing
	// Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept).
	AsNeeded isDosageAsNeeded
	// Body site to administer to.
	Site *CodeableConcept
	// How drug should enter body.
	Route *CodeableConcept
	// Technique for administering medication.
	Method *CodeableConcept
	// The amount of medication administered.
	DoseAndRate []DosageDoseAndRate
	// Upper limit on medication per unit of time.
	MaxDosePerPeriod *Ratio
	// Upper limit on medication per administration.
	MaxDosePerAdministration *Quantity
	// Upper limit on medication per lifetime of the patient.
	MaxDosePerLifetime *Quantity
}

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

func (Dosage) MarshalJSON

func (r Dosage) MarshalJSON() ([]byte, error)

func (Dosage) MarshalXML

func (r Dosage) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Dosage) MemSize

func (r Dosage) MemSize() int

func (Dosage) String

func (r Dosage) String() string

type DosageDoseAndRate

type DosageDoseAndRate struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The kind of dose or rate specified, for example, ordered or calculated.
	Type *CodeableConcept
	// Amount of medication per dose.
	Dose isDosageDoseAndRateDose
	// Amount of medication per unit of time.
	Rate isDosageDoseAndRateRate
}

The amount of medication administered.

func (DosageDoseAndRate) MarshalJSON

func (r DosageDoseAndRate) MarshalJSON() ([]byte, error)

func (DosageDoseAndRate) MarshalXML

func (r DosageDoseAndRate) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (DosageDoseAndRate) MemSize

func (r DosageDoseAndRate) MemSize() int

type Duration

type Duration struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
	Comparator *Code
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

Base StructureDefinition for Duration Type: A length of time.

func (Duration) MarshalJSON

func (r Duration) MarshalJSON() ([]byte, error)

func (Duration) MarshalXML

func (r Duration) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Duration) MemSize

func (r Duration) MemSize() int

func (Duration) String

func (r Duration) String() string

type ElementDefinition

type ElementDefinition struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension.
	Path String
	// Codes that define how this element is represented in instances, when the deviation varies from the normal case.
	Representation []Code
	// The name of this element definition slice, when slicing is working. The name must be a token with no dots or spaces. This is a unique name referring to a specific set of constraints applied to this element, used to provide a name to different slices of the same element.
	SliceName *String
	// If true, indicates that this slice definition is constraining a slice definition with the same name in an inherited profile. If false, the slice is not overriding any slice in an inherited profile. If missing, the slice might or might not be overriding a slice in an inherited profile, depending on the sliceName.
	SliceIsConstraining *Boolean
	// A single preferred label which is the text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form.
	Label *String
	// A code that has the same meaning as the element in a particular terminology.
	Code []Coding
	// Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).
	Slicing *ElementDefinitionSlicing
	// A concise description of what this element means (e.g. for use in autogenerated summaries).
	Short *String
	// Provides a complete explanation of the meaning of the data element for human readability.  For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. (Note: The text you are reading is specified in ElementDefinition.definition).
	Definition *Markdown
	// Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. (Note: The text you are reading is specified in ElementDefinition.comment).
	Comment *Markdown
	// This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element.
	Requirements *Markdown
	// Identifies additional names by which this element might also be known.
	Alias []String
	// The minimum number of times this element SHALL appear in the instance.
	Min *UnsignedInt
	// The maximum number of times this element is permitted to appear in the instance.
	Max *String
	// Information about the base definition of the element, provided to make it unnecessary for tools to trace the deviation of the element through the derived and related profiles. When the element definition is not the original definition of an element - i.g. either in a constraint on another type, or for elements from a super type in a snap shot - then the information in provided in the element definition may be different to the base definition. On the original definition of the element, it will be same.
	Base *ElementDefinitionBase
	// Identifies an element defined elsewhere in the definition whose content rules should be applied to the current element. ContentReferences bring across all the rules that are in the ElementDefinition for the element, including definitions, cardinality constraints, bindings, invariants etc.
	ContentReference *Uri
	// The data type or resource that the value of this element is permitted to be.
	Type []ElementDefinitionType
	// The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').
	DefaultValue isElementDefinitionDefaultValue
	// The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing').
	MeaningWhenMissing *Markdown
	// If present, indicates that the order of the repeating element has meaning and describes what that meaning is.  If absent, it means that the order of the element has no meaning.
	OrderMeaning *String
	// Specifies a value that SHALL be exactly the value  for this element in the instance. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.
	Fixed isElementDefinitionFixed
	// Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example.
	//
	// When pattern[x] is used to constrain a primitive, it means that the value provided in the pattern[x] must match the instance value exactly.
	//
	// When pattern[x] is used to constrain an array, it means that each element provided in the pattern[x] array must (recursively) match at least one element from the instance array.
	//
	// When pattern[x] is used to constrain a complex object, it means that each property in the pattern must be present in the complex object, and its value must recursively match -- i.e.,
	//
	// 1. If primitive: it must match exactly the pattern value
	// 2. If a complex object: it must match (recursively) the pattern value
	// 3. If an array: it must match (recursively) the pattern value.
	Pattern isElementDefinitionPattern
	// A sample value for this element demonstrating the type of information that would typically be found in the element.
	Example []ElementDefinitionExample
	// The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity.
	MinValue isElementDefinitionMinValue
	// The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity.
	MaxValue isElementDefinitionMaxValue
	// Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.
	MaxLength *Integer
	// A reference to an invariant that may make additional statements about the cardinality or value in the instance.
	Condition []Id
	// Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.
	Constraint []ElementDefinitionConstraint
	// If true, implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way.  If false, the element may be ignored and not supported. If false, whether to populate or use the data element in any way is at the discretion of the implementation.
	MustSupport *Boolean
	// If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.
	IsModifier *Boolean
	// Explains how that element affects the interpretation of the resource or element that contains it.
	IsModifierReason *String
	// Whether the element should be included if a client requests a search with the parameter _summary=true.
	IsSummary *Boolean
	// Binds to a value set if this element is coded (code, Coding, CodeableConcept, Quantity), or the data types (string, uri).
	Binding *ElementDefinitionBinding
	// Identifies a concept from an external specification that roughly corresponds to this element.
	Mapping []ElementDefinitionMapping
}

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

func (ElementDefinition) MarshalJSON

func (r ElementDefinition) MarshalJSON() ([]byte, error)

func (ElementDefinition) MarshalXML

func (r ElementDefinition) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinition) MemSize

func (r ElementDefinition) MemSize() int

func (ElementDefinition) String

func (r ElementDefinition) String() string

type ElementDefinitionBase

type ElementDefinitionBase struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [StructureDefinition](structuredefinition.html#) without a StructureDefinition.base.
	Path String
	// Minimum cardinality of the base element identified by the path.
	Min UnsignedInt
	// Maximum cardinality of the base element identified by the path.
	Max String
}

Information about the base definition of the element, provided to make it unnecessary for tools to trace the deviation of the element through the derived and related profiles. When the element definition is not the original definition of an element - i.g. either in a constraint on another type, or for elements from a super type in a snap shot - then the information in provided in the element definition may be different to the base definition. On the original definition of the element, it will be same.

func (ElementDefinitionBase) MarshalJSON

func (r ElementDefinitionBase) MarshalJSON() ([]byte, error)

func (ElementDefinitionBase) MarshalXML

func (r ElementDefinitionBase) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionBase) MemSize

func (r ElementDefinitionBase) MemSize() int

type ElementDefinitionBinding

type ElementDefinitionBinding struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.
	Strength Code
	// Describes the intended use of this particular set of codes.
	Description *String
	// Refers to the value set that identifies the set of codes the binding refers to.
	ValueSet *Canonical
}

Binds to a value set if this element is coded (code, Coding, CodeableConcept, Quantity), or the data types (string, uri).

func (ElementDefinitionBinding) MarshalJSON

func (r ElementDefinitionBinding) MarshalJSON() ([]byte, error)

func (ElementDefinitionBinding) MarshalXML

func (r ElementDefinitionBinding) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionBinding) MemSize

func (r ElementDefinitionBinding) MemSize() int

type ElementDefinitionConstraint

type ElementDefinitionConstraint struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Allows identification of which elements have their cardinalities impacted by the constraint.  Will not be referenced for constraints that do not affect cardinality.
	Key Id
	// Description of why this constraint is necessary or appropriate.
	Requirements *String
	// Identifies the impact constraint violation has on the conformance of the instance.
	Severity Code
	// Text that can be used to describe the constraint in messages identifying that the constraint has been violated.
	Human String
	// A [FHIRPath](fhirpath.html) expression of constraint that can be executed to see if this constraint is met.
	Expression *String
	// A reference to the original source of the constraint, for traceability purposes.
	Source *Canonical
}

Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.

func (ElementDefinitionConstraint) MarshalJSON

func (r ElementDefinitionConstraint) MarshalJSON() ([]byte, error)

func (ElementDefinitionConstraint) MarshalXML

func (r ElementDefinitionConstraint) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionConstraint) MemSize

func (r ElementDefinitionConstraint) MemSize() int

type ElementDefinitionExample

type ElementDefinitionExample struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Describes the purpose of this example amoung the set of examples.
	Label String
	// The actual value for the element, which must be one of the types allowed for this element.
	Value isElementDefinitionExampleValue
}

A sample value for this element demonstrating the type of information that would typically be found in the element.

func (ElementDefinitionExample) MarshalJSON

func (r ElementDefinitionExample) MarshalJSON() ([]byte, error)

func (ElementDefinitionExample) MarshalXML

func (r ElementDefinitionExample) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionExample) MemSize

func (r ElementDefinitionExample) MemSize() int

type ElementDefinitionMapping

type ElementDefinitionMapping struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// An internal reference to the definition of a mapping.
	Identity Id
	// Identifies the computable language in which mapping.map is expressed.
	Language *Code
	// Expresses what part of the target specification corresponds to this element.
	Map String
	// Comments that provide information about the mapping or its use.
	Comment *String
}

Identifies a concept from an external specification that roughly corresponds to this element.

func (ElementDefinitionMapping) MarshalJSON

func (r ElementDefinitionMapping) MarshalJSON() ([]byte, error)

func (ElementDefinitionMapping) MarshalXML

func (r ElementDefinitionMapping) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionMapping) MemSize

func (r ElementDefinitionMapping) MemSize() int

type ElementDefinitionSlicing

type ElementDefinitionSlicing struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.
	Discriminator []ElementDefinitionSlicingDiscriminator
	// A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.
	Description *String
	// If the matching elements have to occur in the same order as defined in the profile.
	Ordered *Boolean
	// Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.
	Rules Code
}

Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).

func (ElementDefinitionSlicing) MarshalJSON

func (r ElementDefinitionSlicing) MarshalJSON() ([]byte, error)

func (ElementDefinitionSlicing) MarshalXML

func (r ElementDefinitionSlicing) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionSlicing) MemSize

func (r ElementDefinitionSlicing) MemSize() int

type ElementDefinitionSlicingDiscriminator

type ElementDefinitionSlicingDiscriminator struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// How the element value is interpreted when discrimination is evaluated.
	Type Code
	// A FHIRPath expression, using [the simple subset of FHIRPath](fhirpath.html#simple), that is used to identify the element on which discrimination is based.
	Path String
}

Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.

func (ElementDefinitionSlicingDiscriminator) MarshalJSON

func (r ElementDefinitionSlicingDiscriminator) MarshalJSON() ([]byte, error)

func (ElementDefinitionSlicingDiscriminator) MarshalXML

func (ElementDefinitionSlicingDiscriminator) MemSize

type ElementDefinitionType

type ElementDefinitionType struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// URL of Data type or Resource that is a(or the) type used for this element. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. "string" is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models.
	Code Uri
	// Identifies a profile structure or implementation Guide that applies to the datatype this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the type SHALL conform to at least one profile defined in the implementation guide.
	Profile []Canonical
	// Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the target of the reference this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.
	TargetProfile []Canonical
	// If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.
	Aggregation []Code
	// Whether this reference needs to be version specific or version independent, or whether either can be used.
	Versioning *Code
}

The data type or resource that the value of this element is permitted to be.

func (ElementDefinitionType) MarshalJSON

func (r ElementDefinitionType) MarshalJSON() ([]byte, error)

func (ElementDefinitionType) MarshalXML

func (r ElementDefinitionType) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ElementDefinitionType) MemSize

func (r ElementDefinitionType) MemSize() int

type Expression

type Expression struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// A brief, natural language description of the condition that effectively communicates the intended semantics.
	Description *String
	// A short name assigned to the expression to allow for multiple reuse of the expression in the context where it is defined.
	Name *Id
	// The media type of the language for the expression.
	Language Code
	// An expression in the specified language that returns a value.
	Expression *String
	// A URI that defines where the expression is found.
	Reference *Uri
}

Base StructureDefinition for 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) MarshalJSON

func (r Expression) MarshalJSON() ([]byte, error)

func (Expression) MarshalXML

func (r Expression) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Expression) MemSize

func (r Expression) MemSize() int

func (Expression) String

func (r Expression) String() string

type Extension

type Extension struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Source of the definition for the extension code - a logical name or a URL.
	Url string
	// Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).
	Value isExtensionValue
}

Base StructureDefinition for Extension Type: Optional Extension Element - found in all resources.

The ability to add extensions in a structured way is what keeps FHIR resources simple.

func (Extension) MarshalJSON

func (r Extension) MarshalJSON() ([]byte, error)

func (Extension) MarshalXML

func (r Extension) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Extension) MemSize

func (r Extension) MemSize() int

func (Extension) String

func (r Extension) String() string

type HumanName

type HumanName struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Identifies the purpose for this name.
	Use *Code
	// Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.
	Text *String
	// The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.
	Family *String
	// Given name.
	Given []String
	// Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.
	Prefix []String
	// Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.
	Suffix []String
	// Indicates the period of time when this name was valid for the named person.
	Period *Period
}

Base StructureDefinition for HumanName Type: A human's name with the ability to identify parts and usage.

Need to be able to record names, along with notes about their use.

func (HumanName) MarshalJSON

func (r HumanName) MarshalJSON() ([]byte, error)

func (HumanName) MarshalXML

func (r HumanName) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (HumanName) MemSize

func (r HumanName) MemSize() int

func (HumanName) String

func (r HumanName) String() string

type Id

type Id struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for id
	Value *string
}

Base StructureDefinition for id type: Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

func (Id) MarshalJSON

func (r Id) MarshalJSON() ([]byte, error)

func (Id) MarshalXML

func (r Id) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Id) MemSize

func (r Id) MemSize() int

type Identifier

type Identifier struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The purpose of this identifier.
	Use *Code
	// A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
	Type *CodeableConcept
	// Establishes the namespace for the value - that is, a URL that describes a set values that are unique.
	System *Uri
	// The portion of the identifier typically relevant to the user and which is unique within the context of the system.
	Value *String
	// Time period during which identifier is/was valid for use.
	Period *Period
	// Organization that issued/manages the identifier.
	Assigner *Reference
}

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

Need to be able to identify things with confidence and be sure that the identification is not subject to misinterpretation.

func (Identifier) MarshalJSON

func (r Identifier) MarshalJSON() ([]byte, error)

func (Identifier) MarshalXML

func (r Identifier) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Identifier) MemSize

func (r Identifier) MemSize() int

func (Identifier) String

func (r Identifier) String() string

type Instant

type Instant struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

Base StructureDefinition for instant Type: An instant in time - known at least to the second

func (Instant) MarshalJSON

func (r Instant) MarshalJSON() ([]byte, error)

func (Instant) MarshalXML

func (r Instant) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Instant) MemSize

func (r Instant) MemSize() int

type Integer

type Integer struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *int32
}

Base StructureDefinition for integer Type: A whole number

func (Integer) MarshalJSON

func (r Integer) MarshalJSON() ([]byte, error)

func (Integer) MarshalXML

func (r Integer) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Integer) MemSize

func (r Integer) MemSize() int

type Markdown

type Markdown struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for markdown
	Value *string
}

Base StructureDefinition for markdown type: A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine

func (Markdown) MarshalJSON

func (r Markdown) MarshalJSON() ([]byte, error)

func (Markdown) MarshalXML

func (r Markdown) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Markdown) MemSize

func (r Markdown) MemSize() int

type MarketingStatus

type MarketingStatus struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The country in which the marketing authorisation has been granted shall be specified It should be specified using the ISO 3166 ‑ 1 alpha-2 code elements.
	Country CodeableConcept
	// Where a Medicines Regulatory Agency has granted a marketing authorisation for which specific provisions within a jurisdiction apply, the jurisdiction can be specified using an appropriate controlled terminology The controlled term and the controlled term identifier shall be specified.
	Jurisdiction *CodeableConcept
	// This attribute provides information on the status of the marketing of the medicinal product See ISO/TS 20443 for more information and examples.
	Status CodeableConcept
	// The date when the Medicinal Product is placed on the market by the Marketing Authorisation Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain.
	DateRange Period
	// The date when the Medicinal Product is placed on the market by the Marketing Authorisation Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain.
	RestoreDate *DateTime
}

Base StructureDefinition for MarketingStatus Type: The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.

func (MarketingStatus) MarshalJSON

func (r MarketingStatus) MarshalJSON() ([]byte, error)

func (MarketingStatus) MarshalXML

func (r MarketingStatus) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (MarketingStatus) MemSize

func (r MarketingStatus) MemSize() int

func (MarketingStatus) String

func (r MarketingStatus) String() string

type Meta

type Meta struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.
	VersionId *Id
	// When the resource last changed - e.g. when the version changed.
	LastUpdated *Instant
	// A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.
	Source *Uri
	// A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).
	Profile []Canonical
	// Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.
	Security []Coding
	// Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.
	Tag []Coding
}

Base StructureDefinition for 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) MarshalJSON

func (r Meta) MarshalJSON() ([]byte, error)

func (Meta) MarshalXML

func (r Meta) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Meta) MemSize

func (r Meta) MemSize() int

func (Meta) String

func (r Meta) String() string

type Money

type Money struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Numerical value (with implicit precision).
	Value *Decimal
	// ISO 4217 Currency Code.
	Currency *Code
}

Base StructureDefinition for Money Type: An amount of economic utility in some recognized currency.

func (Money) MarshalJSON

func (r Money) MarshalJSON() ([]byte, error)

func (Money) MarshalXML

func (r Money) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Money) MemSize

func (r Money) MemSize() int

func (Money) String

func (r Money) String() string

type MoneyQuantity

type MoneyQuantity struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
	Comparator *Code
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

An amount of money. With regard to precision, see [Decimal Precision](datatypes.html#precision)

func (MoneyQuantity) MarshalJSON

func (r MoneyQuantity) MarshalJSON() ([]byte, error)

func (MoneyQuantity) MarshalXML

func (r MoneyQuantity) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (MoneyQuantity) MemSize

func (r MoneyQuantity) MemSize() int

func (MoneyQuantity) String

func (r MoneyQuantity) String() string

type Narrative

type Narrative struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.
	Status Code
	// The actual narrative content, a stripped down version of XHTML.
	Div Xhtml
}

Base StructureDefinition for Narrative Type: A human-readable summary of the resource conveying the essential clinical and business information for the resource.

func (Narrative) MarshalJSON

func (r Narrative) MarshalJSON() ([]byte, error)

func (Narrative) MarshalXML

func (r Narrative) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Narrative) MemSize

func (r Narrative) MemSize() int

func (Narrative) String

func (r Narrative) String() string

type Oid

type Oid struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for oid
	Value *string
}

Base StructureDefinition for oid type: An OID represented as a URI

func (Oid) MarshalJSON

func (r Oid) MarshalJSON() ([]byte, error)

func (Oid) MarshalXML

func (r Oid) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Oid) MemSize

func (r Oid) MemSize() int

type OperationOutcome

type OperationOutcome struct {
	// The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
	Id *Id
	// The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
	Meta *Meta
	// A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
	ImplicitRules *Uri
	// The base language in which the resource is written.
	Language *Code
	// A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
	Text *Narrative
	// These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
	Contained []model.Resource
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// An error, warning, or information message that results from a system action.
	Issue []OperationOutcomeIssue
}

A collection of error, warning, or information messages that result from a system action.

func (OperationOutcome) MarshalJSON

func (r OperationOutcome) MarshalJSON() ([]byte, error)

func (OperationOutcome) MarshalXML

func (r OperationOutcome) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (OperationOutcome) MemSize

func (r OperationOutcome) MemSize() int

func (OperationOutcome) ResourceId

func (r OperationOutcome) ResourceId() (string, bool)

func (OperationOutcome) ResourceType

func (r OperationOutcome) ResourceType() string

func (OperationOutcome) String

func (r OperationOutcome) String() string

type OperationOutcomeIssue

type OperationOutcomeIssue struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Indicates whether the issue indicates a variation from successful processing.
	Severity Code
	// Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element.
	Code Code
	// Additional details about the error. This may be a text description of the error or a system code that identifies the error.
	Details *CodeableConcept
	// Additional diagnostic information about the issue.
	Diagnostics *String
	// This element is deprecated because it is XML specific. It is replaced by issue.expression, which is format independent, and simpler to parse.
	//
	// For resource issues, this will be a simple XPath limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.  For HTTP errors, will be "http." + the parameter name.
	Location []String
	// A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.
	Expression []String
}

An error, warning, or information message that results from a system action.

func (OperationOutcomeIssue) MarshalJSON

func (r OperationOutcomeIssue) MarshalJSON() ([]byte, error)

func (OperationOutcomeIssue) MarshalXML

func (r OperationOutcomeIssue) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (OperationOutcomeIssue) MemSize

func (r OperationOutcomeIssue) MemSize() int

type ParameterDefinition

type ParameterDefinition struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The name of the parameter used to allow access to the value of the parameter in evaluation contexts.
	Name *Code
	// Whether the parameter is input or output for the module.
	Use Code
	// The minimum number of times this parameter SHALL appear in the request or response.
	Min *Integer
	// The maximum number of times this element is permitted to appear in the request or response.
	Max *String
	// A brief discussion of what the parameter is for and how it is used by the module.
	Documentation *String
	// The type of the parameter.
	Type Code
	// If specified, this indicates a profile that the input data must conform to, or that the output data will conform to.
	Profile *Canonical
}

Base StructureDefinition for 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) MarshalJSON

func (r ParameterDefinition) MarshalJSON() ([]byte, error)

func (ParameterDefinition) MarshalXML

func (r ParameterDefinition) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ParameterDefinition) MemSize

func (r ParameterDefinition) MemSize() int

func (ParameterDefinition) String

func (r ParameterDefinition) String() string

type Period

type Period struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The start of the period. The boundary is inclusive.
	Start *DateTime
	// The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.
	End *DateTime
}

Base StructureDefinition for Period Type: A time period defined by a start and end date and optionally time.

func (Period) MarshalJSON

func (r Period) MarshalJSON() ([]byte, error)

func (Period) MarshalXML

func (r Period) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Period) MemSize

func (r Period) MemSize() int

func (Period) String

func (r Period) String() string

type Population

type Population struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// The age of the specific population.
	Age isPopulationAge
	// The gender of the specific population.
	Gender *CodeableConcept
	// Race of the specific population.
	Race *CodeableConcept
	// The existing physiological conditions of the specific population to which this applies.
	PhysiologicalCondition *CodeableConcept
}

Base StructureDefinition for Population Type: A populatioof people with some set of grouping criteria.

func (Population) MarshalJSON

func (r Population) MarshalJSON() ([]byte, error)

func (Population) MarshalXML

func (r Population) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Population) MemSize

func (r Population) MemSize() int

func (Population) String

func (r Population) String() string

type PositiveInt

type PositiveInt struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for positiveInt
	Value *uint32
}

Base StructureDefinition for positiveInt type: An integer with a value that is positive (e.g. >0)

func (PositiveInt) MarshalJSON

func (r PositiveInt) MarshalJSON() ([]byte, error)

func (PositiveInt) MarshalXML

func (r PositiveInt) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (PositiveInt) MemSize

func (r PositiveInt) MemSize() int

type ProdCharacteristic

type ProdCharacteristic struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Where applicable, the height can be specified using a numerical value and its unit of 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.
	Height *Quantity
	// Where applicable, the width can be specified using a numerical value and its unit of 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.
	Width *Quantity
	// Where applicable, the depth can be specified using a numerical value and its unit of 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.
	Depth *Quantity
	// Where applicable, the weight can be specified using a numerical value and its unit of 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.
	Weight *Quantity
	// Where applicable, the nominal volume can be specified using a numerical value and its unit of 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.
	NominalVolume *Quantity
	// Where applicable, the external diameter can be specified using a numerical value and its unit of 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.
	ExternalDiameter *Quantity
	// Where applicable, the shape can be specified An appropriate controlled vocabulary shall be used The term and the term identifier shall be used.
	Shape *String
	// Where applicable, the color can be specified An appropriate controlled vocabulary shall be used The term and the term identifier shall be used.
	Color []String
	// Where applicable, the imprint can be specified as text.
	Imprint []String
	// Where applicable, the image can be provided The format of the image attachment shall be specified by regional implementations.
	Image []Attachment
	// Where applicable, the scoring can be specified An appropriate controlled vocabulary shall be used The term and the term identifier shall be used.
	Scoring *CodeableConcept
}

Base StructureDefinition for ProdCharacteristic Type: The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available.

func (ProdCharacteristic) MarshalJSON

func (r ProdCharacteristic) MarshalJSON() ([]byte, error)

func (ProdCharacteristic) MarshalXML

func (r ProdCharacteristic) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ProdCharacteristic) MemSize

func (r ProdCharacteristic) MemSize() int

func (ProdCharacteristic) String

func (r ProdCharacteristic) String() string

type ProductShelfLife

type ProductShelfLife struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// 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.
	Type CodeableConcept
	// 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.
	Period Quantity
	// 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.
	SpecialPrecautionsForStorage []CodeableConcept
}

Base StructureDefinition for ProductShelfLife Type: The shelf-life and storage information for a medicinal product item or container can be described using this class.

func (ProductShelfLife) MarshalJSON

func (r ProductShelfLife) MarshalJSON() ([]byte, error)

func (ProductShelfLife) MarshalXML

func (r ProductShelfLife) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (ProductShelfLife) MemSize

func (r ProductShelfLife) MemSize() int

func (ProductShelfLife) String

func (r ProductShelfLife) String() string

type Quantity

type Quantity struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
	Comparator *Code
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

Base StructureDefinition for 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.

Need to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, and currencies such as $100.32USD.

func (Quantity) MarshalJSON

func (r Quantity) MarshalJSON() ([]byte, error)

func (Quantity) MarshalXML

func (r Quantity) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Quantity) MemSize

func (r Quantity) MemSize() int

func (Quantity) String

func (r Quantity) String() string

type Range

type Range struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The low limit. The boundary is inclusive.
	Low *Quantity
	// The high limit. The boundary is inclusive.
	High *Quantity
}

Base StructureDefinition for Range Type: A set of ordered Quantities defined by a low and high limit.

Need to be able to specify ranges of values.

func (Range) MarshalJSON

func (r Range) MarshalJSON() ([]byte, error)

func (Range) MarshalXML

func (r Range) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Range) MemSize

func (r Range) MemSize() int

func (Range) String

func (r Range) String() string

type Ratio

type Ratio struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the numerator.
	Numerator *Quantity
	// The value of the denominator.
	Denominator *Quantity
}

Base StructureDefinition for Ratio Type: A relationship of two Quantity values - expressed as a numerator and a denominator.

Need to able to capture ratios for some measurements (titers) and some rates (costs).

func (Ratio) MarshalJSON

func (r Ratio) MarshalJSON() ([]byte, error)

func (Ratio) MarshalXML

func (r Ratio) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Ratio) MemSize

func (r Ratio) MemSize() int

func (Ratio) String

func (r Ratio) String() string

type Reference

type Reference struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
	Reference *String
	// The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.
	//
	// The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
	Type *Uri
	// An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
	Identifier *Identifier
	// Plain text narrative that identifies the resource in addition to the resource reference.
	Display *String
}

Base StructureDefinition for Reference Type: A reference from one resource to another.

func (Reference) MarshalJSON

func (r Reference) MarshalJSON() ([]byte, error)

func (Reference) MarshalXML

func (r Reference) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Reference) MemSize

func (r Reference) MemSize() int

func (Reference) String

func (r Reference) String() string

type RelatedArtifact

type RelatedArtifact struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The type of relationship to the related artifact.
	Type Code
	// A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index.
	Label *String
	// A brief description of the document or knowledge resource being referenced, suitable for display to a consumer.
	Display *String
	// A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format.
	Citation *Markdown
	// The document being referenced, represented as an attachment. This is exclusive with the resource element.
	Document *Attachment
	// The related resource, such as a library, value set, profile, or other knowledge resource.
	Resource *Canonical
}

Base StructureDefinition for RelatedArtifact Type: Related artifacts such as additional documentation, justification, or bibliographic references.

Knowledge resources must be able to provide enough information for consumers of the content (and/or interventions or results produced by the content) to be able to determine and understand the justification for and evidence in support of the content.

func (RelatedArtifact) MarshalJSON

func (r RelatedArtifact) MarshalJSON() ([]byte, error)

func (RelatedArtifact) MarshalXML

func (r RelatedArtifact) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (RelatedArtifact) MemSize

func (r RelatedArtifact) MemSize() int

func (RelatedArtifact) String

func (r RelatedArtifact) String() string

type SampledData

type SampledData struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series.
	Origin Quantity
	// A correction factor that is applied to the sampled data points before they are added to the origin.
	Factor *Decimal
	// The lower limit of detection of the measured points. This is needed if any of the data points have the value "L" (lower than detection limit).
	LowerLimit *Decimal
	// The upper limit of detection of the measured points. This is needed if any of the data points have the value "U" (higher than detection limit).
	UpperLimit *Decimal
	// The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once.
	Dimensions PositiveInt
	// A series of data points which are decimal values separated by a single space (character u20). The special values "E" (error), "L" (below detection limit) and "U" (above detection limit) can also be used in place of a decimal value.
	Data *String
}

Base StructureDefinition for 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.

There is a need for a concise way to handle the data produced by devices that sample a physical state at a high frequency.

func (SampledData) MarshalJSON

func (r SampledData) MarshalJSON() ([]byte, error)

func (SampledData) MarshalXML

func (r SampledData) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (SampledData) MemSize

func (r SampledData) MemSize() int

func (SampledData) String

func (r SampledData) String() string

type Signature

type Signature struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document.
	Type []Coding
	// When the digital signature was signed.
	When Instant
	// A reference to an application-usable description of the identity that signed  (e.g. the signature used their private key).
	Who Reference
	// A reference to an application-usable description of the identity that is represented by the signature.
	OnBehalfOf *Reference
	// A mime type that indicates the technical format of the target resources signed by the signature.
	TargetFormat *Code
	// A mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc.
	SigFormat *Code
	// The base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty.
	Data *Base64Binary
}

Base StructureDefinition for 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.

There are a number of places where content must be signed in healthcare.

func (Signature) MarshalJSON

func (r Signature) MarshalJSON() ([]byte, error)

func (Signature) MarshalXML

func (r Signature) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Signature) MemSize

func (r Signature) MemSize() int

func (Signature) String

func (r Signature) String() string

type SimpleQuantity

type SimpleQuantity struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The value of the measured amount. The value includes an implicit precision in the presentation of the value.
	Value *Decimal
	// A human-readable form of the unit.
	Unit *String
	// The identification of the system that provides the coded form of the unit.
	System *Uri
	// A computer processable form of the unit in some unit representation system.
	Code *Code
}

A fixed quantity (no comparator)

func (SimpleQuantity) MarshalJSON

func (r SimpleQuantity) MarshalJSON() ([]byte, error)

func (SimpleQuantity) MarshalXML

func (r SimpleQuantity) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (SimpleQuantity) MemSize

func (r SimpleQuantity) MemSize() int

func (SimpleQuantity) String

func (r SimpleQuantity) String() string

type String

type String struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

Base StructureDefinition for string Type: A sequence of Unicode characters

func (String) MarshalJSON

func (r String) MarshalJSON() ([]byte, error)

func (String) MarshalXML

func (r String) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (String) MemSize

func (r String) MemSize() int

type SubstanceAmount

type SubstanceAmount struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field.
	Amount isSubstanceAmountAmount
	// Most elements that require a quantitative value will also have a field called amount type. Amount type should always be specified because the actual value of the amount is often dependent on it. EXAMPLE: In capturing the actual relative amounts of substances or molecular fragments it is essential to indicate whether the amount refers to a mole ratio or weight ratio. For any given element an effort should be made to use same the amount type for all related definitional elements.
	AmountType *CodeableConcept
	// A textual comment on a numeric value.
	AmountText *String
	// Reference range of possible or expected values.
	ReferenceRange *SubstanceAmountReferenceRange
}

Base StructureDefinition for SubstanceAmount Type: Chemical substances are a single substance type whose primary defining element is the molecular structure. Chemical substances shall be defined on the basis of their complete covalent molecular structure; the presence of a salt (counter-ion) and/or solvates (water, alcohols) is also captured. Purity, grade, physical form or particle size are not taken into account in the definition of a chemical substance or in the assignment of a Substance ID.

func (SubstanceAmount) MarshalJSON

func (r SubstanceAmount) MarshalJSON() ([]byte, error)

func (SubstanceAmount) MarshalXML

func (r SubstanceAmount) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (SubstanceAmount) MemSize

func (r SubstanceAmount) MemSize() int

func (SubstanceAmount) String

func (r SubstanceAmount) String() string

type SubstanceAmountReferenceRange

type SubstanceAmountReferenceRange struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Lower limit possible or expected.
	LowLimit *Quantity
	// Upper limit possible or expected.
	HighLimit *Quantity
}

Reference range of possible or expected values.

func (SubstanceAmountReferenceRange) MarshalJSON

func (r SubstanceAmountReferenceRange) MarshalJSON() ([]byte, error)

func (SubstanceAmountReferenceRange) MarshalXML

func (SubstanceAmountReferenceRange) MemSize

func (r SubstanceAmountReferenceRange) MemSize() int

type Time

type Time struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

Base StructureDefinition for time Type: A time during the day, with no date specified

func (Time) MarshalJSON

func (r Time) MarshalJSON() ([]byte, error)

func (Time) MarshalXML

func (r Time) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Time) MemSize

func (r Time) MemSize() int

type Timing

type Timing struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
	//
	// Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
	ModifierExtension []Extension
	// Identifies specific times when the event occurs.
	Event []DateTime
	// A set of rules that describe when the event is scheduled.
	Repeat *TimingRepeat
	// A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code).
	Code *CodeableConcept
}

Base StructureDefinition for 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.

Need to able to track proposed timing schedules. There are several different ways to do this: one or more specified times, a simple rules like three times a day, or before/after meals.

func (Timing) MarshalJSON

func (r Timing) MarshalJSON() ([]byte, error)

func (Timing) MarshalXML

func (r Timing) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Timing) MemSize

func (r Timing) MemSize() int

func (Timing) String

func (r Timing) String() string

type TimingRepeat

type TimingRepeat struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.
	Bounds isTimingRepeatBounds
	// A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values.
	Count *PositiveInt
	// If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times.
	CountMax *PositiveInt
	// How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration.
	Duration *Decimal
	// If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length.
	DurationMax *Decimal
	// The units of time for the duration, in UCUM units.
	DurationUnit *Code
	// The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency.
	Frequency *PositiveInt
	// If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range.
	FrequencyMax *PositiveInt
	// Indicates the duration of time over which repetitions are to occur; e.g. to express "3 times per day", 3 would be the frequency and "1 day" would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length.
	Period *Decimal
	// If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as "do this once every 3-5 days.
	PeriodMax *Decimal
	// The units of time for the period in UCUM units.
	PeriodUnit *Code
	// If one or more days of week is provided, then the action happens only on the specified day(s).
	DayOfWeek []Code
	// Specified time of day for action to take place.
	TimeOfDay []Time
	// An approximate time period during the day, potentially linked to an event of daily living that indicates when the action should occur.
	When []Code
	// The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event.
	Offset *UnsignedInt
}

A set of rules that describe when the event is scheduled.

func (TimingRepeat) MarshalJSON

func (r TimingRepeat) MarshalJSON() ([]byte, error)

func (TimingRepeat) MarshalXML

func (r TimingRepeat) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (TimingRepeat) MemSize

func (r TimingRepeat) MemSize() int

type TriggerDefinition

type TriggerDefinition struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The type of triggering event.
	Type Code
	// A formal name for the event. This may be an absolute URI that identifies the event formally (e.g. from a trigger registry), or a simple relative URI that identifies the event in a local context.
	Name *String
	// The timing of the event (if this is a periodic trigger).
	Timing isTriggerDefinitionTiming
	// The triggering data of the event (if this is a data trigger). If more than one data is requirement is specified, then all the data requirements must be true.
	Data []DataRequirement
	// A boolean-valued expression that is evaluated in the context of the container of the trigger definition and returns whether or not the trigger fires.
	Condition *Expression
}

Base StructureDefinition for 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) MarshalJSON

func (r TriggerDefinition) MarshalJSON() ([]byte, error)

func (TriggerDefinition) MarshalXML

func (r TriggerDefinition) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (TriggerDefinition) MemSize

func (r TriggerDefinition) MemSize() int

func (TriggerDefinition) String

func (r TriggerDefinition) String() string

type UnsignedInt

type UnsignedInt struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for unsignedInt
	Value *uint32
}

Base StructureDefinition for unsignedInt type: An integer with a value that is not negative (e.g. >= 0)

func (UnsignedInt) MarshalJSON

func (r UnsignedInt) MarshalJSON() ([]byte, error)

func (UnsignedInt) MarshalXML

func (r UnsignedInt) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (UnsignedInt) MemSize

func (r UnsignedInt) MemSize() int

type Uri

type Uri struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// The actual value
	Value *string
}

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

func (Uri) MarshalJSON

func (r Uri) MarshalJSON() ([]byte, error)

func (Uri) MarshalXML

func (r Uri) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Uri) MemSize

func (r Uri) MemSize() int

type Url

type Url struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for url
	Value *string
}

Base StructureDefinition for url type: A URI that is a literal reference

func (Url) MarshalJSON

func (r Url) MarshalJSON() ([]byte, error)

func (Url) MarshalXML

func (r Url) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Url) MemSize

func (r Url) MemSize() int

type UsageContext

type UsageContext struct {
	// Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// A code that identifies the type of context being specified by this usage context.
	Code Coding
	// A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.
	Value isUsageContextValue
}

Base StructureDefinition for 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).

Consumers of the resource must be able to determine the intended applicability for the resource. Ideally, this information would be used programmatically to determine when and how it should be incorporated or exposed.

func (UsageContext) MarshalJSON

func (r UsageContext) MarshalJSON() ([]byte, error)

func (UsageContext) MarshalXML

func (r UsageContext) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (UsageContext) MemSize

func (r UsageContext) MemSize() int

func (UsageContext) String

func (r UsageContext) String() string

type Uuid

type Uuid struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
	Extension []Extension
	// Primitive value for uuid
	Value *string
}

Base StructureDefinition for uuid type: A UUID, represented as a URI

func (Uuid) MarshalJSON

func (r Uuid) MarshalJSON() ([]byte, error)

func (Uuid) MarshalXML

func (r Uuid) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Uuid) MemSize

func (r Uuid) MemSize() int

type Xhtml

type Xhtml struct {
	// unique id for the element within a resource (for internal references)
	Id *string
	// Actual xhtml
	Value string
}

Base StructureDefinition for xhtml Type

func (Xhtml) MarshalJSON

func (r Xhtml) MarshalJSON() ([]byte, error)

func (Xhtml) MarshalXML

func (r Xhtml) MarshalXML(e *xml.Encoder, start xml.StartElement) error

func (Xhtml) MemSize

func (r Xhtml) MemSize() int

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL