999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C#調用WebService實現區域衛生平臺數據接口上傳

2018-01-15 10:08:08劉德軍
科學與財富 2018年36期

劉德軍

摘 要: Webservice,又名Web服務,它是一種Web應用程序,是自包含、自描述、模塊化的應用,可以在網絡中被描述、發布、查找以及通過Web來調用,它是基于網絡的、分布式的模塊化組件,它執行特定的任務,遵守具體的技術規范,這些規范使得WebService能與其他兼容的組件進行互操作。

Webservice具有平臺無關性,編程語言無關性等特性。它可以被.net,java,delphi,powerbuilder,vc,c++,jbuilder等開發工具或語言所調用。本文通過C#調用WebService成功實現區域衛生平臺數據接口上傳。

關鍵詞: WebService;區域衛生平臺;接口;上傳

前提條件

1、接口文檔:本例中使用的是根據《江蘇省健康信息平臺共享數據集(醫療+公共衛生部分)2018版V2.02》修訂的接口文檔。

2、網絡連通:要求醫療單位保證數據上傳程序所在機器與數據中心機房網絡的暢通。

需求

要求接口完成如下需求:1、每日產生的數據上傳到區域衛生平臺;2、自動定時執行;3、記錄傳送入參和返回結果到日志文件中。

接口文件內容說明

1、服務名稱:VKT_UploadService

2、接口地址:http://192.168.21.4:87/VKT_UploadService.asmx?wsdl

3、入參及出參(略)

過程分析

1、完成數據集的對照,即完成藥品、診療以及其他數據與本院數據的對照工作;

2、引用WebService服務;

3、創建每個業務所需的SQL語句,并構建入參;

4、執行上傳操作。

詳細步驟

1、建立C#應用程序

2、添加WebService服務:在“項目”菜單中選擇“添加服務引用(S)…”,彈出“添加服務引用”對話框,在“地址”中填入接口地址,點擊“前往”,系統會在服務欄加載對應的項目,并在備注中顯示“在地址“http://192.168.21.4:87/VKT_UploadService.asmx?wsdl”處找到1個服務”,命名空間設置為:ServiceReference1,點“確定”完成設置。如圖1示:

圖1

圖2

3、數據對照(略)。

4、界面控件定義

建立界面如圖2,控件參數見下表。

表1

5、詳細代碼:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using 區域衛生平臺接口.ServiceReference1;

using System.IO;

//變量定量

public string LogStr = "";//日志變量

public Int32 DTransSuccess = 0;//上傳成功

public Int32 DTransFail = 0;//上傳失敗

string Lstr1="";//格式一頭

string Lstr2="";//格式一尾

string Lstr3="";//格式二外頭

string Lstr4="";//格式二外中

string Lstr5="";//格式二內頭

string Lstr6="";//格式二內尾

string Lstr7="";//格式二內部一

string Lstr8="";//格式二內部二

區域衛生平臺接口.ServiceReference1.VKT_UpBusinessDataFromHosSoapClient myService = null;

//格式一: [適用于無主從關系的記錄] StrInit(string Vid, string Vstr)

//格式二: [適用于主從關系的記錄] StrInitSub(string Vid, string Vstr0),略

//定義門急診掛號信息函數UP_registerrecord(),共25個入參,略

//執行上傳,并將相關內容保存到日志文件中

private void button1_Click(object sender, EventArgs e)

{

string jsonStr;

jsonStr = this.textBox1.Text;

LogStr=DateTime.Now.ToString() + ",上傳區域衛生平臺數據內容如下:"+this.textBox1.Text+"。\r\n";

string Tmpstr;

Tmpstr = myService.VKT_UploadService(jsonStr);//執行上傳

LogStr = LogStr + DateTime.Now.ToString() + ",返回結果如下:" + Tmpstr + "。\r\n";

Tmpstr =Tmpstr.Replace("\\r\\n", "\r\n").Replace("\\", "").Replace("\"", "");

if (Tmpstr.Contains("success: 1"))

{

DTransSuccess++;//判斷成功則計數加1

}

else

{

DTransFail ++; //判斷失敗則計數加1

}

this.richTextBox1.Text= Tmpstr;

WriteLog(LogStr, (this.dtTpStart.Value.Date == this.dtTpEnd.Value.Date) ? this.dtTpStart.Value.ToShortDateString() + "_" + DateTime.Today.ToShortDateString().ToString() + ".log" : this.dtTpStart.Value.ToShortDateString() + "_" + this.dtTpEnd.Value.ToShortDateString() + "_" + DateTime.Today.ToShortDateString().ToString() + ".log");//寫日志

LogStr = "";

}

