feat(MED-131): support multiple elements under same group for creating fake medipost responses

This commit is contained in:
2025-08-04 16:30:17 +03:00
parent 84b629ab0b
commit 0c6bda607d

View File

@@ -91,6 +91,12 @@ export async function composeOrderTestResponseXML({
// 5 Tagasi lükatud, 6 Tühistatud. // 5 Tagasi lükatud, 6 Tühistatud.
const orderStatus = 4; const orderStatus = 4;
const orderNumber = 'TSU000001200'; const orderNumber = 'TSU000001200';
const allAnalysisElementsForGroups = analysisElements?.filter((element) => {
return analysisGroups.some((group) => group.id === element.analysis_groups.id);
});
const addedIds = new Set<number>();
return `<?xml version="1.0" encoding="UTF-8"?> return `<?xml version="1.0" encoding="UTF-8"?>
<Saadetis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TellimusLOINC.xsd"> <Saadetis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TellimusLOINC.xsd">
${getPais(USER, RECIPIENT, orderCreatedAt, orderId, "AL")} ${getPais(USER, RECIPIENT, orderCreatedAt, orderId, "AL")}
@@ -118,12 +124,17 @@ export async function composeOrderTestResponseXML({
<TellimuseNumber>${orderNumber}</TellimuseNumber> <TellimuseNumber>${orderNumber}</TellimuseNumber>
<TellimuseOlek>${orderStatus}</TellimuseOlek> <TellimuseOlek>${orderStatus}</TellimuseOlek>
${analysisGroups.map((group) => { ${allAnalysisElementsForGroups.map((analysisElement) => {
const group = analysisGroups.find((group) => group.id === analysisElement.analysis_groups.id);
if (!group) {
throw new Error(`Failed to find group for analysis element ${analysisElement.id}`);
}
let relatedAnalysisElement = analysisElements?.find( let relatedAnalysisElement = analysisElements?.find(
(element) => element.analysis_groups.id === group.id, (element) => element.analysis_groups.id === group.id && !addedIds.has(element.id),
); );
const relatedAnalyses = analyses?.filter((analysis) => { const relatedAnalyses = analyses?.filter((analysis) => {
return analysis.analysis_elements.analysis_groups.id === group.id; return analysis.analysis_elements.analysis_groups.id === group.id && !addedIds.has(analysis.analysis_elements.id);
}); });
if (!relatedAnalysisElement) { if (!relatedAnalysisElement) {
@@ -143,6 +154,7 @@ export async function composeOrderTestResponseXML({
const lower = getRandomInt(0, 100); const lower = getRandomInt(0, 100);
const upper = getRandomInt(lower + 1, 500); const upper = getRandomInt(lower + 1, 500);
const result = getRandomInt(lower, upper); const result = getRandomInt(lower, upper);
addedIds.add(relatedAnalysisElement.id);
return (` return (`
<UuringuGrupp> <UuringuGrupp>
<UuringuGruppId>${group.original_id}</UuringuGruppId> <UuringuGruppId>${group.original_id}</UuringuGruppId>