This section supplements the OMT diagram at the beginning of the chapter and will give a detailed description of all modeling concepts of the prototype. The documentation style mimics that of the book ``Common Lisp: the Language'' [in particular see section 1.2.5]Steele90. Due to the fact that the implementation uses an extension of CLOS called ``PORK'' , the notation has been extended to include inverse relations, automatically updated pairs of slots (indicated with the symbol) used to implement 1-to-1, 1-to-many and many-to-many relations.
[Class] :urgent [Initarg] :medical-specialty-required [Initarg] :real-name [Initarg] :prescribed-destination [Initarg] :hours-before-ron [Initarg] relations patients [Relation] mission-legs patients [Relation] This class inherits directly from move-requirement. Instances of this class represent patients to be moved, and are received by the system as input data.
The slot urgent is a boolean value specifying whether the patient is urgent or regular. The slot medical-specialty-required specifies the particular constraints the destination MTF has to satisfy. The slot hours-before-ron holds the maximum number of hours a patient can fly before an overnight rest (at an ASF) is required (the slot defaults to 12 hours).
aircraft [Class] :velocity [Initarg] This class inherits directly from batch-resource and movable-resource-mixin. Instances of this class represent individual aircraft used for transporting patients.
The slot velocity gives the speed of the aircraft used when estimating the flight time between airfields.
airfield [Class] :geoloc-code [Initarg] :airfield-name [Initarg] :longitude [Initarg] :latitude [Initarg] :missions [Initarg] :patients [Initarg] mtfs airfield [Relation] asf airfield [Relation] This class inherits directly from aggregate-resource and location. Instances of this class represent airfields, with associated MTFs and possibly an associated ASF. Each airfield maintains a list of mission legs departing from that airfield, in the order of their departure time (slot missions). These mission legs link airfields in a web of possible routes that is used when searching for feasible routes for patients.
medical-facility [Class] This class inherits directly from aggregate-resource. Subclasses of this class include mtf and asf. Instances of this class are used as resources for operations of class medical-treatment.
asf [Class] :airfield [Initarg] airfield asf [Relation] This class inherits directly from medical-facility.
mtf [Class] :airfields [Initarg] :medical-specialties [Initarg] airfields mtfs [Relation] This class inherits directly from medical-facility.
itinerary [Class] :origin [Initarg] :destination [Initarg] :resource [Initarg] This class inherits directly from transport-operation and monotonic-tbp-mixin. Subclasses of this class include mission-leg and mission. This is the base class for all mission and patient itinerary components. No special functionality has been defined for this class.
The slots origin, destination and resource (from transport-operation) hold the origin and destination airfield resources as well as the aircraft resource used.
mission [Class] :id [Initarg] :medical-or-cargo [Initarg] This class inherits directly from itinerary. Instances of this class are aggregate operations which represent entire missions. The relationship between a mission instance and its constituent mission legs is implemented using the children relation of DITOPS' operation class (in other words, mission legs are children to a mission which in turn is the parent of the mission legs).
The slot id is a unique identifier for the mission. The slot medical-or-cargo identifies the mission as either a dedicated medical evacuation mission or an existing cargo mission having capacity for patient ``cargo''.
mission-leg [Class] :depart-time [Initarg] :arrival-time [Initarg] :patients [Initarg] patients mission-legs [Relation] This class inherits directly from itinerary. Subclasses of this class include medical-treatment. Instances of this class represent individual ``steps'' of a mission.
The slot depart-time contains the scheduled start time of the particular mission leg, similarly the slot arrival-time contains the scheduled end time of the leg. The relation patients contains all patients scheduled to fly on this leg.
medical-treatment [Class] This class inherits directly from mission-leg. Instance of this class represent a patient's treatment at a medical facility.
patient-load [Class] This class inherits directly from transport-load and earliest-latest-mixin. Instances of this class are sub-operations of mission-leg operations. They represent the loading and unloading of patients to aircraft.
leg-connection [Class] :patients [Initarg] patients relations [Relation] This class inherits directly from before. Subclasses of this class include patient-leg-connection. Instances of this class represent connections between mission legs. They are used as temporal constraints (precedence constraints) by the Time Bound Propagator component of DITOPS.
The relation patients contains all patients whose itinerary includes this connection.
patient-leg-connection [Class] This class inherits directly from leg-connection. Instances of this class represent plane-change connections in patients' itineraries. Note: constraints of class leg-connection represent intra-mission connections, whereas patient-leg-connection constraints represent inter-mission connections.