@digitalmedika/satusehat 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.
Files changed (44) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +135 -0
  3. package/dist/builders/cbc-panel-builder.d.ts +18 -0
  4. package/dist/builders/laboratory-panel-builder.d.ts +72 -0
  5. package/dist/builders/organization-builder.d.ts +23 -0
  6. package/dist/builders/service-request-specimen-observation-builder.d.ts +62 -0
  7. package/dist/client/auth.d.ts +11 -0
  8. package/dist/client/create-client.d.ts +5 -0
  9. package/dist/client/token-store.d.ts +7 -0
  10. package/dist/client/transport.d.ts +28 -0
  11. package/dist/core/errors.d.ts +25 -0
  12. package/dist/core/types.d.ts +293 -0
  13. package/dist/endpoints/condition.d.ts +945 -0
  14. package/dist/endpoints/diagnostic-report.d.ts +560 -0
  15. package/dist/endpoints/encounter.d.ts +1150 -0
  16. package/dist/endpoints/location.d.ts +500 -0
  17. package/dist/endpoints/medication-request.d.ts +1585 -0
  18. package/dist/endpoints/medication.d.ts +395 -0
  19. package/dist/endpoints/observation.d.ts +1415 -0
  20. package/dist/endpoints/organization.d.ts +454 -0
  21. package/dist/endpoints/patient.d.ts +72 -0
  22. package/dist/endpoints/practitioner-role.d.ts +425 -0
  23. package/dist/endpoints/practitioner.d.ts +210 -0
  24. package/dist/endpoints/procedure.d.ts +990 -0
  25. package/dist/endpoints/service-request.d.ts +1040 -0
  26. package/dist/endpoints/specimen.d.ts +1005 -0
  27. package/dist/index.d.ts +26 -0
  28. package/dist/index.js +21 -0
  29. package/dist/schemas/common.d.ts +328 -0
  30. package/dist/schemas/condition.d.ts +5314 -0
  31. package/dist/schemas/diagnostic-report.d.ts +2631 -0
  32. package/dist/schemas/encounter.d.ts +7087 -0
  33. package/dist/schemas/location.d.ts +2432 -0
  34. package/dist/schemas/medication-request.d.ts +12183 -0
  35. package/dist/schemas/medication.d.ts +2111 -0
  36. package/dist/schemas/observation.d.ts +9253 -0
  37. package/dist/schemas/organization.d.ts +3357 -0
  38. package/dist/schemas/patient.d.ts +418 -0
  39. package/dist/schemas/practitioner-role.d.ts +1930 -0
  40. package/dist/schemas/practitioner.d.ts +1626 -0
  41. package/dist/schemas/procedure.d.ts +5283 -0
  42. package/dist/schemas/service-request.d.ts +5268 -0
  43. package/dist/schemas/specimen.d.ts +6520 -0
  44. package/package.json +61 -0
