@openmrs/esm-fast-data-entry-app 1.0.1-pre.124 → 1.0.1-pre.128

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 (60) hide show
  1. package/dist/129.js +1 -0
  2. package/dist/129.js.map +1 -0
  3. package/dist/153.js +1 -1
  4. package/dist/153.js.map +1 -1
  5. package/dist/208.js +1 -1
  6. package/dist/319.js +1 -1
  7. package/dist/365.js +1 -0
  8. package/dist/365.js.map +1 -0
  9. package/dist/436.js +1 -0
  10. package/dist/436.js.map +1 -0
  11. package/dist/460.js +1 -1
  12. package/dist/532.js +1 -0
  13. package/dist/532.js.map +1 -0
  14. package/dist/{651.js → 540.js} +1 -1
  15. package/dist/540.js.map +1 -0
  16. package/dist/574.js +1 -1
  17. package/dist/591.js +1 -1
  18. package/dist/593.js +1 -1
  19. package/dist/706.js +1 -1
  20. package/dist/706.js.map +1 -1
  21. package/dist/757.js +1 -1
  22. package/dist/788.js +1 -1
  23. package/dist/807.js +1 -1
  24. package/dist/833.js +1 -1
  25. package/dist/883.js +1 -1
  26. package/dist/883.js.map +1 -1
  27. package/dist/main.js +1 -1
  28. package/dist/main.js.map +1 -1
  29. package/dist/openmrs-esm-fast-data-entry-app.js +1 -1
  30. package/dist/openmrs-esm-fast-data-entry-app.js.buildmanifest.json +142 -167
  31. package/dist/openmrs-esm-fast-data-entry-app.js.map +1 -1
  32. package/dist/routes.json +1 -1
  33. package/package.json +3 -2
  34. package/src/FormBootstrap.tsx +10 -1
  35. package/src/config-schema.ts +20 -0
  36. package/src/form-entry-workflow/FormEntryWorkflow.tsx +20 -14
  37. package/src/group-form-entry-workflow/GroupSessionWorkspace.tsx +28 -55
  38. package/src/group-form-entry-workflow/SessionDetailsForm.tsx +50 -4
  39. package/src/group-form-entry-workflow/configurable-questions/ConfigurableQuestionsSection.tsx +47 -0
  40. package/src/hooks/index.ts +8 -1
  41. package/src/hooks/useForm.ts +69 -0
  42. package/src/types.ts +20 -0
  43. package/translations/am.json +3 -0
  44. package/translations/ar.json +3 -0
  45. package/translations/en.json +3 -0
  46. package/translations/es.json +3 -0
  47. package/translations/fr.json +3 -0
  48. package/translations/he.json +3 -0
  49. package/translations/km.json +3 -0
  50. package/dist/262.js +0 -1
  51. package/dist/262.js.map +0 -1
  52. package/dist/279.js +0 -1
  53. package/dist/279.js.map +0 -1
  54. package/dist/651.js.map +0 -1
  55. package/dist/884.js +0 -1
  56. package/dist/884.js.map +0 -1
  57. package/dist/889.js +0 -1
  58. package/dist/889.js.map +0 -1
  59. package/dist/959.js +0 -1
  60. package/dist/959.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openmrs-esm-fast-data-entry-app.js","mappings":"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","sources":["webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/load script","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/consumes","webpack://@openmrs/esm-fast-data-entry-app/webpack/container-entry","webpack://@openmrs/esm-fast-data-entry-app/webpack/bootstrap","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/compat get default export","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/define property getters","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/ensure chunk","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/global","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/make namespace object","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/node module decorator","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/sharing","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/publicPath","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/jsonp chunk loading","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/nonce","webpack://@openmrs/esm-fast-data-entry-app/webpack/startup"],"names":["inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","findSingletonVersionKey","getInvalidSingletonVersionMessage","getSingletonVersion","warn","get","loadSingletonVersionCheckFallback","installedModules","moduleToHandlerMapping","chunkMapping","moduleMap","__webpack_require__","e","then","module","getScope","R","o","Promise","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","loaded","__webpack_modules__","call","m","c","n","getter","__esModule","a","definition","key","Object","defineProperty","enumerable","f","chunkId","all","keys","reduce","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","Symbol","toStringTag","value","nmd","paths","children","initPromises","initTokens","initToken","indexOf","scope","uniqueName","register","version","factory","eager","versions","activeVersion","from","scriptUrl","importScripts","location","currentScript","replace","p","str","split","map","exec","apply","b","t","range","pop","requiredVersion","scopeName","msg","console","entry","promise","fallback","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","test","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
