fhir-react 0.3.6 → 0.3.9

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 (160) hide show
  1. package/.circleci/config.yml +1 -1
  2. package/.eslintrc +10 -1
  3. package/.stylelintrc +6 -2
  4. package/README.md +19 -1
  5. package/build/index.js +15 -11
  6. package/build/style.css +11 -10
  7. package/package.json +55 -54
  8. package/src/assets/containers/AdverseEvent/adverse-event.svg +6 -0
  9. package/src/assets/containers/Coverage/coverage.svg +4 -0
  10. package/src/assets/containers/Generic/generic.svg +3 -0
  11. package/src/assets/containers/Medication/medication.svg +5 -0
  12. package/src/assets/containers/MedicationDispense/medication-dispense.svg +5 -0
  13. package/src/assets/containers/Organization/organization.svg +5 -0
  14. package/src/assets/containers/PractitionerRole/practitioner-role.svg +5 -0
  15. package/src/assets/containers/ReferralRequest/referral-request.svg +8 -0
  16. package/src/assets/containers/RelatedPerson/related-person.svg +6 -0
  17. package/src/components/containers/Accordion/Accordion.js +44 -13
  18. package/src/components/containers/ResourceContainer/ResourceContainer.css +4 -0
  19. package/src/components/containers/ResourceContainer/ResourceContainer.js +28 -37
  20. package/src/components/containers/ResourceContainer/ResourceContainer.stories.js +23 -1
  21. package/src/components/datatypes/Attachment/Attachment.css +5 -0
  22. package/src/components/datatypes/Attachment/Attachment.js +7 -2
  23. package/src/components/datatypes/CodeableConcept/CodeableConcept.js +6 -3
  24. package/src/components/datatypes/Coding/Coding.js +7 -3
  25. package/src/components/datatypes/Identifier/Identifier.js +7 -3
  26. package/src/components/datatypes/Reference/Reference.js +7 -1
  27. package/src/components/datatypes/Telecom/Telecom.js +2 -3
  28. package/src/components/resources/AdverseEvent/AdverseEvent.js +88 -42
  29. package/src/components/resources/AdverseEvent/AdverseEvent.stories.js +12 -2
  30. package/src/components/resources/AdverseEvent/AdverseEvent.test.js +109 -2
  31. package/src/components/resources/AllergyIntolerance/AllergyIntolerance.js +9 -1
  32. package/src/components/resources/AllergyIntolerance/AllergyIntolerance.test.js +36 -1
  33. package/src/components/resources/Appointment/Appointment.js +9 -1
  34. package/src/components/resources/Appointment/Appointment.test.js +36 -1
  35. package/src/components/resources/Binary/Binary.js +2 -1
  36. package/src/components/resources/Bundle/Bundle.css +7 -0
  37. package/src/components/resources/Bundle/Bundle.js +15 -11
  38. package/src/components/resources/Bundle/Bundle.stories.js +12 -78
  39. package/src/components/resources/Bundle/Bundle.test.js +0 -3
  40. package/src/components/resources/CarePlan/CarePlan.js +9 -1
  41. package/src/components/resources/CarePlan/CarePlan.test.js +42 -6
  42. package/src/components/resources/CareTeam/CareTeam.js +79 -50
  43. package/src/components/resources/CareTeam/CareTeam.stories.js +20 -3
  44. package/src/components/resources/CareTeam/CareTeam.test.js +109 -1
  45. package/src/components/resources/CareTeam/CareTeamParticipants.js +1 -1
  46. package/src/components/resources/Claim/CareTeam.js +55 -0
  47. package/src/components/resources/Claim/Claim.css +2 -11
  48. package/src/components/resources/Claim/Claim.js +165 -309
  49. package/src/components/resources/Claim/Claim.stories.js +37 -5
  50. package/src/components/resources/Claim/Claim.test.js +104 -1
  51. package/src/components/resources/Claim/Diagnosis.js +61 -0
  52. package/src/components/resources/Claim/Insurance.js +58 -0
  53. package/src/components/resources/Claim/Item.js +79 -0
  54. package/src/components/resources/Claim/Items.js +29 -0
  55. package/src/components/resources/ClaimResponse/AddedItem.js +61 -11
  56. package/src/components/resources/ClaimResponse/AddedItems.js +5 -9
  57. package/src/components/resources/ClaimResponse/ClaimResponse.js +144 -83
  58. package/src/components/resources/ClaimResponse/ClaimResponse.stories.js +15 -2
  59. package/src/components/resources/ClaimResponse/ClaimResponse.test.js +112 -1
  60. package/src/components/resources/ClaimResponse/Item.js +44 -9
  61. package/src/components/resources/ClaimResponse/Items.js +5 -4
  62. package/src/components/resources/Condition/Condition.js +10 -3
  63. package/src/components/resources/Condition/Condition.test.js +37 -4
  64. package/src/components/resources/Coverage/Coverage.js +104 -69
  65. package/src/components/resources/Coverage/Coverage.stories.js +31 -5
  66. package/src/components/resources/Coverage/Coverage.test.js +111 -4
  67. package/src/components/resources/Device/Device.js +9 -1
  68. package/src/components/resources/Device/Device.test.js +36 -1
  69. package/src/components/resources/DiagnosticReport/DiagnosticReport.js +9 -2
  70. package/src/components/resources/DiagnosticReport/DiagnosticReport.test.js +36 -1
  71. package/src/components/resources/DocumentReference/DocumentReference.js +9 -2
  72. package/src/components/resources/DocumentReference/DocumentReference.test.js +42 -1
  73. package/src/components/resources/Encounter/Encounter.js +9 -1
  74. package/src/components/resources/Encounter/Encounter.test.js +36 -1
  75. package/src/components/resources/ExplanationOfBenefit/ExplanationOfBenefit.js +4 -0
  76. package/src/components/resources/ExplanationOfBenefit/ExplanationOfBenefit.test.js +38 -1
  77. package/src/components/resources/FamilyMemberHistory/FamilyMemberHistory.js +9 -2
  78. package/src/components/resources/FamilyMemberHistory/FamilyMemberHistory.test.js +36 -1
  79. package/src/components/resources/Generic/Generic.js +21 -7
  80. package/src/components/resources/Generic/Generic.stories.js +2 -1
  81. package/src/components/resources/Generic/Generic.test.js +26 -7
  82. package/src/components/resources/Goal/Goal.js +9 -3
  83. package/src/components/resources/Goal/Goal.test.js +32 -1
  84. package/src/components/resources/Immunization/Immunization.js +9 -2
  85. package/src/components/resources/Immunization/Immunization.test.js +36 -1
  86. package/src/components/resources/List/DrugTierDefinitionExtension.js +79 -35
  87. package/src/components/resources/List/Entries.js +3 -3
  88. package/src/components/resources/List/List.js +137 -88
  89. package/src/components/resources/List/List.stories.js +38 -5
  90. package/src/components/resources/List/List.test.js +105 -1
  91. package/src/components/resources/Location/Location.js +66 -47
  92. package/src/components/resources/Location/Location.stories.js +11 -4
  93. package/src/components/resources/Location/Location.test.js +106 -4
  94. package/src/components/resources/Medication/Medication.js +98 -51
  95. package/src/components/resources/Medication/Medication.stories.js +37 -7
  96. package/src/components/resources/Medication/Medication.test.js +114 -5
  97. package/src/components/resources/MedicationAdministration/MedicationAdministration.js +88 -62
  98. package/src/components/resources/MedicationAdministration/MedicationAdministration.stories.js +7 -0
  99. package/src/components/resources/MedicationAdministration/MedicationAdministration.test.js +117 -1
  100. package/src/components/resources/MedicationDispense/DosageInstruction.js +25 -0
  101. package/src/components/resources/MedicationDispense/MedicationDispense.js +70 -68
  102. package/src/components/resources/MedicationDispense/MedicationDispense.stories.js +7 -0
  103. package/src/components/resources/MedicationDispense/MedicationDispense.test.js +108 -1
  104. package/src/components/resources/MedicationKnowledge/MedicationKnowledge.js +117 -66
  105. package/src/components/resources/MedicationKnowledge/MedicationKnowledge.stories.js +6 -0
  106. package/src/components/resources/MedicationKnowledge/MedicationKnowledge.test.js +110 -1
  107. package/src/components/resources/MedicationOrder/MedicationOrder.js +3 -3
  108. package/src/components/resources/MedicationOrder/MedicationOrder.test.js +35 -4
  109. package/src/components/resources/MedicationRequest/MedicationRequest.js +8 -1
  110. package/src/components/resources/MedicationRequest/MedicationRequest.test.js +33 -4
  111. package/src/components/resources/MedicationStatement/MedicationStatement.js +9 -2
  112. package/src/components/resources/MedicationStatement/MedicationStatement.test.js +36 -1
  113. package/src/components/resources/Observation/Observation.js +3 -1
  114. package/src/components/resources/Observation/Observation.test.js +30 -1
  115. package/src/components/resources/Observation/ObservationGraph.js +1 -1
  116. package/src/components/resources/Organization/Organization.js +63 -37
  117. package/src/components/resources/Organization/Organization.stories.js +15 -2
  118. package/src/components/resources/Organization/Organization.test.js +109 -1
  119. package/src/components/resources/Patient/Patient.js +4 -0
  120. package/src/components/resources/Patient/Patient.test.js +31 -2
  121. package/src/components/resources/Practitioner/Practitioner.js +9 -1
  122. package/src/components/resources/Practitioner/Practitioner.test.js +36 -1
  123. package/src/components/resources/PractitionerRole/PractitionerRole.js +52 -29
  124. package/src/components/resources/PractitionerRole/PractitionerRole.stories.js +7 -0
  125. package/src/components/resources/PractitionerRole/PractitionerRole.test.js +108 -1
  126. package/src/components/resources/Procedure/Procedure.js +3 -2
  127. package/src/components/resources/Procedure/Procedure.test.js +30 -1
  128. package/src/components/resources/Questionnaire/Group.js +53 -0
  129. package/src/components/resources/Questionnaire/Items.js +45 -0
  130. package/src/components/resources/Questionnaire/Questionnaire.css +24 -5
  131. package/src/components/resources/Questionnaire/Questionnaire.js +38 -170
  132. package/src/components/resources/Questionnaire/Questionnaire.stories.js +8 -0
  133. package/src/components/resources/Questionnaire/Questionnaire.test.js +194 -15
  134. package/src/components/resources/Questionnaire/Questions.js +40 -0
  135. package/src/components/resources/Questionnaire/getQuestionText.js +20 -0
  136. package/src/components/resources/QuestionnaireResponse/Answers.js +59 -0
  137. package/src/components/resources/QuestionnaireResponse/Group.js +70 -0
  138. package/src/components/resources/QuestionnaireResponse/Items.js +45 -0
  139. package/src/components/resources/QuestionnaireResponse/QuestionnaireResponse.css +33 -8
  140. package/src/components/resources/QuestionnaireResponse/QuestionnaireResponse.js +54 -236
  141. package/src/components/resources/QuestionnaireResponse/QuestionnaireResponse.stories.js +8 -0
  142. package/src/components/resources/QuestionnaireResponse/QuestionnaireResponse.test.js +38 -3
  143. package/src/components/resources/QuestionnaireResponse/Questions.js +43 -0
  144. package/src/components/resources/QuestionnaireResponse/getQuestionText.js +22 -0
  145. package/src/components/resources/ReferralRequest/ReferralRequest.js +72 -40
  146. package/src/components/resources/ReferralRequest/ReferralRequest.test.js +111 -11
  147. package/src/components/resources/RelatedPerson/RelatedPerson.js +158 -0
  148. package/src/components/resources/RelatedPerson/RelatedPerson.stories.js +46 -0
  149. package/src/components/resources/RelatedPerson/RelatedPerson.test.js +156 -0
  150. package/src/components/resources/RelatedPerson/index.js +3 -0
  151. package/src/components/resources/ResearchStudy/ResearchStudy.js +167 -130
  152. package/src/components/resources/ResearchStudy/ResearchStudy.stories.js +2 -0
  153. package/src/components/resources/ResearchStudy/ResearchStudy.test.js +108 -1
  154. package/src/components/resources/ResourceCategory/ResourceCategory.js +1 -1
  155. package/src/components/ui/index.js +56 -32
  156. package/src/fixtures/dstu2/resources/relatedPerson/example1.json +79 -0
  157. package/src/fixtures/example-icons.jsx +63 -0
  158. package/src/fixtures/r4/resources/relatedPerson/example1.json +64 -0
  159. package/src/fixtures/stu3/resources/relatedPerson/example1.json +43 -0
  160. package/src/style.scss +14 -1
