yamms:yamms
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
yamms:yamms [2011/08/22 12:14] – deva | yamms:yamms [2011/08/24 11:14] (current) – removed deva | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======YaMMS - Yet another Medical Messaging System====== | ||
- | =====Message Transport Procedure===== | ||
- | ====Message IDs and logging==== | ||
- | Message ids are based on two components; The capital letter ' | ||
- | Each message is stored in a folder with the name generated from the generation date; [year]/ | ||
- | When a new message id is to be generated the folder with the greatest year/month is opened and the file with the greatest serial number is identified. With this number as the base a new file is created with '' | ||
- | |||
- | ====Receiving==== | ||
- | * Message files drop into the inbox folder from ftp in regular intervals (ex. 10 minutes). | ||
- | * Each message file is parsed and receipts are put in the outbox. | ||
- | * Each message file is added to an index containing message metadata (ex. read/ | ||
- | * Bad messages (syntax errors, unknown types etc.) are marked as such. | ||
- | * Control messages are used to mark uploaded messages in the outbox-waiting-confirm folder. | ||
- | |||
- | ====Sending==== | ||
- | * Inotify on the outbox triggers the sending event. | ||
- | * Any newly written messages in the outbox is syntax checked and validated. | ||
- | * Errornous messages are stalled and a message is put in the inbox that the message could not be sent. | ||
- | * Validated messages are uploaded to the ftp server. | ||
- | * Each uploaded file is put in a outbox-waiting-confirm folder and marked as uploaded but not confirmed. | ||
- | * Each upload also makes a download. | ||
- | |||
- | =====Http protocol (client interface)===== | ||
- | * Get inbox contents (list of messages containing id, type and resume tupples) | ||
- | * Move message to [trash|archive|...] | ||
- | * (Delete message entirely?) | ||
- | * Send [hospitalreferral|...] | ||
- | * Mark message as [read|unread|handled|...] | ||
- | * Get address by id. | ||
- | * Edit address (by id). | ||
- | * Create address. | ||
- | * Delete address. | ||
- | |||
- | =====Internal Message Format====== | ||
- | All internal messages are in UTF-8 encoding.\\ | ||
- | All address ids maps to address entries in database on server. | ||
- | |||
- | |||
- | ====Read Format==== | ||
- | Contains: | ||
- | * Message id | ||
- | * Sender address id (ean number) | ||
- | * Receiver address id (ean number) | ||
- | * Message title (message type and one line resume) | ||
- | * Message status | ||
- | * Message times (sent/ | ||
- | * Message body (server generated resume based on MedCom XML) | ||
- | * Original MedCom XML in base64. | ||
- | <code xml> | ||
- | < | ||
- | <message id=" | ||
- | | ||
- | < | ||
- | < | ||
- | < | ||
- | ZHRyeWtrZXQtIFRhYmwgQ2VudHlsIG0uIEtDbCAxIGRnbCAgZm9yIEJUIG9nIHZhbmRkcml2ZW5k | ||
- | ZSAtIFRhYmwgS2FsZW9yaWQgMSBkZ2wga2FsaXVtdGlsc2t1ZCA8QnJlYWsvPjwvQWN0dWFsTWVk | ||
- | aWNpbmU+CiAgICA8L1JlbGV2YW50Q2xpbmljYWxJbmZvcm1hdGlvbj4KICA8L0hvc3BpdGFsUmVm | ||
- | ZXJyYWw+CjwvRW1lc3NhZ2U+Cg==</ | ||
- | </ | ||
- | <message ...> | ||
- | . | ||
- | . | ||
- | . | ||
- | </ | ||
- | . | ||
- | . | ||
- | . | ||
- | </ | ||
- | </ | ||
- | |||
- | ====Send Format==== | ||
- | Contains: | ||
- | * Sender address id | ||
- | * Receiver address id | ||
- | * A list of required fields | ||
- | |||
- | =====VANS communication===== | ||
- | All VANS communication is done using existing scripts. YaMMS simply gets its own inbox/ | ||
- | |||
- | <code xml> | ||
- | <!-- Gammelt: | ||
- | Connections to the VANS ftp server are done by using libcURL.\\ | ||
- | A connection session consists of the following actions: | ||
- | * Connect | ||
- | * Get VANS-inbox directory listing. | ||
- | * Download VANS-inbox files to local inbox. | ||
- | * Delete VANS-inbox files. | ||
- | * Get local outbox directory listing. | ||
- | * Upload local outbox files to tmp folder on VANS-server. | ||
- | * Move files from tmp folder on VANS-server to VANS-outbox. | ||
- | * Delete local outbox files (move to archive?). | ||
- | * Disconnect. | ||
- | The procedure is activated either by a timer-timeout event (eg. every 10 minutes) or when a client request the sending of a message (a message is put in the outbox). | ||
- | A separate single shot timer may be introduced connecting 10 seconds after an upload has been made in order to check for immediate negative-VANS control messages. | ||
- | |||
- | Using libcURL with ftp: http:// | ||
- | --> | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
yamms/yamms.1314008096.txt.gz · Last modified: 2011/08/22 12:14 by deva