@ampath/esm-patient-registration-app 9.2.0-next.19 → 9.2.0-next.21

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 (45) hide show
  1. package/dist/1453.js +1 -0
  2. package/dist/1453.js.map +1 -0
  3. package/dist/4300.js +1 -1
  4. package/dist/5365.js +2 -0
  5. package/dist/5365.js.map +1 -0
  6. package/dist/6168.js +1 -0
  7. package/dist/6168.js.map +1 -0
  8. package/dist/6583.js +1 -1
  9. package/dist/7821.js +1 -1
  10. package/dist/8487.js +1 -0
  11. package/dist/8487.js.map +1 -0
  12. package/dist/main.js +1 -1
  13. package/dist/openmrs-esm-patient-registration-app.js +1 -1
  14. package/dist/openmrs-esm-patient-registration-app.js.buildmanifest.json +101 -101
  15. package/dist/routes.json +1 -1
  16. package/package.json +1 -1
  17. package/src/patient-registration/client-registry/client-registry-search.component.tsx +5 -53
  18. package/src/patient-registration/client-registry/client-registry.resource.ts +8 -29
  19. package/src/patient-registration/client-registry/constants/civil-status.ts +29 -0
  20. package/src/patient-registration/client-registry/constants/person-attribute-types.ts +21 -0
  21. package/src/patient-registration/client-registry/hie-client-adapter.ts +327 -1
  22. package/src/patient-registration/client-registry/mock-client.ts +627 -0
  23. package/src/patient-registration/client-registry/new-client/new-client-registration/new-client-registration.scss +25 -0
  24. package/src/patient-registration/client-registry/new-client/new-client-registration/new-client-registration.tsx +276 -0
  25. package/src/patient-registration/client-registry/new-client/new-client-tab.component.tsx +6 -4
  26. package/src/patient-registration/client-registry/new-client/registration-form-data.ts +251 -0
  27. package/src/patient-registration/client-registry/types/index.ts +320 -6
  28. package/src/patient-registration/client-registry-search/client-registry-dependant-details.component.tsx +1 -1
  29. package/src/patient-registration/client-registry-search/client-registry-details.component.tsx +1 -1
  30. package/src/patient-registration/client-registry-search/client-registry-patient-details.component.tsx +1 -1
  31. package/src/patient-registration/client-registry-search/client-registry-search.component.tsx +1 -1
  32. package/src/patient-registration/client-registry-search/client-registry-verification-tag.component.tsx +1 -1
  33. package/src/patient-registration/client-registry-search/client-registry.resource.ts +16 -3
  34. package/src/patient-registration/client-registry-search/map-client-registry-to-form-utils.ts +1 -1
  35. package/translations/en.json +1 -0
  36. package/dist/2523.js +0 -1
  37. package/dist/2523.js.map +0 -1
  38. package/dist/5239.js +0 -2
  39. package/dist/5239.js.map +0 -1
  40. package/dist/9853.js +0 -1
  41. package/dist/9853.js.map +0 -1
  42. package/dist/9898.js +0 -1
  43. package/dist/9898.js.map +0 -1
  44. package/src/patient-registration/client-registry-search/client-registry.types.ts +0 -243
  45. /package/dist/{5239.js.LICENSE.txt → 5365.js.LICENSE.txt} +0 -0
