@aehrc/smart-forms-renderer 1.0.0-alpha.75 → 1.0.0-alpha.76

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.
@@ -1 +1 @@
1
- export { parseFhirDateToDisplayDate } from './utils';
1
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './utils';
@@ -14,5 +14,5 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- export { parseFhirDateToDisplayDate } from './utils';
17
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './utils';
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/DateTimeItems/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/DateTimeItems/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- export { parseFhirDateToDisplayDate } from './parseDate';
1
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './parseDate';
@@ -14,5 +14,5 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- export { parseFhirDateToDisplayDate } from './parseDate';
17
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './parseDate';
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC"}
@@ -3,7 +3,7 @@ export declare function validateTwoMatches(monthInput: string, yearInput: string
3
3
  export declare function validateThreeMatches(dayInput: string, monthInput: string, yearInput: string): boolean;
4
4
  export declare function getNumOfSeparators(valueDate: string, seperator: string): number;
5
5
  /**
6
- * Parse a FHIR date string to a date to be consumed and displayed by the DateItem component.
6
+ * Parse a FHIR date string to a human-readable display format.
7
7
  *
8
8
  * @author Sean Fong
9
9
  */
@@ -11,4 +11,14 @@ export declare function parseFhirDateToDisplayDate(fhirDate: string): {
11
11
  displayDate: string;
12
12
  dateParseFail?: boolean;
13
13
  };
14
+ /**
15
+ * Parse a FHIR dateTime string to a human-readable display format.
16
+ * Supports full and partial FHIR dateTime values.
17
+ *
18
+ * @author Sean Fong
19
+ */
20
+ export declare function parseFhirDateTimeToDisplayDateTime(fhirDateTime: string): {
21
+ displayDateTime: string;
22
+ dateParseFail?: boolean;
23
+ };
14
24
  export declare function parseInputDateToFhirDate(displayDate: string): string;
@@ -73,7 +73,7 @@ export function getNumOfSeparators(valueDate, seperator) {
73
73
  return [...valueDate.matchAll(regex)].length;
74
74
  }
75
75
  /**
76
- * Parse a FHIR date string to a date to be consumed and displayed by the DateItem component.
76
+ * Parse a FHIR date string to a human-readable display format.
77
77
  *
78
78
  * @author Sean Fong
79
79
  */
@@ -100,6 +100,23 @@ export function parseFhirDateToDisplayDate(fhirDate) {
100
100
  }
101
101
  return { displayDate: fhirDate, dateParseFail: true };
102
102
  }