1
+ {"version":3,"file":"openmrs-esm-fast-data-entry-app.js","mappings":"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","sources":["webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/load script","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/consumes","webpack://@openmrs/esm-fast-data-entry-app/webpack/container-entry","webpack://@openmrs/esm-fast-data-entry-app/webpack/bootstrap","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/compat get default export","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/define property getters","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/ensure chunk","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/global","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/make namespace object","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/node module decorator","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/sharing","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/publicPath","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/jsonp chunk loading","webpack://@openmrs/esm-fast-data-entry-app/webpack/runtime/nonce","webpack://@openmrs/esm-fast-data-entry-app/webpack/startup"],"names":["inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","findSingletonVersionKey","getInvalidSingletonVersionMessage","getSingletonVersion","warn","get","loadSingletonVersionCheckFallback","installedModules","moduleToHandlerMapping","chunkMapping","moduleMap","__webpack_require__","e","then","module","getScope","R","o","Promise","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","loaded","__webpack_modules__","call","m","c","n","getter","__esModule","a","definition","key","Object","defineProperty","enumerable","f","chunkId","all","keys","reduce","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","Symbol","toStringTag","value","nmd","paths","children","initPromises","initTokens","initToken","indexOf","scope","uniqueName","register","version","factory","eager","versions","activeVersion","from","scriptUrl","importScripts","location","currentScript","replace","p","str","split","map","exec","apply","b","t","range","pop","requiredVersion","scopeName","msg","console","entry","promise","fallback","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","test","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
package/dist/routes.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":"^1.2.0","webservices.rest":"^2.2.0"},"pages":[{"component":"root","routeRegex":"forms","online":true,"offline":true}],"extensions":[{"name":"forms-app-link","slot":"app-menu-slot","component":"formsAppMenuLink","online":true,"offline":true}],"version":"1.0.1-pre.124"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":"^1.2.0","webservices.rest":"^2.2.0"},"pages":[{"component":"root","routeRegex":"forms","online":true,"offline":true}],"extensions":[{"name":"forms-app-link","slot":"app-menu-slot","component":"formsAppMenuLink","online":true,"offline":true}],"version":"1.0.1-pre.128"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-fast-data-entry-app",
3
- "version": "1.0.1-pre.124",
3
+ "version": "1.0.1-pre.128",
4
4
  "license": "MPL-2.0",
5
5
  "description": "An OpenMRS 3.x microfrontend",
6
6
  "browser": "dist/openmrs-esm-fast-data-entry-app.js",
@@ -94,7 +94,8 @@
94
94
  "dependencies": {
95
95
  "i18next": "^21.10.0",
96
96
  "i18next-parser": "^6.6.0",
97
- "react-hook-form": "^7.34.2"
97
+ "react-hook-form": "^7.34.2",
98
+ "uuid": "^9.0.1"
98
99
  },
99
100
  "packageManager": "yarn@3.6.4",
100
101
  "stableVersion": "1.0.0"
@@ -1,6 +1,7 @@
1
- import React, { useEffect, useState } from "react";
1
+ import React, { useContext, useEffect, useState } from "react";
2
2
  import { detach, ExtensionSlot } from "@openmrs/esm-framework";
3
3
  import useGetPatient from "./hooks/useGetPatient";
4
+ import GroupFormWorkflowContext from "./context/GroupFormWorkflowContext";
4
5
 
5
6
  export interface Order {
6
7
  uuid: string;
@@ -98,12 +99,18 @@ export interface Encounter {
98
99
  obs: Array<Observation>;
99
100
  orders: Array<Order>;
100
101
  }
102
+
103
+ type PreFilledQuestions = {
104
+ [key: string]: string;
105
+ };
106
+
101
107
  interface FormParams {
102
108
  formUuid: string;
103
109
  patientUuid: string;
104
110
  visitUuid?: string;
105
111
  visitTypeUuid?: string;
106
112
  encounterUuid?: string;
113
+ preFilledQuestions?: PreFilledQuestions;
107
114
  showDiscardSubmitButtons?: boolean;
108
115
  handlePostResponse?: (Encounter) => void;
109
116
  handleEncounterCreate?: (Object) => void;
@@ -121,6 +128,7 @@ const FormBootstrap = ({
121
128
  handleOnValidate,
122
129
  }: FormParams) => {
123
130
  const patient = useGetPatient(patientUuid);
131
+ const { activeSessionMeta } = useContext(GroupFormWorkflowContext);
124
132
 
125
133
  useEffect(() => {
126
134
  return () => detach("form-widget-slot", "form-widget-slot");
@@ -156,6 +164,7 @@ const FormBootstrap = ({
156
164
  handleEncounterCreate,
157
165
  handleOnValidate,
158
166
  showDiscardSubmitButtons: false,
167
+ preFilledQuestions: { ...activeSessionMeta },
159
168
  }}
160
169
  />
161
170
  )}
@@ -82,6 +82,26 @@ export const configSchema = {
82
82
  _default: "fa8fedc0-c066-4da3-8dc1-2ad8621fc480",
83
83
  },
84
84
  },
85
+ specificQuestions: {
86
+ _type: Type.Array,
87
+ _description: "List of specific questions to populate forms.",
88
+ _elements: {
89
+ forms: {
90
+ _type: Type.Array,
91
+ _description: "List of form UUIDs for which the question applies.",
92
+ _elements: {
93
+ _type: Type.UUID,
94
+ },
95
+ _default: [],
96
+ },
97
+ questionId: {
98
+ _type: Type.String,
99
+ _description: "ID of the question.",
100
+ _default: "",
101
+ },
102
+ },
103
+ _default: [],
104
+ },
85
105
  };
86
106
 
87
107
  export type Form = {
@@ -6,6 +6,7 @@ import PatientCard from "../patient-card/PatientCard";
6
6
  import styles from "./styles.scss";
7
7
  import PatientSearchHeader from "./patient-search-header";
8
8
  import { useTranslation } from "react-i18next";
9
+ import { v4 as uuid } from "uuid";
9
10
  import FormWorkflowContext, {
10
11
  FormWorkflowProvider,
11
12
  } from "../context/FormWorkflowContext";
@@ -72,11 +73,7 @@ const FormWorkspace = () => {
72
73
  const [visit, setVisit] = useState(null);
73
74
  const { sessionLocation } = useSession();
74
75
 
75
- const {
76
- saveVisit,
77
- updateEncounter,
78
- success: visitSaveSuccess,
79
- } = useStartVisit({
76
+ const { updateEncounter, success: visitSaveSuccess } = useStartVisit({
80
77
  showSuccessNotification: false,
81
78
  showErrorNotification: true,
82
79
  });
@@ -110,15 +107,24 @@ const FormWorkspace = () => {
110
107
  // Create a visit with the same date as the encounter being saved
111
108
  const visitStartDatetime = new Date(payload.encounterDatetime);
112
109
  const visitStopDatetime = new Date(payload.encounterDatetime);
113
- saveVisit({
114
- patientUuid: activePatientUuid,
115
- startDatetime: visitStartDatetime.toISOString(),
116
- stopDatetime: visitStopDatetime.toISOString(),
117
- visitType: singleSessionVisitTypeUuid,
118
- location: sessionLocation?.uuid,
119
- });
110
+ const visitInfo = {
111
+ startDatetime: visitStartDatetime,
112
+ stopDatetime: visitStopDatetime,
113
+ uuid: uuid(),
114
+ patient: {
115
+ uuid: activePatientUuid,
116
+ },
117
+ location: {
118
+ uuid: sessionLocation?.uuid,
119
+ },
120
+ visitType: {
121
+ uuid: singleSessionVisitTypeUuid,
122
+ },
123
+ };
124
+
125
+ payload.visit = visitInfo;
120
126
  },
121
- [activePatientUuid, singleSessionVisitTypeUuid, saveVisit, sessionLocation]
127
+ [activePatientUuid, singleSessionVisitTypeUuid, sessionLocation]
122
128
  );
123
129
 
124
130
  return (
@@ -142,7 +148,7 @@ const FormWorkspace = () => {
142
148
  />
143
149
  </div>
144
150
  <div className={styles.rightPanel}>
145
- <h4>Forms filled</h4>
151
+ <h4>{t("formsFilled", "Forms filled")}</h4>
146
152
  <div className={styles.patientCardsSection}>
147
153
  {patientUuids.map((patientUuid) => (
148
154
  <PatientCard
@@ -9,9 +9,9 @@ import React, { useCallback, useContext, useEffect, useState } from "react";
9
9
  import PatientCard from "../patient-card/PatientCard";
10
10
  import styles from "./styles.scss";
11
11
  import { useTranslation } from "react-i18next";
12
+ import { v4 as uuid } from "uuid";
12
13
  import GroupFormWorkflowContext from "../context/GroupFormWorkflowContext";
13
14
  import FormBootstrap from "../FormBootstrap";
14
- import useStartVisit from "../hooks/useStartVisit";
15
15
  import CompleteModal from "../CompleteModal";
16
16
  import CancelModal from "../CancelModal";
17
17
 
@@ -100,53 +100,17 @@ const GroupSessionWorkspace = () => {
100
100
  } = useContext(GroupFormWorkflowContext);
101
101
 
102
102
  const { sessionLocation } = useSession();
103
- const [encounter, setEncounter] = useState(null);
104
- const [visit, setVisit] = useState(null);
105
103
 
106
- const {
107
- saveVisit,
108
- updateEncounter,
109
- success: visitSaveSuccess,
110
- } = useStartVisit({
111
- showSuccessNotification: false,
112
- showErrorNotification: true,
113
- });
114
-
115
- // 0. user clicks "next patient" in WorkflowNavigationButtons
116
- // which triggers submitForNext() if workflowState === "EDIT_FORM"
117
-
118
- // 1. save the new visit uuid and start form submission
119
104
  useEffect(() => {
120
- if (
121
- visitSaveSuccess &&
122
- visitSaveSuccess.data.patient.uuid === activePatientUuid
123
- ) {
124
- setVisit(visitSaveSuccess.data);
125
- // Update visit UUID on workflow
126
- updateVisitUuid(visitSaveSuccess.data.uuid);
105
+ if (activeVisitUuid) {
106
+ updateVisitUuid(activeVisitUuid);
127
107
  }
128
- }, [
129
- visitSaveSuccess,
130
- updateVisitUuid,
131
- activeVisitUuid,
132
- activePatientUuid,
133
- visit,
134
- setVisit,
135
- ]);
108
+ }, [updateVisitUuid, activeVisitUuid, activePatientUuid]);
136
109
 
137
- // 2. If there's no active visit, trigger the creation of a new one
110
+ // If there's no active visit, trigger the creation of a new one
138
111
  const handleEncounterCreate = useCallback(
139
112
  (payload) => {
140
113
  // Create a visit with the same date as the encounter being saved
141
- if (!activeVisitUuid) {
142
- saveVisit({
143
- patientUuid: activePatientUuid,
144
- startDatetime: activeSessionMeta.sessionDate,
145
- stopDatetime: activeSessionMeta.sessionDate,
146
- visitType: groupVisitTypeUuid,
147
- location: sessionLocation?.uuid,
148
- });
149
- }
150
114
  const obsTime = new Date(activeSessionMeta.sessionDate);
151
115
  payload.obs.forEach((item, index) => {
152
116
  payload.obs[index] = {
@@ -158,7 +122,7 @@ const GroupSessionWorkspace = () => {
158
122
  obsDatetime: obsTime.toISOString(),
159
123
  };
160
124
  });
161
- // If this is a newly created encounter and visit, add session concepts to encounter payload.
125
+ const visitUuid = activeVisitUuid ? activeVisitUuid : uuid();
162
126
  if (!activeVisitUuid) {
163
127
  Object.entries(groupSessionConcepts).forEach(([field, uuid]) => {
164
128
  payload.obs.push({
@@ -166,34 +130,43 @@ const GroupSessionWorkspace = () => {
166
130
  value: activeSessionMeta?.[field],
167
131
  });
168
132
  });
133
+ // If this is a newly created encounter and visit, add session concepts to encounter payload.
134
+ const visitInfo = {
135
+ startDatetime: activeSessionMeta.sessionDate,
136
+ stopDatetime: activeSessionMeta.sessionDate,
137
+ uuid: visitUuid,
138
+ patient: {
139
+ uuid: activePatientUuid,
140
+ },
141
+ location: {
142
+ uuid: sessionLocation?.uuid,
143
+ },
144
+ visitType: {
145
+ uuid: groupVisitTypeUuid,
146
+ },
147
+ };
148
+ payload.visit = visitInfo;
149
+ updateVisitUuid(visitUuid);
169
150
  }
170
151
  payload.location = sessionLocation?.uuid;
171
152
  payload.encounterDatetime = obsTime.toISOString();
172
153
  },
173
154
  [
174
- activePatientUuid,
175
- activeVisitUuid,
176
155
  activeSessionMeta,
156
+ activeVisitUuid,
157
+ sessionLocation?.uuid,
177
158
  groupSessionConcepts,
159
+ activePatientUuid,
178
160
  groupVisitTypeUuid,
179
- saveVisit,
180
- sessionLocation,
161
+ updateVisitUuid,
181
162
  ]
182
163
  );
183
164
 
184
- // 3. Update encounter so that it belongs to the created visit
185
- useEffect(() => {
186
- if (encounter && visit && encounter.patient?.uuid === visit.patient?.uuid) {
187
- updateEncounter({ uuid: encounter.uuid, visit: visit.uuid });
188
- }
189
- }, [encounter, updateEncounter, visit]);
190
-
191
- // 4. Once form has been posted, save the new encounter uuid so we can edit it later
165
+ // Once form has been posted, save the new encounter uuid so we can edit it later
192
166
  const handlePostResponse = useCallback(
193
167
  (encounter) => {
194
168
  if (encounter && encounter.uuid) {
195
169
  saveEncounter(encounter.uuid);
196
- setEncounter(encounter);
197
170
  }
198
171
  },
199
172
  [saveEncounter]
@@ -7,14 +7,26 @@ import {
7
7
  DatePickerInput,
8
8
  } from "@carbon/react";
9
9
  import React, { useContext } from "react";
10
+ import { useConfig } from "@openmrs/esm-framework";
11
+ import { useParams } from "react-router-dom";
10
12
  import styles from "./styles.scss";
11
13
  import { useTranslation } from "react-i18next";
12
14
  import { Controller, useFormContext } from "react-hook-form";
13
15
  import { AttendanceTable } from "./attendance-table";
14
16
  import GroupFormWorkflowContext from "../context/GroupFormWorkflowContext";
15
17
  import useGetPatients from "../hooks/useGetPatients";
18
+ import ConfigurableQuestionsSection from "./configurable-questions/ConfigurableQuestionsSection";
19
+ import useSpecificQuestions from "../hooks/useForm";
20
+
21
+ interface ParamTypes {
22
+ formUuid?: string;
23
+ }
16
24
 
17
25
  const SessionDetailsForm = () => {
26
+ const { specificQuestions } = useConfig();
27
+ const { formUuid } = useParams() as ParamTypes;
28
+ const { questions } = useSpecificQuestions(formUuid, specificQuestions);
29
+
18
30
  const { t } = useTranslation();
19
31
  const {
20
32
  register,
@@ -54,7 +66,7 @@ const SessionDetailsForm = () => {
54
66
  labelText={t("sessionName", "Session Name")}
55
67
  {...register("sessionName", { required: true })}
56
68
  invalid={errors.sessionName}
57
- invalidText={"This field is required"}
69
+ invalidText={t("requiredField", "This field is required")}
58
70
  />
59
71
  <TextInput
60
72
  id="text"
@@ -62,7 +74,7 @@ const SessionDetailsForm = () => {
62
74
  labelText={t("practitionerName", "Practitioner Name")}
63
75
  {...register("practitionerName", { required: true })}
64
76
  invalid={errors.practitionerName}
65
- invalidText={"This field is required"}
77
+ invalidText={t("requiredField", "This field is required")}
66
78
  />
67
79
  <Controller
68
80
  name="sessionDate"
@@ -81,7 +93,10 @@ const SessionDetailsForm = () => {
81
93
  placeholder="mm/dd/yyyy"
82
94
  size="md"
83
95
  invalid={errors.sessionDate}
84
- invalidText={"This field is required"}
96
+ invalidText={t(
97
+ "requiredField",
98
+ "This field is required"
99
+ )}
85
100
  />
86
101
  </DatePicker>
87
102
  )}
@@ -92,7 +107,7 @@ const SessionDetailsForm = () => {
92
107
  labelText={t("sessionNotes", "Session Notes")}
93
108
  {...register("sessionNotes", { required: true })}
94
109
  invalid={errors.sessionNotes}
95
- invalidText={"This field is required"}
110
+ invalidText={t("requiredField", "This field is required")}
96
111
  />
97
112
  </div>
98
113
  </Layer>
@@ -122,6 +137,37 @@ const SessionDetailsForm = () => {
122
137
  </Layer>
123
138
  </Tile>
124
139
  </Layer>
140
+ {questions?.length > 0 ? (
141
+ <>
142
+ <h4>{t("sessionSpecificDetails", "3. Specific details")}</h4>
143
+ <div>
144
+ <p>
145
+ {t(
146
+ "sessionSpecificDetailsDescription",
147
+ "They will be mapped to form responses for all patients as pre-filled data."
148
+ )}
149
+ </p>
150
+ </div>
151
+ <Layer>
152
+ <Tile className={styles.formSectionTile}>
153
+ <Layer>
154
+ <div
155
+ style={{
156
+ display: "flex",
157
+ flexDirection: "column",
158
+ rowGap: "1.5rem",
159
+ }}
160
+ >
161
+ <ConfigurableQuestionsSection
162
+ register={register}
163
+ specificQuestions={questions}
164
+ />
165
+ </div>
166
+ </Layer>
167
+ </Tile>
168
+ </Layer>
169
+ </>
170
+ ) : null}
125
171
  </div>
126
172
  )}
127
173
  </div>
@@ -0,0 +1,47 @@
1
+ import React from "react";
2
+ import { TextInput, Select, SelectItem } from "@carbon/react";
3
+ import { FieldValues, UseFormRegister } from "react-hook-form";
4
+ import { SpecificQuestion } from "../../types";
5
+
6
+ interface ConfigurableQuestionsSectionProps {
7
+ specificQuestions: Array<SpecificQuestion>;
8
+ register?: UseFormRegister<FieldValues>;
9
+ }
10
+
11
+ const ConfigurableQuestionsSection: React.FC<
12
+ ConfigurableQuestionsSectionProps
13
+ > = ({ register, specificQuestions }) => {
14
+ return (
15
+ <>
16
+ {specificQuestions?.map((specificQuestion) => (
17
+ <div key={specificQuestion.question.id}>
18
+ {specificQuestion?.answers?.length > 0 ? (
19
+ <Select
20
+ {...register(specificQuestion.question.id, { required: false })}
21
+ id={specificQuestion.question.id}
22
+ labelText={specificQuestion.question.display}
23
+ >
24
+ <SelectItem value="" text="" />
25
+ {specificQuestion.answers.map((answer) => (
26
+ <SelectItem
27
+ key={answer.value}
28
+ value={answer.value}
29
+ text={answer.display}
30
+ />
31
+ ))}
32
+ </Select>
33
+ ) : (
34
+ <TextInput
35
+ id={specificQuestion.question.id}
36
+ {...register(specificQuestion.question.id, { required: false })}
37
+ type="text"
38
+ labelText={specificQuestion.question.display}
39
+ />
40
+ )}
41
+ </div>
42
+ ))}
43
+ </>
44
+ );
45
+ };
46
+
47
+ export default ConfigurableQuestionsSection;
@@ -2,6 +2,13 @@ import useGetAllForms from "./useGetAllForms";
2
2
  import useGetPatient from "./useGetPatient";
3
3
  import useFormState from "./useFormState";
4
4
  import useGetEncounter from "./useGetEncounter";
5
+ import useForm from "./useForm";
5
6
 
6
- export { useGetAllForms, useGetPatient, useFormState, useGetEncounter };
7
+ export {
8
+ useGetAllForms,
9
+ useGetPatient,
10
+ useFormState,
11
+ useGetEncounter,
12
+ useForm,
13
+ };
7
14
  export * from "./usePostEndpoint";
@@ -0,0 +1,69 @@
1
+ import { type FetchResponse, openmrsFetch } from "@openmrs/esm-framework";
2
+ import useSWR from "swr";
3
+ import { SpecificQuestion, SpecificQuestionConfig } from "../types";
4
+ import { useMemo } from "react";
5
+
6
+ const formUrl = "/ws/rest/v1/o3/forms";
7
+
8
+ export const useSpecificQuestions = (
9
+ formUuid: string,
10
+ specificQuestionConfig: Array<SpecificQuestionConfig>
11
+ ) => {
12
+ const specificQuestionsToLoad = useMemo(
13
+ () => getQuestionIdsByFormId(formUuid, specificQuestionConfig),
14
+ [formUuid, specificQuestionConfig]
15
+ );
16
+
17
+ const { data, error } = useSWR<FetchResponse, Error>(
18
+ specificQuestionsToLoad ? `${formUrl}/${formUuid}` : null,
19
+ openmrsFetch
20
+ );
21
+
22
+ const specificQuestions = getQuestionsByIds(
23
+ specificQuestionsToLoad,
24
+ data?.data
25
+ );
26
+
27
+ return {
28
+ questions: specificQuestions || null,
29
+ isError: error,
30
+ isLoading: !data && !error,
31
+ };
32
+ };
33
+
34
+ function getQuestionIdsByFormId(
35
+ formUuid: string,
36
+ specificQuestionConfig: Array<SpecificQuestionConfig>
37
+ ) {
38
+ const matchingQuestions = specificQuestionConfig.filter((question) =>
39
+ question.forms.includes(formUuid)
40
+ );
41
+ return matchingQuestions.map((question) => question.questionId);
42
+ }
43
+
44
+ function getQuestionsByIds(questionIds, formSchema): Array<SpecificQuestion> {
45
+ if (!formSchema || questionIds.lenght <= 0) {
46
+ return [];
47
+ }
48
+ const conceptLabels = formSchema.conceptReferences;
49
+ return formSchema.pages.flatMap((page) =>
50
+ page.sections.flatMap((section) =>
51
+ section.questions
52
+ .filter((question) => questionIds.includes(question.id))
53
+ .map((question) => ({
54
+ question: {
55
+ display:
56
+ question.label ??
57
+ conceptLabels[question.questionOptions.concept]?.display,
58
+ id: question.id,
59
+ },
60
+ answers: (question.questionOptions.answers ?? []).map((answer) => ({
61
+ value: answer.concept,
62
+ display: answer.label ?? conceptLabels[answer.concept]?.display,
63
+ })),
64
+ }))
65
+ )
66
+ );
67
+ }
68
+
69
+ export default useSpecificQuestions;
package/src/types.ts ADDED
@@ -0,0 +1,20 @@
1
+ export interface Concept {
2
+ uuid: string;
3
+ display: string;
4
+ }
5
+
6
+ export interface SpecificQuestion {
7
+ question: {
8
+ id: string;
9
+ display: string;
10
+ };
11
+ answers: Array<{
12
+ value: string;
13
+ display: string;
14
+ }>;
15
+ }
16
+
17
+ export interface SpecificQuestionConfig {
18
+ forms: Array<string>;
19
+ questionId: string;
20
+ }
@@ -45,6 +45,7 @@
45
45
  "postError": "POST Error",
46
46
  "practitionerName": "Practitioner Name",
47
47
  "remove": "Remove",
48
+ "requiredField": "This field is required",
48
49
  "resumeGroupSession": "Resume Group Session",
49
50
  "resumeSession": "Resume Session",
50
51
  "save": "Save",
@@ -62,6 +63,8 @@
62
63
  "sessionName": "Session Name",
63
64
  "sessionNotes": "Session Notes",
64
65
  "sessionParticipants": "2. Session participants",
66
+ "sessionSpecificDetails": "3. Specific details",
67
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
65
68
  "startGroupSession": "Start Group Session",
66
69
  "trySearchWithPatientUniqueID": "Try searching with the cohort's description",
67
70
  "unknown": "Unknown",
@@ -45,6 +45,7 @@
45
45
  "postError": "خطأ POST",
46
46
  "practitionerName": "اسم الممارس",
47
47
  "remove": "إزالة",
48
+ "requiredField": "This field is required",
48
49
  "resumeGroupSession": "استئناف جلسة المجموعة",
49
50
  "resumeSession": "استئناف الجلسة",
50
51
  "save": "حفظ",
@@ -62,6 +63,8 @@
62
63
  "sessionName": "اسم الجلسة",
63
64
  "sessionNotes": "ملاحظات الجلسة",
64
65
  "sessionParticipants": "2. المشاركون في الجلسة",
66
+ "sessionSpecificDetails": "3. Specific details",
67
+ "sessionSpecificDetailsDescription": "They will be mapped to form responses for all patients as pre-filled data.",
65
68
  "startGroupSession": "بدء جلسة المجموعة",
66
69
  "trySearchWithPatientUniqueID": "حاول البحث باستخدام وصف الفوج",
67
70
  "unknown": "غير معروف",