@@ -0,0 +1,276 @@
1
+ import { navigate, showSnackbar, useLocations, useSession } from '@openmrs/esm-framework';
2
+ import React, { useRef, useState } from 'react';
3
+ import { t } from 'i18next';
4
+ import { Select, SelectItem, Button, InlineLoading } from '@carbon/react';
5
+ import { EducationOptions, MaritalOptions, OccupationOptions, ReligionOptions } from '../registration-form-data';
6
+ import {
7
+ createPatientDependantRelationsips,
8
+ generateAmrsCreatePatientIdentifiersPayload,
9
+ generateAmrsPersonPayload,
10
+ } from '../../hie-client-adapter';
11
+ import { type AmrsErrorResponse, IdentifierTypesUuids, PersonAttributeTypeUuids, type HieClient } from '../../types';
12
+ import { generateAmrsUniversalIdentifier } from '../../../patient-registration.resource';
13
+ import { createPatient } from '../../../client-registry-search/client-registry.resource';
14
+ import styles from './new-client-registration.scss';
15
+
16
+ interface NewClientRegistrationProps {
17
+ client: HieClient;
18
+ }
19
+
20
+ const NewClientRegistration: React.FC<NewClientRegistrationProps> = ({ client }) => {
21
+ const [loading, setLoading] = useState<boolean>(false);
22
+ const { sessionLocation } = useSession();
23
+ const occupationRef = useRef<{ value: string }>();
24
+ const educationRef = useRef<{ value: string }>();
25
+ const religionRef = useRef<{ value: string }>();
26
+ const maritalStatusRef = useRef<{ value: string }>();
27
+ const locationRef = useRef<{ value: string }>();
28
+ const locations = useLocations();
29
+
30
+ const registerPatient = async () => {
31
+ setLoading(true);
32
+ const attributes = generatePatientAttributes();
33
+ if (!isValidateAttributesPayload(attributes)) {
34
+ setLoading(false);
35
+ return false;
36
+ }
37
+ const createPersonPayload = generateAmrsPersonPayload(client);
38
+ createPersonPayload['attributes'] = [...createPersonPayload['attributes'], ...attributes];
39
+ const identifiers = await generatePatientIdentifiers();
40
+
41
+ try {
42
+ const resp = await createPatient({
43
+ person: createPersonPayload,
44
+ identifiers: identifiers,
45
+ });
46
+
47
+ const res = await resp.json();
48
+ const patientUuid = res.uuid;
49
+
50
+ if (patientUuid) {
51
+ showAlertMessage('success', 'Patient Successfully registered', 'Patient created');
52
+ }
53
+
54
+ // add relationship/dependant data
55
+ if (client.dependants.length > 0) {
56
+ createPatientDependantRelationsips(patientUuid, client.dependants);
57
+
58
+ if (patientUuid) {
59
+ showAlertMessage('success', 'Patient Depandants crreated', 'Patient Depandants and relationships created');
60
+ }
61
+ }
62
+ navigateToPatientSummary(patientUuid);
63
+ } catch (e) {
64
+ const errorResp = e['responseBody'] ?? e.message;
65
+ showAlertMessage('error', 'Error Creating Patient', '');
66
+ const errors = getErrorMessages(errorResp);
67
+ if (errors && errors.length > 0) {
68
+ for (let error of errors) {
69
+ showAlertMessage('error', error, '');
70
+ }
71
+ }
72
+ } finally {
73
+ setLoading(false);
74
+ }
75
+ };
76
+ const navigateToPatientSummary = (patientUuid: string) => {
77
+ navigate({ to: `${window.spaBase}/patient/${patientUuid}/chart/PatientSummary` });
78
+ };
79
+ const generatePatientIdentifiers = async () => {
80
+ const amrsUniverSalId = await generateAmrsUniversalIdentifier();
81
+ if (amrsUniverSalId) {
82
+ showAlertMessage('success', 'AMRS Universal ID Successfully generated', `${amrsUniverSalId}`);
83
+ }
84
+ const identifierLocation = locationRef.current?.value ?? sessionLocation.uuid;
85
+ if (!identifierLocation) {
86
+ showAlertMessage('error', 'Please select the identifier Location', '');
87
+ return;
88
+ }
89
+ const identifiers = generateAmrsCreatePatientIdentifiersPayload(client, identifierLocation);
90
+ identifiers.push({
91
+ identifierType: IdentifierTypesUuids.AMRS_UNIVERSAL_ID_UUID,
92
+ identifier: amrsUniverSalId,
93
+ location: identifierLocation,
94
+ preferred: true,
95
+ });
96
+ return identifiers;
97
+ };
98
+ const generatePatientAttributes = () => {
99
+ const maritalStatus = maritalStatusRef.current?.value;
100
+ const highestLevelOfEducation = educationRef.current?.value;
101
+ const religion = religionRef.current?.value;
102
+ const occupation = occupationRef.current?.value;
103
+ const attributes = [];
104
+ if (maritalStatus) {
105
+ attributes.push({
106
+ value: maritalStatus,
107
+ attributeType: PersonAttributeTypeUuids.CIVIL_STATUS_UUID,
108
+ });
109
+ }
110
+ if (highestLevelOfEducation) {
111
+ attributes.push({
112
+ value: highestLevelOfEducation,
113
+ attributeType: PersonAttributeTypeUuids.HIGHEST_LEVEL_OF_EDUCATION_UUID,
114
+ });
115
+ }
116
+ if (religion) {
117
+ attributes.push({
118
+ value: religion,
119
+ attributeType: PersonAttributeTypeUuids.RELIGION_UUID,
120
+ });
121
+ }
122
+ if (occupation) {
123
+ attributes.push({
124
+ value: occupation,
125
+ attributeType: PersonAttributeTypeUuids.OCCUPATION_UUID,
126
+ });
127
+ }
128
+ return attributes;
129
+ };
130
+ const isValidateAttributesPayload = (attributes: { value: string; attributeType: string }[]): boolean => {
131
+ if (attributes.length === 0) {
132
+ showAlertMessage('error', 'Please select the patient attributes', '');
133
+ return false;
134
+ }
135
+ if (!hasAttribute(attributes, PersonAttributeTypeUuids.HIGHEST_LEVEL_OF_EDUCATION_UUID)) {
136
+ showAlertMessage('error', 'Missing Education Level', '');
137
+ return false;
138
+ }
139
+ if (!hasAttribute(attributes, PersonAttributeTypeUuids.OCCUPATION_UUID)) {
140
+ showAlertMessage('error', 'Missing Occupation Data', '');
141
+ return false;
142
+ }
143
+
144
+ if (!hasAttribute(attributes, PersonAttributeTypeUuids.RELIGION_UUID)) {
145
+ showAlertMessage('error', 'Missing religion Data', '');
146
+ return false;
147
+ }
148
+ if (!hasAttribute(attributes, PersonAttributeTypeUuids.CIVIL_STATUS_UUID)) {
149
+ showAlertMessage('error', 'Missing Marital Status Data', '');
150
+ return false;
151
+ }
152
+
153
+ return true;
154
+ };
155
+ const hasAttribute = (attributes: { value: string; attributeType: string }[], attributeTypeUuid): boolean => {
156
+ return attributes.some((attr) => {
157
+ return attr.attributeType === attributeTypeUuid;
158
+ });
159
+ };
160
+ const showAlertMessage = (alertType: 'success' | 'error', title: string, message: string) => {
161
+ showSnackbar({
162
+ kind: alertType,
163
+ title: title,
164
+ subtitle: message,
165
+ });
166
+ };
167
+ const getErrorMessages = (error: AmrsErrorResponse) => {
168
+ const errors = [];
169
+ if (error && error.error) {
170
+ if (error.error.error) {
171
+ const globalErrors = error.error.error.globalErrors || null;
172
+ if (globalErrors) {
173
+ for (const err of globalErrors) {
174
+ errors.push(err.message);
175
+ }
176
+ }
177
+ } else if (error.error) {
178
+ if (error.error['globalErrors']) {
179
+ const globalErrors = error.error['globalErrors'] || null;
180
+ if (globalErrors) {
181
+ for (const err of globalErrors) {
182
+ errors.push(err.message);
183
+ }
184
+ }
185
+ } else if (error.error['message']) {
186
+ errors.push(error.error['message']);
187
+ }
188
+ } else {
189
+ errors.push(
190
+ error.error.error.message ||
191
+ 'An error occurred while creating the patient. Please try again or contact support',
192
+ );
193
+ }
194
+ }
195
+ return errors;
196
+ };
197
+ if (!client) {
198
+ return <>No client selected</>;
199
+ }
200
+ return (
201
+ <>
202
+ <div className={styles.registrationHeader}>
203
+ <h4>Registration Details</h4>
204
+ </div>
205
+ <div className={styles.extraRegQuestions}>
206
+ <div className={styles.formRow}>
207
+ <div className={styles.formGroup}>
208
+ <Select id="occupation" labelText="Occupation" ref={occupationRef}>
209
+ <SelectItem text="Choose occupation" value="" />
210
+ {OccupationOptions?.length > 0 &&
211
+ OccupationOptions.map((o) => (
212
+ <SelectItem key={o.uuid} text={o.label} value={o.uuid}>
213
+ {o.label}
214
+ </SelectItem>
215
+ ))}
216
+ </Select>
217
+ </div>
218
+ <div className={styles.formGroup}>
219
+ <Select id="education" labelText="Highest Level of Education" ref={educationRef}>
220
+ <SelectItem text="Choose education level" value="" />
221
+ {EducationOptions?.length > 0 &&
222
+ EducationOptions.map((e) => (
223
+ <SelectItem key={e.uuid} text={e.label} value={e.uuid}>
224
+ {e.label}
225
+ </SelectItem>
226
+ ))}
227
+ </Select>
228
+ </div>
229
+ </div>
230
+ <div className={styles.formRow}>
231
+ <div className={styles.formGroup}>
232
+ <Select id="religion" labelText="Religion" ref={religionRef}>
233
+ <SelectItem text="Choose religion" value="" />
234
+ {ReligionOptions?.length > 0 &&
235
+ ReligionOptions.map((r) => (
236
+ <SelectItem key={r.uuid} text={r.label} value={r.uuid}>
237
+ {r.label}
238
+ </SelectItem>
239
+ ))}
240
+ </Select>
241
+ </div>
242
+ <div className={styles.formGroup}>
243
+ <Select id="maritalStatus" labelText="Marital Status" ref={maritalStatusRef}>
244
+ <SelectItem text="Choose status" value="" />
245
+ {MaritalOptions?.length > 0 &&
246
+ MaritalOptions.map((r) => (
247
+ <SelectItem key={r.uuid} text={r.label} value={r.uuid}>
248
+ {r.label}
249
+ </SelectItem>
250
+ ))}
251
+ </Select>
252
+ </div>
253
+ </div>
254
+ <div className={styles.formRow}>
255
+ <div className={styles.formGroup}>
256
+ <Select id="location" labelText="Identifier Location" ref={locationRef}>
257
+ <SelectItem text={t('chooseLocation', 'Choose a location')} value="" />
258
+ {locations?.length > 0 &&
259
+ locations.map((location) => (
260
+ <SelectItem key={location.uuid} text={location.display} value={location.uuid}>
261
+ {location.display}
262
+ </SelectItem>
263
+ ))}
264
+ </Select>
265
+ </div>
266
+ </div>
267
+ <div className={styles.formRow}>
268
+ <Button kind="primary" onClick={registerPatient} disabled={loading}>
269
+ {loading ? <InlineLoading description="Registering patient..." /> : 'Register Patient'}
270
+ </Button>
271
+ </div>
272
+ </div>
273
+ </>
274
+ );
275
+ };
276
+ export default NewClientRegistration;
@@ -1,15 +1,15 @@
1
1
  import React from 'react';
