@openhi/constructs 0.0.113 → 0.0.115
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/lib/chunk-AHYQFT4N.mjs +212 -0
- package/lib/chunk-AHYQFT4N.mjs.map +1 -0
- package/lib/{chunk-CUUKXDB2.mjs → chunk-AJQUWHFK.mjs} +460 -54
- package/lib/chunk-AJQUWHFK.mjs.map +1 -0
- package/lib/{chunk-GBDIGTNV.mjs → chunk-QWWLM452.mjs} +2 -2
- package/lib/{chunk-QMBJ4VHC.mjs → chunk-U7L7T4XU.mjs} +25 -25
- package/lib/{chunk-QMBJ4VHC.mjs.map → chunk-U7L7T4XU.mjs.map} +1 -1
- package/lib/{chunk-NZRW7ROK.mjs → chunk-YYRWDEG4.mjs} +2 -2
- package/lib/{chunk-KSFC72TT.mjs → chunk-ZHMHLK3S.mjs} +2 -2
- package/lib/{events-DPodvl07.d.mts → events-CMG8xanm.d.mts} +7 -53
- package/lib/{events-DPodvl07.d.ts → events-CMG8xanm.d.ts} +7 -53
- package/lib/index.d.mts +64 -77
- package/lib/index.d.ts +70 -129
- package/lib/index.js +499 -241
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +58 -184
- package/lib/index.mjs.map +1 -1
- package/lib/pre-token-generation.handler.mjs +3 -3
- package/lib/provision-default-workspace.handler.mjs +3 -3
- package/lib/rest-api-lambda.handler.mjs +282 -452
- package/lib/rest-api-lambda.handler.mjs.map +1 -1
- package/lib/seed-demo-data.handler.d.mts +6 -3
- package/lib/seed-demo-data.handler.d.ts +6 -3
- package/lib/seed-demo-data.handler.js +656 -0
- package/lib/seed-demo-data.handler.js.map +1 -1
- package/lib/seed-demo-data.handler.mjs +4 -4
- package/package.json +8 -8
- package/lib/chunk-53OHXLIL.mjs +0 -27
- package/lib/chunk-53OHXLIL.mjs.map +0 -1
- package/lib/chunk-CUUKXDB2.mjs.map +0 -1
- /package/lib/{chunk-GBDIGTNV.mjs.map → chunk-QWWLM452.mjs.map} +0 -0
- /package/lib/{chunk-NZRW7ROK.mjs.map → chunk-YYRWDEG4.mjs.map} +0 -0
- /package/lib/{chunk-KSFC72TT.mjs.map → chunk-ZHMHLK3S.mjs.map} +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createDataEntityRecord,
|
|
3
|
+
getDynamoDataService,
|
|
4
|
+
mergeAuditIntoMeta
|
|
5
|
+
} from "./chunk-U7L7T4XU.mjs";
|
|
6
|
+
import {
|
|
7
|
+
NotFoundError
|
|
8
|
+
} from "./chunk-FYHBHHWK.mjs";
|
|
9
|
+
import {
|
|
10
|
+
getDynamoControlService
|
|
11
|
+
} from "./chunk-6NBGYGFL.mjs";
|
|
12
|
+
|
|
13
|
+
// src/data/operations/control/role/role-get-by-id-operation.ts
|
|
14
|
+
async function getRoleByIdOperation(params) {
|
|
15
|
+
const { id, tableName } = params;
|
|
16
|
+
const service = getDynamoControlService(tableName);
|
|
17
|
+
const response = await service.entities.role.get({ id, sk: "CURRENT" }).go();
|
|
18
|
+
const item = response.data;
|
|
19
|
+
if (!item) {
|
|
20
|
+
throw new NotFoundError(`Role not found: ${id}`);
|
|
21
|
+
}
|
|
22
|
+
const parsedResource = JSON.parse(item.resource);
|
|
23
|
+
return {
|
|
24
|
+
id,
|
|
25
|
+
resource: { resourceType: "Role", id, ...parsedResource }
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// src/data/operations/data/account/account-create-operation.ts
|
|
30
|
+
import { ulid } from "ulid";
|
|
31
|
+
async function createAccountOperation(params) {
|
|
32
|
+
const { context, body, tableName } = params;
|
|
33
|
+
const { tenantId, workspaceId, date, actorId, actorName } = context;
|
|
34
|
+
const id = body.id ?? ulid();
|
|
35
|
+
const meta = {
|
|
36
|
+
...body.meta ?? {},
|
|
37
|
+
lastUpdated: date,
|
|
38
|
+
versionId: "1"
|
|
39
|
+
};
|
|
40
|
+
const accountWithAudit = {
|
|
41
|
+
...body,
|
|
42
|
+
resourceType: "Account",
|
|
43
|
+
id,
|
|
44
|
+
meta: mergeAuditIntoMeta(meta, {
|
|
45
|
+
createdDate: date,
|
|
46
|
+
createdById: actorId,
|
|
47
|
+
createdByName: actorName,
|
|
48
|
+
modifiedDate: date,
|
|
49
|
+
modifiedById: actorId,
|
|
50
|
+
modifiedByName: actorName
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
const service = getDynamoDataService(tableName);
|
|
54
|
+
return createDataEntityRecord(
|
|
55
|
+
service.entities.account,
|
|
56
|
+
tenantId,
|
|
57
|
+
workspaceId,
|
|
58
|
+
id,
|
|
59
|
+
accountWithAudit,
|
|
60
|
+
date
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// src/data/operations/data/encounter/encounter-create-operation.ts
|
|
65
|
+
import { ulid as ulid2 } from "ulid";
|
|
66
|
+
async function createEncounterOperation(params) {
|
|
67
|
+
const { context, body, tableName } = params;
|
|
68
|
+
const { tenantId, workspaceId, date, actorId, actorName } = context;
|
|
69
|
+
const id = body.id ?? ulid2();
|
|
70
|
+
const meta = {
|
|
71
|
+
...body.meta ?? {},
|
|
72
|
+
lastUpdated: date,
|
|
73
|
+
versionId: "1"
|
|
74
|
+
};
|
|
75
|
+
const encounterWithAudit = {
|
|
76
|
+
...body,
|
|
77
|
+
resourceType: "Encounter",
|
|
78
|
+
id,
|
|
79
|
+
meta: mergeAuditIntoMeta(meta, {
|
|
80
|
+
createdDate: date,
|
|
81
|
+
createdById: actorId,
|
|
82
|
+
createdByName: actorName,
|
|
83
|
+
modifiedDate: date,
|
|
84
|
+
modifiedById: actorId,
|
|
85
|
+
modifiedByName: actorName
|
|
86
|
+
})
|
|
87
|
+
};
|
|
88
|
+
const service = getDynamoDataService(tableName);
|
|
89
|
+
return createDataEntityRecord(
|
|
90
|
+
service.entities.encounter,
|
|
91
|
+
tenantId,
|
|
92
|
+
workspaceId,
|
|
93
|
+
id,
|
|
94
|
+
encounterWithAudit,
|
|
95
|
+
date
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// src/data/operations/data/observation/observation-create-operation.ts
|
|
100
|
+
import { ulid as ulid3 } from "ulid";
|
|
101
|
+
async function createObservationOperation(params) {
|
|
102
|
+
const { context, body, tableName } = params;
|
|
103
|
+
const { tenantId, workspaceId, date, actorId, actorName } = context;
|
|
104
|
+
const id = body.id ?? ulid3();
|
|
105
|
+
const meta = {
|
|
106
|
+
...body.meta ?? {},
|
|
107
|
+
lastUpdated: date,
|
|
108
|
+
versionId: "1"
|
|
109
|
+
};
|
|
110
|
+
const resourceWithAudit = {
|
|
111
|
+
...body,
|
|
112
|
+
resourceType: "Observation",
|
|
113
|
+
id,
|
|
114
|
+
meta: mergeAuditIntoMeta(meta, {
|
|
115
|
+
createdDate: date,
|
|
116
|
+
createdById: actorId,
|
|
117
|
+
createdByName: actorName,
|
|
118
|
+
modifiedDate: date,
|
|
119
|
+
modifiedById: actorId,
|
|
120
|
+
modifiedByName: actorName
|
|
121
|
+
})
|
|
122
|
+
};
|
|
123
|
+
const service = getDynamoDataService(tableName);
|
|
124
|
+
return createDataEntityRecord(
|
|
125
|
+
service.entities.observation,
|
|
126
|
+
tenantId,
|
|
127
|
+
workspaceId,
|
|
128
|
+
id,
|
|
129
|
+
resourceWithAudit,
|
|
130
|
+
date
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// src/data/operations/data/patient/patient-create-operation.ts
|
|
135
|
+
import { ulid as ulid4 } from "ulid";
|
|
136
|
+
async function createPatientOperation(params) {
|
|
137
|
+
const { context, body, tableName } = params;
|
|
138
|
+
const { tenantId, workspaceId, date, actorId, actorName } = context;
|
|
139
|
+
const id = body.id ?? ulid4();
|
|
140
|
+
const meta = {
|
|
141
|
+
...body.meta ?? {},
|
|
142
|
+
lastUpdated: date,
|
|
143
|
+
versionId: "1"
|
|
144
|
+
};
|
|
145
|
+
const patientWithAudit = {
|
|
146
|
+
...body,
|
|
147
|
+
resourceType: "Patient",
|
|
148
|
+
id,
|
|
149
|
+
meta: mergeAuditIntoMeta(meta, {
|
|
150
|
+
createdDate: date,
|
|
151
|
+
createdById: actorId,
|
|
152
|
+
createdByName: actorName,
|
|
153
|
+
modifiedDate: date,
|
|
154
|
+
modifiedById: actorId,
|
|
155
|
+
modifiedByName: actorName
|
|
156
|
+
})
|
|
157
|
+
};
|
|
158
|
+
const service = getDynamoDataService(tableName);
|
|
159
|
+
return createDataEntityRecord(
|
|
160
|
+
service.entities.patient,
|
|
161
|
+
tenantId,
|
|
162
|
+
workspaceId,
|
|
163
|
+
id,
|
|
164
|
+
patientWithAudit,
|
|
165
|
+
date
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// src/data/operations/data/practitioner/practitioner-create-operation.ts
|
|
170
|
+
import { ulid as ulid5 } from "ulid";
|
|
171
|
+
async function createPractitionerOperation(params) {
|
|
172
|
+
const { context, body, tableName } = params;
|
|
173
|
+
const { tenantId, workspaceId, date, actorId, actorName } = context;
|
|
174
|
+
const id = body.id ?? ulid5();
|
|
175
|
+
const meta = {
|
|
176
|
+
...body.meta ?? {},
|
|
177
|
+
lastUpdated: date,
|
|
178
|
+
versionId: "1"
|
|
179
|
+
};
|
|
180
|
+
const practitionerWithAudit = {
|
|
181
|
+
...body,
|
|
182
|
+
resourceType: "Practitioner",
|
|
183
|
+
id,
|
|
184
|
+
meta: mergeAuditIntoMeta(meta, {
|
|
185
|
+
createdDate: date,
|
|
186
|
+
createdById: actorId,
|
|
187
|
+
createdByName: actorName,
|
|
188
|
+
modifiedDate: date,
|
|
189
|
+
modifiedById: actorId,
|
|
190
|
+
modifiedByName: actorName
|
|
191
|
+
})
|
|
192
|
+
};
|
|
193
|
+
const service = getDynamoDataService(tableName);
|
|
194
|
+
return createDataEntityRecord(
|
|
195
|
+
service.entities.practitioner,
|
|
196
|
+
tenantId,
|
|
197
|
+
workspaceId,
|
|
198
|
+
id,
|
|
199
|
+
practitionerWithAudit,
|
|
200
|
+
date
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export {
|
|
205
|
+
getRoleByIdOperation,
|
|
206
|
+
createAccountOperation,
|
|
207
|
+
createEncounterOperation,
|
|
208
|
+
createObservationOperation,
|
|
209
|
+
createPatientOperation,
|
|
210
|
+
createPractitionerOperation
|
|
211
|
+
};
|
|
212
|
+
//# sourceMappingURL=chunk-AHYQFT4N.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/data/operations/control/role/role-get-by-id-operation.ts","../src/data/operations/data/account/account-create-operation.ts","../src/data/operations/data/encounter/encounter-create-operation.ts","../src/data/operations/data/observation/observation-create-operation.ts","../src/data/operations/data/patient/patient-create-operation.ts","../src/data/operations/data/practitioner/practitioner-create-operation.ts"],"sourcesContent":["import { getDynamoControlService } from \"../../../dynamo/dynamo-control-service\";\nimport { NotFoundError } from \"../../../errors\";\nimport { OpenHiContext } from \"../../../openhi-context\";\n\nexport interface RoleGetByIdParams {\n context: OpenHiContext;\n id: string;\n tableName?: string;\n}\n\nexport interface RoleGetByIdResult {\n id: string;\n resource: { resourceType: string; id: string; [key: string]: unknown };\n}\n\nexport async function getRoleByIdOperation(\n params: RoleGetByIdParams,\n): Promise<RoleGetByIdResult> {\n const { id, tableName } = params;\n const service = getDynamoControlService(tableName);\n\n const response = await service.entities.role.get({ id, sk: \"CURRENT\" }).go();\n\n const item = response.data;\n if (!item) {\n throw new NotFoundError(`Role not found: ${id}`);\n }\n\n const parsedResource = JSON.parse(item.resource) as Record<string, unknown>;\n\n return {\n id,\n resource: { resourceType: \"Role\", id, ...parsedResource },\n };\n}\n","import type { Account, Meta } from \"@openhi/types\";\nimport { ulid } from \"ulid\";\nimport {\n mergeAuditIntoMeta,\n type MetaWithExtensions,\n} from \"../../../audit-meta\";\nimport { getDynamoDataService } from \"../../../dynamo/dynamo-data-service\";\nimport type { OpenHiContext } from \"../../../openhi-context\";\nimport {\n createDataEntityRecord,\n type SingleResourceResult,\n} from \"../../data-operations-common\";\n\n/**\n * Create an Account. Accepts FHIR-like body and OpenHI context; returns created resource.\n *\n * @see sites/www-docs/content/packages/@openhi/constructs/data/shared-data-layer-layout.md\n */\nexport interface CreateAccountParams {\n context: OpenHiContext;\n /** FHIR Account body (resourceType, id optional, meta optional). */\n body: Account;\n /** Optional table name override; resolved by data service from DYNAMO_TABLE_NAME when omitted. */\n tableName?: string;\n}\n\nexport type CreateAccountResult = SingleResourceResult<Account>;\n\n/**\n * Creates an Account. Builds put attrs with audit in meta, then ElectroDB put.\n * Throws on service/validation errors; adapters map to HTTP/GraphQL.\n */\nexport async function createAccountOperation(\n params: CreateAccountParams,\n): Promise<CreateAccountResult> {\n const { context, body, tableName } = params;\n const { tenantId, workspaceId, date, actorId, actorName } = context;\n const id = body.id ?? ulid();\n\n const meta: Meta = {\n ...(body.meta ?? {}),\n lastUpdated: date,\n versionId: \"1\",\n };\n\n const accountWithAudit: Account & {\n id: string;\n meta: MetaWithExtensions;\n } = {\n ...body,\n resourceType: \"Account\",\n id,\n meta: mergeAuditIntoMeta(meta, {\n createdDate: date,\n createdById: actorId,\n createdByName: actorName,\n modifiedDate: date,\n modifiedById: actorId,\n modifiedByName: actorName,\n }),\n };\n\n const service = getDynamoDataService(tableName);\n return createDataEntityRecord<Account>(\n service.entities.account as Parameters<typeof createDataEntityRecord>[0],\n tenantId,\n workspaceId,\n id,\n accountWithAudit,\n date,\n );\n}\n","import type { Encounter, Meta } from \"@openhi/types\";\nimport { ulid } from \"ulid\";\nimport {\n mergeAuditIntoMeta,\n type MetaWithExtensions,\n} from \"../../../audit-meta\";\nimport { getDynamoDataService } from \"../../../dynamo/dynamo-data-service\";\nimport type { OpenHiContext } from \"../../../openhi-context\";\nimport {\n createDataEntityRecord,\n type SingleResourceResult,\n} from \"../../data-operations-common\";\n\n/**\n * Create an Encounter. Accepts FHIR-like body and OpenHI context; returns created resource.\n *\n * @see sites/www-docs/content/packages/@openhi/constructs/data/shared-data-layer-layout.md\n * @see sites/www-docs/content/packages/@openhi/constructs/data/dynamo/entities/encounter.md\n */\nexport interface CreateEncounterParams {\n context: OpenHiContext;\n /** FHIR Encounter body (resourceType, id optional, meta optional). */\n body: Encounter;\n /** Optional table name override; resolved by data service from DYNAMO_TABLE_NAME when omitted. */\n tableName?: string;\n}\n\nexport type CreateEncounterResult = SingleResourceResult<Encounter>;\n\n/**\n * Creates an Encounter. Builds put attrs with audit in meta, then ElectroDB put.\n * Throws on service/validation errors; adapters map to HTTP/GraphQL.\n */\nexport async function createEncounterOperation(\n params: CreateEncounterParams,\n): Promise<CreateEncounterResult> {\n const { context, body, tableName } = params;\n const { tenantId, workspaceId, date, actorId, actorName } = context;\n const id = body.id ?? ulid();\n\n const meta: Meta = {\n ...(body.meta ?? {}),\n lastUpdated: date,\n versionId: \"1\",\n };\n\n const encounterWithAudit: Encounter & {\n id: string;\n meta: MetaWithExtensions;\n } = {\n ...body,\n resourceType: \"Encounter\",\n id,\n meta: mergeAuditIntoMeta(meta, {\n createdDate: date,\n createdById: actorId,\n createdByName: actorName,\n modifiedDate: date,\n modifiedById: actorId,\n modifiedByName: actorName,\n }),\n };\n\n const service = getDynamoDataService(tableName);\n return createDataEntityRecord<Encounter>(\n service.entities.encounter as Parameters<typeof createDataEntityRecord>[0],\n tenantId,\n workspaceId,\n id,\n encounterWithAudit,\n date,\n );\n}\n","import type { Observation, Meta } from \"@openhi/types\";\nimport { ulid } from \"ulid\";\nimport {\n mergeAuditIntoMeta,\n type MetaWithExtensions,\n} from \"../../../audit-meta\";\nimport { getDynamoDataService } from \"../../../dynamo/dynamo-data-service\";\nimport type { OpenHiContext } from \"../../../openhi-context\";\nimport {\n createDataEntityRecord,\n type SingleResourceResult,\n} from \"../../data-operations-common\";\n\n/**\n * Create a Observation. Accepts FHIR-like body and OpenHI context; returns created resource.\n *\n * @see sites/www-docs/content/packages/@openhi/constructs/data/shared-data-layer-layout.md\n */\nexport interface CreateObservationParams {\n context: OpenHiContext;\n /** FHIR Observation body (resourceType, id optional, meta optional). */\n body: Observation;\n /** Optional table name override; resolved by data service from DYNAMO_TABLE_NAME when omitted. */\n tableName?: string;\n}\n\nexport type CreateObservationResult = SingleResourceResult<Observation>;\n\n/**\n * Creates a Observation. Builds put attrs with audit in meta, then ElectroDB put.\n * Throws on service/validation errors; adapters map to HTTP/GraphQL.\n */\nexport async function createObservationOperation(\n params: CreateObservationParams,\n): Promise<CreateObservationResult> {\n const { context, body, tableName } = params;\n const { tenantId, workspaceId, date, actorId, actorName } = context;\n const id = body.id ?? ulid();\n\n const meta: Meta = {\n ...(body.meta ?? {}),\n lastUpdated: date,\n versionId: \"1\",\n };\n\n const resourceWithAudit: Observation & {\n id: string;\n meta: MetaWithExtensions;\n } = {\n ...body,\n resourceType: \"Observation\",\n id,\n meta: mergeAuditIntoMeta(meta, {\n createdDate: date,\n createdById: actorId,\n createdByName: actorName,\n modifiedDate: date,\n modifiedById: actorId,\n modifiedByName: actorName,\n }),\n };\n\n const service = getDynamoDataService(tableName);\n return createDataEntityRecord<Observation>(\n service.entities.observation as Parameters<\n typeof createDataEntityRecord\n >[0],\n tenantId,\n workspaceId,\n id,\n resourceWithAudit,\n date,\n );\n}\n","import type { Meta, Patient } from \"@openhi/types\";\nimport { ulid } from \"ulid\";\nimport {\n mergeAuditIntoMeta,\n type MetaWithExtensions,\n} from \"../../../audit-meta\";\nimport { getDynamoDataService } from \"../../../dynamo/dynamo-data-service\";\nimport type { OpenHiContext } from \"../../../openhi-context\";\nimport {\n createDataEntityRecord,\n type SingleResourceResult,\n} from \"../../data-operations-common\";\n\n/**\n * Create a Patient. Accepts FHIR-like body and OpenHI context; returns created resource.\n *\n * @see sites/www-docs/content/packages/@openhi/constructs/data/shared-data-layer-layout.md\n * @see sites/www-docs/content/packages/@openhi/constructs/data/operations/patient/patient-create.md\n */\nexport interface CreatePatientParams {\n context: OpenHiContext;\n /** FHIR Patient body (resourceType, id optional, meta optional). */\n body: Patient;\n /** Optional table name override; resolved by data service from DYNAMO_TABLE_NAME when omitted. */\n tableName?: string;\n}\n\nexport type CreatePatientResult = SingleResourceResult<Patient>;\n\n/**\n * Creates a Patient. Builds put attrs with audit in meta, then ElectroDB put.\n * Throws on service/validation errors; adapters map to HTTP/GraphQL.\n */\nexport async function createPatientOperation(\n params: CreatePatientParams,\n): Promise<CreatePatientResult> {\n const { context, body, tableName } = params;\n const { tenantId, workspaceId, date, actorId, actorName } = context;\n const id = body.id ?? ulid();\n\n const meta: Meta = {\n ...(body.meta ?? {}),\n lastUpdated: date,\n versionId: \"1\",\n };\n\n const patientWithAudit: Patient & {\n id: string;\n meta: MetaWithExtensions;\n } = {\n ...body,\n resourceType: \"Patient\",\n id,\n meta: mergeAuditIntoMeta(meta, {\n createdDate: date,\n createdById: actorId,\n createdByName: actorName,\n modifiedDate: date,\n modifiedById: actorId,\n modifiedByName: actorName,\n }),\n };\n\n const service = getDynamoDataService(tableName);\n return createDataEntityRecord<Patient>(\n service.entities.patient as Parameters<typeof createDataEntityRecord>[0],\n tenantId,\n workspaceId,\n id,\n patientWithAudit,\n date,\n );\n}\n","import type { Meta, Practitioner } from \"@openhi/types\";\nimport { ulid } from \"ulid\";\nimport {\n mergeAuditIntoMeta,\n type MetaWithExtensions,\n} from \"../../../audit-meta\";\nimport { getDynamoDataService } from \"../../../dynamo/dynamo-data-service\";\nimport type { OpenHiContext } from \"../../../openhi-context\";\nimport {\n createDataEntityRecord,\n type SingleResourceResult,\n} from \"../../data-operations-common\";\n\n/**\n * Create a Practitioner. Accepts FHIR-like body and OpenHI context; returns created resource.\n *\n * @see sites/www-docs/content/packages/@openhi/constructs/data/shared-data-layer-layout.md\n * @see sites/www-docs/content/packages/@openhi/constructs/data/dynamo/entities/practitioner.md\n */\nexport interface CreatePractitionerParams {\n context: OpenHiContext;\n /** FHIR Practitioner body (resourceType, id optional, meta optional). */\n body: Practitioner;\n /** Optional table name override; resolved by data service from DYNAMO_TABLE_NAME when omitted. */\n tableName?: string;\n}\n\nexport type CreatePractitionerResult = SingleResourceResult<Practitioner>;\n\n/**\n * Creates a Practitioner. Builds put attrs with audit in meta, then ElectroDB put.\n * Throws on service/validation errors; adapters map to HTTP/GraphQL.\n */\nexport async function createPractitionerOperation(\n params: CreatePractitionerParams,\n): Promise<CreatePractitionerResult> {\n const { context, body, tableName } = params;\n const { tenantId, workspaceId, date, actorId, actorName } = context;\n const id = body.id ?? ulid();\n\n const meta: Meta = {\n ...(body.meta ?? {}),\n lastUpdated: date,\n versionId: \"1\",\n };\n\n const practitionerWithAudit: Practitioner & {\n id: string;\n meta: MetaWithExtensions;\n } = {\n ...body,\n resourceType: \"Practitioner\",\n id,\n meta: mergeAuditIntoMeta(meta, {\n createdDate: date,\n createdById: actorId,\n createdByName: actorName,\n modifiedDate: date,\n modifiedById: actorId,\n modifiedByName: actorName,\n }),\n };\n\n const service = getDynamoDataService(tableName);\n return createDataEntityRecord<Practitioner>(\n service.entities.practitioner as Parameters<\n typeof createDataEntityRecord\n >[0],\n tenantId,\n workspaceId,\n id,\n practitionerWithAudit,\n date,\n );\n}\n"],"mappings":"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","names":["ulid","ulid","ulid","ulid","ulid","ulid","ulid","ulid"]}
|