├── .gitignore ├── HMIS-Middleware.sln ├── LICENSE.md ├── Middleware ├── 9208_sysmex1.ico ├── ASCII.cs ├── Analyzer.cs ├── App.config ├── CommunicateProtocol.cs ├── CommunicationParameterParity.cs ├── FormMain.Designer.cs ├── FormMain.cs ├── FormMain.resx ├── HMIS-Middleware.csproj ├── ModeOfCommunication.cs ├── Program.cs └── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Output-SourceControl-Git.txt ├── README.md ├── Resources ├── CoolTerm Libs │ ├── Appearance Pak.dll │ ├── DocIcon0.ico │ ├── Internet Encodings.dll │ ├── MD5.dll │ └── XML.dll ├── CoolTerm.exe └── Images │ └── Product_180_XS-800i.jpg └── Testing Resources ├── 2018 07 27 dim.txt ├── Ana Dim 2.txt ├── Ana Dim 3.txt ├── DIm Results 4.txt ├── DIm.txt ├── Dim Ana 4.txt ├── Dim Lims Analysis.txt ├── Dim Results 21 July.txt ├── Output-Debug.txt ├── Results1.txt ├── Results2.txt ├── Results3.txt ├── Sample Input.txt ├── d.txt ├── dd.txt ├── s1.txt ├── s2.txt ├── s4.txt └── te.txt /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Aa][Rr][Mm]/ 27 | [Aa][Rr][Mm]64/ 28 | bld/ 29 | [Bb]in/ 30 | [Oo]bj/ 31 | [Ll]og/ 32 | 33 | # Visual Studio 2015/2017 cache/options directory 34 | .vs/ 35 | # Uncomment if you have tasks that create the project's static files in wwwroot 36 | #wwwroot/ 37 | 38 | # Visual Studio 2017 auto generated files 39 | Generated\ Files/ 40 | 41 | # MSTest test Results 42 | [Tt]est[Rr]esult*/ 43 | [Bb]uild[Ll]og.* 44 | 45 | # NUnit 46 | *.VisualState.xml 47 | TestResult.xml 48 | nunit-*.xml 49 | 50 | # Build Results of an ATL Project 51 | [Dd]ebugPS/ 52 | [Rr]eleasePS/ 53 | dlldata.c 54 | 55 | # Benchmark Results 56 | BenchmarkDotNet.Artifacts/ 57 | 58 | # .NET Core 59 | project.lock.json 60 | project.fragment.lock.json 61 | artifacts/ 62 | 63 | # StyleCop 64 | StyleCopReport.xml 65 | 66 | # Files built by Visual Studio 67 | *_i.c 68 | *_p.c 69 | *_h.h 70 | *.ilk 71 | *.meta 72 | *.obj 73 | *.iobj 74 | *.pch 75 | *.pdb 76 | *.ipdb 77 | *.pgc 78 | *.pgd 79 | *.rsp 80 | *.sbr 81 | *.tlb 82 | *.tli 83 | *.tlh 84 | *.tmp 85 | *.tmp_proj 86 | *_wpftmp.csproj 87 | *.log 88 | *.vspscc 89 | *.vssscc 90 | .builds 91 | *.pidb 92 | *.svclog 93 | *.scc 94 | 95 | # Chutzpah Test files 96 | _Chutzpah* 97 | 98 | # Visual C++ cache files 99 | ipch/ 100 | *.aps 101 | *.ncb 102 | *.opendb 103 | *.opensdf 104 | *.sdf 105 | *.cachefile 106 | *.VC.db 107 | *.VC.VC.opendb 108 | 109 | # Visual Studio profiler 110 | *.psess 111 | *.vsp 112 | *.vspx 113 | *.sap 114 | 115 | # Visual Studio Trace Files 116 | *.e2e 117 | 118 | # TFS 2012 Local Workspace 119 | $tf/ 120 | 121 | # Guidance Automation Toolkit 122 | *.gpState 123 | 124 | # ReSharper is a .NET coding add-in 125 | _ReSharper*/ 126 | *.[Rr]e[Ss]harper 127 | *.DotSettings.user 128 | 129 | # JustCode is a .NET coding add-in 130 | .JustCode 131 | 132 | # TeamCity is a build add-in 133 | _TeamCity* 134 | 135 | # DotCover is a Code Coverage Tool 136 | *.dotCover 137 | 138 | # AxoCover is a Code Coverage Tool 139 | .axoCover/* 140 | !.axoCover/settings.json 141 | 142 | # Visual Studio code coverage results 143 | *.coverage 144 | *.coveragexml 145 | 146 | # NCrunch 147 | _NCrunch_* 148 | .*crunch*.local.xml 149 | nCrunchTemp_* 150 | 151 | # MightyMoose 152 | *.mm.* 153 | AutoTest.Net/ 154 | 155 | # Web workbench (sass) 156 | .sass-cache/ 157 | 158 | # Installshield output folder 159 | [Ee]xpress/ 160 | 161 | # DocProject is a documentation generator add-in 162 | DocProject/buildhelp/ 163 | DocProject/Help/*.HxT 164 | DocProject/Help/*.HxC 165 | DocProject/Help/*.hhc 166 | DocProject/Help/*.hhk 167 | DocProject/Help/*.hhp 168 | DocProject/Help/Html2 169 | DocProject/Help/html 170 | 171 | # Click-Once directory 172 | publish/ 173 | 174 | # Publish Web Output 175 | *.[Pp]ublish.xml 176 | *.azurePubxml 177 | # Note: Comment the next line if you want to checkin your web deploy settings, 178 | # but database connection strings (with potential passwords) will be unencrypted 179 | *.pubxml 180 | *.publishproj 181 | 182 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 183 | # checkin your Azure Web App publish settings, but sensitive information contained 184 | # in these scripts will be unencrypted 185 | PublishScripts/ 186 | 187 | # NuGet Packages 188 | *.nupkg 189 | # NuGet Symbol Packages 190 | *.snupkg 191 | # The packages folder can be ignored because of Package Restore 192 | **/[Pp]ackages/* 193 | # except build/, which is used as an MSBuild target. 194 | !**/[Pp]ackages/build/ 195 | # Uncomment if necessary however generally it will be regenerated when needed 196 | #!**/[Pp]ackages/repositories.config 197 | # NuGet v3's project.json files produces more ignorable files 198 | *.nuget.props 199 | *.nuget.targets 200 | 201 | # Microsoft Azure Build Output 202 | csx/ 203 | *.build.csdef 204 | 205 | # Microsoft Azure Emulator 206 | ecf/ 207 | rcf/ 208 | 209 | # Windows Store app package directories and files 210 | AppPackages/ 211 | BundleArtifacts/ 212 | Package.StoreAssociation.xml 213 | _pkginfo.txt 214 | *.appx 215 | *.appxbundle 216 | *.appxupload 217 | 218 | # Visual Studio cache files 219 | # files ending in .cache can be ignored 220 | *.[Cc]ache 221 | # but keep track of directories ending in .cache 222 | !?*.[Cc]ache/ 223 | 224 | # Others 225 | ClientBin/ 226 | ~$* 227 | *~ 228 | *.dbmdl 229 | *.dbproj.schemaview 230 | *.jfm 231 | *.pfx 232 | *.publishsettings 233 | orleans.codegen.cs 234 | 235 | # Including strong name files can present a security risk 236 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 237 | #*.snk 238 | 239 | # Since there are multiple workflows, uncomment next line to ignore bower_components 240 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 241 | #bower_components/ 242 | 243 | # RIA/Silverlight projects 244 | Generated_Code/ 245 | 246 | # Backup & report files from converting an old project file 247 | # to a newer Visual Studio version. Backup files are not needed, 248 | # because we have git ;-) 249 | _UpgradeReport_Files/ 250 | Backup*/ 251 | UpgradeLog*.XML 252 | UpgradeLog*.htm 253 | ServiceFabricBackup/ 254 | *.rptproj.bak 255 | 256 | # SQL Server files 257 | *.mdf 258 | *.ldf 259 | *.ndf 260 | 261 | # Business Intelligence projects 262 | *.rdl.data 263 | *.bim.layout 264 | *.bim_*.settings 265 | *.rptproj.rsuser 266 | *- [Bb]ackup.rdl 267 | *- [Bb]ackup ([0-9]).rdl 268 | *- [Bb]ackup ([0-9][0-9]).rdl 269 | 270 | # Microsoft Fakes 271 | FakesAssemblies/ 272 | 273 | # GhostDoc plugin setting file 274 | *.GhostDoc.xml 275 | 276 | # Node.js Tools for Visual Studio 277 | .ntvs_analysis.dat 278 | node_modules/ 279 | 280 | # Visual Studio 6 build log 281 | *.plg 282 | 283 | # Visual Studio 6 workspace options file 284 | *.opt 285 | 286 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 287 | *.vbw 288 | 289 | # Visual Studio LightSwitch build output 290 | **/*.HTMLClient/GeneratedArtifacts 291 | **/*.DesktopClient/GeneratedArtifacts 292 | **/*.DesktopClient/ModelManifest.xml 293 | **/*.Server/GeneratedArtifacts 294 | **/*.Server/ModelManifest.xml 295 | _Pvt_Extensions 296 | 297 | # Paket dependency manager 298 | .paket/paket.exe 299 | paket-files/ 300 | 301 | # FAKE - F# Make 302 | .fake/ 303 | 304 | # CodeRush personal settings 305 | .cr/personal 306 | 307 | # Python Tools for Visual Studio (PTVS) 308 | __pycache__/ 309 | *.pyc 310 | 311 | # Cake - Uncomment if you are using it 312 | # tools/** 313 | # !tools/packages.config 314 | 315 | # Tabs Studio 316 | *.tss 317 | 318 | # Telerik's JustMock configuration file 319 | *.jmconfig 320 | 321 | # BizTalk build output 322 | *.btp.cs 323 | *.btm.cs 324 | *.odx.cs 325 | *.xsd.cs 326 | 327 | # OpenCover UI analysis results 328 | OpenCover/ 329 | 330 | # Azure Stream Analytics local run output 331 | ASALocalRun/ 332 | 333 | # MSBuild Binary and Structured Log 334 | *.binlog 335 | 336 | # NVidia Nsight GPU debugger configuration file 337 | *.nvuser 338 | 339 | # MFractors (Xamarin productivity tool) working folder 340 | .mfractor/ 341 | 342 | # Local History for Visual Studio 343 | .localhistory/ 344 | 345 | # BeatPulse healthcheck temp database 346 | healthchecksdb 347 | 348 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 349 | MigrationBackup/ 350 | 351 | # Ionide (cross platform F# VS Code tools) working folder 352 | .ionide/ -------------------------------------------------------------------------------- /HMIS-Middleware.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2000 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMIS-Middleware", "Middleware\HMIS-Middleware.csproj", "{24A8CD60-45D8-4DB9-9E86-0C13D3CFCDEB}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {24A8CD60-45D8-4DB9-9E86-0C13D3CFCDEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {24A8CD60-45D8-4DB9-9E86-0C13D3CFCDEB}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {24A8CD60-45D8-4DB9-9E86-0C13D3CFCDEB}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {24A8CD60-45D8-4DB9-9E86-0C13D3CFCDEB}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {839159DC-3506-4690-ACB1-AD6EA821E4E1} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012 - 32 Dr M H B Ariyaratne 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Middleware/9208_sysmex1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Middleware/9208_sysmex1.ico -------------------------------------------------------------------------------- /Middleware/ASCII.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Middleware 8 | { 9 | /// 10 | /// Byte type with enumeration constants for ASCII control codes. 11 | /// 12 | public enum ASCII : byte 13 | { 14 | NULL = 0x00, SOH = 0x01, STH = 0x02, ETX = 0x03, EOT = 0x04, ENQ = 0x05, ACK = 0x06, BELL = 0x07, 15 | BS = 0x08, HT = 0x09, LF = 0x0A, VT = 0x0B, FF = 0x0C, CR = 0x0D, SO = 0x0E, SI = 0x0F, DC1 = 0x11, 16 | DC2 = 0x12, DC3 = 0x13, DC4 = 0x14, NAK = 0x15, SYN = 0x16, ETB = 0x17, CAN = 0x18, EM = 0x19, 17 | SUB = 0x1A, ESC = 0x1B, FS = 0x1C, GS = 0x1D, RS = 0x1E, US = 0x1F, SP = 0x20, DEL = 0x7F 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Middleware/Analyzer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Middleware 8 | { 9 | enum Analyzer 10 | { 11 | SysMex, 12 | Dimension, 13 | MiniVidaz, 14 | maglumi_800, 15 | BA_400, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Middleware/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Middleware/CommunicateProtocol.cs: -------------------------------------------------------------------------------- 1 | public enum CommunicateProtocol 2 | { 3 | TcpIp, 4 | Serial, 5 | } -------------------------------------------------------------------------------- /Middleware/CommunicationParameterParity.cs: -------------------------------------------------------------------------------- 1 | public enum CommunicationParameterParity 2 | { 3 | ODD, 4 | EVEN, 5 | NONE, 6 | } -------------------------------------------------------------------------------- /Middleware/FormMain.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Middleware 2 | { 3 | partial class FormMain 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.BtnClear = new System.Windows.Forms.Button(); 32 | this.txtOutput = new System.Windows.Forms.RichTextBox(); 33 | this.txtStatus = new System.Windows.Forms.RichTextBox(); 34 | this.txtPassword = new System.Windows.Forms.TextBox(); 35 | this.label4 = new System.Windows.Forms.Label(); 36 | this.txtUsername = new System.Windows.Forms.TextBox(); 37 | this.label3 = new System.Windows.Forms.Label(); 38 | this.txtUrl = new System.Windows.Forms.TextBox(); 39 | this.label9 = new System.Windows.Forms.Label(); 40 | this.label1 = new System.Windows.Forms.Label(); 41 | this.BtnClose = new System.Windows.Forms.Button(); 42 | this.BtnOpen = new System.Windows.Forms.Button(); 43 | this.cmbSysMexPort = new System.Windows.Forms.ComboBox(); 44 | this.label2 = new System.Windows.Forms.Label(); 45 | this.cmbDimPort = new System.Windows.Forms.ComboBox(); 46 | this.chkSysmex = new System.Windows.Forms.CheckBox(); 47 | this.chkDim = new System.Windows.Forms.CheckBox(); 48 | this.SuspendLayout(); 49 | // 50 | // BtnClear 51 | // 52 | this.BtnClear.Location = new System.Drawing.Point(779, 80); 53 | this.BtnClear.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 54 | this.BtnClear.Name = "BtnClear"; 55 | this.BtnClear.Size = new System.Drawing.Size(129, 28); 56 | this.BtnClear.TabIndex = 26; 57 | this.BtnClear.Text = "Clear"; 58 | this.BtnClear.UseVisualStyleBackColor = true; 59 | this.BtnClear.Click += new System.EventHandler(this.BtnClearStatus_Click); 60 | // 61 | // txtOutput 62 | // 63 | this.txtOutput.Location = new System.Drawing.Point(20, 174); 64 | this.txtOutput.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 65 | this.txtOutput.Name = "txtOutput"; 66 | this.txtOutput.Size = new System.Drawing.Size(708, 457); 67 | this.txtOutput.TabIndex = 36; 68 | this.txtOutput.Text = ""; 69 | // 70 | // txtStatus 71 | // 72 | this.txtStatus.Location = new System.Drawing.Point(737, 174); 73 | this.txtStatus.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 74 | this.txtStatus.Name = "txtStatus"; 75 | this.txtStatus.Size = new System.Drawing.Size(681, 472); 76 | this.txtStatus.TabIndex = 39; 77 | this.txtStatus.Text = ""; 78 | // 79 | // txtPassword 80 | // 81 | this.txtPassword.Location = new System.Drawing.Point(157, 75); 82 | this.txtPassword.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 83 | this.txtPassword.Name = "txtPassword"; 84 | this.txtPassword.Size = new System.Drawing.Size(593, 22); 85 | this.txtPassword.TabIndex = 46; 86 | // 87 | // label4 88 | // 89 | this.label4.AutoSize = true; 90 | this.label4.Location = new System.Drawing.Point(21, 81); 91 | this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 92 | this.label4.Name = "label4"; 93 | this.label4.Size = new System.Drawing.Size(69, 17); 94 | this.label4.TabIndex = 45; 95 | this.label4.Text = "Password"; 96 | // 97 | // txtUsername 98 | // 99 | this.txtUsername.Location = new System.Drawing.Point(157, 43); 100 | this.txtUsername.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 101 | this.txtUsername.Name = "txtUsername"; 102 | this.txtUsername.Size = new System.Drawing.Size(593, 22); 103 | this.txtUsername.TabIndex = 44; 104 | // 105 | // label3 106 | // 107 | this.label3.AutoSize = true; 108 | this.label3.Location = new System.Drawing.Point(21, 48); 109 | this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 110 | this.label3.Name = "label3"; 111 | this.label3.Size = new System.Drawing.Size(73, 17); 112 | this.label3.TabIndex = 43; 113 | this.label3.Text = "Username"; 114 | // 115 | // txtUrl 116 | // 117 | this.txtUrl.Location = new System.Drawing.Point(157, 11); 118 | this.txtUrl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 119 | this.txtUrl.Name = "txtUrl"; 120 | this.txtUrl.Size = new System.Drawing.Size(593, 22); 121 | this.txtUrl.TabIndex = 42; 122 | // 123 | // label9 124 | // 125 | this.label9.AutoSize = true; 126 | this.label9.Location = new System.Drawing.Point(21, 15); 127 | this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 128 | this.label9.Name = "label9"; 129 | this.label9.Size = new System.Drawing.Size(95, 17); 130 | this.label9.TabIndex = 41; 131 | this.label9.Text = "LIMS Address"; 132 | // 133 | // label1 134 | // 135 | this.label1.AutoSize = true; 136 | this.label1.Location = new System.Drawing.Point(21, 114); 137 | this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 138 | this.label1.Name = "label1"; 139 | this.label1.Size = new System.Drawing.Size(86, 17); 140 | this.label1.TabIndex = 50; 141 | this.label1.Text = "Sysmex Port"; 142 | // 143 | // BtnClose 144 | // 145 | this.BtnClose.Location = new System.Drawing.Point(779, 46); 146 | this.BtnClose.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 147 | this.BtnClose.Name = "BtnClose"; 148 | this.BtnClose.Size = new System.Drawing.Size(129, 28); 149 | this.BtnClose.TabIndex = 49; 150 | this.BtnClose.Text = "Close"; 151 | this.BtnClose.UseVisualStyleBackColor = true; 152 | this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click); 153 | // 154 | // BtnOpen 155 | // 156 | this.BtnOpen.Location = new System.Drawing.Point(779, 11); 157 | this.BtnOpen.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 158 | this.BtnOpen.Name = "BtnOpen"; 159 | this.BtnOpen.Size = new System.Drawing.Size(129, 28); 160 | this.BtnOpen.TabIndex = 48; 161 | this.BtnOpen.Text = "Open"; 162 | this.BtnOpen.UseVisualStyleBackColor = true; 163 | this.BtnOpen.Click += new System.EventHandler(this.BtnOpen_Click); 164 | // 165 | // cmbSysMexPort 166 | // 167 | this.cmbSysMexPort.FormattingEnabled = true; 168 | this.cmbSysMexPort.Location = new System.Drawing.Point(182, 107); 169 | this.cmbSysMexPort.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 170 | this.cmbSysMexPort.Name = "cmbSysMexPort"; 171 | this.cmbSysMexPort.Size = new System.Drawing.Size(568, 24); 172 | this.cmbSysMexPort.TabIndex = 47; 173 | // 174 | // label2 175 | // 176 | this.label2.AutoSize = true; 177 | this.label2.Location = new System.Drawing.Point(21, 148); 178 | this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 179 | this.label2.Name = "label2"; 180 | this.label2.Size = new System.Drawing.Size(112, 17); 181 | this.label2.TabIndex = 54; 182 | this.label2.Text = "Diamension Port"; 183 | // 184 | // cmbDimPort 185 | // 186 | this.cmbDimPort.FormattingEnabled = true; 187 | this.cmbDimPort.Location = new System.Drawing.Point(182, 140); 188 | this.cmbDimPort.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 189 | this.cmbDimPort.Name = "cmbDimPort"; 190 | this.cmbDimPort.Size = new System.Drawing.Size(568, 24); 191 | this.cmbDimPort.TabIndex = 51; 192 | // 193 | // chkSysmex 194 | // 195 | this.chkSysmex.AutoSize = true; 196 | this.chkSysmex.Checked = true; 197 | this.chkSysmex.CheckState = System.Windows.Forms.CheckState.Checked; 198 | this.chkSysmex.Location = new System.Drawing.Point(157, 107); 199 | this.chkSysmex.Name = "chkSysmex"; 200 | this.chkSysmex.Size = new System.Drawing.Size(18, 17); 201 | this.chkSysmex.TabIndex = 55; 202 | this.chkSysmex.UseVisualStyleBackColor = true; 203 | // 204 | // chkDim 205 | // 206 | this.chkDim.AutoSize = true; 207 | this.chkDim.Location = new System.Drawing.Point(157, 147); 208 | this.chkDim.Name = "chkDim"; 209 | this.chkDim.Size = new System.Drawing.Size(18, 17); 210 | this.chkDim.TabIndex = 56; 211 | this.chkDim.UseVisualStyleBackColor = true; 212 | // 213 | // FormMain 214 | // 215 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); 216 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 217 | this.ClientSize = new System.Drawing.Size(1420, 646); 218 | this.Controls.Add(this.chkDim); 219 | this.Controls.Add(this.chkSysmex); 220 | this.Controls.Add(this.label2); 221 | this.Controls.Add(this.cmbDimPort); 222 | this.Controls.Add(this.label1); 223 | this.Controls.Add(this.BtnClose); 224 | this.Controls.Add(this.BtnOpen); 225 | this.Controls.Add(this.cmbSysMexPort); 226 | this.Controls.Add(this.txtPassword); 227 | this.Controls.Add(this.label4); 228 | this.Controls.Add(this.txtUsername); 229 | this.Controls.Add(this.label3); 230 | this.Controls.Add(this.txtUrl); 231 | this.Controls.Add(this.label9); 232 | this.Controls.Add(this.txtStatus); 233 | this.Controls.Add(this.txtOutput); 234 | this.Controls.Add(this.BtnClear); 235 | this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 236 | this.Name = "FormMain"; 237 | this.Text = "SSS Middleware"; 238 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormDimensionSettings_FormClosing); 239 | this.Load += new System.EventHandler(this.FormDimensionSettings_Load); 240 | this.ResumeLayout(false); 241 | this.PerformLayout(); 242 | 243 | } 244 | 245 | #endregion 246 | private System.Windows.Forms.Button BtnClear; 247 | private System.Windows.Forms.RichTextBox txtOutput; 248 | private System.Windows.Forms.RichTextBox txtStatus; 249 | private System.Windows.Forms.TextBox txtPassword; 250 | private System.Windows.Forms.Label label4; 251 | private System.Windows.Forms.TextBox txtUsername; 252 | private System.Windows.Forms.Label label3; 253 | private System.Windows.Forms.TextBox txtUrl; 254 | private System.Windows.Forms.Label label9; 255 | private System.Windows.Forms.Label label1; 256 | private System.Windows.Forms.Button BtnClose; 257 | private System.Windows.Forms.Button BtnOpen; 258 | private System.Windows.Forms.ComboBox cmbSysMexPort; 259 | private System.Windows.Forms.Label label2; 260 | private System.Windows.Forms.ComboBox cmbDimPort; 261 | private System.Windows.Forms.CheckBox chkSysmex; 262 | private System.Windows.Forms.CheckBox chkDim; 263 | } 264 | } -------------------------------------------------------------------------------- /Middleware/FormMain.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Drawing; 5 | using System.IO.Ports; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using System.Net.Http; 11 | using System.Web; 12 | using System.Timers; 13 | 14 | namespace Middleware 15 | { 16 | public partial class FormMain : Form 17 | { 18 | 19 | #region classVariables 20 | 21 | SerialPort comDim = new SerialPort(); 22 | SerialPort comSm = new SerialPort(); 23 | private readonly HttpClient client = new HttpClient(); 24 | List msgDim = new List(); 25 | List msgSm = new List(); 26 | 27 | string url = ""; 28 | string status = ""; 29 | string output = ""; 30 | Color color; 31 | 32 | List msgBytesDim = new List(); 33 | List msgBytesSm = new List(); 34 | 35 | #endregion 36 | 37 | #region getData 38 | 39 | private String Cr() 40 | { 41 | return Character(ByteCr()); 42 | } 43 | 44 | 45 | private String Etb() 46 | { 47 | return Character(ByteEtb()); 48 | } 49 | 50 | private String Lf() 51 | { 52 | return Character(ByteLf()); 53 | } 54 | 55 | private String Ack() 56 | { 57 | return Character(ByteAck()); 58 | } 59 | 60 | private String Nak() 61 | { 62 | return Character(ByteNak()); 63 | } 64 | 65 | private String Stx() 66 | { 67 | return Character(ByteStx()); 68 | } 69 | 70 | private String Etx() 71 | { 72 | return Character(ByteEtx()); 73 | } 74 | 75 | private String Enq() 76 | { 77 | return Character(ByteEnq()); 78 | } 79 | 80 | public byte ByteEnq() 81 | { 82 | return 5; 83 | } 84 | 85 | public byte ByteStx() 86 | { 87 | return 2; 88 | } 89 | 90 | public byte ByteAck() 91 | { 92 | return 6; 93 | } 94 | 95 | public byte ByteEtx() 96 | { 97 | return 3; 98 | } 99 | 100 | public byte ByteEot() 101 | { 102 | return 4; 103 | } 104 | 105 | public byte ByteNak() 106 | { 107 | return 21; 108 | } 109 | 110 | 111 | public byte ByteFs() 112 | { 113 | return 28; 114 | } 115 | 116 | public byte ByteLf() 117 | { 118 | return 10; 119 | } 120 | 121 | public byte ByteCr() 122 | { 123 | return 13; 124 | } 125 | 126 | public byte ByteEtb() 127 | { 128 | return 23; 129 | } 130 | 131 | public byte ByteGs() 132 | { 133 | return 29; 134 | } 135 | 136 | public byte ByteRs() 137 | { 138 | return 30; 139 | } 140 | 141 | public byte ByteUs() 142 | { 143 | return 31; 144 | } 145 | 146 | #endregion 147 | 148 | #region mainFunctions 149 | 150 | private async Task SendDataToLimsAsync(List bytes, Analyzer machine) 151 | { 152 | String sendingStr = ""; 153 | foreach (byte b in bytes) 154 | { 155 | sendingStr += b + " "; 156 | } 157 | 158 | String initialPoll = "2 80 28 68 73 77 49 28 49 28 49 28 48 28 55 57 3 "; 159 | String conversationalPoll = "2 80 28 68 73 77 49 28 48 28 49 28 48 28 55 56 3 "; 160 | String noRequestPoll = "2+78+28+54+65+3+"; 161 | 162 | //MessageBox.Show("|" + sendingStr + "|"); 163 | 164 | if (sendingStr.Equals(initialPoll) || sendingStr.Equals(conversationalPoll)) 165 | { 166 | 167 | List lstBytes = GetBytesFromMessage(noRequestPoll,true); 168 | Console.Write("lstBytes = " + lstBytes); 169 | if (lstBytes != null && lstBytes.Count > 0) 170 | { 171 | byte[] temBytesToWrite = lstBytes.ToArray(); 172 | comDim.Write(temBytesToWrite, 0, temBytesToWrite.Length); 173 | } 174 | String temStatus = ""; 175 | if (sendingStr == initialPoll) 176 | { 177 | temStatus += DateTime.Now.ToString("dd MMM yyyy hh:mm:ss tt") + " Received Initial Poll Message. No Request Message Sent." + Environment.NewLine; 178 | } 179 | else if (sendingStr == conversationalPoll) 180 | { 181 | temStatus += DateTime.Now.ToString("dd MMM yyyy hh:mm:ss tt") + " Received Conversational Poll Message. No Request Message Sent." + Environment.NewLine; 182 | } 183 | //MessageBox.Show(temStatus); 184 | status += temStatus; 185 | this.Invoke(new EventHandler(DisplayOutput)); 186 | } 187 | else 188 | { 189 | #region sendingDataToLims 190 | 191 | string longurl = url + "faces/requests/mwapi.xhtml"; 192 | var uriBuilder = new UriBuilder(longurl); 193 | 194 | var query = HttpUtility.ParseQueryString(uriBuilder.Query); 195 | query["machine"] = machine.ToString(); 196 | query["username"] = txtUsername.Text; 197 | query["password"] = txtPassword.Text; 198 | query["msg"] = sendingStr; 199 | 200 | uriBuilder.Query = query.ToString(); 201 | longurl = uriBuilder.ToString(); 202 | 203 | status += DateTime.Now.ToString("dd MMM yyyy hh:mm:ss tt") + " Sending Data to LIMS" + Environment.NewLine + longurl + Environment.NewLine; 204 | 205 | var response = await client.GetAsync(longurl); 206 | var responseString = await response.Content.ReadAsStringAsync(); 207 | responseString = ExtractMessageFromHtml(responseString); 208 | 209 | if (responseString == "Error in LIMS Response. Please check.") 210 | { 211 | status += responseString + Environment.NewLine; 212 | this.Invoke(new EventHandler(DisplayText)); 213 | 214 | output = Environment.NewLine + DateTime.Now.ToString("dd MMM yyyy hh:mm:ss tt") + Environment.NewLine + " " + machine + " Error. Please send results again." + Environment.NewLine; 215 | color = Color.Red; 216 | this.Invoke(new EventHandler(DisplayOutput)); 217 | if (machine == Analyzer.Dimension) 218 | { 219 | comDim.Write(Nak()); 220 | } 221 | else if (machine == Analyzer.SysMex) 222 | { 223 | comSm.Write(Nak()); 224 | } 225 | 226 | } 227 | else if (responseString.Contains("success=false")) 228 | { 229 | status += responseString + Environment.NewLine; 230 | this.Invoke(new EventHandler(DisplayText)); 231 | 232 | output = Environment.NewLine + DateTime.Now.ToString("dd MMM yyyy hh:mm:ss tt") + Environment.NewLine + " " + machine + " Error. Please send results again." + Environment.NewLine; 233 | color = Color.Red; 234 | this.Invoke(new EventHandler(DisplayOutput)); 235 | if (machine == Analyzer.Dimension) 236 | { 237 | comDim.Write(Nak()); 238 | } 239 | else if (machine == Analyzer.SysMex) 240 | { 241 | comSm.Write(Nak()); 242 | } 243 | 244 | } 245 | else if (responseString.Contains("success=true")) 246 | { 247 | Console.WriteLine("Success = true"); 248 | status += responseString + Environment.NewLine; 249 | this.Invoke(new EventHandler(DisplayText)); 250 | 251 | output = Environment.NewLine + DateTime.Now.ToString("dd MMM yyyy hh: mm:ss tt") + Environment.NewLine + " " + machine + " Results added. " + Environment.NewLine; 252 | color = Color.Green; 253 | this.Invoke(new EventHandler(DisplayOutput)); 254 | Console.WriteLine("machine = " + machine); 255 | if (machine == Analyzer.Dimension) 256 | { 257 | List lstBytes = GetBytesFromMessage(responseString); 258 | Console.Write("lstBytes = " + lstBytes); 259 | if (lstBytes != null && lstBytes.Count > 0) 260 | { 261 | byte[] temBytesToWrite = lstBytes.ToArray(); 262 | comDim.Write(temBytesToWrite, 0, temBytesToWrite.Length); 263 | } 264 | } 265 | else if (machine == Analyzer.SysMex) 266 | { 267 | comSm.Write(Ack()); 268 | } 269 | } 270 | else 271 | { 272 | status += responseString + Environment.NewLine; 273 | this.Invoke(new EventHandler(DisplayText)); 274 | output = Environment.NewLine + DateTime.Now.ToString("dd MMM yyyy hh: mm:ss tt") + Environment.NewLine + " Can't send data from " + machine + " to LIMS. Please check LIMS." + Environment.NewLine; 275 | color = Color.Red; 276 | this.Invoke(new EventHandler(DisplayOutput)); 277 | if (machine == Analyzer.Dimension) 278 | { 279 | comDim.Write(Nak()); 280 | } 281 | else if (machine == Analyzer.SysMex) 282 | { 283 | comSm.Write(Nak()); 284 | } 285 | } 286 | 287 | #endregion 288 | 289 | } 290 | 291 | } 292 | 293 | public List GetBytesFromMessage(String msg) 294 | { 295 | String[] temSs = msg.Split(Convert.ToChar(124)); 296 | String temMsg = ""; 297 | foreach (String temS in temSs) 298 | { 299 | Console.WriteLine("temS=" + temS); 300 | if (temS.Contains("toAnalyzer=")) 301 | { 302 | if (temS.Length > 11) 303 | { 304 | temMsg = temS.Substring(11, temS.Length - 11); 305 | Console.WriteLine(temMsg); 306 | } 307 | 308 | } 309 | } 310 | if (temMsg == "") 311 | { 312 | return null; 313 | } 314 | List bytesList = new List(); 315 | String[] temBytesAsString = temMsg.Split(Convert.ToChar(43)); 316 | foreach (String temS in temBytesAsString) 317 | { 318 | byte temByte; 319 | Console.WriteLine("temS=" + temS); 320 | try 321 | { 322 | temByte = Byte.Parse(temS); 323 | } 324 | catch (Exception e) 325 | { 326 | temByte = 0; 327 | } 328 | bytesList.Add(temByte); 329 | } 330 | return bytesList; 331 | } 332 | 333 | public List GetBytesFromMessage(String msg, Boolean bytesOnly) 334 | { 335 | List bytesList = new List(); 336 | String[] temBytesAsString = msg.Split(Convert.ToChar(43)); 337 | foreach (String temS in temBytesAsString) 338 | { 339 | byte temByte; 340 | Console.WriteLine("temS=" + temS); 341 | try 342 | { 343 | temByte = Byte.Parse(temS); 344 | bytesList.Add(temByte); 345 | } 346 | catch (Exception e) 347 | { 348 | temByte = 0; 349 | } 350 | 351 | } 352 | return bytesList; 353 | } 354 | 355 | private void Com_DataReceived_Dim(object sender, SerialDataReceivedEventArgs e) 356 | { 357 | int bytes = comDim.BytesToRead; 358 | byte[] buffer = new byte[bytes]; 359 | comDim.Read(buffer, 0, bytes); 360 | msgDim.AddRange(buffer); 361 | 362 | foreach (Byte b in buffer) 363 | { 364 | //status += (char)b; 365 | if (b == ByteEnq()) 366 | { 367 | comDim.Write(Ack()); 368 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received from Dimension. sent." + Environment.NewLine; 369 | msgDim = new List(); 370 | this.Invoke(new EventHandler(DisplayText)); 371 | } 372 | else if (b == ByteAck()) 373 | { 374 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received from Dimension. " + Environment.NewLine; 375 | msgDim = new List(); 376 | this.Invoke(new EventHandler(DisplayText)); 377 | } 378 | else if (b == ByteNak()) 379 | { 380 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received from Dimension. " + Environment.NewLine; 381 | msgDim = new List(); 382 | this.Invoke(new EventHandler(DisplayText)); 383 | } 384 | else if (b == ByteEot() || b == ByteEtx()) 385 | { 386 | comDim.Write(Ack()); 387 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received a message from Dimension. sent." + Environment.NewLine; 388 | status += BytesToString(msgDim) + Environment.NewLine; 389 | this.Invoke(new EventHandler(DisplayText)); 390 | SendDataToLimsAsync(msgDim, Analyzer.Dimension).Wait(); 391 | msgDim = new List(); 392 | 393 | } 394 | } 395 | 396 | } 397 | 398 | private void Com_DataReceived_Sm(object sender, SerialDataReceivedEventArgs e) 399 | { 400 | int bytes = comSm.BytesToRead; 401 | byte[] buffer = new byte[bytes]; 402 | comSm.Read(buffer, 0, bytes); 403 | msgSm.AddRange(buffer); 404 | 405 | foreach (Byte b in buffer) 406 | { 407 | //status += (char)b; 408 | if (b == ByteEnq()) 409 | { 410 | comSm.Write(Ack()); 411 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received from SysMex. sent." + Environment.NewLine; 412 | msgSm = new List(); 413 | this.Invoke(new EventHandler(DisplayText)); 414 | } 415 | else if (b == ByteAck()) 416 | { 417 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received from SysMex. " + Environment.NewLine; 418 | msgSm = new List(); 419 | this.Invoke(new EventHandler(DisplayText)); 420 | } 421 | else if (b == ByteEot() || b == ByteEtx()) 422 | { 423 | comSm.Write(Ack()); 424 | status += DateTime.Now.ToString("dd/MMM/yy H:mm") + " Received a message from SysMex. sent." + Environment.NewLine; 425 | status += BytesToString(msgSm) + Environment.NewLine; 426 | this.Invoke(new EventHandler(DisplayText)); 427 | SendDataToLimsAsync(msgSm, Analyzer.SysMex).Wait(); 428 | msgSm = new List(); 429 | 430 | } 431 | } 432 | 433 | } 434 | 435 | #endregion 436 | 437 | #region supportiveFunctions 438 | 439 | private void DisplayText(object sender, EventArgs e) 440 | { 441 | txtStatus.Text = status; 442 | } 443 | 444 | private void DisplayOutput(object sender, EventArgs e) 445 | { 446 | int from = txtOutput.Text.Length; 447 | txtOutput.AppendText(output); 448 | int to = txtOutput.Text.Length; 449 | txtOutput.Select(from, (to - from)); 450 | txtOutput.SelectionColor = color; 451 | } 452 | 453 | 454 | private String Character(int charNo) 455 | { 456 | char ack = (char)charNo; 457 | String m = ack.ToString(); 458 | return m; 459 | } 460 | 461 | private byte[] StringsToBytes(String value) 462 | { 463 | byte[] bytes = Encoding.ASCII.GetBytes(value); 464 | return bytes; 465 | } 466 | 467 | private String ExtractMessageFromHtml(String html) 468 | { 469 | String s = html; 470 | int pFrom = s.IndexOf("#{") + "#{".Length; 471 | int pTo = s.LastIndexOf("}"); 472 | String result = s.Substring(pFrom, pTo - pFrom); 473 | if (result.Length > 1500) 474 | { 475 | result = "Error in LIMS Response. Please check."; 476 | } 477 | return result; 478 | } 479 | 480 | private String BytesToString(List bytesToConvert) 481 | { 482 | Byte[] temBytes = bytesToConvert.ToArray(); 483 | String temStr = ""; 484 | temStr = Encoding.ASCII.GetString(temBytes, 0, temBytes.Length); 485 | return temStr; 486 | } 487 | 488 | #endregion 489 | 490 | #region FormEvents 491 | 492 | public FormMain() 493 | { 494 | InitializeComponent(); 495 | } 496 | 497 | private void FormDimensionSettings_Load(object sender, EventArgs e) 498 | { 499 | String[] ports = SerialPort.GetPortNames(); 500 | cmbDimPort.Items.AddRange(ports); 501 | cmbDimPort.SelectedIndex = 0; 502 | 503 | 504 | cmbSysMexPort.Items.AddRange(ports); 505 | cmbSysMexPort.SelectedIndex = 0; 506 | BtnClose.Enabled = false; 507 | 508 | try 509 | { 510 | 511 | 512 | Registry.CurrentUser.CreateSubKey("SOFTWARE\\SSS\\Middleware\\Middleware"); 513 | Registry.CurrentUser.CreateSubKey("SOFTWARE\\SSS\\Middleware\\Dimension"); 514 | Registry.CurrentUser.CreateSubKey("SOFTWARE\\SSS\\Middleware\\Sysmex"); 515 | 516 | RegistryKey KeyMiddleware = Registry.CurrentUser.OpenSubKey 517 | ("SOFTWARE\\SSS\\Middleware\\Middleware", true); 518 | RegistryKey KeyDimension = Registry.CurrentUser.OpenSubKey 519 | ("SOFTWARE\\SSS\\Middleware\\Dimension", true); 520 | RegistryKey KeySysmex = Registry.CurrentUser.OpenSubKey 521 | ("SOFTWARE\\SSS\\Middleware\\Sysmex", true); 522 | 523 | 524 | if (KeyMiddleware != null) 525 | { 526 | txtUrl.Text = (String)KeyMiddleware.GetValue("url", ""); 527 | } 528 | if (KeyDimension != null) 529 | { 530 | cmbDimPort.Text = (String)KeyDimension.GetValue("port", ""); 531 | } 532 | if (KeySysmex != null) 533 | { 534 | cmbSysMexPort.Text = (String)KeySysmex.GetValue("port", ""); 535 | } 536 | } 537 | catch (Exception er) 538 | { 539 | MessageBox.Show("Error " + er.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 540 | } 541 | } 542 | 543 | private void FormDimensionSettings_FormClosing(object sender, FormClosingEventArgs e) 544 | { 545 | RegistryKey KeyMiddleware = Registry.CurrentUser.OpenSubKey 546 | ("SOFTWARE\\SSS\\Middleware\\Middleware", true); 547 | RegistryKey KeyDimension = Registry.CurrentUser.OpenSubKey 548 | ("SOFTWARE\\SSS\\Middleware\\Dimension", true); 549 | RegistryKey KeySysmex = Registry.CurrentUser.OpenSubKey 550 | ("SOFTWARE\\SSS\\Middleware\\Sysmex", true); 551 | 552 | KeyMiddleware.SetValue("url", txtUrl.Text); 553 | KeyDimension.SetValue("port", cmbDimPort.Text); 554 | KeySysmex.SetValue("port", cmbSysMexPort.Text); 555 | } 556 | 557 | private void BtnClearStatus_Click(object sender, EventArgs e) 558 | { 559 | txtOutput.Text = ""; 560 | txtStatus.Text = ""; 561 | msgDim = new List(); 562 | msgSm = new List(); 563 | status = ""; 564 | } 565 | 566 | private void BtnOpen_Click(object sender, EventArgs e) 567 | { 568 | BtnOpen.Enabled = true; 569 | BtnClose.Enabled = false; 570 | 571 | url = txtUrl.Text; 572 | 573 | if (chkSysmex.Checked) 574 | { 575 | 576 | try 577 | { 578 | comSm.PortName = cmbSysMexPort.Text; 579 | comSm.BaudRate = 9600; 580 | comSm.DataBits = 8; 581 | comSm.ReadBufferSize = 10000000; 582 | comSm.StopBits = StopBits.One; 583 | comSm.Parity = Parity.None; 584 | comSm.DtrEnable = true; 585 | comSm.RtsEnable = true; 586 | comSm.Open(); 587 | status += "SysMex Port Opened"; 588 | txtStatus.Text = status; 589 | MessageBox.Show("Connected", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); 590 | } 591 | catch (Exception ex) 592 | { 593 | status += "Error in connecting"; 594 | MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 595 | return; 596 | } 597 | comSm.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived_Sm); 598 | comSm.Write(Enq()); 599 | status += "Enq Sent"; 600 | txtStatus.Text = status; 601 | } 602 | 603 | if (chkDim.Checked) 604 | { 605 | 606 | try 607 | { 608 | comDim.PortName = cmbDimPort.Text; 609 | comDim.BaudRate = 9600; 610 | comDim.DataBits = 8; 611 | comDim.ReadBufferSize = 10000000; 612 | comDim.StopBits = StopBits.One; 613 | comDim.Parity = Parity.None; 614 | comDim.DtrEnable = true; 615 | comDim.RtsEnable = true; 616 | comDim.Open(); 617 | } 618 | catch (Exception ex) 619 | { 620 | comSm.Close(); 621 | MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 622 | return; 623 | } 624 | comDim.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived_Dim); 625 | comDim.Write(Enq()); 626 | 627 | } 628 | 629 | 630 | BtnOpen.Enabled = false; 631 | BtnClose.Enabled = true; 632 | 633 | } 634 | 635 | private void BtnClose_Click(object sender, EventArgs e) 636 | { 637 | BtnOpen.Enabled = true; 638 | BtnClose.Enabled = false; 639 | try 640 | { 641 | comSm.Close(); 642 | } 643 | catch (Exception ex) 644 | { 645 | MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 646 | } 647 | try 648 | { 649 | comDim.Close(); 650 | } 651 | catch (Exception ex) 652 | { 653 | MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 654 | } 655 | 656 | } 657 | 658 | #endregion 659 | } 660 | } 661 | -------------------------------------------------------------------------------- /Middleware/FormMain.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /Middleware/HMIS-Middleware.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {24A8CD60-45D8-4DB9-9E86-0C13D3CFCDEB} 8 | WinExe 9 | Middleware 10 | Middleware 11 | v4.5 12 | 512 13 | true 14 | 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | Form 55 | 56 | 57 | FormMain.cs 58 | 59 | 60 | 61 | 62 | 63 | 64 | FormMain.cs 65 | 66 | 67 | ResXFileCodeGenerator 68 | Resources.Designer.cs 69 | Designer 70 | 71 | 72 | True 73 | Resources.resx 74 | True 75 | 76 | 77 | SettingsSingleFileGenerator 78 | Settings.Designer.cs 79 | 80 | 81 | True 82 | Settings.settings 83 | True 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /Middleware/ModeOfCommunication.cs: -------------------------------------------------------------------------------- 1 | public enum ModesOfCommunication 2 | { 3 | Off, 4 | SendOnly, 5 | SendReceive, 6 | SendIDReceive, 7 | } -------------------------------------------------------------------------------- /Middleware/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace Middleware 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new FormMain()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Middleware/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Middleware")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Middleware")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("24a8cd60-45d8-4db9-9e86-0c13d3cfcdeb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Middleware/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Middleware.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Middleware.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Middleware/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /Middleware/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Middleware.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Middleware/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Output-SourceControl-Git.txt: -------------------------------------------------------------------------------- 1 | Opening repositories: 2 | C:\Users\PCPAL\Documents\Development\mw 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Middleware for the Open-Source Hospital Management System Initiated by Dr M H B Ariyaratne 2 | 3 | > **Note:** This middleware is no longer supported and has been replaced by a new Java-based middleware available at [https://github.com/hmislk/limsmw](https://github.com/hmislk/limsmw). 4 | 5 | 6 | ## Title - The Middleware for the Open Source Hospital Management Information System 7 | 8 | ## Description - This is the middleware for analyzers to connect to HMIS API throuhgh RESTFul service. 9 | 10 | ##History 11 | Dr M H B Ariyaratne is a medical doctor who developed an Electronic Medical Record (EMR) System for his general practice in 2004 using Microsoft Visual Basic 6 and MS-Access. Doctors who have seen this EMR requested him to give the system for them to use. AS more doctors used the EMR, their requirements were discussed and incorporated into the system systematically. Some of the doctors who were using the EMR were having clinical laboratories, medical channelling centres and hospitals. Then the system was added new modules to cover new requirements. In 2012, a new JavaEE based system was initiated as an Open Source Initiative hosted in GitHub under the MIT license. The students of Sri Lanka Institute of Advanced Technical Education at Labuduwa, Galle, were allocated during their training for The Higher National Diploma in Information Technology (HNDIT) programme facilitated by Mr Mr.K.M.G.T.R. Waidyarathne, a lecturer from the Department Of Information Technology. Some of the students continued to support the project after their graduation under financial support by Dr M H B Ariyaratne. Commercial support was made available for installations, user training, maintenance, cloud hosting and troubleshooting. 12 | 13 | ## Installation 14 | The installation is very easy. Clone the project using git and open with Visual Studio. 15 | 16 | ## Usage 17 | The list of analyzers supported are listed under the wiki of hmis project. 18 | 19 | ## Contributing 20 | 21 | * Dr M H B Ariyaratne - Initiated the Project, Main System Architect 22 | 23 | ## Main Contributors for the Design 24 | * Dr M H B Ariyaratne 25 | * Dr Chrishantha Widisinghe 26 | 27 | 28 | ## Main Software Developers 29 | Dr M H B Ariyaratne 30 | Mr Gayan Malshan 31 | Mr Isuru Pathum 32 | 33 | 34 | Quantity Control Feedback 35 | Dr A N E M Gunasekara 36 | Ms Nadeeka Darshani Wijesooriya 37 | 38 | 39 | Credits: Our contributors and Open Source Community for their knowledge and time. Healthcare Institutions provided financial supporters are listed below. 40 | Galle Cooperative Hospital, Galle, Sri Lanka - 2008 - 2018 41 | Ruhunu Hospital, Karapitiya - 2008 - 2019 42 | Ruhunu MediHospital, Hambanthota - 2012 Up to date 43 | Arogya Hospital, Tangalle - 2014 Up to date 44 | Arogya Channelling Centre, Tangalle - 2010 Up to date 45 | Arogya Pharmacy, Tangalle - 2015 Up to date 46 | St. George Hospital, Biyagama - 2016 Up to date 47 | Digasiri Hospital, Puttalama 2015 Up to date 48 | Suwasarana Hospital, Ragama - 2016 Up to date 49 | Suwani Hospital, Galle - 2015 Up to date 50 | Sahana Medicare, Thissamaharamaya - 2012 Up to date 51 | Matara Nursing Home, Matara - 2008 - 2010 52 | BestLife Medical Centre, Kamburupitiya - 2008 - 2016 53 | New Pharmacy, Matara - 2014 Up to date 54 | Sri Katha Hospital, Dangedara - 2014 up to date 55 | Suwasahana Medical Center, Kataragama - 2015 Up to date 56 | Suwana Medical Center, Akuressa - 2015 Up to date 57 | New Multi Drugs, Galle - 2015 up to date 58 | Matara Pharamcy, Akuressa, 2013 up to date 59 | Matara Pharmacy, Deniyaya, 2013 up to date 60 | Matara Pharmacy, Urubokka, 2013 - 2015 61 | Matara Pharmacy, Galle, 2015 up to date 62 | Supipi Medical Centre, Kamburupitiya 2011 up to date 63 | Ahangama Medical Centre, Ahangama - 2008 up to date 64 | Weligama Medical Center, Weligama - 2009 up to date 65 | Osethra Medical Centre, Beliatta - 2010 up to date 66 | Isuru Medihouse, Hambanthota - 2014 up to date 67 | Ruhunu Medihouse, Ambanlanthota - 2014 up to date 68 | Horizon Medical Centre, Deberawewa - 2013 up to date 69 | Pubudhu Medical Centre, Hakmana - 2008 - 2014 70 | City Lab, Matara - 2013 71 | Roseth Hospital, Ambalangoda - 2014 tp to date 72 | Richmond Laboratory Services, Galle - 2010 up to date 73 | Clinical Laboratory , Boossa - 2010 up to date 74 | Baddegama Medical Services, Baddegama - 2014 up to date 75 | Sahana Medicare, Thissamaharamaya - 2014 up to date 76 | Medray Medical Laboratory, Matara - 2014 up to date 77 | Agunukolapelssa Medical Centre, Agunukolapelessa - 2014 up to date 78 | Holton Hospital, Walasmulla - 2015 up to date 79 | Unawatuna Medical Centre, Unawatuna, Galle 2015 up to date 80 | Kegalu Medi Lab, 2014 up to date 81 | Raliable Medi Lab, Monaragala - 2016 82 | 83 | License: MIT License details are attached as the LICENSE.md 84 | -------------------------------------------------------------------------------- /Resources/CoolTerm Libs/Appearance Pak.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/CoolTerm Libs/Appearance Pak.dll -------------------------------------------------------------------------------- /Resources/CoolTerm Libs/DocIcon0.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/CoolTerm Libs/DocIcon0.ico -------------------------------------------------------------------------------- /Resources/CoolTerm Libs/Internet Encodings.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/CoolTerm Libs/Internet Encodings.dll -------------------------------------------------------------------------------- /Resources/CoolTerm Libs/MD5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/CoolTerm Libs/MD5.dll -------------------------------------------------------------------------------- /Resources/CoolTerm Libs/XML.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/CoolTerm Libs/XML.dll -------------------------------------------------------------------------------- /Resources/CoolTerm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/CoolTerm.exe -------------------------------------------------------------------------------- /Resources/Images/Product_180_XS-800i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmislk/hmis-analyzer-middleware/6cc16b9843b9578afb66a219ffc7bef5532f6e33/Resources/Images/Product_180_XS-800i.jpg -------------------------------------------------------------------------------- /Testing Resources/Ana Dim 2.txt: -------------------------------------------------------------------------------- 1 | 20/Jul/18 21:44 Received a message from Dimension. sent. 2 | R*IRESH10303220170718114NA139mmol/LK4.2mmol/LCL101mmol/LCRE20.85mg/dL8A 3 | 20 Jul 2018 09:44:40 PM Sending Data to LIMS 4 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=2+82+28+42+28+73+82+69+83+72+28+28+49+28+28+48+28+51+48+51+50+50+48+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+50+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+48+46+56+53+28+109+103+47+100+76+28+28+56+65+3+ 5 | success=true|toAnalyzer=2+48+3+ 6 | Bytes written to Port = System.Byte[] 7 | 20/Jul/18 21:44 Received a message from Dimension. sent. 8 | R*CHATHURI10241021170718111GLUC107mg/dL44 9 | 20 Jul 2018 09:44:44 PM Sending Data to LIMS 10 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=2+82+28+42+28+67+72+65+84+72+85+82+73+28+28+49+28+28+48+28+50+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+49+28+71+76+85+67+28+49+48+55+28+109+103+47+100+76+28+28+52+52+3+ 11 | success=true|toAnalyzer=2+48+3+ 12 | Bytes written to Port = System.Byte[] 13 | 20/Jul/18 21:46 Received a message from Dimension. sent. 14 | DIM1 -1 1 1 Dimension0 NA A 139  26 15 | DIM1 -1 2 1 Dimension0 K A 4.1  F5 16 | DIM1 -1 2 1 Dimension0 K A 4.1  F5 17 | DIM1 -1 2 1 Dimension0 K A 4.1  F5 18 | DIM1 -1 2 1 Dimension0 K A 4.1  F5 19 | PDIM111079 20 | 20 Jul 2018 09:46:04 PM Sending Data to LIMS 21 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=68+73+77+49+28+32+45+49+28+32+49+28+32+32+32+32+32+49+28+32+68+105+109+101+110+115+105+111+110+28+48+28+32+78+65+28+32+32+32+65+28+32+49+51+57+28+32+32+32+32+28+32+32+32+32+32+32+32+50+54+13+10+68+73+77+49+28+32+45+49+28+32+50+28+32+32+32+32+32+49+28+32+68+105+109+101+110+115+105+111+110+28+48+28+32+75+28+28+32+32+32+65+28+32+52+46+49+28+32+32+32+32+28+32+32+32+32+32+32+32+70+53+13+10+68+73+77+49+28+32+45+49+28+32+50+28+32+32+32+32+32+49+28+32+68+105+109+101+110+115+105+111+110+28+48+28+32+75+28+28+32+32+32+65+28+32+52+46+49+28+32+32+32+32+28+32+32+32+32+32+32+32+70+53+13+10+68+73+77+49+28+32+45+49+28+32+50+28+32+32+32+32+32+49+28+32+68+105+109+101+110+115+105+111+110+28+48+28+32+75+28+28+32+32+32+65+28+32+52+46+49+28+32+32+32+32+28+32+32+32+32+32+32+32+70+53+13+10+68+73+77+49+28+32+45+49+28+32+50+28+32+32+32+32+32+49+28+32+68+105+109+101+110+115+105+111+110+28+48+28+32+75+28+28+32+32+32+65+28+32+52+46+49+28+32+32+32+32+28+32+32+32+32+32+32+32+70+53+13+10+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 22 | success=true|toAnalyzer=2+48+3+ 23 | Bytes written to Port = System.Byte[] 24 | 20/Jul/18 21:46 Received a message from Dimension. sent. 25 | PDIM111079 26 | 20 Jul 2018 09:46:34 PM Sending Data to LIMS 27 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 28 | success=true|toAnalyzer=2+48+3+ 29 | Bytes written to Port = System.Byte[] 30 | 20/Jul/18 21:46 Received a message from Dimension. sent. 31 | PDIM111079 32 | 20 Jul 2018 09:46:49 PM Sending Data to LIMS 33 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 34 | success=true|toAnalyzer=2+48+3+ 35 | Bytes written to Port = System.Byte[] 36 | 20/Jul/18 21:47 Received a message from Dimension. sent. 37 | PDIM111079 38 | 20 Jul 2018 09:47:05 PM Sending Data to LIMS 39 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 40 | success=true|toAnalyzer=2+48+3+ 41 | Bytes written to Port = System.Byte[] 42 | 20/Jul/18 21:47 Received a message from Dimension. sent. 43 | PDIM111079 44 | 20 Jul 2018 09:47:20 PM Sending Data to LIMS 45 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 46 | success=true|toAnalyzer=2+48+3+ 47 | Bytes written to Port = System.Byte[] 48 | 20/Jul/18 21:47 Received a message from Dimension. sent. 49 | PDIM111079 50 | 20 Jul 2018 09:47:35 PM Sending Data to LIMS 51 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 52 | success=true|toAnalyzer=2+48+3+ 53 | Bytes written to Port = System.Byte[] 54 | 20/Jul/18 21:47 Received a message from Dimension. sent. 55 | PDIM111079 56 | 20 Jul 2018 09:47:50 PM Sending Data to LIMS 57 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 58 | success=true|toAnalyzer=2+48+3+ 59 | Bytes written to Port = System.Byte[] 60 | 20/Jul/18 21:48 Received a message from Dimension. sent. 61 | PDIM111079 62 | 20 Jul 2018 09:48:05 PM Sending Data to LIMS 63 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 64 | success=true|toAnalyzer=2+48+3+ 65 | Bytes written to Port = System.Byte[] 66 | 20/Jul/18 21:48 Received a message from Dimension. sent. 67 | PDIM111079 68 | 20 Jul 2018 09:48:21 PM Sending Data to LIMS 69 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 70 | success=true|toAnalyzer=2+48+3+ 71 | Bytes written to Port = System.Byte[] 72 | 20/Jul/18 21:48 Received a message from Dimension. sent. 73 | PDIM111079 74 | 20 Jul 2018 09:48:36 PM Sending Data to LIMS 75 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 76 | success=true|toAnalyzer=2+48+3+ 77 | Bytes written to Port = System.Byte[] 78 | 20/Jul/18 21:48 Received a message from Dimension. sent. 79 | PDIM111079 80 | 20 Jul 2018 09:48:51 PM Sending Data to LIMS 81 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 82 | success=true|toAnalyzer=2+48+3+ 83 | Bytes written to Port = System.Byte[] 84 | 20/Jul/18 21:49 Received a message from Dimension. sent. 85 | PDIM111079 86 | 20 Jul 2018 09:49:06 PM Sending Data to LIMS 87 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 88 | success=true|toAnalyzer=2+48+3+ 89 | Bytes written to Port = System.Byte[] 90 | 20/Jul/18 21:49 Received a message from Dimension. sent. 91 | PDIM111079 92 | 20 Jul 2018 09:49:36 PM Sending Data to LIMS 93 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 94 | success=true|toAnalyzer=2+48+3+ 95 | Bytes written to Port = System.Byte[] 96 | 20/Jul/18 21:49 Received a message from Dimension. sent. 97 | PDIM111079 98 | 20 Jul 2018 09:49:52 PM Sending Data to LIMS 99 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 100 | success=true|toAnalyzer=2+48+3+ 101 | Bytes written to Port = System.Byte[] 102 | 20/Jul/18 21:50 Received a message from Dimension. sent. 103 | PDIM111079 104 | 20 Jul 2018 09:50:07 PM Sending Data to LIMS 105 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 106 | success=true|toAnalyzer=2+48+3+ 107 | Bytes written to Port = System.Byte[] 108 | 20/Jul/18 21:50 Received a message from Dimension. sent. 109 | PDIM111079 110 | 20 Jul 2018 09:50:22 PM Sending Data to LIMS 111 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 112 | success=true|toAnalyzer=2+48+3+ 113 | Bytes written to Port = System.Byte[] 114 | 20/Jul/18 21:50 Received a message from Dimension. sent. 115 | PDIM111079 116 | 20 Jul 2018 09:50:37 PM Sending Data to LIMS 117 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 118 | success=true|toAnalyzer=2+48+3+ 119 | Bytes written to Port = System.Byte[] 120 | 20/Jul/18 21:50 Received a message from Dimension. sent. 121 | PDIM111079 122 | 20 Jul 2018 09:50:53 PM Sending Data to LIMS 123 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 124 | success=true|toAnalyzer=2+48+3+ 125 | Bytes written to Port = System.Byte[] 126 | 20/Jul/18 21:51 Received a message from Dimension. sent. 127 | PDIM111079 128 | 20 Jul 2018 09:51:08 PM Sending Data to LIMS 129 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 130 | success=true|toAnalyzer=2+48+3+ 131 | Bytes written to Port = System.Byte[] 132 | 20/Jul/18 21:51 Received a message from Dimension. sent. 133 | PDIM111079 134 | 20 Jul 2018 09:51:23 PM Sending Data to LIMS 135 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 136 | success=true|toAnalyzer=2+48+3+ 137 | Bytes written to Port = System.Byte[] 138 | 20/Jul/18 21:51 Received a message from Dimension. sent. 139 | PDIM111079 140 | 20 Jul 2018 09:51:38 PM Sending Data to LIMS 141 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 142 | success=true|toAnalyzer=2+48+3+ 143 | Bytes written to Port = System.Byte[] 144 | 20/Jul/18 21:51 Received a message from Dimension. sent. 145 | PDIM111079 146 | 20 Jul 2018 09:51:53 PM Sending Data to LIMS 147 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 148 | success=true|toAnalyzer=2+48+3+ 149 | Bytes written to Port = System.Byte[] 150 | 20/Jul/18 21:52 Received a message from Dimension. sent. 151 | PDIM111079 152 | 20 Jul 2018 09:52:09 PM Sending Data to LIMS 153 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 154 | success=true|toAnalyzer=2+48+3+ 155 | Bytes written to Port = System.Byte[] 156 | 20/Jul/18 21:52 Received a message from Dimension. sent. 157 | PDIM111079 158 | 20 Jul 2018 09:52:24 PM Sending Data to LIMS 159 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 160 | success=true|toAnalyzer=2+48+3+ 161 | Bytes written to Port = System.Byte[] 162 | 20/Jul/18 21:52 Received a message from Dimension. sent. 163 | PDIM111079 164 | 20 Jul 2018 09:52:39 PM Sending Data to LIMS 165 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 166 | success=true|toAnalyzer=2+48+3+ 167 | Bytes written to Port = System.Byte[] 168 | 20/Jul/18 21:52 Received a message from Dimension. sent. 169 | PDIM111079 170 | 20 Jul 2018 09:52:54 PM Sending Data to LIMS 171 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 172 | success=true|toAnalyzer=2+48+3+ 173 | Bytes written to Port = System.Byte[] 174 | 20/Jul/18 21:53 Received a message from Dimension. sent. 175 | PDIM111079 176 | 20 Jul 2018 09:53:10 PM Sending Data to LIMS 177 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 178 | success=true|toAnalyzer=2+48+3+ 179 | Bytes written to Port = System.Byte[] 180 | 20/Jul/18 21:53 Received a message from Dimension. sent. 181 | PDIM111079 182 | 20 Jul 2018 09:53:25 PM Sending Data to LIMS 183 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 184 | success=true|toAnalyzer=2+48+3+ 185 | Bytes written to Port = System.Byte[] 186 | 20/Jul/18 21:53 Received a message from Dimension. sent. 187 | PDIM111079 188 | 20 Jul 2018 09:53:40 PM Sending Data to LIMS 189 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 190 | success=true|toAnalyzer=2+48+3+ 191 | Bytes written to Port = System.Byte[] 192 | 20/Jul/18 21:53 Received a message from Dimension. sent. 193 | PDIM111079 194 | 20 Jul 2018 09:53:55 PM Sending Data to LIMS 195 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 196 | success=true|toAnalyzer=2+48+3+ 197 | Bytes written to Port = System.Byte[] 198 | 20/Jul/18 21:54 Received a message from Dimension. sent. 199 | PDIM111079 200 | 20 Jul 2018 09:54:11 PM Sending Data to LIMS 201 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 202 | success=true|toAnalyzer=2+48+3+ 203 | Bytes written to Port = System.Byte[] 204 | 20/Jul/18 21:54 Received a message from Dimension. sent. 205 | PDIM111079 206 | 20 Jul 2018 09:54:26 PM Sending Data to LIMS 207 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 208 | success=true|toAnalyzer=2+48+3+ 209 | Bytes written to Port = System.Byte[] 210 | 20/Jul/18 21:54 Received a message from Dimension. sent. 211 | PDIM111079 212 | 20 Jul 2018 09:54:41 PM Sending Data to LIMS 213 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 214 | success=true|toAnalyzer=2+48+3+ 215 | Bytes written to Port = System.Byte[] 216 | 20/Jul/18 21:54 Received a message from Dimension. sent. 217 | PDIM111079 218 | 20 Jul 2018 09:54:56 PM Sending Data to LIMS 219 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 220 | success=true|toAnalyzer=2+48+3+ 221 | Bytes written to Port = System.Byte[] 222 | 20/Jul/18 21:55 Received a message from Dimension. sent. 223 | PDIM111079 224 | 20 Jul 2018 09:55:26 PM Sending Data to LIMS 225 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 226 | success=true|toAnalyzer=2+48+3+ 227 | Bytes written to Port = System.Byte[] 228 | 20/Jul/18 21:55 Received a message from Dimension. sent. 229 | PDIM111079 230 | 20 Jul 2018 09:55:42 PM Sending Data to LIMS 231 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 232 | success=true|toAnalyzer=2+48+3+ 233 | Bytes written to Port = System.Byte[] 234 | 20/Jul/18 21:55 Received a message from Dimension. sent. 235 | PDIM111079 236 | 20 Jul 2018 09:55:57 PM Sending Data to LIMS 237 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 238 | success=true|toAnalyzer=2+48+3+ 239 | Bytes written to Port = System.Byte[] 240 | 20/Jul/18 21:56 Received a message from Dimension. sent. 241 | PDIM111079 242 | 20 Jul 2018 09:56:12 PM Sending Data to LIMS 243 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 244 | success=true|toAnalyzer=2+48+3+ 245 | Bytes written to Port = System.Byte[] 246 | 20/Jul/18 21:56 Received a message from Dimension. sent. 247 | PDIM111079 248 | 20 Jul 2018 09:56:27 PM Sending Data to LIMS 249 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 250 | success=true|toAnalyzer=2+48+3+ 251 | Bytes written to Port = System.Byte[] 252 | 20/Jul/18 21:56 Received a message from Dimension. sent. 253 | PDIM111079 254 | 20 Jul 2018 09:56:43 PM Sending Data to LIMS 255 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 256 | success=true|toAnalyzer=2+48+3+ 257 | Bytes written to Port = System.Byte[] 258 | 20/Jul/18 21:56 Received a message from Dimension. sent. 259 | PDIM111079 260 | 20 Jul 2018 09:56:58 PM Sending Data to LIMS 261 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 262 | success=true|toAnalyzer=2+48+3+ 263 | Bytes written to Port = System.Byte[] 264 | 20/Jul/18 21:57 Received a message from Dimension. sent. 265 | PDIM111079 266 | 20 Jul 2018 09:57:13 PM Sending Data to LIMS 267 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 268 | success=true|toAnalyzer=2+48+3+ 269 | Bytes written to Port = System.Byte[] 270 | 20/Jul/18 21:57 Received a message from Dimension. sent. 271 | PDIM111079 272 | 20 Jul 2018 09:57:28 PM Sending Data to LIMS 273 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=inoka&password=inoka1&msg=21+2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 274 | success=true|toAnalyzer=2+48+3+ 275 | -------------------------------------------------------------------------------- /Testing Resources/Ana Dim 3.txt: -------------------------------------------------------------------------------- 1 | 20/Jul/18 22:02 Received from Dimension. sent. 2 | 20/Jul/18 22:02 Received a message from Dimension. sent. 3 | PDIM111079 4 | 20 Jul 2018 10:02:40 PM Sending Data to LIMS 5 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 6 | success=true|toAnalyzer=2+78+28+54+65+3+ 7 | Bytes written to Port = System.Byte[] 8 | 20/Jul/18 22:02 Received from Dimension. 9 | 20/Jul/18 22:02 Received a message from Dimension. sent. 10 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 11 | 20 Jul 2018 10:02:56 PM Sending Data to LIMS 12 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 13 | success=true|toAnalyzer=2+48+3+ 14 | Bytes written to Port = System.Byte[] 15 | 20/Jul/18 22:02 Received from Dimension. 16 | 20/Jul/18 22:03 Received a message from Dimension. sent. 17 | PDIM111079 18 | 20 Jul 2018 10:03:11 PM Sending Data to LIMS 19 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 20 | success=true|toAnalyzer=2+78+28+54+65+3+ 21 | Bytes written to Port = System.Byte[] 22 | 20/Jul/18 22:03 Received from Dimension. 23 | 20/Jul/18 22:03 Received a message from Dimension. sent. 24 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 25 | 20 Jul 2018 10:03:26 PM Sending Data to LIMS 26 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 27 | success=true|toAnalyzer=2+48+3+ 28 | Bytes written to Port = System.Byte[] 29 | 20/Jul/18 22:03 Received from Dimension. 30 | 20/Jul/18 22:03 Received a message from Dimension. sent. 31 | PDIM111079 32 | 20 Jul 2018 10:03:41 PM Sending Data to LIMS 33 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 34 | success=true|toAnalyzer=2+78+28+54+65+3+ 35 | Bytes written to Port = System.Byte[] 36 | 20/Jul/18 22:03 Received from Dimension. 37 | 20/Jul/18 22:03 Received a message from Dimension. sent. 38 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 39 | 20 Jul 2018 10:03:57 PM Sending Data to LIMS 40 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 41 | success=true|toAnalyzer=2+48+3+ 42 | Bytes written to Port = System.Byte[] 43 | 20/Jul/18 22:03 Received from Dimension. 44 | 20/Jul/18 22:04 Received a message from Dimension. sent. 45 | PDIM111079 46 | 20 Jul 2018 10:04:12 PM Sending Data to LIMS 47 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 48 | success=true|toAnalyzer=2+78+28+54+65+3+ 49 | Bytes written to Port = System.Byte[] 50 | 20/Jul/18 22:04 Received from Dimension. 51 | 20/Jul/18 22:04 Received a message from Dimension. sent. 52 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 53 | 20 Jul 2018 10:04:27 PM Sending Data to LIMS 54 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 55 | success=true|toAnalyzer=2+48+3+ 56 | Bytes written to Port = System.Byte[] 57 | 20/Jul/18 22:04 Received from Dimension. 58 | 20/Jul/18 22:04 Received a message from Dimension. sent. 59 | PDIM111079 60 | 20 Jul 2018 10:04:42 PM Sending Data to LIMS 61 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 62 | success=true|toAnalyzer=2+78+28+54+65+3+ 63 | Bytes written to Port = System.Byte[] 64 | 20/Jul/18 22:04 Received from Dimension. 65 | 20/Jul/18 22:04 Received a message from Dimension. sent. 66 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 67 | 20 Jul 2018 10:04:58 PM Sending Data to LIMS 68 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 69 | success=true|toAnalyzer=2+48+3+ 70 | Bytes written to Port = System.Byte[] 71 | 20/Jul/18 22:04 Received from Dimension. 72 | 20/Jul/18 22:05 Received a message from Dimension. sent. 73 | PDIM111079 74 | 20 Jul 2018 10:05:13 PM Sending Data to LIMS 75 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 76 | success=true|toAnalyzer=2+78+28+54+65+3+ 77 | Bytes written to Port = System.Byte[] 78 | 20/Jul/18 22:05 Received from Dimension. 79 | 20/Jul/18 22:05 Received a message from Dimension. sent. 80 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 81 | 20 Jul 2018 10:05:28 PM Sending Data to LIMS 82 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 83 | success=true|toAnalyzer=2+48+3+ 84 | Bytes written to Port = System.Byte[] 85 | 20/Jul/18 22:05 Received from Dimension. 86 | 20/Jul/18 22:05 Received a message from Dimension. sent. 87 | PDIM111079 88 | 20 Jul 2018 10:05:44 PM Sending Data to LIMS 89 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 90 | success=true|toAnalyzer=2+78+28+54+65+3+ 91 | Bytes written to Port = System.Byte[] 92 | 20/Jul/18 22:05 Received from Dimension. 93 | 20/Jul/18 22:05 Received a message from Dimension. sent. 94 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 95 | 20 Jul 2018 10:05:59 PM Sending Data to LIMS 96 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 97 | success=true|toAnalyzer=2+48+3+ 98 | Bytes written to Port = System.Byte[] 99 | 20/Jul/18 22:05 Received from Dimension. 100 | 20/Jul/18 22:06 Received a message from Dimension. sent. 101 | PDIM111079 102 | 20 Jul 2018 10:06:14 PM Sending Data to LIMS 103 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 104 | success=true|toAnalyzer=2+78+28+54+65+3+ 105 | Bytes written to Port = System.Byte[] 106 | 20/Jul/18 22:06 Received from Dimension. 107 | 20/Jul/18 22:06 Received a message from Dimension. sent. 108 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 109 | 20 Jul 2018 10:06:29 PM Sending Data to LIMS 110 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 111 | success=true|toAnalyzer=2+48+3+ 112 | Bytes written to Port = System.Byte[] 113 | 20/Jul/18 22:06 Received from Dimension. 114 | 20/Jul/18 22:06 Received a message from Dimension. sent. 115 | PDIM111079 116 | 20 Jul 2018 10:06:45 PM Sending Data to LIMS 117 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 118 | success=true|toAnalyzer=2+78+28+54+65+3+ 119 | Bytes written to Port = System.Byte[] 120 | 20/Jul/18 22:06 Received from Dimension. 121 | 20/Jul/18 22:07 Received a message from Dimension. sent. 122 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 123 | 20 Jul 2018 10:07:00 PM Sending Data to LIMS 124 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 125 | success=true|toAnalyzer=2+48+3+ 126 | Bytes written to Port = System.Byte[] 127 | 20/Jul/18 22:07 Received from Dimension. 128 | 20/Jul/18 22:07 Received a message from Dimension. sent. 129 | PDIM111079 130 | 20 Jul 2018 10:07:15 PM Sending Data to LIMS 131 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 132 | success=true|toAnalyzer=2+78+28+54+65+3+ 133 | Bytes written to Port = System.Byte[] 134 | 20/Jul/18 22:07 Received from Dimension. 135 | 20/Jul/18 22:07 Received a message from Dimension. sent. 136 | PDIM111079 137 | 20 Jul 2018 10:07:45 PM Sending Data to LIMS 138 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 139 | success=true|toAnalyzer=2+78+28+54+65+3+ 140 | Bytes written to Port = System.Byte[] 141 | 20/Jul/18 22:07 Received from Dimension. 142 | 20/Jul/18 22:08 Received a message from Dimension. sent. 143 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 144 | 20 Jul 2018 10:08:01 PM Sending Data to LIMS 145 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 146 | success=true|toAnalyzer=2+48+3+ 147 | Bytes written to Port = System.Byte[] 148 | 20/Jul/18 22:08 Received from Dimension. 149 | 20/Jul/18 22:08 Received a message from Dimension. sent. 150 | PDIM111079 151 | 20 Jul 2018 10:08:16 PM Sending Data to LIMS 152 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 153 | success=true|toAnalyzer=2+78+28+54+65+3+ 154 | Bytes written to Port = System.Byte[] 155 | 20/Jul/18 22:08 Received from Dimension. 156 | 20/Jul/18 22:08 Received a message from Dimension. sent. 157 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 158 | 20 Jul 2018 10:08:31 PM Sending Data to LIMS 159 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 160 | success=true|toAnalyzer=2+48+3+ 161 | Bytes written to Port = System.Byte[] 162 | 20/Jul/18 22:08 Received from Dimension. 163 | 20/Jul/18 22:08 Received a message from Dimension. sent. 164 | PDIM111079 165 | 20 Jul 2018 10:08:46 PM Sending Data to LIMS 166 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 167 | success=true|toAnalyzer=2+78+28+54+65+3+ 168 | Bytes written to Port = System.Byte[] 169 | 20/Jul/18 22:08 Received from Dimension. 170 | 20/Jul/18 22:09 Received a message from Dimension. sent. 171 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 172 | 20 Jul 2018 10:09:02 PM Sending Data to LIMS 173 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 174 | success=true|toAnalyzer=2+48+3+ 175 | Bytes written to Port = System.Byte[] 176 | 20/Jul/18 22:09 Received from Dimension. 177 | 20/Jul/18 22:09 Received a message from Dimension. sent. 178 | PDIM111079 179 | 20 Jul 2018 10:09:17 PM Sending Data to LIMS 180 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 181 | success=true|toAnalyzer=2+78+28+54+65+3+ 182 | Bytes written to Port = System.Byte[] 183 | 20/Jul/18 22:09 Received from Dimension. 184 | 20/Jul/18 22:09 Received a message from Dimension. sent. 185 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 186 | 20 Jul 2018 10:09:32 PM Sending Data to LIMS 187 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 188 | success=true|toAnalyzer=2+48+3+ 189 | Bytes written to Port = System.Byte[] 190 | 20/Jul/18 22:09 Received from Dimension. 191 | 20/Jul/18 22:09 Received a message from Dimension. sent. 192 | PDIM111079 193 | 20 Jul 2018 10:09:47 PM Sending Data to LIMS 194 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 195 | success=true|toAnalyzer=2+78+28+54+65+3+ 196 | Bytes written to Port = System.Byte[] 197 | 20/Jul/18 22:09 Received from Dimension. 198 | 20/Jul/18 22:10 Received a message from Dimension. sent. 199 | R*DINARIDimension10441021170718114NA139mmol/LK4.1mmol/LCL101mmol/LCRE21.02mg/dL63 200 | 20 Jul 2018 10:10:03 PM Sending Data to LIMS 201 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+82+28+42+28+68+73+78+65+82+73+28+68+105+109+101+110+115+105+111+110+28+49+28+28+48+28+52+52+49+48+50+49+49+55+48+55+49+56+28+49+28+49+28+52+28+78+65+28+49+51+57+28+109+109+111+108+47+76+28+28+75+28+52+46+49+28+109+109+111+108+47+76+28+28+67+76+28+49+48+49+28+109+109+111+108+47+76+28+28+67+82+69+50+28+49+46+48+50+28+109+103+47+100+76+28+28+54+51+3+ 202 | success=true|toAnalyzer=2+48+3+ 203 | Bytes written to Port = System.Byte[] 204 | 20/Jul/18 22:10 Received from Dimension. 205 | 20/Jul/18 22:10 Received a message from Dimension. sent. 206 | PDIM111079 207 | 20 Jul 2018 10:10:18 PM Sending Data to LIMS 208 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 209 | success=true|toAnalyzer=2+78+28+54+65+3+ 210 | Bytes written to Port = System.Byte[] 211 | 20/Jul/18 22:10 Received from Dimension. 212 | -------------------------------------------------------------------------------- /Testing Resources/Dim Ana 4.txt: -------------------------------------------------------------------------------- 1 | 21/Jul/18 6:11 Received from Dimension. sent. 2 | 21/Jul/18 6:12 Received a message from Dimension. sent. 3 | PDIM111079 4 | 21 Jul 2018 06:12:11 AM Sending Data to LIMS 5 | http://35.187.229.47:8080/arogya/faces/requests/mwapi.xhtml?machine=Dimension&username=buddhika&password=b&msg=2+80+28+68+73+77+49+28+49+28+49+28+48+28+55+57+3+ 6 | !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">GlassFish Server Open Source Edition 4.1.2 - Error report