feat(MED-161): use shared types

This commit is contained in:
2025-09-17 11:17:08 +03:00
parent 4ac261fd0d
commit 4560d2df1d
4 changed files with 140 additions and 135 deletions

View File

@@ -0,0 +1,132 @@
export const NormStatus: Record<number, string> = {
0: 'NORMAL',
1: 'WARNING',
2: 'REQUIRES_ATTENTION',
} as const;
export const AnalysisOrderStatus = {
1: 'QUEUED',
2: 'ON_HOLD',
3: 'PROCESSING',
4: 'COMPLETED',
5: 'REJECTED',
6: 'CANCELLED',
} as const;
export type UuringuVastus = {
VastuseVaartus: string; // numeric or text like 'Negatiivne'
VastuseAeg: string;
NormYlem?: {
'#text': number;
'@_kaasaarvatud': string;
}; // 0..1
NormAlum?: {
'#text': number;
'@_kaasaarvatud': string;
};
NormiStaatus: keyof typeof NormStatus;
ProoviJarjenumber: number;
};
export type UuringElement = {
UuringIdOID: string;
UuringId: string;
TLyhend: string;
KNimetus: string;
UuringNimi: string;
TellijaUuringId: number;
TeostajaUuringId: string;
UuringOlek: keyof typeof AnalysisOrderStatus;
Mootyhik?: string; // 0..1
Kood: {
HkKood: number;
HkKoodiKordaja: number;
Koefitsient: number;
Hind: number;
};
UuringuVastus?: UuringuVastus | UuringuVastus[]; // 0..n
UuringuKommentaar?: string;
}
export type ResponseUuring = {
UuringuElement: UuringElement;
UuringuTaitjaAsutuseJnr: number;
};
export type ResponseUuringuGrupp = {
UuringuGruppId: string;
UuringuGruppNimi: string;
Uuring: ResponseUuring | ResponseUuring[]; // 1..n
};
export interface IMedipostResponseXMLBase {
'?xml': {
'@_version': string;
'@_encoding': string;
'@_standalone': 'yes' | 'no';
};
ANSWER?: { CODE: number };
}
export type MedipostOrderResponse = IMedipostResponseXMLBase & {
Saadetis: {
Pais: {
Pakett: {
'#text': string;
'@_versioon': string;
};
Saatja: string;
Saaja: string;
Aeg: string;
SaadetisId: string;
Email: string;
};
Vastus?: {
ValisTellimuseId: string;
Asutus: {
'@_tyyp': string; // TEOSTAJA
'@_jarjenumber': string;
AsutuseId: number;
AsutuseNimi: string;
AsutuseKood: string;
AllyksuseNimi?: string;
Telefon: number;
}[]; //@_tyyp = TELLIJA 1..1, @_tyyp = TEOSTAJA 1..n
Personal: {
'@_tyyp': string;
'@_jarjenumber': string;
PersonalOID: string;
PersonalKood: string;
PersonalPerekonnaNimi: string;
PersonalEesNimi: string;
Telefon: number;
};
Patsient: {
IsikukoodiOID: string;
Isikukood: string;
PerekonnaNimi: string;
EesNimi: string;
SynniAeg: string;
SuguOID: string;
Sugu: string;
};
Proov: Array<{
ProovinouIdOID: string;
ProovinouId: string;
MaterjaliTyypOID: string;
MaterjaliTyyp: number;
MaterjaliNimi: string;
Ribakood: string;
Jarjenumber: number;
VotmisAeg: string;
SaabumisAeg: string;
}>;
TellimuseNumber: string;
TellimuseOlek: keyof typeof AnalysisOrderStatus;
UuringuGrupp?: ResponseUuringuGrupp | ResponseUuringuGrupp[];
};
Tellimus?: {
ValisTellimuseId: string;
}
};
};