Design Decisions

From SRASWiki

Jump to: navigation, search


Design of particular requirements

Autocomplete events
If a STAFFNURSE sees a patient for what ever reason, it is assumed that their obs are taken on completion of the event.
As part of the allocating-role-competencies-to-events stage, events are asked if they autocomplete other events. This is specified by id.

Feedback is generated on event termination (implimentation of engine). Events can either be terminated by completion or expiration of the time window.
<event> <circumstance> <Roles> <termination> <feedback category="PATIENT SAFETY">
Somethings may have more than one category of feedback available. The most important category is selected - PATIENTSAFETY is more important that STAFFSATISFACTION
This means that we have to: [have the user define/hard code] the heirarchy of the feedback categories in

Trump cards
Some trump cards are played on events, others are played to gain resources etc
These will be implimented as eventTrump and passiveTrumps. While they have the same name, they share very little behaviour.
A PASSIVE trump can:
  • add an allocatable resource
  • add a non-allocatable resource (attached to (a) certain patient(s). This is specified in the xml of the critical care nurse by patient id, i.e.

<acceptedPatient id="1"> <acceptedPatient id="5"> <nowiki><ptrump type="addAllocatableStaff"> <resource id="" duration=""> Is the sort of nature of xml we are expecting

An ACTIVE trump can:
  • Fulfill an event or multiple events

<etrump> <condition timeIndexGreaterThan=""> <fulfills eventId=""> <fulfills eventId="">

They can have contitions, like only working after a certain time index, or only working on certain patients.
Trump cards will be added when they are valid. This will be modeled by adding then to the <timetable> part of the XML

Two members of staff required for an event
Some events require two members of staff (of minimum levels)
Adding a attribute, requiredSTAFFNURSE="2" is probably the most efficient way of doing it. Otherwise we could do a string of the required roles, but that will require splitting.
Can't think of anything else
The resolution is to do this with requiredSTAFFNURSE="2" etc
This also requires us to [have the user define/hard code] the heirarchy of the staff in

Assign ability to: resource or to individual staff member
The problem here is wether to just give a staff member a role, such as "TRAINEE NURSE" or "STAFF NURSE" and then determine their abilities from those roles, or whether to go through each member of staff and assign abilities to them directly. Abilities here means their suitability (competent, not ideal, not competent ) of dealing with events. Competent staff will complete the event with good feedback and a termination status of "completed", not ideal staff and not competent staff will complete the event with good/bad feedback as appropriate.
If we assign abilities by roles, we are less flexible, but more simple.
If we assign by person, then we are more flexible, but we add a lot of complexity to the XML
The resolution is to do this by ROLES.
EXTENSION: This could also be modeled with the roles filling in the default value, and allow the user to edit for special cases with particular resources.

Minimum Staff on Ward
There must be at least two staff on ward at any moment in time
A Passive must have a specified number of Actives
We could:
add requiredResources content to Passive objects, and specify them by name or by role and add violation feedback
add a list of senario constraints to the end of the XML, and write the engine so that it will look through the timetable history and see how often these constraints were violated. This is more flexible, and extensible. It would also allow the students to make the mistake, rather than stopping them as is implied with the first implementation
The resolution is to do this with the violations at the end of the XML. This means the engine will have to warn the students at the start of the game of these violations.

Independant wash requires the patient to have been seen by a Staff nurse that day
This is events enabling trumps
We could:
add enabled trumps to an event+ROLE spawn event, but this is ugly
trawl the history of a patient before the engine allows the trumpcard to be played
The resolution is to not support this requirement. It would be a lot of work for both the coders and the end user writing the senario.

Staff wanting breaks or coffee etc
The problem is the self-fulfilling aspect of this
We could:
have a coffee machine that the staff member can be assigned to, but then the need would have to be the coffee machine's rather than the staff memebers
Have the event happen to the staff, with a STAFFSATISFACTION feedback if it is not fulfilled. Then have coffeeroom trump cards that the user would need to add. These cards would transport the member of staff offsite for their coffee.
WE'll have the coffee room trump card



This is a issue that is still not resolved
This is a issue that is resolved


These are nested in the pending or completed tables

This is a possible solution to an issue
This is the confirmed solution to an issue
Personal tools