UNPKG

1.93 kBMarkdownView Raw
1# emsi-lib
2A EMSI (Emergency Management Shared Information) object model to manipulate emergency messages defined in ISO/TR 22351 document.
3
4## Main features
5- Provide high level abstraction of EMSI objects and types
6- Generate XML message from EMSI objects
7- Generate EMSI objects from XML
8- Check ISO rules (work in progress)
9
10## Usage
11
12### Generate XML EMSI (JS -> XML)
13```javascript
14import { Emsi, Event, Mission, Context, ExternalInfo, Origin, /* ... */} from 'emsi-lib'
15
16const extInfo = new ExternalInfo("https://secourir.eu/.../", InfoType.PHOTO, "Photos of the accident")
17
18const origin = new Origin("43d38170-ce5d-4d8e-81d7-2bd4071d83f4", "58113", "SC/SDIS24")
19
20const context = new Context(Mode.ACTUAL, MsgType.ALERT)
21 .setFreeText("Firs message")
22 .setLevel(Level.TACTICAL)
23 .setSecurityClassification(SeClass.RESTRICTED)
24 .setUrgency(Urgency.URGENT)
25 .addExternalInfo([ extInfo ])
26 .setOrigin(origin)
27
28const mission = new Mission('Casualty search')
29 .setStatus(MissionStatus.IN_PROGRESS, 30)
30 .setPriority(MissionPriority.P3)
31 .setStartTime(new Date())
32 .setFreeText('Many victims')
33
34const etype = new EType(['/TRP/COL'], ['/VEH/TRK', '/VEH/TRN'], ['/RAIL/TRK', 'ROAD'])
35
36const event = new Event('FR-SC-24-0001', 'Railway accident')
37 .setScale(Scale.LEVEL_1)
38 .setEventType(etype)
39
40const emsi = new Emsi()
41 .setContext(context)
42 .setEvent(event)
43 .addMissions([mission])
44
45const emsiXml = emsi.generateXml()
46```
47
48### Populate EMSI object from XML (XML -> JS)
49```javascript
50const target = new Emsi()
51target.loadFromXml(emsiXml)
52
53if (target.context?.urgency !== Urgency.URGENT) {
54
55 if (target.context?.link?.[1].linkRole !== LinkRole.SUPERSEDE)
56 target.context?.addLink([new Link('43d38170-ce5d-4d8e-81d7-2bd4071d83f4', LinkRole.SUPERSEDE)])
57
58 emsi.mission?.[0].setEndTime(new Date())
59
60 const newMessage = target.generateXml()
61 /* Send newMessage */
62}
63```
\No newline at end of file