Skip to content

Commit be0820f

Browse files
committed
Define proper AnswerValue type for better typechecking
1 parent d1d5366 commit be0820f

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "sdc-qrf",
33
"license": "MIT",
4-
"version": "1.0.0-alpha.2-fhir.8",
4+
"version": "1.0.0-alpha.2-fhir.9",
55
"scripts": {
66
"test": "vitest --watch=false",
77
"test:watch": "vitest --watch",

src/types.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { ComponentType } from 'react';
22

33
import {
4+
Attachment,
5+
Coding,
46
ParametersParameter,
7+
Quantity,
58
Questionnaire,
69
QuestionnaireItem,
710
QuestionnaireResponse,
811
QuestionnaireResponseItem,
912
QuestionnaireResponseItemAnswer,
13+
Reference,
1014
} from 'fhir/r4b';
1115
import { FCEQuestionnaire, FCEQuestionnaireItem } from './fce.types';
1216

@@ -72,7 +76,20 @@ export type FHIRAnswerValue = Omit<
7276
'item' | 'id' | '_id' | 'modifierExtension' | 'extension'
7377
>;
7478
// Internal Answer Value that is used in FormItems
75-
export type AnswerValue = { [x: string]: any };
79+
export type AnswerValue = {
80+
Attachment?: Attachment;
81+
boolean?: boolean;
82+
Coding?: Coding;
83+
date?: string;
84+
dateTime?: string;
85+
decimal?: number;
86+
integer?: number;
87+
Quantity?: Quantity;
88+
Reference?: Reference;
89+
string?: string;
90+
time?: string;
91+
uri?: string;
92+
};
7693

7794
export interface RepeatableFormGroupItems {
7895
question?: string;

src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ export function toAnswerValue(obj: Record<any, any>, prefix: string): AnswerValu
824824
}
825825

826826
export function toFHIRAnswerValue(answerValue: AnswerValue, prefix: string): FHIRAnswerValue {
827-
const key = Object.keys(answerValue)[0]!;
827+
const key = Object.keys(answerValue)[0]! as keyof AnswerValue;
828828

829829
return {
830830
[`${prefix}${capitalize(key)}`]: answerValue[key],

0 commit comments

Comments
 (0)