@awell-health/awell-extensions 1.0.245 → 1.0.247

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/dist/extensions/awell/v1/actions/searchPatientsByPatientCode/searchPatientsByPatientCode.test.js.map +1 -1
  2. package/dist/extensions/awell/v1/sdk/awellSdk.d.ts +4 -1
  3. package/dist/extensions/awell/v1/sdk/awellSdk.js +21 -0
  4. package/dist/extensions/awell/v1/sdk/awellSdk.js.map +1 -1
  5. package/dist/extensions/awell/v1/sdk/graphql/form.query.d.ts +1 -0
  6. package/dist/extensions/awell/v1/sdk/graphql/form.query.js +91 -0
  7. package/dist/extensions/awell/v1/sdk/graphql/form.query.js.map +1 -0
  8. package/dist/extensions/awell/v1/sdk/graphql/formResponse.query.d.ts +1 -0
  9. package/dist/extensions/awell/v1/sdk/graphql/formResponse.query.js +20 -0
  10. package/dist/extensions/awell/v1/sdk/graphql/formResponse.query.js.map +1 -0
  11. package/dist/extensions/awell/v1/sdk/graphql/index.d.ts +3 -0
  12. package/dist/extensions/awell/v1/sdk/graphql/index.js +7 -1
  13. package/dist/extensions/awell/v1/sdk/graphql/index.js.map +1 -1
  14. package/dist/extensions/awell/v1/sdk/graphql/pathwayActivities.query.d.ts +1 -0
  15. package/dist/extensions/awell/v1/sdk/graphql/pathwayActivities.query.js +63 -0
  16. package/dist/extensions/awell/v1/sdk/graphql/pathwayActivities.query.js.map +1 -0
  17. package/dist/extensions/medplum/actions/index.d.ts +1 -0
  18. package/dist/extensions/medplum/actions/index.js +3 -1
  19. package/dist/extensions/medplum/actions/index.js.map +1 -1
  20. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/dataPoints.d.ts +1 -0
  21. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/dataPoints.js +5 -0
  22. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/dataPoints.js.map +1 -0
  23. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/fields.d.ts +3 -0
  24. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/fields.js +7 -0
  25. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/fields.js.map +1 -0
  26. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/index.d.ts +2 -0
  27. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/index.js +19 -0
  28. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/config/index.js.map +1 -0
  29. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/index.d.ts +1 -0
  30. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/index.js +6 -0
  31. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/index.js.map +1 -0
  32. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/submitQuestionnaireResponse.d.ts +4 -0
  33. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/submitQuestionnaireResponse.js +74 -0
  34. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/submitQuestionnaireResponse.js.map +1 -0
  35. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/submitQuestionnaireResponse.test.d.ts +5 -0
  36. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/submitQuestionnaireResponse.test.js +38 -0
  37. package/dist/extensions/medplum/actions/submitQuestionnaireResponse/submitQuestionnaireResponse.test.js.map +1 -0
  38. package/dist/extensions/medplum/settings.d.ts +20 -0
  39. package/dist/extensions/medplum/settings.js +18 -2
  40. package/dist/extensions/medplum/settings.js.map +1 -1
  41. package/dist/extensions/medplum/utils/validateAndCreateSdkClient.d.ts +2 -1
  42. package/dist/extensions/medplum/utils/validateAndCreateSdkClient.js +4 -2
  43. package/dist/extensions/medplum/utils/validateAndCreateSdkClient.js.map +1 -1
  44. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.d.ts +6 -0
  45. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.js +105 -0
  46. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.js.map +1 -0
  47. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.test.d.ts +1 -0
  48. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.test.js +138 -0
  49. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.test.js.map +1 -0
  50. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/index.d.ts +1 -0
  51. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/index.js +18 -0
  52. package/dist/src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/index.js.map +1 -0
  53. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.d.ts +3 -0
  54. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.js +121 -0
  55. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.js.map +1 -0
  56. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.test.d.ts +1 -0
  57. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.test.js +112 -0
  58. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.test.js.map +1 -0
  59. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/index.d.ts +1 -0
  60. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/index.js +18 -0
  61. package/dist/src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/index.js.map +1 -0
  62. package/dist/src/lib/fhir/transformers/__testdata__/formDefinition.data.d.ts +2 -0
  63. package/dist/src/lib/fhir/transformers/__testdata__/formDefinition.data.js +264 -0
  64. package/dist/src/lib/fhir/transformers/__testdata__/formDefinition.data.js.map +1 -0
  65. package/dist/src/lib/fhir/transformers/__testdata__/formResponse.data.d.ts +2 -0
  66. package/dist/src/lib/fhir/transformers/__testdata__/formResponse.data.js +68 -0
  67. package/dist/src/lib/fhir/transformers/__testdata__/formResponse.data.js.map +1 -0
  68. package/dist/src/lib/fhir/transformers/__testdata__/index.d.ts +2 -0
  69. package/dist/src/lib/fhir/transformers/__testdata__/index.js +19 -0
  70. package/dist/src/lib/fhir/transformers/__testdata__/index.js.map +1 -0
  71. package/dist/src/lib/fhir/transformers/index.d.ts +2 -0
  72. package/dist/src/lib/fhir/transformers/index.js +19 -0
  73. package/dist/src/lib/fhir/transformers/index.js.map +1 -0
  74. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { type NewActivityPayload, type Patient } from '@awell-health/extensions-core';
