@rqml/schema 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ <rqml xmlns="https://rqml.org/schema/2.1.0"
2
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+ xsi:schemaLocation="https://rqml.org/schema/2.1.0 https://rqml.org/schema/rqml-2.1.0.xsd"
4
+ version="2.1.0" docId="DOC-HELLO-001" status="draft">
5
+ <meta>
6
+ <title>Hello World CLI</title>
7
+ <system>hello</system>
8
+ </meta>
9
+
10
+ <requirements>
11
+ <req id="REQ-HELLO-001" type="FR" title="Print greeting" status="draft" priority="must">
12
+ <statement>The program MUST print "Hello, world!" to standard output and exit with status code 0.</statement>
13
+ <acceptance>
14
+ <criterion>
15
+ <when>The user runs <code>hello</code>.</when>
16
+ <then>The program prints exactly <code>Hello, world!</code> followed by a newline and exits with code 0.</then>
17
+ </criterion>
18
+ </acceptance>
19
+ </req>
20
+ </requirements>
21
+ </rqml>
@@ -0,0 +1,139 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rqml xmlns="https://rqml.org/schema/2.1.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="https://rqml.org/schema/2.1.0 https://rqml.org/schema/rqml-2.1.0.xsd"
5
+ version="2.1.0" docId="PAY-001" status="review">
6
+ <meta>
7
+ <title>Checkout Payments</title>
8
+ <system>Checkout</system>
9
+ <summary>Authorization, capture, and refund flows for an e-commerce checkout API.</summary>
10
+ <authors>
11
+ <author>
12
+ <name>Sam Rivera</name>
13
+ <role>Product</role>
14
+ </author>
15
+ </authors>
16
+ </meta>
17
+
18
+ <catalogs>
19
+ <constraints>
20
+ <constraint id="CON-TLS">
21
+ <statement>All APIs must use TLS 1.2+.</statement>
22
+ </constraint>
23
+ </constraints>
24
+ <risks>
25
+ <risk id="RISK-FRAUD" severity="high">
26
+ <statement>Fraudulent card-not-present attempts.</statement>
27
+ <mitigation>Velocity checks and 3DS when required.</mitigation>
28
+ </risk>
29
+ </risks>
30
+ </catalogs>
31
+
32
+ <goals>
33
+ <goal id="GOAL-AVAIL" title="High availability" priority="must">
34
+ <statement>Payment API remains available during peak events.</statement>
35
+ </goal>
36
+ <qgoal id="QGOAL-LAT" title="Low latency" priority="should">
37
+ <statement>Keep latency low for checkout.</statement>
38
+ <metric>p95 authorization latency ≤ 500ms at 200 rps.</metric>
39
+ </qgoal>
40
+ </goals>
41
+
42
+ <scenarios>
43
+ <scenario id="SCN-CHECKOUT" title="Card checkout">
44
+ <narrative>User submits card details and receives authorization result.</narrative>
45
+ </scenario>
46
+ <misuseCase id="SCN-FRAUD" title="Fraud attempt">
47
+ <narrative>Attacker replays stolen card numbers.</narrative>
48
+ </misuseCase>
49
+ </scenarios>
50
+
51
+ <requirements>
52
+ <reqPackage id="PKG-PAY" title="Payments">
53
+ <req id="REQ-AUTH" type="FR" title="Authorize payment" priority="must">
54
+ <statement>The system SHALL authorize card payments with the acquiring bank.</statement>
55
+ <acceptance>
56
+ <criterion id="CRIT-AUTH-1">
57
+ <given>Valid card and funds</given>
58
+ <when>POST /payments is called</when>
59
+ <then>Response includes paymentId and status=authorized.</then>
60
+ </criterion>
61
+ </acceptance>
62
+ </req>
63
+ <req id="REQ-REFUND" type="FR" title="Refund payment" priority="should">
64
+ <statement>The system SHALL allow refunds on captured payments.</statement>
65
+ <acceptance>
66
+ <criterion id="CRIT-REF-1">
67
+ <given>A captured payment exists</given>
68
+ <when>POST /payments/{id}/refunds</when>
69
+ <then>A refundId is returned and payment status reflects refund.</then>
70
+ </criterion>
71
+ </acceptance>
72
+ </req>
73
+ <req id="REQ-LAT" type="NFR" title="Latency" priority="should">
74
+ <statement>p95 authorization latency SHALL be ≤ 500ms at 200 rps.</statement>
75
+ </req>
76
+ <req id="REQ-SEC" type="SR" title="Secure transport" priority="must">
77
+ <statement>All payment endpoints SHALL enforce TLS 1.2+.</statement>
78
+ </req>
79
+ <req id="REQ-FRAUD" type="SR" title="Fraud mitigation" priority="must">
80
+ <statement>The system SHALL apply velocity checks and challenge flows when risk is high.</statement>
81
+ </req>
82
+ </reqPackage>
83
+ </requirements>
84
+
85
+ <interfaces>
86
+ <api id="API-PAY" name="Payments API" protocol="https" auth="oauth2">
87
+ <endpoint id="EP-AUTH" method="POST" path="/payments">
88
+ <summary>Create a payment and request authorization.</summary>
89
+ <response>paymentId, status (authorized|declined|pending)</response>
90
+ <errors>422 for validation, 502 for upstream decline.</errors>
91
+ </endpoint>
92
+ <endpoint id="EP-REF" method="POST" path="/payments/{id}/refunds">
93
+ <summary>Refund a captured payment.</summary>
94
+ <response>refundId, status</response>
95
+ </endpoint>
96
+ </api>
97
+ <event id="EVT-PAY-UPDATED" name="PaymentUpdated">
98
+ <description>Emitted when a payment status changes.</description>
99
+ <payload>paymentId, status, updatedAt</payload>
100
+ </event>
101
+ </interfaces>
102
+
103
+ <verification>
104
+ <testCase id="TC-AUTH" type="integration" title="Authorize happy path">
105
+ <steps>POST /payments with valid card</steps>
106
+ <expected>201 with status=authorized</expected>
107
+ </testCase>
108
+ <testCase id="TC-LAT" type="performance" title="Latency budget">
109
+ <purpose>Ensure p95 latency meets target.</purpose>
110
+ </testCase>
111
+ </verification>
112
+
113
+ <trace>
114
+ <edge id="TR-AUTH-GOAL" type="satisfies" confidence="0.9">
115
+ <from><locator><local id="REQ-AUTH"/></locator></from>
116
+ <to><locator><local id="GOAL-AVAIL"/></locator></to>
117
+ </edge>
118
+ <edge id="TR-AUTH-SCN" type="satisfies">
119
+ <from><locator><local id="REQ-AUTH"/></locator></from>
120
+ <to><locator><local id="SCN-CHECKOUT"/></locator></to>
121
+ </edge>
122
+ <edge id="TR-SEC-TLS" type="dependsOn">
123
+ <from><locator><local id="REQ-SEC"/></locator></from>
124
+ <to><locator><local id="CON-TLS"/></locator></to>
125
+ </edge>
126
+ <edge id="TR-FRAUD" type="mitigates">
127
+ <from><locator><local id="REQ-FRAUD"/></locator></from>
128
+ <to><locator><local id="RISK-FRAUD"/></locator></to>
129
+ </edge>
130
+ <edge id="TR-AUTH-TEST" type="verifiedBy">
131
+ <from><locator><local id="REQ-AUTH"/></locator></from>
132
+ <to><locator><local id="TC-AUTH"/></locator></to>
133
+ </edge>
134
+ <edge id="TR-LAT-TEST" type="verifiedBy">
135
+ <from><locator><local id="REQ-LAT"/></locator></from>
136
+ <to><locator><local id="TC-LAT"/></locator></to>
137
+ </edge>
138
+ </trace>
139
+ </rqml>
@@ -0,0 +1,125 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rqml xmlns="https://rqml.org/schema/2.1.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="https://rqml.org/schema/2.1.0 https://rqml.org/schema/rqml-2.1.0.xsd"
5
+ version="2.1.0" docId="RES-API-001" status="draft">
6
+ <meta>
7
+ <title>Restaurant Reservation &amp; Waitlist API</title>
8
+ <system>SeatSmart</system>
9
+ <summary>API for booking tables and managing waitlists at a single location.</summary>
10
+ <authors>
11
+ <author>
12
+ <name>Jordan Lee</name>
13
+ <role>Product</role>
14
+ </author>
15
+ </authors>
16
+ </meta>
17
+
18
+ <catalogs>
19
+ <actors>
20
+ <actor id="ACT-GUEST" name="Guest"/>
21
+ <actor id="ACT-HOST" name="Host"/>
22
+ </actors>
23
+ <constraints>
24
+ <constraint id="CON-HTTPS">
25
+ <statement>All endpoints must be served over HTTPS.</statement>
26
+ <source>Security policy</source>
27
+ </constraint>
28
+ </constraints>
29
+ </catalogs>
30
+
31
+ <domain>
32
+ <entities>
33
+ <entity id="ENT-RES" name="Reservation">
34
+ <attr id="ATTR-PARTY" name="partySize" type="integer" required="true"/>
35
+ <attr id="ATTR-TIME" name="time" type="dateTime" required="true"/>
36
+ <attr id="ATTR-STATUS" name="status" type="token" required="true"/>
37
+ </entity>
38
+ </entities>
39
+ </domain>
40
+
41
+ <scenarios>
42
+ <scenario id="SCN-BOOK" title="Book a table" actorRef="ACT-GUEST">
43
+ <narrative>Guest books a table for a given time and party size.</narrative>
44
+ </scenario>
45
+ <scenario id="SCN-CANCEL" title="Cancel reservation" actorRef="ACT-GUEST">
46
+ <narrative>Guest cancels an existing reservation.</narrative>
47
+ </scenario>
48
+ </scenarios>
49
+
50
+ <requirements>
51
+ <reqPackage id="PKG-RES" title="Reservations">
52
+ <req id="REQ-BOOK" type="FR" title="Create reservation" priority="must">
53
+ <statement>The API SHALL allow creating a reservation with time and party size.</statement>
54
+ <acceptance>
55
+ <criterion id="CRIT-BOOK-1">
56
+ <given>Requested time is within hours and capacity allows</given>
57
+ <when>Client POSTs /reservations</when>
58
+ <then>Return 201 with reservationId and status=confirmed.</then>
59
+ </criterion>
60
+ </acceptance>
61
+ </req>
62
+ <req id="REQ-CANCEL" type="FR" title="Cancel reservation" priority="must">
63
+ <statement>The API SHALL let a guest cancel an existing reservation.</statement>
64
+ <acceptance>
65
+ <criterion id="CRIT-CANCEL-1">
66
+ <given>A confirmed reservation exists</given>
67
+ <when>DELETE /reservations/{id}</when>
68
+ <then>Status becomes canceled and a 200 response is returned.</then>
69
+ </criterion>
70
+ </acceptance>
71
+ </req>
72
+ <req id="REQ-LAT" type="NFR" title="Latency" priority="should">
73
+ <statement>p95 response time for reservation create SHALL be ≤ 300ms under normal load.</statement>
74
+ </req>
75
+ <req id="REQ-SEC" type="SR" title="Transport security">
76
+ <statement>All API traffic SHALL enforce HTTPS (TLS 1.2+).</statement>
77
+ </req>
78
+ </reqPackage>
79
+ </requirements>
80
+
81
+ <interfaces>
82
+ <api id="API-RES" name="Reservations API" protocol="https">
83
+ <endpoint id="EP-CREATE" method="POST" path="/reservations">
84
+ <summary>Create a reservation.</summary>
85
+ <request>partySize, time, contact info</request>
86
+ <response>reservationId, status</response>
87
+ </endpoint>
88
+ <endpoint id="EP-CANCEL" method="DELETE" path="/reservations/{id}">
89
+ <summary>Cancel a reservation.</summary>
90
+ <response>canceled status</response>
91
+ <errors>404 if not found</errors>
92
+ </endpoint>
93
+ </api>
94
+ </interfaces>
95
+
96
+ <verification>
97
+ <testCase id="TC-BOOK" type="integration" title="Create reservation 201">
98
+ <steps>POST /reservations with valid body</steps>
99
+ <expected>201 created with id and status=confirmed</expected>
100
+ </testCase>
101
+ </verification>
102
+
103
+ <trace>
104
+ <edge id="TR-BOOK" type="satisfies">
105
+ <from><locator><local id="REQ-BOOK"/></locator></from>
106
+ <to><locator><local id="SCN-BOOK"/></locator></to>
107
+ </edge>
108
+ <edge id="TR-BOOK-ENT" type="dependsOn">
109
+ <from><locator><local id="REQ-BOOK"/></locator></from>
110
+ <to><locator><local id="ENT-RES"/></locator></to>
111
+ </edge>
112
+ <edge id="TR-CANCEL" type="satisfies">
113
+ <from><locator><local id="REQ-CANCEL"/></locator></from>
114
+ <to><locator><local id="SCN-CANCEL"/></locator></to>
115
+ </edge>
116
+ <edge id="TR-SEC-HTTPS" type="dependsOn">
117
+ <from><locator><local id="REQ-SEC"/></locator></from>
118
+ <to><locator><local id="CON-HTTPS"/></locator></to>
119
+ </edge>
120
+ <edge id="TR-TEST-BOOK" type="verifiedBy">
121
+ <from><locator><local id="REQ-BOOK"/></locator></from>
122
+ <to><locator><local id="TC-BOOK"/></locator></to>
123
+ </edge>
124
+ </trace>
125
+ </rqml>
@@ -0,0 +1,89 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rqml xmlns="https://rqml.org/schema/2.1.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="https://rqml.org/schema/2.1.0 https://rqml.org/schema/rqml-2.1.0.xsd"
5
+ version="2.1.0" docId="TASKS-001" status="draft">
6
+ <meta>
7
+ <title>Personal Task Manager</title>
8
+ <system>Taskie</system>
9
+ <summary>Lightweight to-do app for individuals.</summary>
10
+ <authors>
11
+ <author>
12
+ <name>Avery Kim</name>
13
+ <role>Product</role>
14
+ </author>
15
+ </authors>
16
+ </meta>
17
+
18
+ <domain>
19
+ <entities>
20
+ <entity id="ENT-TASK" name="Task">
21
+ <attr id="ATTR-TITLE" name="title" type="string" required="true"/>
22
+ <attr id="ATTR-STATUS" name="status" type="token" required="true"/>
23
+ <attr id="ATTR-DUE" name="dueDate" type="date" required="false"/>
24
+ </entity>
25
+ </entities>
26
+ </domain>
27
+
28
+ <scenarios>
29
+ <scenario id="SCN-ADD" title="Add a task">
30
+ <narrative>User enters a title and saves a new task.</narrative>
31
+ </scenario>
32
+ <scenario id="SCN-COMPLETE" title="Complete a task">
33
+ <narrative>User marks an existing task as done.</narrative>
34
+ </scenario>
35
+ </scenarios>
36
+
37
+ <requirements>
38
+ <reqPackage id="PKG-TASKS" title="Tasks">
39
+ <req id="REQ-ADD" type="FR" title="Create task" priority="must">
40
+ <statement>The system SHALL let a user create a task with a title.</statement>
41
+ <acceptance>
42
+ <criterion id="CRIT-ADD-1">
43
+ <when>User provides a title</when>
44
+ <then>The task is saved with status "open".</then>
45
+ </criterion>
46
+ </acceptance>
47
+ </req>
48
+ <req id="REQ-COMPLETE" type="FR" title="Complete task" priority="must">
49
+ <statement>The system SHALL allow marking a task as completed.</statement>
50
+ <acceptance>
51
+ <criterion id="CRIT-COMP-1">
52
+ <given>An open task exists</given>
53
+ <when>User marks it done</when>
54
+ <then>Status becomes "completed" with timestamp.</then>
55
+ </criterion>
56
+ </acceptance>
57
+ </req>
58
+ <req id="REQ-LIST" type="NFR" title="List performance" priority="should">
59
+ <statement>The task list SHALL render within 150ms for up to 500 tasks.</statement>
60
+ </req>
61
+ </reqPackage>
62
+ </requirements>
63
+
64
+ <verification>
65
+ <testCase id="TC-ADD-1" type="integration" title="Create task success">
66
+ <steps>POST /tasks with title=Buy milk</steps>
67
+ <expected>201 with taskId and status=open</expected>
68
+ </testCase>
69
+ </verification>
70
+
71
+ <trace>
72
+ <edge id="TR-ADD" type="satisfies">
73
+ <from><locator><local id="REQ-ADD"/></locator></from>
74
+ <to><locator><local id="SCN-ADD"/></locator></to>
75
+ </edge>
76
+ <edge id="TR-ADD-ENT" type="dependsOn">
77
+ <from><locator><local id="REQ-ADD"/></locator></from>
78
+ <to><locator><local id="ENT-TASK"/></locator></to>
79
+ </edge>
80
+ <edge id="TR-COMPLETE" type="satisfies">
81
+ <from><locator><local id="REQ-COMPLETE"/></locator></from>
82
+ <to><locator><local id="SCN-COMPLETE"/></locator></to>
83
+ </edge>
84
+ <edge id="TR-TEST" type="verifiedBy">
85
+ <from><locator><local id="REQ-ADD"/></locator></from>
86
+ <to><locator><local id="TC-ADD-1"/></locator></to>
87
+ </edge>
88
+ </trace>
89
+ </rqml>
@@ -0,0 +1,181 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rqml xmlns="https://rqml.org/schema/2.1.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="https://rqml.org/schema/2.1.0 https://rqml.org/schema/rqml-2.1.0.xsd"
5
+ version="2.1.0" docId="TELEMED-001" status="review">
6
+ <meta>
7
+ <title>Telemedicine Platform</title>
8
+ <system>CareConnect</system>
9
+ <summary>Video consultations, scheduling, and prescriptions with privacy controls.</summary>
10
+ <authors>
11
+ <author>
12
+ <name>Priya Singh</name>
13
+ <role>Product</role>
14
+ </author>
15
+ </authors>
16
+ </meta>
17
+
18
+ <catalogs>
19
+ <actors>
20
+ <actor id="ACT-PATIENT" name="Patient"/>
21
+ <actor id="ACT-CLINICIAN" name="Clinician"/>
22
+ </actors>
23
+ <policies>
24
+ <policy id="POL-HIPAA" source="HIPAA">
25
+ <obligation>Protect PHI with encryption in transit and at rest.</obligation>
26
+ </policy>
27
+ </policies>
28
+ </catalogs>
29
+
30
+ <domain>
31
+ <entities>
32
+ <entity id="ENT-VISIT" name="Visit">
33
+ <attr id="ATTR-SLOT" name="timeSlot" type="dateTime" required="true"/>
34
+ <attr id="ATTR-STATE" name="state" type="token" required="true"/>
35
+ </entity>
36
+ <entity id="ENT-PRESC" name="Prescription">
37
+ <attr id="ATTR-MED" name="medication" type="string" required="true"/>
38
+ <attr id="ATTR-DOS" name="dosage" type="string" required="true"/>
39
+ </entity>
40
+ </entities>
41
+ </domain>
42
+
43
+ <goals>
44
+ <goal id="GOAL-ACCESS" title="Accessible care" priority="must">
45
+ <statement>Allow patients to see a clinician within 24 hours.</statement>
46
+ </goal>
47
+ <qgoal id="QGOAL-QUALITY" title="High call quality" priority="should">
48
+ <statement>Video calls remain stable with minimal jitter.</statement>
49
+ </qgoal>
50
+ </goals>
51
+
52
+ <scenarios>
53
+ <scenario id="SCN-BOOK" title="Book a visit" actorRef="ACT-PATIENT">
54
+ <narrative>Patient books an appointment slot with a clinician.</narrative>
55
+ </scenario>
56
+ <scenario id="SCN-CALL" title="Start video consult" actorRef="ACT-CLINICIAN">
57
+ <narrative>Clinician and patient join a secure video call.</narrative>
58
+ </scenario>
59
+ <scenario id="SCN-PRESC" title="Issue prescription" actorRef="ACT-CLINICIAN">
60
+ <narrative>Clinician issues an e-prescription after the call.</narrative>
61
+ </scenario>
62
+ </scenarios>
63
+
64
+ <requirements>
65
+ <reqPackage id="PKG-VISIT" title="Visits">
66
+ <req id="REQ-SCHED" type="FR" title="Schedule visit" priority="must">
67
+ <statement>The system SHALL let patients book available slots with clinicians.</statement>
68
+ <acceptance>
69
+ <criterion id="CRIT-SCHED-1">
70
+ <given>A clinician has open slots</given>
71
+ <when>Patient selects a slot</when>
72
+ <then>A visit is created with state=scheduled and a confirmation is returned.</then>
73
+ </criterion>
74
+ </acceptance>
75
+ </req>
76
+ <req id="REQ-VIDEO" type="FR" title="Secure video" priority="must">
77
+ <statement>The platform SHALL provide encrypted video sessions for visits.</statement>
78
+ <acceptance>
79
+ <criterion id="CRIT-VIDEO-1">
80
+ <when>Clinician and patient join a visit</when>
81
+ <then>A video session is established using end-to-end encrypted transport.</then>
82
+ </criterion>
83
+ </acceptance>
84
+ </req>
85
+ <req id="REQ-PHI" type="SR" title="Protect PHI" priority="must">
86
+ <statement>PHI SHALL be encrypted in transit and at rest.</statement>
87
+ </req>
88
+ <req id="REQ-PRESC" type="FR" title="Issue prescription" priority="should">
89
+ <statement>Clinicians SHALL be able to issue and transmit prescriptions electronically.</statement>
90
+ <acceptance>
91
+ <criterion id="CRIT-PRESC-1">
92
+ <given>A completed visit</given>
93
+ <when>The clinician submits a prescription</when>
94
+ <then>A prescription record is created and sent to the pharmacy.</then>
95
+ </criterion>
96
+ </acceptance>
97
+ </req>
98
+ <req id="REQ-QUALITY" type="NFR" title="Call quality" priority="should">
99
+ <statement>Video calls SHALL maintain p95 MOS equivalent ≥ 4.0 under target bandwidth.</statement>
100
+ </req>
101
+ </reqPackage>
102
+ </requirements>
103
+
104
+ <interfaces>
105
+ <api id="API-VISIT" name="Visits API" protocol="https" auth="oauth2">
106
+ <endpoint id="EP-SCHEDULE" method="POST" path="/visits">
107
+ <summary>Create a visit</summary>
108
+ <request>patientId, clinicianId, slot</request>
109
+ <response>visitId, state</response>
110
+ </endpoint>
111
+ <endpoint id="EP-START" method="POST" path="/visits/{id}/start">
112
+ <summary>Start video session</summary>
113
+ <response>sessionUrl, token</response>
114
+ </endpoint>
115
+ </api>
116
+ <event id="EVT-VISIT-UPDATED" name="VisitUpdated">
117
+ <description>Emitted when a visit state changes.</description>
118
+ <payload>visitId, state, updatedAt</payload>
119
+ </event>
120
+ </interfaces>
121
+
122
+ <verification>
123
+ <testSuite id="TS-VISIT" title="Visit flows">
124
+ <description>Integration and security tests for visit scheduling and video.</description>
125
+ </testSuite>
126
+ <testCase id="TC-SCHED" type="integration" title="Schedule visit success">
127
+ <steps>POST /visits with valid slot</steps>
128
+ <expected>201 with state=scheduled</expected>
129
+ </testCase>
130
+ <testCase id="TC-VIDEO" type="security" title="Encrypted video established">
131
+ <expected>Video session negotiates encrypted transport</expected>
132
+ </testCase>
133
+ </verification>
134
+
135
+ <trace>
136
+ <edge id="TR-SCHED-GOAL" type="satisfies">
137
+ <from><locator><local id="REQ-SCHED"/></locator></from>
138
+ <to><locator><local id="GOAL-ACCESS"/></locator></to>
139
+ </edge>
140
+ <edge id="TR-SCHED-SCN" type="satisfies">
141
+ <from><locator><local id="REQ-SCHED"/></locator></from>
142
+ <to><locator><local id="SCN-BOOK"/></locator></to>
143
+ </edge>
144
+ <edge id="TR-SCHED-ENT" type="dependsOn">
145
+ <from><locator><local id="REQ-SCHED"/></locator></from>
146
+ <to><locator><local id="ENT-VISIT"/></locator></to>
147
+ </edge>
148
+ <edge id="TR-VIDEO-SCN" type="satisfies">
149
+ <from><locator><local id="REQ-VIDEO"/></locator></from>
150
+ <to><locator><local id="SCN-CALL"/></locator></to>
151
+ </edge>
152
+ <edge id="TR-VIDEO-PHI" type="dependsOn">
153
+ <from><locator><local id="REQ-VIDEO"/></locator></from>
154
+ <to><locator><local id="REQ-PHI"/></locator></to>
155
+ </edge>
156
+ <edge id="TR-PHI-HIPAA" type="satisfies">
157
+ <from><locator><local id="REQ-PHI"/></locator></from>
158
+ <to><locator><local id="POL-HIPAA"/></locator></to>
159
+ </edge>
160
+ <edge id="TR-PRESC-SCN" type="satisfies">
161
+ <from><locator><local id="REQ-PRESC"/></locator></from>
162
+ <to><locator><local id="SCN-PRESC"/></locator></to>
163
+ </edge>
164
+ <edge id="TR-PRESC-ENT" type="dependsOn">
165
+ <from><locator><local id="REQ-PRESC"/></locator></from>
166
+ <to><locator><local id="ENT-PRESC"/></locator></to>
167
+ </edge>
168
+ <edge id="TR-SCHED-TEST" type="verifiedBy">
169
+ <from><locator><local id="REQ-SCHED"/></locator></from>
170
+ <to><locator><local id="TC-SCHED"/></locator></to>
171
+ </edge>
172
+ <edge id="TR-VIDEO-TEST" type="verifiedBy">
173
+ <from><locator><local id="REQ-VIDEO"/></locator></from>
174
+ <to><locator><local id="TC-VIDEO"/></locator></to>
175
+ </edge>
176
+ <edge id="TR-PHI-TEST" type="verifiedBy">
177
+ <from><locator><local id="REQ-PHI"/></locator></from>
178
+ <to><locator><local id="TC-VIDEO"/></locator></to>
179
+ </edge>
180
+ </trace>
181
+ </rqml>