├── .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