2
- import { Tabs, TabList, Tab, TabPanels, TabPanel, Button } from '@carbon/react';
2
+ import { Tabs, TabList, Tab, TabPanels, TabPanel } from '@carbon/react';
3
3
  import { type HieClient } from '../types';
4
4
  import ClientDependantList from './client-dependants/list/client-depandants.component';
5
5
  import ClientDetails from './client-details/client-details';
6
+ import NewClientRegistration from './new-client-registration/new-client-registration';
6
7
 
7
8
  interface NewClientTabProps {
8
9
  client: HieClient;
9
- useHieData: () => void;
10
10
  }
11
11
 
12
- const NewClientTab: React.FC<NewClientTabProps> = ({ client, useHieData }) => {
12
+ const NewClientTab: React.FC<NewClientTabProps> = ({ client }) => {
13
13
  return (
14
14
  <>
15
15
  <Tabs>
@@ -22,7 +22,9 @@ const NewClientTab: React.FC<NewClientTabProps> = ({ client, useHieData }) => {
22
22
  <TabPanel>{client.dependants ? <ClientDependantList hieDependants={client.dependants} /> : <></>}</TabPanel>
23
23
  </TabPanels>
24
24
  </Tabs>
25
- <Button onClick={useHieData}>Use Data</Button>
25
+ <div>
26
+ <NewClientRegistration client={client} />
27
+ </div>
26
28
  </>
27
29
  );
28
30
  };
@@ -0,0 +1,251 @@
1
+ export const OccupationOptions = [
2
+ {
3
+ label: 'TEACHER',
4
+ uuid: 'a8a09d0c-1350-11df-a1f1-0026b9348838',
5
+ },
6
+ {
7
+ label: 'CASUAL WORKER',
8
+ uuid: 'a8a09b90-1350-11df-a1f1-0026b9348838',
9
+ },
10
+ {
11
+ label: 'HOUSEWIFE',
12
+ uuid: 'a8a09dca-1350-11df-a1f1-0026b9348838',
13
+ },
14
+ {
15
+ label: 'POLICE OFFICER',
16
+ uuid: 'a8a09e92-1350-11df-a1f1-0026b9348838',
17
+ },
18
+ {
19
+ label: 'OTHER NON-CODED',
20
+ uuid: 'a8aaf3e2-1350-11df-a1f1-0026b9348838',
21
+ },
22
+ {
23
+ label: 'FARMER',
24
+ uuid: 'a8a09c4e-1350-11df-a1f1-0026b9348838',
25
+ },
26
+ {
27
+ label: 'UNEMPLOYED',
28
+ uuid: 'a8a09f50-1350-11df-a1f1-0026b9348838',
29
+ },
30
+ {
31
+ label: 'NOT APPLICABLE',
32
+ uuid: 'a89ad3a4-1350-11df-a1f1-0026b9348838',
33
+ },
34
+ {
35
+ label: 'SEX WORKER',
36
+ uuid: 'a89ff438-1350-11df-a1f1-0026b9348838',
37
+ },
38
+ {
39
+ label: 'HEALTH CARE PROVIDER',
40
+ uuid: 'a8aaf158-1350-11df-a1f1-0026b9348838',
41
+ },
42
+ {
43
+ label: 'SELF EMPLOYMENT',
44
+ uuid: 'a8b03294-1350-11df-a1f1-0026b9348838',
45
+ },
46
+ {
47
+ label: 'TRUCK DRIVER',
48
+ uuid: '5ebb18d6-8fab-43bc-898f-6428dcc24c1e',
49
+ },
50
+ {
51
+ label: 'FISHING',
52
+ uuid: '0ac89086-4751-4db8-96c5-cd62152d66ad',
53
+ },
54
+ {
55
+ label: 'FORMAL EMPLOYMENT',
56
+ uuid: '49c8583d-baa0-4b80-a719-8c5609129c15',
57
+ },
58
+ {
59
+ label: 'CIVIL SERVANT',
60
+ uuid: '529a8c73-617d-4aee-ac0c-5c22f38f4265',
61
+ },
62
+ {
63
+ label: 'CONSULTANT',
64
+ uuid: 'a8a8c96e-1350-11df-a1f1-0026b9348838',
65
+ },
66
+ {
67
+ label: 'CLINICIAN',
68
+ uuid: 'a89d1c68-1350-11df-a1f1-0026b9348838',
69
+ },
70
+ {
71
+ label: 'NURSE',
72
+ uuid: 'a8b02f92-1350-11df-a1f1-0026b9348838',
73
+ },
74
+ {
75
+ label: 'STUDENT',
76
+ uuid: '05b4c838-a185-4bb0-8c33-71f80ea7c4cf',
77
+ },
78
+ {
79
+ label: 'LABORATORY TECHNOLOGIST',
80
+ uuid: 'e77a5de0-22d7-424e-978d-d3464d4170aa',
81
+ },
82
+ {
83
+ label: 'CLEANER',
84
+ uuid: '3164799f-637a-45e7-82cf-19954710d0e8',
85
+ },
86
+ {
87
+ label: 'VOLUNTARY TESTING AND COUNSELING CENTER COUNSELOR',
88
+ uuid: '45de16c7-9f55-42c0-86ce-36ed6192842b',
89
+ },
90
+ {
91
+ label: 'OTHER HEALTH WORKER',
92
+ uuid: '7764a54b-3e5d-4c8a-b64b-4ed21ba217b0',
93
+ },
94
+ {
95
+ label: 'EMPLOYED',
96
+ uuid: 'a89ec338-1350-11df-a1f1-0026b9348838',
97
+ },
98
+ {
99
+ label: 'MINER',
100
+ uuid: '27aec389-175b-4c56-b992-8c48d4257467',
101
+ },
102
+ {
103
+ label: 'INDUSTRIAL WORKER',
104
+ uuid: 'd3610d6c-eb9c-43a0-8828-2d875c4ccc5c',
105
+ },
106
+ {
107
+ label: 'MECHANIC',
108
+ uuid: '42ba6ccd-81d5-436b-b244-b49fde95277e',
109
+ },
110
+ {
111
+ label: 'BODA-BODA',
112
+ uuid: '16281ca7-8cb2-4d80-851c-0485f3d55aaa',
113
+ },
114
+ {
115
+ label: 'HAWKER',
116
+ uuid: 'e37dcb06-07f5-49d4-8383-c8dea87e05c5',
117
+ },
118
+ {
119
+ label: 'BUS CONDUCTOR',
120
+ uuid: '202bc5f1-f337-4246-bed5-4030f114e7a0',
121
+ },
122
+ {
123
+ label: 'HERDSMAN',
124
+ uuid: '76cc0ab6-81e3-4040-b57f-fcf118b6173d',
125
+ },
126
+ {
127
+ label: 'HOUSEKEEPER',
128
+ uuid: '193211aa-9dbb-4602-a567-1b1b67f5827b',
129
+ },
130
+ ];
131
+
132
+ export const EducationOptions = [
133
+ {
134
+ uuid: 'a899e0ac-1350-11df-a1f1-0026b9348838',
135
+ label: 'NONE',
136
+ },
137
+ {
138
+ uuid: 'a8afe910-1350-11df-a1f1-0026b9348838',
139
+ label: 'PRIMARY SCHOOL',
140
+ },
141
+ {
142
+ uuid: 'a8afe9d8-1350-11df-a1f1-0026b9348838',
143
+ label: 'SECONDARY SCHOOL',
144
+ },
145
+ {
146
+ uuid: 'a8afea96-1350-11df-a1f1-0026b9348838',
147
+ label: 'COLLEGE',
148
+ },
149
+ {
150
+ uuid: 'a89e4728-1350-11df-a1f1-0026b9348838',
151
+ label: 'UNIVERSITY',
152
+ },
153
+ {
154
+ uuid: 'a8aaf3e2-1350-11df-a1f1-0026b9348838',
155
+ label: 'OTHER',
156
+ },
157
+ ];
158
+
159
+ export const ReligionOptions = [
160
+ {
161
+ label: 'CATHOLIC',
162
+ uuid: '0f8569b7-800c-4f6a-be1f-b8e052fc96cf',
163
+ },
164
+ {
165
+ label: 'PROTESTANT',
166
+ uuid: '4aec262f-08a5-4ed9-9c0d-39fa1a9bd81b',
167
+ },
168
+ {
169
+ label: 'MUSLIM',
170
+ uuid: 'a0c91995-926e-421d-a5fe-44fdab3dfb27',
171
+ },
172
+ {
173
+ label: 'TRADITIONALIST',
174
+ uuid: '975f809d-fa55-4b8a-9086-9d63e68728b1',
175
+ },
176
+ {
177
+ label: 'HINDU',
178
+ uuid: 'd6601939-e81e-412e-ae36-373efd7f32fe',
179
+ },
180
+ {
181
+ label: 'BUDDHIST',
182
+ uuid: 'f3ee48c2-3792-40ed-a400-aa5016784e9c',
183
+ },
184
+ {
185
+ label: 'NONE',
186
+ uuid: 'a899e0ac-1350-11df-a1f1-0026b9348838',
187
+ },
188
+ {
189
+ label: 'OTHER NON-CODED',
190
+ uuid: 'a8aaf3e2-1350-11df-a1f1-0026b9348838',
191
+ },
192
+ {
193
+ label: 'JUDAISM',
194
+ uuid: '7fdd98ca-68d4-450e-a28e-a9298e6c54e9',
195
+ },
196
+ {
197
+ label: 'ATHEISM',
198
+ uuid: '563b356e-b156-4426-9e65-448a5c8d4440',
199
+ },
200
+ ];
201
+
202
+ export const MaritalOptions = [
203
+ {
204
+ uuid: 'a899aba0-1350-11df-a1f1-0026b9348838',
205
+ label: 'SEPARATED',
206
+ },
207
+ {
208
+ uuid: 'a899ac7c-1350-11df-a1f1-0026b9348838',
209
+ label: 'SINGLE',
210
+ },
211
+ {
212
+ uuid: 'a899ad58-1350-11df-a1f1-0026b9348838',
213
+ label: 'DIVORCED',
214
+ },
215
+ {
216
+ uuid: 'a899ae34-1350-11df-a1f1-0026b9348838',
217
+ label: 'WIDOWED',
218
+ },
219
+ {
220
+ uuid: 'a899af10-1350-11df-a1f1-0026b9348838',
221
+ label: 'LIVING WITH PARTNER',
222
+ },
223
+ {
224
+ uuid: 'a8aa76b0-1350-11df-a1f1-0026b9348838',
225
+ label: 'MARRIED',
226
+ },
227
+ {
228
+ uuid: 'a8aaf07c-1350-11df-a1f1-0026b9348838',
229
+ label: 'FRIEND',
230
+ },
231
+ {
232
+ uuid: 'a89ad3a4-1350-11df-a1f1-0026b9348838',
233
+ label: 'NOT APPLICABLE',
234
+ },
235
+ {
236
+ uuid: 'a8b03712-1350-11df-a1f1-0026b9348838',
237
+ label: 'POLYGAMOUS',
238
+ },
239
+ {
240
+ uuid: 'a89ebd3e-1350-11df-a1f1-0026b9348838',
241
+ label: 'PARTNER',
242
+ },
243
+ {
244
+ uuid: '7831f002-331d-4f07-bf91-6bb65cd31050',
245
+ label: 'CASUAL SEXUAL PARTNER',
246
+ },
247
+ {
248
+ uuid: 'a8aaf3e2-1350-11df-a1f1-0026b9348838',
249
+ label: 'OTHER NON-CODED',
250
+ },
251
+ ];