@@ -15,6 +15,8 @@ export const Header = ({
15
15
  additionalContent,
16
16
  rightAdditionalContent,
17
17
  children,
18
+ capitalize = false,
19
+ isNoIcon = false,
18
20
  }) => {
19
21
  const rightItemsClass = 'align-items-center flex-fill d-flex';
20
22
 
@@ -30,45 +32,54 @@ export const Header = ({
30
32
  isAccordionOpenable ? 'header__title-row' : ''
31
33
  } d-flex w-100 flex-column flex-sm-row`}
32
34
  >
33
- <div className="d-flex">
34
- <div
35
- className={`fhir-ui__${resourceName}-Header__icon d-flex align-items-center flex-shrink-1 m-half me-2`}
36
- >
37
- <HeaderIcon headerIcon={icon} resourceName={resourceName} />
38
- </div>
35
+ <div className="d-flex align-items-center">
36
+ {!isNoIcon && (
37
+ <div
38
+ className={`fhir-ui__${resourceName}-Header__icon d-flex align-items-center flex-shrink-1 m-half me-2`}
39
+ >
40
+ <HeaderIcon headerIcon={icon} resourceName={resourceName} />
41
+ </div>
42
+ )}
39
43
  <div
40
44
  className={`fhir-ui__${resourceName}-Header__title flex-fill text-start`}
41
45
  >
42
- <Title data-testid={titleTestID || 'title'}>
46
+ <Title
47
+ data-testid={titleTestID || 'title'}
48
+ capitalize={capitalize}
49
+ >
43
50
  {title || ''}
44
51
  </Title>
45
52
  </div>
46
53
  </div>
47
54
 
48
- <div
49
- className={`fhir-ui__${resourceName}-Header__badges ps-1 ps-sm-2 mt-3 mt-sm-0 badges-max-width-sm flex-wrap flex-sm-nowrap justify-content-between justify-content-sm-end ${rightItemsClass}`}
50
- >
51
- {prefixBadge && <div className="me-3">{prefixBadge}</div>}
52
- <div className="d-flex">
53
- {badges}
54
- {additionalBadge && (
55
- <div className="ms-3">{additionalBadge}</div>
56
- )}
55
+ {(prefixBadge || badges || additionalBadge) && (
56
+ <div
57
+ className={`fhir-ui__${resourceName}-Header__badges ps-sm-2 mt-3 mt-sm-0 badges-max-width-sm flex-wrap flex-sm-nowrap justify-content-between justify-content-sm-end ${rightItemsClass}`}
58
+ >
59
+ {prefixBadge && <div className="me-3">{prefixBadge}</div>}
60
+ <div className="d-flex align-items-center">
61
+ {badges}
62
+ {additionalBadge && (
63
+ <div className="ms-3">{additionalBadge}</div>
64
+ )}
65
+ </div>
57
66
  </div>
58
- </div>
67
+ )}
59
68
  </div>
60
- <div
61
- className={`fhir-ui__${resourceName}-Header__additional-content w-100 justify-content-start d-flex ${
62
- additionalContent ? ' pt-2' : ''
63
- }`}
64
- >
65
- {additionalContent}
69
+ {(additionalContent || rightAdditionalContent) && (
66
70
  <div
67
- className={`fhir-ui__${resourceName}-Header__rightAdditionalContent justify-content-end ${rightItemsClass}`}
71
+ className={`fhir-ui__${resourceName}-Header__additional-content w-100 justify-content-start d-flex ${
72
+ additionalContent ? ' pt-2' : ''
73
+ }`}
68
74
  >
69
- {rightAdditionalContent}
75
+ {additionalContent}
76
+ <div
77
+ className={`fhir-ui__${resourceName}-Header__rightAdditionalContent justify-content-md-end mx-0 ${rightItemsClass}`}
78
+ >
79
+ {rightAdditionalContent}
80
+ </div>
70
81
  </div>
71
- </div>
82
+ )}
72
83
  </div>
73
84
  )}
74
85
  </>
@@ -77,7 +88,9 @@ export const Header = ({
77
88
 
78
89
  export const Title = props => (
79
90
  <h4
80
- className="fhir-ui__Title fw-bold fs-4 lh-base mb-0 w-90 title-width-sm"
91
+ className={`fhir-ui__Title fw-bold lh-base mb-0 text-break d-flex ${
92
+ props.capitalize ? 'text-capitalize' : ''
93
+ }`}
81
94
  data-testid={props['data-testid'] || 'title'}
82
95
  >
83
96
  {props.children}
@@ -99,7 +112,7 @@ export const Badge = props => {
99
112
 
100
113
  export const BadgeSecondary = props => (
101
114
  <small
102
- className={`fhir-ui__BadgeSecondary px-2 py-1 rounded-1 fw-bold ${getBadgeColor(
115
+ className={`fhir-ui__BadgeSecondary px-2 py-1 rounded-1 fw-bold d-flex align-items-center ${getBadgeColor(
103
116
  props,
104
117
  )}`}
105
118
  data-testid={props['data-testid']}
@@ -128,7 +141,7 @@ export const ValueUnit = props => (
128
141
  export const Body = ({ tableData = [], reverseContent, children }) => (
129
142
  <div className="fhir-ui__Body">
130
143
  {reverseContent ? children : null}
131
- <div className="row">
144
+ <div className="row gap-3">
132
145
  {tableData.map(
133
146
  (value, index) =>
134
147
  value.status && (
@@ -175,7 +188,9 @@ export const Data = props => (
175
188
  );
176
189
 
177
190
  export const Root = props => (
178
- <div className={`fhir-resource__${props.name}`}>{props.children}</div>
191
+ <div className={`fhir-resource__${props.name} ${props.className}`}>
192
+ {props.children}
193
+ </div>
179
194
  );
180
195
 
181
196
  export const Table = props => (
@@ -199,10 +214,19 @@ export const TableHeader = props => {
199
214
  );
200
215
  };
201
216
 
202
- export const TableRow = props => <tr>{props.children}</tr>;
217
+ export const TableRow = props => {
218
+ const { children, ...rest } = props;
219
+ return <tr {...rest}>{props.children}</tr>;
220
+ };
203
221
 
204
222
  export const TableCell = props => (
205
- <td className="align-text-top border-0" data-testid={props['data-testid']}>
223
+ <td
224
+ className={`${
225
+ props.isAlignTop ? '' : 'align-middle'
226
+ } border-0 ${props.className || ''}`}
227
+ data-testid={props['data-testid']}
228
+ style={props.style}
229
+ >
206
230
  {props.children}
207
231
  </td>
208
232
  );
@@ -0,0 +1,79 @@
1
+ {
2
+ "resourceType": "RelatedPerson",
3
+ "id": "benedicte",
4
+ "text": {
5
+ "status": "generated",
6
+ "div": "<div>\n <table>\n <tbody>\n <tr>\n <td>Name</td>\n <td>Bénédicte du Marché</td>\n </tr>\n <tr>\n <td>Address</td>\n <td>43, Place du Marché Sainte Catherine, 75004 Paris, France</td>\n </tr>\n <tr>\n <td>Contacts</td>\n <td>Phone: +33 (237) 998327</td>\n </tr>\n </tbody>\n </table>\n </div>"
7
+ },
8
+ "identifier": [
9
+ {
10
+ "use": "usual",
11
+ "type": {
12
+ "text": "INSEE"
13
+ },
14
+ "system": "urn:oid:1.2.250.1.61",
15
+ "value": "272117510400399"
16
+ }
17
+ ],
18
+ "patient": {
19
+ "reference": "Patient/example"
20
+ },
21
+ "relationship": {
22
+ "coding": [
23
+ {
24
+ "system": "http://hl7.org/fhir/patient-contact-relationship",
25
+ "code": "partner"
26
+ },
27
+ {
28
+ "system": "http://hl7.org/fhir/v3/RoleCode",
29
+ "code": "WIFE"
30
+ }
31
+ ]
32
+ },
33
+ "name": {
34
+ "family": [
35
+ "du",
36
+ "Marché"
37
+ ],
38
+ "_family": [
39
+ {
40
+ "extension": [
41
+ {
42
+ "fhir_comments": [
43
+ " the \"du\" part is a family name prefix (VV in iso 21090) "
44
+ ],
45
+ "url": "http://hl7.org/fhir/StructureDefinitioniso-21090#qualifier",
46
+ "valueCode": "VV"
47
+ }
48
+ ]
49
+ },
50
+ null
51
+ ],
52
+ "given": [
53
+ "Bénédicte"
54
+ ]
55
+ },
56
+ "telecom": [
57
+ {
58
+ "system": "phone",
59
+ "value": "+33 (237) 998327"
60
+ }
61
+ ],
62
+ "gender": "female",
63
+ "address": [
64
+ {
65
+ "line": [
66
+ "43, Place du Marché Sainte Catherine"
67
+ ],
68
+ "city": "Paris",
69
+ "postalCode": "75004",
70
+ "country": "FRA"
71
+ }
72
+ ],
73
+ "photo": [
74
+ {
75
+ "contentType": "image/jpeg",
76
+ "url": "Binary/f016"
77
+ }
78
+ ]
79
+ }
@@ -1,6 +1,13 @@
1
1
  import React from 'react';
2
2
 
3
3
  export default {
4
+ AdverseEvent: (
5
+ <img
6
+ className="header-icon__image"
7
+ src={require('../assets/containers/AdverseEvent/adverse-event.svg')}
8
+ alt="adverse event"
9
+ />
10
+ ),
4
11
  Binary: (
5
12
  <img
6
13
  className="header-icon__image"
@@ -36,6 +43,13 @@ export default {
36
43
  alt="practitioner"
37
44
  />
38
45
  ),
46
+ PractitionerRole: (
47
+ <img
48
+ className="header-icon__image"
49
+ src={require('../assets/containers/PractitionerRole/practitioner-role.svg')}
50
+ alt="practitioner role"
51
+ />
52
+ ),
39
53
  AllergyIntolerance: (
40
54
  <img
41
55
  className="header-icon__image"
@@ -141,6 +155,13 @@ export default {
141
155
  alt="location marker"
142
156
  />
143
157
  ),
158
+ Medication: (
159
+ <img
160
+ className="header-icon__image"
161
+ src={require('../assets/containers/Medication/medication.svg')}
162
+ alt="medication"
163
+ />
164
+ ),
144
165
  MedicationOrder: (
145
166
  <img
146
167
  className="header-icon__image"
@@ -148,6 +169,13 @@ export default {
148
169
  alt="medication order"
149
170
  />
150
171
  ),
172
+ MedicationDispense: (
173
+ <img
174
+ className="header-icon__image"
175
+ src={require('../assets/containers/MedicationDispense/medication-dispense.svg')}
176
+ alt="medication dispense"
177
+ />
178
+ ),
151
179
  MedicationRequest: (
152
180
  <img
153
181
  className="header-icon__image"
@@ -183,6 +211,13 @@ export default {
183
211
  alt="observation"
184
212
  />
185
213
  ),
214
+ Organization: (
215
+ <img
216
+ className="header-icon__image"
217
+ src={require('../assets/containers/Organization/organization.svg')}
218
+ alt="organization"
219
+ />
220
+ ),
186
221
  Questionnaire: (
187
222
  <img
188
223
  className="header-icon__image"
@@ -218,4 +253,32 @@ export default {
218
253
  alt="patient"
219
254
  />
220
255
  ),
256
+ Coverage: (
257
+ <img
258
+ className="header-icon__image"
259
+ src={require('../assets/containers/Coverage/coverage.svg')}
260
+ alt="coverage"
261
+ />
262
+ ),
263
+ RelatedPerson: (
264
+ <img
265
+ className="header-icon__image"
266
+ src={require('../assets/containers/RelatedPerson/related-person.svg')}
267
+ alt="related person"
268
+ />
269
+ ),
270
+ Generic: (
271
+ <img
272
+ className="header-icon__image"
273
+ src={require('../assets/containers/Generic/generic.svg')}
274
+ alt="generic"
275
+ />
276
+ ),
277
+ ReferralRequest: (
278
+ <img
279
+ className="header-icon__image"
280
+ src={require('../assets/containers/ReferralRequest/referral-request.svg')}
281
+ alt="referral request"
282
+ />
283
+ ),
221
284
  };
@@ -0,0 +1,64 @@
1
+ {
2
+ "resourceType": "RelatedPerson",
3
+ "id": "newborn-mom",
4
+ "text": {
5
+ "status": "generated",
6
+ "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p><b>Generated Narrative with Details</b></p><p><b>id</b>: newborn-mom</p><p><b>identifier</b>: Social Security number = 444222222</p><p><b>active</b>: true</p><p><b>patient</b>: <a>Patient/newborn</a></p><p><b>relationship</b>: Natural Mother <span>(Details : {http://terminology.hl7.org/CodeSystem/v3-RoleCode code 'NMTH' = 'natural mother', given as 'natural mother'})</span></p><p><b>name</b>: Eve Everywoman (OFFICIAL)</p><p><b>telecom</b>: ph: 555-555-2003(WORK)</p><p><b>gender</b>: female</p><p><b>birthDate</b>: 31/05/1973</p><p><b>address</b>: 2222 Home Street (HOME)</p></div>"
7
+ },
8
+ "identifier": [
9
+ {
10
+ "type": {
11
+ "coding": [
12
+ {
13
+ "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
14
+ "code": "SS"
15
+ }
16
+ ]
17
+ },
18
+ "system": "http://hl7.org/fhir/sid/us-ssn",
19
+ "value": "444222222"
20
+ }
21
+ ],
22
+ "active": true,
23
+ "patient": {
24
+ "reference": "Patient/newborn"
25
+ },
26
+ "relationship": [
27
+ {
28
+ "coding": [
29
+ {
30
+ "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode",
31
+ "code": "NMTH",
32
+ "display": "natural mother"
33
+ }
34
+ ],
35
+ "text": "Natural Mother"
36
+ }
37
+ ],
38
+ "name": [
39
+ {
40
+ "use": "official",
41
+ "family": "Everywoman",
42
+ "given": [
43
+ "Eve"
44
+ ]
45
+ }
46
+ ],
47
+ "telecom": [
48
+ {
49
+ "system": "phone",
50
+ "value": "555-555-2003",
51
+ "use": "work"
52
+ }
53
+ ],
54
+ "gender": "female",
55
+ "birthDate": "1973-05-31",
56
+ "address": [
57
+ {
58
+ "use": "home",
59
+ "line": [
60
+ "2222 Home Street"
61
+ ]
62
+ }
63
+ ]
64
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "resourceType": "RelatedPerson",
3
+ "id": "f002",
4
+ "text": {
5
+ "status": "generated",
6
+ "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n Ariadne Bor-Jansma\n </div>"
7
+ },
8
+ "patient": {
9
+ "reference": "Patient/f201"
10
+ },
11
+ "relationship": {
12
+ "coding": [
13
+ {
14
+ "system": "http://hl7.org/fhir/v3/RoleCode",
15
+ "code": "SIGOTHR"
16
+ }
17
+ ]
18
+ },
19
+ "name": [
20
+ {
21
+ "use": "usual",
22
+ "text": "Ariadne Bor-Jansma"
23
+ }
24
+ ],
25
+ "telecom": [
26
+ {
27
+ "system": "phone",
28
+ "value": "+31201234567",
29
+ "use": "home"
30
+ }
31
+ ],
32
+ "gender": "female",
33
+ "birthDate": "1963",
34
+ "photo": [
35
+ {
36
+ "contentType": "image/jpeg",
37
+ "data": "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"
38
+ }
39
+ ],
40
+ "period": {
41
+ "start": "1975"
42
+ }
43
+ }
package/src/style.scss CHANGED
@@ -40,6 +40,7 @@ $spacers: map-merge(
40
40
  (
41
41
  half: $space,
42
42
  6: 3.5rem,
43
+ 20: 20px,
43
44
  40: 40px,
44
45
  )
45
46
  );
@@ -61,7 +62,7 @@ $body-color: #152536;
61
62
 
62
63
  $table-striped-bg: $gray-100;
63
64
 
64
- $secondary: #68717A;
65
+ $secondary: #68717a;
65
66
 
66
67
  $light: #dedddd;
67
68
 
@@ -84,6 +85,7 @@ $enable-negative-margins: true;
84
85
 
85
86
  .dataTable__value-label {
86
87
  width: auto;
88
+
87
89
  @include media-breakpoint-up(sm) {
88
90
  width: 130px;
89
91
  min-width: 130px;
@@ -104,6 +106,17 @@ $enable-negative-margins: true;
104
106
 
105
107
  .fhir-ui__Badge {
106
108
  width: fit-content;
109
+ margin: 0 4px;
110
+ @include media-breakpoint-down(sm) {
111
+ margin: 4px 0;
112
+ }
113
+ }
114
+
115
+ .fhir-ui__Title {
116
+ font-size: 1.125rem;
117
+ @include media-breakpoint-down(sm) {
118
+ font-size: 1rem !important;
119
+ }
107
120
  }
108
121
 
109
122
  .header__title-row {