1
+ import { type NewActivityPayload, type Patient, type Pathway } from '@awell-health/extensions-core';
2
2
  import z from 'zod';
3
3
  import { MedplumClient } from '@medplum/core';
4
4
  import { SettingsValidationSchema } from '../settings';
@@ -10,6 +10,7 @@ type ValidateAndCreateSdkClient = <T extends z.ZodTypeAny, P extends NewActivity
10
10
  medplumSdk: MedplumClient;
11
11
  fields: z.infer<(typeof args)['fieldsSchema']>;
12
12
  settings: z.infer<typeof SettingsValidationSchema>;
13
+ pathway: Pathway;
13
14
  patient: Patient;
14
15
  activity: Activity;
15
16
  }>;
@@ -13,15 +13,17 @@ const validateAndCreateSdkClient = async ({ fieldsSchema, payload, }) => {
13
13
  schema: zod_1.default.object({
14
14
  fields: fieldsSchema,
15
15
  settings: settings_1.SettingsValidationSchema,
16
+ pathway: zod_1.default.object({ id: zod_1.default.string() }),
17
+ activity: zod_1.default.object({ id: zod_1.default.string() }),
16
18
  }),
17
19
  payload,
18
20
  });
19
- const { patient, activity } = payload;
21
+ const { patient, pathway, activity } = payload;
20
22
  const medplumSdk = new core_1.MedplumClient({
21
23
  clientId,
22
24
  });
23
25
  await medplumSdk.startClientLogin(clientId, clientSecret);
24
- return { medplumSdk, fields, settings, patient, activity };
26
+ return { medplumSdk, fields, settings, patient, pathway, activity };
25
27
  };
26
28
  exports.validateAndCreateSdkClient = validateAndCreateSdkClient;
27
29
  //# sourceMappingURL=validateAndCreateSdkClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateAndCreateSdkClient.js","sourceRoot":"","sources":["../../../../extensions/medplum/utils/validateAndCreateSdkClient.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,8CAAmB;AACnB,wCAA6C;AAC7C,0CAAsD;AAiB/C,MAAM,0BAA0B,GAA+B,KAAK,EAAE,EAC3E,YAAY,EACZ,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EACpC,MAAM,EACN,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;QACX,MAAM,EAAE,aAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,mCAAwB;SACnC,CAAC;QACF,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAErC,MAAM,UAAU,GAAG,IAAI,oBAAa,CAAC;QACnC,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AAC5D,CAAC,CAAA;AAzBY,QAAA,0BAA0B,8BAyBtC"}
