diff --git a/packages/client/src/routes/+page.svelte b/packages/client/src/routes/+page.svelte index 43ca8ee..585b194 100644 --- a/packages/client/src/routes/+page.svelte +++ b/packages/client/src/routes/+page.svelte @@ -9,13 +9,7 @@ UnplugIcon, UserIcon, } from '@lucide/svelte'; - import { - ConnectionState, - type DeliverySuccessMessage, - type Message, - MessageType, - type ReceiveHl7v2Message, - } from '@hnu.de/hl7v2-shared'; + import { ConnectionState, type Message, MessageType, type ReceiveHl7v2Message } from '@hnu.de/hl7v2-shared'; import { Button } from '$lib/components/ui/button'; import { Card, CardContent, CardHeader } from '$lib/components/ui/card'; import { Input } from '$lib/components/ui/input'; @@ -31,7 +25,7 @@ // client state let composedMessage = $state(''); // content of text-box - let sentMessages = $state([]); + let sentMessages = $state([]); // sent messages stored as type ReceiveHl7v2Message because of the timestamp let receivedMessages = $state([]); let isSending = $state(false); let copySuccess = $state(false); @@ -102,12 +96,6 @@ receivedMessages = [message, ...receivedMessages]; break; - // our message was successfully delivered - case MessageType.delivery_success: - sentMessages = [message, ...sentMessages]; - isSending = false - break; - // message from server due to delivery error case MessageType.delivery_error: deliveryError = message.payload.error; @@ -166,6 +154,15 @@ payload: { message }, } as Message; 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 diff --git a/packages/server/index.ts b/packages/server/index.ts index 5955eb1..acbf484 100644 --- a/packages/server/index.ts +++ b/packages/server/index.ts @@ -39,7 +39,7 @@ const clients = new Map(); console.log(`Starting WebSocket server ...`); -console.log('Server configuration:', config); +console.log("Server configuration:", config); wss.on('connection', (ws) => { @@ -105,29 +105,17 @@ wss.on('connection', (ws) => { // check if recipient exists and is connected if (recipientWs && recipientWs.readyState === WebSocket.OPEN) { - const timestamp = new Date().toISOString(); - // The recipient is connected. Forward the message. const forwardMessage = { type: MessageType.receive_hl7v2, payload: { message: message, - timestamp: timestamp, + timestamp: new Date().toISOString(), }, } as Message; recipientWs.send(JSON.stringify(forwardMessage)); console.log(`Forwarded message to ${recipientId}`); - const ackMessage = { - type: MessageType.delivery_success, - payload: { - message: message, - timestamp: timestamp, - }, - }; - ws.send(JSON.stringify(ackMessage)); - console.log(`Sent acknowledgment to ${stationId}`); - } else { // The recipient is not connected or not found. diff --git a/packages/shared/types.ts b/packages/shared/types.ts index 55a912a..12a45fb 100644 --- a/packages/shared/types.ts +++ b/packages/shared/types.ts @@ -11,7 +11,6 @@ export enum MessageType { assign_id = 'assign_id', send_hl7v2 = 'send_hl7v2', receive_hl7v2 = 'receive_hl7v2', - delivery_success = 'delivery_success', delivery_error = 'delivery_error', } @@ -20,9 +19,7 @@ export type Message = | { type: MessageType.assign_id, payload: { stationId: string }} | { type: MessageType.send_hl7v2, payload: { message: string }} | { type: MessageType.receive_hl7v2, payload: { message: string, timestamp: string }} - | { type: MessageType.delivery_success, payload: { message: string, timestamp: string }} | { type: MessageType.delivery_error, payload: { error: string }} // required to define list of this message type export type ReceiveHl7v2Message = Extract; -export type DeliverySuccessMessage = Extract;