@bahmni/services 0.0.1-dev.346 → 0.0.1-dev.349

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 (29) hide show
  1. package/dist/encounterService/__mocks__/mocks.d.ts +0 -27
  2. package/dist/encounterService/__mocks__/mocks.d.ts.map +1 -1
  3. package/dist/encounterService/constants.d.ts +0 -1
  4. package/dist/encounterService/constants.d.ts.map +1 -1
  5. package/dist/encounterService/encounterService.d.ts +1 -7
  6. package/dist/encounterService/encounterService.d.ts.map +1 -1
  7. package/dist/encounterService/index.d.ts +1 -1
  8. package/dist/encounterService/index.d.ts.map +1 -1
  9. package/dist/index.d.ts +3 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1353 -1302
  12. package/dist/observationFormsService/constants.d.ts +1 -0
  13. package/dist/observationFormsService/constants.d.ts.map +1 -1
  14. package/dist/observationFormsService/index.d.ts +2 -2
  15. package/dist/observationFormsService/index.d.ts.map +1 -1
  16. package/dist/observationFormsService/models.d.ts +16 -5
  17. package/dist/observationFormsService/models.d.ts.map +1 -1
  18. package/dist/observationFormsService/observationFormsService.d.ts +25 -0
  19. package/dist/observationFormsService/observationFormsService.d.ts.map +1 -1
  20. package/dist/observationFormsService/observationFormsTransformer.d.ts.map +1 -1
  21. package/dist/observationService/__mocks__/observationMocks.d.ts +32 -0
  22. package/dist/observationService/__mocks__/observationMocks.d.ts.map +1 -1
  23. package/dist/observationService/constants.d.ts +2 -2
  24. package/dist/observationService/constants.d.ts.map +1 -1
  25. package/dist/observationService/index.d.ts +2 -1
  26. package/dist/observationService/index.d.ts.map +1 -1
  27. package/dist/observationService/observationService.d.ts +10 -20
  28. package/dist/observationService/observationService.d.ts.map +1 -1
  29. package/package.json +1 -1
@@ -3,5 +3,6 @@ export declare const OBSERVATION_FORMS_URL: (episodeUuid?: string) => string;
3
3
  export declare const USER_PINNED_PREFERENCE_URL: (userUuid: string) => string;
4
4
  export declare const FORM_TRANSLATIONS_URL: (formName: string, formUuid: string, formVersion: string, locale: string) => string;
5
5
  export declare const DEFAULT_FORM_NAMESPACE = "Bahmni";
6
+ export declare const FORM_SEARCH_URL: (formName: string) => string;
6
7
  export declare const FORM_DATA_URL: (patientUuid: string, numberOfVisits?: number, episodeUuid?: string) => string;
7
8
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,WACkB,CAAC;AACrE,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,WAMzD,CAAC;AACF,eAAO,MAAM,0BAA0B,GAAI,UAAU,MAAM,WACb,CAAC;AAC/C,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,aAAa,MAAM,EACnB,QAAQ,MAAM,WAGyH,CAAC;AAE1I,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,cAAc,MAAM,WAWrB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,WAE4B,CAAC;AAC/E,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,WAMzD,CAAC;AACF,eAAO,MAAM,0BAA0B,GAAI,UAAU,MAAM,WACb,CAAC;AAC/C,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,aAAa,MAAM,EACnB,QAAQ,MAAM,WAGyH,CAAC;AAE1I,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,WAE0D,CAAC;AAE3G,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,cAAc,MAAM,WAWrB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { fetchObservationForms, fetchFormMetadata, getPatientFormData, } from './observationFormsService';
2
- export { type ObservationForm, type FormApiResponse, type ApiNameTranslation, type FormPrivilege, type ApiFormPrivilege, type FormMetadata, type FormMetadataApiResponse, type FormResource, type ComplexValue, type ObservationFormTranslations, type FormResponseData, type FormProvider, } from './models';
1
+ export { fetchObservationForms, fetchFormMetadata, fetchFormUuidByObservationDate, getPatientFormData, } from './observationFormsService';
2
+ export { type ObservationForm, type FormApiResponse, type ApiNameTranslation, type FormPrivilege, type FormMetadata, type FormMetadataApiResponse, type FormResource, type ComplexValue, type ObservationFormTranslations, type FormResponseData, type FormProvider, } from './models';
3
3
  export { transformFormDataToObservations, transformObservationsToFormData, transformContainerObservationsToForm2Observations, convertImmutableToPlainObject, extractNotesFromFormData, hasMissingMandatoryVisibleField, type FormData, type FormControlData, type Form2Observation, type ConceptValue, } from './observationFormsTransformer';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,iDAAiD,EACjD,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,iDAAiD,EACjD,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC"}
