173 lines
5.2 KiB
TypeScript
173 lines
5.2 KiB
TypeScript
import { DATE_TIME_FORMAT } from '@/lib/constants';
|
|
import { Tables } from '@/packages/supabase/src/database.types';
|
|
import { format } from 'date-fns';
|
|
|
|
const isProd = process.env.NODE_ENV === 'production';
|
|
|
|
export const getPais = (
|
|
sender: string,
|
|
recipient: string,
|
|
createdAt: Date,
|
|
messageId: number,
|
|
) => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `<Pais>
|
|
<Pakett versioon="20">OL</Pakett>
|
|
<Saatja>${sender}</Saatja>
|
|
<Saaja>${recipient}</Saaja>
|
|
<Aeg>${format(createdAt, DATE_TIME_FORMAT)}</Aeg>
|
|
<SaadetisId>${messageId}</SaadetisId>
|
|
<Email>argo@medreport.ee</Email>
|
|
</Pais>`;
|
|
};
|
|
|
|
export const getClientInstitution = () => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `<Asutus tyyp="TELLIJA">
|
|
<AsutuseId>16381793</AsutuseId>
|
|
<AsutuseNimi>MedReport OÜ</AsutuseNimi>
|
|
<AsutuseKood>TSU</AsutuseKood>
|
|
<Telefon>+37258871517</Telefon>
|
|
</Asutus>`;
|
|
};
|
|
|
|
export const getProviderInstitution = () => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `<Asutus tyyp="TEOSTAJA">
|
|
<AsutuseId>11107913</AsutuseId>
|
|
<AsutuseNimi>Synlab HTI Tallinn</AsutuseNimi>
|
|
<AsutuseKood>SLA</AsutuseKood>
|
|
<AllyksuseNimi>Synlab HTI Tallinn</AllyksuseNimi>
|
|
<Telefon>+3723417123</Telefon>
|
|
</Asutus>`;
|
|
};
|
|
|
|
export const getClientPerson = () => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `<Personal tyyp="TELLIJA" jarjenumber="1">
|
|
<PersonalOID>1.3.6.1.4.1.28284.6.2.4.9</PersonalOID>
|
|
<PersonalKood>D07907</PersonalKood>
|
|
<PersonalPerekonnaNimi>Eduard</PersonalPerekonnaNimi>
|
|
<PersonalEesNimi>Tsvetkov</PersonalEesNimi>
|
|
<Telefon>+37258131202</Telefon>
|
|
</Personal>`;
|
|
};
|
|
|
|
export const getOrderEnteredPerson = () => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `<Personal tyyp="SISESTAJA" jarjenumber="1">
|
|
<PersonalOID>1.3.6.1.4.1.28284.6.2.4.9</PersonalOID>
|
|
<PersonalKood>D07907</PersonalKood>
|
|
<PersonalPerekonnaNimi>Eduard</PersonalPerekonnaNimi>
|
|
<PersonalEesNimi>Tsvetkov</PersonalEesNimi>
|
|
<Telefon>+37258131202</Telefon>
|
|
</Personal>`;
|
|
};
|
|
|
|
export const getPatient = (
|
|
idCode: number,
|
|
surname: string,
|
|
firstName: string,
|
|
birthDate: string,
|
|
genderLetter: string,
|
|
) => {
|
|
return `<Patsient>
|
|
<IsikukoodiOID>1.3.6.1.4.1.28284.6.2.2.1</IsikukoodiOID>
|
|
<Isikukood>${idCode}</Isikukood>
|
|
<PerekonnaNimi>${surname}</PerekonnaNimi>
|
|
<EesNimi>${firstName}</EesNimi>
|
|
<SynniAeg>${birthDate}</SynniAeg>
|
|
<SuguOID>1.3.6.1.4.1.28284.6.2.3.16.2</SuguOID>
|
|
<Sugu>${genderLetter}</Sugu>
|
|
</Patsient>`;
|
|
};
|
|
|
|
export const getConfidentiality = () => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `<Konfidentsiaalsus>
|
|
<PatsiendileOID>2.16.840.1.113883.5.25</PatsiendileOID>
|
|
<Patsiendile>N</Patsiendile>
|
|
<ArstileOID>1.3.6.1.4.1.28284.6.2.2.39.1</ArstileOID>
|
|
<Arstile>N</Arstile>
|
|
<EsindajaleOID>1.3.6.1.4.1.28284.6.2.2.37.1</EsindajaleOID>
|
|
<Esindajale>N</Esindajale>
|
|
</Konfidentsiaalsus>`;
|
|
};
|
|
|
|
export const getOrderEnteredByPerson = () => {
|
|
if (isProd) {
|
|
// return correct data
|
|
}
|
|
return `
|
|
<Personal tyyp="SISESTAJA" jarjenumber="1">
|
|
<PersonalOID>1.3.6.1.4.1.28284.6.2.4.9</PersonalOID>
|
|
<PersonalKood>D07907</PersonalKood>
|
|
<PersonalPerekonnaNimi>Eduard</PersonalPerekonnaNimi>
|
|
<PersonalEesNimi>Tsvetkov</PersonalEesNimi>
|
|
<Telefon>+37258131202</Telefon>
|
|
</Personal>`;
|
|
};
|
|
|
|
export const getSpecimen = (
|
|
materialTypeOid: string,
|
|
materialGroupId: string,
|
|
materialName: string,
|
|
order: number,
|
|
sampleContainerOid?: string,
|
|
sampleContainerId?: string,
|
|
) =>
|
|
`
|
|
<Proov>
|
|
${sampleContainerOid ? `<ProovinouIdOID>${sampleContainerOid}</ProovinouIdOID>` : null}
|
|
${sampleContainerId ? `<ProovinouId>${sampleContainerId}</ProovinouId>` : null}
|
|
<MaterjaliTyypOID>${materialTypeOid}</MaterjaliTyypOID>
|
|
<MaterjaliTyyp>${materialGroupId}</MaterjaliTyyp>
|
|
<MaterjaliNimi>${materialName}</MaterjaliNimi>
|
|
<Jarjenumber>${order}</Jarjenumber>
|
|
</Proov>`;
|
|
|
|
export const getAnalysisElement = (
|
|
analysisIdOid: string,
|
|
analysisIdOriginal: string,
|
|
tehikShortLoinc: string,
|
|
tehikLoincName: string,
|
|
analysisElementId: number,
|
|
analysisNameLab?: string | null,
|
|
) => {
|
|
return `<UuringuElement>
|
|
<UuringIdOID>${analysisIdOid}</UuringIdOID>
|
|
<UuringId>${analysisIdOriginal}</UuringId>
|
|
<TLyhend>${tehikShortLoinc}</TLyhend>
|
|
<KNimetus>${tehikLoincName}</KNimetus>
|
|
<UuringNimi>${analysisNameLab ?? tehikLoincName}</UuringNimi>
|
|
<TellijaUuringId>${analysisElementId}</TellijaUuringId>
|
|
</UuringuElement>`;
|
|
};
|
|
|
|
export const getAnalysisGroup = (
|
|
analysisGroupOriginalId: string,
|
|
analysisGroupName: string,
|
|
specimenOrderNr: number,
|
|
analysisElement: Tables<{ schema: 'medreport' }, 'analysis_elements'>,
|
|
) =>
|
|
`<UuringuGrupp>
|
|
<UuringuGruppId>${analysisGroupOriginalId}</UuringuGruppId>
|
|
<UuringuGruppNimi>${analysisGroupName}</UuringuGruppNimi>
|
|
<Uuring>
|
|
${getAnalysisElement(analysisElement.analysis_id_oid, analysisElement.analysis_id_original, analysisElement.tehik_short_loinc, analysisElement.tehik_loinc_name, analysisElement.id, analysisElement.analysis_name_lab)}
|
|
<ProoviJarjenumber>${specimenOrderNr}</ProoviJarjenumber>
|
|
</Uuring>
|
|
</UuringuGrupp>`;
|