org.sql-on-fhir.ig 2.0.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,412 @@
1
+ {
2
+ "title": "fhirpath",
3
+ "description": "fhirpath features",
4
+ "fhirVersion": ["5.0.0", "4.0.1"],
5
+ "resources": [
6
+ {
7
+ "resourceType": "Patient",
8
+ "id": "pt1",
9
+ "managingOrganization": {
10
+ "reference": "Organization/o1"
11
+ },
12
+ "name": [
13
+ {
14
+ "family": "f1.1",
15
+ "use": "official",
16
+ "given": ["g1.1.1", "g1.1.2"]
17
+ },
18
+ {
19
+ "family": "f1.2",
20
+ "given": ["g1.2.1"]
21
+ }
22
+ ],
23
+ "active": true
24
+ },
25
+ {
26
+ "resourceType": "Patient",
27
+ "id": "pt2",
28
+ "managingOrganization": {
29
+ "reference": "http://myapp.com/prefix/Organization/o2"
30
+ },
31
+ "name": [
32
+ {
33
+ "family": "f2.1"
34
+ },
35
+ {
36
+ "family": "f2.2",
37
+ "use": "official"
38
+ }
39
+ ],
40
+ "active": false
41
+ },
42
+ {
43
+ "resourceType": "Patient",
44
+ "id": "pt3"
45
+ }
46
+ ],
47
+ "tests": [
48
+ {
49
+ "title": "one element",
50
+ "tags": ["shareable"],
51
+ "view": {
52
+ "resource": "Patient",
53
+ "status": "active",
54
+ "select": [
55
+ {
56
+ "column": [
57
+ {
58
+ "name": "id",
59
+ "path": "id",
60
+ "type": "id"
61
+ }
62
+ ]
63
+ }
64
+ ]
65
+ },
66
+ "expect": [
67
+ {
68
+ "id": "pt1"
69
+ },
70
+ {
71
+ "id": "pt2"
72
+ },
73
+ {
74
+ "id": "pt3"
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "title": "two elements + first",
80
+ "tags": ["shareable"],
81
+ "view": {
82
+ "resource": "Patient",
83
+ "status": "active",
84
+ "select": [
85
+ {
86
+ "column": [
87
+ {
88
+ "name": "v",
89
+ "path": "name.family.first()",
90
+ "type": "string"
91
+ }
92
+ ]
93
+ }
94
+ ]
95
+ },
96
+ "expect": [
97
+ {
98
+ "v": "f1.1"
99
+ },
100
+ {
101
+ "v": "f2.1"
102
+ },
103
+ {
104
+ "v": null
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ "title": "collection",
110
+ "tags": ["shareable"],
111
+ "view": {
112
+ "resource": "Patient",
113
+ "status": "active",
114
+ "select": [
115
+ {
116
+ "column": [
117
+ {
118
+ "name": "v",
119
+ "path": "name.family",
120
+ "type": "string",
121
+ "collection": true
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ },
127
+ "expect": [
128
+ {
129
+ "v": ["f1.1", "f1.2"]
130
+ },
131
+ {
132
+ "v": ["f2.1", "f2.2"]
133
+ },
134
+ {
135
+ "v": []
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "title": "index[0]",
141
+ "tags": ["shareable"],
142
+ "view": {
143
+ "resource": "Patient",
144
+ "status": "active",
145
+ "select": [
146
+ {
147
+ "column": [
148
+ {
149
+ "name": "v",
150
+ "path": "name[0].family",
151
+ "type": "string"
152
+ }
153
+ ]
154
+ }
155
+ ]
156
+ },
157
+ "expect": [
158
+ {
159
+ "v": "f1.1"
160
+ },
161
+ {
162
+ "v": "f2.1"
163
+ },
164
+ {
165
+ "v": null
166
+ }
167
+ ]
168
+ },
169
+ {
170
+ "title": "index[1]",
171
+ "tags": ["shareable"],
172
+ "view": {
173
+ "resource": "Patient",
174
+ "status": "active",
175
+ "select": [
176
+ {
177
+ "column": [
178
+ {
179
+ "name": "v",
180
+ "path": "name[1].family",
181
+ "type": "string"
182
+ }
183
+ ]
184
+ }
185
+ ]
186
+ },
187
+ "expect": [
188
+ {
189
+ "v": "f1.2"
190
+ },
191
+ {
192
+ "v": "f2.2"
193
+ },
194
+ {
195
+ "v": null
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "title": "out of index",
201
+ "tags": ["shareable"],
202
+ "view": {
203
+ "resource": "Patient",
204
+ "status": "active",
205
+ "select": [
206
+ {
207
+ "column": [
208
+ {
209
+ "name": "v",
210
+ "path": "name[2].family",
211
+ "type": "string"
212
+ }
213
+ ]
214
+ }
215
+ ]
216
+ },
217
+ "expect": [
218
+ {
219
+ "v": null
220
+ },
221
+ {
222
+ "v": null
223
+ },
224
+ {
225
+ "v": null
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "title": "where",
231
+ "tags": ["shareable"],
232
+ "view": {
233
+ "resource": "Patient",
234
+ "status": "active",
235
+ "select": [
236
+ {
237
+ "column": [
238
+ {
239
+ "name": "v",
240
+ "path": "name.where(use='official').family",
241
+ "type": "string"
242
+ }
243
+ ]
244
+ }
245
+ ]
246
+ },
247
+ "expect": [
248
+ {
249
+ "v": "f1.1"
250
+ },
251
+ {
252
+ "v": "f2.2"
253
+ },
254
+ {
255
+ "v": null
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "title": "exists",
261
+ "tags": ["shareable"],
262
+ "view": {
263
+ "resource": "Patient",
264
+ "status": "active",
265
+ "select": [
266
+ {
267
+ "column": [
268
+ {
269
+ "name": "id",
270
+ "path": "id",
271
+ "type": "id"
272
+ },
273
+ {
274
+ "name": "has_name",
275
+ "path": "name.exists()",
276
+ "type": "boolean"
277
+ }
278
+ ]
279
+ }
280
+ ]
281
+ },
282
+ "expect": [
283
+ {
284
+ "id": "pt1",
285
+ "has_name": true
286
+ },
287
+ {
288
+ "id": "pt2",
289
+ "has_name": true
290
+ },
291
+ {
292
+ "id": "pt3",
293
+ "has_name": false
294
+ }
295
+ ]
296
+ },
297
+ {
298
+ "title": "nested exists",
299
+ "tags": ["shareable"],
300
+ "view": {
301
+ "resource": "Patient",
302
+ "status": "active",
303
+ "select": [
304
+ {
305
+ "column": [
306
+ {
307
+ "name": "id",
308
+ "path": "id",
309
+ "type": "id"
310
+ },
311
+ {
312
+ "name": "has_given",
313
+ "path": "name.given.exists()",
314
+ "type": "boolean"
315
+ }
316
+ ]
317
+ }
318
+ ]
319
+ },
320
+ "expect": [
321
+ {
322
+ "id": "pt1",
323
+ "has_given": true
324
+ },
325
+ {
326
+ "id": "pt2",
327
+ "has_given": false
328
+ },
329
+ {
330
+ "id": "pt3",
331
+ "has_given": false
332
+ }
333
+ ]
334
+ },
335
+ {
336
+ "title": "string join",
337
+ "tags": ["shareable"],
338
+ "view": {
339
+ "resource": "Patient",
340
+ "status": "active",
341
+ "select": [
342
+ {
343
+ "column": [
344
+ {
345
+ "name": "id",
346
+ "path": "id",
347
+ "type": "id"
348
+ },
349
+ {
350
+ "name": "given",
351
+ "path": "name.given.join(', ' )",
352
+ "type": "string"
353
+ }
354
+ ]
355
+ }
356
+ ]
357
+ },
358
+ "expect": [
359
+ {
360
+ "id": "pt1",
361
+ "given": "g1.1.1, g1.1.2, g1.2.1"
362
+ },
363
+ {
364
+ "id": "pt2",
365
+ "given": ""
366
+ },
367
+ {
368
+ "id": "pt3",
369
+ "given": ""
370
+ }
371
+ ]
372
+ },
373
+ {
374
+ "title": "string join: default separator",
375
+ "tags": ["shareable"],
376
+ "view": {
377
+ "resource": "Patient",
378
+ "status": "active",
379
+ "select": [
380
+ {
381
+ "column": [
382
+ {
383
+ "name": "id",
384
+ "path": "id",
385
+ "type": "id"
386
+ },
387
+ {
388
+ "name": "given",
389
+ "path": "name.given.join()",
390
+ "type": "string"
391
+ }
392
+ ]
393
+ }
394
+ ]
395
+ },
396
+ "expect": [
397
+ {
398
+ "id": "pt1",
399
+ "given": "g1.1.1g1.1.2g1.2.1"
400
+ },
401
+ {
402
+ "id": "pt2",
403
+ "given": ""
404
+ },
405
+ {
406
+ "id": "pt3",
407
+ "given": ""
408
+ }
409
+ ]
410
+ }
411
+ ]
412
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "title": "fhirpath_numbers",
3
+ "description": "fhirpath features",
4
+ "fhirVersion": ["5.0.0", "4.0.1"],
5
+ "resources": [
6
+ {
7
+ "resourceType": "Observation",
8
+ "id": "o1",
9
+ "code": {
10
+ "text": "code"
11
+ },
12
+ "status": "final",
13
+ "valueRange": {
14
+ "low": {
15
+ "value": 2
16
+ },
17
+ "high": {
18
+ "value": 3
19
+ }
20
+ }
21
+ }
22
+ ],
23
+ "tests": [
24
+ {
25
+ "title": "add observation",
26
+ "tags": ["shareable"],
27
+ "view": {
28
+ "resource": "Observation",
29
+ "status": "active",
30
+ "select": [
31
+ {
32
+ "column": [
33
+ {
34
+ "name": "id",
35
+ "path": "id",
36
+ "type": "id"
37
+ },
38
+ {
39
+ "name": "add",
40
+ "path": "value.ofType(Range).low.value + value.ofType(Range).high.value",
41
+ "type": "decimal"
42
+ },
43
+ {
44
+ "name": "sub",
45
+ "path": "value.ofType(Range).high.value - value.ofType(Range).low.value",
46
+ "type": "decimal"
47
+ },
48
+ {
49
+ "name": "mul",
50
+ "path": "value.ofType(Range).low.value * value.ofType(Range).high.value",
51
+ "type": "decimal"
52
+ },
53
+ {
54
+ "name": "div",
55
+ "path": "value.ofType(Range).high.value / value.ofType(Range).low.value",
56
+ "type": "decimal"
57
+ },
58
+ {
59
+ "name": "eq",
60
+ "path": "value.ofType(Range).high.value = value.ofType(Range).low.value",
61
+ "type": "boolean"
62
+ },
63
+ {
64
+ "name": "gt",
65
+ "path": "value.ofType(Range).high.value > value.ofType(Range).low.value",
66
+ "type": "boolean"
67
+ },
68
+ {
69
+ "name": "ge",
70
+ "path": "value.ofType(Range).high.value >= value.ofType(Range).low.value",
71
+ "type": "boolean"
72
+ },
73
+ {
74
+ "name": "lt",
75
+ "path": "value.ofType(Range).high.value < value.ofType(Range).low.value",
76
+ "type": "boolean"
77
+ },
78
+ {
79
+ "name": "le",
80
+ "path": "value.ofType(Range).high.value <= value.ofType(Range).low.value",
81
+ "type": "boolean"
82
+ }
83
+ ]
84
+ }
85
+ ]
86
+ },
87
+ "expect": [
88
+ {
89
+ "id": "o1",
90
+ "add": 5,
91
+ "sub": 1,
92
+ "mul": 6,
93
+ "div": 1.5,
94
+ "eq": false,
95
+ "gt": true,
96
+ "ge": true,
97
+ "lt": false,
98
+ "le": false
99
+ }
100
+ ]
101
+ }
102
+ ]
103
+ }