Files
medreport_mrb2b/lib/templates/medipost-order.ts
2025-07-09 13:31:37 +03:00

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>`;