@nsshunt/stsdatamanagement 1.18.196 → 1.18.199

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,386 @@
1
+ ---- stsresfhir ------------------------------------------------------------------------------------------
2
+ -- This table will always hold the current version of a resource type.
3
+ CREATE TABLE stsresfhir (
4
+ PID UUID PRIMARY KEY,
5
+ PARTITION_ID INTEGER,
6
+ PARTITION_DATE INTEGER,
7
+ RES_ID TEXT NOT NULL,
8
+ RES_TYPE TEXT NOT NULL,
9
+ RES_VER INTEGER NOT NULL,
10
+ RES_VERSION TEXT NOT NULL,
11
+ RES_PUBLISHED BIGINT NOT NULL,
12
+ RES_UPDATED BIGINT NOT NULL,
13
+ RES_DELETED_AT BIGINT,
14
+ UNIQUE (RES_TYPE, RES_ID)
15
+ );
16
+
17
+ ---- stsresfhirver ------------------------------------------------------------------------------------------
18
+
19
+ -- This table holds all the versions of a resource type.
20
+ CREATE TABLE stsresfhirver (
21
+ PID UUID PRIMARY KEY,
22
+ PARTITION_ID INTEGER,
23
+ PARTITION_DATE INTEGER,
24
+ RES_ID TEXT NOT NULL,
25
+ RES_TYPE TEXT NOT NULL,
26
+ RES_VER INTEGER NOT NULL,
27
+ OPERATION TEXT NOT NULL, -- operation that created this record (CREATE, PUT, PATCH, DELETE)
28
+ RES TEXT NOT NULL,
29
+ -- Uniqueness of each version per resource:
30
+ CONSTRAINT uq_stsresfhirver_triplet UNIQUE (RES_TYPE, RES_ID, RES_VER),
31
+ -- We only need (RES_ID, RES_TYPE) as the FK because the parent table always holds the current version.
32
+ FOREIGN KEY (RES_TYPE, RES_ID) REFERENCES stsresfhir(RES_TYPE, RES_ID)
33
+ );
34
+
35
+ -- Seek-friendly sort index for keyset pagination:
36
+ CREATE INDEX idx_stsresfhirver_seek
37
+ ON stsresfhirver (RES_TYPE, RES_ID, RES_VER DESC);
38
+
39
+ ---- stsresfhirlink ------------------------------------------------------------------------------------------
40
+
41
+ CREATE TABLE stsresfhirlink (
42
+ PID UUID PRIMARY KEY,
43
+ PARTITION_ID INTEGER,
44
+ PARTITION_DATE INTEGER,
45
+ SP_NAME TEXT NOT NULL,
46
+ SP_PARAM_TYPE TEXT NOT NULL,
47
+ SP_STR TEXT,
48
+ SRC_PATH TEXT NOT NULL,
49
+ RES_ID TEXT NOT NULL,
50
+ RES_TYPE TEXT NOT NULL,
51
+ SP_MISSING BOOLEAN NOT NULL,
52
+ TARGET_RESOURCE_TYPE TEXT,
53
+ TARGET_RESOURCE_ID TEXT, -- Either ID or URL - not both
54
+ TARGET_RESOURCE_URL TEXT, -- Either ID or URL - not both
55
+ UPDATED BIGINT NOT NULL,
56
+ PATH_FOR_COMP TEXT,
57
+ COMPOSITE TEXT,
58
+ COMPOSITE_HASH_EXACT BIGINT
59
+ );
60
+
61
+ CREATE INDEX idx_stsresfhirlink_type_id
62
+ ON stsresfhirlink (RES_ID, RES_TYPE);
63
+
64
+ CREATE INDEX idx_stsresfhirlink_identity
65
+ ON stsresfhirlink (SP_NAME, RES_TYPE);
66
+
67
+ CREATE INDEX idx_stsresfhirlink_identity_target_id
68
+ ON stsresfhirlink (SP_NAME, RES_TYPE, TARGET_RESOURCE_TYPE, TARGET_RESOURCE_ID)
69
+ WHERE TARGET_RESOURCE_ID IS NOT NULL;
70
+
71
+ CREATE INDEX idx_stsresfhirlink_identity_target_url
72
+ ON stsresfhirlink (SP_NAME, RES_TYPE, TARGET_RESOURCE_TYPE, TARGET_RESOURCE_URL)
73
+ WHERE TARGET_RESOURCE_URL IS NOT NULL;
74
+
75
+ ---- stsresfhirstring ------------------------------------------------------------------------------------------
76
+
77
+ CREATE TABLE stsresfhirstring (
78
+ PID UUID PRIMARY KEY,
79
+ PARTITION_ID INTEGER,
80
+ PARTITION_DATE INTEGER,
81
+ SP_NAME TEXT NOT NULL,
82
+ SP_PARAM_TYPE TEXT NOT NULL,
83
+ RES_ID TEXT NOT NULL,
84
+ RES_TYPE TEXT NOT NULL,
85
+ SP_MISSING BOOLEAN NOT NULL,
86
+ SP_STR TEXT,
87
+ HASH_IDENTITY BIGINT,
88
+ HASH_EXACT BIGINT,
89
+ SP_VALUE_NORMALIZED TEXT,
90
+ SP_VALUE_EXACT TEXT,
91
+ UPDATED BIGINT NOT NULL,
92
+ PATH_FOR_COMP TEXT,
93
+ COMPOSITE TEXT,
94
+ COMPOSITE_HASH_EXACT BIGINT
95
+ );
96
+
97
+ CREATE INDEX idx_stsresfhirstring_search_prefix
98
+ ON stsresfhirstring (
99
+ RES_TYPE,
100
+ SP_NAME,
101
+ SP_PARAM_TYPE,
102
+ HASH_IDENTITY,
103
+ left(SP_VALUE_NORMALIZED, 3),
104
+ SP_VALUE_NORMALIZED text_pattern_ops,
105
+ RES_ID
106
+ )
107
+ WHERE SP_VALUE_NORMALIZED IS NOT NULL;
108
+
109
+ CREATE INDEX idx_stsresfhirstring_type_id
110
+ ON stsresfhirstring (RES_ID, RES_TYPE);
111
+
112
+ CREATE INDEX idx_stsresfhirstring_hash_identity
113
+ ON stsresfhirstring (HASH_IDENTITY);
114
+
115
+ CREATE INDEX idx_stsresfhirstring_hash_exact
116
+ ON stsresfhirstring (HASH_EXACT, SP_VALUE_EXACT)
117
+ WHERE HASH_EXACT IS NOT NULL AND SP_VALUE_EXACT IS NOT NULL;
118
+
119
+ CREATE INDEX idx_stsresfhirstring_hash_value_norm
120
+ ON stsresfhirstring (HASH_IDENTITY, SP_VALUE_NORMALIZED)
121
+ WHERE SP_VALUE_NORMALIZED IS NOT NULL;
122
+
123
+ CREATE INDEX idx_stsresfhirstring_hash_value_exact
124
+ ON stsresfhirstring (HASH_IDENTITY, SP_VALUE_EXACT)
125
+ WHERE SP_VALUE_EXACT IS NOT NULL;
126
+
127
+ ---- stsresfhirtoken ------------------------------------------------------------------------------------------
128
+
129
+ CREATE TABLE stsresfhirtoken (
130
+ PID UUID PRIMARY KEY,
131
+ PARTITION_ID INTEGER,
132
+ PARTITION_DATE INTEGER,
133
+ SP_NAME TEXT NOT NULL,
134
+ SP_PARAM_TYPE TEXT NOT NULL,
135
+ RES_ID TEXT NOT NULL,
136
+ RES_TYPE TEXT NOT NULL,
137
+ UPDATED BIGINT NOT NULL,
138
+ SP_MISSING BOOLEAN NOT NULL,
139
+ HASH_IDENTITY BIGINT NOT NULL,
140
+ SP_SYSTEM TEXT,
141
+ SP_VALUE TEXT,
142
+ SP_TOKEN_TYPE TEXT,
143
+ SP_STR TEXT,
144
+ HASH_VALUE BIGINT,
145
+ HASH_SYS BIGINT,
146
+ HASH_SYS_AND_VALUE BIGINT,
147
+ PATH_FOR_COMP TEXT,
148
+ COMPOSITE TEXT,
149
+ COMPOSITE_HASH_EXACT BIGINT
150
+ );
151
+
152
+ CREATE INDEX idx_stsresfhirtoken_type_id
153
+ ON stsresfhirtoken (RES_ID, RES_TYPE);
154
+
155
+ CREATE INDEX idx_stsresfhirtoken_hash_identity
156
+ ON stsresfhirtoken (HASH_IDENTITY);
157
+
158
+ CREATE INDEX idx_stsresfhirtoken_hash_identity_value
159
+ ON stsresfhirtoken (HASH_IDENTITY, SP_VALUE)
160
+ WHERE SP_VALUE IS NOT NULL;
161
+
162
+ CREATE INDEX idx_stsresfhirtoken_hash_value
163
+ ON stsresfhirtoken (HASH_VALUE, SP_VALUE)
164
+ WHERE SP_VALUE IS NOT NULL;
165
+
166
+ CREATE INDEX idx_stsresfhirtoken_hash_sys
167
+ ON stsresfhirtoken (HASH_SYS, SP_SYSTEM)
168
+ WHERE SP_SYSTEM IS NOT NULL;
169
+
170
+ CREATE INDEX idx_stsresfhirtoken_hash_sys_and_value
171
+ ON stsresfhirtoken (HASH_SYS_AND_VALUE, SP_SYSTEM, SP_VALUE)
172
+ WHERE SP_SYSTEM IS NOT NULL AND SP_VALUE IS NOT NULL;
173
+
174
+ ---- stsresfhirquantity ------------------------------------------------------------------------------------------
175
+
176
+ CREATE TABLE stsresfhirquantity (
177
+ PID UUID PRIMARY KEY,
178
+ PARTITION_ID INTEGER,
179
+ PARTITION_DATE INTEGER,
180
+ SP_NAME TEXT NOT NULL,
181
+ SP_PARAM_TYPE TEXT NOT NULL,
182
+ RES_ID TEXT NOT NULL,
183
+ RES_TYPE TEXT NOT NULL,
184
+ UPDATED BIGINT NOT NULL,
185
+ SP_MISSING BOOLEAN NOT NULL,
186
+ HASH_IDENTITY BIGINT NOT NULL,
187
+ SP_SYSTEM TEXT,
188
+ SP_VALUE DECIMAL,
189
+ SP_UNITS TEXT,
190
+ SP_STR TEXT,
191
+ HASH_IDENTITY_AND_UNITS BIGINT,
192
+ HASH_IDENTITY_SYS_UNITS BIGINT,
193
+ PATH_FOR_COMP TEXT,
194
+ COMPOSITE TEXT,
195
+ COMPOSITE_HASH_EXACT BIGINT
196
+ );
197
+
198
+ CREATE INDEX idx_stsresfhirquantity_type_id
199
+ ON stsresfhirquantity (RES_ID, RES_TYPE);
200
+
201
+ CREATE INDEX idx_stsresfhirquantity_hash_identity
202
+ ON stsresfhirquantity (HASH_IDENTITY);
203
+
204
+ CREATE INDEX idx_stsresfhirquantity_hash_identity_value
205
+ ON stsresfhirquantity (HASH_IDENTITY, SP_VALUE)
206
+ WHERE SP_VALUE IS NOT NULL;
207
+
208
+ CREATE INDEX idx_stsresfhirquantity_hash_identity_sys_units_value
209
+ ON stsresfhirquantity (HASH_IDENTITY, SP_SYSTEM, SP_UNITS, SP_VALUE)
210
+ WHERE SP_SYSTEM IS NOT NULL AND SP_UNITS IS NOT NULL AND SP_VALUE IS NOT NULL;
211
+
212
+ CREATE INDEX idx_stsresfhirquantity_hash_units
213
+ ON stsresfhirquantity (HASH_IDENTITY_AND_UNITS, SP_UNITS)
214
+ WHERE SP_UNITS IS NOT NULL AND SP_VALUE IS NOT NULL;
215
+
216
+ CREATE INDEX idx_stsresfhirquantity_hash_sys_units
217
+ ON stsresfhirquantity (HASH_IDENTITY_SYS_UNITS, SP_SYSTEM, SP_UNITS)
218
+ WHERE SP_SYSTEM IS NOT NULL AND SP_UNITS IS NOT NULL AND SP_VALUE IS NOT NULL;
219
+
220
+ ---- stsresfhirnumber ------------------------------------------------------------------------------------------
221
+
222
+ CREATE TABLE stsresfhirnumber (
223
+ PID UUID PRIMARY KEY,
224
+ PARTITION_ID INTEGER,
225
+ PARTITION_DATE INTEGER,
226
+ SP_NAME TEXT NOT NULL,
227
+ SP_PARAM_TYPE TEXT NOT NULL,
228
+ RES_ID TEXT NOT NULL,
229
+ RES_TYPE TEXT NOT NULL,
230
+ UPDATED BIGINT NOT NULL,
231
+ SP_MISSING BOOLEAN NOT NULL,
232
+ HASH_IDENTITY BIGINT NOT NULL,
233
+ SP_VALUE DECIMAL,
234
+ SP_STR TEXT,
235
+ PATH_FOR_COMP TEXT,
236
+ COMPOSITE TEXT,
237
+ COMPOSITE_HASH_EXACT BIGINT
238
+ );
239
+
240
+ CREATE INDEX idx_stsresfhirnumber_type_id
241
+ ON stsresfhirnumber (RES_ID, RES_TYPE);
242
+
243
+ CREATE INDEX idx_stsresfhirnumber_hash_identity
244
+ ON stsresfhirnumber (HASH_IDENTITY);
245
+
246
+ CREATE INDEX idx_stsresfhirnumber_hash_identity_value
247
+ ON stsresfhirnumber (HASH_IDENTITY, SP_VALUE)
248
+ WHERE SP_VALUE IS NOT NULL;
249
+
250
+ ---- stsresfhiruri ------------------------------------------------------------------------------------------
251
+
252
+ CREATE TABLE stsresfhiruri (
253
+ PID UUID PRIMARY KEY,
254
+ PARTITION_ID INTEGER,
255
+ PARTITION_DATE INTEGER,
256
+ SP_NAME TEXT NOT NULL,
257
+ SP_PARAM_TYPE TEXT NOT NULL,
258
+ RES_ID TEXT NOT NULL,
259
+ RES_TYPE TEXT NOT NULL,
260
+ UPDATED BIGINT NOT NULL,
261
+ SP_MISSING BOOLEAN NOT NULL,
262
+ HASH_IDENTITY BIGINT NOT NULL,
263
+ SP_URI TEXT,
264
+ HASH_URI BIGINT,
265
+ SP_STR TEXT,
266
+ PATH_FOR_COMP TEXT,
267
+ COMPOSITE TEXT,
268
+ COMPOSITE_HASH_EXACT BIGINT
269
+ );
270
+
271
+ CREATE INDEX idx_stsresfhiruri_type_id
272
+ ON stsresfhiruri (RES_ID, RES_TYPE);
273
+
274
+ CREATE INDEX idx_stsresfhiruri_hash_identity
275
+ ON stsresfhiruri (HASH_IDENTITY);
276
+
277
+ CREATE INDEX idx_stsresfhiruri_hash_uri
278
+ ON stsresfhiruri (HASH_URI, SP_URI)
279
+ WHERE SP_URI IS NOT NULL;
280
+
281
+ CREATE INDEX idx_stsresfhiruri_identity_uri
282
+ ON stsresfhiruri (HASH_IDENTITY, SP_URI)
283
+ WHERE SP_URI IS NOT NULL;
284
+
285
+ ---- stsresfhirdate ------------------------------------------------------------------------------------------
286
+
287
+ CREATE TABLE stsresfhirdate (
288
+ PID UUID PRIMARY KEY,
289
+ PARTITION_ID INTEGER,
290
+ PARTITION_DATE INTEGER,
291
+ SP_NAME TEXT NOT NULL,
292
+ SP_PARAM_TYPE TEXT NOT NULL,
293
+ RES_ID TEXT NOT NULL,
294
+ RES_TYPE TEXT NOT NULL,
295
+ UPDATED BIGINT NOT NULL,
296
+ SP_MISSING BOOLEAN NOT NULL,
297
+ HASH_IDENTITY BIGINT NOT NULL,
298
+ SP_VALUE_LOW timestamp with time zone,
299
+ SP_VALUE_HIGH timestamp with time zone,
300
+ SP_VALUE_LOW_DATE_ORDINAL INTEGER,
301
+ SP_VALUE_HIGH_DATE_ORDINAL INTEGER,
302
+ SP_STR TEXT,
303
+ PATH_FOR_COMP TEXT,
304
+ COMPOSITE TEXT,
305
+ COMPOSITE_HASH_EXACT BIGINT
306
+ );
307
+
308
+ CREATE INDEX idx_stsresfhirdate_type_id
309
+ ON stsresfhirdate (RES_ID, RES_TYPE);
310
+
311
+ CREATE INDEX idx_stsresfhirdate_hash_identity
312
+ ON stsresfhirdate (HASH_IDENTITY);
313
+
314
+ CREATE INDEX idx_stsresfhirdate_hash_identity_low
315
+ ON stsresfhirdate (HASH_IDENTITY, SP_VALUE_LOW)
316
+ WHERE SP_VALUE_LOW IS NOT NULL;
317
+
318
+ CREATE INDEX idx_stsresfhirdate_hash_identity_high
319
+ ON stsresfhirdate (HASH_IDENTITY, SP_VALUE_HIGH)
320
+ WHERE SP_VALUE_HIGH IS NOT NULL;
321
+
322
+ ---- stsresfhircoords ------------------------------------------------------------------------------------------
323
+
324
+ CREATE TABLE stsresfhircoords (
325
+ PID UUID PRIMARY KEY,
326
+ PARTITION_ID INTEGER,
327
+ PARTITION_DATE INTEGER,
328
+ SP_NAME TEXT NOT NULL,
329
+ SP_PARAM_TYPE TEXT NOT NULL,
330
+ RES_ID TEXT NOT NULL,
331
+ RES_TYPE TEXT NOT NULL,
332
+ UPDATED BIGINT NOT NULL,
333
+ SP_MISSING BOOLEAN NOT NULL,
334
+ HASH_IDENTITY BIGINT NOT NULL,
335
+ SP_LATITUDE double precision,
336
+ SP_LONGITUDE double precision,
337
+ SP_STR TEXT,
338
+ PATH_FOR_COMP TEXT,
339
+ COMPOSITE TEXT,
340
+ COMPOSITE_HASH_EXACT BIGINT
341
+ );
342
+
343
+ CREATE INDEX idx_stsresfhircoords_type_id
344
+ ON stsresfhircoords (RES_ID, RES_TYPE);
345
+
346
+ CREATE INDEX idx_stsresfhircoords_hash_identity
347
+ ON stsresfhircoords (HASH_IDENTITY);
348
+
349
+ CREATE INDEX idx_stsresfhircoords_hash_identity_lat_long
350
+ ON stsresfhircoords (HASH_IDENTITY, SP_LATITUDE, SP_LONGITUDE)
351
+ WHERE SP_LATITUDE IS NOT NULL AND SP_LONGITUDE IS NOT NULL;
352
+
353
+ ---- stsresfhircombo ------------------------------------------------------------------------------------------
354
+
355
+ -- When joining with other index tables, use RES_ID and SP_NAME
356
+ CREATE TABLE stsresfhircombo (
357
+ PID UUID PRIMARY KEY,
358
+ PARTITION_ID INTEGER,
359
+ PARTITION_DATE INTEGER,
360
+ SP_NAME TEXT NOT NULL,
361
+ SP_PARAM_TYPE TEXT NOT NULL,
362
+ RES_ID TEXT NOT NULL,
363
+ RES_TYPE TEXT NOT NULL,
364
+ UPDATED BIGINT NOT NULL,
365
+ SP_MISSING BOOLEAN NOT NULL,
366
+ HASH_IDENTITY BIGINT NOT NULL,
367
+ IDX_STRING TEXT,
368
+ HASH_COMPLETE BIGINT,
369
+ SP_STR TEXT,
370
+ UNIQUE (RES_ID, SP_NAME, IDX_STRING)
371
+ );
372
+
373
+ CREATE INDEX idx_stsresfhircombo_type_id
374
+ ON stsresfhircombo (RES_ID, RES_TYPE);
375
+
376
+ CREATE INDEX idx_stsresfhircombo_hash_identity
377
+ ON stsresfhircombo (HASH_IDENTITY);
378
+
379
+ CREATE INDEX idx_stsresfhircombo_hash_complete
380
+ ON stsresfhircombo (HASH_COMPLETE)
381
+ WHERE HASH_COMPLETE IS NOT NULL;
382
+
383
+ CREATE INDEX idx_stsresfhircombo_hash_identity_string
384
+ ON stsresfhircombo (HASH_IDENTITY, IDX_STRING)
385
+ WHERE IDX_STRING IS NOT NULL;
386
+