1
+ {"version":3,"file":"validateAndCreateSdkClient.js","sourceRoot":"","sources":["../../../../extensions/medplum/utils/validateAndCreateSdkClient.ts"],"names":[],"mappings":";;;;;;AAAA,mEAKsC;AACtC,8CAAmB;AACnB,wCAA6C;AAC7C,0CAAsD;AAkB/C,MAAM,0BAA0B,GAA+B,KAAK,EAAE,EAC3E,YAAY,EACZ,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EACpC,MAAM,EACN,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;QACX,MAAM,EAAE,aAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,mCAAwB;YAClC,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,QAAQ,EAAE,aAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACvC,CAAC;QACF,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAE9C,MAAM,UAAU,GAAG,IAAI,oBAAa,CAAC;QACnC,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrE,CAAC,CAAA;AA3BY,QAAA,0BAA0B,8BA2BtC"}
@@ -0,0 +1,6 @@
1
+ import { type Form, type FormResponse } from '../../../../../extensions/awell/v1/gql/graphql';
2
+ import { type QuestionnaireResponseItem } from '@medplum/fhirtypes';
3
+ export declare const AwellFormResponseToFhirQuestionnaireResponseItems: (opts: {
4
+ awellFormDefinition: Form;
5
+ awellFormResponse: FormResponse;
6
+ }) => QuestionnaireResponseItem[];
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwellFormResponseToFhirQuestionnaireResponseItems = void 0;
4
+ const graphql_1 = require("../../../../../extensions/awell/v1/gql/graphql");
5
+ const lodash_1 = require("lodash");
6
+ const getQuestionLabel = (awellFormDefinition, questionId) => {
7
+ const itemDefinition = awellFormDefinition.questions.find((item) => item.id === questionId);
8
+ if ((0, lodash_1.isNil)(itemDefinition)) {
9
+ throw new Error(`Could not find question definition for question with id ${questionId}`);
10
+ }
11
+ return itemDefinition.title;
12
+ };
13
+ const getMultipleSelectFhirAnswers = (itemResponse) => {
14
+ var _a, _b;
15
+ const itemResponseValueArray = JSON.parse(itemResponse.value);
16
+ const itemResponseLabelArray = (_b = (_a = itemResponse.label) === null || _a === void 0 ? void 0 : _a.split(', ')) !== null && _b !== void 0 ? _b : [];
17
+ return itemResponseValueArray.map((item, i) => {
18
+ return {
19
+ valueCoding: {
20
+ code: String(item),
21
+ display: String(itemResponseLabelArray[i]),
22
+ },
23
+ };
24
+ });
25
+ };
26
+ const getAnswer = (awellFormDefinition, itemResponse) => {
27
+ var _a;
28
+ const itemDefinition = awellFormDefinition.questions.find((item) => item.id === itemResponse.question_id);
29
+ if ((0, lodash_1.isNil)(itemDefinition)) {
30
+ throw new Error(`Could not find question definition for question with id ${itemResponse.question_id}`);
31
+ }
32
+ const userQuestionType = itemDefinition.userQuestionType;
33
+ switch (userQuestionType) {
34
+ case graphql_1.UserQuestionType.YesNo:
35
+ return [
36
+ {
37
+ valueBoolean: Boolean(itemResponse.value),
38
+ },
39
+ ];
40
+ case graphql_1.UserQuestionType.Date:
41
+ return [
42
+ {
43
+ valueDateTime: itemResponse.value,
44
+ },
45
+ ];
46
+ case graphql_1.UserQuestionType.Number:
47
+ return [
48
+ {
49
+ valueInteger: Number(itemResponse.value),
50
+ },
51
+ ];
52
+ case graphql_1.UserQuestionType.LongText:
53
+ return [
54
+ {
55
+ valueString: itemResponse.value,
56
+ },
57
+ ];
58
+ case graphql_1.UserQuestionType.MultipleChoice:
59
+ return [
60
+ {
61
+ valueCoding: {
62
+ code: itemResponse.value,
63
+ display: (_a = itemResponse.label) !== null && _a !== void 0 ? _a : 'Answer label not found',
64
+ },
65
+ },
66
+ ];
67
+ case graphql_1.UserQuestionType.MultipleSelect:
68
+ return getMultipleSelectFhirAnswers(itemResponse);
69
+ case graphql_1.UserQuestionType.Slider:
70
+ return [
71
+ {
72
+ valueInteger: Number(itemResponse.value),
73
+ },
74
+ ];
75
+ case graphql_1.UserQuestionType.ShortText:
76
+ return [
77
+ {
78
+ valueString: itemResponse.value,
79
+ },
80
+ ];
81
+ case graphql_1.UserQuestionType.Telephone:
82
+ return [
83
+ {
84
+ valueString: itemResponse.value,
85
+ },
86
+ ];
87
+ default:
88
+ return [
89
+ {
90
+ valueString: String(itemResponse.value),
91
+ },
92
+ ];
93
+ }
94
+ };
95
+ const AwellFormResponseToFhirQuestionnaireResponseItems = (opts) => {
96
+ return opts.awellFormResponse.answers.map((itemResponse) => {
97
+ return {
98
+ linkId: itemResponse.question_id,
99
+ text: getQuestionLabel(opts.awellFormDefinition, itemResponse.question_id),
100
+ answer: getAnswer(opts.awellFormDefinition, itemResponse),
101
+ };
102
+ });
103
+ };
104
+ exports.AwellFormResponseToFhirQuestionnaireResponseItems = AwellFormResponseToFhirQuestionnaireResponseItems;
105
+ //# sourceMappingURL=AwellFormResponseToFhirQuestionnaireResponseItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwellFormResponseToFhirQuestionnaireResponseItems.js","sourceRoot":"","sources":["../../../../../../src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _1 = require(".");
4
+ const __testdata__1 = require("../__testdata__");
5
+ describe('AwellFormResponsetoFhirQuestionnaireResponse', () => {
6
+ test('Should work', async () => {
7
+ const res = (0, _1.AwellFormResponseToFhirQuestionnaireResponseItems)({
8
+ awellFormDefinition: __testdata__1.formDefinitionMock,
9
+ awellFormResponse: __testdata__1.formResponseMock,
10
+ });
11
+ expect(res).toEqual([
12
+ {
13
+ linkId: '-hCGgfqR3zZ7',
14
+ text: 'Yes or no? (boolean)',
15
+ answer: [
16
+ {
17
+ valueBoolean: true,
18
+ },
19
+ ],
20
+ },
21
+ {
22
+ linkId: 'bVGD5I6ckKZx',
23
+ text: 'Single select (number)',
24
+ answer: [
25
+ {
26
+ valueCoding: {
27
+ code: '1',
28
+ display: 'Option 2',
29
+ },
30
+ },
31
+ ],
32
+ },
33
+ {
34
+ linkId: 'C9dHRQWojfkP',
35
+ text: 'Question that collects a numeric value',
36
+ answer: [
37
+ {
38
+ valueInteger: 1,
39
+ },
40
+ ],
41
+ },
42
+ {
43
+ linkId: 'KcvNZ5dJHPf0',
44
+ text: 'Single select (string)',
45
+ answer: [
46
+ {
47
+ valueCoding: {
48
+ code: 'option_3',
49
+ display: 'Option 3',
50
+ },
51
+ },
52
+ ],
53
+ },
54
+ {
55
+ linkId: 'knDhobvb9xWJ',
56
+ text: 'Multiple select (string)',
57
+ answer: [
58
+ {
59
+ valueCoding: {
60
+ code: '3232',
61
+ display: 'Option 2',
62
+ },
63
+ },
64
+ {
65
+ valueCoding: {
66
+ code: 'some option',
67
+ display: 'Option 1',
68
+ },
69
+ },
70
+ ],
71
+ },
72
+ {
73
+ linkId: 'PwQq1MVz3sYn',
74
+ text: 'Question that collects a string but long-form (textarea)',
75
+ answer: [
76
+ {
77
+ valueString: 'long hello world',
78
+ },
79
+ ],
80
+ },
81
+ {
82
+ linkId: 'saf_RczvRbay',
83
+ text: 'Multiple select (number)',
84
+ answer: [
85
+ {
86
+ valueCoding: {
87
+ code: '0',
88
+ display: 'Option 1',
89
+ },
90
+ },
91
+ {
92
+ valueCoding: {
93
+ code: '2',
94
+ display: 'Option 3',
95
+ },
96
+ },
97
+ ],
98
+ },
99
+ {
100
+ linkId: 'uuir17H9iz9P',
101
+ text: 'Question that collects a phone number',
102
+ answer: [
103
+ {
104
+ valueString: '+32476581696',
105
+ },
106
+ ],
107
+ },
108
+ {
109
+ linkId: 'vn-VF15nIsv_',
110
+ text: 'Question that collects a sstring value',
111
+ answer: [
112
+ {
113
+ valueString: 'hello world',
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ linkId: 'yiVk87BHUNYs',
119
+ text: 'Slider',
120
+ answer: [
121
+ {
122
+ valueInteger: 3,
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ linkId: 'ypR9Yudhfsbg',
128
+ text: 'Date',
129
+ answer: [
130
+ {
131
+ valueDateTime: '2024-05-04T00:00:00.000Z',
132
+ },
133
+ ],
134
+ },
135
+ ]);
136
+ });
137
+ });
138
+ //# sourceMappingURL=AwellFormResponseToFhirQuestionnaireResponseItems.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwellFormResponseToFhirQuestionnaireResponseItems.test.js","sourceRoot":"","sources":["../../../../../../src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/AwellFormResponseToFhirQuestionnaireResponseItems.test.ts"],"names":[],"mappings":";;AAAA,wBAAqE;AACrE,iDAAsE;AAEtE,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAA,oDAAiD,EAAC;YAC5D,mBAAmB,EAAE,gCAAkB;YACvC,iBAAiB,EAAE,8BAAgB;SACpC,CAAC,CAAA;QAEF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YAClB;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE;oBACN;wBACE,YAAY,EAAE,IAAI;qBACnB;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE;4BACX,IAAI,EAAE,GAAG;4BACT,OAAO,EAAE,UAAU;yBACpB;qBACF;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,wCAAwC;gBAC9C,MAAM,EAAE;oBACN;wBACE,YAAY,EAAE,CAAC;qBAChB;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE;4BACX,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,UAAU;yBACpB;qBACF;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE;4BACX,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,UAAU;yBACpB;qBACF;oBACD;wBACE,WAAW,EAAE;4BACX,IAAI,EAAE,aAAa;4BACnB,OAAO,EAAE,UAAU;yBACpB;qBACF;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,0DAA0D;gBAChE,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE,kBAAkB;qBAChC;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE;4BACX,IAAI,EAAE,GAAG;4BACT,OAAO,EAAE,UAAU;yBACpB;qBACF;oBACD;wBACE,WAAW,EAAE;4BACX,IAAI,EAAE,GAAG;4BACT,OAAO,EAAE,UAAU;yBACpB;qBACF;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,uCAAuC;gBAC7C,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE,cAAc;qBAC5B;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,wCAAwC;gBAC9C,MAAM,EAAE;oBACN;wBACE,WAAW,EAAE,aAAa;qBAC3B;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN;wBACE,YAAY,EAAE,CAAC;qBAChB;iBACF;aACF;YACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN;wBACE,aAAa,EAAE,0BAA0B;qBAC1C;iBACF;aACF;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './AwellFormResponseToFhirQuestionnaireResponseItems';
@@ -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("./AwellFormResponseToFhirQuestionnaireResponseItems"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/fhir/transformers/AwellFormResponseToFhirQuestionnaireResponse/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sFAAmE"}
@@ -0,0 +1,3 @@
1
+ import { type Form } from '../../../../../extensions/awell/v1/gql/graphql';
2
+ import { type Questionnaire } from '@medplum/fhirtypes';
3
+ export declare const AwellFormToFhirQuestionnaire: (awellFormDefinition: Form) => Questionnaire;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwellFormToFhirQuestionnaire = void 0;
4
+ const graphql_1 = require("../../../../../extensions/awell/v1/gql/graphql");
5
+ const lodash_1 = require("lodash");
6
+ const getQuestionnaireItemType = (question) => {
7
+ const userQuestionType = question.userQuestionType;
8
+ switch (userQuestionType) {
9
+ case graphql_1.UserQuestionType.Description:
10
+ return {
11
+ type: 'display',
12
+ };
13
+ case graphql_1.UserQuestionType.YesNo:
14
+ return {
15
+ type: 'boolean',
16
+ };
17
+ case graphql_1.UserQuestionType.Date:
18
+ return {
19
+ type: 'dateTime',
20
+ };
21
+ case graphql_1.UserQuestionType.Number:
22
+ return {
23
+ type: 'integer',
24
+ };
25
+ case graphql_1.UserQuestionType.LongText:
26
+ return {
27
+ type: 'text',
28
+ };
29
+ case graphql_1.UserQuestionType.MultipleChoice:
30
+ return {
31
+ type: 'choice',
32
+ };
33
+ case graphql_1.UserQuestionType.MultipleSelect:
34
+ return {
35
+ type: 'choice',
36
+ };
37
+ case graphql_1.UserQuestionType.Slider:
38
+ return {
39
+ type: 'integer',
40
+ };
41
+ case graphql_1.UserQuestionType.ShortText:
42
+ return {
43
+ type: 'string',
44
+ };
45
+ case graphql_1.UserQuestionType.Telephone:
46
+ return {
47
+ type: 'string',
48
+ };
49
+ default:
50
+ return {
51
+ type: 'string',
52
+ };
53
+ }
54
+ };
55
+ const getSelectAnswerOptions = (answerOptions) => {
56
+ return answerOptions.map((option) => {
57
+ return {
58
+ valueCoding: {
59
+ code: String(option.value_string),
60
+ display: String(option.label),
61
+ },
62
+ };
63
+ });
64
+ };
65
+ const getFormItems = (formQuestions) => {
66
+ return formQuestions.map((q) => {
67
+ var _a, _b;
68
+ const obj = {
69
+ linkId: q.id,
70
+ text: q.userQuestionType === graphql_1.UserQuestionType.Description
71
+ ? JSON.stringify(q.title) // Description titles are slate and gives errors when using JSON.parse
72
+ : q.title,
73
+ type: getQuestionnaireItemType(q).type,
74
+ repeats: q.userQuestionType === graphql_1.UserQuestionType.MultipleSelect
75
+ ? true
76
+ : undefined,
77
+ required: q.userQuestionType === graphql_1.UserQuestionType.Description
78
+ ? undefined
79
+ : (_a = q.questionConfig) === null || _a === void 0 ? void 0 : _a.mandatory,
80
+ answerOption: q.userQuestionType === graphql_1.UserQuestionType.MultipleSelect ||
81
+ q.userQuestionType === graphql_1.UserQuestionType.MultipleChoice
82
+ ? getSelectAnswerOptions((_b = q.options) !== null && _b !== void 0 ? _b : [])
83
+ : undefined,
84
+ };
85
+ // @ts-expect-error fix later
86
+ return (0, lodash_1.pickBy)(obj, (v) => v !== undefined);
87
+ });
88
+ };
89
+ const AwellFormToFhirQuestionnaire = (awellFormDefinition) => {
90
+ var _a;
91
+ return {
92
+ resourceType: 'Questionnaire',
93
+ url: `http://awellhealth.com/forms/${awellFormDefinition.definition_id}`,
94
+ name: `${(0, lodash_1.kebabCase)(awellFormDefinition.title)}-version-${awellFormDefinition.id}`,
95
+ title: `${awellFormDefinition.title} (version ${awellFormDefinition.id})`,
96
+ copyright: (_a = awellFormDefinition === null || awellFormDefinition === void 0 ? void 0 : awellFormDefinition.trademark) !== null && _a !== void 0 ? _a : undefined,
97
+ status: 'unknown',
98
+ version: awellFormDefinition.id,
99
+ publisher: 'Awell',
100
+ contact: [
101
+ {
102
+ name: 'Awell',
103
+ telecom: [
104
+ {
105
+ system: 'email',
106
+ value: 'info@awellhealth.com',
107
+ },
108
+ ],
109
+ },
110
+ ],
111
+ identifier: [
112
+ {
113
+ system: 'https://awellhealth.com/forms',
114
+ value: `${awellFormDefinition.definition_id}/published/${awellFormDefinition.id}`,
115
+ },
116
+ ],
117
+ item: getFormItems(awellFormDefinition.questions),
118
+ };
119
+ };
120
+ exports.AwellFormToFhirQuestionnaire = AwellFormToFhirQuestionnaire;
121
+ //# sourceMappingURL=AwellFormToFhirQuestionnaire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwellFormToFhirQuestionnaire.js","sourceRoot":"","sources":["../../../../../../src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _1 = require(".");
4
+ const __testdata__1 = require("../__testdata__");
5
+ describe('AwellFormResponsetoFhirQuestionnaireResponse', () => {
6
+ test('Should work', async () => {
7
+ const res = (0, _1.AwellFormToFhirQuestionnaire)(__testdata__1.formDefinitionMock);
8
+ expect(res).toEqual({
9
+ resourceType: 'Questionnaire',
10
+ url: 'http://awellhealth.com/forms/q6OwH0yp2JKq',
11
+ name: 'form-with-all-question-types-version-Z-N6CVFy9cv-',
12
+ title: 'Form with all question types (version Z-N6CVFy9cv-)',
13
+ status: 'unknown',
14
+ version: 'Z-N6CVFy9cv-',
15
+ publisher: 'Awell',
16
+ contact: [
17
+ {
18
+ name: 'Awell',
19
+ telecom: [{ system: 'email', value: 'info@awellhealth.com' }],
20
+ },
21
+ ],
22
+ identifier: [
23
+ {
24
+ system: 'https://awellhealth.com/forms',
25
+ value: 'q6OwH0yp2JKq/published/Z-N6CVFy9cv-',
26
+ },
27
+ ],
28
+ item: [
29
+ {
30
+ linkId: 'MUha7ldV6gJL',
31
+ text: '"<p class=\\"slate-p\\">This is a description question. It&#x27;s doesn&#x27;t collect any data but just shows some text to the user.</p>"',
32
+ type: 'display',
33
+ },
34
+ {
35
+ linkId: 'bVGD5I6ckKZx',
36
+ text: 'Single select (number)',
37
+ type: 'choice',
38
+ answerOption: [
39
+ { valueCoding: { code: '0', display: 'Option 1' } },
40
+ { valueCoding: { code: '1', display: 'Option 2' } },
41
+ { valueCoding: { code: '2', display: 'Option 3' } },
42
+ ],
43
+ },
44
+ {
45
+ linkId: 'KcvNZ5dJHPf0',
46
+ text: 'Single select (string)',
47
+ type: 'choice',
48
+ answerOption: [
49
+ { valueCoding: { code: 'option_1', display: 'Option 1' } },
50
+ { valueCoding: { code: 'option_2', display: 'Option 2' } },
51
+ { valueCoding: { code: 'option_3', display: 'Option 3' } },
52
+ { valueCoding: { code: 'option_4', display: 'helloo' } },
53
+ { valueCoding: { code: 'option_5', display: 'helloooooo' } },
54
+ { valueCoding: { code: 'option_6', display: 'test' } },
55
+ ],
56
+ },
57
+ {
58
+ linkId: 'saf_RczvRbay',
59
+ text: 'Multiple select (number)',
60
+ type: 'choice',
61
+ repeats: true,
62
+ answerOption: [
63
+ { valueCoding: { code: '0', display: 'Option 1' } },
64
+ { valueCoding: { code: '1', display: 'Option 2' } },
65
+ { valueCoding: { code: '2', display: 'Option 3' } },
66
+ { valueCoding: { code: '3', display: 'Option 4' } },
67
+ ],
68
+ },
69
+ {
70
+ linkId: 'knDhobvb9xWJ',
71
+ text: 'Multiple select (string)',
72
+ type: 'choice',
73
+ repeats: true,
74
+ answerOption: [
75
+ { valueCoding: { code: 'some option', display: 'Option 1' } },
76
+ { valueCoding: { code: '3232', display: 'Option 2' } },
77
+ { valueCoding: { code: 'another option', display: 'Option 3' } },
78
+ { valueCoding: { code: 'option 4', display: 'fdsfds' } },
79
+ ],
80
+ },
81
+ {
82
+ linkId: '-hCGgfqR3zZ7',
83
+ text: 'Yes or no? (boolean)',
84
+ type: 'boolean',
85
+ },
86
+ { linkId: 'yiVk87BHUNYs', text: 'Slider', type: 'integer' },
87
+ { linkId: 'ypR9Yudhfsbg', text: 'Date', type: 'dateTime' },
88
+ {
89
+ linkId: 'C9dHRQWojfkP',
90
+ text: 'Question that collects a numeric value',
91
+ type: 'integer',
92
+ },
93
+ {
94
+ linkId: 'vn-VF15nIsv_',
95
+ text: 'Question that collects a sstring value',
96
+ type: 'string',
97
+ },
98
+ {
99
+ linkId: 'PwQq1MVz3sYn',
100
+ text: 'Question that collects a string but long-form (textarea)',
101
+ type: 'text',
102
+ },
103
+ {
104
+ linkId: 'uuir17H9iz9P',
105
+ text: 'Question that collects a phone number',
106
+ type: 'string',
107
+ },
108
+ ],
109
+ });
110
+ });
111
+ });
112
+ //# sourceMappingURL=AwellFormToFhirQuestionnaire.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwellFormToFhirQuestionnaire.test.js","sourceRoot":"","sources":["../../../../../../src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/AwellFormToFhirQuestionnaire.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './AwellFormToFhirQuestionnaire';
@@ -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("./AwellFormToFhirQuestionnaire"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/fhir/transformers/AwellFormToFhirQuestionnaire/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA8C"}
@@ -0,0 +1,2 @@
1
+ import { type Form } from '../../../../../extensions/awell/v1/gql/graphql';
2
+ export declare const formDefinitionMock: Form;