();
string[] itemArray1 = new string[20] { "WBC", "Lymph#", "Mid#", "Gran#", "Lymph%", "Mid%", "Gran%", "RBC", "HGB", "MCV", "MCH", "MCHC", "RDW-CV", "RDW-SD", "HCT", "PLT", "MPV", "PDW", "PCT", "P-LCR" };
string[] itemArray = new string[20] { "WBC", "LYMC", "MIDC", "GRNC", "LYMR", "MIDR", "GRNR", "RBC", "HGB", "MCV", "MCH", "MCHC", "RDW-CV", "RDW-SD", "HCT", "PLT", "MPV", "PDW", "PCT", "P-LCR" };
//string[] resulteArray = deviceDataStr.Split('\n');
// deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string[] valArray = deviceDataStr.Split('\n');
string sampleNo1 = string.Empty;//样本号
for (int A = 0; A < valArray.Length; A++)
{
if (valArray[A].Contains("ID"))
{
sampleNo1 = jiexiVal(valArray[A].IndexOf("ID"), "ID", valArray[A]).ToString().TrimStart('0');
}
for (int i = 0; i < itemArray.Length; i++)
{
string keyItem = "" + itemArray[i];
if (valArray[A].Contains(keyItem))
{
string itemStr = itemArray[i] + "";
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray1[i];//项目代号 这是屏幕上显示的代号
erm1.itemValue = valArray[A].Substring(valArray[A].IndexOf("") + 3, valArray[A].IndexOf("") - valArray[A].IndexOf("") - 3);//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
}
}
string jsonStr12 = JsonConvert.SerializeObject(ermList);
//把血常规的图也传上去
List eipmList = new List();
int[] array1 = strCount("^Base64^", deviceDataStr);
string keyStr = "||||||F";//结束符
List imgBase64StrList = jiexiBase64(array1, keyStr, deviceDataStr);//解析出数据中的图片base64
//int[] array2 = strCount("||||||F||||||", deviceDataStr);
for (int i = 0; i < imgBase64StrList.Count; i++)
{
string base64Str = imgBase64StrList[i];
examImageParaModel EIPM1 = new examImageParaModel();
EIPM1.machineCode = MachineCode;
EIPM1.machineID = MachineID;
EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
EIPM1.sampleNo = sampleNo1;
EIPM1.img = "data:image/jpeg;base64," + base64Str;
eipmList.Add(EIPM1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (eipmList.Count > 0)
{
baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
//if (bmm2.code == 200)
// dataOutPutShow("图像提交成功:" + jsonStr, null);
//else
// dataOutPutShow("图像提交失败:" + jsonStr, null);
}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "CS-1300B")//迪瑞全自动生化分析仪 CS-1300B
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[16] { "ALT", "AST", "TBIL", "UREA", "CRE-E", "GLU", "TC", "TG", "HDL-C", "LDL-C", "TP", "ALB", "DBIL", "ALP", "GGT", "UA" };
//deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string[] valArray = deviceDataStr.Split('\n');
string sampleNo1 = string.Empty;//样本号
for (int A = 0; A < valArray.Length; A++)
{
if (valArray[A].Contains("|1200^1300B|"))
{
// int index3 = jiexisampleNo(valArray[A].IndexOf("|480^480|"), valArray[A]);
sampleNo1 = jiexisampleNo(valArray[A].IndexOf("|1200^1300B|"), valArray[A]).ToString();
// File.WriteAllText("test1.txt","哈哈哈 " + index3.ToString() + " " + valArray[A] + " 原样字符串:" + deviceDataStr);
// MessageBox.Show("哈哈哈 "+index3.ToString()+" "+ valArray[A]+" 原样字符串:"+ deviceDataStr);
}
for (int i = 0; i < itemArray.Length; i++)
{
if (valArray[A].Contains(itemArray[i]))
{
string itemStr = itemArray[i] + "^1|";
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
erm1.itemValue = jiexiItemValue(itemStr, valArray[A]);//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
}
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "URIT-1500")//优利特尿常规URIT-1500
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[11] { "VC", "WBC", "KET", "NIT", "URO", "BIL", "PRO", "GLU", "SG", "BLD", "pH" };
string[] resulteArray = deviceDataStr.Split('\n');
for (int i = 0; i < resulteArray.Length; i += 18)
{
//这里需要判断一下数据是否超过了 当前数据的长度
ermList.Clear();
if (i + 18 > resulteArray.Length)
break;
string[] spArray = resulteArray[i + 2].Trim().Split(' ');
string sampleNo1 = spArray[0].Trim().Replace("NO.", "").TrimStart('0');
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm = new examResultMode();
erm.machineCode = MachineCode;
erm.machineID = MachineID;
erm.sampleNo = sampleNo1;
erm.testDate = testDate1;
erm.chanelNo = "VC";//项目代号
erm.itemValue = resulteArray[i + 5].Substring(resulteArray[i + 5].IndexOf("VC") + 2, 6).Trim();//项目结果
erm.itemUnit = "mmol/L";
ermList.Add(erm);
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = "WBC";//项目代号
erm1.itemValue = resulteArray[i + 6].Substring(resulteArray[i + 6].IndexOf("WBC") + 3, 6).Trim();//项目结果
erm1.itemUnit = "CELL/uL";
ermList.Add(erm1);
examResultMode erm2 = new examResultMode();
erm2.machineCode = MachineCode;
erm2.machineID = MachineID;
erm2.sampleNo = sampleNo1;
erm2.testDate = testDate1;
erm2.chanelNo = "KET";//项目代号
erm2.itemValue = resulteArray[i + 7].Substring(resulteArray[i + 7].IndexOf("KET") + 3, 6).Trim();//项目结果
erm2.itemUnit = "mmol/L";
ermList.Add(erm2);
examResultMode erm3 = new examResultMode();
erm3.machineCode = MachineCode;
erm3.machineID = MachineID;
erm3.sampleNo = sampleNo1;
erm3.testDate = testDate1;
erm3.chanelNo = "NIT";//项目代号
erm3.itemValue = resulteArray[i + 8].Substring(resulteArray[i + 8].IndexOf("NIT") + 3, 6).Trim();//项目结果
erm3.itemUnit = "Neg";
ermList.Add(erm3);
examResultMode erm4 = new examResultMode();
erm4.machineCode = MachineCode;
erm4.machineID = MachineID;
erm4.sampleNo = sampleNo1;
erm4.testDate = testDate1;
erm4.chanelNo = "URO";//项目代号
string[] sss = resulteArray[i + 9].Split(' ');
erm4.itemValue = resulteArray[i + 9].Substring(resulteArray[i + 9].IndexOf("URO") + 3, 6).Trim();//项目结果
erm4.itemUnit = "Normal";
ermList.Add(erm4);
examResultMode erm5 = new examResultMode();
erm5.machineCode = MachineCode;
erm5.machineID = MachineID;
erm5.sampleNo = sampleNo1;
erm5.testDate = testDate1;
erm5.chanelNo = "BIL";//项目代号
erm5.itemValue = resulteArray[i + 10].Substring(resulteArray[i + 10].IndexOf("BIL") + 3, 6).Trim();//项目结果
erm5.itemUnit = "umol/L";
ermList.Add(erm5);
examResultMode erm6 = new examResultMode();
erm6.machineCode = MachineCode;
erm6.machineID = MachineID;
erm6.sampleNo = sampleNo1;
erm6.testDate = testDate1;
erm6.chanelNo = "PRO";//项目代号
erm6.itemValue = resulteArray[i + 11].Substring(resulteArray[i + 11].IndexOf("PRO") + 3, 6).Trim();//项目结果
erm6.itemUnit = "g/L";
ermList.Add(erm6);
examResultMode erm7 = new examResultMode();
erm7.machineCode = MachineCode;
erm7.machineID = MachineID;
erm7.sampleNo = sampleNo1;
erm7.testDate = testDate1;
erm7.chanelNo = "GLU";//项目代号
erm7.itemValue = resulteArray[i + 12].Substring(resulteArray[i + 12].IndexOf("GLU") + 3, 6).Trim();//项目结果
erm7.itemUnit = "mmol/L";
ermList.Add(erm7);
examResultMode erm8 = new examResultMode();
erm8.machineCode = MachineCode;
erm8.machineID = MachineID;
erm8.sampleNo = sampleNo1;
erm8.testDate = testDate1;
erm8.chanelNo = "SG";//项目代号
erm8.itemValue = resulteArray[i + 13].Replace("SG", "").Trim();//项目结果
erm8.itemUnit = "";
ermList.Add(erm8);
examResultMode erm9 = new examResultMode();
erm9.machineCode = MachineCode;
erm9.machineID = MachineID;
erm9.sampleNo = sampleNo1;
erm9.testDate = testDate1;
erm9.chanelNo = "BLD";//项目代号
erm9.itemValue = resulteArray[i + 14].Substring(resulteArray[i + 14].IndexOf("BLD") + 3, 6).Trim();//项目结果
erm9.itemUnit = "CELL/uL";
ermList.Add(erm9);
examResultMode erm10 = new examResultMode();
erm10.machineCode = MachineCode;
erm10.machineID = MachineID;
erm10.sampleNo = sampleNo1;
erm10.testDate = testDate1;
erm10.chanelNo = "pH";//项目代号
erm10.itemValue = resulteArray[i + 15].Replace("pH", "").Trim();//项目结果
erm10.itemUnit = "";
ermList.Add(erm10);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "URIT-5180")//优利特血常规 5180
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[31] { "WBC", "LYM%", "MON%", "NEU%", "EOS%", "BASO%", "LYM#", "MON#", "NEU#", "EOS#", "BASO#", "ALY%", "ALY#", "LIC%", "LIC#", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW_CV", "RDW_SD", "PLT", "MPV", "PDW", "PCT", "P_LCR", "P_LCC", "NRBC%", "NRBC#" };
//string[] resulteArray = deviceDataStr.Split('\n');
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = itemArray[i] + "||";
sampleNo1 = deviceDataStr.Substring(deviceDataStr.IndexOf("|URIT^URIT-5160|||") - 7, 7).TrimStart('0');
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
erm1.itemValue = jiexiItemValue(itemStr, deviceDataStr);//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
////把血常规的图也传上去
//List eipmList = new List();
//int[] array1 = strCount("^Base64^", deviceDataStr);
//int[] array2 = strCount("||||||F||||||", deviceDataStr);
//for (int i = 0; i < array2.Length; i++)
//{
// string base64Str = deviceDataStr.Substring(array1[i] + 8, array2[i] - array1[i] - 8);
// examImageParaModel EIPM1 = new examImageParaModel();
// EIPM1.machineCode = MachineCode;
// EIPM1.machineID = MachineID;
// EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// EIPM1.sampleNo = sampleNo1;
// EIPM1.img = "data:image/jpeg;base64," + base64Str;
// eipmList.Add(EIPM1);
//}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
//if (eipmList.Count > 0)
//{
// baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
// //if (bmm2.code == 200)
// // dataOutPutShow("图像提交成功:" + jsonStr, null);
// //else
// // dataOutPutShow("图像提交失败:" + jsonStr, null);
//}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "BS-430")//生化BS-430
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[10] { "Glu-G", "TG", "TC", "LDL-C", "HDL-C", "T-Bil-V", "ALT", "AST", "CREA-S", "UREA" };
string[] itemArrayC = new string[10] { "葡萄糖(葡萄糖氧化酶法)", "甘油三酯", "总胆固醇", "低密度脂蛋白胆固醇", "高密度脂蛋白胆固醇", "总胆红素(钒酸盐氧化法)", "丙氨酸氨基转移酶", "天门冬氨酸氨基转移酶", "肌酐(肌氨酸氧化酶法)", "尿素" };
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] valArray = deviceDataStr.Split(',');
string[] valArray = deviceDataStr.Split('|');
string sampleNo1 = valArray[54];//样本号
for (int i = 0; i < itemArrayC.Length; i++)
{
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
// MessageBox.Show(deviceDataStr+"\r\n\r\n :"+ggg[5]);
string itemStr = itemArrayC[i] + "|";
int index1 = deviceDataStr.IndexOf(itemStr);
string valueS = jiexiVal(index1, itemStr, deviceDataStr);
double roundedValue = Math.Round(double.Parse(valueS), 2);
erm1.itemValue = roundedValue.ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "DF55-1")//帝迈血常规DF55-1
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[27] { "WBC", "NEU%", "LYM%", "MON%", "EOS%", "BAS%", "NEU#", "LYM#", "MON#", "EOS#", "BAS#", "*ALY%", "*LIC#", "*LIC%", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW-SD", "PLT", "MPV", "PDW", "PCT", "*ALY#", "RDW-CV" };
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
if (itemArray[i] == "*LIC#" || itemArray[i] == "*LIC%" || itemArray[i] == "PCT")
itemStr = itemArray[i] + "^99MRC||";
else
itemStr = itemArray[i] + "^LN||";
string val1 = jiexiVal(deviceDataStr.IndexOf("OBR|1||"), "OBR|1||", deviceDataStr).ToString();
sampleNo1 = val1;
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i]; //项目代号
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
string jsonStr12 = JsonConvert.SerializeObject(ermList);
//把血常规的图也传上去
List eipmList = new List();
int[] array1 = strCount("^Base64^", deviceDataStr);
string keyStr = "||||||F";//结束符
List imgBase64StrList = jiexiBase64(array1, keyStr, deviceDataStr);//解析出数据中的图片base64
//int[] array2 = strCount("||||||F||||||", deviceDataStr);
for (int i = 0; i < imgBase64StrList.Count; i++)
{
string base64Str = imgBase64StrList[i];
examImageParaModel EIPM1 = new examImageParaModel();
EIPM1.machineCode = MachineCode;
EIPM1.machineID = MachineID;
EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
EIPM1.sampleNo = sampleNo1;
EIPM1.img = "data:image/jpeg;base64," + base64Str;
eipmList.Add(EIPM1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (eipmList.Count > 0)
{
baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
//if (bmm2.code == 200)
// dataOutPutShow("图像提交成功:" + jsonStr, null);
//else
// dataOutPutShow("图像提交失败:" + jsonStr, null);
}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "URIT-1600")//优利特URIT-1600
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[12] { "Vc", "WBC", "KET", "NIT", "URO", "BIL", "PRO", "GLU", "SG", "BLD", "pH", "Color" };
// deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] valArray = deviceDataStr.Split(',');
string[] valArray = deviceDataStr.Split('\r');
string sampleNo1 = string.Empty;
for (int A = 0; A < valArray.Length; A++)
{
if (valArray[A].Contains("OBR"))
{
string[] valStrArray = valArray[A].Split('|');
sampleNo1 = valStrArray[3].TrimStart('0');
}
for (int i = 0; i < itemArray.Length; i++)
{
if (valArray[A].Contains(itemArray[i]))
{
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
string[] reArray = valArray[A].Replace("||", "|").Split('|');
erm1.itemValue = reArray[4].Split('^')[0];//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
}
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "DH56")//帝迈血常规DH56
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[29] { "WBC", "NEU%", "LYM%", "MON%", "EOS%", "BAS%", "NEU#", "LYM#", "MON#", "EOS#", "BAS#", "*ALY#", "*ALY%", "*LIC#", "*LIC%", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW-CV", "RDW-SD", "PLT", "MPV", "PDW", "PCT", "P-LCR", "P-LCC" };
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
if (itemArray[i] == "*LIC#" || itemArray[i] == "*LIC%" || itemArray[i] == "PCT")
itemStr = itemArray[i] + "^99MRC||";
else
itemStr = itemArray[i] + "^LN||";
string val1 = jiexiVal(deviceDataStr.IndexOf("OBR|1||"), "OBR|1||", deviceDataStr).ToString();
sampleNo1 = val1;
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i]; //项目代号
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
// string jsonStr12 = JsonConvert.SerializeObject(ermList);
////把血常规的图也传上去
//List eipmList = new List();
//int[] array1 = strCount("^Base64^", deviceDataStr);
//string keyStr = "||||||F";//结束符
//List imgBase64StrList = jiexiBase64(array1, keyStr, deviceDataStr);//解析出数据中的图片base64
////int[] array2 = strCount("||||||F||||||", deviceDataStr);
//for (int i = 0; i < imgBase64StrList.Count; i++)
//{
// string base64Str = imgBase64StrList[i];
// examImageParaModel EIPM1 = new examImageParaModel();
// EIPM1.machineCode = MachineCode;
// EIPM1.machineID = MachineID;
// EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// EIPM1.sampleNo = sampleNo1;
// EIPM1.img = "data:image/jpeg;base64," + base64Str;
// eipmList.Add(EIPM1);
//}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
//if (eipmList.Count > 0)
//{
// baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
// //if (bmm2.code == 200)
// // dataOutPutShow("图像提交成功:" + jsonStr, null);
// //else
// // dataOutPutShow("图像提交失败:" + jsonStr, null);
//}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "URIT-5380")//优利特血常规URIT-5380
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[25] { "WBC", "LYM%", "MON%", "NEU%", "EOS%", "BASO%", "LYM#", "MON#", "NEU#", "EOS#", "BASO#", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW_SD", "RDW_CV", "PLT", "MPV", "PDW", "PCT", "P_LCR", "P_LCC" };
//string[] resulteArray = deviceDataStr.Split('\n');
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = itemArray[i] + "||";
//sampleNo1 = deviceDataStr.Substring(deviceDataStr.IndexOf("||Urit^UT5380||||") - 7, 7).TrimStart('0');
sampleNo1 = jiexisampleNo(deviceDataStr.IndexOf("||Urit^UT5380||||"), deviceDataStr).ToString();
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
erm1.itemValue = jiexiItemValue(itemStr, deviceDataStr);//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
//把血常规的图也传上去
List eipmList = new List();
int[] array1 = strCount("^Base64^", deviceDataStr);
int[] array2 = strCount("||||||F||||||", deviceDataStr);
for (int i = 0; i < array2.Length; i++)
{
string base64Str = deviceDataStr.Substring(array1[i] + 8, array2[i] - array1[i] - 8);
examImageParaModel EIPM1 = new examImageParaModel();
EIPM1.machineCode = MachineCode;
EIPM1.machineID = MachineID;
EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
EIPM1.sampleNo = sampleNo1;
EIPM1.img = "data:image/jpeg;base64," + base64Str;
eipmList.Add(EIPM1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (eipmList.Count > 0)
{
baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
//if (bmm2.code == 200)
// dataOutPutShow("图像提交成功:" + jsonStr, null);
//else
// dataOutPutShow("图像提交失败:" + jsonStr, null);
}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "U500")//尿常规U500
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] resulteArray = deviceDataStr.Split('\n');
// File.WriteAllText("BT-200.TXT", deviceDataStr);
for (int i = 0; i < resulteArray.Length; i += 20)
{
//这里需要判断一下数据是否超过了 当前数据的长度
ermList.Clear();
if (i + 20 > resulteArray.Length)
break;
string[] spArray = resulteArray[3].Trim().Split(' ');
string sampleNo1 = resulteArray[3].Trim().Split(' ')[2].Replace("-", "0").TrimStart('0');
//string testDate1 = jiexiDate(resulteArray[i + 1], resulteArray[i + 2]);
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm = new examResultMode();
erm.machineCode = MachineCode;
erm.machineID = MachineID;
erm.sampleNo = sampleNo1;
erm.testDate = testDate1;
erm.chanelNo = "LEU";//项目代号
erm.itemValue = resulteArray[i + 4].Substring(4, 15).Trim();//项目结果//项目结果
erm.itemUnit = "";
ermList.Add(erm);
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = "URO";//项目代号
erm1.itemValue = resulteArray[i + 5].Substring(4, 11).Trim();//项目结果
erm1.itemUnit = "mg/dL";
ermList.Add(erm1);
examResultMode erm2 = new examResultMode();
erm2.machineCode = MachineCode;
erm2.machineID = MachineID;
erm2.sampleNo = sampleNo1;
erm2.testDate = testDate1;
erm2.chanelNo = "ALB";//项目代号
erm2.itemValue = resulteArray[i + 6].Substring(4, 13).Trim();//项目结果
erm2.itemUnit = "mg/L";
ermList.Add(erm2);
examResultMode erm3 = new examResultMode();
erm3.machineCode = MachineCode;
erm3.machineID = MachineID;
erm3.sampleNo = sampleNo1;
erm3.testDate = testDate1;
erm3.chanelNo = "PRO";//项目代号
erm3.itemValue = resulteArray[i + 7].Substring(4, 15).Trim();//项目结果
erm3.itemUnit = "";
ermList.Add(erm3);
examResultMode erm4 = new examResultMode();
erm4.machineCode = MachineCode;
erm4.machineID = MachineID;
erm4.sampleNo = sampleNo1;
erm4.testDate = testDate1;
erm4.chanelNo = "BIL";//项目代号
erm4.itemValue = resulteArray[i + 8].Substring(5, 13).Trim();//项目结果
erm4.itemUnit = "";
ermList.Add(erm4);
examResultMode erm5 = new examResultMode();
erm5.machineCode = MachineCode;
erm5.machineID = MachineID;
erm5.sampleNo = sampleNo1;
erm5.testDate = testDate1;
erm5.chanelNo = "GLU";//项目代号
erm5.itemValue = resulteArray[i + 9].Substring(4, 15).Trim();//项目结果
erm5.itemUnit = "";
ermList.Add(erm5);
examResultMode erm6 = new examResultMode();
erm6.machineCode = MachineCode;
erm6.machineID = MachineID;
erm6.sampleNo = sampleNo1;
erm6.testDate = testDate1;
erm6.chanelNo = "ASC";//项目代号
erm6.itemValue = resulteArray[i + 10].Substring(5, 13).Trim();//项目结果
erm6.itemUnit = "";
ermList.Add(erm6);
examResultMode erm10 = new examResultMode();
erm10.machineCode = MachineCode;
erm10.machineID = MachineID;
erm10.sampleNo = sampleNo1;
erm10.testDate = testDate1;
erm10.chanelNo = "SG";//项目代号
erm10.itemValue = resulteArray[i + 11].Replace("SG", "").Trim();//项目结果
erm10.itemUnit = "";
ermList.Add(erm10);
examResultMode erm7 = new examResultMode();
erm7.machineCode = MachineCode;
erm7.machineID = MachineID;
erm7.sampleNo = sampleNo1;
erm7.testDate = testDate1;
erm7.chanelNo = "KET";//项目代号
erm7.itemValue = resulteArray[i + 12].Substring(4, 13).Trim();//项目结果
erm7.itemUnit = "";
ermList.Add(erm7);
examResultMode erm8 = new examResultMode();
erm8.machineCode = MachineCode;
erm8.machineID = MachineID;
erm8.sampleNo = sampleNo1;
erm8.testDate = testDate1;
erm8.chanelNo = "NIT";//项目代号
erm8.itemValue = resulteArray[i + 13].Substring(4, 14).Trim();//项目结果
erm8.itemUnit = "";
ermList.Add(erm8);
examResultMode erm9 = new examResultMode();
erm9.machineCode = MachineCode;
erm9.machineID = MachineID;
erm9.sampleNo = sampleNo1;
erm9.testDate = testDate1;
erm9.chanelNo = "CRE";//项目代号
erm9.itemValue = resulteArray[i + 14].Substring(4, 12).Trim();//项目结果
erm9.itemUnit = "mmol/L";
ermList.Add(erm9);
examResultMode erm11 = new examResultMode();
erm11.machineCode = MachineCode;
erm11.machineID = MachineID;
erm11.sampleNo = sampleNo1;
erm11.testDate = testDate1;
erm11.chanelNo = "PH";//项目代号
erm11.itemValue = resulteArray[i + 15].Replace("PH", "").Trim();//项目结果
erm11.itemUnit = "mmol/L";
ermList.Add(erm11);
examResultMode erm12 = new examResultMode();
erm12.machineCode = MachineCode;
erm12.machineID = MachineID;
erm12.sampleNo = sampleNo1;
erm12.testDate = testDate1;
erm12.chanelNo = "BLO";//项目代号
erm12.itemValue = resulteArray[i + 16].Substring(4, 15).Trim();//项目结果
erm12.itemUnit = "mmol/L";
ermList.Add(erm12);
examResultMode erm13 = new examResultMode();
erm13.machineCode = MachineCode;
erm13.machineID = MachineID;
erm13.sampleNo = sampleNo1;
erm13.testDate = testDate1;
erm13.chanelNo = "CA";//项目代号
erm13.itemValue = resulteArray[i + 17].Substring(4, 12).Trim();//项目结果
erm13.itemUnit = "mmol/L";
ermList.Add(erm13);
examResultMode erm14 = new examResultMode();
erm14.machineCode = MachineCode;
erm14.machineID = MachineID;
erm14.sampleNo = sampleNo1;
erm14.testDate = testDate1;
erm14.chanelNo = "P:C";//项目代号
erm14.itemValue = resulteArray[i + 18].Substring(4, 8).Trim();//项目结果
erm14.itemUnit = "mmol/L";
ermList.Add(erm14);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
}
if (apiOptions.CurrentDevice == "BC-5130")//BC-5130
{
try
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[26] { "WBC", "NEU%", "LYM%", "MON%", "EOS%", "BAS%", "NEU#", "LYM#", "MON#", "EOS#", "BAS#", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW-SD", "PLT", "MPV", "PDW", "PCT", "RDW-CV", "PLCC", "PLCR", "Lymphocytosis" };
//string[] resulteArray = deviceDataStr.Split('\n');
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
if (itemArray[i] == "*LIC#" || itemArray[i] == "*LIC%" || itemArray[i] == "PCT" || itemArray[i] == "PLCC" || itemArray[i] == "PLCR" || itemArray[i] == "Lymphocytosis")
itemStr = itemArray[i] + "^99MRC||";
else
itemStr = itemArray[i] + "^LN||";
string val1 = deviceDataStr.Substring(deviceDataStr.IndexOf("OBR"), 30);
sampleNo1 = val1.Split('|')[3];
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i]; //项目代号
if (itemArray[i] != "Lymphocytosis")
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();//项目结果
else
erm1.itemValue = jiexiItemValue11(itemStr, deviceDataStr);
erm1.itemUnit = "";
ermList.Add(erm1);
}
string jsonStr12 = JsonConvert.SerializeObject(ermList);
//把血常规的图也传上去
List eipmList = new List();
int[] array1 = strCount("^Base64^", deviceDataStr);
string keyStr = "||||||F";//结束符
List imgBase64StrList = jiexiBase64(array1, keyStr, deviceDataStr);//解析出数据中的图片base64
//int[] array2 = strCount("||||||F||||||", deviceDataStr);
for (int i = 0; i < imgBase64StrList.Count; i++)
{
string base64Str = imgBase64StrList[i];
examImageParaModel EIPM1 = new examImageParaModel();
EIPM1.machineCode = MachineCode;
EIPM1.machineID = MachineID;
EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
EIPM1.sampleNo = sampleNo1;
EIPM1.img = "data:image/jpeg;base64," + base64Str;
eipmList.Add(EIPM1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (eipmList.Count > 0)
{
baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
//if (bmm2.code == 200)
// dataOutPutShow("图像提交成功:" + jsonStr, null);
//else
// dataOutPutShow("图像提交失败:" + jsonStr, null);
}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
catch (Exception ex) { /*MessageBox.Show(ex.ToString()); */}
}
if (apiOptions.CurrentDevice == "SD1")//斯玛特SD1
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[22] { "ALT", "AST", "ALP", "GGT", "IBIL", "TP", "ALB", "Crea", "UA", "GLU", "TG", "HDL", "LDL", "TB|TB", "TC", "DB", "CHE", "BUN|BUN", "TBA", "A/G", "BUN/CREA", "GLOB" };
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
deviceDataStr = deviceDataStr.Replace("OBX", "。");
string[] valArray = deviceDataStr.Split('。');
string sampleNo1 = string.Empty;//样本号
for (int A = 0; A < valArray.Length; A++)
{
if (valArray[A].Contains("OBR|"))
{
int index1 = valArray[A].Substring(valArray[A].IndexOf("OBR|"), 20).IndexOf("||") + 2;
sampleNo1 = jiexisampleNo8(index1, valArray[A].Substring(valArray[A].IndexOf("OBR|"), 18)).ToString();
}
for (int i = 0; i < itemArray.Length; i++)
{
if (valArray[A].Contains(itemArray[i]))
{
string itemStr = itemArray[i];
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
erm1.itemValue = jiexiItemValueLast(itemStr, valArray[A]);//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
}
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "DF55-2")//帝迈血常规DF55-2
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[27] { "WBC", "NEU%", "LYM%", "MON%", "EOS%", "BAS%", "NEU#", "LYM#", "MON#", "EOS#", "BAS#", "*ALY%", "*LIC#", "*LIC%", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW-SD", "PLT", "MPV", "PDW", "PCT", "*ALY#", "RDW-CV" };
//string[] resulteArray = deviceDataStr.Split('\n');
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
if (itemArray[i] == "*LIC#" || itemArray[i] == "*LIC%" || itemArray[i] == "PCT")
itemStr = itemArray[i] + "^99MRC||";
else
itemStr = itemArray[i] + "^LN||";
int index1 = deviceDataStr.Substring(deviceDataStr.IndexOf("OBR|"), 20).IndexOf("||") + 2;
sampleNo1 = jiexisampleNo8(index1, deviceDataStr.Substring(deviceDataStr.IndexOf("OBR|"), 18)).ToString();
//string val1 = jiexiVal(deviceDataStr.IndexOf("PID|"), "PID|", deviceDataStr).ToString();
//sampleNo1 = val1;
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i]; //项目代号
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
string jsonStr12 = JsonConvert.SerializeObject(ermList);
//把血常规的图也传上去
List eipmList = new List();
int[] array1 = strCount("^Base64^", deviceDataStr);
string keyStr = "||||||F";//结束符
List imgBase64StrList = jiexiBase64(array1, keyStr, deviceDataStr);//解析出数据中的图片base64
//int[] array2 = strCount("||||||F||||||", deviceDataStr);
for (int i = 0; i < imgBase64StrList.Count; i++)
{
string base64Str = imgBase64StrList[i];
examImageParaModel EIPM1 = new examImageParaModel();
EIPM1.machineCode = MachineCode;
EIPM1.machineID = MachineID;
EIPM1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
EIPM1.sampleNo = sampleNo1;
EIPM1.img = "data:image/jpeg;base64," + base64Str;
eipmList.Add(EIPM1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (eipmList.Count > 0)
{
baseMsgModel bmm2 = apiOptions.CreateInstance().uploadExamImage(eipmList);//传图像List
//if (bmm2.code == 200)
// dataOutPutShow("图像提交成功:" + jsonStr, null);
//else
// dataOutPutShow("图像提交失败:" + jsonStr, null);
}
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "MA-4210")//华晟源尿常规型号:H-II
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] resulteArray = deviceDataStr.Split('\n');
for (int i = 0; i < resulteArray.Length; i += 17)
{
//这里需要判断一下数据是否超过了 当前数据的长度
ermList.Clear();
if (i + 17 > resulteArray.Length)
break;
string[] spArray = resulteArray[i + 1].Trim().Split(' ');
string sampleNo1 = spArray[0].Replace("No.", "").TrimStart('0');
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm = new examResultMode();
erm.machineCode = MachineCode;
erm.machineID = MachineID;
erm.sampleNo = sampleNo1;
erm.testDate = testDate1;
erm.chanelNo = "GLU";//项目代号
erm.itemValue = resulteArray[i + 4].Substring(4, 6).Trim();//项目结果
erm.itemUnit = "cells/uL";
ermList.Add(erm);
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = "URO";//项目代号
erm1.itemValue = resulteArray[i + 5].Substring(4, 6).Trim();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
examResultMode erm2 = new examResultMode();
erm2.machineCode = MachineCode;
erm2.machineID = MachineID;
erm2.sampleNo = sampleNo1;
erm2.testDate = testDate1;
erm2.chanelNo = "BIL";//项目代号
erm2.itemValue = resulteArray[i + 6].Substring(4, 6).Trim();//项目结果
erm2.itemUnit = "";
ermList.Add(erm2);
examResultMode erm3 = new examResultMode();
erm3.machineCode = MachineCode;
erm3.machineID = MachineID;
erm3.sampleNo = sampleNo1;
erm3.testDate = testDate1;
erm3.chanelNo = "KET";//项目代号
erm3.itemValue = resulteArray[i + 7].Substring(4, 6).Trim();//项目结果
erm3.itemUnit = "";
ermList.Add(erm3);
examResultMode erm4 = new examResultMode();
erm4.machineCode = MachineCode;
erm4.machineID = MachineID;
erm4.sampleNo = sampleNo1;
erm4.testDate = testDate1;
erm4.chanelNo = "SG";//项目代号
erm4.itemValue = resulteArray[i + 8].Substring(3, 16).Trim();//项目结果
erm4.itemUnit = "";
ermList.Add(erm4);
examResultMode erm5 = new examResultMode();
erm5.machineCode = MachineCode;
erm5.machineID = MachineID;
erm5.sampleNo = sampleNo1;
erm5.testDate = testDate1;
erm5.chanelNo = "BLD";//项目代号
erm5.itemValue = resulteArray[i + 9].Substring(4, 6).Trim();//项目结果
erm5.itemUnit = "";
ermList.Add(erm5);
examResultMode erm6 = new examResultMode();
erm6.machineCode = MachineCode;
erm6.machineID = MachineID;
erm6.sampleNo = sampleNo1;
erm6.testDate = testDate1;
erm6.chanelNo = "PH";//项目代号
erm6.itemValue = resulteArray[i + 10].Substring(3, 16).Trim();//项目结果
erm6.itemUnit = "";
ermList.Add(erm6);
examResultMode erm7 = new examResultMode();
erm7.machineCode = MachineCode;
erm7.machineID = MachineID;
erm7.sampleNo = sampleNo1;
erm7.testDate = testDate1;
erm7.chanelNo = "PRO";//项目代号
erm7.itemValue = resulteArray[i + 11].Substring(4, 6).Trim();//项目结果
erm7.itemUnit = "";
ermList.Add(erm7);
examResultMode erm8 = new examResultMode();
erm8.machineCode = MachineCode;
erm8.machineID = MachineID;
erm8.sampleNo = sampleNo1;
erm8.testDate = testDate1;
erm8.chanelNo = "NIT";//项目代号
erm8.itemValue = resulteArray[i + 12].Substring(4, 6).Trim();//项目结果
erm8.itemUnit = "";
ermList.Add(erm8);
examResultMode erm9 = new examResultMode();
erm9.machineCode = MachineCode;
erm9.machineID = MachineID;
erm9.sampleNo = sampleNo1;
erm9.testDate = testDate1;
erm9.chanelNo = "LEU";//项目代号
erm9.itemValue = resulteArray[i + 13].Substring(4, 6).Trim();//项目结果
erm9.itemUnit = "mmol/L";
ermList.Add(erm9);
examResultMode erm10 = new examResultMode();
erm10.machineCode = MachineCode;
erm10.machineID = MachineID;
erm10.sampleNo = sampleNo1;
erm10.testDate = testDate1;
erm10.chanelNo = "VC";//项目代号
erm10.itemValue = resulteArray[i + 14].Substring(3, 6).Trim();//项目结果
erm10.itemUnit = "mmol/L";
ermList.Add(erm10);
examResultMode erm11 = new examResultMode();
erm11.machineCode = MachineCode;
erm11.machineID = MachineID;
erm11.sampleNo = sampleNo1;
erm11.testDate = testDate1;
erm11.chanelNo = "Color";//项目代号
erm11.itemValue = resulteArray[i + 15].Replace("Color:", "").Trim();//项目结果
erm11.itemUnit = "mmol/L";
ermList.Add(erm11);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
}
if (apiOptions.CurrentDevice == "U120")//尿常规U120
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] resulteArray = deviceDataStr.Split('\n');
// File.WriteAllText("BT-200.TXT", deviceDataStr);
for (int i = 0; i < resulteArray.Length; i += 15)
{
//这里需要判断一下数据是否超过了 当前数据的长度
ermList.Clear();
if (i + 15 > resulteArray.Length)
break;
string[] spArray = resulteArray[2].Trim().Split(' ');
string sampleNo1 = spArray[2].Substring(0, 1).TrimStart('0');
// string sampleNo1 = resulteArray[2].Trim().Split(' ')[1]; .Replace("-", "0").TrimStart('0')
//string testDate1 = jiexiDate(resulteArray[i + 1], resulteArray[i + 2]);
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm = new examResultMode();
erm.machineCode = MachineCode;
erm.machineID = MachineID;
erm.sampleNo = sampleNo1;
erm.testDate = testDate1;
erm.chanelNo = "LEU";//项目代号
erm.itemValue = resulteArray[i + 3].Substring(4, 15).Trim();//项目结果//项目结果
erm.itemUnit = "";
ermList.Add(erm);
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = "NIT";//项目代号
erm1.itemValue = resulteArray[i + 4].Substring(4, 11).Trim();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
examResultMode erm2 = new examResultMode();
erm2.machineCode = MachineCode;
erm2.machineID = MachineID;
erm2.sampleNo = sampleNo1;
erm2.testDate = testDate1;
erm2.chanelNo = "URO";//项目代号
erm2.itemValue = resulteArray[i + 5].Substring(4, 13).Trim();//项目结果
erm2.itemUnit = "";
ermList.Add(erm2);
examResultMode erm3 = new examResultMode();
erm3.machineCode = MachineCode;
erm3.machineID = MachineID;
erm3.sampleNo = sampleNo1;
erm3.testDate = testDate1;
erm3.chanelNo = "PRO";//项目代号
erm3.itemValue = resulteArray[i + 6].Substring(5, 15).Trim();//项目结果
erm3.itemUnit = "";
ermList.Add(erm3);
examResultMode erm4 = new examResultMode();
erm4.machineCode = MachineCode;
erm4.machineID = MachineID;
erm4.sampleNo = sampleNo1;
erm4.testDate = testDate1;
erm4.chanelNo = "pH";//项目代号
erm4.itemValue = resulteArray[i + 7].Substring(4, 12).Trim();//项目结果
erm4.itemUnit = "";
ermList.Add(erm4);
examResultMode erm5 = new examResultMode();
erm5.machineCode = MachineCode;
erm5.machineID = MachineID;
erm5.sampleNo = sampleNo1;
erm5.testDate = testDate1;
erm5.chanelNo = "BLO";//项目代号
erm5.itemValue = resulteArray[i + 8].Substring(4, 15).Trim();//项目结果
erm5.itemUnit = "";
ermList.Add(erm5);
examResultMode erm6 = new examResultMode();
erm6.machineCode = MachineCode;
erm6.machineID = MachineID;
erm6.sampleNo = sampleNo1;
erm6.testDate = testDate1;
erm6.chanelNo = "SG";//项目代号
erm6.itemValue = resulteArray[i + 9].Substring(4, 13).Trim();//项目结果
erm6.itemUnit = "";
ermList.Add(erm6);
examResultMode erm10 = new examResultMode();
erm10.machineCode = MachineCode;
erm10.machineID = MachineID;
erm10.sampleNo = sampleNo1;
erm10.testDate = testDate1;
erm10.chanelNo = "KET";//项目代号
erm10.itemValue = resulteArray[i + 10].Substring(4, 15).Trim();//项目结果
erm10.itemUnit = "";
ermList.Add(erm10);
examResultMode erm7 = new examResultMode();
erm7.machineCode = MachineCode;
erm7.machineID = MachineID;
erm7.sampleNo = sampleNo1;
erm7.testDate = testDate1;
erm7.chanelNo = "BIL";//项目代号
erm7.itemValue = resulteArray[i + 11].Substring(4, 13).Trim();//项目结果
erm7.itemUnit = "";
ermList.Add(erm7);
examResultMode erm8 = new examResultMode();
erm8.machineCode = MachineCode;
erm8.machineID = MachineID;
erm8.sampleNo = sampleNo1;
erm8.testDate = testDate1;
erm8.chanelNo = "GLU";//项目代号
erm8.itemValue = resulteArray[i + 12].Substring(4, 14).Trim();//项目结果
erm8.itemUnit = "";
ermList.Add(erm8);
examResultMode erm9 = new examResultMode();
erm9.machineCode = MachineCode;
erm9.machineID = MachineID;
erm9.sampleNo = sampleNo1;
erm9.testDate = testDate1;
erm9.chanelNo = "ASC";//项目代号
erm9.itemValue = resulteArray[i + 13].Substring(4, 12).Trim();//项目结果
erm9.itemUnit = "";
ermList.Add(erm9);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
}
if (apiOptions.CurrentDevice == "BS-330E")//BS-330E 他是一次性发一条样本 但一个样本号有多个项目 挨个发其中的项目 生化
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[10] { "ALT", "AST", "T-Bil", "UA", "UREA", "CREA-S", "TC", "TG", "HDL-C", "LDL-C" };
//string[] resulteArray = deviceDataStr.Split('\n');
//deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string[] valArray = deviceDataStr.Split('');
string sampleNo1 = string.Empty;//样本号
string itemStr = string.Empty;
string itemValue = string.Empty;
for (int i = 0; i < itemArray.Length; i++)
{
for (int j = 0; j < valArray.Length-1; j++)
{
if (itemArray[i] == valArray[j].Substring(valArray[j].IndexOf("OBX|1|NM|")).Split('|')[4])
{
sampleNo1 = valArray[j].Substring(valArray[j].IndexOf("OBR|1||") + "OBR|1||".Length, valArray[j].IndexOf("|Mindray^BS-330E|") - valArray[j].IndexOf("OBR|1||") - "OBR|1||".Length).Trim();
itemStr = valArray[j].Substring(valArray[j].IndexOf("OBX|1|NM|")).Split('|')[4];
itemValue = valArray[j].Substring(valArray[j].IndexOf("OBX|1|NM|")).Split('|')[5];
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemStr;//项目代号
erm1.itemValue = itemValue;
erm1.itemUnit = "";
ermList.Add(erm1);
break;
}
}
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "BC-5120")//BC-5120
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] resulteArray = deviceDataStr.Split('\n');
string sampleNo1 = string.Empty;//样本号
List ermList = new List();
string[] itemArray = new string[] { "WBC", "BAS#", "BAS%", "NEU#", "NEU%", "EOS#", "EOS%", "LYM#", "LYM%", "MON#", "MON%", "RBC", "HGB", "MCV", "MCH", "MCHC", "RDW-CV", "RDW-SD", "HCT", "PLT", "MPV", "PDW", "PCT", "PLCC", "PLCR" };
string[] itemArray_2 = new string[] { "PCT", "PLCC", "PLCR" };
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
if (itemArray_2.Contains(itemArray[i]))
itemStr = itemArray[i] + "^99MRC||";
else
itemStr = itemArray[i] + "^LN||";
string val1 = deviceDataStr.Substring(deviceDataStr.IndexOf("OBR"), 30);
sampleNo1 = val1.Split('|')[3];
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
//项目结果
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();
erm1.itemUnit = "";
ermList.Add(erm1);
}
string jsonStr = JsonConvert.SerializeObject(ermList);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "URIT-8460")//URIT-8460
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] resulteArray = deviceDataStr.Split('\n');
string sampleNo1 = string.Empty;//样本号
List ermList = new List();
string[] itemArray = new string[] { "A/G", "ALT/AST", "GLB", "ALT", "AST", "TP", "ALB", "TB", "UREA", "Cr", "UA", "TG", "CHOL", "HDL_C", "LDL_C" };
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
itemStr = @"|" + itemArray[i] + @"|";
string val1 = deviceDataStr.Substring(deviceDataStr.IndexOf("OBR"), 30);
sampleNo1 = val1.Split('|')[3];
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
string jsonStr = JsonConvert.SerializeObject(ermList);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "BS-460")//生化BS-460
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[18] { "Glu-G", "T-Bil-V", "D-Bil-V", "ALT", "AST", "ALP", "γ-GT", "TG", "LDL-C", "HDL-C", "TC", "CREA-S", "UREA", "ALB_II", "TP_II", "AST/ALT", "IBIL-V", "UA" };//
string[] itemArrayC = new string[18] { "葡萄糖", "总胆红素", "直接胆红素", "丙氨酸氨基转移酶", "天门冬氨酸氨基转移酶", "碱性磷酸酶", "γ-谷氨酰转移酶", "甘油三酯", "低密度脂蛋白胆固醇", "高密度脂蛋白胆固醇", "总胆固醇", "肌酐(肌氨酸氧化酶法)", "尿素", "白蛋白", "总蛋白(双缩脲法)", "AST/ALT", "IBIL-V", "尿酸" };//
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] valArray = deviceDataStr.Split(',');
string[] valArray = deviceDataStr.Split('|');
string sampleNo1 = valArray[54];//样本号
for (int i = 0; i < itemArrayC.Length; i++)
{
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
// MessageBox.Show(deviceDataStr+"\r\n\r\n :"+ggg[5]);
string itemStr = itemArrayC[i] + "|";
int index1 = deviceDataStr.IndexOf(itemStr);
string valueS = jiexiVal(index1, itemStr, deviceDataStr);
double roundedValue = Math.Round(double.Parse(valueS), 2);
erm1.itemValue = roundedValue.ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "BS-460-1")//生化BS-460
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[14] { "Glu-G", "T-Bil-V", "D-Bil-V", "ALT", "AST", "TG", "LDL-C", "HDL-C", "TC", "CREA-S", "UREA", "ALB_II", "AST/ALT", "IBIL-V" };//
string[] itemArrayC = new string[14] { "葡萄糖(葡萄糖氧化酶法)", "总胆红素(钒酸盐氧化法)", "直接胆红素(钒酸盐氧化法)", "丙氨酸氨基转移酶", "天门冬氨酸氨基转移酶", "甘油三酯", "低密度脂蛋白胆固醇", "高密度脂蛋白胆固醇", "总胆固醇", "肌酐(肌氨酸氧化酶法)", "尿素", "白蛋白", "AST/ALT", "IBIL-V" };//
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] valArray = deviceDataStr.Split(',');
string[] valArray = deviceDataStr.Split('|');
string sampleNo1 = valArray[54];//样本号
for (int i = 0; i < itemArrayC.Length; i++)
{
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
// MessageBox.Show(deviceDataStr+"\r\n\r\n :"+ggg[5]);
string itemStr = itemArrayC[i] + "|";
int index1 = deviceDataStr.IndexOf(itemStr);
string valueS = jiexiVal(index1, itemStr, deviceDataStr);
double roundedValue = Math.Round(double.Parse(valueS), 2);
erm1.itemValue = roundedValue.ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "BS-460-2")//生化BS-460
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[16] { "Glu-G", "T-Bil-V", "D-Bil-V", "ALT", "AST", "ALP", "γ-GT", "TG", "LDL-C", "HDL-C", "TC", "CREA-S", "UREA", "AST/ALT", "IBIL-V", "UA" };//
string[] itemArrayC = new string[16] { "葡萄糖", "总胆红素", "直接胆红素", "丙氨酸氨基转移酶", "天门冬氨酸氨基转移酶", "碱性磷酸酶", "γ-谷氨酰转移酶", "甘油三酯", "低密度脂蛋白胆固醇", "高密度脂蛋白胆固醇", "总胆固醇", "肌酐", "尿素", "AST/ALT", "IBIL-V", "尿酸" };//
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
//string[] valArray = deviceDataStr.Split(',');
string[] valArray = deviceDataStr.Split('|');
string sampleNo1 = valArray[54];//样本号
for (int i = 0; i < itemArrayC.Length; i++)
{
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i];//项目代号
// MessageBox.Show(deviceDataStr+"\r\n\r\n :"+ggg[5]);
string itemStr = itemArrayC[i] + "|";
int index1 = deviceDataStr.IndexOf(itemStr);
string valueS = jiexiVal(index1, itemStr, deviceDataStr);
double roundedValue = Math.Round(double.Parse(valueS), 2);
erm1.itemValue = roundedValue.ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "BA600-1")//尿常规 GeniusBA600
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] resulteArray = deviceDataStr.Split('\n');
// File.WriteAllText("BT-200.TXT", deviceDataStr);
for (int i = 0; i < resulteArray.Length; i += 16)
{
//这里需要判断一下数据是否超过了 当前数据的长度
ermList.Clear();
if (i + 16 > resulteArray.Length)
break;
//string[] spArray = resulteArray[i + 1].Trim().Split(' ');
string sampleNo1 = resulteArray[2].Trim().Replace("0", " ").Trim();
//string testDate1 = jiexiDate(resulteArray[i + 1], resulteArray[i + 2]);
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm = new examResultMode();
erm.machineCode = MachineCode;
erm.machineID = MachineID;
erm.sampleNo = sampleNo1;
erm.testDate = testDate1;
erm.chanelNo = "VC";//项目代号
erm.itemValue = resulteArray[i + 4].Replace("VC", "").Trim().Split(' ')[0].Trim();//项目结果
erm.itemUnit = "";
ermList.Add(erm);
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = "URO";//项目代号
erm1.itemValue = resulteArray[i + 5].Replace("URO", "").Trim().Split(' ')[0].Trim();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
examResultMode erm2 = new examResultMode();
erm2.machineCode = MachineCode;
erm2.machineID = MachineID;
erm2.sampleNo = sampleNo1;
erm2.testDate = testDate1;
erm2.chanelNo = "BIL";//项目代号
erm2.itemValue = resulteArray[i + 6].Replace("BIL", "").Trim().Trim().Split(' ')[0].Trim();//项目结果
erm2.itemUnit = "";
ermList.Add(erm2);
examResultMode erm3 = new examResultMode();
erm3.machineCode = MachineCode;
erm3.machineID = MachineID;
erm3.sampleNo = sampleNo1;
erm3.testDate = testDate1;
erm3.chanelNo = "KET";//项目代号
erm3.itemValue = resulteArray[i + 7].Replace("KET", "").Trim().Split(' ')[0].Trim();//项目结果
erm3.itemUnit = "";
ermList.Add(erm3);
examResultMode erm4 = new examResultMode();
erm4.machineCode = MachineCode;
erm4.machineID = MachineID;
erm4.sampleNo = sampleNo1;
erm4.testDate = testDate1;
erm4.chanelNo = "BLD";//项目代号
erm4.itemValue = resulteArray[i + 8].Replace("BLD", "").Trim().Split(' ')[0].Trim();//项目结果
erm4.itemUnit = "Cell/uL";
ermList.Add(erm4);
examResultMode erm5 = new examResultMode();
erm5.machineCode = MachineCode;
erm5.machineID = MachineID;
erm5.sampleNo = sampleNo1;
erm5.testDate = testDate1;
erm5.chanelNo = "PRO";//项目代号
erm5.itemValue = resulteArray[i + 9].Replace("PRO", "").Trim().Split(' ')[0].Trim();//项目结果
erm5.itemUnit = "";
ermList.Add(erm5);
examResultMode erm6 = new examResultMode();
erm6.machineCode = MachineCode;
erm6.machineID = MachineID;
erm6.sampleNo = sampleNo1;
erm6.testDate = testDate1;
erm6.chanelNo = "NIT";//项目代号
erm6.itemValue = resulteArray[i + 10].Replace("NIT", "").Trim().Split(' ')[0].Trim();//项目结果
erm6.itemUnit = "";
ermList.Add(erm6);
examResultMode erm10 = new examResultMode();
erm10.machineCode = MachineCode;
erm10.machineID = MachineID;
erm10.sampleNo = sampleNo1;
erm10.testDate = testDate1;
erm10.chanelNo = "LEU";//项目代号
erm10.itemValue = resulteArray[i + 11].Replace("LEU", "").Trim().Split(' ')[0].Trim();//项目结果
erm10.itemUnit = "";
ermList.Add(erm10);
examResultMode erm7 = new examResultMode();
erm7.machineCode = MachineCode;
erm7.machineID = MachineID;
erm7.sampleNo = sampleNo1;
erm7.testDate = testDate1;
erm7.chanelNo = "GLU";//项目代号
erm7.itemValue = resulteArray[i + 12].Replace("GLU", "").Trim().Split(' ')[0].Trim();//项目结果
erm7.itemUnit = "";
ermList.Add(erm7);
examResultMode erm8 = new examResultMode();
erm8.machineCode = MachineCode;
erm8.machineID = MachineID;
erm8.sampleNo = sampleNo1;
erm8.testDate = testDate1;
erm8.chanelNo = "SG";//项目代号
erm8.itemValue = resulteArray[i + 13].Replace("SG", "").Trim().Split(' ')[0].Trim();//项目结果
erm8.itemUnit = "";
ermList.Add(erm8);
examResultMode erm9 = new examResultMode();
erm9.machineCode = MachineCode;
erm9.machineID = MachineID;
erm9.sampleNo = sampleNo1;
erm9.testDate = testDate1;
erm9.chanelNo = "PH";//项目代号
erm9.itemValue = resulteArray[i + 14].Replace("PH", "").Trim().Split(' ')[0].Trim();//项目结果
erm9.itemUnit = "";
ermList.Add(erm9);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
}
if (apiOptions.CurrentDevice == "Z3 CRP")//Z3 血常规
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] itemArray = new string[21] { "WBC", "LYM#", "MID#", "GRAN#", "LYM%", "MID%", "GRAN%", "RBC", "HGB", "HCT", "MCV", "MCH", "MCHC", "RDW-CV", "RDW-SD", "PLT", "MPV", "PDW", "PCT", "P-LCC", "P-LCR" };
//string[] resulteArray = deviceDataStr.Split('\n');
deviceDataStr = deviceDataStr.Replace("\r", "").Replace("\n", "");
string sampleNo1 = string.Empty;//样本号
for (int i = 0; i < itemArray.Length; i++)
{
string itemStr = string.Empty;
if (itemArray[i] == "*LIC#" || itemArray[i] == "*LIC%" || itemArray[i] == "PCT")
itemStr = itemArray[i] + "^99MRC||";
else
itemStr = itemArray[i] + "^LN||";
string val1 = jiexiVal(deviceDataStr.IndexOf("OBR|1||"), "OBR|1||", deviceDataStr).ToString();
sampleNo1 = val1;
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = itemArray[i]; //项目代号
erm1.itemValue = jiexiVal(deviceDataStr.IndexOf(itemStr), itemStr, deviceDataStr).ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
}
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
if (apiOptions.CurrentDevice == "URIT-500B")//URIT-500B
{
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
List ermList = new List();
string[] resulteArray = deviceDataStr.Split('\n');
// File.WriteAllText("BT-200.TXT", deviceDataStr);
for (int i = 0; i < resulteArray.Length; i += 15)
{
//这里需要判断一下数据是否超过了当前数据的长度
ermList.Clear();
if (i + 15 > resulteArray.Length)
break;
string[] spArray = resulteArray[1].Trim().Split(' ');
string sampleNo1 = spArray[0].Replace("NO.","").Replace("0", " ").Trim();
// string sampleNo1 = spArray.Length > 2 ? spArray[2].Substring(0, 1).TrimStart('0') : "0";
// string sampleNo1 = resulteArray[2].Trim().Split(' ')[1]; .Replace("-", "0").TrimStart('0')
//string testDate1 = jiexiDate(resulteArray[i + 1], resulteArray[i + 2]);
string testDate1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
examResultMode erm = new examResultMode();
erm.machineCode = MachineCode;
erm.machineID = MachineID;
erm.sampleNo = sampleNo1;
erm.testDate = testDate1;
erm.chanelNo = "WBC";//项目代号
erm.itemValue = resulteArray[i + 4].Replace("WBC", "").Replace("CELL/uL", "").Trim().Split(' ')[0].Trim(); //项目结果
erm.itemUnit = "";
ermList.Add(erm);
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = sampleNo1;
erm1.testDate = testDate1;
erm1.chanelNo = "KET";//项目代号
erm1.itemValue = resulteArray[i + 5].Replace("KET", "").Replace("mmol/L", "").Trim().Split(' ')[0].Trim();
erm1.itemUnit = "";
ermList.Add(erm1);
examResultMode erm2 = new examResultMode();
erm2.machineCode = MachineCode;
erm2.machineID = MachineID;
erm2.sampleNo = sampleNo1;
erm2.testDate = testDate1;
erm2.chanelNo = "NIT";//项目代号
erm2.itemValue = resulteArray[i + 6].Replace("NIT", "").Replace("Neg", "").Trim().Split(' ')[0].Trim();
erm2.itemUnit = "";
ermList.Add(erm2);
examResultMode erm3 = new examResultMode();
erm3.machineCode = MachineCode;
erm3.machineID = MachineID;
erm3.sampleNo = sampleNo1;
erm3.testDate = testDate1;
erm3.chanelNo = "URO";//项目代号
erm3.itemValue = resulteArray[i + 7].Replace("*URO", "").Replace("umol/L", "").Trim().Split(' ')[0].Trim();
erm3.itemUnit = "";
ermList.Add(erm3);
examResultMode erm4 = new examResultMode();
erm4.machineCode = MachineCode;
erm4.machineID = MachineID;
erm4.sampleNo = sampleNo1;
erm4.testDate = testDate1;
erm4.chanelNo = "BIL";//项目代号
erm4.itemValue = resulteArray[i + 8].Replace("BIL", "").Replace("umol/L", "").Trim().Split(' ')[0].Trim();
erm4.itemUnit = "";
ermList.Add(erm4);
examResultMode erm5 = new examResultMode();
erm5.machineCode = MachineCode;
erm5.machineID = MachineID;
erm5.sampleNo = sampleNo1;
erm5.testDate = testDate1;
erm5.chanelNo = "PRO";//项目代号
erm5.itemValue = resulteArray[i + 9].Replace("PRO", "").Replace("g/L", "").Trim().Split(' ')[0].Trim();
erm5.itemUnit = "";
ermList.Add(erm5);
examResultMode erm6 = new examResultMode();
erm6.machineCode = MachineCode;
erm6.machineID = MachineID;
erm6.sampleNo = sampleNo1;
erm6.testDate = testDate1;
erm6.chanelNo = "GLU";//项目代号
erm6.itemValue = resulteArray[i + 10].Replace("GLU", "").Replace("mmol/L", "").Trim().Split(' ')[0].Trim();
erm6.itemUnit = "";
ermList.Add(erm6);
examResultMode erm10 = new examResultMode();
erm10.machineCode = MachineCode;
erm10.machineID = MachineID;
erm10.sampleNo = sampleNo1;
erm10.testDate = testDate1;
erm10.chanelNo = "SG";//项目代号
erm10.itemValue = resulteArray[i + 11].Replace("SG", "").Trim().Split(' ')[0].Trim();
erm10.itemUnit = "";
ermList.Add(erm10);
examResultMode erm7 = new examResultMode();
erm7.machineCode = MachineCode;
erm7.machineID = MachineID;
erm7.sampleNo = sampleNo1;
erm7.testDate = testDate1;
erm7.chanelNo = "BLD";//项目代号
erm7.itemValue = resulteArray[i + 12].Replace("BLD", "").Replace("CELL/uL", "").Trim().Split(' ')[0].Trim();
erm7.itemUnit = "";
ermList.Add(erm7);
examResultMode erm8 = new examResultMode();
erm8.machineCode = MachineCode;
erm8.machineID = MachineID;
erm8.sampleNo = sampleNo1;
erm8.testDate = testDate1;
erm8.chanelNo = "pH";//项目代号
erm8.itemValue = resulteArray[i + 13].Replace("pH", "").Trim().Split(' ')[0].Trim();
erm8.itemUnit = "";
ermList.Add(erm8);
examResultMode erm9 = new examResultMode();
erm9.machineCode = MachineCode;
erm9.machineID = MachineID;
erm9.sampleNo = sampleNo1;
erm9.testDate = testDate1;
erm9.chanelNo = "Vc";//项目代号
erm9.itemValue = resulteArray[i + 14].Replace("Vc", "").Replace("mmol/L", "").Trim().Split(' ')[0].Trim();
erm9.itemUnit = "";
ermList.Add(erm9);
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
dataOutPutShow("数据提交成功:" + jsonStr, null);
else
dataOutPutShow("数据提交失败:" + jsonStr, null);
}
}
return rerultJson;
}
///
/// 从结果字符串中截取 结果
///
///
///
///
string jiexiItemValue(string itemStr, string deviceDataStr)
{
string ItemValueStr = "";
try
{
string Str1 = deviceDataStr.Substring(deviceDataStr.IndexOf(itemStr) + itemStr.Length, 30);
int firstIndex = Str1.IndexOf('|');
ItemValueStr = Str1.Substring(0, firstIndex);
}
catch (Exception ex) { MessageBox.Show(itemStr + "," + deviceDataStr); }
return ItemValueStr;
}
///
/// 从结果字符串中截取 结果
///
///
///
///
string jiexiItemValue11(string itemStr, string deviceDataStr)
{
string ItemValueStr = "";
try
{
string Str1 = deviceDataStr.Substring(deviceDataStr.IndexOf(itemStr) + itemStr.Length, 6);
int firstIndex = Str1.IndexOf('|');
ItemValueStr = Str1.Substring(0, firstIndex);
}
catch (Exception ex) { /*MessageBox.Show(itemStr + "," + deviceDataStr);*/ }
return ItemValueStr;
}
///
/// 从结果字符串中截取 结果
///
///
///
///
string jiexiItemValueLast(string itemStr, string deviceDataStr)
{
string ItemValueStr = "";
string Str1 = deviceDataStr.Substring(deviceDataStr.LastIndexOf(itemStr) + itemStr.Length + 1, 10);
int firstIndex = Str1.IndexOf('|');
ItemValueStr = Str1.Substring(0, firstIndex);
return ItemValueStr;
}
///
/// 从字符串中找到 样本编号
///
///
///
///
int jiexisampleNo(int index1, string dataStr)
{
int val1 = -1;
for (int i = 1; i < 100; i++)
{
try
{
string str1 = dataStr.Substring(index1 - i, i);
val1 = int.Parse(str1);
}
catch { break; }
}
return val1;
}
///
/// 从字符串中找到 样本编号
///
///
///
///
int jiexisampleNo8(int index1, string dataStr)
{
int val1 = -1;
for (int i = 1; i < 100; i++)
{
try
{
string str1 = dataStr.Substring(index1, i);
val1 = int.Parse(str1);
}
catch { break; }
}
return val1;
}
///
/// 从字符串中 解析出数字
///
///
///
///
string jiexiVal(int index1, string keyStr, string dataStr)
{
string val1 = "";
for (int i = 1; i < 100; i++)
{
try
{
string str1 = dataStr.Substring(index1 + keyStr.Length, i);
double valx = double.Parse(str1);
val1 = str1;
}
catch { break; }
}
return val1;
}
///
/// 从字符串中 解析出 jiexiBase64 图像
///
///
///
///
List jiexiBase64(int[] array1, string keyStr, string dataStr)
{
List imageBase64List = new List();
for (int i = 0; i < array1.Length; i++)
{
for (int b = array1[i]; b < dataStr.Length; b++)
{
string str1 = dataStr.Substring(b, keyStr.Length);
if (str1 == keyStr)
{
string ImgBase64Str = dataStr.Substring(array1[i] + 8, b - array1[i] - 8);
imageBase64List.Add(ImgBase64Str);
break;
}
}
}
return imageBase64List;
}
static string jiexiDate(string dateStr, string TimeStr)
{
string[] spArray = dateStr.Trim().Split(' ');
string[] varArray = spArray[2].Trim().Trim('\r').Split('-');
return varArray[2] + "-" + varArray[0] + "-" + varArray[1] + " " + TimeStr.Trim().Trim('\r');
}
Socket listener;
//TcpListener listener = null;
///
/// 开启数据接收
///
public void startDataReceive()
{
if (apiOptions.CurrentDevice == "HSYH-II")//华晟源尿常规型号:H-II
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BT-200")//盛世东唐BT-200尿常规
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "URIT-5181")//优利特血常规5181
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "URIT-1500")//优利特尿常规URIT-1500
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "DF55")//帝迈血常规DF55
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "TCPTEST")//TCP接收测试数据
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "CS-480")//迪瑞全自动生化分析仪 CS-480
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "SL300C")//Senlo生化SL300C
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "BK600")//Senlo生化SL300C
{
_AccessResult.Change(10000, 10000);//开始循环从access数据库中读取数据,10秒频率
}
if (apiOptions.CurrentDevice == "BA600")//尿常规 GeniusBA600
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BA600-1")//尿常规 GeniusBA600
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BA600MY")//煤窑中心卫生院的尿常规 GeniusBA600
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "MC-600")//血常规MAC-600
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "CS-1300B")//迪瑞全自动生化分析仪 CS-1300B
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "URIT-5180")//优利特血常规5180
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "BS-430")//生化BS-430
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
// IPAddress ipAddress = IPAddress.Parse(tcp_ip);
IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
//listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "DF55-1")//帝迈血常规DF55
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "URIT-1600")//优利特1600
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "HTSH-4000")//HTSH-4000 全自动生化分析仪
{
_AccessResult.Change(10000, 10000);//开始循环从access数据库中读取数据,10秒频率
}
if (apiOptions.CurrentDevice == "DH56")//帝迈血常规DH56
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "URIT-5380")//优利特血常规URIT-5380
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "U500")//尿常规U500
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BC-5130")//BC-5130 这个设备是需要主动TCP连接 血常规仪器
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
//// 创建一个监听Socket
//if (listener == null)
//{
// listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
// listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
// listener.Listen(10000);
//}
clientSocket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(ipAddress, int.Parse(tcp_port));
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "SD1")//斯玛特SD1
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "DF55-2")//帝迈血常规DF55
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "U120")//尿常规U120
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BS-330E")//BS-330E 生化
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "BC-5120")//BC-5120
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
//// 创建一个监听Socket
clientSocket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(ipAddress, int.Parse(tcp_port));
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "URIT-8460")//URIT-8460
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
//// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "hhh5")//BC-5130
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "MA-4210")//MA-4210
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BS-460")//迈瑞生化BS-430
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
// IPAddress ipAddress = IPAddress.Parse(tcp_ip);
IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
//listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "BS-460-1")//迈瑞生化BS-460
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
// IPAddress ipAddress = IPAddress.Parse(tcp_ip);
IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
//listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "BS-460-2")//迈瑞生化BS-460
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
// IPAddress ipAddress = IPAddress.Parse(tcp_ip);
IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
//listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "Z3 CRP")//血常规 Z3
{
// 设置IP地址和端口号
string tcp_ip = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
string tcp_port = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[4];
IPAddress ipAddress = IPAddress.Parse(tcp_ip);
// IPAddress ipAddress = IPAddress.Any;
// 创建一个监听Socket
if (listener == null)
{
listener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(ipAddress, int.Parse(tcp_port)));
listener.Listen(10000);
}
_tcpResult.Change(0, 10);//开始tcp数据接收,10毫秒频率
}
if (apiOptions.CurrentDevice == "URIT-500B")//URIT-500B
{
SerialPortOption.CreateInstance().IniserialPortOption();//初始化串口
SerialPortOption.CreateInstance().dataOutPutShow += new EventHandler(onReData);
SerialPortOption.CreateInstance().StartDataReadThread();//开启数据接收
}
}
///
/// 将接收到的数据进行处理并显示在软件界面上
///
///
///
void onReData(object o, EventArgs e)
{
if (o.ToString().Length > 2)
{
tempData += o.ToString();//把串口数据积累起来
//MessageBox.Show(o.ToString().Length.ToString());
dataOutPutShow(o, null);//把数据显示到屏幕上
}
if (apiOptions.CurrentDevice == "HSYH-II")//华晟源尿常规型号:H-II
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "BT-200")//盛世东唐BT-200尿常规
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "URIT-5181")//优利特血常规5181
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "DF55")//帝迈血常规DF55
{
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "TCPTEST")//tcp数据接收测试
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "CS-480")
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "SL300C")//Senlo生化SL300C
_tResult.Change(10000, 10000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "BA600")//尿常规 GeniusBA600
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "BA600-1")//尿常规 GeniusBA600
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "MC-600")//血常规MAC-600
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "CS-1300B")//迪瑞全自动生化分析仪 CS-1300B
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "BA600MY")//煤窑中心卫生院的尿常规 GeniusBA600
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "URIT-1500")//优利特尿常规URIT-1500
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "URIT-5180")//优利特血常规5180
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "BS-430")//生化BS-430
{
//File.WriteAllText("deviceDataLog.txt", deviceDataStr, Encoding.GetEncoding("GB18030"));
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
// _tResult.Change(10000, 10000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "DF55-1")//帝迈血常规DF55
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
//_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "URIT-1600")//优利特1600
{
if (tempData.Contains("OBX|12|ST|"))//OBX|12|ST| 为结束符 说明字符串完整了
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
//_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "DH56")//帝迈血常规DH56
{
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "URIT-5380")//优利特血常规URIT-5380
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "U500")//尿常规U500
{
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "BC-5130")//BC-5130
{
// _tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (tempData.Contains("OBX|30|") || tempData.Contains("OBX|29|"))//OBX|12|ST| 为结束符 说明字符串完整了
{
// MessageBox.Show(tempData);
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
}
if (apiOptions.CurrentDevice == "SD1")//斯玛特SD1
{
if (tempData.Contains("OBX|22|"))//OBX|22| 为结束符 说明字符串完整了
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
//_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "DF55-2")//帝迈血常规DF55
{
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "hhh5")//BC-5130
{
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "MA-4210")//MA-4210
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
if (apiOptions.CurrentDevice == "U120")//尿常规U120
{
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "BS-330E")//BS-330E
{
if (tempData.Split('').Length>=12&& (tempData.Contains("LDL-C")&& Regex.Matches(tempData, "LDL-C").Count>1))
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
}
if (apiOptions.CurrentDevice == "BC-5120")//BC-5120
{
if (tempData.Contains(@"OBR|1||Background|"))
{
tempData = string.Empty;
}
else
{
string tempData_temp = tempData;
tempData = string.Empty;
deviceAnalysisOption(tempData_temp);
}
}
if (apiOptions.CurrentDevice == "URIT-8460")//URIT-8460
{
string tempData_temp = tempData;
tempData = string.Empty;
if (!string.IsNullOrWhiteSpace(tempData_temp))
deviceAnalysisOption(tempData_temp);
}
if (apiOptions.CurrentDevice == "BS-460")//生化BS-460
{
//File.WriteAllText("deviceDataLog.txt", deviceDataStr, Encoding.GetEncoding("GB18030"));
if (tempData.Contains("OBX|17|"))//OBX|22| 为结束符 说明字符串完整了 OBX|17|
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
// _tResult.Change(10000, 10000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "BS-460-1")//生化BS-460
{
//File.WriteAllText("deviceDataLog.txt", deviceDataStr, Encoding.GetEncoding("GB18030"));
//if (tempData.Contains("OBX|14|"))//OBX|22| 为结束符 说明字符串完整了
//{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
// }
// _tResult.Change(10000, 10000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "BS-460-2")//生化BS-460
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
if (apiOptions.CurrentDevice == "Z3 CRP")//血常规Z3
{
if (tempData.Contains("OBX|26|"))//OBX|25| 为结束符 说明字符串完整了
{
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
//_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
if (apiOptions.CurrentDevice == "URIT-500B")//优利特尿常规URIT-500B
_tResult.Change(5000, 5000);// 数据处理:延迟5秒开始 5秒计时
}
///
/// 定时器 定时来处理接收到的累计临时数据
///
void TResultTick()
{
_tResult.Change(-1, 5000);//暂停计时
deviceAnalysisOption(tempData);
tempData = string.Empty;//执行完以后 将临时积累数据清空 以便接收下一个样本数据
}
Socket clientSocket;
int msgindex = 1;
///
/// 定时器 定时来处理TCP接收到的累计临时数据
///
void tcpResultTick()
{
byte[] data = new byte[40048];
//如果设备是BC-5130这类的,则表示这个设备在启动时就已经主动连上了。BC-5130设备,这里就无需初始化连接直接跳过
List ConnectDevices = new List(new string[] { "BC-5130", "BC-5120" });
if (!ConnectDevices.Contains(apiOptions.CurrentDevice))
{
if (clientSocket == null)
clientSocket = listener.Accept(); //一旦接受连接,创建一个客户端
}
int recv = clientSocket.Receive(data);
if (recv > 0)
{
byte[] data1 = new byte[recv];
for (int i = 0; i < recv; i++)
data1[i] = data[i];
string encodingStr = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[5];
string stringData = Encoding.GetEncoding(encodingStr).GetString(data1);
if (apiOptions.CurrentDevice == "SL300C")//Senlo生化SL300C 接收一条数据就需要应答一次
{
string[] msgArray = stringData.Split('\n');
for (int i = 0; i < msgArray.Length; i++)
{
if (msgArray[i].Contains("MSH|") && msgArray[i].Contains("||UNICODE||"))
{
string msgId = msgArray[i].Substring(msgArray[i].IndexOf("R01|") + 4, msgArray[i].IndexOf("|P|") - msgArray[i].IndexOf("R01|") - 4);
string dateTimeNowStr = DateTime.Now.ToString("yyyyMMddHHmmss");
string responseMsg = "MSH|^~\\&|1|1|11|1|" + dateTimeNowStr + "||ACK^R01|" + msgId + "|P|2.3.1||||0||UNICODE|||MSA|AA|" + msgId + "||||0|";
byte[] sendBytes = Encoding.Unicode.GetBytes(responseMsg);
clientSocket.Send(sendBytes);
onReData("应答消息:" + responseMsg, null);//数据处理 并将数据显示在软件界面上
}
}
}
onReData(stringData, null);//数据处理 并将数据显示在软件界面上
}
}
void accessResultTick()
{
if (apiOptions.CurrentDevice == "BK600")
{
_AccessResult.Change(-1, 10000);//开始循环从access数据库中读取数据,10秒频率
if (!File.Exists("uploadedRecord.txt"))
File.Create("uploadedRecord.txt");
string accessDbPath = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
if (!accessDbPath.Contains(".mdb"))
accessDbPath = DateTime.Now.ToString("yyyy-MM-dd") + ".mdb";
//string sql = "select a.sampleProgramID,b.SampleNo,a.ResultValue as ItemValue,a.EName as ItemCode from sampleProgram a inner join sampleInfo b on a.SampleInfoID=b.SampleInfoID where a.stateS is NULL ";
string sql = "select a.sampleProgramID,b.SampleNo,a.ResultValue as ItemValue,a.EName as ItemCode from sampleProgram a inner join sampleInfo b on a.SampleInfoID=b.SampleInfoID";
DataTable dt_2 = new DataTable();
try
{
dt_2 = accessOptions.CreateInstance(accessDbPath).ExcuteSql(sql);
}
catch { dt_2 = null; }
if (dt_2 == null)
return;
List ermList = new List();
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
string uploadedRecordStr = File.ReadAllText("uploadedRecord.txt");
for (int i = 0; i < dt_2.Rows.Count; i++)
{
if (!uploadedRecordStr.Contains(dt_2.Rows[i]["sampleProgramID"].ToString()))
{
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = dt_2.Rows[i]["SampleNo"].ToString();
erm1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
erm1.chanelNo = dt_2.Rows[i]["ItemCode"].ToString();//项目代号
erm1.itemValue = dt_2.Rows[i]["ItemValue"].ToString();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
uploadedRecordStr += (dt_2.Rows[i]["sampleProgramID"].ToString() + ",");
}
}
if (ermList.Count > 0)
{
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
{
//for (int i = 0; i < dt_2.Rows.Count; i++)
//{
// string sql1 = "update sampleProgram set stateS=1 where sampleProgramID='" + dt_2.Rows[i]["sampleProgramID"].ToString() + "'";
// bool flag1 = accessOptions.CreateInstance(accessDbPath).SqlUpdate(sql1);
//}
File.WriteAllText("uploadedRecord.txt", uploadedRecordStr);//记录写入本地
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
}
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
_AccessResult.Change(10000, 10000);//开始循环从access数据库中读取数据,10秒频率
}
if (apiOptions.CurrentDevice == "HTSH-4000")
{
_AccessResult.Change(-1, 10000);//开始循环从access数据库中读取数据,10秒频率
if (!File.Exists("uploadedRecord.txt"))
File.Create("uploadedRecord.txt");
string accessDbPath = ConfigurationManager.AppSettings[apiOptions.CurrentDevice].Split(',')[3];
if (!accessDbPath.ToLower().Contains(".mdb"))
accessDbPath = DateTime.Now.ToString("yyyy-MM-dd") + ".mdb";
string CHECKDATE = DateTime.Now.ToString("yyyy-MM-dd");
// string CHECKDATE = DateTime.Now.ToString("2024-04-01");
//string sql = "SELECT ITEM as ItemCode,cint(Right(str(id), 3)) as SampleNO, `RESULT` as ItemValue FROM `CHECK_RESULT202404` where mid(id,1,4) +'-' + mid(id,5,2) + '-' + mid(id,7,2)='"+ CHECKDATE + "'";
string tableName = "CHECK_RESULT" + DateTime.Now.ToString("yyyyMM");
//string sql = "SELECT ITEM as ItemCode,id,cint(Right(str(id), 3)) as SampleNO, `RESULT` as ItemValue FROM "+ tableName + " where mid(id,1,4) +'-' + mid(id,5,2) + '-' + mid(id,7,2)='"+ CHECKDATE + "'";
string sql = "SELECT ITEM as ItemCode,id,cint(Right(str(id), 3)) as SampleNO, `RESULT` as ItemValue FROM " + tableName + "";
DataTable dt_2 = accessOptions.CreateInstance(accessDbPath).ExcuteSql(sql);
List ermList = new List();
string MachineCode = apiOptions.MachineCode;
string MachineID = apiOptions.MachineID;
string uploadedRecordStr = File.ReadAllText("uploadedRecord.txt");
for (int i = 0; i < dt_2.Rows.Count; i++)
{
string uploadedRecordId = dt_2.Rows[i]["id"].ToString().Trim() + dt_2.Rows[i]["ItemCode"].ToString().Trim();
if (!uploadedRecordStr.Contains(uploadedRecordId))
{
examResultMode erm1 = new examResultMode();
erm1.machineCode = MachineCode;
erm1.machineID = MachineID;
erm1.sampleNo = dt_2.Rows[i]["SampleNo"].ToString().Trim();
erm1.testDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
erm1.chanelNo = dt_2.Rows[i]["ItemCode"].ToString().Trim();//项目代号
erm1.itemValue = dt_2.Rows[i]["ItemValue"].ToString().Trim();//项目结果
erm1.itemUnit = "";
ermList.Add(erm1);
uploadedRecordStr += (uploadedRecordId + ",");
}
}
if (ermList.Count > 0)
{
//将结果提交到LIS系统
baseMsgModel bmm1 = apiOptions.CreateInstance().upLoadExamResult(ermList);
string jsonStr = JsonConvert.SerializeObject(ermList);
if (bmm1.code == 200)
{
//for (int i = 0; i < dt_2.Rows.Count; i++)
//{
// string sql1 = "update sampleProgram set stateS=1 where sampleProgramID='" + dt_2.Rows[i]["sampleProgramID"].ToString() + "'";
// bool flag1 = accessOptions.CreateInstance(accessDbPath).SqlUpdate(sql1);
//}
File.WriteAllText("uploadedRecord.txt", uploadedRecordStr);//记录写入本地
dataOutPutShow("数据和图像提交成功:" + jsonStr, null);
}
else
dataOutPutShow("数据和图像提交失败:" + jsonStr, null);
}
_AccessResult.Change(10000, 10000);//开始循环从access数据库中读取数据,10秒频率
}
}
///
/// 停止数据接收
///
public void stopDataReceive()
{
if (apiOptions.CurrentDevice == "HSYH-II")//华晟源尿常规型号:H-II
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BT-200")//盛世东唐BT-200尿常规
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "URIT-5181")//优利特血常规 5181
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "URIT-1500")//优利特尿常规URIT-1500
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "DF55")//帝迈血常规DF55
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "TCPTEST")//tcp数据接收测试
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "CS-480")
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "SL300C")//Senlo生化SL300C
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "BA600")//尿常规 GeniusBA600
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BA600-1")//尿常规 GeniusBA600
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BA600MY")//煤窑中心卫生院的尿常规 GeniusBA600
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "MC-600")//血常规MAC-600
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "CS-1300B")//迪瑞全自动生化分析仪 CS-1300B
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "URIT-5180")//优利特血常规5180
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "BS-430")//生化BS-430
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "DF55-1")//帝迈血常规DF55
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "URIT-1600")//优利特1600
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BK600")//
{
_AccessResult.Change(-1, 10000);//停止从access数据库中读取数据,10秒频率
}
if (apiOptions.CurrentDevice == "HTSH-4000")//HTSH-4000 全自动生化分析仪
{
_AccessResult.Change(-1, 10000);//停止从access数据库中读取数据,10秒频率
}
if (apiOptions.CurrentDevice == "DH56")//帝迈血常规DH56
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "URIT-5380")//优利特血常规 URIT-5380
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "U500")//尿常规U500
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "BC-5130")//BC-5130
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "SD1")//斯玛特
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "DF55-2")//帝迈血常规DF55
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "hhh5")//BC-5130
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "MA-4210")//MA-4210
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
if (apiOptions.CurrentDevice == "U120")//尿常规U120
{
SerialPortOption.CreateInstance().StopDataReadThread();//停止数据接收
}
if (apiOptions.CurrentDevice == "BS-330E")//BS-330E
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "BC-5120")//BC-5120
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "URIT-8460")//URIT-8460
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "BS-460")//生化BS-460
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "BS-460-1")//生化BS-460
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "BS-460-2")//生化BS-460
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "Z3 CRP")//帝迈血常规DH56
{
_tcpResult.Change(-1, 10);//停止tcp数据接收
clientSocket.Close();
}
if (apiOptions.CurrentDevice == "URIT-500B")//优利特血常规 URIT-500B
{
SerialPortOption.CreateInstance().StopDataReadThread();//开启数据接收
}
}
/////
///// 开启tcp数据接收
/////
//public void tcpDataReceive()
//{
// while (true)
// {
// byte[] data = new byte[1024];//对data清零
// Socket clientSocket = listener.Accept(); //一旦接受连接,创建一个客户端
// int recv = clientSocket.Receive(data);
// if (recv == 0) //如果收到的数据长度小于0,则退出
// continue;
// string stringData = Encoding.Unicode.GetString(data);
// onReData(stringData, null);//将数据显示在软件界面上
// }
//}
}
}