65 lines
1.3 KiB
TypeScript
65 lines
1.3 KiB
TypeScript
// types/fhir.ts
|
|
|
|
export interface FhirHumanName {
|
|
use?:
|
|
| "usual"
|
|
| "official"
|
|
| "temp"
|
|
| "nickname"
|
|
| "anonymous"
|
|
| "old"
|
|
| "maiden";
|
|
text: string;
|
|
family?: string;
|
|
given?: string[];
|
|
prefix?: string[];
|
|
suffix?: string[];
|
|
period?: {
|
|
start?: string;
|
|
end?: string;
|
|
};
|
|
}
|
|
|
|
export interface FhirIdentifier {
|
|
use?: "usual" | "official" | "temp" | "secondary" | "old";
|
|
type?: {
|
|
coding?: Array<{
|
|
system?: string;
|
|
code?: string;
|
|
display?: string;
|
|
}>;
|
|
};
|
|
system?: string;
|
|
value?: string;
|
|
period?: {
|
|
start?: string;
|
|
end?: string;
|
|
};
|
|
}
|
|
|
|
export interface FhirPatient {
|
|
resourceType: "Patient";
|
|
id?: string;
|
|
identifier?: FhirIdentifier[];
|
|
active?: boolean;
|
|
name?: FhirHumanName[];
|
|
telecom?: Array<{
|
|
system?: "phone" | "fax" | "email" | "pager" | "url" | "sms" | "other";
|
|
value?: string;
|
|
use?: "home" | "work" | "temp" | "old" | "mobile";
|
|
}>;
|
|
gender?: "male" | "female" | "other" | "unknown";
|
|
birthDate?: string;
|
|
address?: Array<{
|
|
use?: "home" | "work" | "temp" | "old" | "billing";
|
|
type?: "postal" | "physical" | "both";
|
|
text?: string;
|
|
line?: string[];
|
|
city?: string;
|
|
district?: string;
|
|
state?: string;
|
|
postalCode?: string;
|
|
country?: string;
|
|
}>;
|
|
}
|