@openhi/constructs 0.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.
- package/README.md +3 -0
- package/lib/app/index.d.ts +4 -0
- package/lib/app/index.js +21 -0
- package/lib/app/open-hi-app.d.ts +85 -0
- package/lib/app/open-hi-app.js +127 -0
- package/lib/app/open-hi-environment.d.ts +59 -0
- package/lib/app/open-hi-environment.js +72 -0
- package/lib/app/open-hi-service.d.ts +169 -0
- package/lib/app/open-hi-service.js +195 -0
- package/lib/app/open-hi-stage.d.ts +71 -0
- package/lib/app/open-hi-stage.js +70 -0
- package/lib/components/acm/root-wildcard-certificate.d.ts +15 -0
- package/lib/components/acm/root-wildcard-certificate.js +35 -0
- package/lib/components/api-gateway/core-http-api.d.ts +10 -0
- package/lib/components/api-gateway/core-http-api.js +44 -0
- package/lib/components/api-gateway/http-lambda-integration-no-permissions.d.ts +18 -0
- package/lib/components/api-gateway/http-lambda-integration-no-permissions.js +26 -0
- package/lib/components/app-sync/core-graphql-api.d.ts +12 -0
- package/lib/components/app-sync/core-graphql-api.js +54 -0
- package/lib/components/auth.d.ts +75 -0
- package/lib/components/auth.js +100 -0
- package/lib/components/cognito/core-user-pool-client.d.ts +10 -0
- package/lib/components/cognito/core-user-pool-client.js +47 -0
- package/lib/components/cognito/core-user-pool-domain.d.ts +10 -0
- package/lib/components/cognito/core-user-pool-domain.js +41 -0
- package/lib/components/cognito/core-user-pool-kms-key.d.ts +10 -0
- package/lib/components/cognito/core-user-pool-kms-key.js +37 -0
- package/lib/components/cognito/core-user-pool.d.ts +10 -0
- package/lib/components/cognito/core-user-pool.js +54 -0
- package/lib/components/core.d.ts +102 -0
- package/lib/components/core.js +79 -0
- package/lib/components/dynamodb/dynamo-db-data-store.d.ts +33 -0
- package/lib/components/dynamodb/dynamo-db-data-store.js +107 -0
- package/lib/components/event-bridge/data-event-bus.d.ts +19 -0
- package/lib/components/event-bridge/data-event-bus.js +34 -0
- package/lib/components/event-bridge/ops-event-bus.d.ts +19 -0
- package/lib/components/event-bridge/ops-event-bus.js +34 -0
- package/lib/components/global.d.ts +36 -0
- package/lib/components/global.js +63 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +18 -0
- package/lib/components/route-53/child-hosted-zone.d.ts +20 -0
- package/lib/components/route-53/child-hosted-zone.js +48 -0
- package/lib/components/route-53/root-hosted-zone.d.ts +10 -0
- package/lib/components/route-53/root-hosted-zone.js +20 -0
- package/lib/components/ssm/discoverable-string-parameter.d.ts +59 -0
- package/lib/components/ssm/discoverable-string-parameter.js +50 -0
- package/lib/components/ssm/index.d.ts +1 -0
- package/lib/components/ssm/index.js +18 -0
- package/lib/data/dynamo/ehr/r4/Patient.d.ts +180 -0
- package/lib/data/dynamo/ehr/r4/Patient.js +192 -0
- package/lib/data/dynamo/ehr/r4/ehr-r4-data-service.d.ts +162 -0
- package/lib/data/dynamo/ehr/r4/ehr-r4-data-service.js +37 -0
- package/lib/data/hello-world.d.ts +39 -0
- package/lib/data/hello-world.js +59 -0
- package/lib/data/import-patient-with-dynalite.d.ts +1 -0
- package/lib/data/import-patient-with-dynalite.js +87 -0
- package/lib/data/import-patient.d.ts +47 -0
- package/lib/data/import-patient.js +158 -0
- package/lib/data/lambda/rest-api-lambda.d.ts +13 -0
- package/lib/data/lambda/rest-api-lambda.handler.d.ts +1 -0
- package/lib/data/lambda/rest-api-lambda.handler.js +10 -0
- package/lib/data/lambda/rest-api-lambda.js +22 -0
- package/lib/data/middleware/open-hi-context.d.ts +13 -0
- package/lib/data/middleware/open-hi-context.js +31 -0
- package/lib/data/rest-api/ehr/r4/Patient.d.ts +16 -0
- package/lib/data/rest-api/ehr/r4/Patient.js +234 -0
- package/lib/data/rest-api/rest-api-local.d.ts +1 -0
- package/lib/data/rest-api/rest-api-local.js +8 -0
- package/lib/data/rest-api/rest-api-mockdata.d.ts +7 -0
- package/lib/data/rest-api/rest-api-mockdata.js +585 -0
- package/lib/data/rest-api/rest-api.d.ts +3 -0
- package/lib/data/rest-api/rest-api.js +26 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +20 -0
- package/lib/lib/compression.d.ts +27 -0
- package/lib/lib/compression.js +87 -0
- package/lib/services/index.d.ts +5 -0
- package/lib/services/index.js +22 -0
- package/lib/services/open-hi-auth-service.d.ts +31 -0
- package/lib/services/open-hi-auth-service.js +31 -0
- package/lib/services/open-hi-core-service.d.ts +15 -0
- package/lib/services/open-hi-core-service.js +38 -0
- package/lib/services/open-hi-data-service.d.ts +18 -0
- package/lib/services/open-hi-data-service.js +18 -0
- package/lib/services/open-hi-global-service.d.ts +15 -0
- package/lib/services/open-hi-global-service.js +44 -0
- package/lib/services/open-hi-rest-api-service.d.ts +17 -0
- package/lib/services/open-hi-rest-api-service.js +107 -0
- package/package.json +67 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiscoverableStringParameter = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
|
|
6
|
+
const app_1 = require("../../app");
|
|
7
|
+
/**
|
|
8
|
+
* Discoverable SSM string parameter construct. Extends CDK StringParameter:
|
|
9
|
+
* builds parameterName from the given name via buildParameterName and tags
|
|
10
|
+
* the parameter with the name constant.
|
|
11
|
+
*/
|
|
12
|
+
class DiscoverableStringParameter extends aws_ssm_1.StringParameter {
|
|
13
|
+
/**
|
|
14
|
+
* Build a param name based on predictable attributes found in services and
|
|
15
|
+
* constructs. Used for storage and retrieval of SSM values across services.
|
|
16
|
+
*/
|
|
17
|
+
static buildParameterName(scope, props) {
|
|
18
|
+
const stack = app_1.OpenHiService.of(scope);
|
|
19
|
+
return ("/" +
|
|
20
|
+
[
|
|
21
|
+
props.branchHash ?? stack.branchHash,
|
|
22
|
+
props.serviceType ?? stack.serviceType,
|
|
23
|
+
props.account ?? stack.account,
|
|
24
|
+
props.region ?? stack.region,
|
|
25
|
+
props.ssmParamName,
|
|
26
|
+
]
|
|
27
|
+
.join("/")
|
|
28
|
+
.toUpperCase());
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Read the string value of an SSM parameter created with DiscoverableStringParameter,
|
|
32
|
+
* using props that include ssmParamName and optional overrides (e.g. serviceType).
|
|
33
|
+
*/
|
|
34
|
+
static valueForLookupName(scope, props) {
|
|
35
|
+
const paramName = DiscoverableStringParameter.buildParameterName(scope, props);
|
|
36
|
+
return aws_ssm_1.StringParameter.valueForStringParameter(scope, paramName);
|
|
37
|
+
}
|
|
38
|
+
constructor(scope, id, props) {
|
|
39
|
+
const { ssmParamName, branchHash, serviceType, account, region, ...rest } = props;
|
|
40
|
+
const parameterName = DiscoverableStringParameter.buildParameterName(scope, props);
|
|
41
|
+
super(scope, id, {
|
|
42
|
+
...rest,
|
|
43
|
+
parameterName,
|
|
44
|
+
});
|
|
45
|
+
const { appName } = app_1.OpenHiService.of(scope);
|
|
46
|
+
aws_cdk_lib_1.Tags.of(this).add(`${appName}:param-name`, ssmParamName);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.DiscoverableStringParameter = DiscoverableStringParameter;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXJhYmxlLXN0cmluZy1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zc20vZGlzY292ZXJhYmxlLXN0cmluZy1wYXJhbWV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW1DO0FBQ25DLGlEQUc2QjtBQUU3QixtQ0FBMEM7QUFzRDFDOzs7O0dBSUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHlCQUFlO0lBQzlEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FDOUIsS0FBZ0IsRUFDaEIsS0FBOEI7UUFFOUIsTUFBTSxLQUFLLEdBQUcsbUJBQWEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFrQixDQUFDO1FBQ3ZELE9BQU8sQ0FDTCxHQUFHO1lBQ0g7Z0JBQ0UsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVTtnQkFDcEMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsV0FBVztnQkFDdEMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTztnQkFDOUIsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTTtnQkFDNUIsS0FBSyxDQUFDLFlBQVk7YUFDbkI7aUJBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQztpQkFDVCxXQUFXLEVBQUUsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQzlCLEtBQWdCLEVBQ2hCLEtBQThCO1FBRTlCLE1BQU0sU0FBUyxHQUFHLDJCQUEyQixDQUFDLGtCQUFrQixDQUM5RCxLQUFLLEVBQ0wsS0FBSyxDQUNOLENBQUM7UUFDRixPQUFPLHlCQUFlLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUF1QztRQUV2QyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRSxHQUN2RSxLQUFLLENBQUM7UUFFUixNQUFNLGFBQWEsR0FBRywyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FDbEUsS0FBSyxFQUNMLEtBQUssQ0FDTixDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLElBQUk7WUFDUCxhQUFhO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLG1CQUFhLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBa0IsQ0FBQztRQUM3RCxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUE1REQsa0VBNERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFncyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgU3RyaW5nUGFyYW1ldGVyLFxuICB0eXBlIFN0cmluZ1BhcmFtZXRlclByb3BzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE9wZW5IaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vYXBwXCI7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlxuICogRGlzY292ZXJhYmxlU3RyaW5nUGFyYW1ldGVyUHJvcHM6IHByb3BzIGZvciBjcmVhdGluZyBvciBsb29raW5nIHVwIFNTTVxuICogcGFyYW1ldGVycy4gSW5jbHVkZXMgU3RyaW5nUGFyYW1ldGVyUHJvcHMgKG1pbnVzIHBhcmFtZXRlck5hbWUpIHBsdXNcbiAqIG5hbWUtYnVpbGRpbmcgZmllbGRzIHVzZWQgYnkgYnVpbGRQYXJhbWV0ZXJOYW1lLlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY292ZXJhYmxlU3RyaW5nUGFyYW1ldGVyUHJvcHMgZXh0ZW5kcyBPbWl0PFxuICBTdHJpbmdQYXJhbWV0ZXJQcm9wcyxcbiAgXCJwYXJhbWV0ZXJOYW1lXCJcbj4ge1xuICAvKipcbiAgICogU1NNIHBhcmFtIG5hbWUgdXNlZCB0byBidWlsZCB0aGUgU1NNIHBhcmFtZXRlciBuYW1lIHZpYSBidWlsZFBhcmFtZXRlck5hbWVcbiAgICogYW5kIHN0b3JlZCBhcyBhIHRhZyBvbiB0aGUgcGFyYW1ldGVyIGZvciBkaXNjb3ZlcmFiaWxpdHkuXG4gICAqL1xuICByZWFkb25seSBzc21QYXJhbU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGhhc2ggdGhlIHBhcmFtZXRlciBiZWxvbmdzIHRvLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBjdXJyZW50IHN0YWNrJ3MgZW52aXJvbm1lbnQgaGFzaFxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoSGFzaD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdHlwZSB0aGUgcGFyYW1ldGVyIGJlbG9uZ3MgdG8uXG4gICAqIEBkZWZhdWx0IC0gdGhlIGN1cnJlbnQgc3RhY2sncyBzZXJ2aWNlIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIGFjY291bnQgdGhlIHBhcmFtZXRlciBiZWxvbmdzIHRvLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBjdXJyZW50IHN0YWNrJ3MgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdGhlIHBhcmFtZXRlciBiZWxvbmdzIHRvLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBjdXJyZW50IHN0YWNrJ3MgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIGJ1aWxkUGFyYW1ldGVyTmFtZSBhbmQgdmFsdWVGb3JMb29rdXBOYW1lLlxuICogSW5jbHVkZXMgc3NtUGFyYW1OYW1lIChyZXF1aXJlZCkgYW5kIG9wdGlvbmFsIG92ZXJyaWRlcyAoYnJhbmNoSGFzaCwgc2VydmljZVR5cGUsIGFjY291bnQsIHJlZ2lvbikuXG4gKi9cbmV4cG9ydCB0eXBlIEJ1aWxkUGFyYW1ldGVyTmFtZVByb3BzID0gUGljazxcbiAgRGlzY292ZXJhYmxlU3RyaW5nUGFyYW1ldGVyUHJvcHMsXG4gIFwic3NtUGFyYW1OYW1lXCIgfCBcImJyYW5jaEhhc2hcIiB8IFwic2VydmljZVR5cGVcIiB8IFwiYWNjb3VudFwiIHwgXCJyZWdpb25cIlxuPjtcblxuLyoqXG4gKiBEaXNjb3ZlcmFibGUgU1NNIHN0cmluZyBwYXJhbWV0ZXIgY29uc3RydWN0LiBFeHRlbmRzIENESyBTdHJpbmdQYXJhbWV0ZXI6XG4gKiBidWlsZHMgcGFyYW1ldGVyTmFtZSBmcm9tIHRoZSBnaXZlbiBuYW1lIHZpYSBidWlsZFBhcmFtZXRlck5hbWUgYW5kIHRhZ3NcbiAqIHRoZSBwYXJhbWV0ZXIgd2l0aCB0aGUgbmFtZSBjb25zdGFudC5cbiAqL1xuZXhwb3J0IGNsYXNzIERpc2NvdmVyYWJsZVN0cmluZ1BhcmFtZXRlciBleHRlbmRzIFN0cmluZ1BhcmFtZXRlciB7XG4gIC8qKlxuICAgKiBCdWlsZCBhIHBhcmFtIG5hbWUgYmFzZWQgb24gcHJlZGljdGFibGUgYXR0cmlidXRlcyBmb3VuZCBpbiBzZXJ2aWNlcyBhbmRcbiAgICogY29uc3RydWN0cy4gVXNlZCBmb3Igc3RvcmFnZSBhbmQgcmV0cmlldmFsIG9mIFNTTSB2YWx1ZXMgYWNyb3NzIHNlcnZpY2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBidWlsZFBhcmFtZXRlck5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcm9wczogQnVpbGRQYXJhbWV0ZXJOYW1lUHJvcHMsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhY2sgPSBPcGVuSGlTZXJ2aWNlLm9mKHNjb3BlKSBhcyBPcGVuSGlTZXJ2aWNlO1xuICAgIHJldHVybiAoXG4gICAgICBcIi9cIiArXG4gICAgICBbXG4gICAgICAgIHByb3BzLmJyYW5jaEhhc2ggPz8gc3RhY2suYnJhbmNoSGFzaCxcbiAgICAgICAgcHJvcHMuc2VydmljZVR5cGUgPz8gc3RhY2suc2VydmljZVR5cGUsXG4gICAgICAgIHByb3BzLmFjY291bnQgPz8gc3RhY2suYWNjb3VudCxcbiAgICAgICAgcHJvcHMucmVnaW9uID8/IHN0YWNrLnJlZ2lvbixcbiAgICAgICAgcHJvcHMuc3NtUGFyYW1OYW1lLFxuICAgICAgXVxuICAgICAgICAuam9pbihcIi9cIilcbiAgICAgICAgLnRvVXBwZXJDYXNlKClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgdGhlIHN0cmluZyB2YWx1ZSBvZiBhbiBTU00gcGFyYW1ldGVyIGNyZWF0ZWQgd2l0aCBEaXNjb3ZlcmFibGVTdHJpbmdQYXJhbWV0ZXIsXG4gICAqIHVzaW5nIHByb3BzIHRoYXQgaW5jbHVkZSBzc21QYXJhbU5hbWUgYW5kIG9wdGlvbmFsIG92ZXJyaWRlcyAoZS5nLiBzZXJ2aWNlVHlwZSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbHVlRm9yTG9va3VwTmFtZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHByb3BzOiBCdWlsZFBhcmFtZXRlck5hbWVQcm9wcyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbU5hbWUgPSBEaXNjb3ZlcmFibGVTdHJpbmdQYXJhbWV0ZXIuYnVpbGRQYXJhbWV0ZXJOYW1lKFxuICAgICAgc2NvcGUsXG4gICAgICBwcm9wcyxcbiAgICApO1xuICAgIHJldHVybiBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoc2NvcGUsIHBhcmFtTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IERpc2NvdmVyYWJsZVN0cmluZ1BhcmFtZXRlclByb3BzLFxuICApIHtcbiAgICBjb25zdCB7IHNzbVBhcmFtTmFtZSwgYnJhbmNoSGFzaCwgc2VydmljZVR5cGUsIGFjY291bnQsIHJlZ2lvbiwgLi4ucmVzdCB9ID1cbiAgICAgIHByb3BzO1xuXG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZSA9IERpc2NvdmVyYWJsZVN0cmluZ1BhcmFtZXRlci5idWlsZFBhcmFtZXRlck5hbWUoXG4gICAgICBzY29wZSxcbiAgICAgIHByb3BzLFxuICAgICk7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnJlc3QsXG4gICAgICBwYXJhbWV0ZXJOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBhcHBOYW1lIH0gPSBPcGVuSGlTZXJ2aWNlLm9mKHNjb3BlKSBhcyBPcGVuSGlTZXJ2aWNlO1xuICAgIFRhZ3Mub2YodGhpcykuYWRkKGAke2FwcE5hbWV9OnBhcmFtLW5hbWVgLCBzc21QYXJhbU5hbWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./discoverable-string-parameter";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./discoverable-string-parameter"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtFQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Rpc2NvdmVyYWJsZS1zdHJpbmctcGFyYW1ldGVyXCI7XG4iXX0=
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Entity } from "electrodb";
|
|
2
|
+
/**
|
|
3
|
+
* Patient data-store entity based on FHIR (single-table store).
|
|
4
|
+
*
|
|
5
|
+
* Key structure: PK = TID#<tenantId>#WID#<workspaceId>#RT#Patient#ID#<id>, SK = CURRENT.
|
|
6
|
+
* Standard attributes (FHIR source and entity purpose) are documented in the Data-Store Entity Standards (FHIR).
|
|
7
|
+
*
|
|
8
|
+
* @see sites/www-docs/content/reference/data-store-entities.md — Standard attributes (all FHIR domain resources)
|
|
9
|
+
* @see sites/www-docs/content/architecture/dynamodb-single-table-design.md
|
|
10
|
+
*/
|
|
11
|
+
export declare const Patient: Entity<string, string, string, {
|
|
12
|
+
model: {
|
|
13
|
+
entity: string;
|
|
14
|
+
service: string;
|
|
15
|
+
version: string;
|
|
16
|
+
};
|
|
17
|
+
attributes: {
|
|
18
|
+
/** Sort key. "CURRENT" for current version; version history in S3. */
|
|
19
|
+
sk: {
|
|
20
|
+
type: "string";
|
|
21
|
+
required: true;
|
|
22
|
+
default: string;
|
|
23
|
+
};
|
|
24
|
+
tenantId: {
|
|
25
|
+
type: "string";
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
workspaceId: {
|
|
29
|
+
type: "string";
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
/** FHIR Resource.id; logical id in URL and PK. */
|
|
33
|
+
id: {
|
|
34
|
+
type: "string";
|
|
35
|
+
required: true;
|
|
36
|
+
};
|
|
37
|
+
/** FHIR resource as JSON string. JSON.stringify(resource) on write; JSON.parse(item.resource) on read. */
|
|
38
|
+
resource: {
|
|
39
|
+
type: "string";
|
|
40
|
+
required: true;
|
|
41
|
+
};
|
|
42
|
+
/** Version id (e.g. ULID). Tracks current version; S3 history key. */
|
|
43
|
+
vid: {
|
|
44
|
+
type: "string";
|
|
45
|
+
required: true;
|
|
46
|
+
};
|
|
47
|
+
lastUpdated: {
|
|
48
|
+
type: "string";
|
|
49
|
+
required: true;
|
|
50
|
+
};
|
|
51
|
+
deleted: {
|
|
52
|
+
type: "boolean";
|
|
53
|
+
required: false;
|
|
54
|
+
};
|
|
55
|
+
bundleId: {
|
|
56
|
+
type: "string";
|
|
57
|
+
required: false;
|
|
58
|
+
};
|
|
59
|
+
msgId: {
|
|
60
|
+
type: "string";
|
|
61
|
+
required: false;
|
|
62
|
+
};
|
|
63
|
+
/** Identifier system (e.g. MRN system URI). When set with identifierValue, item is written to GSI2. */
|
|
64
|
+
identifierSystem: {
|
|
65
|
+
type: "string";
|
|
66
|
+
required: false;
|
|
67
|
+
};
|
|
68
|
+
/** Identifier value (e.g. MRN). When set with identifierSystem, item is written to GSI2. */
|
|
69
|
+
identifierValue: {
|
|
70
|
+
type: "string";
|
|
71
|
+
required: false;
|
|
72
|
+
};
|
|
73
|
+
/** For GSI2/GSI3 projection: base table PK/SK so GetItem can be used after query. */
|
|
74
|
+
resourcePk: {
|
|
75
|
+
type: "string";
|
|
76
|
+
required: false;
|
|
77
|
+
};
|
|
78
|
+
resourceSk: {
|
|
79
|
+
type: "string";
|
|
80
|
+
required: false;
|
|
81
|
+
};
|
|
82
|
+
/** For GSI2 projection: display name for roster/lookup. */
|
|
83
|
+
display: {
|
|
84
|
+
type: "string";
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
/** For GSI2 projection: resource status if applicable. */
|
|
88
|
+
status: {
|
|
89
|
+
type: "string";
|
|
90
|
+
required: false;
|
|
91
|
+
};
|
|
92
|
+
/** Facility id. When set with normalizedName, item is written to GSI3. */
|
|
93
|
+
facilityId: {
|
|
94
|
+
type: "string";
|
|
95
|
+
required: false;
|
|
96
|
+
};
|
|
97
|
+
/** Normalized display name for roster sort. When set with facilityId, item is written to GSI3. */
|
|
98
|
+
normalizedName: {
|
|
99
|
+
type: "string";
|
|
100
|
+
required: false;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
indexes: {
|
|
104
|
+
/** Base table: PK, SK (data store key names). PK is built from tenantId, workspaceId, id; do not supply PK from outside. */
|
|
105
|
+
record: {
|
|
106
|
+
pk: {
|
|
107
|
+
field: string;
|
|
108
|
+
composite: ("id" | "tenantId" | "workspaceId")[];
|
|
109
|
+
template: string;
|
|
110
|
+
};
|
|
111
|
+
sk: {
|
|
112
|
+
field: string;
|
|
113
|
+
composite: "sk"[];
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* GSI1 — Reverse Reference: query "what references this patient?".
|
|
118
|
+
* Patient items are never written to GSI1 (condition: false); reference index items
|
|
119
|
+
* are written by other resources. This index enables querying GSI1 by REFTO#RT#Patient#ID#<id>.
|
|
120
|
+
*/
|
|
121
|
+
gsi1: {
|
|
122
|
+
index: string;
|
|
123
|
+
condition: () => boolean;
|
|
124
|
+
pk: {
|
|
125
|
+
field: string;
|
|
126
|
+
composite: ("id" | "tenantId" | "workspaceId")[];
|
|
127
|
+
template: string;
|
|
128
|
+
};
|
|
129
|
+
sk: {
|
|
130
|
+
field: string;
|
|
131
|
+
composite: never[];
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
/** GSI2 — Identifier Lookup: MRN, NPI, member ID, etc. Keys built from identifier components. */
|
|
135
|
+
gsi2: {
|
|
136
|
+
index: string;
|
|
137
|
+
condition: (attr: Record<string, unknown>) => boolean;
|
|
138
|
+
pk: {
|
|
139
|
+
field: string;
|
|
140
|
+
composite: ("tenantId" | "workspaceId" | "identifierSystem" | "identifierValue")[];
|
|
141
|
+
template: string;
|
|
142
|
+
};
|
|
143
|
+
sk: {
|
|
144
|
+
field: string;
|
|
145
|
+
composite: "id"[];
|
|
146
|
+
template: string;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
/** GSI3 — Facility Ops: facility roster, worklists. Keys built from facility + name. */
|
|
150
|
+
gsi3: {
|
|
151
|
+
index: string;
|
|
152
|
+
condition: (attr: Record<string, unknown>) => boolean;
|
|
153
|
+
pk: {
|
|
154
|
+
field: string;
|
|
155
|
+
composite: ("tenantId" | "workspaceId" | "facilityId")[];
|
|
156
|
+
template: string;
|
|
157
|
+
};
|
|
158
|
+
sk: {
|
|
159
|
+
field: string;
|
|
160
|
+
composite: ("id" | "normalizedName")[];
|
|
161
|
+
template: string;
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
/** GSI4 — Resource Type Index: list all Patients in workspace (no scan). */
|
|
165
|
+
gsi4: {
|
|
166
|
+
index: string;
|
|
167
|
+
condition: () => boolean;
|
|
168
|
+
pk: {
|
|
169
|
+
field: string;
|
|
170
|
+
composite: ("tenantId" | "workspaceId")[];
|
|
171
|
+
template: string;
|
|
172
|
+
};
|
|
173
|
+
sk: {
|
|
174
|
+
field: string;
|
|
175
|
+
composite: "id"[];
|
|
176
|
+
template: string;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
}>;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Patient = void 0;
|
|
4
|
+
const electrodb_1 = require("electrodb");
|
|
5
|
+
/**
|
|
6
|
+
* Patient data-store entity based on FHIR (single-table store).
|
|
7
|
+
*
|
|
8
|
+
* Key structure: PK = TID#<tenantId>#WID#<workspaceId>#RT#Patient#ID#<id>, SK = CURRENT.
|
|
9
|
+
* Standard attributes (FHIR source and entity purpose) are documented in the Data-Store Entity Standards (FHIR).
|
|
10
|
+
*
|
|
11
|
+
* @see sites/www-docs/content/reference/data-store-entities.md — Standard attributes (all FHIR domain resources)
|
|
12
|
+
* @see sites/www-docs/content/architecture/dynamodb-single-table-design.md
|
|
13
|
+
*/
|
|
14
|
+
exports.Patient = new electrodb_1.Entity({
|
|
15
|
+
model: {
|
|
16
|
+
entity: "patient",
|
|
17
|
+
service: "fhir",
|
|
18
|
+
version: "01",
|
|
19
|
+
},
|
|
20
|
+
attributes: {
|
|
21
|
+
/** Sort key. "CURRENT" for current version; version history in S3. */
|
|
22
|
+
sk: {
|
|
23
|
+
type: "string",
|
|
24
|
+
required: true,
|
|
25
|
+
default: "CURRENT",
|
|
26
|
+
},
|
|
27
|
+
tenantId: {
|
|
28
|
+
type: "string",
|
|
29
|
+
required: true,
|
|
30
|
+
},
|
|
31
|
+
workspaceId: {
|
|
32
|
+
type: "string",
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
/** FHIR Resource.id; logical id in URL and PK. */
|
|
36
|
+
id: {
|
|
37
|
+
type: "string",
|
|
38
|
+
required: true,
|
|
39
|
+
},
|
|
40
|
+
/** FHIR resource as JSON string. JSON.stringify(resource) on write; JSON.parse(item.resource) on read. */
|
|
41
|
+
resource: {
|
|
42
|
+
type: "string",
|
|
43
|
+
required: true,
|
|
44
|
+
},
|
|
45
|
+
/** Version id (e.g. ULID). Tracks current version; S3 history key. */
|
|
46
|
+
vid: {
|
|
47
|
+
type: "string",
|
|
48
|
+
required: true,
|
|
49
|
+
},
|
|
50
|
+
lastUpdated: {
|
|
51
|
+
type: "string",
|
|
52
|
+
required: true,
|
|
53
|
+
},
|
|
54
|
+
deleted: {
|
|
55
|
+
type: "boolean",
|
|
56
|
+
required: false,
|
|
57
|
+
},
|
|
58
|
+
bundleId: {
|
|
59
|
+
type: "string",
|
|
60
|
+
required: false,
|
|
61
|
+
},
|
|
62
|
+
msgId: {
|
|
63
|
+
type: "string",
|
|
64
|
+
required: false,
|
|
65
|
+
},
|
|
66
|
+
// Audit is in FHIR resource meta (meta.extension), not item attributes. See data-store-entities.md.
|
|
67
|
+
// --- GSI2 (Identifier Lookup): optional; set when indexing this patient by identifier (e.g. MRN)
|
|
68
|
+
/** Identifier system (e.g. MRN system URI). When set with identifierValue, item is written to GSI2. */
|
|
69
|
+
identifierSystem: {
|
|
70
|
+
type: "string",
|
|
71
|
+
required: false,
|
|
72
|
+
},
|
|
73
|
+
/** Identifier value (e.g. MRN). When set with identifierSystem, item is written to GSI2. */
|
|
74
|
+
identifierValue: {
|
|
75
|
+
type: "string",
|
|
76
|
+
required: false,
|
|
77
|
+
},
|
|
78
|
+
/** For GSI2/GSI3 projection: base table PK/SK so GetItem can be used after query. */
|
|
79
|
+
resourcePk: {
|
|
80
|
+
type: "string",
|
|
81
|
+
required: false,
|
|
82
|
+
},
|
|
83
|
+
resourceSk: {
|
|
84
|
+
type: "string",
|
|
85
|
+
required: false,
|
|
86
|
+
},
|
|
87
|
+
/** For GSI2 projection: display name for roster/lookup. */
|
|
88
|
+
display: {
|
|
89
|
+
type: "string",
|
|
90
|
+
required: false,
|
|
91
|
+
},
|
|
92
|
+
/** For GSI2 projection: resource status if applicable. */
|
|
93
|
+
status: {
|
|
94
|
+
type: "string",
|
|
95
|
+
required: false,
|
|
96
|
+
},
|
|
97
|
+
// --- GSI3 (Facility Ops): optional; set when indexing this patient on a facility roster
|
|
98
|
+
/** Facility id. When set with normalizedName, item is written to GSI3. */
|
|
99
|
+
facilityId: {
|
|
100
|
+
type: "string",
|
|
101
|
+
required: false,
|
|
102
|
+
},
|
|
103
|
+
/** Normalized display name for roster sort. When set with facilityId, item is written to GSI3. */
|
|
104
|
+
normalizedName: {
|
|
105
|
+
type: "string",
|
|
106
|
+
required: false,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
indexes: {
|
|
110
|
+
/** Base table: PK, SK (data store key names). PK is built from tenantId, workspaceId, id; do not supply PK from outside. */
|
|
111
|
+
record: {
|
|
112
|
+
pk: {
|
|
113
|
+
field: "PK",
|
|
114
|
+
composite: ["tenantId", "workspaceId", "id"],
|
|
115
|
+
template: "TID#${tenantId}#WID#${workspaceId}#RT#Patient#ID#${id}",
|
|
116
|
+
},
|
|
117
|
+
sk: {
|
|
118
|
+
field: "SK",
|
|
119
|
+
composite: ["sk"],
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
/**
|
|
123
|
+
* GSI1 — Reverse Reference: query "what references this patient?".
|
|
124
|
+
* Patient items are never written to GSI1 (condition: false); reference index items
|
|
125
|
+
* are written by other resources. This index enables querying GSI1 by REFTO#RT#Patient#ID#<id>.
|
|
126
|
+
*/
|
|
127
|
+
gsi1: {
|
|
128
|
+
index: "GSI1",
|
|
129
|
+
condition: () => false,
|
|
130
|
+
pk: {
|
|
131
|
+
field: "GSI1PK",
|
|
132
|
+
composite: ["tenantId", "workspaceId", "id"],
|
|
133
|
+
template: "TID#${tenantId}#WID#${workspaceId}#REFTO#RT#Patient#ID#${id}",
|
|
134
|
+
},
|
|
135
|
+
sk: {
|
|
136
|
+
field: "GSI1SK",
|
|
137
|
+
composite: [],
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
/** GSI2 — Identifier Lookup: MRN, NPI, member ID, etc. Keys built from identifier components. */
|
|
141
|
+
gsi2: {
|
|
142
|
+
index: "GSI2",
|
|
143
|
+
condition: (attr) => attr.identifierSystem != null && attr.identifierValue != null,
|
|
144
|
+
pk: {
|
|
145
|
+
field: "GSI2PK",
|
|
146
|
+
composite: [
|
|
147
|
+
"tenantId",
|
|
148
|
+
"workspaceId",
|
|
149
|
+
"identifierSystem",
|
|
150
|
+
"identifierValue",
|
|
151
|
+
],
|
|
152
|
+
template: "TID#${tenantId}#WID#${workspaceId}#IDENT#${identifierSystem}#${identifierValue}",
|
|
153
|
+
},
|
|
154
|
+
sk: {
|
|
155
|
+
field: "GSI2SK",
|
|
156
|
+
composite: ["id"],
|
|
157
|
+
template: "RT#Patient#ID#${id}",
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
/** GSI3 — Facility Ops: facility roster, worklists. Keys built from facility + name. */
|
|
161
|
+
gsi3: {
|
|
162
|
+
index: "GSI3",
|
|
163
|
+
condition: (attr) => attr.facilityId != null && attr.normalizedName != null,
|
|
164
|
+
pk: {
|
|
165
|
+
field: "GSI3PK",
|
|
166
|
+
composite: ["tenantId", "workspaceId", "facilityId"],
|
|
167
|
+
template: "TID#${tenantId}#WID#${workspaceId}#FAC#${facilityId}",
|
|
168
|
+
},
|
|
169
|
+
sk: {
|
|
170
|
+
field: "GSI3SK",
|
|
171
|
+
composite: ["id", "normalizedName"],
|
|
172
|
+
template: "TYPE#PATIENT#PAT#${id}#NAME#${normalizedName}",
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
/** GSI4 — Resource Type Index: list all Patients in workspace (no scan). */
|
|
176
|
+
gsi4: {
|
|
177
|
+
index: "GSI4",
|
|
178
|
+
condition: () => true,
|
|
179
|
+
pk: {
|
|
180
|
+
field: "GSI4PK",
|
|
181
|
+
composite: ["tenantId", "workspaceId"],
|
|
182
|
+
template: "TID#${tenantId}#WID#${workspaceId}#RT#Patient",
|
|
183
|
+
},
|
|
184
|
+
sk: {
|
|
185
|
+
field: "GSI4SK",
|
|
186
|
+
composite: ["id"],
|
|
187
|
+
template: "ID#${id}",
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF0aWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhL2R5bmFtby9laHIvcjQvUGF0aWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBbUM7QUFFbkM7Ozs7Ozs7O0dBUUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxJQUFJLGtCQUFNLENBQUM7SUFDaEMsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLFNBQVM7UUFDakIsT0FBTyxFQUFFLE1BQU07UUFDZixPQUFPLEVBQUUsSUFBSTtLQUNkO0lBQ0QsVUFBVSxFQUFFO1FBQ1Ysc0VBQXNFO1FBQ3RFLEVBQUUsRUFBRTtZQUNGLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsU0FBUztTQUNuQjtRQUNELFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELGtEQUFrRDtRQUNsRCxFQUFFLEVBQUU7WUFDRixJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEsRUFBRSxJQUFJO1NBQ2Y7UUFDRCwwR0FBMEc7UUFDMUcsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNmO1FBQ0Qsc0VBQXNFO1FBQ3RFLEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLEtBQUs7U0FDaEI7UUFDRCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEs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VSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7Z0JBQ3BELFFBQVEsRUFBRSxzREFBc0Q7YUFDakU7WUFDRCxFQUFFLEVBQUU7Z0JBQ0YsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDO2dCQUNuQyxRQUFRLEVBQUUsK0NBQStDO2FBQzFEO1NBQ0Y7UUFDRCw0RUFBNEU7UUFDNUUsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUNyQixFQUFFLEVBQUU7Z0JBQ0YsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztnQkFDdEMsUUFBUSxFQUFFLCtDQUErQzthQUMxRDtZQUNELEVBQUUsRUFBRTtnQkFDRixLQUFLLEVBQUUsUUFBUTtnQkFDZixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxVQUFVO2FBQ3JCO1NBQ0Y7S0FDRjtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSB9IGZyb20gXCJlbGVjdHJvZGJcIjtcblxuLyoqXG4gKiBQYXRpZW50IGRhdGEtc3RvcmUgZW50aXR5IGJhc2VkIG9uIEZISVIgKHNpbmdsZS10YWJsZSBzdG9yZSkuXG4gKlxuICogS2V5IHN0cnVjdHVyZTogUEsgPSBUSUQjPHRlbmFudElkPiNXSUQjPHdvcmtzcGFjZUlkPiNSVCNQYXRpZW50I0lEIzxpZD4sIFNLID0gQ1VSUkVOVC5cbiAqIFN0YW5kYXJkIGF0dHJpYnV0ZXMgKEZISVIgc291cmNlIGFuZCBlbnRpdHkgcHVycG9zZSkgYXJlIGRvY3VtZW50ZWQgaW4gdGhlIERhdGEtU3RvcmUgRW50aXR5IFN0YW5kYXJkcyAoRkhJUikuXG4gKlxuICogQHNlZSBzaXRlcy93d3ctZG9jcy9jb250ZW50L3JlZmVyZW5jZS9kYXRhLXN0b3JlLWVudGl0aWVzLm1kIOKAlCBTdGFuZGFyZCBhdHRyaWJ1dGVzIChhbGwgRkhJUiBkb21haW4gcmVzb3VyY2VzKVxuICogQHNlZSBzaXRlcy93d3ctZG9jcy9jb250ZW50L2FyY2hpdGVjdHVyZS9keW5hbW9kYi1zaW5nbGUtdGFibGUtZGVzaWduLm1kXG4gKi9cbmV4cG9ydCBjb25zdCBQYXRpZW50ID0gbmV3IEVudGl0eSh7XG4gIG1vZGVsOiB7XG4gICAgZW50aXR5OiBcInBhdGllbnRcIixcbiAgICBzZXJ2aWNlOiBcImZoaXJcIixcbiAgICB2ZXJzaW9uOiBcIjAxXCIsXG4gIH0sXG4gIGF0dHJpYnV0ZXM6IHtcbiAgICAvKiogU29ydCBrZXkuIFwiQ1VSUkVOVFwiIGZvciBjdXJyZW50IHZlcnNpb247IHZlcnNpb24gaGlzdG9yeSBpbiBTMy4gKi9cbiAgICBzazoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgZGVmYXVsdDogXCJDVVJSRU5UXCIsXG4gICAgfSxcbiAgICB0ZW5hbnRJZDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgd29ya3NwYWNlSWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIC8qKiBGSElSIFJlc291cmNlLmlkOyBsb2dpY2FsIGlkIGluIFVSTCBhbmQgUEsuICovXG4gICAgaWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIC8qKiBGSElSIHJlc291cmNlIGFzIEpTT04gc3RyaW5nLiBKU09OLnN0cmluZ2lmeShyZXNvdXJjZSkgb24gd3JpdGU7IEpTT04ucGFyc2UoaXRlbS5yZXNvdXJjZSkgb24gcmVhZC4gKi9cbiAgICByZXNvdXJjZToge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgLyoqIFZlcnNpb24gaWQgKGUuZy4gVUxJRCkuIFRyYWNrcyBjdXJyZW50IHZlcnNpb247IFMzIGhpc3Rvcnkga2V5LiAqL1xuICAgIHZpZDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgbGFzdFVwZGF0ZWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGRlbGV0ZWQ6IHtcbiAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgYnVuZGxlSWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICBtc2dJZDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIC8vIEF1ZGl0IGlzIGluIEZISVIgcmVzb3VyY2UgbWV0YSAobWV0YS5leHRlbnNpb24pLCBub3QgaXRlbSBhdHRyaWJ1dGVzLiBTZWUgZGF0YS1zdG9yZS1lbnRpdGllcy5tZC5cbiAgICAvLyAtLS0gR1NJMiAoSWRlbnRpZmllciBMb29rdXApOiBvcHRpb25hbDsgc2V0IHdoZW4gaW5kZXhpbmcgdGhpcyBwYXRpZW50IGJ5IGlkZW50aWZpZXIgKGUuZy4gTVJOKVxuICAgIC8qKiBJZGVudGlmaWVyIHN5c3RlbSAoZS5nLiBNUk4gc3lzdGVtIFVSSSkuIFdoZW4gc2V0IHdpdGggaWRlbnRpZmllclZhbHVlLCBpdGVtIGlzIHdyaXR0ZW4gdG8gR1NJMi4gKi9cbiAgICBpZGVudGlmaWVyU3lzdGVtOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgLyoqIElkZW50aWZpZXIgdmFsdWUgKGUuZy4gTVJOKS4gV2hlbiBzZXQgd2l0aCBpZGVudGlmaWVyU3lzdGVtLCBpdGVtIGlzIHdyaXR0ZW4gdG8gR1NJMi4gKi9cbiAgICBpZGVudGlmaWVyVmFsdWU6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICAvKiogRm9yIEdTSTIvR1NJMyBwcm9qZWN0aW9uOiBiYXNlIHRhYmxlIFBLL1NLIHNvIEdldEl0ZW0gY2FuIGJlIHVzZWQgYWZ0ZXIgcXVlcnkuICovXG4gICAgcmVzb3VyY2VQazoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIHJlc291cmNlU2s6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICAvKiogRm9yIEdTSTIgcHJvamVjdGlvbjogZGlzcGxheSBuYW1lIGZvciByb3N0ZXIvbG9va3VwLiAqL1xuICAgIGRpc3BsYXk6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICAvKiogRm9yIEdTSTIgcHJvamVjdGlvbjogcmVzb3VyY2Ugc3RhdHVzIGlmIGFwcGxpY2FibGUuICovXG4gICAgc3RhdHVzOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgLy8gLS0tIEdTSTMgKEZhY2lsaXR5IE9wcyk6IG9wdGlvbmFsOyBzZXQgd2hlbiBpbmRleGluZyB0aGlzIHBhdGllbnQgb24gYSBmYWNpbGl0eSByb3N0ZXJcbiAgICAvKiogRmFjaWxpdHkgaWQuIFdoZW4gc2V0IHdpdGggbm9ybWFsaXplZE5hbWUsIGl0ZW0gaXMgd3JpdHRlbiB0byBHU0kzLiAqL1xuICAgIGZhY2lsaXR5SWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICAvKiogTm9ybWFsaXplZCBkaXNwbGF5IG5hbWUgZm9yIHJvc3RlciBzb3J0LiBXaGVuIHNldCB3aXRoIGZhY2lsaXR5SWQsIGl0ZW0gaXMgd3JpdHRlbiB0byBHU0kzLiAqL1xuICAgIG5vcm1hbGl6ZWROYW1lOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gIH0sXG4gIGluZGV4ZXM6IHtcbiAgICAvKiogQmFzZSB0YWJsZTogUEssIFNLIChkYXRhIHN0b3JlIGtleSBuYW1lcykuIFBLIGlzIGJ1aWx0IGZyb20gdGVuYW50SWQsIHdvcmtzcGFjZUlkLCBpZDsgZG8gbm90IHN1cHBseSBQSyBmcm9tIG91dHNpZGUuICovXG4gICAgcmVjb3JkOiB7XG4gICAgICBwazoge1xuICAgICAgICBmaWVsZDogXCJQS1wiLFxuICAgICAgICBjb21wb3NpdGU6IFtcInRlbmFudElkXCIsIFwid29ya3NwYWNlSWRcIiwgXCJpZFwiXSxcbiAgICAgICAgdGVtcGxhdGU6IFwiVElEIyR7dGVuYW50SWR9I1dJRCMke3dvcmtzcGFjZUlkfSNSVCNQYXRpZW50I0lEIyR7aWR9XCIsXG4gICAgICB9LFxuICAgICAgc2s6IHtcbiAgICAgICAgZmllbGQ6IFwiU0tcIixcbiAgICAgICAgY29tcG9zaXRlOiBbXCJza1wiXSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEdTSTEg4oCUIFJldmVyc2UgUmVmZXJlbmNlOiBxdWVyeSBcIndoYXQgcmVmZXJlbmNlcyB0aGlzIHBhdGllbnQ/XCIuXG4gICAgICogUGF0aWVudCBpdGVtcyBhcmUgbmV2ZXIgd3JpdHRlbiB0byBHU0kxIChjb25kaXRpb246IGZhbHNlKTsgcmVmZXJlbmNlIGluZGV4IGl0ZW1zXG4gICAgICogYXJlIHdyaXR0ZW4gYnkgb3RoZXIgcmVzb3VyY2VzLiBUaGlzIGluZGV4IGVuYWJsZXMgcXVlcnlpbmcgR1NJMSBieSBSRUZUTyNSVCNQYXRpZW50I0lEIzxpZD4uXG4gICAgICovXG4gICAgZ3NpMToge1xuICAgICAgaW5kZXg6IFwiR1NJMVwiLFxuICAgICAgY29uZGl0aW9uOiAoKSA9PiBmYWxzZSxcbiAgICAgIHBrOiB7XG4gICAgICAgIGZpZWxkOiBcIkdTSTFQS1wiLFxuICAgICAgICBjb21wb3NpdGU6IFtcInRlbmFudElkXCIsIFwid29ya3NwYWNlSWRcIiwgXCJpZFwiXSxcbiAgICAgICAgdGVtcGxhdGU6XG4gICAgICAgICAgXCJUSUQjJHt0ZW5hbnRJZH0jV0lEIyR7d29ya3NwYWNlSWR9I1JFRlRPI1JUI1BhdGllbnQjSUQjJHtpZH1cIixcbiAgICAgIH0sXG4gICAgICBzazoge1xuICAgICAgICBmaWVsZDogXCJHU0kxU0tcIixcbiAgICAgICAgY29tcG9zaXRlOiBbXSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIC8qKiBHU0kyIOKAlCBJZGVudGlmaWVyIExvb2t1cDogTVJOLCBOUEksIG1lbWJlciBJRCwgZXRjLiBLZXlzIGJ1aWx0IGZyb20gaWRlbnRpZmllciBjb21wb25lbnRzLiAqL1xuICAgIGdzaTI6IHtcbiAgICAgIGluZGV4OiBcIkdTSTJcIixcbiAgICAgIGNvbmRpdGlvbjogKGF0dHIpID0+XG4gICAgICAgIGF0dHIuaWRlbnRpZmllclN5c3RlbSAhPSBudWxsICYmIGF0dHIuaWRlbnRpZmllclZhbHVlICE9IG51bGwsXG4gICAgICBwazoge1xuICAgICAgICBmaWVsZDogXCJHU0kyUEtcIixcbiAgICAgICAgY29tcG9zaXRlOiBbXG4gICAgICAgICAgXCJ0ZW5hbnRJZFwiLFxuICAgICAgICAgIFwid29ya3NwYWNlSWRcIixcbiAgICAgICAgICBcImlkZW50aWZpZXJTeXN0ZW1cIixcbiAgICAgICAgICBcImlkZW50aWZpZXJWYWx1ZVwiLFxuICAgICAgICBdLFxuICAgICAgICB0ZW1wbGF0ZTpcbiAgICAgICAgICBcIlRJRCMke3RlbmFudElkfSNXSUQjJHt3b3Jrc3BhY2VJZH0jSURFTlQjJHtpZGVudGlmaWVyU3lzdGVtfSMke2lkZW50aWZpZXJWYWx1ZX1cIixcbiAgICAgIH0sXG4gICAgICBzazoge1xuICAgICAgICBmaWVsZDogXCJHU0kyU0tcIixcbiAgICAgICAgY29tcG9zaXRlOiBbXCJpZFwiXSxcbiAgICAgICAgdGVtcGxhdGU6IFwiUlQjUGF0aWVudCNJRCMke2lkfVwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIC8qKiBHU0kzIOKAlCBGYWNpbGl0eSBPcHM6IGZhY2lsaXR5IHJvc3Rlciwgd29ya2xpc3RzLiBLZXlzIGJ1aWx0IGZyb20gZmFjaWxpdHkgKyBuYW1lLiAqL1xuICAgIGdzaTM6IHtcbiAgICAgIGluZGV4OiBcIkdTSTNcIixcbiAgICAgIGNvbmRpdGlvbjogKGF0dHIpID0+XG4gICAgICAgIGF0dHIuZmFjaWxpdHlJZCAhPSBudWxsICYmIGF0dHIubm9ybWFsaXplZE5hbWUgIT0gbnVsbCxcbiAgICAgIHBrOiB7XG4gICAgICAgIGZpZWxkOiBcIkdTSTNQS1wiLFxuICAgICAgICBjb21wb3NpdGU6IFtcInRlbmFudElkXCIsIFwid29ya3NwYWNlSWRcIiwgXCJmYWNpbGl0eUlkXCJdLFxuICAgICAgICB0ZW1wbGF0ZTogXCJUSUQjJHt0ZW5hbnRJZH0jV0lEIyR7d29ya3NwYWNlSWR9I0ZBQyMke2ZhY2lsaXR5SWR9XCIsXG4gICAgICB9LFxuICAgICAgc2s6IHtcbiAgICAgICAgZmllbGQ6IFwiR1NJM1NLXCIsXG4gICAgICAgIGNvbXBvc2l0ZTogW1wiaWRcIiwgXCJub3JtYWxpemVkTmFtZVwiXSxcbiAgICAgICAgdGVtcGxhdGU6IFwiVFlQRSNQQVRJRU5UI1BBVCMke2lkfSNOQU1FIyR7bm9ybWFsaXplZE5hbWV9XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgLyoqIEdTSTQg4oCUIFJlc291cmNlIFR5cGUgSW5kZXg6IGxpc3QgYWxsIFBhdGllbnRzIGluIHdvcmtzcGFjZSAobm8gc2NhbikuICovXG4gICAgZ3NpNDoge1xuICAgICAgaW5kZXg6IFwiR1NJNFwiLFxuICAgICAgY29uZGl0aW9uOiAoKSA9PiB0cnVlLFxuICAgICAgcGs6IHtcbiAgICAgICAgZmllbGQ6IFwiR1NJNFBLXCIsXG4gICAgICAgIGNvbXBvc2l0ZTogW1widGVuYW50SWRcIiwgXCJ3b3Jrc3BhY2VJZFwiXSxcbiAgICAgICAgdGVtcGxhdGU6IFwiVElEIyR7dGVuYW50SWR9I1dJRCMke3dvcmtzcGFjZUlkfSNSVCNQYXRpZW50XCIsXG4gICAgICB9LFxuICAgICAgc2s6IHtcbiAgICAgICAgZmllbGQ6IFwiR1NJNFNLXCIsXG4gICAgICAgIGNvbXBvc2l0ZTogW1wiaWRcIl0sXG4gICAgICAgIHRlbXBsYXRlOiBcIklEIyR7aWR9XCIsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Service } from "electrodb";
|
|
2
|
+
/**
|
|
3
|
+
* ElectroDB Service for the single-table data store. Provides access to Patient
|
|
4
|
+
* and other entities; use with the data store table (PK, SK, GSI1, GSI2, GSI3, GSI4).
|
|
5
|
+
*/
|
|
6
|
+
export declare const EhrR4DataService: Service<{
|
|
7
|
+
patient: import("electrodb").Entity<string, string, string, {
|
|
8
|
+
model: {
|
|
9
|
+
entity: string;
|
|
10
|
+
service: string;
|
|
11
|
+
version: string;
|
|
12
|
+
};
|
|
13
|
+
attributes: {
|
|
14
|
+
sk: {
|
|
15
|
+
type: "string";
|
|
16
|
+
required: true;
|
|
17
|
+
default: string;
|
|
18
|
+
};
|
|
19
|
+
tenantId: {
|
|
20
|
+
type: "string";
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
workspaceId: {
|
|
24
|
+
type: "string";
|
|
25
|
+
required: true;
|
|
26
|
+
};
|
|
27
|
+
id: {
|
|
28
|
+
type: "string";
|
|
29
|
+
required: true;
|
|
30
|
+
};
|
|
31
|
+
resource: {
|
|
32
|
+
type: "string";
|
|
33
|
+
required: true;
|
|
34
|
+
};
|
|
35
|
+
vid: {
|
|
36
|
+
type: "string";
|
|
37
|
+
required: true;
|
|
38
|
+
};
|
|
39
|
+
lastUpdated: {
|
|
40
|
+
type: "string";
|
|
41
|
+
required: true;
|
|
42
|
+
};
|
|
43
|
+
deleted: {
|
|
44
|
+
type: "boolean";
|
|
45
|
+
required: false;
|
|
46
|
+
};
|
|
47
|
+
bundleId: {
|
|
48
|
+
type: "string";
|
|
49
|
+
required: false;
|
|
50
|
+
};
|
|
51
|
+
msgId: {
|
|
52
|
+
type: "string";
|
|
53
|
+
required: false;
|
|
54
|
+
};
|
|
55
|
+
identifierSystem: {
|
|
56
|
+
type: "string";
|
|
57
|
+
required: false;
|
|
58
|
+
};
|
|
59
|
+
identifierValue: {
|
|
60
|
+
type: "string";
|
|
61
|
+
required: false;
|
|
62
|
+
};
|
|
63
|
+
resourcePk: {
|
|
64
|
+
type: "string";
|
|
65
|
+
required: false;
|
|
66
|
+
};
|
|
67
|
+
resourceSk: {
|
|
68
|
+
type: "string";
|
|
69
|
+
required: false;
|
|
70
|
+
};
|
|
71
|
+
display: {
|
|
72
|
+
type: "string";
|
|
73
|
+
required: false;
|
|
74
|
+
};
|
|
75
|
+
status: {
|
|
76
|
+
type: "string";
|
|
77
|
+
required: false;
|
|
78
|
+
};
|
|
79
|
+
facilityId: {
|
|
80
|
+
type: "string";
|
|
81
|
+
required: false;
|
|
82
|
+
};
|
|
83
|
+
normalizedName: {
|
|
84
|
+
type: "string";
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
indexes: {
|
|
89
|
+
record: {
|
|
90
|
+
pk: {
|
|
91
|
+
field: string;
|
|
92
|
+
composite: ("id" | "tenantId" | "workspaceId")[];
|
|
93
|
+
template: string;
|
|
94
|
+
};
|
|
95
|
+
sk: {
|
|
96
|
+
field: string;
|
|
97
|
+
composite: "sk"[];
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
gsi1: {
|
|
101
|
+
index: string;
|
|
102
|
+
condition: () => boolean;
|
|
103
|
+
pk: {
|
|
104
|
+
field: string;
|
|
105
|
+
composite: ("id" | "tenantId" | "workspaceId")[];
|
|
106
|
+
template: string;
|
|
107
|
+
};
|
|
108
|
+
sk: {
|
|
109
|
+
field: string;
|
|
110
|
+
composite: never[];
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
gsi2: {
|
|
114
|
+
index: string;
|
|
115
|
+
condition: (attr: Record<string, unknown>) => boolean;
|
|
116
|
+
pk: {
|
|
117
|
+
field: string;
|
|
118
|
+
composite: ("tenantId" | "workspaceId" | "identifierSystem" | "identifierValue")[];
|
|
119
|
+
template: string;
|
|
120
|
+
};
|
|
121
|
+
sk: {
|
|
122
|
+
field: string;
|
|
123
|
+
composite: "id"[];
|
|
124
|
+
template: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
gsi3: {
|
|
128
|
+
index: string;
|
|
129
|
+
condition: (attr: Record<string, unknown>) => boolean;
|
|
130
|
+
pk: {
|
|
131
|
+
field: string;
|
|
132
|
+
composite: ("tenantId" | "workspaceId" | "facilityId")[];
|
|
133
|
+
template: string;
|
|
134
|
+
};
|
|
135
|
+
sk: {
|
|
136
|
+
field: string;
|
|
137
|
+
composite: ("id" | "normalizedName")[];
|
|
138
|
+
template: string;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
gsi4: {
|
|
142
|
+
index: string;
|
|
143
|
+
condition: () => boolean;
|
|
144
|
+
pk: {
|
|
145
|
+
field: string;
|
|
146
|
+
composite: ("tenantId" | "workspaceId")[];
|
|
147
|
+
template: string;
|
|
148
|
+
};
|
|
149
|
+
sk: {
|
|
150
|
+
field: string;
|
|
151
|
+
composite: "id"[];
|
|
152
|
+
template: string;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
}>;
|
|
157
|
+
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Returns an ElectroDB Service for the data store using the given table name.
|
|
160
|
+
* Use in tests with a dedicated table (e.g. "data-store-test" in jest-dynalite).
|
|
161
|
+
*/
|
|
162
|
+
export declare function getEhrR4DataService(tableName: string): typeof EhrR4DataService;
|