@@ -0,0 +1,293 @@
1
+ export type MaybePromise<T> = T | Promise<T>;
2
+ export type SatuSehatEnvironment = "sandbox" | "production";
3
+ export type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
4
+ export type PrimitiveQueryValue = string | number | boolean | Date;
5
+ export type QueryParams = Record<string, PrimitiveQueryValue | PrimitiveQueryValue[] | null | undefined>;
6
+ export type AccessTokenProvider = string | (() => MaybePromise<string>);
7
+ export interface StoredAccessToken {
8
+ accessToken: string;
9
+ tokenType: string;
10
+ expiresAt: number;
11
+ expiresIn: number;
12
+ issuedAt: number;
13
+ }
14
+ export interface TokenStore {
15
+ getToken(): MaybePromise<StoredAccessToken | undefined>;
16
+ setToken(token: StoredAccessToken): MaybePromise<void>;
17
+ clearToken?(): MaybePromise<void>;
18
+ }
19
+ export interface TokenExpiryCheckOptions {
20
+ now?: number;
21
+ safetyWindowMs?: number;
22
+ }
23
+ export interface OAuthClientCredentials {
24
+ clientId: string;
25
+ clientSecret: string;
26
+ }
27
+ export interface SatuSehatClientConfig {
28
+ baseUrl?: string;
29
+ authBaseUrl?: string;
30
+ environment?: SatuSehatEnvironment;
31
+ accessToken?: AccessTokenProvider;
32
+ credentials?: OAuthClientCredentials;
33
+ tokenStore?: TokenStore;
34
+ tokenExpiryWindowMs?: number;
35
+ retryOnUnauthorized?: boolean;
36
+ defaultHeaders?: HeadersInit;
37
+ fetch?: FetchLike;
38
+ validateResponse?: boolean;
39
+ }
40
+ export interface SatuSehatEnvSource {
41
+ SATUSEHAT_ENV?: string;
42
+ SATUSEHAT_BASE_URL?: string;
43
+ SATUSEHAT_AUTH_BASE_URL?: string;
44
+ SATUSEHAT_CLIENT_ID?: string;
45
+ SATUSEHAT_CLIENT_SECRET?: string;
46
+ SATUSEHAT_TOKEN_CACHE_FILE?: string;
47
+ SATUSEHAT_TEST_PATIENT_BIRTHDATE?: string;
48
+ SATUSEHAT_TEST_PATIENT_GENDER?: string;
49
+ SATUSEHAT_TEST_PATIENT_IDENTIFIER?: string;
50
+ SATUSEHAT_TEST_PATIENT_NIK?: string;
51
+ SATUSEHAT_TEST_PATIENT_NAME?: string;
52
+ [key: string]: string | undefined;
53
+ }
54
+ export interface PatientClient {
55
+ getById(input: {
56
+ id: string;
57
+ signal?: AbortSignal;
58
+ }): Promise<import("../schemas/patient").Patient>;
59
+ search(input: import("../schemas/patient").PatientSearchParams, signal?: AbortSignal): Promise<import("../schemas/patient").PatientSearchResponse>;
60
+ }
61
+ export interface ConditionClient {
62
+ create(input: import("../schemas/condition").ConditionCreateInput, signal?: AbortSignal): Promise<import("../schemas/condition").Condition>;
63
+ getById(input: {
64
+ id: string;
65
+ signal?: AbortSignal;
66
+ }): Promise<import("../schemas/condition").Condition>;
67
+ search(input: import("../schemas/condition").ConditionSearchParams, signal?: AbortSignal): Promise<import("../schemas/condition").ConditionSearchResponse>;
68
+ patch(input: {
69
+ id: string;
70
+ body: import("../schemas/condition").ConditionPatchInput;
71
+ signal?: AbortSignal;
72
+ }): Promise<import("../schemas/condition").Condition>;
73
+ update(input: {
74
+ id: string;
75
+ body: import("../schemas/condition").ConditionCreateInput;
76
+ signal?: AbortSignal;
77
+ }): Promise<import("../schemas/condition").Condition>;
78
+ }
79
+ export interface DiagnosticReportClient {
80
+ create(input: import("../schemas/diagnostic-report").DiagnosticReportCreateInput, signal?: AbortSignal): Promise<import("../schemas/diagnostic-report").DiagnosticReport>;
81
+ getById(input: {
82
+ id: string;
83
+ signal?: AbortSignal;
84
+ }): Promise<import("../schemas/diagnostic-report").DiagnosticReport>;
85
+ search(input: import("../schemas/diagnostic-report").DiagnosticReportSearchParams, signal?: AbortSignal): Promise<import("../schemas/diagnostic-report").DiagnosticReportSearchResponse>;
86
+ patch(input: {
87
+ id: string;
88
+ body: import("../schemas/diagnostic-report").DiagnosticReportPatchInput;
89
+ signal?: AbortSignal;
90
+ }): Promise<import("../schemas/diagnostic-report").DiagnosticReport>;
91
+ update(input: {
92
+ id: string;
93
+ body: import("../schemas/diagnostic-report").DiagnosticReportCreateInput;
94
+ signal?: AbortSignal;
95
+ }): Promise<import("../schemas/diagnostic-report").DiagnosticReport>;
96
+ }
97
+ export interface ObservationClient {
98
+ create(input: import("../schemas/observation").ObservationCreateInput, signal?: AbortSignal): Promise<import("../schemas/observation").Observation>;
99
+ getById(input: {
100
+ id: string;
101
+ signal?: AbortSignal;
102
+ }): Promise<import("../schemas/observation").Observation>;
103
+ search(input: import("../schemas/observation").ObservationSearchParams, signal?: AbortSignal): Promise<import("../schemas/observation").ObservationSearchResponse>;
104
+ patch(input: {
105
+ id: string;
106
+ body: import("../schemas/observation").ObservationPatchInput;
107
+ signal?: AbortSignal;
108
+ }): Promise<import("../schemas/observation").Observation>;
109
+ update(input: {
110
+ id: string;
111
+ body: import("../schemas/observation").ObservationCreateInput;
112
+ signal?: AbortSignal;
113
+ }): Promise<import("../schemas/observation").Observation>;
114
+ }
115
+ export interface ProcedureClient {
116
+ create(input: import("../schemas/procedure").ProcedureCreateInput, signal?: AbortSignal): Promise<import("../schemas/procedure").Procedure>;
117
+ getById(input: {
118
+ id: string;
119
+ signal?: AbortSignal;
120
+ }): Promise<import("../schemas/procedure").Procedure>;
121
+ search(input: import("../schemas/procedure").ProcedureSearchParams, signal?: AbortSignal): Promise<import("../schemas/procedure").ProcedureSearchResponse>;
122
+ patch(input: {
123
+ id: string;
124
+ body: import("../schemas/procedure").ProcedurePatchInput;
125
+ signal?: AbortSignal;
126
+ }): Promise<import("../schemas/procedure").Procedure>;
127
+ update(input: {
128
+ id: string;
129
+ body: import("../schemas/procedure").ProcedureCreateInput;
130
+ signal?: AbortSignal;
131
+ }): Promise<import("../schemas/procedure").Procedure>;
132
+ }
133
+ export interface MedicationClient {
134
+ create(input: import("../schemas/medication").MedicationCreateInput, signal?: AbortSignal): Promise<import("../schemas/medication").Medication>;
135
+ getById(input: {
136
+ id: string;
137
+ signal?: AbortSignal;
138
+ }): Promise<import("../schemas/medication").Medication>;
139
+ patch(input: {
140
+ id: string;
141
+ body: import("../schemas/medication").MedicationPatchInput;
142
+ signal?: AbortSignal;
143
+ }): Promise<import("../schemas/medication").Medication>;
144
+ update(input: {
145
+ id: string;
146
+ body: import("../schemas/medication").MedicationCreateInput;
147
+ signal?: AbortSignal;
148
+ }): Promise<import("../schemas/medication").Medication>;
149
+ }
150
+ export interface MedicationRequestClient {
151
+ create(input: import("../schemas/medication-request").MedicationRequestCreateInput, signal?: AbortSignal): Promise<import("../schemas/medication-request").MedicationRequest>;
152
+ getById(input: {
153
+ id: string;
154
+ signal?: AbortSignal;
155
+ }): Promise<import("../schemas/medication-request").MedicationRequest>;
156
+ search(input: import("../schemas/medication-request").MedicationRequestSearchParams, signal?: AbortSignal): Promise<import("../schemas/medication-request").MedicationRequestSearchResponse>;
157
+ patch(input: {
158
+ id: string;
159
+ body: import("../schemas/medication-request").MedicationRequestPatchInput;
160
+ signal?: AbortSignal;
161
+ }): Promise<import("../schemas/medication-request").MedicationRequest>;
162
+ update(input: {
163
+ id: string;
164
+ body: import("../schemas/medication-request").MedicationRequestCreateInput;
165
+ signal?: AbortSignal;
166
+ }): Promise<import("../schemas/medication-request").MedicationRequest>;
167
+ }
168
+ export interface ServiceRequestClient {
169
+ create(input: import("../schemas/service-request").ServiceRequestCreateInput, signal?: AbortSignal): Promise<import("../schemas/service-request").ServiceRequest>;
170
+ getById(input: {
171
+ id: string;
172
+ signal?: AbortSignal;
173
+ }): Promise<import("../schemas/service-request").ServiceRequest>;
174
+ search(input: import("../schemas/service-request").ServiceRequestSearchParams, signal?: AbortSignal): Promise<import("../schemas/service-request").ServiceRequestSearchResponse>;
175
+ patch(input: {
176
+ id: string;
177
+ body: import("../schemas/service-request").ServiceRequestPatchInput;
178
+ signal?: AbortSignal;
179
+ }): Promise<import("../schemas/service-request").ServiceRequest>;
180
+ update(input: {
181
+ id: string;
182
+ body: import("../schemas/service-request").ServiceRequestCreateInput;
183
+ signal?: AbortSignal;
184
+ }): Promise<import("../schemas/service-request").ServiceRequest>;
185
+ }
186
+ export interface SpecimenClient {
187
+ create(input: import("../schemas/specimen").SpecimenCreateInput, signal?: AbortSignal): Promise<import("../schemas/specimen").Specimen>;
188
+ getById(input: {
189
+ id: string;
190
+ signal?: AbortSignal;
191
+ }): Promise<import("../schemas/specimen").Specimen>;
192
+ search(input: import("../schemas/specimen").SpecimenSearchParams, signal?: AbortSignal): Promise<import("../schemas/specimen").SpecimenSearchResponse>;
193
+ patch(input: {
194
+ id: string;
195
+ body: import("../schemas/specimen").SpecimenPatchInput;
196
+ signal?: AbortSignal;
197
+ }): Promise<import("../schemas/specimen").Specimen>;
198
+ update(input: {
199
+ id: string;
200
+ body: import("../schemas/specimen").SpecimenCreateInput;
201
+ signal?: AbortSignal;
202
+ }): Promise<import("../schemas/specimen").Specimen>;
203
+ }
204
+ export interface EncounterClient {
205
+ create(input: import("../schemas/encounter").EncounterCreateInput, signal?: AbortSignal): Promise<import("../schemas/encounter").Encounter>;
206
+ getById(input: {
207
+ id: string;
208
+ signal?: AbortSignal;
209
+ }): Promise<import("../schemas/encounter").Encounter>;
210
+ search(input: import("../schemas/encounter").EncounterSearchParams, signal?: AbortSignal): Promise<import("../schemas/encounter").EncounterSearchResponse>;
211
+ patch(input: {
212
+ id: string;
213
+ body: import("../schemas/encounter").EncounterPatchInput;
214
+ signal?: AbortSignal;
215
+ }): Promise<import("../schemas/encounter").Encounter>;
216
+ update(input: {
217
+ id: string;
218
+ body: import("../schemas/encounter").EncounterCreateInput;
219
+ signal?: AbortSignal;
220
+ }): Promise<import("../schemas/encounter").Encounter>;
221
+ }
222
+ export interface PractitionerClient {
223
+ getById(input: {
224
+ id: string;
225
+ signal?: AbortSignal;
226
+ }): Promise<import("../schemas/practitioner").Practitioner>;
227
+ search(input: import("../schemas/practitioner").PractitionerSearchParams, signal?: AbortSignal): Promise<import("../schemas/practitioner").PractitionerSearchResponse>;
228
+ }
229
+ export interface PractitionerRoleClient {
230
+ create(input: import("../schemas/practitioner-role").PractitionerRoleCreateInput, signal?: AbortSignal): Promise<import("../schemas/practitioner-role").PractitionerRole>;
231
+ getById(input: {
232
+ id: string;
233
+ signal?: AbortSignal;
234
+ }): Promise<import("../schemas/practitioner-role").PractitionerRole>;
235
+ search(input: import("../schemas/practitioner-role").PractitionerRoleSearchParams, signal?: AbortSignal): Promise<import("../schemas/practitioner-role").PractitionerRoleSearchResponse>;
236
+ patch(input: {
237
+ id: string;
238
+ body: import("../schemas/practitioner-role").PractitionerRolePatchInput;
239
+ signal?: AbortSignal;
240
+ }): Promise<import("../schemas/practitioner-role").PractitionerRole>;
241
+ update(input: {
242
+ id: string;
243
+ body: import("../schemas/practitioner-role").PractitionerRoleCreateInput;
244
+ signal?: AbortSignal;
245
+ }): Promise<import("../schemas/practitioner-role").PractitionerRole>;
246
+ }
247
+ export interface OrganizationClient {
248
+ create(input: import("../schemas/organization").OrganizationCreateInput, signal?: AbortSignal): Promise<import("../schemas/organization").Organization>;
249
+ getById(input: {
250
+ id: string;
251
+ signal?: AbortSignal;
252
+ }): Promise<import("../schemas/organization").Organization>;
253
+ search(input: import("../schemas/organization").OrganizationSearchParams, signal?: AbortSignal): Promise<import("../schemas/organization").OrganizationSearchResponse>;
254
+ update(input: {
255
+ id: string;
256
+ body: import("../schemas/organization").OrganizationCreateInput;
257
+ signal?: AbortSignal;
258
+ }): Promise<import("../schemas/organization").Organization>;
259
+ }
260
+ export interface LocationClient {
261
+ create(input: import("../schemas/location").LocationCreateInput, signal?: AbortSignal): Promise<import("../schemas/location").Location>;
262
+ getById(input: {
263
+ id: string;
264
+ signal?: AbortSignal;
265
+ }): Promise<import("../schemas/location").Location>;
266
+ search(input: import("../schemas/location").LocationSearchParams, signal?: AbortSignal): Promise<import("../schemas/location").LocationSearchResponse>;
267
+ patch(input: {
268
+ id: string;
269
+ body: import("../schemas/location").LocationPatchInput;
270
+ signal?: AbortSignal;
271
+ }): Promise<import("../schemas/location").Location>;
272
+ update(input: {
273
+ id: string;
274
+ body: import("../schemas/location").LocationCreateInput;
275
+ signal?: AbortSignal;
276
+ }): Promise<import("../schemas/location").Location>;
277
+ }
278
+ export interface SatuSehatClient {
279
+ condition: ConditionClient;
280
+ diagnosticReport: DiagnosticReportClient;
281
+ encounter: EncounterClient;
282
+ location: LocationClient;
283
+ medication: MedicationClient;
284
+ medicationRequest: MedicationRequestClient;
285
+ observation: ObservationClient;
286
+ organization: OrganizationClient;
287
+ patient: PatientClient;
288
+ practitioner: PractitionerClient;
289
+ practitionerRole: PractitionerRoleClient;
290
+ procedure: ProcedureClient;
291
+ serviceRequest: ServiceRequestClient;
292
+ specimen: SpecimenClient;
293
+ }