@medplum/fhirtypes
Version:
Medplum FHIR Type Definitions
220 lines (190 loc) • 7.48 kB
TypeScript
/*
* This is a generated file
* Do not edit manually.
*/
import { CodeableConcept } from './CodeableConcept';
import { Duration } from './Duration';
import { Extension } from './Extension';
import { Period } from './Period';
import { Range } from './Range';
/**
* Specifies an event that may occur multiple times. Timing schedules are
* used to record when things are planned, expected or requested to
* occur. The most common usage is in dosage instructions for
* medications. They are also used when planning care of various kinds,
* and may be used for reporting the schedule to which past regular
* activities were carried out.
*/
export interface Timing {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* May be used to represent additional information that is not part of
* the basic definition of the element and that modifies the
* understanding of the element in which it is contained and/or the
* understanding of the containing element's descendants. Usually
* modifier elements provide negation or qualification. To make the use
* of extensions safe and manageable, there is a strict set of governance
* applied to the definition and use of extensions. Though any
* implementer can define an extension, there is a set of requirements
* that SHALL be met as part of the definition of the extension.
* Applications processing a resource are required to check for modifier
* extensions.
*
* Modifier extensions SHALL NOT change the meaning of any elements on
* Resource or DomainResource (including cannot change the meaning of
* modifierExtension itself).
*/
modifierExtension?: Extension[];
/**
* Identifies specific times when the event occurs.
*/
event?: string[];
/**
* A set of rules that describe when the event is scheduled.
*/
repeat?: TimingRepeat;
/**
* A code for the timing schedule (or just text in code.text). Some codes
* such as BID are ubiquitous, but many institutions define their own
* additional codes. If a code is provided, the code is understood to be
* a complete statement of whatever is specified in the structured timing
* data, and either the code or the data may be used to interpret the
* Timing, with the exception that .repeat.bounds still applies over the
* code (and is not contained in the code).
*/
code?: CodeableConcept;
}
/**
* A set of rules that describe when the event is scheduled.
*/
export interface TimingRepeat {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* Either a duration for the length of the timing schedule, a range of
* possible length, or outer bounds for start and/or end limits of the
* timing schedule.
*/
boundsDuration?: Duration;
/**
* Either a duration for the length of the timing schedule, a range of
* possible length, or outer bounds for start and/or end limits of the
* timing schedule.
*/
boundsRange?: Range;
/**
* Either a duration for the length of the timing schedule, a range of
* possible length, or outer bounds for start and/or end limits of the
* timing schedule.
*/
boundsPeriod?: Period;
/**
* A total count of the desired number of repetitions across the duration
* of the entire timing specification. If countMax is present, this
* element indicates the lower bound of the allowed range of count
* values.
*/
count?: number;
/**
* If present, indicates that the count is a range - so to perform the
* action between [count] and [countMax] times.
*/
countMax?: number;
/**
* How long this thing happens for when it happens. If durationMax is
* present, this element indicates the lower bound of the allowed range
* of the duration.
*/
duration?: number;
/**
* If present, indicates that the duration is a range - so to perform the
* action between [duration] and [durationMax] time length.
*/
durationMax?: number;
/**
* The units of time for the duration, in UCUM units.
*/
durationUnit?: 's' | 'min' | 'h' | 'd' | 'wk' | 'mo' | 'a';
/**
* The number of times to repeat the action within the specified period.
* If frequencyMax is present, this element indicates the lower bound of
* the allowed range of the frequency.
*/
frequency?: number;
/**
* If present, indicates that the frequency is a range - so to repeat
* between [frequency] and [frequencyMax] times within the period or
* period range.
*/
frequencyMax?: number;
/**
* Indicates the duration of time over which repetitions are to occur;
* e.g. to express "3 times per day", 3 would be the frequency and "1
* day" would be the period. If periodMax is present, this element
* indicates the lower bound of the allowed range of the period length.
*/
period?: number;
/**
* If present, indicates that the period is a range from [period] to
* [periodMax], allowing expressing concepts such as "do this once every
* 3-5 days.
*/
periodMax?: number;
/**
* The units of time for the period in UCUM units.
*/
periodUnit?: 's' | 'min' | 'h' | 'd' | 'wk' | 'mo' | 'a';
/**
* If one or more days of week is provided, then the action happens only
* on the specified day(s).
*/
dayOfWeek?: ('mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun')[];
/**
* Specified time of day for action to take place.
*/
timeOfDay?: string[];
/**
* An approximate time period during the day, potentially linked to an
* event of daily living that indicates when the action should occur.
*/
when?: ('MORN' | 'MORN.early' | 'MORN.late' | 'NOON' | 'AFT' | 'AFT.early' | 'AFT.late' | 'EVE' | 'EVE.early' |
'EVE.late' | 'NIGHT' | 'PHS' | 'HS' | 'WAKE' | 'C' | 'CM' | 'CD' | 'CV' | 'AC' | 'ACM' | 'ACD' | 'ACV' | 'PC' | 'PCM'
| 'PCD' | 'PCV')[];
/**
* The number of minutes from the event. If the event code does not
* indicate whether the minutes is before or after the event, then the
* offset is assumed to be after the event.
*/
offset?: number;
}
/**
* Either a duration for the length of the timing schedule, a range of
* possible length, or outer bounds for start and/or end limits of the
* timing schedule.
*/
export type TimingRepeatBounds = Duration | Period | Range;