// 上傳人口分布統計資料 public bool UploadPD(string Trdate) { bool bCheck = false; string sURL = ""; string ip = null; try { sURL = getSET("Dialysis_url") + getSET("Dialysis_Organization"); string[] OrganizationInfo = ReadFhirOrganization(sURL); if (OrganizationInfo[0] == "nodata") { return(false); } string orgId = OrganizationInfo[0]; string recipientId = OrganizationInfo[1]; string sentDate = Trdate + "-" + DateTime.DaysInMonth(int.Parse(Trdate.Substring(0, 4)), int.Parse(Trdate.Substring(5, 2))).ToString(); sURL = getSET("Dialysis_url") + getSET("Dialysis_PD") + "/" + sentDate; string[] modifier = GetPD(sURL); if (modifier[0] == "nodata") { return(false); } UploadStatistic target = new UploadStatistic(); target.setFhirURI(getSET("FHIR_SERVER")); string sMdate = Trdate.Replace("-", ""); string commId = "PD." + orgId + "." + sMdate; string commIdentifier = "PD." + orgId + "." + sMdate; string commIdentifierSystem = "http://www.datacom.com.cn/DialysisStatistic"; string categoryCode = "PD"; string categorySystem = "http://www.datacom.com.cn/DialysisStatisticCategory"; string categoryName = "人口分布"; string senderId = orgId; string eventDateTime = DateTime.UtcNow.ToString("s"); Timing.UnitsOfTime durationUnit = Timing.UnitsOfTime.Mo; List <string[]> itemValue = new List <string[]>(); itemValue.Add(new string[] { "-30", "http://www.datacom.com.cn/DialysisStatisticPD", "-30", "M", modifier[0] }); itemValue.Add(new string[] { "-30", "http://www.datacom.com.cn/DialysisStatisticPD", "-30", "F", modifier[1] }); itemValue.Add(new string[] { "30-39", "http://www.datacom.com.cn/DialysisStatisticPD", "30-39", "M", modifier[2] }); itemValue.Add(new string[] { "30-39", "http://www.datacom.com.cn/DialysisStatisticPD", "30-39", "F", modifier[3] }); itemValue.Add(new string[] { "40-49", "http://www.datacom.com.cn/DialysisStatisticPD", "40-49", "M", modifier[4] }); itemValue.Add(new string[] { "40-49", "http://www.datacom.com.cn/DialysisStatisticPD", "40-49", "F", modifier[5] }); itemValue.Add(new string[] { "50-59", "http://www.datacom.com.cn/DialysisStatisticPD", "50-59", "M", modifier[6] }); itemValue.Add(new string[] { "50-59", "http://www.datacom.com.cn/DialysisStatisticPD", "50-59", "F", modifier[7] }); itemValue.Add(new string[] { "60-69", "http://www.datacom.com.cn/DialysisStatisticPD", "60-69", "M", modifier[8] }); itemValue.Add(new string[] { "60-69", "http://www.datacom.com.cn/DialysisStatisticPD", "60-69", "F", modifier[9] }); itemValue.Add(new string[] { "70-79", "http://www.datacom.com.cn/DialysisStatisticPD", "70-79", "M", modifier[10] }); itemValue.Add(new string[] { "70-79", "http://www.datacom.com.cn/DialysisStatisticPD", "70-79", "F", modifier[11] }); itemValue.Add(new string[] { "80-89", "http://www.datacom.com.cn/DialysisStatisticPD", "80-89", "M", modifier[12] }); itemValue.Add(new string[] { "80-89", "http://www.datacom.com.cn/DialysisStatisticPD", "80-89", "F", modifier[13] }); itemValue.Add(new string[] { "90-", "http://www.datacom.com.cn/DialysisStatisticPD", "90-", "M", modifier[14] }); itemValue.Add(new string[] { "90-", "http://www.datacom.com.cn/DialysisStatisticPD", "90-", "F", modifier[15] }); itemValue.Add(new string[] { "SUM", "http://www.datacom.com.cn/DialysisStatisticPD", "SUM", "M", modifier[16] }); itemValue.Add(new string[] { "SUM", "http://www.datacom.com.cn/DialysisStatisticPD", "SUM", "F", modifier[17] }); itemValue.Add(new string[] { "Positive", "http://www.datacom.com.cn/DialysisStatisticPD", "Positive", "M", modifier[18] }); itemValue.Add(new string[] { "Positive", "http://www.datacom.com.cn/DialysisStatisticPD", "Positive", "F", modifier[19] }); itemValue.Add(new string[] { "Negitive", "http://www.datacom.com.cn/DialysisStatisticPD", "Negitive", "M", modifier[20] }); itemValue.Add(new string[] { "Negitive", "http://www.datacom.com.cn/DialysisStatisticPD", "Negitive", "F", modifier[21] }); logger.Trace("PD Event Date : " + eventDateTime); //Trace.WriteLine("PD Event Date : " + eventDateTime); target.CommunicationCreateUpdate(commId, commIdentifier, commIdentifierSystem, categoryCode, categorySystem, categoryName, senderId, recipientId, sentDate, eventDateTime, durationUnit, itemValue); if (HttpContext.Current != null) { ip = HttpContext.Current.Request.UserHostAddress; } else { System.Net.IPAddress SvrIP = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address); ip = SvrIP.ToString(); } logger.Trace("PD IP Address : " + ip.ToString()); //Trace.WriteLine("PD IP Address : " + ip.ToString()); AuditObject ao = new AuditObject() { Reference = "Communication/" + commId, Name = sMdate + categoryName, Success = true }; target.CommunicationAuditEventCreateUpdate("UL.PD", "Statistic", categoryCode, AuditEvent.AuditEventOutcome.N0, ip, "", senderId, recipientId, "", ao); bCheck = true; } catch (Exception e) { logger.Error("UploadPD error, error message: " + e.Message); return(false); } return(bCheck); }
// 上傳血透品質統計資料 public bool UploadDQ(string Trdate) { bool bCheck = false; string sURL = ""; try { sURL = getSET("Dialysis_url") + getSET("Dialysis_Organization"); string[] OrganizationInfo = ReadFhirOrganization(sURL); if (OrganizationInfo[0] == "nodata") { return(false); } string orgId = OrganizationInfo[0]; string recipientId = OrganizationInfo[1]; sURL = getSET("Dialysis_url") + getSET("Dialysis_DQ") + "/" + Trdate; string[] modifier = GetDQ(sURL); if (modifier[0] == "nodata") { return(false); } UploadStatistic target = new UploadStatistic(); target.setFhirURI(getSET("FHIR_SERVER")); string sMdate = Trdate.Replace("-", ""); string commId = "DQ." + orgId + "." + sMdate; string commIdentifier = "DQ." + orgId + "." + sMdate; string commIdentifierSystem = "http://www.datacom.com.cn/DialysisStatistic"; string categoryCode = "DQ"; string categorySystem = "http://www.datacom.com.cn/DialysisStatisticCategory"; string categoryName = "血液透析品质"; string senderId = orgId; string sentDate = Trdate + "-" + DateTime.DaysInMonth(int.Parse(Trdate.Substring(0, 4)), int.Parse(Trdate.Substring(5, 2))).ToString(); string eventDateTime = DateTime.UtcNow.ToString("s"); Timing.UnitsOfTime durationUnit = Timing.UnitsOfTime.Mo; List <string[]> itemValue = new List <string[]>(); itemValue.Add(new string[] { "Hb_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "Hb 已检人数", null, modifier[0] }); itemValue.Add(new string[] { "Hb_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "Hb 合格人数", null, modifier[1] }); itemValue.Add(new string[] { "ALB_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "ALB 已检人数", null, modifier[2] }); itemValue.Add(new string[] { "ALB_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "ALB 合格人数", null, modifier[3] }); itemValue.Add(new string[] { "Ca_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "Ca 已检人数", null, modifier[4] }); itemValue.Add(new string[] { "Ca_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "Ca 合格人数", null, modifier[5] }); itemValue.Add(new string[] { "P_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "P 已检人数", null, modifier[6] }); itemValue.Add(new string[] { "P_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "P 合格人数", null, modifier[7] }); itemValue.Add(new string[] { "TS_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "TS 已检人数", null, modifier[8] }); itemValue.Add(new string[] { "TS_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "TS 合格人数", null, modifier[9] }); itemValue.Add(new string[] { "SF_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "SF 已检人数", null, modifier[10] }); itemValue.Add(new string[] { "SF_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "SF 合格人数", null, modifier[11] }); itemValue.Add(new string[] { "IPTH_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "IPTH 已检人数", null, modifier[12] }); itemValue.Add(new string[] { "IPTH_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "IPTH 合格人数", null, modifier[13] }); itemValue.Add(new string[] { "KtV_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "KtV 已检人数", null, modifier[14] }); itemValue.Add(new string[] { "KtV_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "KtV 合格人数", null, modifier[15] }); itemValue.Add(new string[] { "HBsAg_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "HBsAg 已检人数", null, modifier[16] }); itemValue.Add(new string[] { "HBsAg_POSI", "http://www.datacom.com.cn/DialysisStatisticDQ", "HBsAg 阳性人数", null, modifier[17] }); itemValue.Add(new string[] { "Anti-HCV_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "Anti-HCV 已检人数", null, modifier[18] }); itemValue.Add(new string[] { "Anti-HCV_POSI", "http://www.datacom.com.cn/DialysisStatisticDQ", "Anti-HCV 阳性人数", null, modifier[19] }); itemValue.Add(new string[] { "URR_ED", "http://www.datacom.com.cn/DialysisStatisticDQ", "URR 已检人数", null, modifier[20] }); itemValue.Add(new string[] { "URR_PASS", "http://www.datacom.com.cn/DialysisStatisticDQ", "URR 合格人数", null, modifier[21] }); itemValue.Add(new string[] { "FR", "http://www.datacom.com.cn/DialysisStatisticDQ", "瘘管重建人数", null, modifier[22] }); itemValue.Add(new string[] { "Out", "http://www.datacom.com.cn/DialysisStatisticDQ", "脱离人数", null, modifier[23] }); itemValue.Add(new string[] { "Population", "http://www.datacom.com.cn/DialysisStatisticDQ", "总人数", null, modifier[24] }); target.CommunicationCreateUpdate(commId, commIdentifier, commIdentifierSystem, categoryCode, categorySystem, categoryName, senderId, recipientId, sentDate, eventDateTime, durationUnit, itemValue); logger.Trace("DQ Event Date : " + eventDateTime); //Trace.WriteLine("DQ Event Date : " + eventDateTime); string ip = null; if (HttpContext.Current != null) { ip = HttpContext.Current.Request.UserHostAddress; } else { System.Net.IPAddress SvrIP = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address); ip = SvrIP.ToString(); } AuditObject ao = new AuditObject() { Reference = "Communication/" + commId, Name = sMdate + categoryName, Success = true }; target.CommunicationAuditEventCreateUpdate("UL.DQ", "Statistic", categoryCode, AuditEvent.AuditEventOutcome.N0, ip, "", senderId, recipientId, "", ao); bCheck = true; } catch (Exception e) { logger.Error("UploadDQ error, error message: " + e.Message); return(false); } return(bCheck); }
// 上傳死亡率統計資料 public bool UploadMR(string Trdate) { bool bCheck = false; string sURL = ""; string ip = null; try { sURL = getSET("Dialysis_url") + getSET("Dialysis_Organization"); string[] OrganizationInfo = ReadFhirOrganization(sURL); if (OrganizationInfo[0] == "nodata") { return(false); } string orgId = OrganizationInfo[0]; string recipientId = OrganizationInfo[1]; sURL = getSET("Dialysis_url") + getSET("Dialysis_MR") + "/" + Trdate; string[] modifier = GetMR(sURL); if (modifier[0] == "nodata") { return(false); } UploadStatistic target = new UploadStatistic(); target.setFhirURI(getSET("FHIR_SERVER")); string sMdate = Trdate.Replace("-", ""); string commId = "MR." + orgId + "." + sMdate; string commIdentifier = "MR." + orgId + "." + sMdate; string commIdentifierSystem = "http://www.datacom.com.cn/DialysisStatistic"; string categoryCode = "MR"; string categorySystem = "http://www.datacom.com.cn/DialysisStatisticCategory"; string categoryName = "死亡率"; string senderId = orgId; string sentDate = Trdate + "-" + DateTime.DaysInMonth(int.Parse(Trdate.Substring(0, 4)), int.Parse(Trdate.Substring(5, 2))).ToString(); string eventDateTime = DateTime.UtcNow.ToString("s"); Timing.UnitsOfTime durationUnit = Timing.UnitsOfTime.Mo; List <string[]> itemValue = new List <string[]>(); itemValue.Add(new string[] { "deaths", "http://www.datacom.com.cn/DialysisStatisticMR", "死亡人数", "M", modifier[0] }); itemValue.Add(new string[] { "deaths", "http://www.datacom.com.cn/DialysisStatisticMR", "死亡人数", "F", modifier[1] }); itemValue.Add(new string[] { "population", "http://www.datacom.com.cn/DialysisStatisticMR", "总人数", "M", modifier[2] }); itemValue.Add(new string[] { "population", "http://www.datacom.com.cn/DialysisStatisticMR", "总人数", "F", modifier[3] }); target.CommunicationCreateUpdate(commId, commIdentifier, commIdentifierSystem, categoryCode, categorySystem, categoryName, senderId, recipientId, sentDate, eventDateTime, durationUnit, itemValue); logger.Trace("MR Event Date : " + eventDateTime); //Trace.WriteLine("MR Event Date : " + eventDateTime); if (HttpContext.Current != null) { ip = HttpContext.Current.Request.UserHostAddress; } else { System.Net.IPAddress SvrIP = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address); ip = SvrIP.ToString(); } AuditObject ao = new AuditObject() { Reference = "Communication/" + commId, Name = sMdate + categoryName, Success = true }; target.CommunicationAuditEventCreateUpdate("UL.MR", "Statistic", categoryCode, AuditEvent.AuditEventOutcome.N0, ip, "", senderId, recipientId, "", ao); bCheck = true; } catch (Exception e) { logger.Error("UploadMR error, error message: " + e.Message); return(false); } return(bCheck); }