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/17 12:06] – 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 date, time and a serial number counting from 0 padded with zeros up to precisely 5 characters. Example: '' | ||
| - | This number is converted into hex (network order/big endian) generating a string of precisely 14 characters (max length in MedCom message field) | ||
| - | All messages, both received and sent, are stored in a log folder with a hex[0-2]/ | ||
| - | These files are used when generating new message ids in order to guarantee uniqueness (CREATE_EXCL). | ||
| - | The above example id would be encoded into: '' | ||
| - | A message sent one month later, '' | ||
| - | The folder changes roughly twice per month. | ||
| - | ====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 | ||
| - | * Receiver address id | ||
| - | * Message title | ||
| - | * Message status | ||
| - | * Message times (sent/ | ||
| - | * Message body (server generated resume based on MedCom XML) | ||
| - | * Original MedCom XML in base64. | ||
| - | <code xml> | ||
| - | </ | ||
| - | |||
| - | ====Send Format==== | ||
| - | Contains: | ||
| - | * Sender address id | ||
| - | * Receiver address id | ||
| - | * A list of required fields | ||
yamms/yamms.1313575588.txt.gz · Last modified: by deva
