/mirth-transmissionmode-cube30touch

A transmission mode provider for Diesse Cube 30 Touch erythrocyte sedimentation rate analyzer

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Cube 30 Touch Transmission mode

A transmission mode provider for Diesse Cube 30 Touch erythrocyte sedimentation rate analyzer


Installation

Like any other Mirth plugin

  1. Clone repo
  2. Run maven clean package
  3. Get cube30mode.zip file from distribution/target
  4. Drop zip contents into mirthroot/extensions
    • OR
  5. Install through Mirth Connect Administrator

Usage

  1. Set Source Connector inbound datatype to XML
  2. Set Source Connector Type to TCP Listener
  3. Set transmission mode to Cube30Touch
  4. Set TCP Listener data type to Text with default encoding. UTF-8 should be fine.

Sample

Incoming hex

3e 30 30 32 35 30 31 35 31 30 31 4c 32 30 30 35 30 38 30 31 32 36 30 10 30 38 30 35 32 30 31 34 32 30 20 20 20 30 30 38 30 30 30 30 30 35 0d 34 33 3e 30 30 32 35 30 31 35 31 30 31 4c 31 39 31 31 32 32 30 31 33 36 31 10 31 32 30 35 32 30 31 34 34 30 20 20 36 38 30 30 30 30 30 30 31 38 0d 35 34 

Incoming ascii

>0025015101L20050801260�0805201420   008000005
43>0025015101L19112201361�1205201440  6800000018
54

Converted xml

<cubeFrames>
    <readFrameCount>2</readFrameCount>
    <cubeFrame>
        <dataBytesCount>25</dataBytesCount>
        <recordTubesCount>1</recordTubesCount>
        <barcode>L20050801260</barcode>
        <dateTime>2020-05-08T14:20</dateTime>
        <ves>0</ves>
        <flag>Reading Error</flag>
        <cycle>5</cycle>
        <isValidFrame>true</isValidFrame>
    </cubeFrame>
    <cubeFrame>
        <dataBytesCount>25</dataBytesCount>
        <recordTubesCount>1</recordTubesCount>
        <barcode>L19112201361</barcode>
        <dateTime>2020-05-12T14:40</dateTime>
        <ves>68</ves>
        <cycle>24</cycle>
        <isValidFrame>false</isValidFrame>
        <invalidityReason>CHECKSUM_FAULT</invalidityReason>
    </cubeFrame>
</cubeFrames>
  • If flagText element is present then the message is erroneous
  • The plugin rejects frames with invalid checksums! No longer...

Todo

  • More simplification
  • Pass through all fields and allow user to filter from Source Filters
  • Moar settings
    • Level of Rejected frame data message
  • Implement more stuff from the specification
  • Also, should probably definitely move to byte iteration for field values instead of the current Regex...

Notes

  • This plugin does not do everything in the specification! As it stands right now it just receives messages and makes a pretty XML of it. The main purpose of this plugin was to simplify checksum calculation.

Contributing

Pull requests are always welcome


Screenshots

1. Datatypes

2. Source connector settings