103
+ /**
104
+ * Parse a FHIR dateTime string to a human-readable display format.
105
+ * Supports full and partial FHIR dateTime values.
106
+ *
107
+ * @author Sean Fong
108
+ */
109
+ export function parseFhirDateTimeToDisplayDateTime(fhirDateTime) {
110
+ if (fhirDateTime.length === 0) {
111
+ return { displayDateTime: '' };
112
+ }
113
+ const fullDateTime = dayjs(fhirDateTime);
114
+ if (fullDateTime.isValid()) {
115
+ return { displayDateTime: fullDateTime.format('DD/MM/YYYY HH:mm') };
116
+ }
117
+ const parseFhirDateToDisplayDateResult = parseFhirDateToDisplayDate(fhirDateTime);
118
+ return { displayDateTime: parseFhirDateToDisplayDateResult.displayDate, dateParseFail: parseFhirDateToDisplayDateResult.dateParseFail };
119
+ }
103
120
  export function parseInputDateToFhirDate(displayDate) {
104
121
  const numOfSeparators = getNumOfSeparators(displayDate, '/');
105
122
  if (numOfSeparators === 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"parseDate.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/utils/parseDate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseDate.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/utils/parseDate.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export { RepeatItem } from './RepeatItem';
4
4
  export { RepeatGroup } from './RepeatGroup';
5
5
  export { GroupTable } from './Tables';
6
6
  export { GridGroup } from './GridGroup';
7
- export { parseFhirDateToDisplayDate } from './DateTimeItems';
7
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './DateTimeItems';
8
8
  export { ItemFieldGrid, ItemLabel } from './ItemParts';
9
9
  export { BooleanField } from './BooleanItem';
10
10
  export { StringField } from './StringItem';
@@ -20,7 +20,7 @@ export { RepeatItem } from './RepeatItem';
20
20
  export { RepeatGroup } from './RepeatGroup';
21
21
  export { GroupTable } from './Tables';
22
22
  export { GridGroup } from './GridGroup';
23
- export { parseFhirDateToDisplayDate } from './DateTimeItems';
23
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './DateTimeItems';
24
24
  export { ItemFieldGrid, ItemLabel } from './ItemParts';
25
25
  // item type components
26
26
  export { BooleanField } from './BooleanItem';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FormComponents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEvD,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FormComponents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEvD,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export type { SmartFormsRendererProps } from './Renderer';
2
2
  export { SmartFormsRenderer, BaseRenderer } from './Renderer';
3
- export { SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle } from './FormComponents';
3
+ export { SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle } from './FormComponents';
4
4
  export { FullWidthFormComponentBox } from './Box.styles';
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  export { SmartFormsRenderer, BaseRenderer } from './Renderer';
18
- export { SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle } from './FormComponents';
18
+ export { SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle } from './FormComponents';
19
19
  // Styled MUI components
20
20
  export { FullWidthFormComponentBox } from './Box.styles';
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,wBAAwB;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,kCAAkC,EAClC,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,wBAAwB;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import '@fontsource/inter';
2
2
  export type { Tab, Tabs, Variables, VariableXFhirQuery, LaunchContext, CalculatedExpression, QItemOverrideComponentProps, SdcUiOverrideComponentProps } from './interfaces';
3
3
  export type { SmartFormsRendererProps } from './components';
4
- export { SmartFormsRenderer, BaseRenderer, SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle, FullWidthFormComponentBox } from './components';
4
+ export { SmartFormsRenderer, BaseRenderer, SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle, FullWidthFormComponentBox } from './components';
5
5
  export type { QuestionnaireStoreType, QuestionnaireResponseStoreType, SmartConfigStoreType, TerminologyServerStoreType, RendererStyling, RendererStylingStoreType } from './stores';
6
6
  export { questionnaireStore, useQuestionnaireStore, questionnaireResponseStore, useQuestionnaireResponseStore, smartConfigStore, useSmartConfigStore, terminologyServerStore, useTerminologyServerStore, rendererStylingStore, useRendererStylingStore } from './stores';
7
7
  export type { UseResponsiveProps } from './hooks';
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Import self-host typography Inter font
2
2
  import '@fontsource/inter';
3
- export { SmartFormsRenderer, BaseRenderer, SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle, FullWidthFormComponentBox } from './components';
3
+ export { SmartFormsRenderer, BaseRenderer, SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle, FullWidthFormComponentBox } from './components';
4
4
  export { questionnaireStore, useQuestionnaireStore, questionnaireResponseStore, useQuestionnaireResponseStore, smartConfigStore, useSmartConfigStore, terminologyServerStore, useTerminologyServerStore, rendererStylingStore, useRendererStylingStore } from './stores';
5
5
  export { useHidden, useReadOnly, useBuildForm, useRendererQueryClient, useRenderingExtensions, useValidationFeedback, useValueSetCodings, useStringCalculatedExpression, useDisplayCqfAndCalculatedExpression, useCodingCalculatedExpression, objectIsCoding, useResponsive } from './hooks';
6
6
  export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, canBeObservationExtracted, buildBundleFromObservationArray, getQuestionnaireItem, getSectionHeading } from './utils';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,mBAAmB,CAAC;AAgB3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,mBAAmB,CAAC;AAgB3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,kCAAkC,EAClC,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "1.0.0-alpha.75",
3
+ "version": "1.0.0-alpha.76",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -15,4 +15,4 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- export { parseFhirDateToDisplayDate } from './utils';
18
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './utils';
@@ -15,4 +15,5 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- export { parseFhirDateToDisplayDate } from './parseDate';
18
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './parseDate';
19
+
@@ -94,7 +94,7 @@ export function getNumOfSeparators(valueDate: string, seperator: string) {
94
94
  }
95
95
 
96
96
  /**
97
- * Parse a FHIR date string to a date to be consumed and displayed by the DateItem component.
97
+ * Parse a FHIR date string to a human-readable display format.
98
98
  *
99
99
  * @author Sean Fong
100
100
  */
@@ -130,6 +130,30 @@ export function parseFhirDateToDisplayDate(fhirDate: string): {
130
130
  return { displayDate: fhirDate, dateParseFail: true };
131
131
  }
132
132
 
133
+ /**
134
+ * Parse a FHIR dateTime string to a human-readable display format.
135
+ * Supports full and partial FHIR dateTime values.
136
+ *
137
+ * @author Sean Fong
138
+ */
139
+ export function parseFhirDateTimeToDisplayDateTime(fhirDateTime: string): {
140
+ displayDateTime: string;
141
+ dateParseFail?: boolean;
142
+ } {
143
+ if (fhirDateTime.length === 0) {
144
+ return { displayDateTime: '' };
145
+ }
146
+
147
+ const fullDateTime = dayjs(fhirDateTime);
148
+ if (fullDateTime.isValid()) {
149
+ return { displayDateTime: fullDateTime.format('DD/MM/YYYY HH:mm') };
150
+ }
151
+
152
+ const parseFhirDateToDisplayDateResult = parseFhirDateToDisplayDate(fhirDateTime);
153
+
154
+ return { displayDateTime: parseFhirDateToDisplayDateResult.displayDate, dateParseFail: parseFhirDateToDisplayDateResult.dateParseFail };
155
+ }
156
+
133
157
  export function parseInputDateToFhirDate(displayDate: string) {
134
158
  const numOfSeparators = getNumOfSeparators(displayDate, '/');
135
159
 
@@ -21,7 +21,7 @@ export { RepeatItem } from './RepeatItem';
21
21
  export { RepeatGroup } from './RepeatGroup';
22
22
  export { GroupTable } from './Tables';
23
23
  export { GridGroup } from './GridGroup';
24
- export { parseFhirDateToDisplayDate } from './DateTimeItems';
24
+ export { parseFhirDateToDisplayDate, parseFhirDateTimeToDisplayDateTime } from './DateTimeItems';
25
25
  export { ItemFieldGrid, ItemLabel } from './ItemParts';
26
26
 
27
27
  // item type components
@@ -25,6 +25,7 @@ export {
25
25
  GroupTable,
26
26
  GridGroup,
27
27
  parseFhirDateToDisplayDate,
28
+ parseFhirDateTimeToDisplayDateTime,
28
29
  ItemFieldGrid,
29
30
  ItemLabel,
30
31
  BooleanField,
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ export {
25
25
  GroupTable,
26
26
  GridGroup,
27
27
  parseFhirDateToDisplayDate,
28
+ parseFhirDateTimeToDisplayDateTime,
28
29
  ItemFieldGrid,
29
30
  ItemLabel,
30
31
  BooleanField,