HL7-3: remove optimistic updates #5

Merged
markus merged 3 commits from 3-remove-optimistic-updates into development 2025-07-30 11:16:43 +00:00
Showing only changes of commit fec77b73c3 - Show all commits

View file

@ -9,7 +9,13 @@
UnplugIcon, UnplugIcon,
UserIcon, UserIcon,
} from '@lucide/svelte'; } from '@lucide/svelte';
import { ConnectionState, type Message, MessageType, type ReceiveHl7v2Message } from '@hnu.de/hl7v2-shared'; import {
ConnectionState,
type DeliverySuccessMessage,
type Message,
MessageType,
type ReceiveHl7v2Message,
} from '@hnu.de/hl7v2-shared';
import { Button } from '$lib/components/ui/button'; import { Button } from '$lib/components/ui/button';
import { Card, CardContent, CardHeader } from '$lib/components/ui/card'; import { Card, CardContent, CardHeader } from '$lib/components/ui/card';
import { Input } from '$lib/components/ui/input'; import { Input } from '$lib/components/ui/input';
@ -25,7 +31,7 @@
// client state // client state
let composedMessage = $state(''); // content of text-box let composedMessage = $state(''); // content of text-box
let sentMessages = $state<ReceiveHl7v2Message[]>([]); // sent messages stored as type ReceiveHl7v2Message because of the timestamp let sentMessages = $state<DeliverySuccessMessage[]>([]);
let receivedMessages = $state<ReceiveHl7v2Message[]>([]); let receivedMessages = $state<ReceiveHl7v2Message[]>([]);
let isSending = $state(false); let isSending = $state(false);
let copySuccess = $state(false); let copySuccess = $state(false);
@ -96,6 +102,12 @@
receivedMessages = [message, ...receivedMessages]; receivedMessages = [message, ...receivedMessages];
break; break;
// our message was successfully delivered
case MessageType.delivery_success:
sentMessages = [message, ...sentMessages];
isSending = false
break;
// message from server due to delivery error // message from server due to delivery error
case MessageType.delivery_error: case MessageType.delivery_error:
deliveryError = message.payload.error; deliveryError = message.payload.error;
@ -154,15 +166,6 @@
payload: { message }, payload: { message },
} as Message; } as Message;
ws.send(JSON.stringify(messageToSend)); ws.send(JSON.stringify(messageToSend));
sentMessages = [{
type: MessageType.receive_hl7v2,
payload: { message, timestamp: new Date().toISOString() },
} as ReceiveHl7v2Message, ...sentMessages];
composedMessage = segmentTemplates.MSH.template();
// reset UI state
isSending = false;
} }
// copies the stationId to the clipboard and handles UI state // copies the stationId to the clipboard and handles UI state