//寫日志文件

private void WriteLog(string Wstr,string strFilePath)

{

string Current;

Current = Directory.GetCurrentDirectory();//獲取當前根目錄

strFilePath = Current + "\\QYWSPT" +strFilePath;

System.IO.FileStream fs = new System.IO.FileStream(strFilePath, System.IO.FileMode.Append);

System.IO.StreamWriter sw = new System.IO.StreamWriter(fs, System.Text.Encoding.Default);

sw.WriteLine( Wstr);

sw.Close();

fs.Close();

}

//生成門急診掛號信息并執行上傳

private void button2_Click(object sender, EventArgs e)

{

DTransSuccess = 0;

DTransFail = 0;

OleDbConnection connORCL = new OleDbConnection(Properties.Settings.Default.connectionORCLString);//調Settings.settings 中的connectionORCLString對應的連接字符串

string mySelectQuery = Properties.Settings.Default.Str0201;//調Settings.settings 中的Str0201對應的SQL語句

mySelectQuery = String.Format(@mySelectQuery, this.dtTpStart.Value.ToShortDateString(), this.dtTpEnd.Value.ToShortDateString());

OleDbConnection myConnection = new OleDbConnection(Properties.Settings.Default.connectionORCLString);

OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);

myConnection.Open();

OleDbCommand oledbcom = new OleDbCommand(mySelectQuery, myConnection);

DataSet ds1 = new DataSet();

OleDbDataAdapter adp = new OleDbDataAdapter(oledbcom);

adp.Fill(ds1, "srctable");

if (ds1.Tables["srctable"].Rows.Count > 0) //如果查詢記錄數>0

{

this.toolStripProgressBar1.Value = 0;

StrInit("0201", "registerrecord");

int x = 1;

toolStripStatusLabel1.Text = "共" + ds1.Tables[0].Rows.Count.ToString().Trim() + "條記錄。";

this.toolStripProgressBar1.Minimum = 0;

this.toolStripProgressBar1.Maximum = ds1.Tables[0].Rows.Count;

this.toolStripProgressBar1.Step = 1;

foreach (DataRow dw in ds1.Tables[0].Rows) //遍歷每一行數據

{

int Cnum = ds1.Tables[0].Columns.Count;//取查詢總列數

string[] Vstr = new string[Cnum];

//取當前行中的每一列數據存到Vstr數組中

for (Int32 i = 0; i <= Cnum - 1; i++)

{

Vstr[i] = dw.ItemArray[i].ToString();

}

}

//構建字符串,并調用UP_registerrecord函數

this.textBox1.Text = Lstr1 + "\r\n{\r\n";

this.textBox1.Text = this.textBox1.Text + UP_registerrecord(Vstr[0], Vstr[1], Vstr[2], Vstr[3], Vstr[4], Vstr[5], Vstr[6], Vstr[7], Vstr[8], Vstr[9], Vstr[10], Vstr[11], Vstr[12], Vstr[13], Vstr[14], Vstr[15], Vstr[16], Vstr[17], Vstr[18], Vstr[19], Vstr[20], Vstr[21], Vstr[22], Vstr[23], Vstr[24]);

this.textBox1.Text = this.textBox1.Text + "\r\n}\r\n" + Lstr2;

button1.PerformClick(); //調用上傳按鈕事件執行上傳

this.toolStripProgressBar1.Value++;

toolStripStatusLabel1.Text = "共" + ds1.Tables[0].Rows.Count.ToString().Trim() + "條記錄。正在上傳第" + x.ToString().Trim() + "個患者記錄,成功:" + DTransSuccess.ToString().Trim() + "個,失?。? + DTransFail.ToString().Trim() + "個。";

x++;

this.Refresh();

}

}

