package fhir fhir "http://hl7.org/fhir/emf" { // version 0.5.0.5149, generated Fri, Apr 3, 2015 14:24+1100 // FHIR Basic Reference Model abstract class Element { // logical root for all classes attribute EString id (0..1); // xml ID attribute Extension extension {0..-1}; } abstract class BackboneElement extends Element { // Resources and elements defined in a resource attribute Extension modifierExtension (0..-1); } abstract class Type extends Element { // Logical base class for types. } abstract class Resource extends BackboneElement { attribute EString language (0..1); attribute Narrative text (0..1); attribute Resource contained (0..-1); } // primitive Types class Boolean extends Type { attribute EBoolean value (0..1); // Values can be either true or false (0 and 1 are not valid values) } class Integer extends Type { attribute EInt value (0..1); // A signed 32-bit integer (for larger values, use decimal) } class Decimal extends Type { attribute EBigDecimal value (0..1); // A rational number. Note: for implementations, do not use a IEEE type floating point type, instead use something that works like a true decimal, with inbuilt precision (e.g. Java BigDecimal). Decimals may not use exponents } class Base64Binary extends Type { attribute EByteArray value (0..1); // A stream of bytes, base64 encoded (RFC 4648) } class Instant extends Type { attribute EDate value (0..1); // An instant in time - known at least to the second and always includes a time zone. Note: This type is for system times, not human times (see date and dateTime below). } class String extends Type { attribute EString value (0..1); // A sequence of Unicode characters. Note that strings SHALL NOT exceed 1MB in size } class Uri extends Type { attribute EString value (0..1); // A Uniform Resource Identifier Reference. It can be absolute or relative, and may have an optional fragment identifier (RFC 3986) } class DateTime extends Type { attribute EDate value (0..1); // union of xs:date, xs:gYearMonth, xs:gYear A date, or partial date (e.g. just year or year + month) as used in human communication. There is no time zone. Dates SHALL be valid dates. } class DateTime extends Type { attribute EBool value (0..1); // union of xs:dateTime, xs:date, xs:gYearMonth, xs:gYear A date, date-time or partial date (e.g. just year or year + month) as used in human communication. If hours and minutes are specified, a time zone SHALL be populated. Seconds may be provided but may also be ignored. Dates SHALL be valid dates. } class Code extends String { // regex: [^\s]+([\s]+[^\s]+)* } class Oid extends Uri { // An OID represented as a URI (RFC 3001): urn:oid:1.2.3.4.5 } class Uuid extends Uri { // A UUID, represented as a URI (RFC 4122): urn:uuid:a5afddf4-e880-459b-876e-e4591b0acc11. Note the RFC comments about case: UUID values SHALL be represented in lower case, but systems SHOULD interpret them case insensitively } class Id extends String { A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters regex: [a-z0-9\-\.]{1,36} } class Extension extends Element { // Optional Extensions Element - found in all resources. attribute Uri url (1..1); // Source of the definition for the extension code - a logical name or a URL. attribute Type value (0..1); // Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list). } class BackboneElement extends Element { // Base definition for all elements that are defined inside a resource - but not those in a data type. attribute Extension modifierExtension (0..-1); // 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 that contains it. Usually modifier elements provide negation or qualification. In order 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. } class Narrative extends Element { // A human-readable formatted text, including images. enum NarrativeStatus { // The status of a resource narrative 0 : Null = "Missing in instance"; 1 : generated = "The contents of the narrative are entirely generated from the structured data in the resource."; 2 : extensions = "The contents of the narrative are entirely generated from the structured data in the resource and some of the content is generated from extensions."; 3 : additional = "The contents of the narrative contain additional information not found in the structured data."; 4 : empty = "the contents of the narrative are some equivalent of "No human-readable text provided for this resource"."; } attribute NarrativeStatus status (1..1); // 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. attribute xhtml? div (1..1); // The actual narrative content, a stripped down version of XHTML. } class Element extends Element { // Base definition for all elements in a resource. attribute Id id (0..1); // unique id for the element within a resource (for internal references). attribute Extension extension (0..-1); // May be used to represent additional information that is not part of the basic definition of the element. In order 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. } class Period extends Type { // A time period defined by a start and end date and optionally time. attribute DateTime start (0..1); // The start of the period. The boundary is inclusive. attribute DateTime end (0..1); // The end of the period. If the end of the period is missing, it means that the period is ongoing. } class Coding extends Type { // A reference to a code defined by a terminology system. attribute Uri system (0..1); // The identification of the code system that defines the meaning of the symbol in the code. attribute String version (0..1); // 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. attribute Code code (0..1); // 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). attribute String display (0..1); // A representation of the meaning of the code in the system, following the rules of the system. attribute Boolean primary (0..1); // Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). } class Range extends Type { // A set of ordered Quantities defined by a low and high limit. attribute Quantity low (0..1); // The low limit. The boundary is inclusive. attribute Quantity high (0..1); // The high limit. The boundary is inclusive. } class Quantity extends 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. enum QuantityComparator { // How the Quantity should be understood and represented 0 : Null = "Missing in instance"; 1 : lessThan = "The actual value is less than the given value."; 2 : lessOrEqual = "The actual value is less than or equal to the given value."; 3 : greaterOrEqual = "The actual value is greater than or equal to the given value."; 4 : greaterThan = "The actual value is greater than the given value."; } attribute Decimal value (0..1); // The value of the measured amount. The value includes an implicit precision in the presentation of the value. attribute QuantityComparator comparator (0..1); // 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. attribute String units (0..1); // A human-readable form of the units. attribute Uri system (0..1); // The identification of the system that provides the coded form of the unit. attribute Code code (0..1); // A computer processable form of the units in some unit representation system. } class Attachment extends Type { // For referring to data content defined in other formats. attribute Code contentType (0..1); // 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. attribute Code language (0..1); // The human language of the content. The value can be any valid value according to BCP 47. attribute Base64Binary data (0..1); // The actual data of the attachment - a sequence of bytes. In XML, represented using base64. attribute Uri url (0..1); // An alternative location where the data can be accessed. attribute UnsignedInt size (0..1); // The number of bytes of data that make up this attachment. attribute Base64Binary hash (0..1); // The calculated hash of the data using SHA-1. Represented using base64. attribute String title (0..1); // A label or set of text to display in place of the data. attribute DateTime creation (0..1); // The date that the attachment was first created. } class Ratio extends Type { // A relationship of two Quantity values - expressed as a numerator and a denominator. attribute Quantity numerator (0..1); // The value of the numerator. attribute Quantity denominator (0..1); // The value of the denominator. } class SampledData extends Type { // A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data. attribute Quantity origin (1..1); // The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series. attribute Decimal period (1..1); // The length of time between sampling times, measured in milliseconds. attribute Decimal factor (0..1); // A correction factor that is applied to the sampled data points before they are added to the origin. attribute Decimal lowerLimit (0..1); // 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). attribute Decimal upperLimit (0..1); // 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). attribute PositiveInt dimensions (1..1); // 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. attribute String data (1..1); // 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. } class Reference extends Type { // A reference from one resource to another. attribute String reference (0..1); // 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. attribute String display (0..1); // Plain text narrative that identifies the resource in addition to the resource reference. } class CodeableConcept extends Type { // A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text. attribute Coding coding (0..-1); // A reference to a code defined by a terminology system. attribute String text (0..1); // 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. } class Identifier extends Type { // A technical identifier - identifies some entity uniquely and unambiguously. enum IdentifierUse { // Identifies the purpose for this identifier, if known 0 : Null = "Missing in instance"; 1 : usual = "the identifier recommended for display and use in real-world interactions."; 2 : official = "the identifier considered to be most trusted for the identification of this item."; 3 : temp = "A temporary identifier."; 4 : secondary = "An identifier that was assigned in secondary use - it serves to identify the object in a relative context, but cannot be consistently assigned to the same object again in a different context."; } attribute IdentifierUse use (0..1); // The purpose of this identifier. attribute CodeableConcept type (0..1); // A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. attribute Uri system (0..1); // Establishes the namespace in which set of possible id values is unique. attribute String value (0..1); // The portion of the identifier typically displayed to the user and which is unique within the context of the system. attribute Period period (0..1); // Time period during which identifier is/was valid for use. attribute ResourceReference assigner (0..1); // Organization that issued/manages the identifier. } class Signature extends Type { // An XML digital signature along with supporting context. attribute Coding type (1..-1); // 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. attribute Instant when (1..1); // When the digital signature was signed. attribute Type who (1..1); // A reference to an application-usable description of the person that signed the certificate (e.g. the signature used their private key). attribute Base64Binary blob (1..1); // The base64 encoding of the XML-Signature. } class Age extends Quantity { // 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. } class Count extends Quantity { // 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. } class Money extends Quantity { // 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. } class Distance extends Quantity { // 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. } class Duration extends Quantity { // 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. } class ElementDefinition extends Type { // Captures constraints on each element within the resource, profile, or extension. enum PropertyRepresentation { // How a property is represented on the wire 0 : Null = "Missing in instance"; 1 : xmlAttr = "In XML, this property is represented as an attribute not an element."; } enum ResourceSlicingRules { // How slices are interpreted when evaluating an instance 0 : Null = "Missing in instance"; 1 : closed = "No additional content is allowed other than that described by the slices in this profile."; 2 : open = "Additional content is allowed anywhere in the list."; 3 : openAtEnd = "Additional content is allowed, but only at the end of the list. Note that using this requires that the slices be ordered, which makes it hard to share uses. This should only be done where absolutely required."; } enum ResourceAggregationMode { // How resource references can be aggregated 0 : Null = "Missing in instance"; 1 : contained = "The reference is a local reference to a contained resource."; 2 : referenced = "The reference to a resource that has to be resolved externally to the resource that includes the reference."; 3 : bundled = "The resource the reference points to will be found in the same bundle as the resource that includes the reference."; } enum ConstraintSeverity { // SHALL applications comply with this constraint? 0 : Null = "Missing in instance"; 1 : error = "If the constraint is violated, the resource is not conformant."; 2 : warning = "If the constraint is violated, the resource is conformant, but it is not necessarily following best practice."; } enum BindingStrength { // Indication of the degree of conformance expectations associated with a binding 0 : Null = "Missing in instance"; 1 : required = "To be conformant, instances of this element SHALL include a code from the specified value set."; 2 : extensible = "To be conformant, instances of this element SHALL include a code from the specified value set if any of the codes within the value set can apply to the concept being communicated. If the valueset does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead."; 3 : preferred = "Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant."; 4 : example = "Instances are not expected or even encouraged to draw from the specified value set. The value set merely provides examples of the types of concepts intended to be included."; } class ElementDefinitionSlicingComponent extends Element { attribute String discriminator (0..-1); // 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. attribute String description (0..1); // 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. attribute Boolean ordered (0..1); // If the matching elements have to occur in the same order as defined in the profile. attribute ResourceSlicingRules rules (1..1); // 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. } class TypeRefComponent extends Element { attribute Code code (1..1); // Name of Data type or Resource that is a(or the) type used for this element. attribute Uri profile (0..1); // Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. attribute ResourceAggregationMode aggregation (0..-1); // If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. } class ElementDefinitionConstraintComponent extends Element { attribute Id key (1..1); // Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. attribute String name (0..1); // Used to label the constraint in OCL or in short displays incapable of displaying the full human description. attribute ConstraintSeverity severity (1..1); // Identifies the impact constraint violation has on the conformance of the instance. attribute String human (1..1); // Text that can be used to describe the constraint in messages identifying that the constraint has been violated. attribute String xpath (1..1); // An XPath expression of constraint that can be executed to see if this constraint is met. } class ElementDefinitionBindingComponent extends Element { attribute String name (1..1); // A descriptive name for this - can be useful for generating implementation artifacts. attribute BindingStrength strength (1..1); // 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. attribute String description (0..1); // Describes the intended use of this particular set of codes. attribute Type valueSet (0..1); // Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used. } class ElementDefinitionMappingComponent extends Element { attribute Id identity (1..1); // An internal reference to the definition of a mapping. attribute Code language (0..1); // Identifies the computable language in which mapping.map is expressed. attribute String map (1..1); // Expresses what part of the target specification corresponds to this element. } attribute String path (1..1); // The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. attribute PropertyRepresentation representation (0..-1); // Codes that define how this element is represented in instances, when the deviation varies from the normal case. attribute String name (0..1); // The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. attribute String label (0..1); // The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. attribute Coding code (0..-1); // A code that provides the meaning for the element according to a particular terminology. attribute ElementDefinitionSlicingComponent slicing (0..1); // Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). 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). attribute String short_ (0..1); // A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). attribute String definition (0..1); // 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. attribute String comments (0..1); // Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. attribute String requirements (0..1); // 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. attribute String alias (0..-1); // Identifies additional names by which this element might also be known. attribute Integer min (0..1); // The minimum number of times this element SHALL appear in the instance. attribute String max (0..1); // The maximum number of times this element is permitted to appear in the instance. attribute TypeRefComponent type (0..-1); // The data type or resource that the value of this element is permitted to be. attribute String nameReference (0..1); // Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. attribute Type defaultValue (0..1); // The value that should be used if there is no value stated in the instance. attribute String meaningWhenMissing (0..1); // The Implicit meaning that is to be understood when this element is missing. attribute Type fixed (0..1); // Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing. attribute Type pattern (0..1); // 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. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.). attribute Type example (0..1); // A sample value for this element demonstrating the type of information that would typically be captured. attribute Integer maxLength (0..1); // 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. attribute Id condition (0..-1); // A reference to an invariant that may make additional statements about the cardinality or value in the instance. attribute ElementDefinitionConstraintComponent constraint (0..-1); // Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance. attribute Boolean mustSupport (0..1); // If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. attribute Boolean isModifier (0..1); // 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. attribute Boolean isSummary (0..1); // Whether the element should be included if a client requests a search with the parameter _summary=true. attribute ElementDefinitionBindingComponent binding (0..1); // Binds to a value set if this element is coded (code, Coding, CodeableConcept). attribute ElementDefinitionMappingComponent mapping (0..-1); // Identifies a concept from an external specification that roughly corresponds to this element. } class Timing extends Type { // Specifies an event that may occur multiple times. Timing schedules are used to record when things are 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. enum UnitsOfTime { // A unit of time (units from UCUM) 0 : Null = "Missing in instance"; 1 : s = "second."; 2 : min = "minute."; 3 : h = "hour."; 4 : d = "day."; 5 : wk = "week."; 6 : mo = "month."; 7 : a = "year."; } enum EventTiming { // Real world event that the schedule relates to 0 : Null = "Missing in instance"; 1 : hS = "event occurs [duration] before the hour of sleep (or trying to)."; 2 : wAKE = "event occurs [duration] after waking."; 3 : C = "event occurs at a meal (from the Latin cibus)."; 4 : cM = "event occurs at breakfast (from the Latin cibus matutinus)."; 5 : cD = "event occurs at lunch (from the Latin cibus diurnus)."; 6 : cV = "event occurs at dinner (from the Latin ante cibus vespertinus)."; 7 : aC = "event occurs [duration] before a meal (from the Latin ante cibus)."; 8 : aCM = "event occurs [duration] before breakfast (from the Latin ante cibus matutinus)."; 9 : aCD = "event occurs [duration] before lunch (from the Latin ante cibus diurnus)."; 10 : aCV = "event occurs [duration] before dinner (from the Latin ante cibus vespertinus)."; 11 : pC = "event occurs [duration] after a meal (from the Latin post cibus)."; 12 : pCM = "event occurs [duration] after breakfast (from the Latin post cibus matutinus)."; 13 : pCD = "event occurs [duration] after lunch (from the Latin post cibus diurnus)."; 14 : pCV = "event occurs [duration] after dinner (from the Latin post cibus vespertinus)."; } class TimingRepeatComponent extends Element { attribute Period bounds (0..1); // Outer bounds for start and/or end limits of the timing schedule. attribute Integer count (0..1); // A total count of the desired number of repetitions. attribute Decimal duration (0..1); // How long this thing happens for when it happens. attribute UnitsOfTime durationUnits (0..1); // The units of time for the duration, in UCUM units. attribute Integer frequency (0..1); // The number of times to repeat the action within the specified period / period range (i.e. both period and periodMax provided). attribute Integer frequencyMax (0..1); // If present, indicates that the frequency is a range - so repeat between [frequency] and [frequencyMax] times within the period or period range. attribute Decimal period (0..1); // 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. attribute Decimal periodMax (0..1); // 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. attribute UnitsOfTime periodUnits (0..1); // The units of time for the period in UCUM units. attribute EventTiming when (0..1); // A real world event that the occurrence of the event should be tied to. } attribute DateTime event (0..-1); // Identifies specific times when the event occurs. attribute TimingRepeatComponent repeat (0..1); // A set of rules that describe when the event should occur. attribute CodeableConcept code (0..1); // A code for the timing pattern. Some codes such as BID are uniquitious, but many instutions define their own additional codes. } class Address extends Type { // There is a variety of postal address formats defined around the world. This format defines a superset that is the basis for all addresses around the world. enum AddressUse { // The use of an address 0 : Null = "Missing in instance"; 1 : home = "A communication address at a home."; 2 : work = "An office address. First choice for business related contacts during business hours."; 3 : temp = "A temporary address. The period can provide more detailed information."; 4 : old = "This address is no longer in use (or was never correct, but retained for records)."; } attribute AddressUse use (0..1); // The purpose of this address. attribute String text (0..1); // A full text representation of the address. attribute String line (0..-1); // This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information. attribute String city (0..1); // The name of the city, town, village or other community or delivery center. attribute String state (0..1); // Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). attribute String postalCode (0..1); // A postal code designating a region defined by the postal service. attribute String country (0..1); // Country - a nation as commonly understood or generally accepted. attribute Period period (0..1); // Time period when address was/is in use. } class HumanName extends Type { // A human's name with the ability to identify parts and usage. enum NameUse { // The use of a human name 0 : Null = "Missing in instance"; 1 : usual = "Known as/conventional/the one you normally use."; 2 : official = "The formal name as registered in an official (government) registry, but which name might not be commonly used. May be called "legal name"."; 3 : temp = "A temporary name. Name.period can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations."; 4 : nickname = "A name that is used to address the person in an informal manner, but is not part of their formal or usual name."; 5 : anonymous = "Anonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons)."; 6 : old = "This name is no longer in use (or was never correct, but retained for records)."; 7 : maiden = "A name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store "maiden" names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically."; } attribute NameUse use (0..1); // Identifies the purpose for this name. attribute String text (0..1); // A full text representation of the name. attribute String family (0..-1); // 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. attribute String given (0..-1); // Given name. attribute String prefix (0..-1); // 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. attribute String suffix (0..-1); // 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. attribute Period period (0..1); // Indicates the period of time when this name was valid for the named person. } class Meta extends Type { // The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource. attribute Id versionId (0..1); // The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted. attribute Instant lastUpdated (0..1); // When the resource last changed - e.g. when the version changed. attribute Uri profile (0..-1); // A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. attribute Coding security (0..-1); // Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure. attribute Coding tag (0..-1); // Tags applied to this resource. Tags are intended to 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. } class ContactPoint extends Type { // Details for All kinds of technology mediated contact points for a person or organization, including telephone, email, etc. enum ContactPointSystem { // Telecommunications form for contact point 0 : Null = "Missing in instance"; 1 : phone = "The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required."; 2 : fax = "The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required."; 3 : email = "The value is an email address."; 4 : url = "The value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses."; } enum ContactPointUse { // Use of contact point 0 : Null = "Missing in instance"; 1 : home = "A communication contact point at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available."; 2 : work = "An office contact point. First choice for business related contacts during business hours."; 3 : temp = "A temporary contact point. The period can provide more detailed information."; 4 : old = "This contact point is no longer in use (or was never correct, but retained for records)."; 5 : mobile = "A telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business."; } attribute ContactPointSystem system (0..1); // Telecommunications form for contact point - what communications system is required to make use of the contact. attribute String value (0..1); // The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). attribute ContactPointUse use (0..1); // Identifies the purpose for the contact point. attribute Period period (0..1); // Time period when the contact point was/is in use. } class AllergyIntolerance extends Resource { // Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance. enum AllergyIntoleranceStatus { // Assertion about certainty associated with a propensity, or potential risk, of a reaction to the identified Substance 0 : Null = "Missing in instance"; 1 : unconfirmed = "A low level of certainty about the propensity for a reaction to the identified Substance."; 2 : confirmed = "A high level of certainty about the propensity for a reaction to the identified Substance, which may include clinical evidence by testing or rechallenge."; 3 : resolved = "A reaction to the identified Substance has been clinically reassessed by testing or rechallenge and considered to be resolved."; 4 : refuted = "A propensity for a reaction to the identified Substance has been disproven with a high level of clinical certainty, which may include testing or rechallenge, and is refuted."; 5 : enteredinerror = "The statement was entered in error and Is not valid."; } enum AllergyIntoleranceCriticality { // Estimate of the potential clinical harm, or seriousness, of a reaction to an identified Substance 0 : Null = "Missing in instance"; 1 : low = "The potential clinical impact of a future reaction is estimated as low risk: exposure to substance is unlikely to result in a life threatening or organ system threatening outcome. Future exposure to the Substance is considered a relative contra-indication."; 2 : high = "The potential clinical impact of a future reaction is estimated as high risk: exposure to substance may result in a life threatening or organ system threatening outcome. Future exposure to the Substance may be considered an absolute contra-indication."; 3 : unassessible = "Unable to assess the potential clinical impact with the information available."; } enum AllergyIntoleranceType { // Identification of the underlying physiological mechanism for a Reaction Risk 0 : Null = "Missing in instance"; 1 : immune = "Immune mediated reaction, including allergic reactions and hypersensitivities."; 2 : nonimmune = "A non-immune mediated reaction, which can include pseudoallergic reactions, side effects, intolerances, drug toxicities (eg to Gentamicin), drug-drug interactions, food-drug interactions, and drug-disease interactions."; } enum AllergyIntoleranceCategory { // Category of an identified Substance 0 : Null = "Missing in instance"; 1 : food = "Any substance consumed to provide nutritional support for the body."; 2 : medication = "Substances administered to achieve a physiological effect."; 3 : environment = "Substances that are encountered in the environment."; } enum ReactionEventCertainty { // Statement about the degree of clinical certainty that a Specific Substance was the cause of the Manifestation in an reaction event 0 : Null = "Missing in instance"; 1 : unlikely = "There is a low level of clinical certainty that the reaction was caused by the identified Substance."; 2 : likely = "There is a high level of clinical certainty that the reaction was caused by the identified Substance."; 3 : confirmed = "There is a very high level of clinical certainty that the reaction was due to the identified Substance, which may include clinical evidence by testing or rechallenge."; } enum ReactionEventSeverity { // Clinical assessment of the severity of a reaction event as a whole, potentially considering multiple different manifestations 0 : Null = "Missing in instance"; 1 : mild = "Causes mild physiological effects."; 2 : moderate = "Causes moderate physiological effects."; 3 : severe = "Causes severe physiological effects."; } class AllergyIntoleranceEventComponent extends BackboneElement { attribute CodeableConcept substance (0..1); // Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance. attribute ReactionEventCertainty certainty (0..1); // Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. attribute CodeableConcept manifestation (1..-1); // Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event. attribute String description (0..1); // Text description about the Reaction as a whole, including details of the manifestation if required. attribute DateTime onset (0..1); // Record of the date and/or time of the onset of the Reaction. attribute Duration duration (0..1); // The amount of time that the Adverse Reaction persisted. attribute ReactionEventSeverity severity (0..1); // Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. attribute CodeableConcept exposureRoute (0..1); // Identification of the route by which the subject was exposed to the substance. attribute String comment (0..1); // Additional text about the Adverse Reaction event not captured in other fields. } attribute Identifier identifier (0..-1); // This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute DateTime recordedDate (0..1); // Date when the sensitivity was recorded. attribute ResourceReference recorder (0..1); // Individual who recorded the record and takes responsibility for its conten. attribute ResourceReference patient (1..1); // The patient who has the allergy or intolerance. attribute ResourceReference reporter (0..1); // The source of the information about the allergy that is recorded. attribute CodeableConcept substance (1..1); // Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk. attribute AllergyIntoleranceStatus status (0..1); // Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. attribute AllergyIntoleranceCriticality criticality (0..1); // Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. attribute AllergyIntoleranceType type (0..1); // Identification of the underlying physiological mechanism for the Reaction Risk. attribute AllergyIntoleranceCategory category (0..1); // Category of the identified Substance. attribute DateTime lastOccurence (0..1); // Represents the date and/or time of the last known occurence of a reaction event. attribute String comment (0..1); // Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. attribute AllergyIntoleranceEventComponent event (0..-1); // Details about each Adverse Reaction Event linked to exposure to the identified Substance. } class Appointment extends Resource { // A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s). enum Appointmentstatus { // The free/busy status of an appointment 0 : Null = "Missing in instance"; 1 : pending = "Some or all of the participant(s) have not finalized their acceptance of the appointment request."; 2 : booked = "All participant(s) have been considered and the appointment is confirmed to go ahead at the date/times specified."; 3 : arrived = "Some of the patients have arrived."; 4 : fulfilled = "This appointment has completed and may have resulted in an encounter."; 5 : cancelled = "The appointment has been cancelled."; 6 : noshow = "Some or all of the participant(s) have not/did not appear for the appointment (usually the patient)."; } enum Participantrequired { // Is the Participant required to attend the appointment 0 : Null = "Missing in instance"; 1 : required = "The participant is required to attend the appointment."; 2 : optional = "The participant may optionally attend the appointment."; 3 : informationonly = "The participant is excluded from the appointment, and may not be informed of the appointment taking place. (appointment is about them, not for them - such as 2 doctors discussing results about a patient's test)."; } enum Participationstatus { // The Participation status of an appointment 0 : Null = "Missing in instance"; 1 : accepted = "The participant has accepted the appointment."; 2 : declined = "The participant has declined the appointment and will not participate in the appointment."; 3 : tentative = "The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur."; 4 : needsaction = "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses."; } class AppointmentParticipantComponent extends BackboneElement { attribute CodeableConcept type (0..-1); // Role of participant in the appointment. attribute ResourceReference actor (0..1); // A Person, Location/HealthcareService or Device that is participating in the appointment. attribute Participantrequired required (0..1); // Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. attribute Participationstatus status (1..1); // Participation status of the Patient. } attribute Identifier identifier (0..-1); // This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute Appointmentstatus status (1..1); // The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. attribute CodeableConcept type (0..1); // The type of appointment that is being booked (This may also be associated with participants for location, and/or a HealthcareService). attribute CodeableConcept reason (0..1); // The reason that this appointment is being scheduled, this is more clinical than administrative. attribute UnsignedInt priority (0..1); // The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority). attribute String description (0..1); // The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. attribute Instant start (1..1); // Date/Time that the appointment is to take place. attribute Instant end (1..1); // Date/Time that the appointment is to conclude. attribute ResourceReference slot (0..-1); // The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot. attribute String comment (0..1); // Additional comments about the appointment. attribute ResourceReference order (0..1); // An Order that lead to the creation of this appointment. attribute AppointmentParticipantComponent participant (1..-1); // List of participants involved in the appointment. } class AppointmentResponse extends Resource { // A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection. enum Participantstatus { // The Participation status of an appointment 0 : Null = "Missing in instance"; 1 : accepted = "The appointment participant has accepted that they can attend the appointment at the time specified in the AppointmentResponse."; 2 : declined = "The appointment participant has declined the appointment."; 3 : tentative = "The appointment participant has tentatively accepted the appointment."; 4 : inprocess = "The participant has in-process the appointment."; 5 : completed = "The participant has completed the appointment."; 6 : needsaction = "This is the intitial status of an appointment participant until a participant has replied. It implies that there is no commitment for the appointment."; } attribute Identifier identifier (0..-1); // This records identifiers associated with this appointment response concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate. attribute ResourceReference appointment (1..1); // Parent appointment that this response is replying to. attribute CodeableConcept participantType (0..-1); // Role of participant in the appointment. attribute ResourceReference actor (0..1); // A Person, Location/HealthcareService or Device that is participating in the appointment. attribute Participantstatus participantStatus (1..1); // Participation status of the Participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty. attribute String comment (0..1); // This comment is particularly important when the responder is declining, tentative or requesting another time to indicate the reasons why. attribute Instant start (0..1); // This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the start time. attribute Instant end (0..1); // This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time. } class AuditEvent extends Resource { // A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage. enum AuditEventAction { // Indicator for type of action performed during the event that generated the audit. 0 : Null = "Missing in instance"; 1 : C = "Create a new database object, such as Placing an Order."; 2 : R = "Display or print data, such as a Doctor Census."; 3 : U = "Update data, such as Revise Patient Information."; 4 : D = "Delete items, such as a doctor master file record."; 5 : E = "Perform a system or application function such as log-on, program execution or use of an object's method, or perform a query/search operation."; } enum AuditEventOutcome { // Indicates whether the event succeeded or failed 0 : Null = "Missing in instance"; 1 : _0 = "The operation completed successfully (whether with warnings or not)."; 2 : _4 = "The action was not successful due to some kind of catered for error (often equivalent to an HTTP 400 response)."; 3 : _8 = "The action was not successful due to some kind of unexpected error (often equivalent to an HTTP 500 response)."; 4 : _12 = "An error of such magnitude occurred that the system is not longer available for use (i.e. the system died)."; } enum NetworkType { // The type of network access point of this participant in the audit event 0 : Null = "Missing in instance"; 1 : _1 = "Machine Name, including DNS name."; 2 : _2 = "IP Address."; 3 : _3 = "Telephone Number."; 4 : _4 = "Email address."; 5 : _5 = "URI (User directory, HTTP-PUT, ftp, etc.)."; } enum ObjectType { // Code for the object type involved audited 0 : Null = "Missing in instance"; 1 : _1 = "Person."; 2 : _2 = "System Object."; 3 : _3 = "Organization."; 4 : _4 = "Other."; } enum ObjectRole { // Code representing the role the Object played in the event 0 : Null = "Missing in instance"; 1 : _1 = "This object is the patient that is the subject of care related to this event. It is identifiable by patient ID or equivalent. The patient may be either human or animal."; 2 : _2 = "This is a location identified as related to the event. This is usually the location where the event took place. Note that for shipping, the usual events are arrival at a location or departure from a location."; 3 : _3 = "This object is any kind of persistent document created as a result of the event. This could be a paper report, film, electronic report, DICOM Study, etc. Issues related to medical records life cycle management are conveyed elsewhere."; 4 : _4 = "A logical object related to a health record event. This is any healthcare specific resource (object) not restricted to FHIR defined Resources."; 5 : _5 = "This is any configurable file used to control creation of documents. Examples include the objects maintained by the HL7 Master File transactions, Value Sets, etc."; 6 : _6 = "A human participant not otherwise identified by some other category."; 7 : _7 = "(deprecated)."; 8 : _8 = "Typically a licensed person who is providing or performing care related to the event, generally a physician. The key distinction between doctor and practitioner is with regards to their role, not the licensing. The doctor is the human who actually performed the work. The practitioner is the human or organization that is responsible for the work."; 9 : _9 = "A person or system that is being notified as part of the event. This is relevant in situations where automated systems provide notifications to other parties when an event took place."; 10 : _10 = "Insurance company, or any other organization who accepts responsibility for paying for the healthcare event."; 11 : _11 = "A person or active system object involved in the event with a security role."; 12 : _12 = "A person or system object involved in the event with the authority to modify security roles of other objects."; 13 : _13 = "A passive object, such as a role table, that is relevant to the event."; 14 : _14 = "(deprecated) Relevant to certain RBAC security methodologies."; 15 : _15 = "Any person or organization responsible for providing care. This encompasses all forms of care, licensed or otherwise, and all sorts of teams and care groups. Note, the distinction between practitioners and the doctor that actually provided the care to the patient."; 16 : _16 = "The source or destination for data transfer, when it does not match some other role."; 17 : _17 = "A source or destination for data transfer, that acts as an archive, database, or similar role."; 18 : _18 = "An object that holds schedule information. This could be an appointment book, availability information, etc."; 19 : _19 = "An organization or person that is the recipient of services. This could be an organization that is buying services for a patient, or a person that is buying services for an animal."; 20 : _20 = "An order, task, work item, procedure step, or other description of work to be performed. E.g., a particular instance of an MPPS."; 21 : _21 = "A list of jobs or a system that provides lists of jobs. E.g., an MWL SCP."; 22 : _22 = "(Deprecated)."; 23 : _23 = "An object that specifies or controls the routing or delivery of items. For example, a distribution list is the routing criteria for mail. The items delivered may be documents, jobs, or other objects."; 24 : _24 = "The contents of a query. This is used to capture the contents of any kind of query. For security surveillance purposes knowing the queries being made is very important."; } enum ObjectLifecycle { // Identifier for the data life-cycle stage for the object 0 : Null = "Missing in instance"; 1 : _1 = "Origination / Creation."; 2 : _2 = "Import / Copy from original."; 3 : _3 = "Amendment."; 4 : _4 = "Verification."; 5 : _5 = "Translation."; 6 : _6 = "Access / Use."; 7 : _7 = "De-identification."; 8 : _8 = "Aggregation, summarization, derivation."; 9 : _9 = "Report."; 10 : _10 = "Export / Copy to target."; 11 : _11 = "Disclosure."; 12 : _12 = "Receipt of disclosure."; 13 : _13 = "Archiving."; 14 : _14 = "Logical deletion."; 15 : _15 = "Permanent erasure / Physical destruction."; } class AuditEventEventComponent extends BackboneElement { attribute CodeableConcept type (1..1); // Identifier for a family of the event. attribute CodeableConcept subtype (0..-1); // Identifier for the category of event. attribute AuditEventAction action (0..1); // Indicator for type of action performed during the event that generated the audit. attribute Instant dateTime (1..1); // The time when the event occurred on the source. attribute AuditEventOutcome outcome (0..1); // Indicates whether the event succeeded or failed. attribute String outcomeDesc (0..1); // A free text description of the outcome of the event. attribute Coding purposeOfEvent (0..-1); // The purposeOfUse (reason) that was used during the event being recorded. } class AuditEventParticipantComponent extends BackboneElement { attribute CodeableConcept role (0..-1); // Specification of the role(s) the user plays when performing the event. Usually the codes used in this element are local codes defined by the role-based access control security system used in the local context. attribute ResourceReference reference (0..1); // Direct reference to a resource that identifies the participant. attribute String userId (0..1); // Unique identifier for the user actively participating in the event. attribute String altId (0..1); // Alternative Participant Identifier. For a human, this should be a user identifier text string from authentication system. This identifier would be one known to a common authentication system (e.g., single sign-on), if available. attribute String name (0..1); // Human-meaningful name for the user. attribute Boolean requestor (1..1); // Indicator that the user is or is not the requestor, or initiator, for the event being audited. attribute ResourceReference location (0..1); // Where the event occurred. attribute Uri policy (0..-1); // The policy or plan that authorized the activity being recorded. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used. attribute Coding media (0..1); // Type of media involved. Used when the event is about exporting/importing onto media. attribute AuditEventParticipantNetworkComponent network (0..1); // Logical network location for application activity, if the activity has a network location. attribute Coding purposeOfUse (0..-1); // The purposeOfUse (reason) specific to this participant that was used during the event being recorded. } class AuditEventParticipantNetworkComponent extends BackboneElement { attribute String identifier (0..1); // An identifier for the network access point of the user device for the audit event. attribute NetworkType type (0..1); // An identifier for the type of network access point that originated the audit event. } class AuditEventSourceComponent extends BackboneElement { attribute String site (0..1); // Logical source location within the healthcare enterprise network. attribute String identifier (1..1); // Identifier of the source where the event originated. attribute Coding type (0..-1); // Code specifying the type of source where event originated. } class AuditEventObjectComponent extends BackboneElement { attribute Identifier identifier (0..1); // Identifies a specific instance of the participant object. The reference should always be version specific. attribute ResourceReference reference (0..1); // Identifies a specific instance of the participant object. The reference should always be version specific. attribute ObjectType type (0..1); // The type of the object that was involved in this audit event. attribute ObjectRole role (0..1); // Code representing the functional application role of Participant Object being audited. attribute ObjectLifecycle lifecycle (0..1); // Identifier for the data life-cycle stage for the participant object. attribute CodeableConcept sensitivity (0..1); // Denotes policy-defined sensitivity for the Participant Object ID such as VIP, HIV status, mental health status or similar topics. attribute String name (0..1); // An instance-specific descriptor of the Participant Object ID audited, such as a person's name. attribute String description (0..1); // Text that describes the object in more detail. attribute Base64Binary query (0..1); // The actual query for a query-type participant object. attribute AuditEventObjectDetailComponent detail (0..-1); // Additional Information about the Object. } class AuditEventObjectDetailComponent extends BackboneElement { attribute String type (1..1); // Name of the property. attribute Base64Binary value (1..1); // Property value. } attribute AuditEventEventComponent event (1..1); // Identifies the name, action type, time, and disposition of the audited event. attribute AuditEventParticipantComponent participant (1..-1); // A person, a hardware device or software process. attribute AuditEventSourceComponent source (1..1); // Application systems and processes. attribute AuditEventObjectComponent object (0..-1); // Specific instances of data or objects that have been accessed. } class Basic extends Resource { // Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification. attribute Identifier identifier (0..-1); // Identifier assigned to the resource for business purposes, outside the context of FHIR. attribute CodeableConcept code (1..1); // Identifies the 'type' of resource - equivalent to the resource name for other resources. attribute ResourceReference subject (0..1); // Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce. attribute ResourceReference author (0..1); // Indicates who was responsible for creating the resource instance. attribute Date created (0..1); // Identifies when the resource was first created. } class Binary extends Resource { // A binary resource can contain any content, whether text, image, pdf, zip archive, etc. attribute Code contentType (1..1); // MimeType of the binary content represented as a standard MimeType (BCP 13). attribute Base64Binary content (1..1); // The actual content, base64 encoded. } class BodySite extends Resource { // Record details about the anatomical location of a specimen or body part. This resource may be used when a coded concept does not provide the necessary detail needed for the use case. attribute ResourceReference patient (1..1); // The person to which the body site belongs. attribute Identifier identifier (0..-1); // Identifier for this instance of the anatomical location. attribute CodeableConcept code (0..1); // Named anatomical location - ideally would be coded where possible. attribute CodeableConcept modifier (0..-1); // Modifier to refine the anatomical location. These include modifiers for laterality, relative location, directionality, number, and plane. attribute String description (0..1); // Description of anatomical location. attribute Attachment image (0..-1); // Image or images used to identify a location. } class Bundle extends Resource { // A container for a collection of resources. enum BundleType { // Indicates the purpose of a bundle- how it was intended to be used 0 : Null = "Missing in instance"; 1 : document = "The bundle is a document. The first resource is a Composition."; 2 : message = "The bundle is a message. The first resource is a MessageHeader."; 3 : transaction = "The bundle is a transaction - intended to be processed by a server as an atomic commit."; 4 : transactionresponse = "The bundle is a transaction response."; 5 : history = "The bundle is a list of resources from a _history interaction on a server."; 6 : searchset = "The bundle is a list of resources returned as a result of a search/query interaction, operation, or message."; 7 : collection = "The bundle is a set of resources collected into a single document for ease of distribution."; } enum SearchEntryMode { // Why an entry is in the result set - whether it's included as a match or because of an _include requirement 0 : Null = "Missing in instance"; 1 : match = "This resource matched the search specification."; 2 : include = "This resource is returned because it is referred to from another resource in the search set."; } enum HttpVerb { // HTTP verbs (in the HTTP command line) 0 : Null = "Missing in instance"; 1 : gET = "HTTP GET."; 2 : pOST = "HTTP POST."; 3 : pUT = "HTTP PUT."; 4 : dELETE = "HTTP DELETE."; } class BundleLinkComponent extends BackboneElement { attribute String relation (1..1); // A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. attribute Uri url (1..1); // The reference details for the link. } class BundleEntryComponent extends BackboneElement { attribute Uri base (0..1); // The Base URL for the resource, if different to the base URL specified for the bundle as a whole. attribute BundleLinkComponent link (0..-1); // A series of links that provide context to this entry. attribute Resource resource (0..1); // The Resources for the entry. attribute BundleEntrySearchComponent search (0..1); // Information about the search process that lead to the creation of this entry. attribute BundleEntryTransactionComponent transaction (0..1); // Additional information about how this entry should be processed as part of a transaction. attribute BundleEntryTransactionResponseComponent transactionResponse (0..1); // Additional information about how this entry should be processed as part of a transaction. } class BundleEntrySearchComponent extends BackboneElement { attribute SearchEntryMode mode (0..1); // Why this entry is in the result set - whether it's included as a match or because of an _include requirement. attribute Decimal score (0..1); // When searching, the server's search ranking score for the entry. } class BundleEntryTransactionComponent extends BackboneElement { attribute HttpVerb method (1..1); // The HTTP verb for this entry in either a update history, or a transaction/ transaction response. attribute Uri url (1..1); // A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation). attribute String ifNoneMatch (0..1); // If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation. attribute String ifMatch (0..1); // Only perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention". attribute Instant ifModifiedSince (0..1); // Only perform the operation if the last updated date matches. For more information, see the API section "Managing Resource Contention". attribute String ifNoneExist (0..1); // Instruct the server not to perform the create if a specified resource already exists. For further information, see "Conditional Create". } class BundleEntryTransactionResponseComponent extends BackboneElement { attribute String status (1..1); // The status code returned by processing this entry. attribute Uri location (0..1); // The location header created by processing this operation. attribute String etag (0..1); // The etag for the resource, it the operation for the entry produced a versioned resource. attribute Instant lastModified (0..1); // The date/time that the resource was modified on the server. } attribute BundleType type (1..1); // Indicates the purpose of this bundle- how it was intended to be used. attribute Uri base (0..1); // The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). attribute UnsignedInt total (0..1); // If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). attribute BundleLinkComponent link (0..-1); // A series of links that provide context to this bundle. attribute BundleEntryComponent entry (0..-1); // An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only). attribute Base64Binary signature (0..1); // XML Digital Signature - base64 encoded. } class CarePlan extends Resource { // Describes the intention of how one or more practitioners intend to deliver care for a particular patient for a period of time, possibly limited to care for a specific condition or set of conditions. enum CarePlanStatus { // Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. 0 : Null = "Missing in instance"; 1 : planned = "The plan is in development or awaiting use but is not yet intended to be acted upon."; 2 : active = "The plan is intended to be followed and used as part of patient care."; 3 : completed = "The plan is no longer in use and is not expected to be followed or used in patient care."; } enum CarePlanActivityCategory { // High-level categorization of the type of activity in a care plan. 0 : Null = "Missing in instance"; 1 : diet = "Plan for the patient to consume food of a specified nature."; 2 : drug = "Plan for the patient to consume/receive a drug, vaccine or other product."; 3 : encounter = "Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.)."; 4 : observation = "Plan to capture information about a patient (vitals, labs, diagnostic images, etc.)."; 5 : procedure = "Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.)."; 6 : supply = "Plan to provide something to the patient (medication, medical supply, etc.)."; 7 : other = "Some other form of action."; } enum CarePlanActivityStatus { // Indicates where the activity is at in its overall life cycle 0 : Null = "Missing in instance"; 1 : notstarted = "Activity is planned but no action has yet been taken."; 2 : scheduled = "Appointment or other booking has occurred but activity has not yet begun."; 3 : inprogress = "Activity has been started but is not yet complete."; 4 : onhold = "Activity was started but has temporarily ceased with an expectation of resumption at a future time."; 5 : completed = "The activities have been completed (more or less) as planned."; 6 : cancelled = "The activities have been ended prior to completion (perhaps even before they were started)."; } class CarePlanParticipantComponent extends BackboneElement { attribute CodeableConcept role (0..1); // Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc. attribute ResourceReference member (1..1); // The specific person or organization who is participating/expected to participate in the care plan. } class CarePlanActivityComponent extends BackboneElement { attribute ResourceReference actionResulting (0..-1); // Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc. attribute String notes (0..1); // Notes about the execution of the activity. attribute ResourceReference reference (0..1); // The details of the proposed activity represented in a specific resource. attribute CarePlanActivityDetailComponent detail (0..1); // A simple summary of a planned activity suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc. } class CarePlanActivityDetailComponent extends BackboneElement { attribute CarePlanActivityCategory category (1..1); // High-level categorization of the type of activity in a care plan. attribute CodeableConcept code (0..1); // Detailed description of the type of planned activity. E.g. What lab test, what procedure, what kind of encounter. attribute Type reason (0..1); // Provides the health condition(s) or other rationale that drove the inclusion of this particular activity as part of the plan. attribute ResourceReference goal (0..-1); // Internal reference that identifies the goals that this activity is intended to contribute towards meeting. attribute CarePlanActivityStatus status (0..1); // Identifies what progress is being made for the specific activity. attribute CodeableConcept statusReason (0..1); // Provides reason why the activity isn't yet started, is on hold, was cancelled, etc. attribute Boolean prohibited (1..1); // If true, indicates that the described activity is one that must NOT be engaged in when following the plan. attribute Type scheduled (0..1); // The period, timing or frequency upon which the described activity is to occur. attribute ResourceReference location (0..1); // Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc. attribute ResourceReference performer (0..-1); // Identifies who's expected to be involved in the activity. attribute ResourceReference product (0..1); // Identifies the food, drug or other product to be consumed or supplied in the activity. attribute Quantity dailyAmount (0..1); // Identifies the quantity expected to be consumed in a given day. attribute Quantity quantity (0..1); // Identifies the quantity expected to be supplied, addministered or consumed by the subject. attribute String note (0..1); // This provides a textual description of constraints on the intended activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. } attribute Identifier identifier (0..-1); // This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute ResourceReference patient (0..1); // Identifies the patient/subject whose intended care is described by the plan. attribute CarePlanStatus status (1..1); // Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. attribute Period period (0..1); // Indicates when the plan did (or is intended to) come into effect and end. attribute ResourceReference author (0..-1); // Identifies the individual(s) or ogranization who is responsible for the content of the care plan. attribute DateTime modified (0..1); // Identifies the most recent date on which the plan has been revised. attribute CodeableConcept category (0..-1); // Identifies what "kind" of plan this is to support differentiation between multiple co-existing plans. E.g. "Home health", "psychiatric", "asthma", "disease management", etc. attribute ResourceReference concern (0..-1); // Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan. attribute ResourceReference support (0..-1); // Identifies portions of the patient's record that specifically influenced the formation of the plan. These might include co-morbidities, recent procedures, limitations, recent assessments, etc. attribute CarePlanParticipantComponent participant (0..-1); // Identifies all people and organizations who are expected to be involved in the care envisioned by this plan. attribute ResourceReference goal (0..-1); // Describes the intended objective(s) of carrying out the Care Plan. attribute CarePlanActivityComponent activity (0..-1); // Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc. attribute String notes (0..1); // General notes about the care plan not covered elsewhere. } class Claim extends Resource { // A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery. enum TypeLink { // The type or discipline-style of the claim 0 : Null = "Missing in instance"; 1 : institutional = "A claim for Institution based, typically in-patient, goods and services."; 2 : oral = "A claim for Oral Health (Dentist, Denturist, Hygienist) goods and services."; 3 : pharmacy = "A claim for Pharmacy based goods and services."; 4 : professional = "A claim for Professional, typically out-patient, goods and services."; 5 : vision = "A claim for Vision (Opthamologist, Optometrist and Optician) goods and services."; } enum UseLink { // Complete, proposed, exploratory, other 0 : Null = "Missing in instance"; 1 : complete = "The treatment is complete and this represents a Claim for the services."; 2 : proposed = "The treatment is proposed and this represents a Pre-authorization for the services."; 3 : exploratory = "The treatment is proposed and this represents a Pre-determination for the services."; 4 : other = "A locally defined or otherwise resolved status."; } class PayeeComponent extends BackboneElement { attribute Coding type (0..1); // Party to be reimbursed: Subscriber, provider, other. attribute ResourceReference provider (0..1); // The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned). attribute ResourceReference organization (0..1); // The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned). attribute ResourceReference person (0..1); // The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned). } class DiagnosisComponent extends BackboneElement { attribute PositiveInt sequence (1..1); // Sequence of diagnosis which serves to order and provide a link. attribute Coding diagnosis (1..1); // The diagnosis. } class CoverageComponent extends BackboneElement { attribute PositiveInt sequence (1..1); // A service line item. attribute Boolean focal (1..1); // The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated. attribute ResourceReference coverage (1..1); // Reference to the program or plan identification, underwriter or payor. attribute String businessArrangement (0..1); // The contract number of a business agreement which describes the terms and conditions. attribute Coding relationship (1..1); // The relationship of the patient to the subscriber. attribute String preAuthRef (0..-1); // A list of references from the Insurer to which these services pertain. attribute ResourceReference claimResponse (0..1); // The Coverages adjudication details. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. } class ItemsComponent extends BackboneElement { attribute PositiveInt sequence (1..1); // A service line number. attribute Coding type (1..1); // The type of product or service. attribute ResourceReference provider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute PositiveInt diagnosisLinkId (0..-1); // Diagnosis applicable for this service or product line. attribute Coding service (1..1); // If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied. attribute Date serviceDate (0..1); // The date when the enclosed suite of services were performed or completed. attribute Quantity quantity (0..1); // The number of repetitions of a service or product. attribute Money unitPrice (0..1); // If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group. attribute Decimal factor (0..1); // A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. attribute Decimal points (0..1); // An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. attribute Money net (0..1); // The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. attribute Coding udi (0..1); // List of Unique Device Identifiers associated with this line item. attribute Coding bodySite (0..1); // Physical service site on the patient (limb, tooth, etc). attribute Coding subSite (0..-1); // A region or surface of the site, eg. limb region or tooth surface(s). attribute Coding modifier (0..-1); // Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. attribute DetailComponent detail (0..-1); // Second tier of goods and services. attribute ProsthesisComponent prosthesis (0..1); // The materials and placement date of prior fixed prosthesis. } class DetailComponent extends BackboneElement { attribute PositiveInt sequence (1..1); // A service line number. attribute Coding type (1..1); // The type of product or service. attribute Coding service (1..1); // If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied. attribute Quantity quantity (0..1); // The number of repetitions of a service or product. attribute Money unitPrice (0..1); // If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group. attribute Decimal factor (0..1); // A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. attribute Decimal points (0..1); // An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. attribute Money net (0..1); // The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. attribute Coding udi (0..1); // List of Unique Device Identifiers associated with this line item. attribute SubDetailComponent subDetail (0..-1); // Third tier of goods and services. } class SubDetailComponent extends BackboneElement { attribute PositiveInt sequence (1..1); // A service line number. attribute Coding type (1..1); // The type of product or service. attribute Coding service (1..1); // The fee for an addittional service or product or charge. attribute Quantity quantity (0..1); // The number of repetitions of a service or product. attribute Money unitPrice (0..1); // The fee for an addittional service or product or charge. attribute Decimal factor (0..1); // A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. attribute Decimal points (0..1); // An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. attribute Money net (0..1); // The quantity times the unit price for an addittional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. attribute Coding udi (0..1); // List of Unique Device Identifiers associated with this line item. } class ProsthesisComponent extends BackboneElement { attribute Boolean initial (0..1); // Indicates whether this is the initial placement of a fixed prosthesis. attribute Date priorDate (0..1); // Date of the initial placement. attribute Coding priorMaterial (0..1); // Material of the prior denture or bridge prosthesis. (Oral). } class MissingTeethComponent extends BackboneElement { attribute Coding tooth (1..1); // The code identifying which tooth is missing. attribute Coding reason (0..1); // Missing reason may be: E-extraction, O-other. attribute Date extractionDate (0..1); // The date of the extraction either known from records or patient reported estimate. } attribute TypeLink type (1..1); // The category of claim this is. attribute Identifier identifier (0..-1); // The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number. attribute Coding ruleset (0..1); // The version of the specification on which this instance relies. attribute Coding originalRuleset (0..1); // The version of the specification from which the original instance was created. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute ResourceReference target (0..1); // Insurer Identifier, typical BIN number (6 digit). attribute ResourceReference provider (0..1); // The provider which is responsible for the bill, claim pre-determination, pre-authorization. attribute ResourceReference organization (0..1); // The organization which is responsible for the bill, claim pre-determination, pre-authorization. attribute UseLink use (0..1); // Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). attribute Coding priority (0..1); // Immediate (STAT), best effort (NORMAL), deferred (DEFER). attribute Coding fundsReserve (0..1); // In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested. attribute ResourceReference enterer (0..1); // Person who created the invoice/claim/pre-determination or pre-authorization. attribute ResourceReference facility (0..1); // Facility where the services were provided. attribute ResourceReference prescription (0..1); // Prescription to support the dispensing of Pharmacy or Vision products. attribute ResourceReference originalPrescription (0..1); // Original prescription to support the dispensing of pharmacy services, medications or products. attribute PayeeComponent payee (0..1); // The party to be reimbursed for the services. attribute ResourceReference referral (0..1); // The referral resource which lists the date, practitioner, reason and other supporting information. attribute DiagnosisComponent diagnosis (0..-1); // Ordered list of patient diagnosis for which care is sought. attribute Coding condition (0..-1); // List of patient conditions for which care is sought. attribute ResourceReference patient (1..1); // Patient Resource. attribute CoverageComponent coverage (0..-1); // Financial instrument by which payment information for health care. attribute Coding exception (0..-1); // Factors which may influence the applicability of coverage. attribute String school (0..1); // Name of school for over-aged dependants. attribute Date accident (0..1); // Date of an accident which these services are addressing. attribute Coding accidentType (0..1); // Type of accident: work, auto, etc. attribute Coding interventionException (0..-1); // A list of intervention and exception codes which may influence the adjudication of the claim. attribute ItemsComponent item (0..-1); // First tier of goods and services. attribute Coding additionalMaterials (0..-1); // Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission. attribute MissingTeethComponent missingTeeth (0..-1); // A list of teeth which would be expected but are not found due to having been previously extracted or for other reasons. } class ClaimResponse extends Resource { // This resource provides the adjudication details from the processing of a Claim resource. enum RSLink { // The outcome of the processing. 0 : Null = "Missing in instance"; 1 : complete = "The processing completed without errors."; 2 : error = "The processing identified with errors."; } class ItemsComponent extends BackboneElement { attribute PositiveInt sequenceLinkId (1..1); // A service line number. attribute PositiveInt noteNumber (0..-1); // A list of note references to the notes provided below. attribute ItemAdjudicationComponent adjudication (0..-1); // The adjudications results. attribute ItemDetailComponent detail (0..-1); // The second tier service adjudications for submitted services. } class ItemAdjudicationComponent extends BackboneElement { attribute Coding code (1..1); // Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. attribute Money amount (0..1); // Monitory amount associated with the code. attribute Decimal value (0..1); // A non-monitary value for example a percentage. Mutually exclusive to the amount element above. } class ItemDetailComponent extends BackboneElement { attribute PositiveInt sequenceLinkId (1..1); // A service line number. attribute DetailAdjudicationComponent adjudication (0..-1); // The adjudications results. attribute SubDetailComponent subDetail (0..-1); // The third tier service adjudications for submitted services. } class DetailAdjudicationComponent extends BackboneElement { attribute Coding code (1..1); // Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. attribute Money amount (0..1); // Monitory amount associated with the code. attribute Decimal value (0..1); // A non-monitary value for example a percentage. Mutually exclusive to the amount element above. } class SubDetailComponent extends BackboneElement { attribute PositiveInt sequenceLinkId (1..1); // A service line number. attribute SubdetailAdjudicationComponent adjudication (0..-1); // The adjudications results. } class SubdetailAdjudicationComponent extends BackboneElement { attribute Coding code (1..1); // Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. attribute Money amount (0..1); // Monitory amount associated with the code. attribute Decimal value (0..1); // A non-monitary value for example a percentage. Mutually exclusive to the amount element above. } class AddedItemComponent extends BackboneElement { attribute PositiveInt sequenceLinkId (0..-1); // List of input service items which this service line is intended to replace. attribute Coding service (1..1); // A code to indicate the Professional Service or Product supplied. attribute Money fee (0..1); // The fee charged for the professional service or product.. attribute PositiveInt noteNumberLinkId (0..-1); // A list of note references to the notes provided below. attribute AddedItemAdjudicationComponent adjudication (0..-1); // The adjudications results. attribute AddedItemsDetailComponent detail (0..-1); // The second tier service adjudications for payor added services. } class AddedItemAdjudicationComponent extends BackboneElement { attribute Coding code (1..1); // Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. attribute Money amount (0..1); // Monitory amount associated with the code. attribute Decimal value (0..1); // A non-monitary value for example a percentage. Mutually exclusive to the amount element above. } class AddedItemsDetailComponent extends BackboneElement { attribute Coding service (1..1); // A code to indicate the Professional Service or Product supplied. attribute Money fee (0..1); // The fee charged for the professional service or product.. attribute AddedItemDetailAdjudicationComponent adjudication (0..-1); // The adjudications results. } class AddedItemDetailAdjudicationComponent extends BackboneElement { attribute Coding code (1..1); // Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. attribute Money amount (0..1); // Monitory amount associated with the code. attribute Decimal value (0..1); // A non-monitary value for example a percentage. Mutually exclusive to the amount element above. } class ErrorsComponent extends BackboneElement { attribute PositiveInt sequenceLinkId (0..1); // The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. attribute PositiveInt detailSequenceLinkId (0..1); // The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. attribute PositiveInt subdetailSequenceLinkId (0..1); // The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. attribute Coding code (1..1); // An error code,froma specified code system, which details why the claim could not be adjudicated. } class NotesComponent extends BackboneElement { attribute PositiveInt number (0..1); // An integer associated with each note which may be referred to from each service line item. attribute Coding type (0..1); // The note purpose: Print/Display. attribute String text (0..1); // The note text. } class CoverageComponent extends BackboneElement { attribute PositiveInt sequence (1..1); // A service line item. attribute Boolean focal (1..1); // The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated. attribute ResourceReference coverage (1..1); // Reference to the program or plan identification, underwriter or payor. attribute String businessArrangement (0..1); // The contract number of a business agreement which describes the terms and conditions. attribute Coding relationship (1..1); // The relationship of the patient to the subscriber. attribute String preAuthRef (0..-1); // A list of references from the Insurer to which these services pertain. attribute ResourceReference claimResponse (0..1); // The Coverages adjudication details. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. } attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute ResourceReference request (0..1); // Original request resource referrence. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute ResourceReference organization (0..1); // The Insurer who produced this adjudicated response. attribute ResourceReference requestProvider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference requestOrganization (0..1); // The organization which is responsible for the services rendered to the patient. attribute RSLink outcome (0..1); // Transaction status: error, complete. attribute String disposition (0..1); // A description of the status of the adjudication. attribute Coding payeeType (0..1); // Party to be reimbursed: Subscriber, provider, other. attribute ItemsComponent item (0..-1); // The first tier service adjudications for submitted services. attribute AddedItemComponent addItem (0..-1); // The first tier service adjudications for payor added services. attribute ErrorsComponent error (0..-1); // Mutually exclusive with Services Provided (Item). attribute Money totalCost (0..1); // The total cost of the services reported. attribute Money unallocDeductable (0..1); // The amount of deductable applied which was not allocated to any particular service line. attribute Money totalBenefit (0..1); // Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable). attribute Money paymentAdjustment (0..1); // Adjustment to the payment of this transaction which is not related to adjudication of this transaction. attribute Coding paymentAdjustmentReason (0..1); // Reason for the payment adjustment. attribute Date paymentDate (0..1); // Estimated payment data. attribute Money paymentAmount (0..1); // Payable less any payment adjustment. attribute Identifier paymentRef (0..1); // Payment identifer. attribute Coding reserved (0..1); // Status of funds reservation (For provider, for Patient, None). attribute Coding form (0..1); // The form to be used for printing the content. attribute NotesComponent note (0..-1); // Note text. attribute CoverageComponent coverage (0..-1); // Financial instrument by which payment information for health care. } class ClinicalImpression extends Resource { // A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter, but this varies greatly depending on the clinical workflow. This resource is called "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with the recording of assessment tools such as Apgar score. enum ClinicalImpressionStatus { // The workflow state of a clinical impression 0 : Null = "Missing in instance"; 1 : inprogress = "The assessment is still on-going and results are not yet final."; 2 : completed = "The assessment is done and the results are final."; 3 : enteredinerror = "This assessment was never actually done and the record is erroneous (e.g. Wrong patient)."; } class ClinicalImpressionInvestigationsComponent extends BackboneElement { attribute CodeableConcept code (1..1); // A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used. attribute ResourceReference item (0..-1); // A record of a specific investigation that was undertaken. } class ClinicalImpressionFindingComponent extends BackboneElement { attribute CodeableConcept item (1..1); // Specific text of code for finding or diagnosis. attribute String cause (0..1); // Which investigations support finding or diagnosis. } class ClinicalImpressionRuledOutComponent extends BackboneElement { attribute CodeableConcept item (1..1); // Specific text of code for diagnosis. attribute String reason (0..1); // Grounds for elimination. } attribute ResourceReference patient (1..1); // The patient being asssesed. attribute ResourceReference assessor (0..1); // The clinician performing the assessment. attribute ClinicalImpressionStatus status (1..1); // Identifies the workflow status of the assessment. attribute DateTime date (0..1); // The point in time at which the assessment was concluded (not when it was recorded). attribute String description (0..1); // A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. attribute ResourceReference previous (0..1); // A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes. attribute ResourceReference problem (0..-1); // This a list of the general problems/conditions for a patient. attribute Type trigger (0..1); // The request or event that necessitated this assessment. This may be a diagnosis, a Care Plan, a Request Referral, or some other resource. attribute ClinicalImpressionInvestigationsComponent investigations (0..-1); // One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes. attribute Uri protocol (0..1); // Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. attribute String summary (0..1); // A text summary of the investigations and the diagnosis. attribute ClinicalImpressionFindingComponent finding (0..-1); // Specific findings or diagnoses that was considered likely or relevant to ongoing treatment. attribute CodeableConcept resolved (0..-1); // Diagnoses/conditions resolved since the last assessment. attribute ClinicalImpressionRuledOutComponent ruledOut (0..-1); // Diagnosis considered not possible. attribute String prognosis (0..1); // Estimate of likely outcome. attribute ResourceReference plan (0..-1); // Plan of action after assessment. attribute ResourceReference action (0..-1); // Actions taken during assessment. } class Communication extends Resource { // An occurrence of information being transmitted. E.g., an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition. enum CommunicationStatus { // The status of the communication 0 : Null = "Missing in instance"; 1 : inprogress = "The communication transmission is ongoing."; 2 : completed = "The message transmission is complete, i.e., delivered to the recipient's destination."; 3 : suspended = "The communication transmission has been held by originating system/user request."; 4 : rejected = "The receiving system has declined to accept the message."; 5 : failed = "There was a failure in transmitting the message out."; } class CommunicationPayloadComponent extends BackboneElement { attribute Type content (1..1); // An individual message part for multi-part messages. } attribute Identifier identifier (0..-1); // Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute CodeableConcept category (0..1); // The type of message conveyed such as alert, notification, reminder, instruction, etc. attribute ResourceReference sender (0..1); // The entity (e.g., person, organization, clinical information system, or device) which was the source of the communication. attribute ResourceReference recipient (0..-1); // The entity (e.g., person, organization, clinical information system, or device) which was the target of the communication. attribute CommunicationPayloadComponent payload (0..-1); // Text, attachment(s), or resource(s) that was communicated to the recipient. attribute CodeableConcept medium (0..-1); // The communication medium, e.g., email, fax. attribute CommunicationStatus status (0..1); // The status of the transmission. attribute ResourceReference encounter (0..1); // The encounter within which the communication was sent. attribute DateTime sent (0..1); // The time when this communication was sent. attribute DateTime received (0..1); // The time when this communication arrived at the destination. attribute CodeableConcept reason (0..-1); // The reason or justification for the communication. attribute ResourceReference subject (0..1); // The patient who was the focus of this communication. } class CommunicationRequest extends Resource { // A request to convey information. E.g., the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition. enum CommunicationRequestStatus { // The status of the communication 0 : Null = "Missing in instance"; 1 : proposed = "The request has been proposed."; 2 : planned = "The request has been planned."; 3 : requested = "The request has been placed."; 4 : received = "The receiving system has received the request but not yet decided whether it will be performed."; 5 : accepted = "The receiving system has accepted the order, but work has not yet commenced."; 6 : inprogress = "The work to fulfill the order is happening."; 7 : completed = "The work has been complete, the report(s) released, and no further work is planned."; 8 : suspended = "The request has been held by originating system/user request."; 9 : rejected = "The receiving system has declined to fulfill the request."; 10 : failed = "The communication was attempted, but due to some procedural error, it could not be completed."; } class CommunicationRequestPayloadComponent extends BackboneElement { attribute Type content (1..1); // An individual message part for multi-part messages. } attribute Identifier identifier (0..-1); // A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system. attribute CodeableConcept category (0..1); // The type of message to be sent such as alert, notification, reminder, instruction, etc. attribute ResourceReference sender (0..1); // The entity (e.g., person, organization, clinical information system, or device) which is to be the source of the communication. attribute ResourceReference recipient (0..-1); // The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication. attribute CommunicationRequestPayloadComponent payload (0..-1); // Text, attachment(s), or resource(s) to be communicated to the recipient. attribute CodeableConcept medium (0..-1); // The communication medium to be used, e.g., email, fax. attribute ResourceReference requester (0..1); // The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application. attribute CommunicationRequestStatus status (0..1); // The status of the proposal or order. attribute ResourceReference encounter (0..1); // The encounter within which the communication request was created. attribute DateTime scheduledTime (0..1); // The time when this communication is to occur. attribute CodeableConcept reason (0..-1); // The reason or justification for the communication request. attribute DateTime orderedOn (0..1); // The time when the request was made. attribute ResourceReference subject (0..1); // The patient who is the focus of this communication request. attribute CodeableConcept priority (0..1); // Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine. } class Composition extends Resource { // A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. enum CompositionStatus { // The workflow/clinical status of the composition 0 : Null = "Missing in instance"; 1 : preliminary = "This is a preliminary composition or document (also known as initial or interim). The content may be incomplete or unverified."; 2 : final_ = "This version of the composition is complete and verified by an appropriate person and no further work is planned. Any subsequent updates would be on a new version of the composition."; 3 : appended = "The composition or document has been modified subsequent to being released as "final", and is complete and verified by an authorized person. The modifications added new information to the composition or document, but did not revise existing content."; 4 : amended = "The composition or document has been modified subsequent to being released as "final", and is complete and verified by an authorized person."; 5 : enteredinerror = "The composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid."; } enum CompositionAttestationMode { // The way in which a person authenticated a composition 0 : Null = "Missing in instance"; 1 : personal = "The person authenticated the content in their personal capacity."; 2 : professional = "The person authenticated the content in their professional capacity."; 3 : legal = "The person authenticated the content and accepted legal responsibility for its content."; 4 : official = "The organization authenticated the content as consistent with their policies and procedures."; } class CompositionAttesterComponent extends BackboneElement { attribute CompositionAttestationMode mode (1..-1); // The type of attestation the authenticator offers. attribute DateTime time (0..1); // When composition was attested by the party. attribute ResourceReference party (0..1); // Who attested the composition in the specified way. } class CompositionEventComponent extends BackboneElement { attribute CodeableConcept code (0..-1); // This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. attribute Period period (0..1); // The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time. attribute ResourceReference detail (0..-1); // Full details for the event(s) the composition/documentation consents. } class SectionComponent extends BackboneElement { attribute String title (0..1); // The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. attribute CodeableConcept code (0..1); // A code identifying the kind of content contained within the section. This must be consistent with the section title. attribute ResourceReference content (0..1); // The content (narrative and data entries) associated with the section. attribute SectionComponent section (0..-1); // A nested sub-section within this section. } attribute Identifier identifier (0..1); // Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time. attribute DateTime date (1..1); // The composition editing time, when the composition was last logically changed by the author. attribute CodeableConcept type (1..1); // Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition. attribute CodeableConcept class_ (0..1); // A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type. attribute String title (0..1); // Official human-readable label for the composition. attribute CompositionStatus status (1..1); // The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. attribute Code confidentiality (0..1); // The code specifying the level of confidentiality of the Composition. attribute ResourceReference subject (1..1); // Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure). attribute ResourceReference author (1..-1); // Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.). attribute CompositionAttesterComponent attester (0..-1); // A participant who has attested to the accuracy of the composition/document. attribute ResourceReference custodian (0..1); // Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information. attribute CompositionEventComponent event (0..-1); // The clinical service, such as a colonoscopy or an appendectomy, being documented. attribute ResourceReference encounter (0..1); // Describes the clinical encounter or type of care this documentation is associated with. attribute SectionComponent section (0..-1); // The root of the sections that make up the composition. } class ConceptMap extends Resource { // A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models. enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum ConceptEquivalence { // The degree of equivalence between concepts 0 : Null = "Missing in instance"; 1 : equivalent = "The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical)."; 2 : equal = "The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identifical or irrelevant (i.e. intensionally identical)."; 3 : wider = "The target mapping is wider in meaning than the source concept."; 4 : subsumes = "The target mapping subsumes the meaning of the source concept (e.g. the source is-a target)."; 5 : narrower = "The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally."; 6 : specialises = "The target mapping specialises the meaning of the source concept (e.g. the target is-a source)."; 7 : inexact = "The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally."; 8 : unmatched = "There is no match for this concept in the destination concept system."; 9 : disjoint = "This is an explicit assertion that there is no mapping between the source and target concept."; } class ConceptMapContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the concept map. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } class ConceptMapElementComponent extends BackboneElement { attribute Uri codeSystem (0..1); // An absolute URI that identifies the Code System (if the source is a value value set that crosses more than one code system). attribute Code code (0..1); // Identity (code or path) or the element/item being mapped. attribute OtherElementComponent dependsOn (0..-1); // A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value. attribute ConceptMapElementMapComponent map (0..-1); // A concept from the target value set that this concept maps to. } class OtherElementComponent extends BackboneElement { attribute Uri element (1..1); // A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. attribute Uri codeSystem (1..1); // An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that cross code systems). attribute String code (1..1); // Identity (code or path) or the element/item that the map depends on / refers to. } class ConceptMapElementMapComponent extends BackboneElement { attribute Uri codeSystem (0..1); // An absolute URI that identifies the code system of the target code (if the target is a value set that cross code systems). attribute Code code (0..1); // Identity (code or path) or the element/item that the map refers to. attribute ConceptEquivalence equivalence (1..1); // The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. attribute String comments (0..1); // A description of status/issues in mapping that conveys additional information not represented in the structured data. attribute OtherElementComponent product (0..-1); // A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on. } attribute Uri url (0..1); // An absolute uri that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique URI, and an be urn:uuid: or urn:oid:). attribute Identifier identifier (0..1); // Formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance. attribute String version (0..1); // The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. attribute String name (0..1); // A free text natural language name describing the concept map. attribute CodeableConcept useContext (0..-1); // The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of concept maps. attribute String publisher (0..1); // The name of the individual or organization that published the concept map. attribute ConceptMapContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute String description (0..1); // A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. attribute String requirements (0..1); // Explains why this concept map is needed and why it's been constrained as it has. attribute String copyright (0..1); // A copyright statement relating to the concept map and/or its contents. attribute ConformanceResourceStatus status (1..1); // The status of the concept map. attribute Boolean experimental (0..1); // This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute DateTime date (0..1); // The date that the concept map status was last changed. attribute Type source (1..1); // The source value set that specifies the concepts that are being mapped. attribute Type target (1..1); // The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made. attribute ConceptMapElementComponent element (0..-1); // Mappings for an individual concept in the source to one or more concepts in the target. } class Condition extends Resource { // Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a Diagnosis during an Encounter; populating a problem List or a Summary Statement, such as a Discharge Summary. enum ConditionStatus { // The clinical status of the Condition or diagnosis 0 : Null = "Missing in instance"; 1 : provisional = "This is a tentative diagnosis - still a candidate that is under consideration."; 2 : working = "The patient is being treated on the basis that this is the condition, but it is still not confirmed."; 3 : confirmed = "There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition."; 4 : refuted = "This condition has been ruled out by diagnostic and clinical evidence."; 5 : enteredinerror = "The statement was entered in error and Is not valid."; 6 : unknown = "The condition status is unknown. Note that "unknown" is a value of last resort and every attempt should be made to provide a meaningful value other than "unknown"."; } class ConditionStageComponent extends BackboneElement { attribute CodeableConcept summary (0..1); // A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific. attribute ResourceReference assessment (0..-1); // Reference to a formal record of the evidence on which the staging assessment is based. } class ConditionEvidenceComponent extends BackboneElement { attribute CodeableConcept code (0..1); // A manifestation or symptom that led to the recording of this condition. attribute ResourceReference detail (0..-1); // Links to other relevant information, including pathology reports. } class ConditionLocationComponent extends BackboneElement { attribute Type site (0..1); // Code that identifies the structural location. } class ConditionDueToComponent extends BackboneElement { attribute CodeableConcept code (0..1); // Code that identifies the target of this relationship. The code takes the place of a detailed instance target. attribute ResourceReference target (0..1); // Target of the relationship. } class ConditionOccurredFollowingComponent extends BackboneElement { attribute CodeableConcept code (0..1); // Code that identifies the target of this relationship. The code takes the place of a detailed instance target. attribute ResourceReference target (0..1); // Target of the relationship. } attribute Identifier identifier (0..-1); // This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute ResourceReference patient (1..1); // Indicates the patient who the condition record is associated with. attribute ResourceReference encounter (0..1); // Encounter during which the condition was first asserted. attribute ResourceReference asserter (0..1); // Person who takes responsibility for asserting the existence of the condition as part of the electronic record. attribute Date dateAsserted (0..1); // Estimated or actual date the condition/problem/diagnosis was first detected/suspected. attribute CodeableConcept code (1..1); // Identification of the condition, problem or diagnosis. attribute CodeableConcept category (0..1); // A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis. attribute ConditionStatus clinicalStatus (1..1); // The clinical status of the condition. attribute CodeableConcept severity (0..1); // A subjective assessment of the severity of the condition as evaluated by the clinician. attribute Type onset (0..1); // Estimated or actual date or date-time the condition began, in the opinion of the clinician. attribute Type abatement (0..1); // The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate. attribute ConditionStageComponent stage (0..1); // Clinical stage or grade of a condition. May include formal severity assessments. attribute ConditionEvidenceComponent evidence (0..-1); // Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed. attribute ConditionLocationComponent location (0..-1); // The anatomical location where this condition manifests itself. attribute ConditionDueToComponent dueTo (0..-1); // Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition. attribute ConditionOccurredFollowingComponent occurredFollowing (0..-1); // Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition. attribute String notes (0..1); // Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. } class Conformance extends Resource { // A conformance statement is a set of requirements for a desired implementation or a description of how a target application fulfills those requirements in a particular implementation. enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum RestfulConformanceMode { // The mode of a RESTful conformance statement 0 : Null = "Missing in instance"; 1 : client = "The application acts as a client for this resource."; 2 : server = "The application acts as a server for this resource."; } enum TypeRestfulInteraction { // Operations supported by REST at the type or instance level 0 : Null = "Missing in instance"; 1 : read = ""; 2 : vread = ""; 3 : update = ""; 4 : delete = ""; 5 : historyinstance = ""; 6 : validate = ""; 7 : historytype = ""; 8 : create = ""; 9 : searchtype = ""; } enum VersioningPolicy { // How the system supports versioning for a resource 0 : Null = "Missing in instance"; 1 : noversion = "VersionId meta-property is not suppoerted (server) or used (client)."; 2 : versioned = "VersionId meta-property is suppoerted (server) or used (client)."; 3 : versionedupdate = "VersionId is must be correct for updates (server) or will be specified (If-match header) for updates (client)."; } enum SearchParamType { // Data types allowed to be used for search parameters 0 : Null = "Missing in instance"; 1 : number = "Search parameter SHALL be a number (a whole number, or a decimal)."; 2 : date = "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported."; 3 : string = "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces."; 4 : token = "Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used."; 5 : reference = "A reference to another resource."; 6 : composite = "A composite search parameter that combines a search on two values together."; 7 : quantity = "A search parameter that searches on a quantity."; 8 : uri = "A search parameter that searches on a URI (RFC 3986)."; } enum SystemRestfulInteraction { // Operations supported by REST at the system level 0 : Null = "Missing in instance"; 1 : transaction = ""; 2 : searchsystem = ""; 3 : historysystem = ""; } enum MessageSignificanceCategory { // The impact of the content of a message 0 : Null = "Missing in instance"; 1 : consequence = "The message represents/requests a change that should not be processed more than once. E.g. Making a booking for an appointment."; 2 : currency = "The message represents a response to query for current information. Retrospective processing is wrong and/or wasteful."; 3 : notification = "The content is not necessarily intended to be current, and it can be reprocessed, though there may be version issues created by processing old notifications."; } enum MessageConformanceEventMode { // The mode of a message conformance statement 0 : Null = "Missing in instance"; 1 : sender = "The application sends requests and receives responses."; 2 : receiver = "The application receives requests and sends responses."; } enum DocumentMode { // Whether the application produces or consumes documents 0 : Null = "Missing in instance"; 1 : producer = "The application produces documents of the specified type."; 2 : consumer = "The application consumes documents of the specified type."; } class ConformanceContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the conformance. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } class ConformanceSoftwareComponent extends BackboneElement { attribute String name (1..1); // Name software is known by. attribute String version (0..1); // The version identifier for the software covered by this statement. attribute DateTime releaseDate (0..1); // Date this version of the software released. } class ConformanceImplementationComponent extends BackboneElement { attribute String description (1..1); // Information about the specific installation that this conformance statement relates to. attribute Uri url (0..1); // An absolute base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. } class ConformanceRestComponent extends BackboneElement { attribute RestfulConformanceMode mode (1..1); // Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. attribute String documentation (0..1); // Information about the system's restful capabilities that apply across all applications, such as security. attribute ConformanceRestSecurityComponent security (0..1); // Information about security implementation from an interface perspective - what a client needs to know. attribute ConformanceRestResourceComponent resource (1..-1); // A specification of the restful capabilities of the solution for a specific resource type. attribute SystemInteractionComponent interaction (0..-1); // A specification of restful operations supported by the system. attribute ConformanceRestOperationComponent operation (0..-1); // Definition of an operation or a named query and with its parameters and their meaning and type. attribute Uri documentMailbox (0..-1); // A list of absolute URIs that identify profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose. attribute Uri compartment (0..-1); // An absolute URI which is a reference to the definition of a compartment hosted by the system. } class ConformanceRestSecurityComponent extends BackboneElement { attribute Boolean cors (0..1); // Server adds CORS headers when responding to requests - this enables javascript applications to use the server. attribute CodeableConcept service (0..-1); // Types of security services are supported/required by the system. attribute String description (0..1); // General description of how security works. attribute ConformanceRestSecurityCertificateComponent certificate (0..-1); // Certificates associated with security profiles. } class ConformanceRestSecurityCertificateComponent extends BackboneElement { attribute Code type (0..1); // Mime type for certificate. attribute Base64Binary blob (0..1); // Actual certificate. } class ConformanceRestResourceComponent extends BackboneElement { attribute Code type (1..1); // A type of resource exposed via the restful interface. attribute ResourceReference profile (0..1); // A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations. attribute ResourceInteractionComponent interaction (1..-1); // Identifies a restful operation supported by the solution. attribute VersioningPolicy versioning (0..1); // Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. attribute Boolean readHistory (0..1); // A flag for whether the server is able to return past versions as part of the vRead operation. attribute Boolean updateCreate (0..1); // A flag to indicate that the server allows or needs to allow the client to create new identities on the server (e.g. 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. attribute Boolean conditionalCreate (0..1); // A flag that indicates that the server supports conditional create. attribute Boolean conditionalUpdate (0..1); // A flag that indicates that the server supports conditional update. attribute Boolean conditionalDelete (0..1); // A flag that indicates that the server supports conditional delete. attribute String searchInclude (0..-1); // A list of _include values supported by the server. attribute ConformanceRestResourceSearchParamComponent searchParam (0..-1); // 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. } class ResourceInteractionComponent extends BackboneElement { attribute TypeRestfulInteraction code (1..1); // Coded identifier of the operation, supported by the system resource. attribute String documentation (0..1); // 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'. } class ConformanceRestResourceSearchParamComponent extends BackboneElement { attribute String name (1..1); // The name of the search parameter used in the interface. attribute Uri definition (0..1); // 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]]]). attribute SearchParamType type (1..1); // The type of value a search parameter refers to, and how the content is interpreted. attribute String documentation (0..1); // This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. attribute Code target (0..-1); // Types of resource (if a resource is referenced). attribute String chain (0..-1); // Chained names supported. } class SystemInteractionComponent extends BackboneElement { attribute SystemRestfulInteraction code (1..1); // A coded identifier of the operation, supported by the system. attribute String documentation (0..1); // 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. } class ConformanceRestOperationComponent extends BackboneElement { attribute String name (1..1); // The name of a query, which is used in the _query parameter when the query is called. attribute ResourceReference definition (1..1); // Where the formal definition can be found. } class ConformanceMessagingComponent extends BackboneElement { attribute Uri endpoint (0..1); // An address to which messages and/or replies are to be sent. attribute UnsignedInt reliableCache (0..1); // 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). attribute String documentation (0..1); // Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. attribute ConformanceMessagingEventComponent event (1..-1); // A description of the solution's support for an event at this end point. } class ConformanceMessagingEventComponent extends BackboneElement { attribute Coding code (1..1); // A coded identifier of a supported messaging event. attribute MessageSignificanceCategory category (0..1); // The impact of the content of the message. attribute MessageConformanceEventMode mode (1..1); // The mode of this event declaration - whether application is sender or receiver. attribute Coding protocol (0..-1); // A list of the messaging transport protocol(s) identifiers, supported by this endpoint. attribute Code focus (1..1); // A resource associated with the event. This is the resource that defines the event. attribute ResourceReference request (1..1); // Information about the request for this event. attribute ResourceReference response (1..1); // Information about the response for this event. attribute String documentation (0..1); // Guidance on how this event is handled, such as internal system trigger points, business rules, etc. } class ConformanceDocumentComponent extends BackboneElement { attribute DocumentMode mode (1..1); // Mode of this document declaration - whether application is producer or consumer. attribute String documentation (0..1); // A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. attribute ResourceReference profile (1..1); // A constraint on a resource used in the document. } attribute Uri url (0..1); // An absolute uri that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique URI, and an be urn:uuid: or urn:oid:). attribute String version (0..1); // The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. attribute String name (0..1); // A free text natural language name identifying the conformance statement. attribute String publisher (0..1); // The name of the individual or organization that published the conformance. attribute ConformanceContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute String description (0..1); // A free text natural language description of the conformance statement and its use. Typically, this is used when the conformance statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. attribute String requirements (0..1); // Explains why this conformance statement is needed and why it's been constrained as it has. attribute String copyright (0..1); // A copyright statement relating to the conformamce statement and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the system described by the conformance statement. attribute ConformanceResourceStatus status (0..1); // The status of this conformance statement. attribute Boolean experimental (0..1); // A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute DateTime date (1..1); // The date (and optionally time) when the conformance statement was published. attribute ConformanceSoftwareComponent software (0..1); // Software that is covered by this conformance statement. It is used when the conformance statement describes the capabilities of a particular software version, independent of an installation. attribute ConformanceImplementationComponent implementation (0..1); // Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program. attribute Id fhirVersion (1..1); // The version of the FHIR specification on which this conformance statement is based. attribute Boolean acceptUnknown (1..1); // A flag that indicates whether the application accepts unknown elements as part of a resource. attribute Code format (1..-1); // A list of the formats supported by this implementation using their content types. attribute ResourceReference profile (0..-1); // A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients 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. attribute ConformanceRestComponent rest (0..-1); // A definition of the restful capabilities of the solution, if any. attribute ConformanceMessagingComponent messaging (0..-1); // A description of the messaging capabilities of the solution. attribute ConformanceDocumentComponent document (0..-1); // A document definition. } class Contract extends Resource { // A formal agreement between parties regarding the conduct of business, exchange of information or other matters. class ActorComponent extends BackboneElement { attribute ResourceReference entity (1..1); // Who or what actors are assigned roles in this Contract. attribute CodeableConcept role (0..-1); // Role type of actors assigned roles in this Contract. } class ValuedItemComponent extends BackboneElement { attribute Type entity (0..1); // Specific type of Contract Valued Item that may be priced. attribute Identifier identifier (0..1); // Identifies a Contract Valued Item instance. attribute DateTime effectiveTime (0..1); // Indicates the time during which this Contract ValuedItem information is effective. attribute Quantity quantity (0..1); // Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances. attribute Money unitPrice (0..1); // A Contract Valued Item unit valuation measure. attribute Decimal factor (0..1); // A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. attribute Decimal points (0..1); // An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point. attribute Money net (0..1); // Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. } class SignatoryComponent extends BackboneElement { attribute Coding type (1..1); // Role of this Contract signer, e.g., notary, grantee. attribute ResourceReference party (1..1); // Party which is a signator to this Contract. attribute String signature (1..1); // Legally binding Contract DSIG signature contents in Base64. } class TermComponent extends BackboneElement { attribute Identifier identifier (0..1); // Unique identifier for this particular Contract Provision. attribute DateTime issued (0..1); // When this Contract Provision was issued. attribute Period applies (0..1); // Relevant time or time-period when this Contract Provision is applicable. attribute CodeableConcept type (0..1); // Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g., life time maximum benefit. attribute CodeableConcept subType (0..1); // Subtype of this Contract Provision, e.g., life time maximum payment for a contract term for specific valued item, e.g., disability payment. attribute ResourceReference subject (0..1); // Who or what this Contract Provision is about. attribute CodeableConcept action (0..-1); // Action stipulated by this Contract Provision. attribute CodeableConcept actionReason (0..-1); // Reason or purpose for the action stipulated by this Contract Provision. attribute TermActorComponent actor (0..-1); // List of actors participating in this Contract Provision. attribute String text (0..1); // Human readable form of this Contract Provision. attribute TermValuedItemComponent valuedItem (0..-1); // Contract Provision Valued Item List. attribute TermComponent group (0..-1); // Nested group of Contract Provisions. } class TermActorComponent extends BackboneElement { attribute ResourceReference entity (1..1); // The actor assigned a role in this Contract Provision. attribute CodeableConcept role (0..-1); // Role played by the actor assigned this role in this Contract Provision. } class TermValuedItemComponent extends BackboneElement { attribute Type entity (0..1); // Specific type of Contract Provision Valued Item that may be priced. attribute Identifier identifier (0..1); // Identifies a Contract Provision Valued Item instance. attribute DateTime effectiveTime (0..1); // Indicates the time during which this Contract Term ValuedItem information is effective. attribute Quantity quantity (0..1); // Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances. attribute Money unitPrice (0..1); // A Contract Provision Valued Item unit valuation measure. attribute Decimal factor (0..1); // A real number that represents a multiplier used in determining the overall value of the Contract Provision Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. attribute Decimal points (0..1); // An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Provision Valued Item delivered. The concept of Points allows for assignment of point values for a Contract ProvisionValued Item, such that a monetary amount can be assigned to each point. attribute Money net (0..1); // Expresses the product of the Contract Provision Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. } class FriendlyLanguageComponent extends BackboneElement { attribute Type content (1..1); // Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability. } class LegalLanguageComponent extends BackboneElement { attribute Type content (1..1); // Contract legal text in human renderable form. } class ComputableLanguageComponent extends BackboneElement { attribute Type content (1..1); // Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal). } attribute Identifier identifier (0..1); // Unique identifier for this Contract. attribute DateTime issued (0..1); // When this Contract was issued. attribute Period applies (0..1); // Relevant time or time-period when this Contract is applicable. attribute ResourceReference subject (0..-1); // Who and/or what this Contract is about: typically a Patient, Organization, or valued items such as goods and services. attribute ResourceReference authority (0..-1); // A formally or informally recognized grouping of people, principals, organizations, or jurisdictions formed for the purpose of achieving some form of collective action such as the promulgation, administration and enforcement of contracts and policies. attribute ResourceReference domain (0..-1); // Recognized governance framework or system operating with a circumscribed scope in accordance with specified principles, policies, processes or procedures for managing rights, actions, or behaviors of parties or principals relative to resources. attribute CodeableConcept type (0..1); // Type of Contract such as an insurance policy, real estate contract, a will, power of attorny, Privacy or Security policy , trust framework agreement, etc. attribute CodeableConcept subType (0..-1); // More specific type or specialization of an overarching or more general contract such as auto insurance, home owner insurance, prenupial agreement, Advanced-Directive, or privacy consent. attribute CodeableConcept action (0..-1); // Action stipulated by this Contract. attribute CodeableConcept actionReason (0..-1); // Reason for action stipulated by this Contract. attribute ActorComponent actor (0..-1); // List of Contract actors. attribute ValuedItemComponent valuedItem (0..-1); // Contract Valued Item List. attribute SignatoryComponent signer (0..-1); // Party signing this Contract. attribute TermComponent term (0..-1); // One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups. attribute Type binding (0..1); // Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the "source of truth" and which would be the basis for legal action related to enforcement of this Contract. attribute FriendlyLanguageComponent friendly (0..-1); // The "patient friendly language" versionof the Contract in whole or in parts. "Patient friendly language" means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement. attribute LegalLanguageComponent legal (0..-1); // List of Legal expressions or representations of this Contract. attribute ComputableLanguageComponent rule (0..-1); // List of Computable Policy Rule Language Representations of this Contract. } class Contraindication extends Resource { // Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient. E.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc. class ContraindicationMitigationComponent extends BackboneElement { attribute CodeableConcept action (1..1); // Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication. attribute DateTime date (0..1); // Indicates when the mitigating action was documented. attribute ResourceReference author (0..1); // Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring. } attribute ResourceReference patient (0..1); // Indicates the patient whose record the contraindication is associated with. attribute CodeableConcept category (0..1); // Identifies the general type of issue identified. attribute Code severity (0..1); // Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. attribute ResourceReference implicated (0..-1); // Indicates the resource representing the current activity or proposed activity that. attribute String detail (0..1); // A textual explanation of the contraindication. attribute DateTime date (0..1); // The date or date-time when the contraindication was initially identified. attribute ResourceReference author (0..1); // Identifies the provider or software that identified the. attribute Identifier identifier (0..1); // Business identifier associated with the contraindication record. attribute Uri reference (0..1); // The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. attribute ContraindicationMitigationComponent mitigation (0..-1); // Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action. } class Coverage extends Resource { // Financial instrument which may be used to pay for or reimburse for health care products and services. attribute ResourceReference issuer (0..1); // The program or plan underwriter or payor. attribute Identifier bin (0..1); // Business Identification Number (BIN number) used to identify the routing of eclaims if the insurer themselves don't have a BIN number for all of their business. attribute Period period (0..1); // Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force. attribute Coding type (0..1); // The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health. attribute Identifier subscriberId (0..1); // The id issued to the subscriber. attribute Identifier identifier (0..-1); // The main (and possibly only) identifier for the coverage - often referred to as a Member Id, Subscriber Id, Certificate number or Personal Health Number or Case ID. attribute String group (0..1); // Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. attribute String plan (0..1); // Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. attribute String subPlan (0..1); // Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. attribute PositiveInt dependent (0..1); // A unique identifier for a dependent under the coverage. attribute PositiveInt sequence (0..1); // An optional counter for a particular instance of the identified coverage which increments upon each renewal. attribute ResourceReference subscriber (0..1); // The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due. attribute Identifier network (0..1); // The identifier for a community of providers. attribute ResourceReference contract (0..-1); // The policy(s) which constitute this insurance coverage. } class DataElement extends Resource { // The formal description of a single piece of information that can be gathered and reported. enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum DataelementSpecificity { // Indicates the degree of precision of the data element definition 0 : Null = "Missing in instance"; 1 : comparable = "The data element is sufficiently well-constrained that multiple pieces of data captured according to the constraints of the data element will be comparable (though in some cases, a degree of automated conversion/normalization may be required)."; 2 : fullyspecified = "The data element is fully specified down to a single value set, single unit of measure, single data type, etc. Multiple pieces of data associated with this data element are fully compareable."; 3 : equivalent = "The data element allows multiple units of measure having equivalent meaning. E.g. "cc" (cubic centimeter) and "mL"."; 4 : convertable = "The data element allows multiple units of measure that are convertable between each other (e.g. Inches and centimeters) and/or allows data to be captured in multiple value sets for which a known mapping exists allowing conversion of meaning."; 5 : scaleable = "A convertable data element where unit conversions are different only by a power of 10. E.g. g, mg, kg."; 6 : flexible = "The data element is unconstrained in units, choice of data types and/or choice of vocabulary such that automated comparison of data captured using the data element is not possible."; } class DataElementContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the data element. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } class DataElementMappingComponent extends BackboneElement { attribute Id identity (1..1); // An Internal id that is used to identify this mapping set when specific mappings are made on a per-element basis. attribute Uri uri (0..1); // An absolute URI that identifies the specification that this mapping is expressed to. attribute String name (0..1); // A name for the specification that is being mapped to. attribute String comments (0..1); // Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. } attribute Uri url (0..1); // An absolute uri that is used to identify this element when it is referenced in a specification, model, design or an instance (should be globally unique URI, and an be urn:uuid: or urn:oid:). attribute Identifier identifier (0..1); // Formal identifier that is used to identify this data element when it is represented in other formats, or referenced in a specification, model, design or an instance. attribute String version (0..1); // The identifier that is used to identify this version of the data element when it is referenced in a StructureDefinition, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. attribute String name (0..1); // The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. attribute CodeableConcept useContext (0..-1); // The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of data element definitions. attribute Boolean experimental (0..1); // A flag to indicate that this search data elemnt definition is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute ConformanceResourceStatus status (1..1); // The status of the data element. attribute DateTime date (0..1); // The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired). attribute String copyright (0..1); // A copyright statement relating to the definition of the data element. Copyright statements are generally legal restrictions on the use and publishing of the details of the definition of the data element. attribute String publisher (0..1); // The name of the individual or organization that published the data element. attribute DataElementContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute DataelementSpecificity specificity (0..1); // Identifies how precise the data element is in its definition. attribute DataElementMappingComponent mapping (0..-1); // Identifies a specification (other than a terminology) that the elements that make up the DataElement hav some correspondance with. attribute ElementDefinition element (1..-1); // Defines the structure, type, allowed values and other constraining characteristics of the data element. } class Device extends Resource { // This resource identifies an instance of a manufactured thing that is used in the provision of healthcare without being substantially changed through that activity. The device may be a machine, an insert, a computer, an application, etc. This includes durable (reusable) medical equipment as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health. enum Devicestatus { // The availability status of the device 0 : Null = "Missing in instance"; 1 : available = "The Device is available for use."; 2 : notavailable = "The Device is no longer available for use ( e.g lost, expired, damaged)."; 3 : enteredinerror = "The Device was entered in error and voided."; } attribute Identifier identifier (0..-1); // Unique instance identifiers assigned to a device by organizations like manufacturers or owners . If the identifier identifies the type of device, Device.type should be used. attribute CodeableConcept type (1..1); // Code or identifier to identify a kind of device. attribute Devicestatus status (0..1); // Status of the Device availability. attribute String manufacturer (0..1); // A name of the manufacturer. attribute String model (0..1); // The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. attribute String version (0..1); // The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. attribute DateTime manufactureDate (0..1); // The Date and time when the device was manufactured. attribute DateTime expiry (0..1); // The date and time beyond which this device is no longer valid or should not be used (if applicable). attribute String udi (0..1); // United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. attribute String lotNumber (0..1); // Lot number assigned by the manufacturer. attribute ResourceReference owner (0..1); // An organization that is responsible for the provision and ongoing maintenance of the device. attribute ResourceReference location (0..1); // The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location. attribute ResourceReference patient (0..1); // Patient information, if the resource is affixed to a person. attribute ContactPoint contact (0..-1); // Contact details for an organization or a particular human that is responsible for the device. attribute Uri url (0..1); // A network address on which the device may be contacted directly. } class DeviceComponent extends Resource { // Describes the characteristics, operational status and capabilities of a medical-related component of a medical device. enum MeasurementPrinciple { // Different measurement principle supported by the device 0 : Null = "Missing in instance"; 1 : other = "Measurement principle isn't in the list."; 2 : chemical = "Measurement is done using chemical."; 3 : electrical = "Measurement is done using electrical."; 4 : impedance = "Measurement is done using impedance."; 5 : nuclear = "Measurement is done using nuclear."; 6 : optical = "Measurement is done using optical."; 7 : thermal = "Measurement is done using thermal."; 8 : biological = "Measurement is done using biological."; 9 : mechanical = "Measurement is done using mechanical."; 10 : acoustical = "Measurement is done using acoustical."; 11 : manual = "Measurement is done using manual."; } class DeviceComponentProductionSpecificationComponent extends BackboneElement { attribute CodeableConcept specType (0..1); // Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc. attribute Identifier componentId (0..1); // Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of. attribute String productionSpec (0..1); // Describes the printable string defining the component. } attribute CodeableConcept type (1..1); // Describes the specific component type as defined in the object-oriented or metric nomenclature partition. attribute Identifier identifier (1..1); // Describes the local assigned unique identification by the software. For example: handle ID. attribute Instant lastSystemChange (1..1); // Describes the timestamp for the most recent system change which includes device configuration or setting change. attribute ResourceReference source (0..1); // Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc. attribute ResourceReference parent (0..1); // Describes the link to the parent resource. For example: Channel is linked to its VMD parent. attribute CodeableConcept operationalStatus (0..-1); // Indicates current operational status of the device. For example: On, Off, Standby, etc. attribute CodeableConcept parameterGroup (0..1); // Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular. attribute MeasurementPrinciple measurementPrinciple (0..1); // Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. attribute DeviceComponentProductionSpecificationComponent productionSpecification (0..-1); // Describes the production specification such as component revision, serial number, etc. attribute CodeableConcept languageCode (0..1); // Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US. } class DeviceMetric extends Resource { // Describes a measurement, calculation or setting capability of a medical device. enum MetricOperationalStatus { // Describes the operational status of the DeviceMetric 0 : Null = "Missing in instance"; 1 : on = "The DeviceMetric is operating and will generate DeviceObservations."; 2 : off = "The DeviceMetric is not operating."; 3 : standby = "The DeviceMetric is operating, but will not generate any DeviceObservations."; } enum MetricColor { // Describes the typical color of representation 0 : Null = "Missing in instance"; 1 : black = "Color for representation - black."; 2 : red = "Color for representation - red."; 3 : green = "Color for representation - green."; 4 : yellow = "Color for representation - yellow."; 5 : blue = "Color for representation - blue."; 6 : magenta = "Color for representation - magenta."; 7 : cyan = "Color for representation - cyan."; 8 : white = "Color for representation - white."; } enum MetricCategory { // Describes the category of the metric 0 : Null = "Missing in instance"; 1 : measurement = "DeviceObservations generated for this DeviceMetric are measured."; 2 : setting = "DeviceObservations generated for this DeviceMetric is a setting that will influence the behavior of the Device."; 3 : calculation = "DeviceObservations generated for this DeviceMetric are calculated."; 4 : unspecified = "The category of this DeviceMetric is unspecified."; } enum MetricCalibrationType { // Describes the type of a metric calibration 0 : Null = "Missing in instance"; 1 : unspecified = "TODO."; 2 : offset = "TODO."; 3 : gain = "TODO."; 4 : twopoint = "TODO."; } enum MetricCalibrationState { // Describes the state of a metric calibration 0 : Null = "Missing in instance"; 1 : notcalibrated = "The metric has not been calibrated."; 2 : calibrationrequired = "The metric needs to be calibrated."; 3 : calibrated = "The metric has been calibrated."; 4 : unspecified = "The state of calibration of this metric is unspecified."; } class DeviceMetricCalibrationComponent extends BackboneElement { attribute MetricCalibrationType type (0..1); // Describes the type of the calibration method. attribute MetricCalibrationState state (0..1); // Describes the state of the calibration. attribute Instant time (0..1); // Describes the time last calibration has been performed. } attribute CodeableConcept type (1..1); // Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc. attribute Identifier identifier (1..1); // Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device. attribute CodeableConcept unit (0..1); // Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc. attribute ResourceReference source (0..1); // Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc. attribute ResourceReference parent (0..1); // Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location. attribute MetricOperationalStatus operationalStatus (0..1); // Indicates current operational state of the device. For example: On, Off, Standby, etc. attribute MetricColor color (0..1); // Describes the typical color of the representation of observations that have been generated for this DeviceMetric. attribute MetricCategory category (1..1); // Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. attribute Timing measurementPeriod (0..1); // Describes the measurement repetition time. This is not necessarily the same as the update period. attribute DeviceMetricCalibrationComponent calibration (0..-1); // Describes the calibrations that have been performed or that are required to be performed. } class DeviceUseRequest extends Resource { // Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker. enum DeviceUseRequestStatus { // Codes representing the status of the request 0 : Null = "Missing in instance"; 1 : proposed = "The request has been proposed."; 2 : planned = "The request has been planned."; 3 : requested = "The request has been placed."; 4 : received = "The receiving system has received the request but not yet decided whether it will be performed."; 5 : accepted = "The receiving system has accepted the request but work has not yet commenced."; 6 : inprogress = "The work to fulfill the order is happening."; 7 : completed = "The work has been complete, the report(s) released, and no further work is planned."; 8 : suspended = "The request has been held by originating system/user request."; 9 : rejected = "The receiving system has declined to fulfill the request."; 10 : aborted = "The request was attempted, but due to some procedural error, it could not be completed."; } enum DeviceUseRequestPriority { // Codes representing the priority of the request 0 : Null = "Missing in instance"; 1 : routine = "The request has a normal priority."; 2 : urgent = "The request should be done urgently."; 3 : stat = "The request is time-critical."; 4 : asap = "The request should be acted on as soon as possible."; } attribute Type bodySite (0..1); // Indicates the site on the subject's body where the device should be used ( i.e. the target site). attribute DeviceUseRequestStatus status (0..1); // The status of the request. attribute ResourceReference device (1..1); // The details of the device to be used. attribute ResourceReference encounter (0..1); // An encounter that provides additional context in which this request is made. attribute Identifier identifier (0..-1); // Identifiers assigned to this order by the orderer or by the receiver. attribute CodeableConcept indication (0..-1); // Reason or justification for the use of this device. attribute String notes (0..-1); // Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. attribute CodeableConcept prnReason (0..-1); // The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%. attribute DateTime orderedOn (0..1); // The time when the request was made. attribute DateTime recordedOn (0..1); // The time at which the request was made/recorded. attribute ResourceReference subject (1..1); // The patient who will use the device. attribute Type timing (0..1); // The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". attribute DeviceUseRequestPriority priority (0..1); // Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. } class DeviceUseStatement extends Resource { // A record of a device being used by a patient where the record is the result of a report from the patient or another clinician. attribute Type bodySite (0..1); // Indicates the site on the subject's body where the device was used ( i.e. the target site). attribute Period whenUsed (0..1); // The time period over which the device was used. attribute ResourceReference device (1..1); // The details of the device used. attribute Identifier identifier (0..-1); // An external identifier for this statement such as an IRI. attribute CodeableConcept indication (0..-1); // Reason or justification for the use of the device. attribute String notes (0..-1); // Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. attribute DateTime recordedOn (0..1); // The time at which the statement was made/recorded. attribute ResourceReference subject (1..1); // The patient who used the device. attribute Type timing (0..1); // How often the device was used. } class DiagnosticOrder extends Resource { // A record of a request for a diagnostic investigation service to be performed. enum DiagnosticOrderStatus { // The status of a diagnostic order 0 : Null = "Missing in instance"; 1 : proposed = "The request has been proposed."; 2 : draft = "the request is in preliminary form prior to being sent."; 3 : planned = "The request has been planned."; 4 : requested = "The request has been placed."; 5 : received = "The receiving system has received the order, but not yet decided whether it will be performed."; 6 : accepted = "The receiving system has accepted the order, but work has not yet commenced."; 7 : inprogress = "The work to fulfill the order is happening."; 8 : review = "The work is complete, and the outcomes are being reviewed for approval."; 9 : completed = "The work has been complete, the report(s) released, and no further work is planned."; 10 : cancelled = "the request has been withdrawn."; 11 : suspended = "The request has been held by originating system/user request."; 12 : rejected = "The receiving system has declined to fulfill the request."; 13 : failed = "The diagnostic investigation was attempted, but due to some procedural error, it could not be completed."; } enum DiagnosticOrderPriority { // The clinical priority of a diagnostic order 0 : Null = "Missing in instance"; 1 : routine = "The order has a normal priority."; 2 : urgent = "The order should be urgently."; 3 : stat = "The order is time-critical."; 4 : asap = "The order should be acted on as soon as possible."; } class DiagnosticOrderEventComponent extends BackboneElement { attribute DiagnosticOrderStatus status (1..1); // The status for the event. attribute CodeableConcept description (0..1); // Additional information about the event that occurred - e.g. if the status remained unchanged. attribute DateTime dateTime (1..1); // The date/time at which the event occurred. attribute ResourceReference actor (0..1); // The person who was responsible for performing or recording the action. } class DiagnosticOrderItemComponent extends BackboneElement { attribute CodeableConcept code (1..1); // A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested. attribute ResourceReference specimen (0..-1); // If the item is related to a specific specimen. attribute Type bodySite (0..1); // Anatomical location where the request test should be performed. This is the target site. attribute DiagnosticOrderStatus status (0..1); // The status of this individual item within the order. attribute DiagnosticOrderEventComponent event (0..-1); // A summary of the events of interest that have occurred as this item of the request is processed. } attribute ResourceReference subject (1..1); // Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans). attribute ResourceReference orderer (0..1); // The practitioner that holds legal responsibility for ordering the investigation. attribute Identifier identifier (0..-1); // Identifiers assigned to this order by the order or by the receiver. attribute ResourceReference encounter (0..1); // An encounter that provides additional information about the healthcare context in which this request is made. attribute String clinicalNotes (0..1); // An explanation or justification for why this diagnostic investigation is being requested. attribute ResourceReference supportingInformation (0..-1); // Additional clinical information about the patient or specimen that may influence test interpretations. attribute ResourceReference specimen (0..-1); // One or more specimens that the diagnostic investigation is about. attribute DiagnosticOrderStatus status (0..1); // The status of the order. attribute DiagnosticOrderPriority priority (0..1); // The clinical priority associated with this order. attribute DiagnosticOrderEventComponent event (0..-1); // A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed. attribute DiagnosticOrderItemComponent item (0..-1); // The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested. } class DiagnosticReport extends Resource { // The findings and interpretation of diagnostic tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretation, and formatted representation of diagnostic reports. enum DiagnosticReportStatus { // The status of the diagnostic report as a whole 0 : Null = "Missing in instance"; 1 : registered = "The existence of the report is registered, but there is nothing yet available."; 2 : partial = "This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified."; 3 : final_ = "The report is complete and verified by an authorized person."; 4 : corrected = "The report has been modified subsequent to being Final, and is complete and verified by an authorized person."; 5 : appended = "The report has been modified subsequent to being Final, and is complete and verified by an authorized person. New content has been added, but existing content hasn't changed."; 6 : cancelled = "The report is unavailable because the measurement was not started or not completed (also sometimes called "aborted")."; 7 : enteredinerror = "The report has been withdrawn following previous Final release."; } class DiagnosticReportImageComponent extends BackboneElement { attribute String comment (0..1); // A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. attribute ResourceReference link (1..1); // Reference to the image source. } attribute CodeableConcept name (1..1); // A code or name that describes this diagnostic report. attribute DiagnosticReportStatus status (1..1); // The status of the diagnostic report as a whole. attribute DateTime issued (1..1); // The date and/or time that this version of the report was released from the source diagnostic service. attribute ResourceReference subject (1..1); // The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources. attribute ResourceReference performer (1..1); // The diagnostic service that is responsible for issuing the report. attribute ResourceReference encounter (0..1); // The link to the health care event (encounter) when the order was made. attribute Identifier identifier (0..-1); // The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider. attribute ResourceReference requestDetail (0..-1); // Details concerning a test requested. attribute CodeableConcept serviceCategory (0..1); // The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI. attribute Type diagnostic (1..1); // The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself. attribute ResourceReference specimen (0..-1); // Details about the specimens on which this diagnostic report is based. attribute ResourceReference result (0..-1); // Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels"). attribute ResourceReference imagingStudy (0..-1); // One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images. attribute DiagnosticReportImageComponent image (0..-1); // A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest). attribute String conclusion (0..1); // Concise and clinically contextualized narrative interpretation of the diagnostic report. attribute CodeableConcept codedDiagnosis (0..-1); // Codes for the conclusion. attribute Attachment presentedForm (0..-1); // Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent. } class DocumentManifest extends Resource { // A manifest that defines a set of documents. enum DocumentReferenceStatus { // The status of the document reference 0 : Null = "Missing in instance"; 1 : current = "This is the current reference for this document."; 2 : superceded = "This reference has been superceded by another reference."; 3 : enteredinerror = "This reference was created in error."; } class DocumentManifestContentComponent extends BackboneElement { attribute Type p (1..1); // The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed. } class DocumentManifestRelatedComponent extends BackboneElement { attribute Identifier identifier (0..1); // Related identifier to this DocumentManifest. If both id and ref are present they shall refer to the same thing. attribute ResourceReference ref (0..1); // Related Resource to this DocumentManifest. If both id and ref are present they shall refer to the same thing. } attribute Identifier masterIdentifier (0..1); // A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts. attribute Identifier identifier (0..-1); // Other identifiers associated with the document manifest, including version independent identifiers. attribute ResourceReference subject (0..1); // Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case). attribute ResourceReference recipient (0..-1); // A patient, practitioner, or organization for which this set of documents is intended. attribute CodeableConcept type (0..1); // Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider. attribute ResourceReference author (0..-1); // Identifies who is responsible for adding the information to the document. attribute DateTime created (0..1); // When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). attribute Uri source (0..1); // Identifies the source system, application, or software that produced the document manifest. attribute DocumentReferenceStatus status (1..1); // The status of this document manifest. attribute String description (0..1); // Human-readable description of the source document. This is sometimes known as the "title". attribute DocumentManifestContentComponent content (1..-1); // The manifest list. attribute DocumentManifestRelatedComponent related (0..-1); // Related identifiers or resources associated with the DocumentManifest. } class DocumentReference extends Resource { // A reference to a document. enum DocumentReferenceStatus { // The status of the document reference 0 : Null = "Missing in instance"; 1 : current = "This is the current reference for this document."; 2 : superceded = "This reference has been superceded by another reference."; 3 : enteredinerror = "This reference was created in error."; } enum DocumentRelationshipType { // The type of relationship between documents 0 : Null = "Missing in instance"; 1 : replaces = "This document logically replaces or supercedes the target document."; 2 : transforms = "This document was generated by transforming the target document (e.g. format or language conversion)."; 3 : signs = "This document is a signature of the target document."; 4 : appends = "This document adds additional information to the target document."; } class DocumentReferenceRelatesToComponent extends BackboneElement { attribute DocumentRelationshipType code (1..1); // The type of relationship that this document has with anther document. attribute ResourceReference target (1..1); // The target document of this relationship. } class DocumentReferenceContextComponent extends BackboneElement { attribute CodeableConcept event (0..-1); // This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. attribute Period period (0..1); // The time period over which the service that is described by the document was provided. attribute CodeableConcept facilityType (0..1); // The kind of facility where the patient was seen. attribute CodeableConcept practiceSetting (0..1); // This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty. attribute ResourceReference sourcePatientInfo (0..1); // The Patient Information as known when the document was published. May be a reference to a version specific, or contained. attribute DocumentReferenceContextRelatedComponent related (0..-1); // Related identifiers or resources associated with the DocumentReference. } class DocumentReferenceContextRelatedComponent extends BackboneElement { attribute Identifier identifier (0..1); // Related identifier to this DocumentReference. If both id and ref are present they shall refer to the same thing. attribute ResourceReference ref (0..1); // Related Resource to this DocumentReference. If both id and ref are present they shall refer to the same thing. } attribute Identifier masterIdentifier (0..1); // Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document. attribute Identifier identifier (0..-1); // Other identifiers associated with the document, including version independent identifiers. attribute ResourceReference subject (0..1); // Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). attribute CodeableConcept type (1..1); // Specifies the particular kind of document. This usually equates to the purpose of making the document. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.). attribute CodeableConcept class_ (0..1); // A categorization for the type of document. The class is an abstraction from the type specifying the high-level kind of document (e.g., Report, Summary, Images, Treatment Plan, Patient Preferences, Workflow) at a macro level. attribute Uri format (0..-1); // An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType. attribute ResourceReference author (1..-1); // Identifies who is responsible for adding the information to the document. attribute ResourceReference custodian (0..1); // Identifies the organization or group who is responsible for ongoing maintenance of and access to the document. attribute ResourceReference authenticator (0..1); // Which person or organization authenticates that this document is valid. attribute DateTime created (0..1); // When the document was created. attribute Instant indexed (1..1); // When the document reference was created. attribute DocumentReferenceStatus status (1..1); // The status of this document reference. attribute CodeableConcept docStatus (0..1); // The status of the underlying document. attribute DocumentReferenceRelatesToComponent relatesTo (0..-1); // Relationships that this document has with other document references that already exist. attribute String description (0..1); // Human-readable description of the source document. This is sometimes known as the "title". attribute CodeableConcept confidentiality (0..-1); // A set of Security-Tag codes specifying the level of privacy/security of the Document. attribute Attachment content (1..-1); // The document or url to the document along with critical metadata to prove content has integrity. attribute DocumentReferenceContextComponent context (0..1); // The clinical context in which the document was prepared. } class EligibilityRequest extends Resource { // This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service. attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when this resource was created. attribute ResourceReference target (0..1); // The Insurer who is target of the request. attribute ResourceReference provider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference organization (0..1); // The organization which is responsible for the services rendered to the patient. } class EligibilityResponse extends Resource { // This resource provides eligibility and plan details from the processing of an Eligibility resource. enum RSLink { // The outcome of the processing. 0 : Null = "Missing in instance"; 1 : complete = "The processing completed without errors."; 2 : error = "The processing identified with errors."; } attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute ResourceReference request (0..1); // Original request resource reference. attribute RSLink outcome (0..1); // Transaction status: error, complete. attribute String disposition (0..1); // A description of the status of the adjudication. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute ResourceReference organization (0..1); // The Insurer who produced this adjudicated response. attribute ResourceReference requestProvider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference requestOrganization (0..1); // The organization which is responsible for the services rendered to the patient. } class Encounter extends Resource { // An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient. enum EncounterState { // Current state of the encounter 0 : Null = "Missing in instance"; 1 : planned = "The Encounter has not yet started."; 2 : arrived = "The Patient is present for the encounter, however is not currently meeting with a practitioner."; 3 : inprogress = "The Encounter has begun and the patient is present / the practitioner and the patient are meeting."; 4 : onleave = "The Encounter has begun, but the patient is temporarily on leave."; 5 : finished = "The Encounter has ended."; 6 : cancelled = "The Encounter has ended before it has begun."; } enum EncounterClass { // Classification of the encounter 0 : Null = "Missing in instance"; 1 : inpatient = "An encounter during which the patient is hospitalized and stays overnight."; 2 : outpatient = "An encounter during which the patient is not hospitalized overnight."; 3 : ambulatory = "An encounter where the patient visits the practitioner in his/her office, e.g. a G.P. visit."; 4 : emergency = "An encounter where the patient needs urgent care."; 5 : home = "An encounter where the practitioner visits the patient at his/her home."; 6 : field = "An encounter taking place outside the regular environment for giving care."; 7 : daytime = "An encounter where the patient needs more prolonged treatment or investigations than outpatients, but who do not need to stay in the hospital overnight."; 8 : virtual = "An encounter that takes place where the patient and practitioner do not physically meet but use electronic means for contact."; 9 : other = "Any other encounter type that is not described by one of the other values. Where this is used it is expected that an implementer will include an extension value to define what the actual other type is."; } enum EncounterLocationStatus { // The status of the location 0 : Null = "Missing in instance"; 1 : planned = "The patient is planned to be moved to this location at some point in the future."; 2 : present = "The patient is currently at this location, or was between the period specified."; 3 : reserved = "This location is held empty for this patient."; } class EncounterStatusHistoryComponent extends BackboneElement { attribute EncounterState status (1..1); // planned | arrived | in-progress | onleave | finished | cancelled. attribute Period period (1..1); // The time that the episode was in the specified status. } class EncounterParticipantComponent extends BackboneElement { attribute CodeableConcept type (0..-1); // Role of participant in encounter. attribute Period period (0..1); // The period of time that the specified participant was present during the encounter. These can overlap or be sub-sets of the overall encounters period. attribute ResourceReference individual (0..1); // Persons involved in the encounter other than the patient. } class EncounterHospitalizationComponent extends BackboneElement { attribute Identifier preAdmissionIdentifier (0..1); // Pre-admission identifier. attribute ResourceReference origin (0..1); // The location from which the patient came before admission. attribute CodeableConcept admitSource (0..1); // From where patient was admitted (physician referral, transfer). attribute CodeableConcept dietPreference (0..1); // Diet preferences reported by the patient. attribute CodeableConcept specialCourtesy (0..-1); // Special courtesies (VIP, board member). attribute CodeableConcept specialArrangement (0..-1); // Wheelchair, translator, stretcher, etc. attribute ResourceReference destination (0..1); // Location to which the patient is discharged. attribute CodeableConcept dischargeDisposition (0..1); // Category or kind of location after discharge. attribute ResourceReference dischargeDiagnosis (0..1); // The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete. attribute Boolean reAdmission (0..1); // Whether this hospitalization is a readmission. } class EncounterLocationComponent extends BackboneElement { attribute ResourceReference location (1..1); // The location where the encounter takes place. attribute EncounterLocationStatus status (0..1); // The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time. attribute Period period (0..1); // Time period during which the patient was present at the location. } attribute Identifier identifier (0..-1); // Identifier(s) by which this encounter is known. attribute EncounterState status (1..1); // planned | arrived | in-progress | onleave | finished | cancelled. attribute EncounterStatusHistoryComponent statusHistory (0..-1); // The current status is always found in the current version of the resource. This status history permits the encounter resource to contain the status history without the needing to read through the historical versions of the resource, or even have the server store them. attribute EncounterClass class_ (0..1); // inpatient | outpatient | ambulatory | emergency +. attribute CodeableConcept type (0..-1); // Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation). attribute ResourceReference patient (0..1); // The patient present at the encounter. attribute ResourceReference episodeOfCare (0..1); // Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking. attribute ResourceReference incomingReferralRequest (0..-1); // The referral request that this encounter is satisfies (incoming referral). attribute EncounterParticipantComponent participant (0..-1); // The main practitioner responsible for providing the service. attribute ResourceReference fulfills (0..1); // The appointment that scheduled this encounter. attribute Period period (0..1); // The start and end time of the encounter. attribute Duration length (0..1); // Quantity of time the encounter lasted. This excludes the time during leaves of absence. attribute CodeableConcept reason (0..-1); // Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis. attribute ResourceReference indication (0..-1); // Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure. attribute CodeableConcept priority (0..1); // Indicates the urgency of the encounter. attribute EncounterHospitalizationComponent hospitalization (0..1); // Details about an admission to a clinic. attribute EncounterLocationComponent location (0..-1); // List of locations at which the patient has been. attribute ResourceReference serviceProvider (0..1); // An organization that is in charge of maintaining the information of this Encounter (e.g., who maintains the report or the master service catalog item, etc.). This MAY be the same as the organization on the Patient record, however it could be different. This MAY not be not the Service Delivery Location's Organization. attribute ResourceReference partOf (0..1); // Another Encounter of which this encounter is a part of (administratively or in time). } class EnrollmentRequest extends Resource { // This resource provides the insurance Enrollment details to the insurer regarding a specified coverage. attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when this resource was created. attribute ResourceReference target (0..1); // The Insurer who is target of the request. attribute ResourceReference provider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference organization (0..1); // The organization which is responsible for the services rendered to the patient. attribute ResourceReference subject (1..1); // Patient Resource. attribute ResourceReference coverage (1..1); // Reference to the program or plan identification, underwriter or payor. attribute Coding relationship (1..1); // The relationship of the patient to the subscriber. } class EnrollmentResponse extends Resource { // This resource provides Enrollment and plan details from the processing of an Enrollment resource. enum RSLink { // The outcome of the processing. 0 : Null = "Missing in instance"; 1 : complete = "The processing completed without errors."; 2 : error = "The processing identified with errors."; } attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute ResourceReference request (0..1); // Original request resource reference. attribute RSLink outcome (0..1); // Transaction status: error, complete. attribute String disposition (0..1); // A description of the status of the adjudication. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute ResourceReference organization (0..1); // The Insurer who produced this adjudicated response. attribute ResourceReference requestProvider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference requestOrganization (0..1); // The organization which is responsible for the services rendered to the patient. } class EpisodeOfCare extends Resource { // An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time. enum EpisodeOfCareStatus { // The status of the encounter 0 : Null = "Missing in instance"; 1 : planned = "This episode of care is planned to start at the date specified in the period.start. During this status an organization may perform assessments to determine if they are eligible to receive services, or be organizing to make resources available to provide care services."; 2 : waitlist = "This episode has been placed on a waitlist, pending the episode being made active (or cancelled)."; 3 : active = "This episode of care is current."; 4 : onhold = "This episode of care is on hold, the organization has limited responsibility for the patient (such as while on respite)."; 5 : finished = "This episode of care is finished at the organization is not expecting to be providing care to the patient. Can also be known as "closed", "completed" or other similar terms."; 6 : cancelled = "The episode of care was cancelled, or withdrawn from service, often selected during the planned stage as the patient may have gone elsewhere, or the circumstances have changed and the organization is unable to provide the care. It indicates that services terminated outside the planned/expected workflow."; } class EpisodeOfCareStatusHistoryComponent extends BackboneElement { attribute EpisodeOfCareStatus status (1..1); // planned | waitlist | active | onhold | finished | cancelled. attribute Period period (1..1); // The period during this EpisodeOfCare that the specific status applied. } class EpisodeOfCareCareTeamComponent extends BackboneElement { attribute ResourceReference member (0..1); // The practitioner (or Organization) within the team. attribute CodeableConcept role (0..-1); // The role that this team member is taking within this episode of care. attribute Period period (0..1); // The period of time that this practitioner is performing some role within the episode of care. } attribute Identifier identifier (0..-1); // Identifier(s) by which this EpisodeOfCare is known. attribute EpisodeOfCareStatus status (1..1); // planned | waitlist | active | onhold | finished | cancelled. attribute EpisodeOfCareStatusHistoryComponent statusHistory (0..-1); // The status history for the EpisodeOfCare. attribute CodeableConcept type (0..-1); // The type can be very important in processing as this could be used in determining if the EpisodeOfCare is relevant to specific government reporting, or other types of classifications. attribute ResourceReference patient (1..1); // The patient that this EpisodeOfCare applies to. attribute ResourceReference managingOrganization (0..1); // The organization that has assumed the specific responsibilities for the specified duration. attribute Period period (0..1); // The interval during which the managing organization assumes the defined responsibility. attribute ResourceReference condition (0..-1); // A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for. attribute ResourceReference referralRequest (0..-1); // Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals. attribute ResourceReference careManager (0..1); // The practitioner that is the care manager/care co-ordinator for this patient. attribute EpisodeOfCareCareTeamComponent careTeam (0..-1); // The list of practitioners that may be facilitating this episode of care for specific purposes. } class ExplanationOfBenefit extends Resource { // This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided. enum RSLink { // The outcome of the processing. 0 : Null = "Missing in instance"; 1 : complete = "The processing completed without errors."; 2 : error = "The processing identified with errors."; } attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute ResourceReference request (0..1); // Original request resource reference. attribute RSLink outcome (0..1); // Transaction status: error, complete. attribute String disposition (0..1); // A description of the status of the adjudication. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute ResourceReference organization (0..1); // The Insurer who produced this adjudicated response. attribute ResourceReference requestProvider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference requestOrganization (0..1); // The organization which is responsible for the services rendered to the patient. } class FamilyMemberHistory extends Resource { // Significant health events and conditions for a person related to the patient relevant in the context of care for the patient. enum AdministrativeGender { // The gender of a person used for administrative purposes 0 : Null = "Missing in instance"; 1 : male = "Male"; 2 : female = "Female"; 3 : other = "Other"; 4 : unknown = "Unknown"; } class FamilyMemberHistoryConditionComponent extends BackboneElement { attribute CodeableConcept type (1..1); // The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system. attribute CodeableConcept outcome (0..1); // Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation. attribute Type onset (0..1); // Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence. attribute String note (0..1); // An area where general notes can be placed about this specific condition. } attribute Identifier identifier (0..-1); // This records identifiers associated with this family member history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute ResourceReference patient (1..1); // The person who this history concerns. attribute DateTime date (0..1); // The date (and possibly time) when the family member history was taken. attribute String name (0..1); // This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". attribute CodeableConcept relationship (1..1); // The type of relationship this person has to the patient (father, mother, brother etc.). attribute AdministrativeGender gender (0..1); // Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes. attribute Type born (0..1); // The actual or approximate date of birth of the relative. attribute Type age (0..1); // The actual or approximate age of the relative at the time the family member history is recorded. attribute Type deceased (0..1); // The actual or approximate age of the relative at the time the family member history is recorded. attribute String note (0..1); // This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. attribute FamilyMemberHistoryConditionComponent condition (0..-1); // The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition. } class Flag extends Resource { // Prospective warnings of potential issues when providing care to the patient. enum FlagStatus { // Indicates whether this flag is active and needs to be displayed to a user, or whether it is no longer needed or entered in error 0 : Null = "Missing in instance"; 1 : active = "A current flag that should be displayed to a user. A system may use the category to determine which roles should view the flag."; 2 : inactive = "The flag does not need to be displayed any more."; 3 : enteredinerror = "The flag was added in error, and should no longer be displayed."; } attribute Identifier identifier (0..-1); // Identifier assigned to the flag for external use (outside the FHIR environment). attribute CodeableConcept category (0..1); // Allows an flag to be divided into different categories like clinical, administrative etc. attribute FlagStatus status (1..1); // Supports basic workflow. attribute Period period (0..1); // The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified. attribute ResourceReference patient (1..1); // The patient record this flag is associated with. attribute ResourceReference author (0..1); // The person or device that created the flag. attribute CodeableConcept code (1..1); // The coded value or textual component of the flag to display to the user. } class Goal extends Resource { // Describes the intended objective(s) of patient care, for example, weight loss, restoring an activity of daily living, etc. enum GoalStatus { // Indicates whether the goal has been met and is still being targeted 0 : Null = "Missing in instance"; 1 : proposed = "A goal is proposed for this patient."; 2 : planned = "A goal is planned for this patient."; 3 : inprogress = "The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)."; 4 : achieved = "The goal has been met and no further action is needed."; 5 : sustaining = "The goal has been met, but ongoing activity is needed to sustain the goal objective."; 6 : cancelled = "The goal is no longer being sought."; 7 : accepted = "A proposed goal was accepted."; 8 : rejected = "A proposed goal was rejected."; } class GoalOutcomeComponent extends BackboneElement { attribute Type result (0..1); // Details of what's changed (or not changed). } attribute Identifier identifier (0..-1); // This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute ResourceReference patient (0..1); // Identifies the patient/subject whose intended care is described by the plan. attribute Date targetDate (0..1); // Indicates when the goal is intended to be reached. attribute String description (1..1); // Human-readable description of a specific desired objective of care. attribute GoalStatus status (1..1); // Indicates whether the goal has been reached and is still considered relevant. attribute Date statusDate (0..1); // Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc. attribute ResourceReference author (0..1); // Indicates whose goal this is - patient goal, practitioner goal, etc. attribute CodeableConcept priority (0..1); // Identifies the level of importance associated with reaching/sustaining the goal. attribute ResourceReference concern (0..-1); // The identified conditions and other health record elements that are intended to be addressed by the goal. attribute String notes (0..1); // Any comments related to the goal. attribute GoalOutcomeComponent outcome (0..-1); // Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved. } class Group extends Resource { // Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized. I.e. A collection of entities that isn't an Organization. enum GroupType { // Types of resources that are part of group 0 : Null = "Missing in instance"; 1 : person = "Group contains "person" Patient resources."; 2 : animal = "Group contains "animal" Patient resources."; 3 : practitioner = "Group contains healthcare practitioner resources."; 4 : device = "Group contains Device resources."; 5 : medication = "Group contains Medication resources."; 6 : substance = "Group contains Substance resources."; } class GroupCharacteristicComponent extends BackboneElement { attribute CodeableConcept code (1..1); // A code that identifies the kind of trait being asserted. attribute Type value (1..1); // The value of the trait that holds (or does not hold - see 'exclude') for members of the group. attribute Boolean exclude (1..1); // If true, indicates the characteristic is one that is NOT held by members of the group. } attribute Identifier identifier (0..1); // A unique business identifier for this group. attribute GroupType type (1..1); // Identifies the broad classification of the kind of resources the group includes. attribute Boolean actual (1..1); // If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. attribute CodeableConcept code (0..1); // Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc. attribute String name (0..1); // A label assigned to the group for human identification and communication. attribute UnsignedInt quantity (0..1); // A count of the number of resource instances that are part of the group. attribute GroupCharacteristicComponent characteristic (0..-1); // Identifies the traits shared by members of the group. attribute ResourceReference member (0..-1); // Identifies the resource instances that are members of the group. } class HealthcareService extends Resource { // The details of a Healthcare Service available at a location. enum DaysOfWeek { // The days of the week 0 : Null = "Missing in instance"; 1 : mon = "Monday."; 2 : tue = "Tuesday."; 3 : wed = "Wednesday."; 4 : thu = "Thursday."; 5 : fri = "Friday."; 6 : sat = "Saturday."; 7 : sun = "Sunday."; } class ServiceTypeComponent extends BackboneElement { attribute CodeableConcept type (1..1); // The specific type of service being delivered or performed. attribute CodeableConcept specialty (0..-1); // Collection of Specialties handled by the Service Site. This is more of a Medical Term. } class HealthcareServiceAvailableTimeComponent extends BackboneElement { attribute DaysOfWeek daysOfWeek (0..-1); // Indicates which Days of the week are available between the Start and End Times. attribute Boolean allDay (0..1); // Is this always available? (hence times are irrelevant) e.g. 24 hour service. attribute Time availableStartTime (0..1); // The opening time of day. Note: If the AllDay flag is set, then this time is ignored. attribute Time availableEndTime (0..1); // The closing time of day. Note: If the AllDay flag is set, then this time is ignored. } class HealthcareServiceNotAvailableComponent extends BackboneElement { attribute String description (1..1); // The reason that can be presented to the user as to why this time is not available. attribute Period during (0..1); // Service is not available (seasonally or for a public holiday) from this date. } attribute Identifier identifier (0..-1); // External Identifiers for this item. attribute ResourceReference providedBy (0..1); // The organization that provides this Healthcare Service. attribute ResourceReference location (1..1); // The location where this healthcare service may be provided. attribute CodeableConcept serviceCategory (0..1); // Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type. attribute ServiceTypeComponent serviceType (0..-1); // A specific type of service that may be delivered or performed. attribute String serviceName (0..1); // Further description of the service as it would be presented to a consumer while searching. attribute String comment (0..1); // Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. attribute String extraDetails (0..1); // Extra details about the service that can't be placed in the other fields. attribute Attachment photo (0..1); // If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list. attribute ContactPoint telecom (0..-1); // List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts. attribute ResourceReference coverageArea (0..-1); // The location(s) that this service is available to (not where the service is provided). attribute CodeableConcept serviceProvisionCode (0..-1); // The code(s) that detail the conditions under which the healthcare service is available/offered. attribute CodeableConcept eligibility (0..1); // Does this service have specific eligibility requirements that need to be met in order to use the service. attribute String eligibilityNote (0..1); // The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. attribute String programName (0..-1); // Program Names that can be used to categorize the service. attribute CodeableConcept characteristic (0..-1); // Collection of Characteristics (attributes). attribute CodeableConcept referralMethod (0..-1); // Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required. attribute String publicKey (0..1); // The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. attribute Boolean appointmentRequired (0..1); // Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. attribute HealthcareServiceAvailableTimeComponent availableTime (0..-1); // A Collection of times that the Service Site is available. attribute HealthcareServiceNotAvailableComponent notAvailable (0..-1); // The HealthcareService is not available during this period of time due to the provided reason. attribute String availabilityExceptions (0..1); // A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. } class ImagingObjectSelection extends Resource { // A set of DICOM SOP Instances of a patient, selected for some application purpose, e.g., quality assurance, teaching, conference, consulting, etc. Objects selected can be from different studies, but must be of the same patient. class StudyComponent extends BackboneElement { attribute Oid uid (1..1); // Study instance uid of the SOP instances in the selection. attribute Uri url (0..1); // WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection. attribute SeriesComponent series (1..-1); // Series indetity and locating information of the DICOM SOP instances in the selection. } class SeriesComponent extends BackboneElement { attribute Oid uid (0..1); // Series instance uid of the SOP instances in the selection. attribute Uri url (0..1); // WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. attribute InstanceComponent instance (1..-1); // Identity and locating information of the selected DICOM SOP instances. } class InstanceComponent extends BackboneElement { attribute Oid sopClass (1..1); // SOP class uid of the selected instance. attribute Oid uid (1..1); // SOP Instance uid of the selected instance. attribute Uri url (1..1); // WADO-RS URL to retrieve the DICOM SOP Instance. attribute FramesComponent frames (0..-1); // Identity and location information of the frames in the selected instance. } class FramesComponent extends BackboneElement { attribute UnsignedInt frameNumbers (1..-1); // The frame numbers in the frame set. attribute Uri url (1..1); // WADO-RS URL to retrieve the DICOM frames. } attribute Oid uid (1..1); // Instance UID of the DICOM KOS SOP Instances represenetd in this resource. attribute ResourceReference patient (1..1); // A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection. attribute CodeableConcept title (1..1); // The reason for, or significance of, the selection of objects referenced in the resource. attribute String description (0..1); // Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. attribute ResourceReference author (0..1); // Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion. attribute DateTime authoringTime (0..1); // Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. attribute StudyComponent study (1..-1); // Study identity and locating information of the DICOM SOP instances in the selection. } class ImagingStudy extends Resource { // Representation of the content produced in a DICOM imaging study. A study comprises a set of Series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context. A Series is of only one modality (e.g., X-ray, CT, MR, ultrasound), but a Study may have multiple Series of different modalities. enum ImagingModality { // Type of acquired image data in the instance 0 : Null = "Missing in instance"; 1 : aR = ""; 2 : bMD = ""; 3 : bDUS = ""; 4 : ePS = ""; 5 : cR = ""; 6 : cT = ""; 7 : dX = ""; 8 : eCG = ""; 9 : eS = ""; 10 : xC = ""; 11 : gM = ""; 12 : hD = ""; 13 : iO = ""; 14 : iVOCT = ""; 15 : iVUS = ""; 16 : kER = ""; 17 : lEN = ""; 18 : mR = ""; 19 : mG = ""; 20 : nM = ""; 21 : oAM = ""; 22 : oCT = ""; 23 : oPM = ""; 24 : oP = ""; 25 : oPR = ""; 26 : oPT = ""; 27 : oPV = ""; 28 : pX = ""; 29 : pT = ""; 30 : rF = ""; 31 : rG = ""; 32 : sM = ""; 33 : sRF = ""; 34 : uS = ""; 35 : vA = ""; 36 : xA = ""; } enum InstanceAvailability { // Availability of the resource 0 : Null = "Missing in instance"; 1 : oNLINE = "Resources are immediately available,."; 2 : oFFLINE = "Resources need to be retrieved by manual intervention."; 3 : nEARLINE = "Resources need to be retrieved from relatively slow media."; 4 : uNAVAILABLE = "Resources cannot be retrieved."; } enum Modality { // Type of data in the instance 0 : Null = "Missing in instance"; 1 : aR = ""; 2 : aU = ""; 3 : bDUS = ""; 4 : bI = ""; 5 : bMD = ""; 6 : cR = ""; 7 : cT = ""; 8 : dG = ""; 9 : dX = ""; 10 : eCG = ""; 11 : ePS = ""; 12 : eS = ""; 13 : gM = ""; 14 : hC = ""; 15 : hD = ""; 16 : iO = ""; 17 : iVOCT = ""; 18 : iVUS = ""; 19 : kER = ""; 20 : kO = ""; 21 : lEN = ""; 22 : lS = ""; 23 : mG = ""; 24 : mR = ""; 25 : nM = ""; 26 : oAM = ""; 27 : oCT = ""; 28 : oP = ""; 29 : oPM = ""; 30 : oPT = ""; 31 : oPV = ""; 32 : oT = ""; 33 : pR = ""; 34 : pT = ""; 35 : pX = ""; 36 : rEG = ""; 37 : rF = ""; 38 : rG = ""; 39 : rTDOSE = ""; 40 : rTIMAGE = ""; 41 : rTPLAN = ""; 42 : rTRECORD = ""; 43 : rTSTRUCT = ""; 44 : sEG = ""; 45 : sM = ""; 46 : sMR = ""; 47 : sR = ""; 48 : sRF = ""; 49 : tG = ""; 50 : uS = ""; 51 : vA = ""; 52 : xA = ""; 53 : xC = ""; } class ImagingStudySeriesComponent extends BackboneElement { attribute UnsignedInt number (0..1); // The Numeric identifier of this series in the study. attribute Modality modality (1..1); // The modality of this series sequence. attribute Oid uid (1..1); // Formal identifier for this series. attribute String description (0..1); // A description of the series. attribute UnsignedInt numberOfInstances (1..1); // Number of SOP Instances in Series. attribute InstanceAvailability availability (0..1); // Availability of series (online, offline or nearline). attribute Uri url (0..1); // WADO-RS resource where the Series is available. attribute Coding bodySite (0..1); // Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed. attribute Coding laterality (0..1); // Laterality if bodySite is paired anatomic structure and laterality is not pre-coordinated in bodySite code, map from (0020, 0060). attribute DateTime dateTime (0..1); // The date and time when the series was started. attribute ImagingStudySeriesInstanceComponent instance (0..-1); // A single SOP Instance within the series, e.g., an image, or presentation state. } class ImagingStudySeriesInstanceComponent extends BackboneElement { attribute UnsignedInt number (0..1); // The number of this image in the series. attribute Oid uid (1..1); // Formal identifier for this image. attribute Oid sopclass (1..1); // DICOM Image type. attribute String type (0..1); // A human-friendly SOP Class name. attribute String title (0..1); // The description of the instance. attribute Attachment content (0..-1); // Content of the instance or a rendering thereof (e.g., a JPEG of an image, or an XML of a structured report). May be represented by inline encoding, or by a URL reference to a WADO-RS service that makes the instance available. Multiple content attachments may be used for alternate representations of the instance. } attribute DateTime started (0..1); // Date and Time the study started. Timezone Offset From UTC. attribute ResourceReference patient (1..1); // The patient imaged in the study. attribute Oid uid (1..1); // Formal identifier for the study. attribute Identifier accession (0..1); // Accession Number. attribute Identifier identifier (0..-1); // Other identifiers for the study. attribute ResourceReference order (0..-1); // A list of the diagnostic orders that resulted in this imaging study being performed. attribute ImagingModality modalityList (0..-1); // A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19). attribute ResourceReference referrer (0..1); // The requesting/referring physician. attribute InstanceAvailability availability (0..1); // Availability of study (online, offline or nearline). attribute Uri url (0..1); // WADO-RS resource where Study is available. attribute UnsignedInt numberOfSeries (1..1); // Number of Series in Study. attribute UnsignedInt numberOfInstances (1..1); // Number of SOP Instances in Study. attribute String clinicalInformation (0..1); // Diagnoses etc provided with request. attribute Coding procedure (0..-1); // Type of procedure performed. attribute ResourceReference interpreter (0..1); // Who read study and interpreted the images. attribute String description (0..1); // Institution-generated description or classification of the Study performed. attribute ImagingStudySeriesComponent series (0..-1); // Each study has one or more series of image instances. } class Immunization extends Resource { // Immunization event information. class ImmunizationExplanationComponent extends BackboneElement { attribute CodeableConcept reason (0..-1); // Reasons why a vaccine was administered. attribute CodeableConcept reasonNotGiven (0..-1); // Reason why a vaccine was not administered. } class ImmunizationReactionComponent extends BackboneElement { attribute DateTime date (0..1); // Date of reaction to the immunization. attribute ResourceReference detail (0..1); // Details of the reaction. attribute Boolean reported (0..1); // Self-reported indicator. } class ImmunizationVaccinationProtocolComponent extends BackboneElement { attribute PositiveInt doseSequence (1..1); // Nominal position in a series. attribute String description (0..1); // Contains the description about the protocol under which the vaccine was administered. attribute ResourceReference authority (0..1); // Indicates the authority who published the protocol? E.g. ACIP. attribute String series (0..1); // One possible path to achieve presumed immunity against a disease - within the context of an authority. attribute PositiveInt seriesDoses (0..1); // The recommended number of doses to achieve immunity. attribute CodeableConcept doseTarget (1..1); // The targeted disease. attribute CodeableConcept doseStatus (1..1); // Indicates if the immunization event should "count" against the protocol. attribute CodeableConcept doseStatusReason (0..1); // Provides an explanation as to why a immunization event should or should not count against the protocol. } attribute Identifier identifier (0..-1); // A unique identifier assigned to this immunization record. attribute DateTime date (1..1); // Date vaccine administered or was to be administered. attribute CodeableConcept vaccineType (1..1); // Vaccine that was administered or was to be administered. attribute ResourceReference patient (1..1); // The patient who either received or did not receive the immunization. attribute Boolean wasNotGiven (1..1); // Indicates if the vaccination was or was not given. attribute Boolean reported (1..1); // True if this administration was reported rather than directly administered. attribute ResourceReference performer (0..1); // Clinician who administered the vaccine. attribute ResourceReference requester (0..1); // Clinician who ordered the vaccination. attribute ResourceReference encounter (0..1); // The visit or admission or other contact between patient and health care provider the immunization was performed as part of. attribute ResourceReference manufacturer (0..1); // Name of vaccine manufacturer. attribute ResourceReference location (0..1); // The service delivery location where the vaccine administration occurred. attribute String lotNumber (0..1); // Lot number of the vaccine product. attribute Date expirationDate (0..1); // Date vaccine batch expires. attribute CodeableConcept site (0..1); // Body site where vaccine was administered. attribute CodeableConcept route (0..1); // The path by which the vaccine product is taken into the body. attribute Quantity doseQuantity (0..1); // The quantity of vaccine product that was administered. attribute ImmunizationExplanationComponent explanation (0..1); // Reasons why a vaccine was or was not administered. attribute ImmunizationReactionComponent reaction (0..-1); // Categorical data indicating that an adverse event is associated in time to an immunization. attribute ImmunizationVaccinationProtocolComponent vaccinationProtocol (0..-1); // Contains information about the protocol(s) under which the vaccine was administered. } class ImmunizationRecommendation extends Resource { // A patient's point-of-time immunization status and recommendation with optional supporting justification. class ImmunizationRecommendationRecommendationComponent extends BackboneElement { attribute DateTime date (1..1); // The date the immunization recommendation was created. attribute CodeableConcept vaccineType (1..1); // Vaccine that pertains to the recommendation. attribute PositiveInt doseNumber (0..1); // This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). attribute CodeableConcept forecastStatus (1..1); // Vaccine administration status. attribute ImmunizationRecommendationRecommendationDateCriterionComponent dateCriterion (0..-1); // Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc. attribute ImmunizationRecommendationRecommendationProtocolComponent protocol (0..1); // Contains information about the protocol under which the vaccine was administered. attribute ResourceReference supportingImmunization (0..-1); // Immunization event history that supports the status and recommendation. attribute ResourceReference supportingPatientInformation (0..-1); // Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information. } class ImmunizationRecommendationRecommendationDateCriterionComponent extends BackboneElement { attribute CodeableConcept code (1..1); // Date classification of recommendation - e.g. earliest date to give, latest date to give, etc. attribute DateTime value (1..1); // Date recommendation. } class ImmunizationRecommendationRecommendationProtocolComponent extends BackboneElement { attribute Integer doseSequence (0..1); // Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. attribute String description (0..1); // Contains the description about the protocol under which the vaccine was administered. attribute ResourceReference authority (0..1); // Indicates the authority who published the protocol? E.g. ACIP. attribute String series (0..1); // One possible path to achieve presumed immunity against a disease - within the context of an authority. } attribute Identifier identifier (0..-1); // A unique identifier assigned to this particular recommendation record. attribute ResourceReference patient (1..1); // The patient for whom the recommendations are for. attribute ImmunizationRecommendationRecommendationComponent recommendation (1..-1); // Vaccine administration recommendations. } class List extends Resource { // A set of information summarized from a list of other resources. enum ListStatus { // The current state of the list 0 : Null = "Missing in instance"; 1 : current = "The list is considered to be an active part of the patient's record."; 2 : retired = "The list is "old" and should no longer be considered accurate or relevant."; 3 : enteredinerror = "The list was never accurate. It is retained for medico-legal purposes only."; } enum ListMode { // The processing mode that applies to this list 0 : Null = "Missing in instance"; 1 : working = "This list is the master list, maintained in an ongoing fashion with regular updates as the real world list it is tracking changes."; 2 : snapshot = "This list was prepared as a snapshot. It should not be assumed to be current."; 3 : changes = "The list is prepared as a statement of changes that have been made or recommended."; } class ListEntryComponent extends BackboneElement { attribute CodeableConcept flag (0..-1); // The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list. attribute Boolean deleted (0..1); // True if this item is marked as deleted in the list. attribute DateTime date (0..1); // When this item was added to the list. attribute ResourceReference item (1..1); // A reference to the actual resource from which data was derived. } attribute Identifier identifier (0..-1); // Identifier for the List assigned for business purposes outside the context of FHIR. attribute String title (0..1); // A label for the list assigned by the author. attribute CodeableConcept code (0..1); // This code defines the purpose of the list - why it was created. attribute ResourceReference subject (0..1); // The common subject (or patient) of the resources that are in the list, if there is one. attribute ResourceReference source (0..1); // The entity responsible for deciding what the contents of the list were. attribute ListStatus status (1..1); // Indicates the current state of this list. attribute DateTime date (0..1); // The date that the list was prepared. attribute CodeableConcept orderedBy (0..1); // What order applies to the items in the list. attribute ListMode mode (1..1); // How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. attribute String note (0..1); // Comments that apply to the overall list. attribute ListEntryComponent entry (0..-1); // Entries in this list. attribute CodeableConcept emptyReason (0..1); // If the list is empty, why the list is empty. } class Location extends Resource { // Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained or accommodated. enum LocationMode { // Indicates whether a resource instance represents a specific location or a class of locations 0 : Null = "Missing in instance"; 1 : instance = "The Location resource represents a specific instance of a Location (e.g. Operating Theatre 1A)."; 2 : kind = "The Location represents a class of Locations (e.g. Any Operating Theatre). Although this class of locations could be constrained within a specific boundary (such as organization, or parent location, address etc)."; } enum LocationStatus { // Indicates whether the location is still in use 0 : Null = "Missing in instance"; 1 : active = "The location is operational."; 2 : suspended = "The location is temporarily closed."; 3 : inactive = "The location is no longer used."; } class LocationPositionComponent extends BackboneElement { attribute Decimal longitude (1..1); // Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). attribute Decimal latitude (1..1); // Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). attribute Decimal altitude (0..1); // Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). } attribute Identifier identifier (0..-1); // Unique code or number identifying the location to its users. attribute String name (0..1); // Name of the location as used by humans. Does not need to be unique. attribute String description (0..1); // Description of the Location, which helps in finding or referencing the place. attribute LocationMode mode (0..1); // Indicates whether a resource instance represents a specific location or a class of locations. attribute CodeableConcept type (0..1); // Indicates the type of function performed at the location. attribute ContactPoint telecom (0..-1); // The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites. attribute Address address (0..1); // Physical location. attribute CodeableConcept physicalType (0..1); // Physical form of the location, e.g. building, room, vehicle, road. attribute LocationPositionComponent position (0..1); // The absolute geographic location of the Location, expressed in with the WGS84 datum (This is the same co-ordinate system used in KML). attribute ResourceReference managingOrganization (0..1); // The organization that is responsible for the provisioning and upkeep of the location. attribute ResourceReference partOf (0..1); // Another Location which this Location is physically part of. attribute LocationStatus status (0..1); // active | suspended | inactive. } class Media extends Resource { // A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference. enum DigitalMediaType { // Whether the Media is a photo, video, or audio 0 : Null = "Missing in instance"; 1 : photo = "The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents."; 2 : video = "The media consists of a series of frames that capture a moving image."; 3 : audio = "The media consists of a sound recording."; } attribute DigitalMediaType type (1..1); // Whether the media is a photo (still image), an audio recording, or a video recording. attribute CodeableConcept subtype (0..1); // Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality. attribute Identifier identifier (0..-1); // Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers. attribute ResourceReference subject (0..1); // Who/What this Media is a record of. attribute ResourceReference operator (0..1); // The person who administered the collection of the image. attribute CodeableConcept view (0..1); // The name of the imaging view e.g Lateral or Antero-posterior (AP). attribute String deviceName (0..1); // The name of the device / manufacturer of the device that was used to make the recording. attribute PositiveInt height (0..1); // Height of the image in pixels(photo/video). attribute PositiveInt width (0..1); // Width of the image in pixels (photo/video). attribute PositiveInt frames (0..1); // The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. attribute UnsignedInt duration (0..1); // The duration of the recording in seconds - for audio and video. attribute Attachment content (1..1); // The actual content of the media - inline or by direct reference to the media source file. } class Medication extends Resource { // Primarily used for identification and definition of Medication, but also covers ingredients and packaging. enum MedicationKind { // Whether the medication is a product or a package 0 : Null = "Missing in instance"; 1 : product = "The medication is a product."; 2 : package_ = "The medication is a package - a contained group of one of more products."; } class MedicationProductComponent extends BackboneElement { attribute CodeableConcept form (0..1); // Describes the form of the item. Powder; tables; carton. attribute MedicationProductIngredientComponent ingredient (0..-1); // Identifies a particular constituent of interest in the product. attribute MedicationProductBatchComponent batch (0..-1); // Information about a group of medication produced or packaged from one production run. } class MedicationProductIngredientComponent extends BackboneElement { attribute ResourceReference item (1..1); // The actual ingredient - either a substance (simple ingredient) or another medication. attribute Ratio amount (0..1); // Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet. } class MedicationProductBatchComponent extends BackboneElement { attribute String lotNumber (0..1); // The assigned lot number of a batch of the specified product. attribute DateTime expirationDate (0..1); // When this specific batch of product will expire. } class MedicationPackageComponent extends BackboneElement { attribute CodeableConcept container (0..1); // The kind of container that this package comes as. attribute MedicationPackageContentComponent content (0..-1); // A set of components that go to make up the described item. } class MedicationPackageContentComponent extends BackboneElement { attribute ResourceReference item (1..1); // Identifies one of the items in the package. attribute Quantity amount (0..1); // The amount of the product that is in the package. } attribute String name (0..1); // The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. attribute CodeableConcept code (0..1); // A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes. attribute Boolean isBrand (0..1); // Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). attribute ResourceReference manufacturer (0..1); // Describes the details of the manufacturer. attribute MedicationKind kind (0..1); // Medications are either a single administrable product or a package that contains one or more products. attribute MedicationProductComponent product (0..1); // Information that only applies to products (not packages). attribute MedicationPackageComponent package_ (0..1); // Information that only applies to packages (not products). } class MedicationAdministration extends Resource { // Describes the event of a patient consuming or otherwise being administered a medication. This may be as simple as swallowing a tablet or it may be a long running infusion.Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner. enum MedicationAdminStatus { // A set of codes indicating the current status of a MedicationAdministration 0 : Null = "Missing in instance"; 1 : inprogress = "The administration has started but has not yet completed."; 2 : onhold = "Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called "suspended"."; 3 : completed = "All actions that are implied by the administration have occurred."; 4 : enteredinerror = "The administration was entered in error and therefore nullified."; 5 : stopped = "Actions implied by the administration have been permanently halted, before all of them occurred."; } class MedicationAdministrationDosageComponent extends BackboneElement { attribute String text (0..1); // Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. attribute CodeableConcept site (0..1); // A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm". attribute CodeableConcept route (0..1); // A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc. attribute CodeableConcept method (0..1); // A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.Terminologies used often pre-coordinate this term with the route and or form of administration. attribute Quantity quantity (0..1); // The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection. attribute Ratio rate (0..1); // Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity. } attribute Identifier identifier (0..-1); // External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated. attribute MedicationAdminStatus status (1..1); // Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. attribute ResourceReference patient (1..1); // The person or animal to whom the medication was given. attribute ResourceReference practitioner (0..1); // The individual who was responsible for giving the medication to the patient. attribute ResourceReference encounter (0..1); // The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of. attribute ResourceReference prescription (0..1); // The original request, instruction or authority to perform the administration. attribute Boolean wasNotGiven (0..1); // Set this to true if the record is saying that the medication was NOT administered. attribute CodeableConcept reasonNotGiven (0..-1); // A code indicating why the administration was not performed. attribute CodeableConcept reasonGiven (0..-1); // A code indicating why the medication was given. attribute Type effectiveTime (1..1); // An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate. attribute ResourceReference medication (0..1); // Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. attribute ResourceReference device (0..-1); // The device used in administering the medication to the patient. E.g. a particular infusion pump. attribute String note (0..1); // Extra information about the medication administration that is not conveyed by the other attributes. attribute MedicationAdministrationDosageComponent dosage (0..1); // Indicates how the medication is/was used by the patient. } class MedicationDispense extends Resource { // Dispensing a medication to a named patient. This includes a description of the supply provided and the instructions for administering the medication. enum MedicationDispenseStatus { // A code specifying the state of the dispense event. 0 : Null = "Missing in instance"; 1 : inprogress = "The dispense has started but has not yet completed."; 2 : onhold = "Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called "suspended"."; 3 : completed = "All actions that are implied by the dispense have occurred."; 4 : enteredinerror = "The dispense was entered in error and therefore nullified."; 5 : stopped = "Actions implied by the dispense have been permanently halted, before all of them occurred."; } class MedicationDispenseDosageInstructionComponent extends BackboneElement { attribute CodeableConcept additionalInstructions (0..1); // Additional instructions such as "Swallow with plenty of water" which may or may not be coded. attribute Type schedule (0..1); // The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". attribute Type asNeeded (0..1); // If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication. attribute CodeableConcept site (0..1); // A coded specification of the anatomic site where the medication first enters the body. attribute CodeableConcept route (0..1); // A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject. attribute CodeableConcept method (0..1); // A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.Terminologies used often pre-coordinate this term with the route and or form of administration. attribute Type dose (0..1); // The amount of therapeutic or other substance given at one administration event. attribute Ratio rate (0..1); // Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours. attribute Ratio maxDosePerPeriod (0..1); // The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours. } class MedicationDispenseSubstitutionComponent extends BackboneElement { attribute CodeableConcept type (1..1); // A code signifying whether a different drug was dispensed from what was prescribed. attribute CodeableConcept reason (0..-1); // Indicates the reason for the substitution of (or lack of substitution) from what was prescribed. attribute ResourceReference responsibleParty (0..-1); // The person or organization that has primary responsibility for the substitution. } attribute Identifier identifier (0..1); // Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR. attribute MedicationDispenseStatus status (0..1); // A code specifying the state of the set of dispense events. attribute ResourceReference patient (0..1); // A link to a resource representing the person to whom the medication will be given. attribute ResourceReference dispenser (0..1); // The individual responsible for dispensing the medication. attribute ResourceReference authorizingPrescription (0..-1); // Indicates the medication order that is being dispensed against. attribute CodeableConcept type (0..1); // Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. attribute Quantity quantity (0..1); // The amount of medication that has been dispensed. Includes unit of measure. attribute Quantity daysSupply (0..1); // The amount of medication expressed as a timing amount. attribute ResourceReference medication (0..1); // Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. attribute DateTime whenPrepared (0..1); // The time when the dispensed product was packaged and reviewed. attribute DateTime whenHandedOver (0..1); // The time the dispensed product was provided to the patient or their representative. attribute ResourceReference destination (0..1); // Identification of the facility/location where the medication was shipped to, as part of the dispense event. attribute ResourceReference receiver (0..-1); // Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional. attribute String note (0..1); // Extra information about the dispense that could not be conveyed in the other attributes. attribute MedicationDispenseDosageInstructionComponent dosageInstruction (0..-1); // Indicates how the medication is to be used by the patient. attribute MedicationDispenseSubstitutionComponent substitution (0..1); // Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why. } class MedicationPrescription extends Resource { // An order for both supply of the medication and the instructions for administration of the medicine to a patient. enum MedicationPrescriptionStatus { // A code specifying the state of the prescribing event. Describes the lifecycle of the prescription. 0 : Null = "Missing in instance"; 1 : active = "The prescription is 'actionable', but not all actions that are implied by it have occurred yet."; 2 : onhold = "Actions implied by the prescription have been temporarily halted, but are expected to continue later. May also be called "suspended"."; 3 : completed = "All actions that are implied by the prescription have occurred (this will rarely be made explicit)."; 4 : enteredinerror = "The prescription was entered in error and therefore nullified."; 5 : stopped = "Actions implied by the prescription have been permanently halted, before all of them occurred."; 6 : superceded = "The prescription was replaced by a newer one, which encompasses all the information in the previous one."; 7 : draft = "The prescription is not yet 'actionable', i.e. it is a work in progress, required sign-off, need to be run through decision support."; } class MedicationPrescriptionDosageInstructionComponent extends BackboneElement { attribute String text (0..1); // Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. attribute CodeableConcept additionalInstructions (0..1); // Additional instructions such as "Swallow with plenty of water" which may or may not be coded. attribute Type scheduled (0..1); // The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". attribute Type asNeeded (0..1); // If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication. attribute CodeableConcept site (0..1); // A coded specification of the anatomic site where the medication first enters the body. attribute CodeableConcept route (0..1); // A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient. attribute CodeableConcept method (0..1); // A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.Terminologies used often pre-coordinate this term with the route and or form of administration. attribute Type dose (0..1); // The amount of therapeutic or other substance given at one administration event. attribute Ratio rate (0..1); // Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours. attribute Ratio maxDosePerPeriod (0..1); // The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hours. } class MedicationPrescriptionDispenseComponent extends BackboneElement { attribute ResourceReference medication (0..1); // Identifies the medication being administered. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications. attribute Period validityPeriod (0..1); // Design Comments: This indicates the validity period of a prescription (stale dating the Prescription) It reflects the prescriber perspective for the validity of the prescription. Dispenses must not be made against the prescription outside of this period. The lower-bound of the Dispensing Window signifies the earliest date that the prescription can be filled for the first time. If an upper-bound is not specified then the Prescription is open-ended or will default to a stale-date based on regulations. Rationale: Indicates when the Prescription becomes valid, and when it ceases to be a dispensable Prescription. attribute PositiveInt numberOfRepeatsAllowed (0..1); // An integer indicating the number of repeats of the Dispense. UsageNotes: For example, the number of times the prescribed quantity is to be supplied including the initial standard fill. attribute Quantity quantity (0..1); // The amount that is to be dispensed for one fill. attribute Duration expectedSupplyDuration (0..1); // Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last. In some situations, this attribute may be used instead of quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued, e.g. 90 days supply of medication (based on an ordered dosage) When possible, it is always better to specify quantity, as this tends to be more precise. expectedSupplyDuration will always be an estimate that can be influenced by external factors. } class MedicationPrescriptionSubstitutionComponent extends BackboneElement { attribute CodeableConcept type (1..1); // A code signifying whether a different drug should be dispensed from what was prescribed. attribute CodeableConcept reason (0..1); // Indicates the reason for the substitution, or why substitution must or must not be performed. } attribute Identifier identifier (0..-1); // External identifier - one that would be used by another non-FHIR system - for example a re-imbursement system might issue its own id for each prescription that is created. This is particularly important where FHIR only provides part of an erntire workflow process where records have to be tracked through an entire system. attribute DateTime dateWritten (0..1); // The date (and perhaps time) when the prescription was written. attribute MedicationPrescriptionStatus status (0..1); // A code specifying the state of the order. Generally this will be active or completed state. attribute ResourceReference patient (0..1); // A link to a resource representing the person to whom the medication will be given. attribute ResourceReference prescriber (0..1); // The healthcare professional responsible for authorizing the prescription. attribute ResourceReference encounter (0..1); // A link to a resource that identifies the particular occurrence of contact between patient and health care provider. attribute Type reason (0..1); // Can be the reason or the indication for writing the prescription. attribute String note (0..1); // Extra information about the prescription that could not be conveyed by the other attributes. attribute ResourceReference medication (0..1); // Identifies the medication being administered. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications. attribute MedicationPrescriptionDosageInstructionComponent dosageInstruction (0..-1); // Indicates how the medication is to be used by the patient. attribute MedicationPrescriptionDispenseComponent dispense (0..1); // Deals with details of the dispense part of the order. attribute MedicationPrescriptionSubstitutionComponent substitution (0..1); // Indicates whether or not substitution can or should be part of the dispense. In some cases substitution must happen, in other cases substitution must not happen, and in others it does not matter. This block explains the prescriber's intent. If nothing is specified substitution may be done. } class MedicationStatement extends Resource { // A record of medication being taken by a patient, or that the medication has been given to a patient where the record is the result of a report from the patient or another clinician. enum MedicationStatementStatus { // A set of codes indicating the current status of a MedicationStatement 0 : Null = "Missing in instance"; 1 : inprogress = "The medication is still being taken."; 2 : completed = "All actions that are implied by the statement have occurred."; 3 : enteredinerror = "The statement was entered in error and therefore nullified."; } class MedicationStatementDosageComponent extends BackboneElement { attribute String text (0..1); // Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. attribute Timing schedule (0..1); // The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". attribute Type asNeeded (0..1); // If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication. attribute CodeableConcept site (0..1); // A coded specification of the anatomic site where the medication first enters the body. attribute CodeableConcept route (0..1); // A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject. attribute CodeableConcept method (0..1); // A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.Terminologies used often pre-coordinate this term with the route and or form of administration. attribute Quantity quantity (0..1); // The amount of therapeutic or other substance given at one administration event. attribute Ratio rate (0..1); // Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours. attribute Ratio maxDosePerPeriod (0..1); // The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hours. } attribute Identifier identifier (0..-1); // External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated. attribute ResourceReference patient (0..1); // The person or animal who is /was taking the medication. attribute ResourceReference informationSource (0..1); // The person who provided the information about the taking of this medication. attribute DateTime dateAsserted (0..1); // The date when the medication statement was asserted by the information source. attribute MedicationStatementStatus status (1..1); // A code specifying the state of the statement. Generally this will be in-progress or completed state. attribute Boolean wasNotGiven (0..1); // Set this to true if the record is saying that the medication was NOT taken. attribute CodeableConcept reasonNotGiven (0..-1); // A code indicating why the medication was not taken. attribute Type reasonForUse (0..1); // A reason for why the medication is being/was taken. attribute Type effective (0..1); // The interval of time during which it is being asserted that the patient was taking the medication (or was not taking, when the 'wasNotGiven' attribute is true). attribute String note (0..1); // Provides extra information about the medication statement that is not conveyed by the other attributes. attribute ResourceReference medication (0..1); // Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. attribute MedicationStatementDosageComponent dosage (0..-1); // Indicates how the medication is/was used by the patient. } class MessageHeader extends Resource { // The header for a message exchange that is either requesting or responding to an action. The Reference(s) that are the subject of the action as well as other Information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle. enum ResponseCode { // The kind of response to a message 0 : Null = "Missing in instance"; 1 : ok = "The message was accepted and processed without error."; 2 : transienterror = "Some internal unexpected error occurred - wait and try again. Note - this is usually used for things like database unavailable, which may be expected to resolve, though human intervention may be required."; 3 : fatalerror = "The message was rejected because of some content in it. There is no point in re-sending without change. The response narrative SHALL describe what the issue is."; } class MessageHeaderResponseComponent extends BackboneElement { attribute Id identifier (1..1); // The id of the message that this message is a response to. attribute ResponseCode code (1..1); // Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not. attribute ResourceReference details (0..1); // Full details of any issues found in the message. } class MessageSourceComponent extends BackboneElement { attribute String name (0..1); // Human-readable name for the source system. attribute String software (0..1); // May include configuration or other information useful in debugging. attribute String version (0..1); // Can convey versions of multiple systems in situations where a message passes through multiple hands. attribute ContactPoint contact (0..1); // An e-mail, phone, website or other contact point to use to resolve issues with message communications. attribute Uri endpoint (1..1); // Identifies the routing target to send acknowledgements to. } class MessageDestinationComponent extends BackboneElement { attribute String name (0..1); // Human-readable name for the target system. attribute ResourceReference target (0..1); // Identifies the target end system in situations where the initial message transmission is to an intermediary system. attribute Uri endpoint (1..1); // Indicates where the message should be routed to. } attribute Id identifier (1..1); // The identifier of this message. attribute Instant timestamp (1..1); // The time that the message was sent. attribute Coding event (1..1); // Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value "http://hl7.org/fhir/message-type". attribute MessageHeaderResponseComponent response (0..1); // Information about the message that this message is a response to. Only present if this message is a response. attribute MessageSourceComponent source (1..1); // The source application from which this message originated. attribute MessageDestinationComponent destination (0..-1); // The destination application which the message is intended for. attribute ResourceReference enterer (0..1); // The person or device that performed the data entry leading to this message. Where there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions. attribute ResourceReference author (0..1); // The logical author of the message - the person or device that decided the described event should happen. Where there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions. attribute ResourceReference receiver (0..1); // Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient. attribute ResourceReference responsible (0..1); // The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party. attribute CodeableConcept reason (0..1); // Coded indication of the cause for the event - indicates a reason for the occurance of the event that is a focus of this message. attribute ResourceReference data (0..-1); // The actual data of the message - a reference to the root/focus class of the event. } class NamingSystem extends Resource { // A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc. Represents a "System" used within the Identifier and Coding data types. enum NamingsystemType { // Identifies the purpose of the namingsystem 0 : Null = "Missing in instance"; 1 : codesystem = "The namingsystem is used to define concepts and symbols to represent those concepts. E.g. UCUM, LOINC, NDC code, local lab codes, etc."; 2 : identifier = "The namingsystem is used to manage identifiers (e.g. license numbers, order numbers, etc.)."; 3 : root = "The namingsystem is used as the root for other identifiers and namingsystems."; } enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum NamingsystemIdentifierType { // Identifies the style of unique identifier used to identify a namepace 0 : Null = "Missing in instance"; 1 : oid = "An ISO object identifier. E.g. 1.2.3.4.5."; 2 : uuid = "A universally unique identifier of the form a5afddf4-e880-459b-876e-e4591b0acc11."; 3 : uri = "A uniform resource identifier (ideally a URL - uniform resource locator). E.g. http://unitsofmeasure.org."; 4 : other = "Some other type of unique identifier. E.g HL7-assigned reserved string such as LN for LOINC."; } class NamingSystemUniqueIdComponent extends BackboneElement { attribute NamingsystemIdentifierType type (1..1); // Identifies the unique identifier scheme used for this particular identifier. attribute String value (1..1); // The string that should be sent over the wire to identify the code system or identifier system. attribute Boolean preferred (0..1); // Indicates whether this identifier is the "preferred" identifier of this type. attribute Period period (0..1); // Identifies the period of time over which this identifier is considered appropriate to refer to the namingsystem. Outside of this window, the identifier might be non-deterministic. } class NamingSystemContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the naming system. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } attribute NamingsystemType type (1..1); // Indicates the purpose for the namingsystem - what kinds of things does it make unique? attribute String name (1..1); // The descriptive name of this particular identifier type or code system. attribute DateTime date (1..1); // The date (and optionally time) when the system was registered or published. attribute ConformanceResourceStatus status (1..1); // Indicates whether the namingsystem is "ready for use" or not. attribute Code country (0..1); // If present, indicates that the identifier or code system is principally intended for use or applies to entities within the specified country. For example, the country associated with a national code system. attribute CodeableConcept category (0..1); // Categorizes a namingsystem for easier search by grouping related namingsystems. attribute String responsible (0..1); // The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision. attribute String description (0..1); // Details about what the namespace identifies including scope, granularity, version labeling, etc. attribute String usage (0..1); // Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc. attribute NamingSystemUniqueIdComponent uniqueId (1..-1); // Indicates how the system may be identified when referenced in electronic exchange. attribute String publisher (0..1); // The name of the individual or organization that published the naming system. attribute NamingSystemContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute ResourceReference replacedBy (0..1); // For namingsystems that are retired, indicates the namingsystem that should be used in their place (if any). } class NutritionOrder extends Resource { // A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident. enum NutritionOrderStatus { // Codes specifying the state of the request. Describes the lifecycle of the nutrition order. 0 : Null = "Missing in instance"; 1 : proposed = "The request has been proposed."; 2 : draft = "The request is in preliminary form prior to being sent."; 3 : planned = "The request has been planned."; 4 : requested = "The request has been placed."; 5 : active = "The request is 'actionable', but not all actions that are implied by it have occurred yet."; 6 : onhold = "Actions implied by the request have been temporarily halted, but are expected to continue later. May also be called "suspended"."; 7 : completed = "All actions that are implied by the order have occurred and no continuation is planned (this will rarely be made explicit)."; 8 : cancelled = "The request has been withdrawn and is no longer actionable."; } class NutritionOrderOralDietComponent extends BackboneElement { attribute CodeableConcept type (0..-1); // The kind of diet or dietary restriction such as fiber restricted diet or diabetic diet. attribute Timing scheduled (0..1); // The time period and frequency at which the diet should be given. attribute NutritionOrderOralDietNutrientComponent nutrient (0..-1); // Class that defines the quantity and type of nutrient modifications required for the oral diet. attribute NutritionOrderOralDietTextureComponent texture (0..-1); // Class that describes any texture modifications required for the patient to safely consume various types of solid foods. attribute CodeableConcept fluidConsistencyType (0..-1); // The required consistency (e.g., honey-thick, nectar-thick, thin, thickened.) of liquids or fluids served to the patient. attribute String instruction (0..1); // Free text or additional instructions or information pertaining to the oral diet. } class NutritionOrderOralDietNutrientComponent extends BackboneElement { attribute CodeableConcept modifier (0..1); // The nutrient that is being modified such as carbohydrate or sodium. attribute Quantity amount (0..1); // The quantity of the specified nutrient to include in diet. } class NutritionOrderOralDietTextureComponent extends BackboneElement { attribute CodeableConcept modifier (0..1); // Any texture modifications (for solid foods) that should be made, e.g. easy to chew, chopped, ground, and pureed. attribute CodeableConcept foodType (0..1); // The food type(s) (e.g., meats, all foods) that the texture modification applies to. This could be all foods types. } class NutritionOrderSupplementComponent extends BackboneElement { attribute CodeableConcept type (0..1); // The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement. attribute String productName (0..1); // The product or brand name of the nutritional supplement such as "Acme Protein Shake". attribute Timing scheduled (0..1); // The time period and frequency at which the supplement(s) should be given. attribute Quantity quantity (0..1); // The amount of the nutritional supplement to be given. attribute String instruction (0..1); // Free text or additional instructions or information pertaining to the oral supplement. } class NutritionOrderEnteralFormulaComponent extends BackboneElement { attribute String administrationInstructions (0..1); // Free text formula administration, feeding instructions or additional instructions or information. attribute CodeableConcept baseFormulaType (0..1); // The type of enteral or infant formula such as an adult standard formula with fiber or a soy-based infant formula. attribute String baseFormulaProductName (0..1); // The product or brand name of the enteral or infant formula product such as "ACME Adult Standard Formula". attribute Timing scheduled (0..1); // The time period and frequency at which the enteral formula should be delivered to the patient. attribute CodeableConcept additiveType (0..1); // Indicates the type of modular component such as protein, carbohydrate, fat or fiber to be provided in addition to or mixed with the base formula. attribute String additiveProductName (0..1); // The product or brand name of the type of modular component to be added to the formula. attribute Quantity caloricDensity (0..1); // The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL. attribute CodeableConcept routeofAdministration (0..1); // The route or physiological path of administration into the patient 's gastrointestinal tract for purposes of providing the formula feeding, e.g., nasogastric tube. attribute Quantity quantity (0..1); // The volume of formula to provide to the patient per the specified administration schedule. attribute Ratio rate (0..1); // The rate of administration of formula via a feeding pump, e.g., 60 mL per hour, according to the specified schedule. attribute Quantity rateAdjustment (0..1); // The change in the rate of administration over a given time, e.g. increase by 10 mL/hour every 4 hours. attribute Quantity maxVolumeToDeliver (0..1); // The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours. } attribute ResourceReference patient (1..1); // The person (patient) who needs the nutrition order for an oral diet, nutritional supplement and/or enteral or formula feeding. attribute ResourceReference orderer (0..1); // The practitioner that holds legal responsibility for ordering the diet, nutritional supplement, or formula feedings. attribute Identifier identifier (0..-1); // Identifiers assigned to this order by the order sender or by the order receiver. attribute ResourceReference encounter (0..1); // An encounter that provides additional information about the healthcare context in which this request is made. attribute DateTime dateTime (1..1); // The date and time that this nutrition order was requested. attribute NutritionOrderStatus status (0..1); // The workflow status of the nutrition order/request. attribute ResourceReference allergyIntolerance (0..-1); // A link to a record of allergies or Intolerances which should be included in the nutrition order. attribute CodeableConcept foodPreferenceModifier (0..-1); // This modifier is used to convey order-specific modifiers about the type of food that should be given. These can be derived from patient allergies, intolerances, or preferences such as Halal, Vegan or Kosher. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings. attribute CodeableConcept excludeFoodModifier (0..-1); // This modifier is used to convey order-specific modifiers about the type of food that should NOT be given. These can be derived from patient allergies, intolerances, or preferences such as No Red Meat, No Soy or No Wheat or Gluten-Free. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings. attribute NutritionOrderOralDietComponent oralDiet (0..1); // Diet given orally in contrast to enteral (tube) feeding. attribute NutritionOrderSupplementComponent supplement (0..-1); // Oral nutritional products given in order to add further nutritional value to the patient's diet. attribute NutritionOrderEnteralFormulaComponent enteralFormula (0..1); // Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity. } class Observation extends Resource { // Measurements and simple assertions made about a patient, device or other subject. enum ObservationStatus { // Codes providing the status of an observation 0 : Null = "Missing in instance"; 1 : registered = "The existence of the observation is registered, but there is no result yet available."; 2 : preliminary = "This is an initial or interim observation: data may be incomplete or unverified."; 3 : final_ = "The observation is complete and verified by an authorized person."; 4 : amended = "The observation has been modified subsequent to being Final, and is complete and verified by an authorized person."; 5 : cancelled = "The observation is unavailable because the measurement was not started or not completed (also sometimes called "aborted")."; 6 : enteredinerror = "The observation has been withdrawn following previous Final release."; 7 : unknown = "The observation status is unknown. Note that "unknown" is a value of last resort and every attempt should be made to provide a meaningful value other than "unknown"."; } enum ObservationReliability { // Codes that provide an estimate of the degree to which quality issues have impacted on the value of an observation 0 : Null = "Missing in instance"; 1 : ok = "The result has no reliability concerns."; 2 : ongoing = "An early estimate of value; measurement is still occurring."; 3 : early = "An early estimate of value; processing is still occurring."; 4 : questionable = "The observation value should be treated with care."; 5 : calibrating = "The result has been generated while calibration is occurring."; 6 : error = "The observation could not be completed because of an error."; 7 : unknown = "No observation reliability value was available."; } enum ObservationRelationshiptypes { // Codes specifying how two observations are related 0 : Null = "Missing in instance"; 1 : hascomponent = "The target observation is a component of this observation (e.g. Systolic and Diastolic Blood Pressure)."; 2 : hasmember = "This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group."; 3 : derivedfrom = "The target observation is part of the information from which this observation value is derived (e.g. calculated anion gap, Apgar score)."; 4 : sequelto = "This observation follows the target observation (e.g. timed tests such as Glucose Tolerance Test)."; 5 : replaces = "This observation replaces a previous observation (i.e. a revised value). The target observation is now obsolete."; 6 : qualifiedby = "The value of the target observation qualifies (refines) the semantics of the source observation (e.g. a lipaemia measure target from a plasma measure)."; 7 : interferedby = "The value of the target observation interferes (degardes quality, or prevents valid observation) with the semantics of the source observation (e.g. a hemolysis measure target from a plasma potassium measure which has no value)."; } class ObservationReferenceRangeComponent extends BackboneElement { attribute Quantity low (0..1); // The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'. attribute Quantity high (0..1); // The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'. attribute CodeableConcept meaning (0..1); // Code for the meaning of the reference range. attribute Range age (0..1); // The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so. attribute String text (0..1); // Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of "Negative" or a list or table of 'normals'. } class ObservationRelatedComponent extends BackboneElement { attribute ObservationRelationshiptypes type (0..1); // A code specifying the kind of relationship that exists with the target observation. attribute ResourceReference target (1..1); // A reference to the observation that is related to this observation. } attribute CodeableConcept code (1..1); // Describes what was observed. Sometimes this is called the observation "code". attribute Type value (0..1); // The information determined as a result of making the observation, if the information has a simple value. attribute CodeableConcept dataAbsentReason (0..1); // Provides a reason why the expected value in the element Observation.value[x] is missing. attribute CodeableConcept interpretation (0..1); // The assessment made based on the result of the observation. attribute String comments (0..1); // May include statements about significant, unexpected or unreliable values, or information about the source of the value where this may be relevant to the interpretation of the result. attribute Type applies (0..1); // The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself. attribute Instant issued (0..1); // The date and time this observation was made available. attribute ObservationStatus status (1..1); // The status of the result value. attribute ObservationReliability reliability (0..1); // An estimate of the degree to which quality issues have impacted on the value reported. attribute Type bodySite (0..1); // Indicates the site on the subject's body where the observation was made ( i.e. the target site). attribute CodeableConcept method (0..1); // Indicates the mechanism used to perform the observation. attribute Identifier identifier (0..-1); // A unique identifier for the simple observation. attribute ResourceReference subject (0..1); // The patient, or group of patients, location, or device whose characteristics (direct or indirect) are described by the observation and into whose record the observation is placed. Comments: Indirect characteristics may be those of a specimen, fetus, other observer (for example a relative or EMT), or any observation made about the subject. attribute ResourceReference specimen (0..1); // The specimen that was used when this observation was made. attribute ResourceReference performer (0..-1); // Who was responsible for asserting the observed value as "true". attribute ResourceReference device (0..1); // The device used to generate the observation data. attribute ResourceReference encounter (0..1); // The healthcare event ( e.g. a patient and healthcare provider interaction ) during which this observation is made. attribute ObservationReferenceRangeComponent referenceRange (0..-1); // Guidance on how to interpret the value by comparison to a normal or recommended range. attribute ObservationRelatedComponent related (0..-1); // Related observations - either components, or previous observations, or statements of derivation. } class OperationDefinition extends Resource { // A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction). enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum OperationKind { // Whether an operation is a normal operation or a query 0 : Null = "Missing in instance"; 1 : operation = "This operation is invoked as an operation."; 2 : query = "This operation is a named query, invoked using the search mechanism."; } enum OperationParameterUse { // Whether an operation parameter is an input or an output parameter 0 : Null = "Missing in instance"; 1 : in = "This is an input parameter."; 2 : out = "This is an output parameter."; } class OperationDefinitionContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the operation definition. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } class OperationDefinitionParameterComponent extends BackboneElement { attribute Code name (1..1); // The name of used to identify the parameter. attribute OperationParameterUse use (1..1); // Whether this is an input or an output parameter. attribute Integer min (1..1); // The minimum number of times this parameter SHALL appear in the request or response. attribute String max (1..1); // The maximum number of times this element is permitted to appear in the request or response. attribute String documentation (0..1); // Describes the meaning or use of this parameter. attribute Code type (0..1); // The type for this parameter. attribute ResourceReference profile (0..1); // A profile the specifies the rules that this parameter must conform to. attribute OperationDefinitionParameterPartComponent part (0..-1); // The parts of a Tuple Parameter. } class OperationDefinitionParameterPartComponent extends BackboneElement { attribute Code name (1..1); // The name of used to identify the parameter. attribute UnsignedInt min (1..1); // The minimum number of times this parameter SHALL appear in the request or response. attribute String max (1..1); // The maximum number of times this element is permitted to appear in the request or response. attribute String documentation (0..1); // Describes the meaning or use of this parameter. attribute Code type (1..1); // The type for this parameter. attribute ResourceReference profile (0..1); // A profile the specifies the rules that this parameter must conform to. } attribute Uri url (0..1); // An absolute url that is used to identify this operation definition when it is referenced in a specification, model, design or an instance (should be globally unique uri). attribute String version (0..1); // The identifier that is used to identify this version of the profile when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. attribute String name (1..1); // A free text natural language name identifying the Profile. attribute String publisher (0..1); // The name of the individual or organization that published the operation definition. attribute OperationDefinitionContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute String description (0..1); // A free text natural language description of the profile and its use. attribute String requirements (0..1); // Explains why this operation definition is needed and why it's been constrained as it has. attribute ConformanceResourceStatus status (1..1); // The status of the profile. attribute Boolean experimental (0..1); // This profile was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute DateTime date (0..1); // The date that this version of the profile was published. attribute OperationKind kind (1..1); // Whether this is operation or named query. attribute Boolean idempotent (0..1); // Operations that are idempotent (see [HTTP specification definition of idempotent](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)) may be invoked by performing an HTTP GET operation instead of a POST. attribute Code code (1..1); // The name used to invoke the operation. attribute String notes (0..1); // Additional information about how to use this operation or named query. attribute ResourceReference base (0..1); // Indicates that this operation definition is a constraining profile on the base. attribute Boolean system (1..1); // Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context). attribute Code type (0..-1); // Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a resource type for the context). attribute Boolean instance (1..1); // Indicates whether this operation can be invoked on a particular instance of one of the given types. attribute OperationDefinitionParameterComponent parameter (0..-1); // The parameters for the operation/query. } class OperationOutcome extends Resource { // A collection of error, warning or information messages that result from a system action. enum IssueSeverity { // How the issue affects the success of the action 0 : Null = "Missing in instance"; 1 : fatal = "The issue caused the action to fail, and no further checking could be performed."; 2 : error = "The issue is sufficiently important to cause the action to fail."; 3 : warning = "The issue is not important enough to cause the action to fail, but may cause it to be performed suboptimally or in a way that is not as desired."; 4 : information = "The issue has no relation to the degree of success of the action."; } class OperationOutcomeIssueComponent extends BackboneElement { attribute IssueSeverity severity (1..1); // Indicates whether the issue indicates a variation from successful processing. attribute CodeableConcept code (1..1); // Describes the type of the issue. attribute String details (0..1); // Additional diagnostic information about the issue. Typically, this may be a description of how a value is erroneous, or a stck dump to help trace the issue. attribute String location (0..-1); // A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised. } attribute OperationOutcomeIssueComponent issue (1..-1); // An error, warning or information message that results from a system action. } class Order extends Resource { // A request to perform an action. class OrderWhenComponent extends BackboneElement { attribute CodeableConcept code (0..1); // Code specifies when request should be done. The code may simply be a priority code. attribute Timing schedule (0..1); // A formal schedule. } attribute Identifier identifier (0..-1); // Identifiers assigned to this order by the orderer or by the receiver. attribute DateTime date (0..1); // When the order was made. attribute ResourceReference subject (0..1); // Patient this order is about. attribute ResourceReference source (0..1); // Who initiated the order. attribute ResourceReference target (0..1); // Who is intended to fulfill the order. attribute Type reason (0..1); // Text - why the order was made. attribute ResourceReference authority (0..1); // If required by policy. attribute OrderWhenComponent when (0..1); // When order should be fulfilled. attribute ResourceReference detail (1..-1); // What action is being ordered. } class OrderResponse extends Resource { // A response to an order. enum OrderStatus { // The status of the response to an order 0 : Null = "Missing in instance"; 1 : pending = "The order is known, but no processing has occurred at this time."; 2 : review = "The order is undergoing initial processing to determine whether it will be accepted (usually this involves human review)."; 3 : rejected = "The order was rejected because of a workflow/business logic reason."; 4 : error = "The order was unable to be processed because of a technical error (i.e. unexpected error)."; 5 : accepted = "The order has been accepted, and work is in progress."; 6 : cancelled = "Processing the order was halted at the initiators request."; 7 : replaced = "The order has been cancelled and replaced by another."; 8 : aborted = "Processing the order was stopped because of some workflow/business logic reason."; 9 : completed = "The order has been completed."; } attribute Identifier identifier (0..-1); // Identifiers assigned to this order. The identifiers are usually assigned by the system responding to the order, but they may be provided or added to by other systems. attribute ResourceReference request (1..1); // A reference to the order that this is in response to. attribute DateTime date (0..1); // The date and time at which this order response was made (created/posted). attribute ResourceReference who (0..1); // The person, organization, or device credited with making the response. attribute Type authority (0..1); // A reference to an authority policy that is the reason for the response. Usually this is used when the order is rejected, to provide a reason for rejection. attribute OrderStatus orderStatus (1..1); // What this response says about the status of the original order. attribute String description (0..1); // Additional description about the response - e.g. a text description provided by a human user when making decisions about the order. attribute ResourceReference fulfillment (0..-1); // Links to resources that provide details of the outcome of performing the order. E.g. Diagnostic Reports in a response that is made to an order that referenced a diagnostic order. } class Organization extends Resource { // A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc. class OrganizationContactComponent extends BackboneElement { attribute CodeableConcept purpose (0..1); // Indicates a purpose for which the contact can be reached. attribute HumanName name (0..1); // A name associated with the contact. attribute ContactPoint telecom (0..-1); // A contact detail (e.g. a telephone number or an email address) by which the party may be contacted. attribute Address address (0..1); // Visiting or postal addresses for the contact. } attribute Identifier identifier (0..-1); // Identifier for the organization that is used to identify the organization across multiple disparate systems. attribute String name (0..1); // A name associated with the organization. attribute CodeableConcept type (0..1); // The kind of organization that this is. attribute ContactPoint telecom (0..-1); // A contact detail for the organization. attribute Address address (0..-1); // An address for the organization. attribute ResourceReference partOf (0..1); // The organization of which this organization forms a part. attribute OrganizationContactComponent contact (0..-1); // Contact for the organization for a certain purpose. attribute Boolean active (0..1); // Whether the organization's record is still in active use. } class Patient extends Resource { // Demographics and other administrative information about an individual or animal receiving care or other health-related services. enum AdministrativeGender { // The gender of a person used for administrative purposes 0 : Null = "Missing in instance"; 1 : male = "Male"; 2 : female = "Female"; 3 : other = "Other"; 4 : unknown = "Unknown"; } enum LinkType { // The type of link between this patient resource and another patient resource. 0 : Null = "Missing in instance"; 1 : replace = "The patient resource containing this link must no longer be used. The link points forward to another patient resource that must be used in lieu of the patient resource that contains the link."; 2 : refer = "The patient resource containing this link is in use and valid but not considered the main source of information about a patient. The link points forward to another patient resource that should be consulted to retrieve additional patient information."; 3 : seealso = "The patient resource containing this link is in use and valid, but points to another patient resource that is known to contain data about the same person. Data in this resource might overlap or contradict information found in the other patient resource. This link does not indicate any relative importance of the resources concerned, and both should be regarded as equally valid."; } class ContactComponent extends BackboneElement { attribute CodeableConcept relationship (0..-1); // The nature of the relationship between the patient and the contact person. attribute HumanName name (0..1); // A name associated with the contact person. attribute ContactPoint telecom (0..-1); // A contact detail for the person, e.g. a telephone number or an email address. attribute Address address (0..1); // Address for the contact person. attribute AdministrativeGender gender (0..1); // Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes. attribute ResourceReference organization (0..1); // Organization on behalf of which the contact is acting or for which the contact is working. attribute Period period (0..1); // The period during which this contact person or organization is valid to be contacted relating to this patient. } class AnimalComponent extends BackboneElement { attribute CodeableConcept species (1..1); // Identifies the high level taxonomic categorization of the kind of animal. attribute CodeableConcept breed (0..1); // Identifies the detailed categorization of the kind of animal. attribute CodeableConcept genderStatus (0..1); // Indicates the current state of the animal's reproductive organs. } class PatientCommunicationComponent extends BackboneElement { attribute CodeableConcept language (1..1); // The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case. E.g. "en" for English, or "en-US" for American English versus "en-EN" for England English. attribute Boolean preferred (0..1); // Indicates whether or not the Patient prefers this language (over other languages he masters up a certain level). } class PatientLinkComponent extends BackboneElement { attribute ResourceReference other (1..1); // The other patient resource that the link refers to. attribute LinkType type (1..1); // The type of link between this patient resource and another patient resource. } attribute Identifier identifier (0..-1); // An identifier for this patient. attribute HumanName name (0..-1); // A name associated with the individual. attribute ContactPoint telecom (0..-1); // A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. attribute AdministrativeGender gender (0..1); // Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. attribute Date birthDate (0..1); // The date of birth for the individual. attribute Type deceased (0..1); // Indicates if the individual is deceased or not. attribute Address address (0..-1); // Addresses for the individual. attribute CodeableConcept maritalStatus (0..1); // This field contains a patient's most recent marital (civil) status. attribute Type multipleBirth (0..1); // Indicates whether the patient is part of a multiple or indicates the actual birth order. attribute Attachment photo (0..-1); // Image of the patient. attribute ContactComponent contact (0..-1); // A contact party (e.g. guardian, partner, friend) for the patient. attribute AnimalComponent animal (0..1); // This element has a value if the patient is an animal. attribute PatientCommunicationComponent communication (0..-1); // Languages which may be used to communicate with the patient about his or her health. attribute ResourceReference careProvider (0..-1); // Patient's nominated care provider. attribute ResourceReference managingOrganization (0..1); // Organization that is the custodian of the patient record. attribute PatientLinkComponent link (0..-1); // Link to another patient resource that concerns the same actual patient. attribute Boolean active (0..1); // Whether this patient record is in active use. } class PaymentNotice extends Resource { // This resource provides the status of the payment for goods and services rendered, and the request and response resource references. attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when this resource was created. attribute ResourceReference target (0..1); // The Insurer who is target of the request. attribute ResourceReference provider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference organization (0..1); // The organization which is responsible for the services rendered to the patient. attribute ResourceReference request (0..1); // Reference of resource to reverse. attribute ResourceReference response (0..1); // Reference of response to resource to reverse. attribute Coding paymentStatus (1..1); // The payment status, typically paid: payment sent, cleared: payment received. } class PaymentReconciliation extends Resource { // This resource provides payment details and claim references supporting a bulk payment. enum RSLink { // The outcome of the processing. 0 : Null = "Missing in instance"; 1 : complete = "The processing completed without errors."; 2 : error = "The processing identified with errors."; } class DetailsComponent extends BackboneElement { attribute Coding type (1..1); // Code to indicate the nature of the payment, adjustment, funds advance, etc. attribute ResourceReference request (0..1); // The claim or financial resource. attribute ResourceReference responce (0..1); // The claim response resource. attribute ResourceReference submitter (0..1); // The Organization which submitted the invoice or financial transaction. attribute ResourceReference payee (0..1); // The organization which is receiving the payment. attribute Date date (0..1); // The date of the invoice or financial resource. attribute Money amount (0..1); // Amount paid for this detail. } class NotesComponent extends BackboneElement { attribute Coding type (0..1); // The note purpose: Print/Display. attribute String text (0..1); // The note text. } attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute ResourceReference request (0..1); // Original request resource reference. attribute RSLink outcome (0..1); // Transaction status: error, complete. attribute String disposition (0..1); // A description of the status of the adjudication. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute Period period (0..1); // The period of time for which payments have been gathered into this bulk payment for settlement. attribute ResourceReference organization (0..1); // The Insurer who produced this adjudicated response. attribute ResourceReference requestProvider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference requestOrganization (0..1); // The organization which is responsible for the services rendered to the patient. attribute DetailsComponent detail (0..-1); // List of individual settlement amounts and the corresponding transaction. attribute Coding form (0..1); // The form to be used for printing the content. attribute Money total (1..1); // Total payment amount. attribute NotesComponent note (0..-1); // Suite of notes. } class Person extends Resource { // Demographics and administrative information about a person independent of a specific health-related context. enum AdministrativeGender { // The gender of a person used for administrative purposes 0 : Null = "Missing in instance"; 1 : male = "Male"; 2 : female = "Female"; 3 : other = "Other"; 4 : unknown = "Unknown"; } enum IdentityAssuranceLevel { // The level of confidence that this link represents the same actual person, based on NIST Authentication Levels 0 : Null = "Missing in instance"; 1 : level1 = "Little or no confidence in the asserted identity's accuracy."; 2 : level2 = "Some confidence in the asserted identity's accuracy."; 3 : level3 = "High confidence in the asserted identity's accuracy."; 4 : level4 = "Very high confidence in the asserted identity's accuracy."; } class PersonLinkComponent extends BackboneElement { attribute ResourceReference target (1..1); // The resource to which this actual person is associated. attribute IdentityAssuranceLevel assurance (0..1); // Level of assurance that this link is actually associated with the target resource. } attribute Identifier identifier (0..-1); // Identifier for a person within a particular scope. attribute HumanName name (0..-1); // A name associated with the person. attribute ContactPoint telecom (0..-1); // A contact detail for the person, e.g. a telephone number or an email address. attribute AdministrativeGender gender (0..1); // Administrative Gender. attribute DateTime birthDate (0..1); // The birth date for the person. attribute Address address (0..-1); // One or more addresses for the person. attribute Attachment photo (0..1); // An image that can be displayed as a thumbnail of the person to enhance the identification of the individual. attribute ResourceReference managingOrganization (0..1); // The Organization that is the custodian of the person record. attribute Boolean active (0..1); // Whether this person's record is in active use. attribute PersonLinkComponent link (0..-1); // Link to a resource that concerns the same actual person. } class Practitioner extends Resource { // A person who is directly or indirectly involved in the provisioning of healthcare. enum AdministrativeGender { // The gender of a person used for administrative purposes 0 : Null = "Missing in instance"; 1 : male = "Male"; 2 : female = "Female"; 3 : other = "Other"; 4 : unknown = "Unknown"; } class PractitionerPractitionerRoleComponent extends BackboneElement { attribute ResourceReference managingOrganization (0..1); // The Organization where the Practitioner performs the roles associated. attribute CodeableConcept role (0..1); // Roles which this practitioner is authorized to perform for the organization. attribute CodeableConcept specialty (0..-1); // Specific specialty of the practitioner. attribute Period period (0..1); // The period during which the person is authorized to act as a practitioner in these role(s) for the organization. attribute ResourceReference location (0..-1); // The location(s) at which this practitioner provides care. attribute ResourceReference healthcareService (0..-1); // The list of healthcare services that this worker provides for this role's Organization/Location(s). } class PractitionerQualificationComponent extends BackboneElement { attribute Identifier identifier (0..-1); // An identifier that applies to this person's qualification in this role. attribute CodeableConcept code (1..1); // Coded representation of the qualification. attribute Period period (0..1); // Period during which the qualification is valid. attribute ResourceReference issuer (0..1); // Organization that regulates and issues the qualification. } attribute Identifier identifier (0..-1); // An identifier that applies to this person in this role. attribute HumanName name (0..1); // A name associated with the person. attribute ContactPoint telecom (0..-1); // A contact detail for the practitioner, e.g. a telephone number or an email address. attribute Address address (0..-1); // The postal address where the practitioner can be found or visited or to which mail can be delivered. attribute AdministrativeGender gender (0..1); // Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. attribute Date birthDate (0..1); // The date of birth for the practitioner. attribute Attachment photo (0..-1); // Image of the person. attribute PractitionerPractitionerRoleComponent practitionerRole (0..-1); // The list of Roles/Organizations that the Practitioner is associated with. attribute PractitionerQualificationComponent qualification (0..-1); // Qualifications obtained by training and certification. attribute CodeableConcept communication (0..-1); // A language the practitioner is able to use in patient communication. } class Procedure extends Resource { // An action that is or was performed on a patient. This can be a physical 'thing' like an operation, or less invasive like counseling or hypnotherapy. enum ProcedureStatus { // A code specifying the state of the procedure record 0 : Null = "Missing in instance"; 1 : inprogress = "The procedure is still occurring."; 2 : aborted = "The procedure was terminated without completing successfully."; 3 : completed = "All actions involved in the procedure have taken place."; 4 : enteredinerror = "The statement was entered in error and Is not valid."; } enum ProcedureRelationshipType { // The nature of the relationship with this procedure 0 : Null = "Missing in instance"; 1 : causedby = "This procedure had to be performed because of the related one."; 2 : becauseof = "This procedure caused the related one to be performed."; } class ProcedureBodySiteComponent extends BackboneElement { attribute Type site (1..1); // Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion. } class ProcedurePerformerComponent extends BackboneElement { attribute ResourceReference person (0..1); // The practitioner who was involved in the procedure. attribute CodeableConcept role (0..1); // E.g. surgeon, anaethetist, endoscopist. } class ProcedureRelatedItemComponent extends BackboneElement { attribute ProcedureRelationshipType type (0..1); // The nature of the relationship. attribute ResourceReference target (0..1); // The related item - e.g. a procedure. } class ProcedureDeviceComponent extends BackboneElement { attribute CodeableConcept action (0..1); // The kind of change that happened to the device during the procedure. attribute ResourceReference manipulated (1..1); // The device that was manipulated (changed) during the procedure. } attribute Identifier identifier (0..-1); // This records identifiers associated with this procedure that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute ResourceReference patient (1..1); // The person on whom the procedure was performed. attribute ProcedureStatus status (1..1); // A code specifying the state of the procedure record. Generally this will be in-progress or completed state. attribute CodeableConcept category (0..1); // A code that classifies the procedure for searching, sorting and display purposes. attribute CodeableConcept type (1..1); // The specific procedure that is performed. Use text if the exact nature of the procedure can't be coded. attribute ProcedureBodySiteComponent bodySite (0..-1); // Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion. attribute CodeableConcept indication (0..-1); // The reason why the procedure was performed. This may be due to a Condition, may be coded entity of some type, or may simply be present as text. attribute ProcedurePerformerComponent performer (0..-1); // Limited to 'real' people rather than equipment. attribute Type performed (0..1); // The date(time)/period over which the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured. attribute ResourceReference encounter (0..1); // The encounter during which the procedure was performed. attribute ResourceReference location (0..1); // The location where the procedure actually happened. e.g. a newborn at home, a tracheostomy at a restaurant. attribute CodeableConcept outcome (0..1); // What was the outcome of the procedure - did it resolve reasons why the procedure was performed? attribute ResourceReference report (0..-1); // This could be a histology result. There could potentially be multiple reports - e.g. if this was a procedure that made multiple biopsies. attribute CodeableConcept complication (0..-1); // Any complications that occurred during the procedure, or in the immediate post-operative period. These are generally tracked separately from the notes, which typically will describe the procedure itself rather than any 'post procedure' issues. attribute CodeableConcept followUp (0..-1); // If the procedure required specific follow up - e.g. removal of sutures. The followup may be represented as a simple note, or potentially could be more complex in which case the CarePlan resource can be used. attribute ProcedureRelatedItemComponent relatedItem (0..-1); // Procedures may be related to other items such as procedures or medications. For example treating wound dehiscence following a previous procedure. attribute String notes (0..1); // Any other notes about the procedure - e.g. the operative notes. attribute ProcedureDeviceComponent device (0..-1); // A device change during the procedure. attribute ResourceReference used (0..-1); // Identifies medications, devices and other substance used as part of the procedure. } class ProcedureRequest extends Resource { // A request for a procedure to be performed. May be a proposal or an order. enum ProcedureRequestStatus { // The status of the request 0 : Null = "Missing in instance"; 1 : proposed = "The request has been proposed."; 2 : draft = "The request is in preliminary form, prior to being requested."; 3 : requested = "The request has been placed."; 4 : received = "The receiving system has received the request but not yet decided whether it will be performed."; 5 : accepted = "The receiving system has accepted the request, but work has not yet commenced."; 6 : inprogress = "The work to fulfill the request is happening."; 7 : completed = "The work has been complete, the report(s) released, and no further work is planned."; 8 : suspended = "The request has been held by originating system/user request."; 9 : rejected = "The receiving system has declined to fulfill the request."; 10 : aborted = "The request was attempted, but due to some procedural error, it could not be completed."; } enum ProcedureRequestPriority { // The priority of the request 0 : Null = "Missing in instance"; 1 : routine = "The request has a normal priority."; 2 : urgent = "The request should be done urgently."; 3 : stat = "The request is time-critical."; 4 : asap = "The request should be acted on as soon as possible."; } class ProcedureRequestBodySiteComponent extends BackboneElement { attribute Type site (1..1); // Indicates the site on the subject's body where the procedure should be performed ( i.e. the target sites). } attribute Identifier identifier (0..-1); // Identifiers assigned to this order by the order or by the receiver. attribute ResourceReference subject (1..1); // The patient who will receive the procedure. attribute CodeableConcept type (1..1); // The specific procedure that is ordered. Use text if the exact nature of the procedure can't be coded. attribute ProcedureRequestBodySiteComponent bodySite (0..-1); // Indicates the sites on the subject's body where the procedure should be performed ( i.e. the target sites). attribute CodeableConcept indication (0..-1); // The reason why the procedure is proposed or ordered. This procedure request may be motivated by a Condition for instance. attribute Type timing (0..1); // The timing schedule for the proposed or ordered procedure. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". attribute ResourceReference encounter (0..1); // The encounter within which the procedure proposal or request was created. attribute ResourceReference performer (0..1); // E.g. surgeon, anaethetist, endoscopist. attribute ProcedureRequestStatus status (0..1); // The status of the order. attribute String notes (0..-1); // Any other notes associated with this proposal or order - e.g., provider instructions. attribute Type asNeeded (0..1); // If a CodeableConcept is present, it indicates the pre-condition for performing the procedure. attribute DateTime orderedOn (0..1); // The time when the request was made. attribute ResourceReference orderer (0..1); // The healthcare professional responsible for proposing or ordering the procedure. attribute ProcedureRequestPriority priority (0..1); // The clinical priority associated with this order. } class ProcessRequest extends Resource { // This resource provides the target, request and response, and action details for an action to be performed by the target on or about existing resources. enum Actionlist { // List of allowable action which this resource can request 0 : Null = "Missing in instance"; 1 : cancel = "Cancel, Reverse or nullify the target resource."; 2 : poll = "Check for previously un-read/ not-retrieved resources."; 3 : reprocess = "Re-process the target resource."; 4 : status = "Retrieve the processing status of the target resource."; } class ItemsComponent extends BackboneElement { attribute Integer sequenceLinkId (1..1); // A service line number. } attribute Actionlist action (1..1); // The type of procesing action being requested, for example Reversal, Readjudication, StatusRequest,PendedRequest. attribute Identifier identifier (0..-1); // The ProcessRequest Business Identifier. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when this resource was created. attribute ResourceReference target (0..1); // The organization which is target of the request. attribute ResourceReference provider (0..1); // The practitioner who is responsible for the action specified in thise request. attribute ResourceReference organization (0..1); // The organization which is responsible for the action speccified in thise request. attribute ResourceReference request (0..1); // Reference of resource which is the target or subject of this action. attribute ResourceReference response (0..1); // Reference of a prior response to resource which is the target or subject of this action. attribute Boolean nullify (0..1); // If true remove all history excluding audit. attribute String reference (0..1); // A reference to supply which authenticates the process. attribute ItemsComponent item (0..-1); // List of top level items to be re-adjudicated, if none specified then the entire submission is re-adjudicated. attribute String include (0..-1); // Names of resource types to include. attribute String exclude (0..-1); // Names of resource types to exclude. attribute Period period (0..1); // A period of time during which the fulfilling resources would have been created. } class ProcessResponse extends Resource { // This resource provides processing status, errors and notes from the processing of a resource. class ProcessResponseNotesComponent extends BackboneElement { attribute Coding type (0..1); // The note purpose: Print/Display. attribute String text (0..1); // The note text. } attribute Identifier identifier (0..-1); // The Response Business Identifier. attribute ResourceReference request (0..1); // Original request resource reference. attribute Coding outcome (0..1); // Transaction status: error, complete, held. attribute String disposition (0..1); // A description of the status of the adjudication or processing. attribute Coding ruleset (0..1); // The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. attribute Coding originalRuleset (0..1); // The style (standard) and version of the original material which was converted into this resource. attribute DateTime created (0..1); // The date when the enclosed suite of services were performed or completed. attribute ResourceReference organization (0..1); // The organization who produced this adjudicated response. attribute ResourceReference requestProvider (0..1); // The practitioner who is responsible for the services rendered to the patient. attribute ResourceReference requestOrganization (0..1); // The organization which is responsible for the services rendered to the patient. attribute Coding form (0..1); // The form to be used for printing the content. attribute ProcessResponseNotesComponent notes (0..-1); // Suite of processing note or additional requirements is the processing has been held. attribute Coding error (0..-1); // Processing errors. } class Provenance extends Resource { // Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g., Document Completion - has the artifact been legally authenticated), all of which may impact Security, Privacy, and Trust policies. enum ProvenanceEntityRole { // How an entity was used in an activity 0 : Null = "Missing in instance"; 1 : derivation = "A transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a preexisting entity."; 2 : revision = "A derivation for which the resulting entity is a revised version of some original."; 3 : quotation = "The repeat of (some or all of) an entity, such as text or image, by someone who may or may not be its original author."; 4 : source = "A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight."; } class ProvenanceAgentComponent extends BackboneElement { attribute Coding role (1..1); // The function of the agent with respect to the activity. attribute Coding type (1..1); // The type of participation of the agent. attribute Type reference (0..1); // Identity of participant as a Resource or uri. attribute String display (0..1); // Human-readable description of the participant. } class ProvenanceEntityComponent extends BackboneElement { attribute ProvenanceEntityRole role (1..1); // How the entity was used during the activity. attribute Coding type (1..1); // The type of the entity. If the entity is a resource, then this is a resource type. attribute Uri reference (1..1); // Identity of the Entity used. May be a logical or physical uri and maybe absolute or relative. attribute String display (0..1); // Human-readable description of the entity. attribute ProvenanceAgentComponent agent (0..1); // The entity is attributed to an agent to express the agent's responsibility for that entity, possibly along with other agents. This description can be understood as shorthand for saying that the agent was responsible for the activity which generated the entity. } attribute ResourceReference target (1..-1); // The Reference(s) that were generated or updated by the activity described in this resource. A provenance can point to more than one target if multiple resources were created/updated by the same activity. attribute Period period (0..1); // The period during which the activity occurred. attribute Instant recorded (1..1); // The instant of time at which the activity was recorded. attribute CodeableConcept reason (0..1); // The reason that the activity was taking place. attribute ResourceReference location (0..1); // Where the activity occurred, if relevant. attribute Uri policy (0..-1); // Policy or plan the activity was defined by. Typically, a single activity may have multiple applicable policy documents, such as patient consent, guarantor funding, etc. attribute ProvenanceAgentComponent agent (0..-1); // An agent takes a role in an activity such that the agent can be assigned some degree of responsibility for the activity taking place. An agent can be a person, an organization, software, or other entities that may be ascribed responsibility. attribute ProvenanceEntityComponent entity (0..-1); // An entity used in this activity. attribute Signature signature (0..-1); // A digital signature on the target Reference(s). The signer should match a Provenance.agent. The purpose of the signature is indicated. } class Questionnaire extends Resource { // A structured set of questions intended to guide the collection of answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions. enum QuestionnaireStatus { // Lifecycle status of the questionnaire 0 : Null = "Missing in instance"; 1 : draft = "This Questionnaire is not ready for official use."; 2 : published = "This Questionnaire is ready for use."; 3 : retired = "This Questionnaire should no longer be used to gather data."; } enum AnswerFormat { // The expected format of an answer 0 : Null = "Missing in instance"; 1 : boolean_ = "Answer is a yes/no answer."; 2 : decimal = "Answer is a floating point number."; 3 : integer = "Answer is an integer."; 4 : date = "Answer is a date."; 5 : dateTime = "Answer is a date and time."; 6 : instant = "Answer is a system timestamp."; 7 : time = "Answer is a time independent of date."; 8 : string = "Answer is a short (few words to short sentence) free-text entry."; 9 : text = "Answer is a long (potentially multi-paragram) free-text entry."; 10 : url = "Answer is a url (website, FTP site, etc.)."; 11 : choice = "Answer is a choice from a list of options."; 12 : openchoice = "Answer is a choice from a list of options or a free-text entry."; 13 : attachment = "Answer is binary content such as a image, PDF, etc."; 14 : reference = "Answer is a reference to another resource (practitioner, organization, etc.)."; 15 : quantity = "Answer is a combination of a numeric value and unit."; } class GroupComponent extends BackboneElement { attribute String linkId (0..1); // An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a QuestionnaireAnswers resource. attribute String title (0..1); // The human-readable name for this section of the questionnaire. attribute Coding concept (0..-1); // Identifies a how this group of questions is known in a particular terminology such as LOINC. attribute String text (0..1); // Additional text for the group, used for display purposes. attribute Boolean required (0..1); // If true, indicates that the group must be present and have required questions within it answered. If false, the group may be skipped when answering the questionnaire. attribute Boolean repeats (0..1); // Whether the group may occur multiple times in the instance, containing multiple sets of answers. attribute GroupComponent group (0..-1); // A sub-group within a group. The ordering of groups within this group is relevant. attribute QuestionComponent question (0..-1); // Set of questions within this group. The order of questions within the group is relevant. } class QuestionComponent extends BackboneElement { attribute String linkId (0..1); // An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a [[[QuestionnaireAnswers]]] resource. attribute Coding concept (0..-1); // Identifies a how this question is known in a particular terminology such as LOINC. attribute String text (0..1); // The actual question as shown to the user to prompt them for an answer. attribute AnswerFormat type (0..1); // The expected format of the answer, e.g. the type of input (string, integer) or whether a (multiple) choice is expected. attribute Boolean required (0..1); // If true, indicates that the question must be answered and have required groups within it also present. If false, the question and any contained groups may be skipped when answering the questionnaire. attribute Boolean repeats (0..1); // If true, the question may have more than one answer. attribute ResourceReference options (0..1); // Reference to a valueset containing the possible options. attribute GroupComponent group (0..-1); // Nested group, containing nested question for this question. The order of groups within the question is relevant. } attribute Identifier identifier (0..-1); // This records identifiers associated with this question set that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). attribute String version (0..1); // The version number assigned by the publisher for business reasons. It may remain the same when the resource is updated. attribute QuestionnaireStatus status (1..1); // The lifecycle status of the questionnaire as a whole. attribute DateTime date (0..1); // The date that this questionnaire was last changed. attribute String publisher (0..1); // Organization or person responsible for developing and maintaining the questionnaire. attribute ContactPoint telecom (0..-1); // Contact details to assist a user in finding and communicating with the publisher. attribute GroupComponent group (1..1); // A collection of related questions (or further groupings of questions). } class QuestionnaireAnswers extends Resource { // A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions. enum QuestionnaireAnswersStatus { // Lifecycle status of the questionnaire answers 0 : Null = "Missing in instance"; 1 : inprogress = "This QuestionnaireAnswers has been partially filled out with answers, but changes or additions are still expected to be made to it."; 2 : completed = "This QuestionnaireAnswers has been filled out with answers, and the current content is regarded as definitive."; 3 : amended = "This QuestionnaireAnswers has been filled out with answers, then marked as complete, yet changes or additions have been made to it afterwards."; } class GroupComponent extends BackboneElement { attribute String linkId (0..1); // Identifies the group from the Questionnaire that corresponds to this group in the QuestionnaireAnswers resource. attribute String title (0..1); // Text that is displayed above the contents of the group. attribute String text (0..1); // Additional text for the group, used for display purposes. attribute ResourceReference subject (0..1); // More specific subject this section's answers are about, details the subject given in QuestionnaireAnswers. attribute GroupComponent group (0..-1); // A sub-group within a group. The ordering of groups within this group is relevant. attribute QuestionComponent question (0..-1); // Set of questions within this group. The order of questions within the group is relevant. } class QuestionComponent extends BackboneElement { attribute String linkId (0..1); // Identifies the question from the Questionnaire that corresponds to this question in the QuestionnaireAnswers resource. attribute String text (0..1); // The actual question as shown to the user to prompt them for an answer. attribute QuestionAnswerComponent answer (0..-1); // The respondent's answer(s) to the question. attribute GroupComponent group (0..-1); // Nested group, containing nested question for this question. The order of groups within the question is relevant. } class QuestionAnswerComponent extends BackboneElement { attribute Type value (0..1); // The answer (or one of the answers) provided by the respondant to the question. } attribute Identifier identifier (0..1); // A business identifier assigned to a particular completed (or partially completed) questionnaire. attribute ResourceReference questionnaire (0..1); // Indicates the Questionnaire resource that defines the form for which answers are being provided. attribute QuestionnaireAnswersStatus status (1..1); // The lifecycle status of the questionnaire answers as a whole. attribute ResourceReference subject (0..1); // The subject of the questionnaire answers. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information. attribute ResourceReference author (0..1); // Person who received the answers to the questions in the QuestionnaireAnswers and recorded them in the system. attribute DateTime authored (0..1); // The date and/or time that this version of the questionnaire answers was authored. attribute ResourceReference source (0..1); // The person who answered the questions about the subject. attribute ResourceReference encounter (0..1); // Encounter during which this set of questionnaire answers were collected. When there were multiple encounters, this is the one considered most relevant to the context of the answers. attribute GroupComponent group (0..1); // A group of questions to a possibly similarly grouped set of questions in the questionnaire answers. } class ReferralRequest extends Resource { // Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organisation. enum Referralstatus { // The status of the referral 0 : Null = "Missing in instance"; 1 : draft = "A draft referral that has yet to be send."; 2 : requested = "The referral has been transmitted, but not yet acknowledged by the recipient."; 3 : active = "The referral has been acknowledged by the recipient, and is in the process of being actioned."; 4 : cancelled = "The referral has been cancelled without being completed. For example it is no longer needed."; 5 : accepted = "The recipient has agreed to deliver the care requested by the referral."; 6 : rejected = "The recipient has declined to accept the referral."; 7 : completed = "The referral has been completely actioned."; } attribute Referralstatus status (1..1); // The workflow status of the referral or transfer of care request. attribute Identifier identifier (0..-1); // Business Id that uniquely identifies the referral/care transfer request instance. attribute CodeableConcept type (0..1); // An indication of the type of referral (or where applicable the type of transfer of care) request. attribute CodeableConcept specialty (0..1); // Indication of the clinical domain or discipline to which the referral or transfer of care request is sent. attribute CodeableConcept priority (0..1); // An indication of the urgency of referral (or where applicable the type of transfer of care) request. attribute ResourceReference patient (0..1); // The patient who is the subject of a referral or transfer of care request. attribute ResourceReference requester (0..1); // The healthcare provider or provider organization who/which initaited the referral/transfer of care request. Can also be Patient (a self referral). attribute ResourceReference recipient (0..-1); // The healthcare provider(s) or provider organization(s) who/which is to receive the referral/transfer of care request. attribute ResourceReference encounter (0..1); // The encounter at which the request for referral or transfer of care is initiated. attribute DateTime dateSent (0..1); // Date/DateTime the request for referral or transfer of care is sent by the author. attribute CodeableConcept reason (0..1); // Description of clinical condition indicating why referral/transfer of care is requested. attribute String description (0..1); // The reason gives a short description of why the referral is being made, the description expands on this to support a more complete clinical summary. attribute CodeableConcept serviceRequested (0..-1); // The service(s) that is/are requested to be provided to the patient. attribute ResourceReference supportingInformation (0..-1); // Any additional (administrative, financial or clinical) information required to support request for referral or transfer of care. attribute Period fulfillmentTime (0..1); // The period of time within which the services identified in the referral/transfer of care is specified or required to occur. } class RelatedPerson extends Resource { // Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process. enum AdministrativeGender { // The gender of a person used for administrative purposes 0 : Null = "Missing in instance"; 1 : male = "Male"; 2 : female = "Female"; 3 : other = "Other"; 4 : unknown = "Unknown"; } attribute Identifier identifier (0..-1); // Identifier for a person within a particular scope. attribute ResourceReference patient (1..1); // The patient this person is related to. attribute CodeableConcept relationship (0..1); // The nature of the relationship between a patient and the related person. attribute HumanName name (0..1); // A name associated with the person. attribute ContactPoint telecom (0..-1); // A contact detail for the person, e.g. a telephone number or an email address. attribute AdministrativeGender gender (0..1); // Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. attribute Address address (0..1); // Address where the related person can be contacted or visited. attribute Attachment photo (0..-1); // Image of the person. attribute Period period (0..1); // The period of time that this relationship is considered to be valid. If there are no dates defined, then the interval is unknown. } class RiskAssessment extends Resource { // An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome. class RiskAssessmentPredictionComponent extends BackboneElement { attribute CodeableConcept outcome (1..1); // One of the potential outcomes for the patient (e.g. remission, death, a particular condition). attribute Type probability (0..1); // How likely is the outcome (in the specified timeframe). attribute Decimal relativeRisk (0..1); // Indicates the risk for this particular subject (with their specific characteristics) divided by the risk of the population in general. (Numbers greater than 1 = higher risk than the population, numbers less than 1 = lower risk.). attribute Type when (0..1); // Indicates the period of time or age range of the subject to which the specified probability applies. attribute String rationale (0..1); // Additional information explaining the basis for the prediction. } attribute ResourceReference subject (0..1); // The patient or group the risk assessment applies to. attribute DateTime date (0..1); // The date (and possibly time) the risk assessment was performed. attribute ResourceReference condition (0..1); // For assessments or prognosis specific to a particular condition, indicates the condition being assessed. attribute ResourceReference performer (0..1); // The provider or software application that performed the assessment. attribute Identifier identifier (0..1); // Business identifier assigned to the risk assessment. attribute CodeableConcept method (0..1); // The algorithm, processs or mechanism used to evaluate the risk. attribute ResourceReference basis (0..-1); // Indicates the source data considered as part of the assessment (FamilyHistory, Observations, Procedures, Conditions, etc.). attribute RiskAssessmentPredictionComponent prediction (0..-1); // Describes the expected outcome for the subject. attribute String mitigation (0..1); // A description of the steps that might be taken to reduce the identified risk(s). } class Schedule extends Resource { // A container for slot(s) of time that may be available for booking appointments. attribute Identifier identifier (0..-1); // External Ids for this item. attribute CodeableConcept type (0..-1); // The schedule type can be used for the categorization of healthcare services or other appointment types. attribute ResourceReference actor (1..1); // The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson. attribute Period planningHorizon (0..1); // The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates. attribute String comment (0..1); // Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated. } class SearchParameter extends Resource { // A Search Parameter that defines a named search item that can be used to search/filter on a resource. enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum SearchParamType { // Data types allowed to be used for search parameters 0 : Null = "Missing in instance"; 1 : number = "Search parameter SHALL be a number (a whole number, or a decimal)."; 2 : date = "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported."; 3 : string = "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces."; 4 : token = "Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used."; 5 : reference = "A reference to another resource."; 6 : composite = "A composite search parameter that combines a search on two values together."; 7 : quantity = "A search parameter that searches on a quantity."; 8 : uri = "A search parameter that searches on a URI (RFC 3986)."; } class SearchParameterContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the search parameter. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } attribute Uri url (1..1); // An absolute URL at which this search parameter is (or will be) published, and which is used to reference this profile in conformance statements. attribute String name (1..1); // The name of the standard or custom search parameter. attribute String publisher (0..1); // The name of the individual or organization that published the search parameter. attribute SearchParameterContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute String requirements (0..1); // The Scope and Usage that this search parameter was created to meet. attribute ConformanceResourceStatus status (0..1); // The status of this search parameter definition. attribute Boolean experimental (0..1); // A flag to indicate that this search parameter definition is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute DateTime date (0..1); // The date (and optionally time) when the search parameter definition was published. attribute Code base (1..1); // The base resource type that this search parameter refers to. attribute SearchParamType type (1..1); // The type of value a search parameter refers to, and how the content is interpreted. attribute String description (1..1); // A description of the search parameters and how it used. attribute String xpath (0..1); // An XPath expression that returns a set of elements for the search parameter. attribute Code target (0..-1); // Types of resource (if a resource is referenced). } class Slot extends Resource { // A slot of time on a schedule that may be available for booking appointments. enum Slotstatus { // The free/busy status of a slot 0 : Null = "Missing in instance"; 1 : bUSY = "Indicates that the time interval is busy because one or more events have been scheduled for that interval."; 2 : fREE = "Indicates that the time interval is free for scheduling."; 3 : bUSYUNAVAILABLE = "Indicates that the time interval is busy and that the interval can not be scheduled."; 4 : bUSYTENTATIVE = "Indicates that the time interval is busy because one or more events have been tentatively scheduled for that interval."; } attribute Identifier identifier (0..-1); // External Ids for this item. attribute CodeableConcept type (0..1); // The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource. attribute ResourceReference schedule (1..1); // The schedule resource that this slot defines an interval of status information. attribute Slotstatus freeBusyType (1..1); // BUSY | FREE | BUSY-UNAVAILABLE | BUSY-TENTATIVE. attribute Instant start (1..1); // Date/Time that the slot is to begin. attribute Instant end (1..1); // Date/Time that the slot is to conclude. attribute Boolean overbooked (0..1); // This slot has already been overbooked, appointments are unlikely to be accepted for this time. attribute String comment (0..1); // Comments on the slot to describe any extended information. Such as custom constraints on the slot. } class Specimen extends Resource { // Sample for analysis. class SpecimenCollectionComponent extends BackboneElement { attribute ResourceReference collector (0..1); // Person who collected the specimen. attribute String comment (0..-1); // To communicate any details or issues encountered during the specimen collection procedure. attribute Type collected (0..1); // Time when specimen was collected from subject - the physiologically relevant time. attribute Quantity quantity (0..1); // The quantity of specimen collected; for instance the volume of a blood sample, or the physical measurement of an anatomic pathology sample. attribute CodeableConcept method (0..1); // A coded value specifying the technique that is used to perform the procedure. attribute Type bodySite (0..1); // Anatomical location from which the specimen was collected (if subject is a patient). This is the target site. This element is not used for environmental specimens. } class SpecimenTreatmentComponent extends BackboneElement { attribute String description (0..1); // Textual description of procedure. attribute CodeableConcept procedure (0..1); // A coded value specifying the procedure used to process the specimen. attribute ResourceReference additive (0..-1); // Material used in the processing step. } class SpecimenContainerComponent extends BackboneElement { attribute Identifier identifier (0..-1); // Id for container. There may be multiple; a manufacturer's bar code, lab assigned identifier, etc. The container ID may differ from the specimen id in some circumstances. attribute String description (0..1); // Textual description of the container. attribute CodeableConcept type (0..1); // The type of container associated with the specimen (e.g. slide, aliquot, etc). attribute Quantity capacity (0..1); // The capacity (volume or other measure) the container may contain. attribute Quantity specimenQuantity (0..1); // The quantity of specimen in the container; may be volume, dimensions, or other appropriate measurements, depending on the specimen type. attribute Type additive (0..1); // Introduced substance to preserve, maintain or enhance the specimen. examples: Formalin, Citrate, EDTA. } attribute Identifier identifier (0..-1); // Id for specimen. attribute CodeableConcept type (0..1); // The kind of material that forms the specimen. attribute ResourceReference parent (0..-1); // Reference to the parent (source) specimen which is used when the specimen was either derived from or a component of a another specimen. attribute ResourceReference subject (1..1); // Where the specimen came from. This may be from the patient(s) or from the environment or a device. attribute Identifier accessionIdentifier (0..1); // The identifier assigned by the lab when accessioning specimen(s). This is not necessarily the same as the specimen identifier, depending on local lab procedures. attribute DateTime receivedTime (0..1); // Time when specimen was received for processing or testing. attribute SpecimenCollectionComponent collection (0..1); // Details concerning the specimen collection. attribute SpecimenTreatmentComponent treatment (0..-1); // Details concerning treatment and processing steps for the specimen. attribute SpecimenContainerComponent container (0..-1); // The container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here. } class StructureDefinition extends Resource { // A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types. enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum StructureDefinitionType { // Defines the type of structure that a definition is describing 0 : Null = "Missing in instance"; 1 : type = "A data type - either a primitive or complex structure that defines a set of data elements. These can be used throughout Resource and extension definitions."; 2 : resource = "A resource defined by the FHIR specification."; 3 : constraint = "A set of constraints on a resource or data type that describe how it is used for a particular use."; 4 : extension = "A definition of an extension that can be used in a FHIR resource (or a set of constraints on an exsting extension)."; } enum ExtensionContext { // How an extension context is interpreted 0 : Null = "Missing in instance"; 1 : resource = "The context is all elements matching a particular resource element path."; 2 : datatype = "The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name)."; 3 : mapping = "The context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used."; 4 : extension = "The context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code."; } class StructureDefinitionContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the structure definition. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } class StructureDefinitionMappingComponent extends BackboneElement { attribute Id identity (1..1); // An Internal id that is used to identify this mapping set when specific mappings are made. attribute Uri uri (0..1); // An absolute URI that identifies the specification that this mapping is expressed to. attribute String name (0..1); // A name for the specification that is being mapped to. attribute String comments (0..1); // Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. } class StructureDefinitionSnapshotComponent extends BackboneElement { attribute ElementDefinition element (1..-1); // Captures constraints on each element within the resource. } class StructureDefinitionDifferentialComponent extends BackboneElement { attribute ElementDefinition element (1..-1); // Captures constraints on each element within the resource. } attribute Uri url (1..1); // An absolute URL at which this StructureDefinition is (or will be) published, and which is used to reference this StructureDefinition in extension urls and tag values in operational FHIR systems. attribute Identifier identifier (0..-1); // Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI). attribute String version (0..1); // The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually. attribute String name (1..1); // A free text natural language name identifying the StructureDefinition. attribute CodeableConcept useContext (0..-1); // The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions. attribute String display (0..1); // Defined so that applications can use this name when displaying the value of the extension to the user. attribute String publisher (0..1); // The name of the individual or organization that published the structure definition. attribute StructureDefinitionContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute String description (0..1); // A free text natural language description of the StructureDefinition and its use. attribute String requirements (0..1); // Explains why this structure definition is needed and why it's been constrained as it has. attribute String copyright (0..1); // A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings. attribute Coding code (0..-1); // A set of terms from external terminologies that may be used to assist with indexing and searching of templates. attribute ConformanceResourceStatus status (1..1); // The status of the StructureDefinition. attribute Boolean experimental (0..1); // This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute DateTime date (0..1); // The date that this version of the StructureDefinition was published. attribute Id fhirVersion (0..1); // The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 0.5.0 for this version. attribute StructureDefinitionMappingComponent mapping (0..-1); // An external specification that the content is mapped to. attribute StructureDefinitionType type (1..1); // Defines the type of structure that this definition is describing. attribute Boolean abstract_ (1..1); // Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type. attribute ExtensionContext contextType (0..1); // If this is an extension, Identifies the context within FHIR resources where the extension can be used. attribute String context (0..-1); // Identifies the types of resource or data type elements to which the extension can be applied. attribute Uri base (0..1); // An absolute URI that is the base structure from which this set of constraints is derived. attribute StructureDefinitionSnapshotComponent snapshot (0..1); // A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition. attribute StructureDefinitionDifferentialComponent differential (0..1); // A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies. } class Subscription extends Resource { // The subscription resource is used to define a push based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system is able to take an appropriate action. enum SubscriptionStatus { // The status of a subscription 0 : Null = "Missing in instance"; 1 : requested = "The client has requested the subscription, and the server has not yet set it up."; 2 : active = "The subscription is active."; 3 : error = "The server has an error executing the notification."; 4 : off = "Too many errors have occurred or the subscription has expired."; } enum SubscriptionChannelType { // The type of method used to execute a subscription 0 : Null = "Missing in instance"; 1 : resthook = "The channel is executed by making a post to the URI. If a payload is included, the URL is interpreted as the service base, and an update (PUT) is made."; 2 : websocket = "The channel is executed by sending a packet across a web socket connection maintained by the client. The URL identifies the websocket, and the client binds to this URL."; 3 : email = "The channel is executed by sending an email to the email addressed in the URI (which must be a mailto:)."; 4 : sms = "The channel is executed by sending an SMS message to the phone number identified in the URL (tel:)."; 5 : message = "The channel Is executed by sending a message (e.g. a Bundle with a MessageHeader resource etc) to the application identified in the URI."; } class SubscriptionChannelComponent extends BackboneElement { attribute SubscriptionChannelType type (1..1); // The type of channel to send notififcations on. attribute Uri endpoint (0..1); // The uri that describes tha actual end point to send messages to. attribute String payload (1..1); // The mime type to send the payload in - either application/xml+fhir, or application/json+fhir. If the mime type is blank, then there is no payload in the notification, just a notification. attribute String header (0..1); // Additional headers / information to send as part of the notification. } attribute String criteria (1..1); // The rules that the server should use to determine when to generate notifications for this subscription. attribute ContactPoint contact (0..-1); // Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting. attribute String reason (1..1); // A description of why this subscription is defined. attribute SubscriptionStatus status (1..1); // The status of the subscription, which marks the server state for managing the subscription. attribute String error (0..1); // A record of the last error that occurred when the server processed a notification. attribute SubscriptionChannelComponent channel (1..1); // Details where to send notifications when resources are received that meet the criteria. attribute Instant end (0..1); // The time for the server to turn the subscription off. attribute Coding tag (0..-1); // A tag to add to any resource that matches the criteria, after the subscription is processed. } class Substance extends Resource { // A homogeneous material with a definite composition. class SubstanceInstanceComponent extends BackboneElement { attribute Identifier identifier (0..1); // Identifier associated with the package/container (usually a label affixed directly). attribute DateTime expiry (0..1); // When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry. attribute Quantity quantity (0..1); // The amount of the substance. } class SubstanceIngredientComponent extends BackboneElement { attribute Ratio quantity (0..1); // The amount of the ingredient in the substance - a concentration ratio. attribute ResourceReference substance (1..1); // Another substance that is a component of this substance. } attribute CodeableConcept type (1..1); // A code (or set of codes) that identify this substance. attribute String description (0..1); // A description of the substance - its appearance, handling requirements, and other usage notes. attribute SubstanceInstanceComponent instance (0..1); // Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance. attribute SubstanceIngredientComponent ingredient (0..-1); // A substance can be composed of other substances. } class Supply extends Resource { // A supply - a request for something, and provision of what is supplied. enum ValuesetSupplyStatus { // Status of the supply 0 : Null = "Missing in instance"; 1 : requested = "Supply has been requested, but not dispensed."; 2 : dispensed = "Supply is part of a pharmacy order and has been dispensed."; 3 : received = "Supply has been received by the requestor."; 4 : failed = "The supply will not be completed because the supplier was unable or unwilling to supply the item."; 5 : cancelled = "The orderer of the supply cancelled the request."; } enum ValuesetSupplyDispenseStatus { // Status of the dispense 0 : Null = "Missing in instance"; 1 : inprogress = "Supply has been requested, but not dispensed."; 2 : dispensed = "Supply is part of a pharmacy order and has been dispensed."; 3 : abandoned = "Dispensing was not completed."; } class SupplyDispenseComponent extends BackboneElement { attribute Identifier identifier (0..1); // Identifier assigned by the dispensing facility when the item(s) is dispensed. attribute ValuesetSupplyDispenseStatus status (0..1); // A code specifying the state of the dispense event. attribute CodeableConcept type (0..1); // Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. attribute Quantity quantity (0..1); // The amount of supply that has been dispensed. Includes unit of measure. attribute ResourceReference suppliedItem (0..1); // Identifies the medication or substance or device being dispensed. This is either a link to a resource representing the details of the item or a simple attribute carrying a code that identifies the item from a known list. attribute ResourceReference supplier (0..1); // The individual responsible for dispensing the medication, supplier or device. attribute Period whenPrepared (0..1); // The time the dispense event occurred. attribute DateTime whenHandedOver (0..1); // The time the dispensed item was sent or handed to the patient (or agent). attribute ResourceReference destination (0..1); // Identification of the facility/location where the Supply was shipped to, as part of the dispense event. attribute ResourceReference receiver (0..-1); // Identifies the person who picked up the Supply. } attribute CodeableConcept kind (0..1); // Category of supply, e.g. central, non-stock, etc. This is used to support work flows associated with the supply process. attribute Identifier identifier (0..1); // Unique identifier for this supply request. attribute ValuesetSupplyStatus status (0..1); // Status of the supply request. attribute ResourceReference orderedItem (0..1); // The item that is requested to be supplied. attribute ResourceReference patient (0..1); // A link to a resource representing the person whom the ordered item is for. attribute SupplyDispenseComponent dispense (0..-1); // Indicates the details of the dispense event such as the days supply and quantity of a supply dispensed. } class ValueSet extends Resource { // A value set specifies a set of codes drawn from one or more code systems. enum ConformanceResourceStatus { // The lifecycle status of a Value Set or Concept Map 0 : Null = "Missing in instance"; 1 : draft = "This resource is still under development"; 2 : active = "This resource is ready for normal use"; 3 : retired = "This resource has been withdrawn or superceded and should no longer be used"; } enum FilterOperator { // The kind of operation to perform as a part of a property based filter 0 : Null = "Missing in instance"; 1 : equal = "The specified property of the code equals the provided value."; 2 : isa = "Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself."; 3 : isnota = "The specified property of the code does not have an is-a relationship with the provided value."; 4 : regex = "The specified property of the code matches the regex specified in the provided value."; 5 : in = "The specified property of the code is in the set of codes or concepts specified in the provided value (comma separated list)."; 6 : notin = "The specified property of the code is not in the set of codes or concepts specified in the provided value (comma separated list)."; } class ValueSetContactComponent extends BackboneElement { attribute String name (0..1); // The name of an individual to contact regarding the value set. attribute ContactPoint telecom (0..-1); // Contact details for individual (if a name was provided) or the publisher. } class ValueSetDefineComponent extends BackboneElement { attribute Uri system (1..1); // An absolute URI that is used to reference this code system, including in [Coding]{datatypes.html#Coding}.system. attribute String version (0..1); // The version of this code system that defines the codes. Note that the version is optional because a well maintained code system does not suffer from versioning, and therefore the version does not need to be maintained. However many code systems are not well maintained, and the version needs to be defined and tracked. attribute Boolean caseSensitive (0..1); // If code comparison is case sensitive when codes within this system are compared to each other. attribute ConceptDefinitionComponent concept (0..-1); // Concepts in the code system. } class ConceptDefinitionComponent extends BackboneElement { attribute Code code (1..1); // Code that identifies concept. attribute Boolean abstract_ (0..1); // If this code is not for use as a real concept. attribute String display (0..1); // Text to Display to the user. attribute String definition (0..1); // The formal definition of the concept. Formal definitions are not required, because of the prevalence of legacy systems without them, but they are highly recommended, as without them there is no formal meaning associated with the concept. attribute ConceptDefinitionDesignationComponent designation (0..-1); // Additional representations for the concept - other languages, aliases, specialised purposes, used for particular purposes, etc. attribute ConceptDefinitionComponent concept (0..-1); // Child Concepts (is-a / contains). } class ConceptDefinitionDesignationComponent extends BackboneElement { attribute Code language (0..1); // The language this designation is defined for. attribute Coding use (0..1); // A code that details how this designation would be used. attribute String value (1..1); // The text value for this designation. } class ValueSetComposeComponent extends BackboneElement { attribute Uri import_ (0..-1); // Includes the contents of the referenced value set as a part of the contents of this value set. This is an absolute URI that is a reference to ValueSet.uri. attribute ConceptSetComponent include (0..-1); // Include one or more codes from a code system. attribute ConceptSetComponent exclude (0..-1); // Exclude one or more codes from the value set. } class ConceptSetComponent extends BackboneElement { attribute Uri system (1..1); // An absolute URI which is the code system from which the selected codes come from. attribute String version (0..1); // The version of the code system that the codes are selected from. attribute ConceptReferenceComponent concept (0..-1); // Specifies a concept to be included or excluded. attribute ConceptSetFilterComponent filter (0..-1); // Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true. } class ConceptReferenceComponent extends BackboneElement { attribute Code code (1..1); // Specifies a code for the concept to be included or excluded. attribute String display (0..1); // The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system. attribute ConceptDefinitionDesignationComponent designation (0..-1); // Additional representations for this concept when used in this value set - other languages, aliases, specialised purposes, used for particular purposes, etc. } class ConceptSetFilterComponent extends BackboneElement { attribute Code property (1..1); // A code that identifies a property defined in the code system. attribute FilterOperator op (1..1); // The kind of operation to perform as a part of the filter criteria. attribute Code value (1..1); // The match value may be either a code defined by the system, or a string value which is used a regex match on the literal string of the property value. } class ValueSetExpansionComponent extends BackboneElement { attribute Uri identifier (1..1); // An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so. attribute DateTime timestamp (1..1); // The time at which the expansion was produced by the expanding system. attribute ValueSetExpansionParameterComponent parameter (0..-1); // A Parameter that controlled the expansion process. These paameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion. attribute ValueSetExpansionContainsComponent contains (0..-1); // The codes that are contained in the value set expansion. } class ValueSetExpansionParameterComponent extends BackboneElement { attribute String name (1..1); // The name of the parameter. attribute Type value (0..1); // The value of the parameter. } class ValueSetExpansionContainsComponent extends BackboneElement { attribute Uri system (0..1); // An absolute URI which is the code system in which the code for this item in the expansion is defined. attribute Boolean abstract_ (0..1); // If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value. attribute String version (0..1); // The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence. attribute Code code (0..1); // Code - if blank, this is not a choosable code. attribute String display (0..1); // User display for the concept. attribute ValueSetExpansionContainsComponent contains (0..-1); // Codes contained in this concept. } attribute Uri url (0..1); // An absolute uri that is used to identify this value set when it is referenced in a specification, model, design or an instance (should be globally unique URI, and an be urn:uuid: or urn:oid:). attribute Identifier identifier (0..1); // Formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance. attribute String version (0..1); // Used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. attribute String name (0..1); // A free text natural language name describing the value set. attribute CodeableConcept useContext (0..-1); // The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of value set definitions. attribute Boolean immutable (0..1); // If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change. attribute String publisher (0..1); // The name of the individual or organization that published the value set. attribute ValueSetContactComponent contact (0..-1); // Contacts to assist a user in finding and communicating with the publisher. attribute String description (0..1); // A free text natural language description of the use of the value set - reason for definition, "the semantic space" to be included in the value set, conditions of use, etc. The description may include a list of expected usages for the value set and can also describe the approach taken to build the value set. attribute String requirements (0..1); // Explains why this value set is needed and why it's been constrained as it has. attribute String copyright (0..1); // A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set. attribute ConformanceResourceStatus status (1..1); // The status of the value set. attribute Boolean experimental (0..1); // This valueset was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. attribute Boolean extensible (0..1); // Whether this is intended to be used with an extensible binding or not. attribute DateTime date (0..1); // The date that the value set status was last changed. attribute Date lockedDate (0..1); // If a Locked Date is defined, then the Content Logical Definition must be evaluated using the current version of all referenced code system(s) and value sets as of the Locked Date. attribute ValueSetDefineComponent define (0..1); // A definition of an code system, inlined into the value set. attribute ValueSetComposeComponent compose (0..1); // When value set includes codes from elsewhere. attribute ValueSetExpansionComponent expansion (0..1); // A value set can also be "expanded", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed. } class VisionPrescription extends Resource { // An authorization for the supply of glasses and/or contact lenses to a patient. enum EyeCodes { // A coded concept listing the eye codes. 0 : Null = "Missing in instance"; 1 : right = "right eye."; 2 : left = "left eye."; } enum BaseCodes { // A coded concept listing the base codes. 0 : Null = "Missing in instance"; 1 : up = "top."; 2 : down = "bottom."; 3 : in = "inner edge."; 4 : out = "outer edge."; } class VisionPrescriptionDispenseComponent extends BackboneElement { attribute Coding product (1..1); // Identifies the type of Vision correction product which is required for the patient. attribute EyeCodes eye (0..1); // The eye for which the lens applies. attribute Decimal sphere (0..1); // Lens power measured in diopters (0.25 units). attribute Decimal cylinder (0..1); // Power adjustment for astigmatism measured in diopters (0.25 units). attribute Integer axis (0..1); // Adjustment for astigmatism measured in integer degrees. attribute Decimal prism (0..1); // Amount of prism to compensate for eye alignment in fractional units. attribute BaseCodes base (0..1); // The relative base, or reference lens edge, for the prism. attribute Decimal add (0..1); // Power adjustment for multifocal lenses measured in diopters (0.25 units). attribute Decimal power (0..1); // Contact lens power measured in diopters (0.25 units). attribute Decimal backCurve (0..1); // Back Curvature measured in millimeters. attribute Decimal diameter (0..1); // Contact lens diameter measured in millimeters. attribute Quantity duration (0..1); // The recommended maximum wear period for the lens. attribute String color (0..1); // Special color or pattern. attribute String brand (0..1); // Brand recommendations or restrictions. attribute String notes (0..1); // Notes for special requirements such as coatings and lens materials. } attribute Identifier identifier (0..-1); // Business identifier which may be used by other parties to reference or identify the prescription. attribute DateTime dateWritten (0..1); // The date (and perhaps time) when the prescription was written. attribute ResourceReference patient (0..1); // A link to a resource representing the person to whom the Vision products will be supplied. attribute ResourceReference prescriber (0..1); // The healthcare professional responsible for authorizing the prescription. attribute ResourceReference encounter (0..1); // A link to a resource that identifies the particular occurrence of contact between patient and health care provider. attribute Type reason (0..1); // Can be the reason or the indication for writing the prescription. attribute VisionPrescriptionDispenseComponent dispense (0..-1); // Deals with details of the dispense part of the supply specification. } }