fabric-samples/hyperledger-fabric/chaincode/fhir-data/src/patient.ts
2020-05-11 14:26:07 -05:00

186 lines
3.4 KiB
TypeScript

interface ICoding {
system?: string;
version?: string;
code?: string;
display?: string;
userSelected?: boolean;
}
interface IType {
coding?: ICoding[];
text?: string;
}
interface IPeriod {
start?: string;
end?: string;
}
interface IIdentifier {
use?: string;
type?: IType;
system?: string;
value?: string;
period?: IPeriod;
}
interface ISecurity {
system?: string;
version?: string;
code?: string;
display?: string;
userSelected?: boolean;
}
interface ITag {
system?: string;
version?: string;
code?: string;
display?: string;
userSelected?: boolean;
}
interface IMeta {
versionId?: string;
lastUpdated?: string;
source?: string;
profile?: string[];
security?: ISecurity[];
tag?: ITag[];
}
interface IText {
status?: string;
div?: string;
}
interface IName {
use?: string;
text?: string;
family?: string;
given?: string[];
prefix?: string[];
suffix?: string[];
period?: IPeriod;
}
interface ITelecom {
system?: string;
value?: string;
use?: string;
rank?: number;
period?: IPeriod;
}
interface IAddress {
use?: string;
type?: string;
text?: string;
line?: string[];
city?: string;
district?: string;
state?: string;
postalCode?: string;
country?: string;
period?: IPeriod;
}
interface IMaritalStatus {
coding?: ICoding[];
text?: string;
}
interface IPhoto {
contentType?: string;
language?: string;
data?: string;
url?: string;
size?: number;
hash?: string;
title?: string;
creation?: string;
}
interface IRelationship {
coding?: ICoding[];
text?: string;
}
interface IOrganization {
reference?: string;
type?: string;
identifier?: IIdentifier;
display?: string;
}
interface IContact {
relationship?: IRelationship[];
name?: IName;
telecom?: ITelecom[];
address?: IAddress;
gender: string;
organization?: IOrganization;
period?: IPeriod;
}
interface ILanguage {
coding?: ICoding[];
text?: string;
}
interface ICommunication {
language?: ILanguage;
preferred?: boolean;
}
interface IGeneralPractitioner {
reference?: string;
type?: string;
identifier?: IIdentifier;
display?: string;
}
interface IManagingOrganization {
reference?: string;
type?: string;
identifier?: IIdentifier;
display?: string;
}
interface IOther {
reference?: string;
type?: string;
identifier?: IIdentifier;
display?: string;
}
interface ILink {
other?: IOther;
type: string;
}
// Patient is an asset
export class Patient {
public resourceType?: string;
public id?: string;
public meta?: IMeta;
public implicitRules?: string;
public language?: string;
public Text?: Text;
public identifier?: IIdentifier[];
public active?: boolean;
public name?: IName[];
public telecom?: ITelecom[];
public gender: string;
public birthDate?: string;
public deceasedBoolean?: boolean;
public address?: IAddress[];
public maritalStatus?: IMaritalStatus;
public multipleBirthBoolean?: boolean;
public photo?: IPhoto[];
public contact?: IContact[];
public communication?: ICommunication[];
public generalPractitioner?: IGeneralPractitioner[];
public managingOrganization?: IManagingOrganization[];
public link?: ILink[];
}