= SAMBRO GUI Design= [[TOC]] == Alert Segment Qualifier Element Requirements == === identifier === - Typical format is "prefix" + "dateTime" + "timezone" + "msg-sequence-no" + "postfix" ''Example - 2.49.0.1.524.2-20150525T12:23:00+8:00-005-scdmc. The prefix = "2.49.0.1.524.2-", postfix="-scdmc", and sequence="005" (we may issue more than one alert in one day; hence would require multiple message sequence numbers)''. - One recommendation for the '''postfix''' is to use the WMO recommended alert Object [http://www.wmo.int/pages/prog/amp/pwsp/documents/AIR_PWS-20.pdf] Identifiers that helps identifies the alerting authority. However, it is not mandatory and the implementers are free to introduce another. === msgType === This is essentially a state machine, whereby an alert message can transition from msgType to another. Here are the possible sequences: ||=No: =||= Transition ||= Remarks =|| ||1) || Alert ---> [[BR]]Update ...[[BR]] Update --->[[BR]] Cancel || '''Cancel''' means the event was disregarded and it was a false alarm [[BR]] example - ''heavy rains cause a rain gauge to automatically trigger flash-flood alert, then the alert is incidentally updated by mistake, until finally the authorities realize it was a malfunction and issue a cancelled'' || ||2) || Alert --->[[BR]] Cancel || is the same as 1) above but excluding any intermediary update alert messages || ||3) || Alert --->[[BR]] Update ...[[BR]] Update --->[[BR]] All Clear || '''All Clear''' is not in the CAP 1.2 but will be in 2.0; this means the event is over; it's different from "Cancel" [[BR]] example - ''a tsunamigenic earth, off the coast of Indonesia, triggers an alert, which is updated several times every 5 minutes, then finally when their is nor threat, an All Clear message is issued to inform that the threat is over'' || ||4) || Alert --->[[BR]] All Clear || '''Error''' means the previous message had false values, thus, the msg with errors should be followed by an error-less message [[BR]] example - ''similar to example in 3) above, instead the the message "priority" was mistakenly set to "urgent" during an update, then a follow up message is issued to correct the "priority" to "high", in which case the msgType is set to "Error". Thereafter, the transitions can be as any of the above terminating with an "All Clear" message'' || ||5) || Alert ---> [[BR]] Update ...[[BR]] Update --->[[BR]] Error --->[[BR]] Update ...[[BR]] Update --->[[BR]] All Clear || Error means the previous message had false values, thus, the msg with errors should be followed by an error-less message [[BR]] example - ''similar to example in 3) above, instead the the message "priority" was mistakenly set to "urgent" during an update, then a follow up message is issued to correct the "priority" to "high", in which case the msgType is set to "Error". Thereafter, the transitions can be as any of the above terminating with an "All Clear" message'' || ||6) || Alert ---> [[BR]] Error ---> [[BR]] All Clear || same as 5) above but excluding any of the updates || ||7) || Alert ---> [[BR]] Update ... [[BR]] Update ---> [[BR]] Error ---> [[BR]] Update ... [[BR]] Update ---> [[BR]] Cancel || is similar to 5) above instead, the message was false and a mistaken. Hence, instead of ending it with an "All Clear" we "Cancel" the message. || ||8) || Alert ---> [[BR]] Error ---> [[BR]] Cancel || same as 7) above but excluding any of the updates || [[BR]] '''"Ack"''' - Acknowledgement may not apply when we are publishing. Ack is used when a system or person receives an alert message and wants to acknowledge the receipt of that message. They would typically set the to Ack and return the message to the sender. This is a feedback for the issuing system to account for that the message was actually received by the intended recipient. example, ''we may issue SMS alerts to [n] people and expect them to Ack. If and Ack is not received then we may recast the message to those who did not receive the message. Don't worry about this part, it's a project of it's own.'' === scope === We need to build in the logic for each of the values: Public, Private, and Restricted. ||=Value =||= Implication =|| ||Public || ---> text-box control "Restriction" and "Recipients" are disabled || ||Restricted || ---> text-box control "Restriction" = enabled and text-box control "Recipients" = disabled || ||Private || ---> text-box control "Restriction" = disabled and text-box control "Recipients" = enabled || === reference === if "Reference" is empty (NULL), then "Reference" = "Identifier" values (which is mandatory) if "Reference" is NOT empty (NOT NULL), then leave as it, possibly populated from the template === incident === - We should relate to the same incidents list in the IRS module. Example: a mass movement that causes an accident, then incidents would be ="rock slide", "train derailment". - "rock slide" and "train derailment" may be '''archetypes''' of "mass movement" and "accident" respectively. == Info Segment Qualifier Element Requirements == === info === The basic needs for multiple info segments 1) Multiple languages - an info segment for each language defined in the profile 2) Multiple msgType - when the msgType is changed to send an Update, Cancel, Error, or All Clear, the an additional info segment for each language must be added to that particular event specific message Example: ''The Met depart may detect a cyclone developing in the Bay of Bengal. The Tamil Nadu DMC would issue an alert in English, French, Hindi, and Tamil, that's 4 segments. Then every six hours they would issue an update of the same alert but with the new position, wind-speed, trajectory, etc. These updates would need to be issued in the 4 languages. Assuming there are 5 updates before it hits land, then that particular message would have 20 segments''