else

{

toolStripStatusLabel1.Text = "沒有記錄。";

}

myConnection.Close();//關閉數據庫連接

myConnection.Dispose();

DTransSuccess = 0;

DTransFail = 0;

}

2、生成可執行文件

在C#編譯生成可執行文件,該文件位于當前工程目錄bin\Debug下,若要定時執行,可在“任務計劃”中添加任務計劃,定時執行即可(注意執行完成后要將程序退出)。

總結

本文中采用WebService實現區域衛生平臺數據接口上傳功能,在實際開發過程中要注意以下幾點:1、需要増加try…catch…異常捕獲,以免程序異常報錯;2、對于有主從結構的數據,可以按照先遍歷主表,再根據主表的主鍵值,遍歷從表的數據,最終生成主從結構的上傳字符串,本例中不再贅述;3、為方便用戶進行后期修改,本例中將SQL和連接字符串放在Settings.setting中作為可修改內容,具體文件為對應Debug目錄中的“區域衛生平臺接口.exe.config ”文件中;4、本系統在Windows XP SP3 + Microsoft Visual Studio 2010+ORACLE 10g環境下調試通過。

參考文獻

[1]宋智軍 邱仲潘,Visual C#2010從入門到精通,電子工業出版社,2011.1.

[2]蔡月茹 柳西玲,Web Service基礎教程,清華大學出版社,2005..6.

主站蜘蛛池模板: 亚洲综合片| 干中文字幕| 国产欧美日韩综合一区在线播放| 国产成人免费手机在线观看视频| hezyo加勒比一区二区三区| 欧美一级夜夜爽| 无码一区18禁| 丁香六月综合网| 日韩AV无码免费一二三区| 日韩精品久久久久久久电影蜜臀| аv天堂最新中文在线| 国产精品夜夜嗨视频免费视频| 国产国产人免费视频成18| 国产成人精品优优av| 极品尤物av美乳在线观看| 91精品人妻一区二区| 亚洲国产成人自拍| 国产成人亚洲日韩欧美电影| 怡红院美国分院一区二区| 天天激情综合| 精品国产香蕉伊思人在线| 中文毛片无遮挡播放免费| 美女内射视频WWW网站午夜| 2021亚洲精品不卡a| 无码AV动漫| 欧美精品成人| 亚洲va在线∨a天堂va欧美va| 欧美a级完整在线观看| 日韩欧美视频第一区在线观看| 亚洲欧美人成电影在线观看| 福利国产在线| 久久中文无码精品| 久久精品亚洲中文字幕乱码| 成人福利在线免费观看| 中文成人在线| 一级一毛片a级毛片| a欧美在线| 亚洲天堂日韩av电影| a亚洲视频| 欧美色图久久| 亚洲无码精品在线播放| 久久精品亚洲热综合一区二区| 自慰网址在线观看| 伊人色综合久久天天| 香蕉在线视频网站| 99无码熟妇丰满人妻啪啪| 亚洲美女一级毛片| 在线观看视频一区二区| 狠狠做深爱婷婷综合一区| 国产va免费精品| 国产成人精品综合| 国产真实乱了在线播放| 亚洲欧洲自拍拍偷午夜色无码| 精品国产污污免费网站| 亚洲精品亚洲人成在线| 久久鸭综合久久国产| 久久亚洲国产视频| 手机在线看片不卡中文字幕| 国内精自视频品线一二区| 香蕉网久久| 人妻中文久热无码丝袜| 美女被躁出白浆视频播放| 91亚洲精品第一| 一区二区三区四区日韩| 亚洲IV视频免费在线光看| 亚洲欧美日韩另类在线一| 中文字幕va| 日本精品αv中文字幕| 午夜福利视频一区| 黄色在线不卡| 亚洲三级色| 国产十八禁在线观看免费| 一级毛片基地| 日韩第八页| 91色在线视频| 五月婷婷精品| 高清乱码精品福利在线视频| 免费女人18毛片a级毛片视频| 亚洲国产第一区二区香蕉| 国产成人精品亚洲77美色| 五月婷婷综合网| 激情综合网激情综合|