@@ -3,6 +3,7 @@ export type { ObservationFormTranslations } from '../i18n';
3
3
  export interface FormPrivilege {
4
4
  privilegeName: string;
5
5
  editable: boolean;
6
+ viewable?: boolean;
6
7
  }
7
8
  export interface ObservationForm {
8
9
  uuid: string;
@@ -10,10 +11,6 @@ export interface ObservationForm {
10
11
  id: number;
11
12
  privileges: FormPrivilege[];
12
13
  }
13
- export interface ApiFormPrivilege {
14
- privilegeName: string;
15
- editable: boolean;
16
- }
17
14
  export interface ApiNameTranslation {
18
15
  display: string;
19
16
  locale: string;
@@ -22,7 +19,7 @@ export interface FormApiResponse {
22
19
  uuid: string;
23
20
  name: string;
24
21
  id: number;
25
- privileges: ApiFormPrivilege[];
22
+ privileges: FormPrivilege[];
26
23
  nameTranslation: string;
27
24
  }
28
25
  export interface FormResource {
@@ -45,6 +42,16 @@ export interface FormMetadata {
45
42
  translations?: ObservationFormTranslations;
46
43
  }
47
44
  export interface Form2Observation {
45
+ /** FHIR Observation resource UUID. Present for observations fetched from the backend
46
+ * (edit flow). Used to emit PUT instead of POST in the encounter bundle. */
47
+ uuid?: string;
48
+ /** True when the observation was cleared/deleted by the user in edit mode.
49
+ * Combined with uuid, signals the bundle builder to emit DELETE. */
50
+ voided?: boolean;
51
+ /** Current FHIR status stored in OpenMRS (e.g. "final", "amended").
52
+ * Preserved from the FHIR fetch so PUT requests echo back the same value —
53
+ * OpenMRS rejects status changes and also errors when status is absent on PUT. */
54
+ status?: string;
48
55
  concept: {
49
56
  uuid: string;
50
57
  datatype?: string;
@@ -76,6 +83,10 @@ export interface FormResponseData {
76
83
  formType: string;
77
84
  formName: string;
78
85
  formVersion: number;
86
+ /** UUID of the specific published form version used when the encounter was saved.
87
+ * This is the authoritative identifier — same field used by the old Bahmni
88
+ * Angular frontend (observationForm.formUuid) to load the correct form for edit. */
89
+ formUuid?: string;
79
90
  visitUuid: string;
80
91
  visitStartDateTime: number;
81
92
  encounterUuid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/models.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,31 @@ export declare const fetchObservationForms: (episodeUuids?: string[]) => Promise
6
6
  * @returns Promise resolving to parsed form metadata with translations for current locale
7
7
  */
8
8
  export declare const fetchFormMetadata: (formUuid: string) => Promise<FormMetadata>;
9
+ /**
10
+ * Finds the UUID of the form version that was active when an encounter was saved.
11
+ *
12
+ * Two strategies are tried in order:
13
+ *
14
+ * 1. Version-string match: if `formVersion` is provided and > 1, it was extracted
15
+ * from the formFieldPath which (after the FORM_METADATA_URL fix) encodes the
16
+ * correct OpenMRS form record version. An exact version match is unambiguous.
17
+ * This handles all encounters saved after the FORM_METADATA_URL fix.
18
+ *
19
+ * 2. Date-based match: falls back to finding the most recently published form
20
+ * whose `auditInfo.dateCreated` ≤ `encounterDateTime`.
21
+ * `encounterDateTime` (the encounter's clinical date, in ms epoch) is used
22
+ * instead of `Observation.issued` because `issued` is updated on every
23
+ * re-edit (amended), making it unreliable as a save-time proxy.
24
+ * `encounterDateTime` is stable — it does not change when observations are
25
+ * subsequently edited.
26
+ *
27
+ * @param formName - The form name to search for
28
+ * @param formVersion - The form version number from FormResponseData (may be 1
29
+ * for old encounters whose formFieldPath encoded version "1" before the fix)
30
+ * @param encounterDateTime - Epoch milliseconds of the encounter's clinical date
31
+ * @returns Promise resolving to the form UUID, or null if not determinable
32
+ */
33
+ export declare const fetchFormUuidByObservationDate: (formName: string, formVersion: number | undefined, encounterDateTime: number | undefined) => Promise<string | null>;
9
34
  /**
10
35
  * Fetches patient form data for a given patient
11
36
  * @param patientUuid - The UUID of the patient
@@ -1 +1 @@
1
- {"version":3,"file":"observationFormsService.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/observationFormsService.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,eAAe,EAGf,YAAY,EAEZ,gBAAgB,EACjB,MAAM,UAAU,CAAC;AA4DlB,eAAO,MAAM,qBAAqB,GAChC,eAAe,MAAM,EAAE,KACtB,OAAO,CAAC,eAAe,EAAE,CAO3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,KACf,OAAO,CAAC,YAAY,CAwDtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,eAAe,MAAM,EAAE,EACvB,iBAAiB,MAAM,KACtB,OAAO,CAAC,gBAAgB,EAAE,CAW5B,CAAC"}
1
+ {"version":3,"file":"observationFormsService.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/observationFormsService.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,eAAe,EAGf,YAAY,EAEZ,gBAAgB,EACjB,MAAM,UAAU,CAAC;AA4DlB,eAAO,MAAM,qBAAqB,GAChC,eAAe,MAAM,EAAE,KACtB,OAAO,CAAC,eAAe,EAAE,CAO3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,KACf,OAAO,CAAC,YAAY,CAwDtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,8BAA8B,GACzC,UAAU,MAAM,EAChB,aAAa,MAAM,GAAG,SAAS,EAC/B,mBAAmB,MAAM,GAAG,SAAS,KACpC,OAAO,CAAC,MAAM,GAAG,IAAI,CAkDvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,eAAe,MAAM,EAAE,EACvB,iBAAiB,MAAM,KACtB,OAAO,CAAC,gBAAgB,EAAE,CAW5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"observationFormsTransformer.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/observationFormsTransformer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EACA,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,GACR,aAAa,GACb,SAAS,GACT,YAAY,CAAC;IACjB,KAAK,EACD,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,YAAY,GACZ,YAAY,EAAE,GACd,YAAY,GACZ,IAAI,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAqGD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,GACrB,gBAAgB,EAAE,CAgFpB;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,gBAAgB,EAAE,EAChC,YAAY,EAAE,YAAY,GACzB,QAAQ,CAgEV;AAED;;;GAGG;AACH,wBAAgB,iDAAiD,CAC/D,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC/C,gBAAgB,EAAE,CA6FpB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;CAAE,GAAG,SAAS,GACnE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAUrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,uBAAuB,EAAE,gBAAgB,EAAE,GAC1C,IAAI,CAaN;AA+HD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAmCT"}
1
+ {"version":3,"file":"observationFormsTransformer.d.ts","sourceRoot":"","sources":["../../src/observationFormsService/observationFormsTransformer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EACA,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,GACR,aAAa,GACb,SAAS,GACT,YAAY,CAAC;IACjB,KAAK,EACD,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,YAAY,GACZ,YAAY,EAAE,GACd,YAAY,GACZ,IAAI,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAqGD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,GACrB,gBAAgB,EAAE,CAgFpB;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,gBAAgB,EAAE,EAChC,YAAY,EAAE,YAAY,GACzB,QAAQ,CAgEV;AAkBD;;;GAGG;AACH,wBAAgB,iDAAiD,CAC/D,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC/C,gBAAgB,EAAE,CA4EpB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;CAAE,GAAG,SAAS,GACnE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAUrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,uBAAuB,EAAE,gBAAgB,EAAE,GAC1C,IAAI,CAaN;AA+HD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAmCT"}
@@ -5,4 +5,36 @@ export declare const mockEmptyObservationBundle: Bundle<Observation>;
5
5
  export declare const mockEncounter: Encounter;
6
6
  export declare const mockObservationWithEncounter: Observation;
7
7
  export declare const mockObservationWithEncounterBundle: Bundle<Observation | Encounter>;
8
+ export declare const mockFormsEncounter: {
9
+ resourceType: string;
10
+ type: string;
11
+ total: number;
12
+ entry: {
13
+ fullUrl: string;
14
+ resource: {
15
+ resourceType: string;
16
+ id: string;
17
+ code: {
18
+ coding: {
19
+ system: string;
20
+ code: string;
21
+ display: string;
22
+ }[];
23
+ };
24
+ valueQuantity: {
25
+ value: number;
26
+ unit: string;
27
+ };
28
+ effectiveDateTime: string;
29
+ encounter: {
30
+ reference: string;
31
+ };
32
+ };
33
+ }[];
34
+ };
35
+ export declare const mockObservationWithFormPath: Observation;
36
+ export declare const mockObservationsForVitals: Observation[];
37
+ export declare const mockEncounterWithProvider: Encounter;
38
+ export declare const mockEncounterWithoutProvider: Encounter;
39
+ export declare const mockEncounterWithoutPeriodStart: Encounter;
8
40
  //# sourceMappingURL=observationMocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observationMocks.d.ts","sourceRoot":"","sources":["../../../src/observationService/__mocks__/observationMocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzD,eAAO,MAAM,eAAe,EAAE,WAkE7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAQrD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,WAAW,CAI1D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAoB3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,WAkC1C,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CACrD,WAAW,GAAG,SAAS,CAqBxB,CAAC"}
1
+ {"version":3,"file":"observationMocks.d.ts","sourceRoot":"","sources":["../../../src/observationService/__mocks__/observationMocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzD,eAAO,MAAM,eAAe,EAAE,WAkE7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAQrD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,WAAW,CAI1D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAoB3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,WAkC1C,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CACrD,WAAW,GAAG,SAAS,CAqBxB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,WAwBzC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,WAAW,EAmBlD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,SAuBvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,SAe1C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,SAqB7C,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const FHIR_OBSERVATION_URL: (patientUuid: string, conceptCodes: string[]) => string;
2
- export declare const FHIR_OBSERVATION_WITH_ENCOUNTER_URL: (patientUuid: string, conceptCodes: string[]) => string;
1
+ export declare const FHIR_OBSERVATION_URL: (patientUuid: string, conceptCodes?: string[], serviceRequestId?: string, includeEncounter?: boolean) => string;
2
+ export declare const FHIR_OBSERVATIONS_BY_ENCOUNTER_URL: (encounterUUID: string) => string;
3
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/observationService/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,EACnB,cAAc,MAAM,EAAE,WAIvB,CAAC;AAEF,eAAO,MAAM,mCAAmC,GAC9C,aAAa,MAAM,EACnB,cAAc,MAAM,EAAE,WAIvB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/observationService/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,EACnB,eAAe,MAAM,EAAE,EACvB,mBAAmB,MAAM,EACzB,mBAAmB,OAAO,WAkB3B,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAAI,eAAe,MAAM,WACA,CAAC"}
@@ -1,2 +1,3 @@
1
- export { getPatientObservationsBundle, getPatientObservationsWithEncounterBundle, getPatientObservations, } from './observationService';
1
+ export { getPatientObservationsBundle, getPatientObservationsWithEncounterBundle, getPatientObservations, getObservationsBundleByEncounterUuid, groupObservationsByEncounter, } from './observationService';
2
+ export type { EncounterGroup } from './observationService';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observationService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yCAAyC,EACzC,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observationService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yCAAyC,EACzC,sBAAsB,EACtB,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,23 +1,13 @@
1
1
  import { Observation, Bundle, Encounter } from 'fhir/r4';
2
- /**
3
- * Fetch patient observation bundle from FHIR API
4
- * @param patientUuid - Patient UUID
5
- * @param conceptCodes - Array of concept UUIDs
6
- * @returns Promise resolving to FHIR observation bundle
7
- */
8
- export declare function getPatientObservationsBundle(patientUuid: string, conceptCodes: string[]): Promise<Bundle<Observation>>;
9
- /**
10
- * Fetch patient observation and their encounter bundle from FHIR API
11
- * @param patientUuid - Patient UUID
12
- * @param conceptCodes - Array of concept UUIDs
13
- * @returns Promise resolving to FHIR observation and encounter bundle
14
- */
2
+ export declare function getPatientObservationsBundle(patientUuid: string, conceptCodes?: string[], serviceRequestId?: string): Promise<Bundle<Observation>>;
15
3
  export declare function getPatientObservationsWithEncounterBundle(patientUuid: string, conceptCodes: string[]): Promise<Bundle<Observation | Encounter>>;
16
- /**
17
- * Fetch patient observations from FHIR API
18
- * @param patientUuid - Patient UUID
19
- * @param conceptCodes - Array of concept UUIDs
20
- * @returns Promise resolving to FHIR observation
21
- */
22
- export declare function getPatientObservations(patientUUID: string, conceptCodes: string[]): Promise<Observation[]>;
4
+ export declare function getPatientObservations(patientUUID: string, conceptCodes?: string[], serviceRequestId?: string): Promise<Observation[]>;
5
+ export declare function getObservationsBundleByEncounterUuid(encounterUUID: string): Promise<Bundle<Observation>>;
6
+ export interface EncounterGroup {
7
+ encounterUuid: string;
8
+ encounterDateTime: number;
9
+ providerName: string;
10
+ observations: Observation[];
11
+ }
12
+ export declare const groupObservationsByEncounter: (observations: Observation[], bundle: Bundle<Encounter>) => EncounterGroup[];
23
13
  //# sourceMappingURL=observationService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observationService.d.ts","sourceRoot":"","sources":["../../src/observationService/observationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOzD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAG9B;AAED;;;;;GAKG;AACH,wBAAsB,yCAAyC,CAC7D,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAG1C;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,WAAW,EAAE,CAAC,CAQxB"}
1
+ {"version":3,"file":"observationService.d.ts","sourceRoot":"","sources":["../../src/observationService/observationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOzD,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAG9B;AAED,wBAAsB,yCAAyC,CAC7D,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAG1C;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,WAAW,EAAE,CAAC,CAYxB;AAED,wBAAsB,oCAAoC,CACxD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAI9B;AACD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAMD,eAAO,MAAM,4BAA4B,GACvC,cAAc,WAAW,EAAE,EAC3B,QAAQ,MAAM,CAAC,SAAS,CAAC,KACxB,cAAc,EA8ChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bahmni/services",
3
- "version": "0.0.1-dev.346",
3
+ "version": "0.0.1-dev.349",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",