using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using FastReport.Editor; using Report.Entity; using Report.Entity.RptEntity; using Spire.Pdf.Lists; namespace PeisStart.WInForm.ReportTest { public class ConvertHelper { private const int EMPTY_VALUE = -1; public static void RemoveEmptyRows(DataSet dataSet) { foreach (DataTable table in dataSet.Tables) { for (int i = 0; i < table.Rows.Count; i++) { bool isRowEmpty = false; foreach (DataColumn column in table.Columns) { if (!string.IsNullOrEmpty(table.Rows[i][column].ToString())) { if (table.Rows[i][column].ToString().Equals("-1")) { isRowEmpty = true; break; }; } } if (isRowEmpty) { table.Rows[i].Delete(); } } } } private static List ToPicTable(Dictionary dict, string websiteUrl) { List picList = new List(); piclog pic = new piclog(); string key = "hisLog"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.photo = fullUri.AbsoluteUri; } key = "firstPage"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.firstPage = fullUri.AbsoluteUri; } key = "pageHeader"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.pageHeader = fullUri.AbsoluteUri; } key = "pageFooter"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.pageFooter = fullUri.AbsoluteUri; } key = "resultSign"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.resultSign = fullUri.AbsoluteUri; } key = "orgSign"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.orgSign = fullUri.AbsoluteUri; } key = "picExtOne"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtOne = fullUri.AbsoluteUri; } key = "picExtTwo"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtTwo = fullUri.AbsoluteUri; } key = "picExtThree"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtThree = fullUri.AbsoluteUri; } key = "picExtFour"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtFour = fullUri.AbsoluteUri; } key = "picExtFive"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtFive = fullUri.AbsoluteUri; } key = "picExtSix"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtSix = fullUri.AbsoluteUri; } key = "picExtSeven"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtSeven = fullUri.AbsoluteUri; } key = "picExtEight"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtEight = fullUri.AbsoluteUri; } key = "picExtNine"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtNine = fullUri.AbsoluteUri; } key = "picExtTen"; if (dict.ContainsKey(key) == true) { var baseUri = new Uri(websiteUrl); var fullUri = new Uri(baseUri, dict[key]); pic.picExtTen = fullUri.AbsoluteUri; } picList.Add(pic); return picList; } public static async Task ReportHealthToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, string imageUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string json = FileHelper.ReadAllText(filePath); Dto0005 bill = ClientConfig.DeserializeObject(json); List dictMedicalTypeList = new List(); foreach (var item in bill.medicalReportTypes) { DictMedicalReportType dictmedicalreporttype = new DictMedicalReportType() { medicalReportTypeId = item.medicalReportTypeId, medicalReportTypeName = item.medicalReportTypeName, displayOrder = item.displayOrder, }; dictMedicalTypeList.Add(dictmedicalreporttype); } List pHealthList = new List(); HRPatientRegister pHealth = new HRPatientRegister() { patientRegisterId = bill.patientRegisterId, isPersonal = bill.isPersonal, customerOrgName = bill.customerOrgName, departmentName = bill.departmentName, patientRegisterNo = bill.patientRegisterNo, barcodeImg = BarCodeHelper.BuildBarCode(bill.patientRegisterNo), patientNo = bill.patientNo, idNo = bill.idNo, medicalTimes = bill.medicalTimes, patientName = bill.patientName, sexName = bill.sexName, age = bill.age == null ? "" : Convert.ToString(bill.age), birthDate = bill.birthDate == null ? "" : Convert.ToDateTime(bill.birthDate).ToString("yyyy-MM-dd"), maritalStatusName = bill.maritalStatusName, nationName = bill.nationName, mobileTelephone = bill.mobileTelephone, isVip = bill.isVip, medicalStartDate = bill.medicalStartDate.Replace("T", " ").Substring(0, 19), medicalTypeName = bill.medicalTypeName, personnelTypeName = bill.personnelTypeName, medicalPackageOrCustomerOrgGroupName = bill.medicalPackageOrCustomerOrgGroupName, summaryDoctorName = bill.summaryDoctorName, summaryDoctorSignUrl = bill.summaryDoctorSignUrl, summaryDate = bill.summaryDate, auditDoctorName = bill.auditDoctorName, auditDoctorSignUrl = bill.auditDoctorSignUrl, auditDate = bill.auditDate, medicalCenterId = bill.medicalCenterId, medicalCenterName = bill.medicalCenterName, medicalCenterAddress = bill.medicalCenterAddress, medicalCenterTelphone = bill.medicalCenterTelphone, }; pHealthList.Add(pHealth); List pSumList = new List(); List pContentList = new List(); foreach (var item in bill.sumSummarys) { HRSumSummary hrsumsummary = new HRSumSummary() { summaryTitle = item.summaryTitle, summaryFlag = item.summaryFlag, displayOrder = item.displayOrder, }; foreach (var content in item.summaryContents) { HRSummaryContent hrsummarycontent = new HRSummaryContent() { summaryTitle = item.summaryTitle, summaryContent = content.summaryContent, displayOrder = content.displayOrder, }; pContentList.Add(hrsummarycontent); } pSumList.Add(hrsumsummary); } if (pSumList.Count == 0) { HRSumSummary hrsumsummary = new HRSumSummary() { displayOrder = EMPTY_VALUE }; pSumList.Add(hrsumsummary); } if (pContentList.Count == 0) { HRSummaryContent hrsummarycontent = new HRSummaryContent() { displayOrder = EMPTY_VALUE }; pContentList.Add(hrsummarycontent); } List pSugList = new List(); List pMedList = new List(); List pReasonList = new List(); List pGuideList = new List(); int orderNo = 0; string text = string.Empty; foreach (var item in bill.sumSuggestions) { HRSuggestion hrsuggestion = new HRSuggestion() { suggestionTitle = item.suggestionTitle, suggestionFlag = item.suggestionFlag, displayOrder = item.displayOrder, }; orderNo = 0; text = "{医学解释}"; var medicalInterSortList = item.medicalInterpretations.OrderBy(o => o.displayOrder).ToList(); foreach (var med in medicalInterSortList) { HRSugMedicalInterpretation hrsugmedicalinterpretation = new HRSugMedicalInterpretation() { suggestionTitle = item.suggestionTitle, suggestionContent = med.suggestionContent, displayOrder = med.displayOrder, }; orderNo++; pMedList.Add(hrsugmedicalinterpretation); if (medicalInterSortList.Count > 1) text += string.Format("{0}、{1}", orderNo, med.suggestionContent); else { text += string.Format("{0}", med.suggestionContent); } } if (medicalInterSortList.Count > 0) hrsuggestion.medicalText = text; orderNo = 0; text = "{常见原因}"; var commonReasonSortList = item.commonReasons.OrderBy(o => o.displayOrder).ToList(); foreach (var reason in commonReasonSortList) { HRSugCommonReason hrsugcommonreason = new HRSugCommonReason() { suggestionTitle = item.suggestionTitle, suggestionContent = reason.suggestionContent, displayOrder = reason.displayOrder, }; orderNo++; pReasonList.Add(hrsugcommonreason); if (commonReasonSortList.Count > 1) text += string.Format("{0}、{1}", orderNo, reason.suggestionContent); else { text += string.Format("{0}", reason.suggestionContent); } } if (commonReasonSortList.Count > 0) hrsuggestion.reasonText = text; orderNo = 0; text = "{健康指导}"; var healthGuidSortList = item.healthGuidances.OrderBy(o => o.displayOrder).ToList(); foreach (var guide in healthGuidSortList) { HRSugHealthGuidance hrsughealthguidance = new HRSugHealthGuidance() { suggestionTitle = item.suggestionTitle, suggestionContent = guide.suggestionContent, displayOrder = guide.displayOrder, }; orderNo++; pGuideList.Add(hrsughealthguidance); if (healthGuidSortList.Count > 1) text += string.Format("{0}、{1}", orderNo, guide.suggestionContent); else { text += string.Format("{0}", guide.suggestionContent); } } if (healthGuidSortList.Count > 0) hrsuggestion.guideText = text; pSugList.Add(hrsuggestion); } if (pSugList.Count == 0) { HRSuggestion hrsuggestion = new HRSuggestion() { displayOrder = EMPTY_VALUE }; ; pSugList.Add(hrsuggestion); } if (pMedList.Count == 0) { HRSugMedicalInterpretation hrsugmedicalinterpretation = new HRSugMedicalInterpretation() { displayOrder = EMPTY_VALUE }; pMedList.Add(hrsugmedicalinterpretation); } if (pReasonList.Count == 0) { HRSugCommonReason hrsugcommonreason = new HRSugCommonReason() { displayOrder = EMPTY_VALUE }; pReasonList.Add(hrsugcommonreason); } if (pGuideList.Count == 0) { HRSugHealthGuidance hrsughealthguidance = new HRSugHealthGuidance() { displayOrder = EMPTY_VALUE }; pGuideList.Add(hrsughealthguidance); } List pItemTypeList = new List(); List pAsbitemList = new List(); List pCheckItemList = new List(); List pPirctureList = new List(); List pSummaryList = new List(); List dExamItemTypeList = new List(); List dNotExamItemTypeList = new List(); List dHBsAgList = new List(); List pPirctureListHorizontal = new List(); string previousItemTypeId = "", previousAsbitemNames = ""; int absitemOrderNo = 0; orderNo = 0; text = ""; var registerCheckSortList = bill.registerChecks.OrderBy(o => o.displayOrder).ToList(); foreach (var asbitem in registerCheckSortList) { if (previousItemTypeId != asbitem.itemTypeId) { ItemType type = bill.itemTypes.Where(p => (p.itemTypeId.Equals(asbitem.itemTypeId))).FirstOrDefault(); if (type != null) { RegisterCheckItemType registercheckitemtype = new RegisterCheckItemType() { medicalReportTypeId = type.medicalReportTypeId, itemTypeId = type.itemTypeId, itemTypeName = type.itemTypeName, displayOrder = type.displayOrder, }; if (type.medicalReportTypeId.Equals("3")) { DictExamItemType dictexamitemtype = new DictExamItemType() { medicalReportTypeId = type.medicalReportTypeId, itemTypeId = type.itemTypeId, itemTypePathCode = type.itemTypePathCode, itemTypeName = type.itemTypeName, displayOrder = type.displayOrder, }; dExamItemTypeList.Add(dictexamitemtype); } else { DictNotExamItemType dictnotexamitemtype = new DictNotExamItemType() { medicalReportTypeId = type.medicalReportTypeId, itemTypeId = type.itemTypeId, itemTypePathCode = type.itemTypePathCode, itemTypeName = type.itemTypeName, displayOrder = type.displayOrder, }; dNotExamItemTypeList.Add(dictnotexamitemtype); } pItemTypeList.Add(registercheckitemtype); } previousItemTypeId = asbitem.itemTypeId; } if (previousAsbitemNames != asbitem.asbitemNames) { previousAsbitemNames = asbitem.asbitemNames; absitemOrderNo++; } RegisterCheckAsbitem registercheckasbitem = new RegisterCheckAsbitem() { itemTypeId = asbitem.itemTypeId, asbitemNames = asbitem.asbitemNames, absOrderNo = absitemOrderNo, displayOrder = asbitem.displayOrder, checkDoctorName = asbitem.checkDoctorName, checkDoctorSignUrl = asbitem.checkDoctorSignUrl, checkDate = asbitem.checkDate.Replace("T", " ").Substring(0, 19), auditorName = asbitem.auditorName, auditorSignUrl = asbitem.auditorSignUrl, lisSampleNo = asbitem.lisSampleNo, }; if (asbitem.asbitemNames.Contains("乙肝")) { HBsAgAsbitem hb = new HBsAgAsbitem() { itemTypeId = asbitem.itemTypeId, asbitemNames = asbitem.asbitemNames, absOrderNo = absitemOrderNo, displayOrder = asbitem.displayOrder, checkDoctorName = asbitem.checkDoctorName, checkDoctorSignUrl = asbitem.checkDoctorSignUrl, checkDate = asbitem.checkDate.Replace("T", " ").Substring(0, 19), auditorName = asbitem.auditorName, auditorSignUrl = asbitem.auditorSignUrl, lisSampleNo = asbitem.lisSampleNo, }; dHBsAgList.Add(hb); } foreach (var item in asbitem.items) { RegisterCheckItem registercheckitem = new RegisterCheckItem() { asbitemNames = asbitem.asbitemNames, itemId = item.itemId, itemName = item.itemName, result = item.result, referenceRangeValue = item.referenceRangeValue, criticalRangeValue = item.criticalRangeValue, unit = item.unit, reportFontColor = item.reportFontColor, reportBackgroundColor = item.reportBackgroundColor, reportPrompt = item.reportPrompt, displayOrder = item.displayOrder, }; pCheckItemList.Add(registercheckitem); } foreach (var pic in asbitem.pictures) { var baseUri = new Uri(imageUrl); var fullUri = new Uri(baseUri, pic.pictureFileName); RegisterCheckPircture registercheckpircture = new RegisterCheckPircture() { asbitemNames = asbitem.asbitemNames, pictureFileName = fullUri.AbsoluteUri, pictureFileType = pic.pictureFileType, itemTypeName = pic.itemTypeName, pictureBase64 = pic.pictureBase64, displayOrder = pic.displayOrder, }; pPirctureList.Add(registercheckpircture); } var grouped = pPirctureList.GroupBy(x => x.asbitemNames).ToList(); foreach (var group in grouped) { var existingItem = pPirctureListHorizontal.FirstOrDefault(item => item.asbitemNames == group.Key); if (existingItem == null) { RegisterCheckPirctureHorizontal newItem = new RegisterCheckPirctureHorizontal { asbitemNames = group.Key }; var pictures = group.Select(x => x.pictureFileName).Take(6).ToList(); if (pictures.Count > 0) newItem.pictureHorizontalOne = pictures.ElementAtOrDefault(0); if (pictures.Count > 1) newItem.pictureHorizontalTwo = pictures.ElementAtOrDefault(1); if (pictures.Count > 2) newItem.pictureHorizontalThree = pictures.ElementAtOrDefault(2); if (pictures.Count > 3) newItem.pictureHorizontalFour = pictures.ElementAtOrDefault(3); if (pictures.Count > 4) newItem.pictureHorizontalFive = pictures.ElementAtOrDefault(4); if (pictures.Count > 5) newItem.pictureHorizontalSix = pictures.ElementAtOrDefault(5); newItem.pictureCount = pictures.Count; // 设置实际转换的行数 var ext = group.Where(p => p.asbitemNames.Equals(group.Key)).FirstOrDefault(); if (ext != null) { newItem.itemTypeName = ext.itemTypeName; newItem.displayOrder = ext.displayOrder; } pPirctureListHorizontal.Add(newItem); } } orderNo = 0; text = ""; var summarysSortList = asbitem.summarys.OrderBy(o => o.displayOrder).ToList(); foreach (var sum in summarysSortList) { RegisterCheckSummary registerchecksummary = new RegisterCheckSummary() { asbitemNames = asbitem.asbitemNames, summary = sum.summary, displayOrder = sum.displayOrder, }; orderNo++; if (summarysSortList.Count > 1) text += string.Format("{0}:{1}", orderNo, sum.summary); else { text = string.Format("{0}", sum.summary); } pSummaryList.Add(registerchecksummary); } if (summarysSortList.Count > 0) registercheckasbitem.summarysText = text; pAsbitemList.Add(registercheckasbitem); } List checkTargetOne = new List(); List checkTargetTwo = new List(); List checkTargetThree = new List(); List checkTargetFour = new List(); List checkTargetFive = new List(); List checkTargetSix = new List(); var groupedItem = bill.ItemContrasts.GroupBy(x => x.asbitemName).ToList(); int tagIndex = 1; string itemReferenceRange = "", tempItemName; foreach (var group in groupedItem) { var targets = bill.ItemContrasts.Where(x => x.asbitemName.Equals(group.Key)); foreach (var target in targets) { var groupedRange = targets.GroupBy(x => x.itemName).ToList(); if (groupedRange.Count == 1) { itemReferenceRange = targets.Max(x => x.itemReferenceRange); } if (groupedRange.Count > 1) { foreach (var item in groupedRange) { tempItemName = targets.Where(p => p.itemReferenceRange.Equals(item.Key)).FirstOrDefault().itemName; itemReferenceRange += string.Format("{0}:{1} ", tempItemName, item.Key); } } CheckTarget checkTarget = new CheckTarget() { asbitemName = target.asbitemName, itemName = target.itemName, itemReferenceRange = itemReferenceRange, itemResult = target.itemResult, medicalStartDate = target.medicalStartDate, displayOrder = 1 }; if (tagIndex == 1) checkTargetOne.Add(checkTarget); else if (tagIndex == 2) checkTargetTwo.Add(checkTarget); else if (tagIndex == 3) checkTargetThree.Add(checkTarget); else if (tagIndex == 4) checkTargetFour.Add(checkTarget); else if (tagIndex == 5) checkTargetFive.Add(checkTarget); else if (tagIndex == 6) checkTargetSix.Add(checkTarget); } tagIndex++; } if (checkTargetOne.Count == 0) { CheckTarget checkTarget = new CheckTarget() { displayOrder = EMPTY_VALUE }; ; checkTargetOne.Add(checkTarget); } if (checkTargetTwo.Count == 0) { CheckTarget checkTarget = new CheckTarget() { displayOrder = EMPTY_VALUE }; ; checkTargetTwo.Add(checkTarget); } if (checkTargetThree.Count == 0) { CheckTarget checkTarget = new CheckTarget() { displayOrder = EMPTY_VALUE }; ; checkTargetThree.Add(checkTarget); } if (checkTargetFour.Count == 0) { CheckTarget checkTarget = new CheckTarget() { displayOrder = EMPTY_VALUE }; ; checkTargetFour.Add(checkTarget); } if (checkTargetFive.Count == 0) { CheckTarget checkTarget = new CheckTarget() { displayOrder = EMPTY_VALUE }; ; checkTargetFive.Add(checkTarget); } if (checkTargetSix.Count == 0) { CheckTarget checkTarget = new CheckTarget() { displayOrder = EMPTY_VALUE }; ; checkTargetSix.Add(checkTarget); } if (dExamItemTypeList.Count == 0) { DictExamItemType dictexamitemtype = new DictExamItemType() { displayOrder = EMPTY_VALUE }; ; dExamItemTypeList.Add(dictexamitemtype); } if (dNotExamItemTypeList.Count == 0) { DictNotExamItemType dictnotexamitemtype = new DictNotExamItemType() { displayOrder = EMPTY_VALUE }; ; dNotExamItemTypeList.Add(dictnotexamitemtype); } if (dHBsAgList.Count == 0) { HBsAgAsbitem hb = new HBsAgAsbitem() { displayOrder = EMPTY_VALUE }; ; dHBsAgList.Add(hb); } if (pItemTypeList.Count == 0) { RegisterCheckItemType registercheckitemtype = new RegisterCheckItemType() { displayOrder = EMPTY_VALUE }; ; pItemTypeList.Add(registercheckitemtype); } if (pAsbitemList.Count == 0) { RegisterCheckAsbitem registercheckasbitem = new RegisterCheckAsbitem() { absOrderNo = EMPTY_VALUE, displayOrder = EMPTY_VALUE }; pAsbitemList.Add(registercheckasbitem); } if (pCheckItemList.Count == 0) { RegisterCheckItem registercheckitem = new RegisterCheckItem() { reportFontColor = EMPTY_VALUE, reportBackgroundColor = EMPTY_VALUE, displayOrder = EMPTY_VALUE }; pCheckItemList.Add(registercheckitem); } if (pPirctureList.Count == 0) { RegisterCheckPircture registercheckpircture = new RegisterCheckPircture() { displayOrder = EMPTY_VALUE }; pPirctureList.Add(registercheckpircture); } if (pPirctureListHorizontal.Count == 0) { RegisterCheckPirctureHorizontal registercheckpircture = new RegisterCheckPirctureHorizontal() { displayOrder = EMPTY_VALUE }; pPirctureListHorizontal.Add(registercheckpircture); } if (pSummaryList.Count == 0) { RegisterCheckSummary registerchecksummary = new RegisterCheckSummary() { displayOrder = EMPTY_VALUE }; pSummaryList.Add(registerchecksummary); } Rpt0005 hrpersonhealth = new Rpt0005() { dictMedType = dictMedicalTypeList, dictExamItemType = dExamItemTypeList, dictNotExamItemType = dNotExamItemTypeList, pinfo = pHealthList, resItemType = pItemTypeList, resAsbitem = pAsbitemList, res = pCheckItemList, resPic = pPirctureList, resPicHorizontal = pPirctureListHorizontal, resSum = pSummaryList, sug = pSugList, sugReason = pReasonList, sugGuide = pGuideList, sugMeical = pMedList, summ = pSumList, summContent = pContentList, pic = ToPicTable(dict, websiteUrl), HBsAg = dHBsAgList, checkTargetOne = checkTargetOne, checkTargetTwo = checkTargetTwo, checkTargetThree = checkTargetThree, checkTargetFour = checkTargetFour, checkTargetFive = checkTargetFive, checkTargetSix = checkTargetSix, }; string dataSetJson = ClientConfig.SerializeObject(hrpersonhealth); if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; RemoveEmptyRows(dSet); return dSet; } public static async Task OccupationalDiseaseToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, string imageUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string json = FileHelper.ReadAllText(filePath); Report.Entity.PeisEntity.OccupationalDisease.Dto0006 bill = ClientConfig.DeserializeObject(json); List dictMedicalTypeList = new List(); foreach (var item in bill.medicalReportTypes) { DictMedicalReportType dictmedicalreporttype = new DictMedicalReportType() { medicalReportTypeId = item.medicalReportTypeId, medicalReportTypeName = item.medicalReportTypeName, displayOrder = item.displayOrder, }; dictMedicalTypeList.Add(dictmedicalreporttype); } List pHealthList = new List(); HRPatientRegister pHealth = new HRPatientRegister() { patientRegisterId = bill.patientRegisterId, isPersonal = bill.isPersonal, customerOrgName = bill.customerOrgName, departmentName = bill.departmentName, patientRegisterNo = bill.patientRegisterNo, barcodeImg = BarCodeHelper.BuildBarCode(bill.patientRegisterNo), patientNo = bill.patientNo, idNo = bill.idNo, medicalTimes = bill.medicalTimes, patientName = bill.patientName, sexName = bill.sexName, age = bill.age == null ? "" : Convert.ToString(bill.age), birthDate = bill.birthDate == null ? "" : Convert.ToDateTime(bill.birthDate).ToString("yyyy-MM-dd"), maritalStatusName = bill.maritalStatusName, nationName = bill.nationName, mobileTelephone = bill.mobileTelephone, isVip = bill.isVip, medicalStartDate = bill.medicalStartDate.Replace("T", " ").Substring(0, 19), medicalTypeName = bill.medicalTypeName, personnelTypeName = bill.personnelTypeName, medicalPackageOrCustomerOrgGroupName = bill.medicalPackageOrCustomerOrgGroupName, summaryDoctorName = bill.summaryDoctorName, summaryDoctorSignUrl = bill.summaryDoctorSignUrl, summaryDate = bill.summaryDate, auditDoctorName = bill.auditDoctorName, auditDoctorSignUrl = bill.auditDoctorSignUrl, auditDate = bill.auditDate, medicalCenterId = bill.medicalCenterId, medicalCenterName = bill.medicalCenterName, medicalCenterAddress = bill.medicalCenterAddress, medicalCenterTelphone = bill.medicalCenterTelphone, }; pHealthList.Add(pHealth); List pOccDisList = new List(); PatientOccupationalDisease patientoccupationaldisease = new PatientOccupationalDisease() { ocCheckTypeId = bill.patientOccupationalDisease.ocCheckTypeId, ocCheckTypeName = bill.patientOccupationalDisease.ocCheckTypeName, jobType = bill.patientOccupationalDisease.jobType, totalWorkTime = bill.patientOccupationalDisease.totalWorkTime, poisonWorkTime = bill.patientOccupationalDisease.poisonWorkTime, riskFactors = bill.patientOccupationalDisease.riskFactors, familyGeneticHistory = bill.patientOccupationalDisease.familyGeneticHistory, lastMenstrualPeriodDate = bill.patientOccupationalDisease.lastMenstrualPeriodDate, firstMenstruation = bill.patientOccupationalDisease.firstMenstruation, menstruationTimeLength = bill.patientOccupationalDisease.menstruationTimeLength, menstruationCycle = bill.patientOccupationalDisease.menstruationCycle, menstruationEndAge = bill.patientOccupationalDisease.menstruationEndAge, menstruationFlag = bill.patientOccupationalDisease.menstruationFlag, childrenNum = bill.patientOccupationalDisease.childrenNum, abortionTimes = bill.patientOccupationalDisease.abortionTimes, prematureBirthTimes = bill.patientOccupationalDisease.abortionTimes, stillbirthTimes = bill.patientOccupationalDisease.stillbirthTimes, abnormalTimes = bill.patientOccupationalDisease.abnormalTimes, smokeFlag = bill.patientOccupationalDisease.smokeFlag, smokeNum = bill.patientOccupationalDisease.smokeNum == null ? "" : Convert.ToString(bill.patientOccupationalDisease.smokeNum), smokeNumMax = bill.patientOccupationalDisease.smokeNumMax == null ? "" : Convert.ToString(bill.patientOccupationalDisease.smokeNumMax), smokeYears = bill.patientOccupationalDisease.smokeYears == null ? "" : Convert.ToString(bill.patientOccupationalDisease.smokeYears), drinkFlag = bill.patientOccupationalDisease.drinkFlag, drinkNum = bill.patientOccupationalDisease.drinkNum == null ? "" : Convert.ToString(bill.patientOccupationalDisease.drinkNum), drinkNumMax = bill.patientOccupationalDisease.drinkNumMax == null ? "" : Convert.ToString(bill.patientOccupationalDisease.drinkNumMax), drinkYears = bill.patientOccupationalDisease.drinkYears == null ? "" : Convert.ToString(bill.patientOccupationalDisease.drinkYears), other = bill.patientOccupationalDisease.other, occupationalAbnormal = bill.patientOccupationalDisease.occupationalAbnormal, noOccupationalAbnormal = bill.patientOccupationalDisease.noOccupationalAbnormal, occupationalAbSuggestion = bill.patientOccupationalDisease.occupationalAbSuggestion, noOccupAbSuggestion = bill.patientOccupationalDisease.noOccupAbSuggestion, handleSuggestion = bill.patientOccupationalDisease.handleSuggestion, }; pOccDisList.Add(patientoccupationaldisease); List pOcCheckList = new List(); foreach (var item in bill.ocCheckTypeDtos) { OcCheckType occhecktype = new OcCheckType() { ocCheckTypeId = item.ocCheckTypeId, displayName = item.displayName, simpleCode = item.simpleCode, displayOrder = item.displayOrder, }; pOcCheckList.Add(occhecktype); } List pPatOccHisList = new List(); foreach (var item in bill.patientOccupationalHistoryDtos) { PatientOccupationalHistory patientoccupationalhistory = new PatientOccupationalHistory() { org = item.org, beginDate = item.beginDate, endDate = item.endDate, workShop = item.workShop, workType = item.workType, poison = item.poison, protectiveMeasures = item.protectiveMeasures, displayOrder = item.displayOrder, }; pPatOccHisList.Add(patientoccupationalhistory); } List pPatOccMedHisList = new List(); foreach (var item in bill.patientOccupationalMedicalHistoryDtos) { PatientOccupationalMedicalHistory patientoccupationalmedicalhistory = new PatientOccupationalMedicalHistory() { occupationalDisease = item.occupationalDisease, diagnosisDate = item.diagnosisDate, diagnosisHospital = item.diagnosisHospital, isRecovery = item.isRecovery, treatmentMethods = item.treatmentMethods, displayOrder = item.displayOrder, }; pPatOccMedHisList.Add(patientoccupationalmedicalhistory); } List pPatPastMedHisList = new List(); foreach (var item in bill.patientPastMedicalHistoryDtos) { PatientPastMedicalHistory patientpastmedicalhistory = new PatientPastMedicalHistory() { occupationalDisease = item.occupationalDisease, diagnosisDate = item.diagnosisDate, diagnosisHospital = item.diagnosisHospital, isRecovery = item.isRecovery, treatmentMethods = item.treatmentMethods, displayOrder = item.displayOrder, }; pPatPastMedHisList.Add(patientpastmedicalhistory); } List pPatPoiList = new List(); foreach (var item in bill.patientPoisonDtos) { PatientPoison patientpoison = new PatientPoison() { poisonName = item.poisonName, occupationalAbnormalName = item.occupationalAbnormalName, displayOrder = item.displayOrder, }; pPatPoiList.Add(patientpoison); } List pPatSymList = new List(); foreach (var item in bill.patientSymptomDtos) { PatientSymptom patientsymptom = new PatientSymptom() { symptomName = item.symptomName, degree = item.degree, timeLength = item.timeLength, displayOrder = item.displayOrder, }; pPatSymList.Add(patientsymptom); } if (pOccDisList.Count == 0) { PatientOccupationalDisease patOccDis = new PatientOccupationalDisease(); pOccDisList.Add(patOccDis); } if (pOcCheckList.Count == 0) { OcCheckType patOccDis = new OcCheckType() { displayOrder = EMPTY_VALUE }; pOcCheckList.Add(patOccDis); } if (pPatOccHisList.Count == 0) { PatientOccupationalHistory patOccDis = new PatientOccupationalHistory() { displayOrder = EMPTY_VALUE }; pPatOccHisList.Add(patOccDis); } if (pPatOccMedHisList.Count == 0) { PatientOccupationalMedicalHistory patOccDis = new PatientOccupationalMedicalHistory() { displayOrder = EMPTY_VALUE }; pPatOccMedHisList.Add(patOccDis); } if (pPatPastMedHisList.Count == 0) { PatientPastMedicalHistory patOccDis = new PatientPastMedicalHistory() { displayOrder = EMPTY_VALUE }; pPatPastMedHisList.Add(patOccDis); } if (pPatPoiList.Count == 0) { PatientPoison patOccDis = new PatientPoison() { displayOrder = EMPTY_VALUE }; pPatPoiList.Add(patOccDis); } if (pPatSymList.Count == 0) { PatientSymptom patOccDis = new PatientSymptom() { displayOrder = EMPTY_VALUE }; pPatSymList.Add(patOccDis); } List pSumList = new List(); List pContentList = new List(); foreach (var item in bill.sumSummarys) { HRSumSummary hrsumsummary = new HRSumSummary() { summaryTitle = item.summaryTitle, summaryFlag = item.summaryFlag, displayOrder = item.displayOrder, }; foreach (var content in item.summaryContents) { HRSummaryContent hrsummarycontent = new HRSummaryContent() { summaryTitle = item.summaryTitle, summaryContent = content.summaryContent, displayOrder = content.displayOrder, }; pContentList.Add(hrsummarycontent); } pSumList.Add(hrsumsummary); } if (pSumList.Count == 0) { HRSumSummary hrsumsummary = new HRSumSummary() { displayOrder = EMPTY_VALUE }; pSumList.Add(hrsumsummary); } if (pContentList.Count == 0) { HRSummaryContent hrsummarycontent = new HRSummaryContent() { displayOrder = EMPTY_VALUE }; pContentList.Add(hrsummarycontent); } List pSugList = new List(); List pMedList = new List(); List pReasonList = new List(); List pGuideList = new List(); int orderNo = 0; string text = string.Empty; foreach (var item in bill.sumSuggestions) { HRSuggestion hrsuggestion = new HRSuggestion() { suggestionTitle = item.suggestionTitle, suggestionFlag = item.suggestionFlag, displayOrder = item.displayOrder, }; orderNo = 0; text = "{医学解释}"; var medicalInterSortList = item.medicalInterpretations.OrderBy(o => o.displayOrder).ToList(); foreach (var med in medicalInterSortList) { HRSugMedicalInterpretation hrsugmedicalinterpretation = new HRSugMedicalInterpretation() { suggestionTitle = item.suggestionTitle, suggestionContent = med.suggestionContent, displayOrder = med.displayOrder, }; orderNo++; pMedList.Add(hrsugmedicalinterpretation); if (medicalInterSortList.Count > 1) text += string.Format("{0}、{1}", orderNo, med.suggestionContent); else { text += string.Format("{0}", med.suggestionContent); } } if (medicalInterSortList.Count > 0) hrsuggestion.medicalText = text; orderNo = 0; text = "{常见原因}"; var commonReasonSortList = item.commonReasons.OrderBy(o => o.displayOrder).ToList(); foreach (var reason in commonReasonSortList) { HRSugCommonReason hrsugcommonreason = new HRSugCommonReason() { suggestionTitle = item.suggestionTitle, suggestionContent = reason.suggestionContent, displayOrder = reason.displayOrder, }; orderNo++; pReasonList.Add(hrsugcommonreason); if (commonReasonSortList.Count > 1) text += string.Format("{0}、{1}", orderNo, reason.suggestionContent); else { text += string.Format("{0}", reason.suggestionContent); } } if (commonReasonSortList.Count > 0) hrsuggestion.reasonText = text; orderNo = 0; text = "{健康指导}"; var healthGuidSortList = item.healthGuidances.OrderBy(o => o.displayOrder).ToList(); foreach (var guide in healthGuidSortList) { HRSugHealthGuidance hrsughealthguidance = new HRSugHealthGuidance() { suggestionTitle = item.suggestionTitle, suggestionContent = guide.suggestionContent, displayOrder = guide.displayOrder, }; orderNo++; pGuideList.Add(hrsughealthguidance); if (healthGuidSortList.Count > 1) text += string.Format("{0}、{1}", orderNo, guide.suggestionContent); else { text += string.Format("{0}", guide.suggestionContent); } } if (healthGuidSortList.Count > 0) hrsuggestion.guideText = text; pSugList.Add(hrsuggestion); } if (pSugList.Count == 0) { HRSuggestion hrsuggestion = new HRSuggestion() { displayOrder = EMPTY_VALUE }; ; pSugList.Add(hrsuggestion); } if (pMedList.Count == 0) { HRSugMedicalInterpretation hrsugmedicalinterpretation = new HRSugMedicalInterpretation() { displayOrder = EMPTY_VALUE }; pMedList.Add(hrsugmedicalinterpretation); } if (pReasonList.Count == 0) { HRSugCommonReason hrsugcommonreason = new HRSugCommonReason() { displayOrder = EMPTY_VALUE }; pReasonList.Add(hrsugcommonreason); } if (pGuideList.Count == 0) { HRSugHealthGuidance hrsughealthguidance = new HRSugHealthGuidance() { displayOrder = EMPTY_VALUE }; pGuideList.Add(hrsughealthguidance); } List pItemTypeList = new List(); List pAsbitemList = new List(); List pCheckItemList = new List(); List pPirctureList = new List(); List pSummaryList = new List(); List dExamItemTypeList = new List(); List dNotExamItemTypeList = new List(); string previousItemTypeId = "", previousAsbitemNames = ""; int absitemOrderNo = 0; orderNo = 0; text = ""; var registerCheckSortList = bill.registerChecks.OrderBy(o => o.displayOrder).ToList(); foreach (var asbitem in registerCheckSortList) { if (previousItemTypeId != asbitem.itemTypeId) { Report.Entity.PeisEntity.OccupationalDisease.ItemType type = bill.itemTypes.Where(p => (p.itemTypeId.Equals(asbitem.itemTypeId))).FirstOrDefault(); if (type != null) { RegisterCheckItemType registercheckitemtype = new RegisterCheckItemType() { medicalReportTypeId = type.medicalReportTypeId, itemTypeId = type.itemTypeId, itemTypeName = type.itemTypeName, displayOrder = type.displayOrder, }; if (type.medicalReportTypeId.Equals("3")) { DictExamItemType dictexamitemtype = new DictExamItemType() { medicalReportTypeId = type.medicalReportTypeId, itemTypeId = type.itemTypeId, itemTypePathCode = type.itemTypePathCode, itemTypeName = type.itemTypeName, displayOrder = type.displayOrder, }; dExamItemTypeList.Add(dictexamitemtype); } else { DictNotExamItemType dictnotexamitemtype = new DictNotExamItemType() { medicalReportTypeId = type.medicalReportTypeId, itemTypeId = type.itemTypeId, itemTypePathCode = type.itemTypePathCode, itemTypeName = type.itemTypeName, displayOrder = type.displayOrder, }; dNotExamItemTypeList.Add(dictnotexamitemtype); } pItemTypeList.Add(registercheckitemtype); } previousItemTypeId = asbitem.itemTypeId; } if (previousAsbitemNames != asbitem.asbitemNames) { previousAsbitemNames = asbitem.asbitemNames; absitemOrderNo++; } RegisterCheckAsbitem registercheckasbitem = new RegisterCheckAsbitem() { itemTypeId = asbitem.itemTypeId, asbitemNames = asbitem.asbitemNames, absOrderNo = absitemOrderNo, displayOrder = asbitem.displayOrder, checkDoctorName = asbitem.checkDoctorName, checkDoctorSignUrl = asbitem.checkDoctorSignUrl, auditorName = asbitem.auditorName, auditorSignUrl = asbitem.auditorSignUrl, checkDate = asbitem.checkDate.Replace("T", " ").Substring(0, 19), }; foreach (var item in asbitem.items) { RegisterCheckItem registercheckitem = new RegisterCheckItem() { asbitemNames = asbitem.asbitemNames, itemId = item.itemId, itemName = item.itemName, result = item.result, referenceRangeValue = item.referenceRangeValue, criticalRangeValue = item.criticalRangeValue, unit = item.unit, reportFontColor = item.reportFontColor, reportBackgroundColor = item.reportBackgroundColor, reportPrompt = item.reportPrompt, displayOrder = item.displayOrder, }; pCheckItemList.Add(registercheckitem); } foreach (var pic in asbitem.pictures) { var baseUri = new Uri(imageUrl); var fullUri = new Uri(baseUri, pic.pictureFileName); RegisterCheckPircture registercheckpircture = new RegisterCheckPircture() { asbitemNames = asbitem.asbitemNames, pictureFileName = fullUri.AbsoluteUri, pictureBase64 = pic.pictureBase64, displayOrder = pic.displayOrder, }; pPirctureList.Add(registercheckpircture); } orderNo = 0; text = ""; var summarysSortList = asbitem.summarys.OrderBy(o => o.displayOrder).ToList(); foreach (var sum in summarysSortList) { RegisterCheckSummary registerchecksummary = new RegisterCheckSummary() { asbitemNames = asbitem.asbitemNames, summary = sum.summary, displayOrder = sum.displayOrder, }; orderNo++; if (summarysSortList.Count > 1) text += string.Format("{0}:{1}", orderNo, sum.summary); else { text = string.Format("{0}", sum.summary); } pSummaryList.Add(registerchecksummary); } if (summarysSortList.Count > 0) registercheckasbitem.summarysText = text; pAsbitemList.Add(registercheckasbitem); } if (dExamItemTypeList.Count == 0) { DictExamItemType dictexamitemtype = new DictExamItemType() { displayOrder = EMPTY_VALUE }; ; dExamItemTypeList.Add(dictexamitemtype); } if (dNotExamItemTypeList.Count == 0) { DictNotExamItemType dictnotexamitemtype = new DictNotExamItemType() { displayOrder = EMPTY_VALUE }; ; dNotExamItemTypeList.Add(dictnotexamitemtype); } if (pItemTypeList.Count == 0) { RegisterCheckItemType registercheckitemtype = new RegisterCheckItemType() { displayOrder = EMPTY_VALUE }; ; pItemTypeList.Add(registercheckitemtype); } if (pAsbitemList.Count == 0) { RegisterCheckAsbitem registercheckasbitem = new RegisterCheckAsbitem() { absOrderNo = EMPTY_VALUE, displayOrder = EMPTY_VALUE }; pAsbitemList.Add(registercheckasbitem); } if (pCheckItemList.Count == 0) { RegisterCheckItem registercheckitem = new RegisterCheckItem() { reportFontColor = EMPTY_VALUE, reportBackgroundColor = EMPTY_VALUE, displayOrder = EMPTY_VALUE }; pCheckItemList.Add(registercheckitem); } if (pPirctureList.Count == 0) { RegisterCheckPircture registercheckpircture = new RegisterCheckPircture() { displayOrder = EMPTY_VALUE }; pPirctureList.Add(registercheckpircture); } if (pSummaryList.Count == 0) { RegisterCheckSummary registerchecksummary = new RegisterCheckSummary() { displayOrder = EMPTY_VALUE }; pSummaryList.Add(registerchecksummary); } Rpt0006 hrpersonhealth = new Rpt0006() { dictMedType = dictMedicalTypeList, dictExamItemType = dExamItemTypeList, dictNotExamItemType = dNotExamItemTypeList, pinfo = pHealthList, resItemType = pItemTypeList, resAsbitem = pAsbitemList, res = pCheckItemList, resPic = pPirctureList, resSum = pSummaryList, sug = pSugList, sugReason = pReasonList, sugGuide = pGuideList, sugMeical = pMedList, summ = pSumList, summContent = pContentList, odPat = pOccDisList, odCheckType = pOcCheckList, odHistory = pPatOccHisList, odMedicHistory = pPatOccMedHisList, odPastMedicHistory = pPatPastMedHisList, odPoison = pPatPoiList, odSymptom = pPatSymList, pic = ToPicTable(dict, websiteUrl), }; string dataSetJson = ClientConfig.SerializeObject(hrpersonhealth); if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; RemoveEmptyRows(dSet); return dSet; } public static async Task PatientGuideToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string json = FileHelper.ReadAllText(filePath); Dto0001 pg = ClientConfig.DeserializeObject(json); List pList = new List(); PatientInfo patientinfo = new PatientInfo() { patientRegisterId = pg.patientRegisterId, patientRegisterNo = pg.patientRegisterNo, patientName = pg.patientName, photo = pg.photo, barcodeImg = BarCodeHelper.BuildBarCode(pg.patientRegisterNo), sexName = pg.sexName, age = pg.age == null ? "" : Convert.ToString(pg.age), hisPatientId = pg.hisPatientId, medicalStartDate = pg.medicalStartDate, idNo = pg.idNo, mobileTelephone = pg.mobileTelephone, patientNo = pg.patientNo, medicalTimes = pg.medicalTimes, jobCardNo = pg.jobCardNo, medicalCardNo = pg.medicalCardNo, customerOrgName = pg.customerOrgName, customerOrgShortName = pg.customerOrgShortName, departmentName = pg.departmentName, customerOrgGroupName = pg.customerOrgGroupName, medicalPackageName = pg.medicalPackageName, personnelTypeName = pg.personnelTypeName, organizationUnitId = pg.organizationUnitId, organizationUnitName = pg.organizationUnitName, medicalCenterAddress = pg.medicalCenterAddress, medicalCenterTelphone = pg.medicalCenterTelphone, medicalCenterFax = pg.medicalCenterFax, medicalTypeName = pg.medicalTypeName, }; pList.Add(patientinfo); var guideSortList = pg.detail.OrderBy(o => o.displayOrder).ToList(); List guideList = new List(); List asbitemList = new List(); foreach (var item in guideSortList) { GuideInfo guideinfo = new GuideInfo() { patientRegisterId = pg.patientRegisterId, guideName = item.guideName, asbitemCount = item.asbitemCount, displayOrder = item.displayOrder, }; foreach (var asbitem in item.detail_Name) { AsbitemInfo asbiteminfo = new AsbitemInfo() { guideName = item.guideName, asbitemName = asbitem.asbitemName, checkRequestNo = asbitem.checkRequestNo, asbitemGuide = asbitem.asbitemGuide, displayOrder = asbitem.displayOrder, }; asbitemList.Add(asbiteminfo); } guideList.Add(guideinfo); } if (guideList.Count == 0) { GuideInfo guideinfo = new GuideInfo() { asbitemCount = EMPTY_VALUE, displayOrder = EMPTY_VALUE }; guideList.Add(guideinfo); } if (asbitemList.Count == 0) { AsbitemInfo asbiteminfo = new AsbitemInfo() { displayOrder = EMPTY_VALUE }; asbitemList.Add(asbiteminfo); } Rpt0001 guidees = new Rpt0001() { pinfo = pList, guide = guideList, asbitem = asbitemList, pic = ToPicTable(dict, websiteUrl), }; string dataSetJson = ClientConfig.SerializeObject(guidees); if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; RemoveEmptyRows(dSet); return dSet; } public static async Task TestRequestToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string dataSetJson = string.Empty; string json = FileHelper.ReadAllText(filePath); var bill = ClientConfig.DeserializeObject(json); var objStr = bill.lisRequest.ToString(); if (objStr.Contains("[")) { var array = ClientConfig.DeserializeObject(objStr); List testList = new List(); foreach (var item in array) { item.barcodeImg = BarCodeHelper.BuildBarCode(item.lisRequestNo); } List tqList = new List(); tqList = array.ToList(); var printArray = tqList.Where(p => p.samplePrintCount != "1").ToList(); int index = 0; foreach (var item in printArray) { index = 0; for (int i = 0; i < Convert.ToInt32(item.samplePrintCount) - 1; i++) { TestRequest req = new TestRequest() { patientName = item.patientName, sexName = item.sexName, age = item.age, sampleTypeName = item.sampleTypeName, sampleContainerName = item.sampleContainerName, containerColor = item.containerColor, sampleContainerRemark = item.sampleContainerRemark, lisRequestNo = item.lisRequestNo, barcodeImg = new byte[] { 1 }, patientRegisterNo = item.patientRegisterNo, asbitemNames = item.asbitemNames, customerOrgName = item.customerOrgName, departmentName = item.departmentName, sampleGroupName = item.sampleGroupName, mobileTelephone = item.mobileTelephone, //samplePrintCount = item.samplePrintCount, }; index = tqList.IndexOf(item); if (index == 0) { tqList.Insert(0, req); } else { tqList.Insert(index - 1, req); } } } Rpt0002 tr = new Rpt0002() { testRequestes = tqList.OrderBy(p => p.sampleGroupName).ToList(), }; dataSetJson = ClientConfig.SerializeObject(tr); } else { var obj = ClientConfig.DeserializeObject(objStr); obj.barcodeImg = BarCodeHelper.BuildBarCode(obj.lisRequestNo); List testList = new List(); testList.Add(obj); var printArray = testList.Where(p => p.samplePrintCount != "1").ToList(); int index = 0; foreach (var item in printArray) { index = 0; for (int i = 0; i < Convert.ToInt32(item.samplePrintCount) - 1; i++) { TestRequest req = new TestRequest() { patientName = item.patientName, sexName = item.sexName, age = item.age, sampleTypeName = item.sampleTypeName, sampleContainerName = item.sampleContainerName, containerColor = item.containerColor, sampleContainerRemark = item.sampleContainerRemark, lisRequestNo = item.lisRequestNo, barcodeImg = new byte[] { 1 }, patientRegisterNo = item.patientRegisterNo, asbitemNames = item.asbitemNames, customerOrgName = item.customerOrgName, departmentName = item.departmentName, sampleGroupName = item.sampleGroupName, mobileTelephone = item.mobileTelephone, //samplePrintCount = item.samplePrintCount, }; index = testList.IndexOf(item); if (index == 0) { testList.Insert(0, req); } else { testList.Insert(index - 1, req); } } } Rpt0002 tr = new Rpt0002() { testRequestes = testList, }; dataSetJson = ClientConfig.SerializeObject(tr); } if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; return dSet; } public static async Task ExamRequestToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string dataSetJson = string.Empty; string json = FileHelper.ReadAllText(filePath); var bill = ClientConfig.DeserializeObject(json); var objStr = bill.lisRequest.ToString(); if (objStr.Contains("[")) { var array = ClientConfig.DeserializeObject(objStr); List testList = new List(); foreach (var item in array) { item.barcodeImg = BarCodeHelper.BuildBarCode(item.checkRequestNo); } Rpt0004 tr = new Rpt0004() { exam = array.ToList(), }; dataSetJson = ClientConfig.SerializeObject(tr); } else { var obj = ClientConfig.DeserializeObject(objStr); obj.barcodeImg = BarCodeHelper.BuildBarCode(obj.checkRequestNo); List testList = new List(); testList.Add(obj); Rpt0004 tr = new Rpt0004() { exam = testList, }; dataSetJson = ClientConfig.SerializeObject(tr); } if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; return dSet; } public static async Task PayBillToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string json = FileHelper.ReadAllText(filePath); Dto0007 bill = ClientConfig.DeserializeObject(json); List pList = new List(); pList.Add(bill); Rpt0007 p = new Rpt0007() { payinfo = pList, pic = ToPicTable(dict, websiteUrl), }; string dataSetJson = ClientConfig.SerializeObject(p); if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; return dSet; } public static async Task OccuptionDiseaseFinalToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string dataSetJson = string.Empty; string json = FileHelper.ReadAllText(filePath); Dto0009 odf = ClientConfig.DeserializeObject(json); List odfList = new List(); ODFSummary odfsummary = new ODFSummary() { customerOrgName = odf.customerOrgName, certificateNo = odf.certificateNo, medicalTypeName = odf.medicalTypeName, medicalStartDate = odf.medicalStartDate, recordNumber = odf.recordNumber, medicalCenterName = odf.medicalCenterName, medicalCenterAddress = odf.medicalCenterAddress, reportDate = odf.reportDate, medicalSumCount = odf.medicalSumCount, whenLeavingWorkCount = odf.whenLeavingWorkCount, onDutyCount = odf.onDutyCount, poisonNames = odf.poisonNames, conclusions = odf.conclusions, jobTypes = odf.jobTypes, }; odfList.Add(odfsummary); List cdList = new List(); foreach (var item in odf.conclusionDetails) { ConclusionDetails conclusiondetails = new ConclusionDetails() { conclusionName = item.conclusionName, conclusionCount = item.conclusionCount, conclusionRatio = item.conclusionRatio, }; cdList.Add(conclusiondetails); } List aaList = new List(); foreach (var item in odf.asbitemAbnormals) { AsbitemAbnormal asbitemabnormal = new AsbitemAbnormal() { abnormalAsbitemName = item.abnormalAsbitemName, abnormalCount = item.abnormalCount, abnormalRatio = item.abnormalRatio, }; aaList.Add(asbitemabnormal); } if (cdList.Count == 0) { ConclusionDetails cd = new ConclusionDetails() { conclusionCount = EMPTY_VALUE }; cdList.Add(cd); } if (aaList.Count == 0) { AsbitemAbnormal aa = new AsbitemAbnormal() { abnormalCount = EMPTY_VALUE }; aaList.Add(aa); } Rpt0009 tr = new Rpt0009() { summary = odfList, cdetail = cdList, asbitem = aaList }; dataSetJson = ClientConfig.SerializeObject(tr); if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; RemoveEmptyRows(dSet); return dSet; } public static async Task OccuptionDiseaseDetailToDataSetAsync(string filePath, Dictionary dict, string websiteUrl, string apiUrl, bool isSaveJson = false) { Task task = Task.Factory.StartNew(() => { string dataSetJson = string.Empty; string json = FileHelper.ReadAllText(filePath); Dto0010 odf = ClientConfig.DeserializeObject(json); List baseInfos = new List(); Rpt0010_BaseInfo rpt0010_baseinfo = new Rpt0010_BaseInfo() { customerOrgName = odf.customerOrgName, certificateNo = odf.certificateNo, recordNumber = odf.recordNumber, medicalCenterName = odf.medicalCenterName, medicalStartDate = odf.medicalStartDate, reportDate = odf.reportDate, medicalResultDesc = odf.medicalResultDesc, }; baseInfos.Add(rpt0010_baseinfo); List checkTypeNames = new List(); if (odf.ocCheckTypeNames != null) { foreach (var item in odf.ocCheckTypeNames) { Rpt0010_OcCheckTypeName ocCheckTypeName = new Rpt0010_OcCheckTypeName() { typeName = item.ocCheckTypeName, isSelected = item.isSelected, }; checkTypeNames.Add(ocCheckTypeName); } } List odoaiDetails = new List(); foreach (var item in odf.otherDiseasesOrAbnormalIndividualsDetails) { Rpt0010_OtherDiseasesOrAbnormalIndividualsDetails rpt0010_odoaiDetail = new Rpt0010_OtherDiseasesOrAbnormalIndividualsDetails() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, sexName = item.sexName, age = item.age, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, anomalyIndex = item.anomalyIndex, handlingSuggestions = item.handlingSuggestions, medicalConclusion = item.medicalConclusion, ocCheckTypeName = item.ocCheckTypeName, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, displayOrder = item.displayOrder, }; odoaiDetails.Add(rpt0010_odoaiDetail); }; List nacdmedicalResults = new List(); foreach (var item in odf.noAbnormalConditionsDetails) { Rpt0010_NoAbnormalConditionsDetails rpt0010_nacdmedicalResult = new Rpt0010_NoAbnormalConditionsDetails() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, sexName = item.sexName, age = item.age, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, anomalyIndex = item.anomalyIndex, handlingSuggestions = item.handlingSuggestions, medicalConclusion = item.medicalConclusion, ocCheckTypeName = item.ocCheckTypeName, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, displayOrder = item.displayOrder, }; nacdmedicalResults.Add(rpt0010_nacdmedicalResult); }; List medicalResultAbnormalRates = new List(); foreach (var item in odf.medicalResultAbnormalRateDetails) { Rpt0010_MedicalResultAbnormalRate rpt0010_medicalresultabnormalrate = new Rpt0010_MedicalResultAbnormalRate() { asbitemName = item.asbitemName, abnormalRate = item.abnormalRate.ToString(), abnormalPatientNames = item.abnormalPatientNames, displayOrder = item.displayOrder, }; medicalResultAbnormalRates.Add(rpt0010_medicalresultabnormalrate); }; List missingItems = new List(); foreach (var item in odf.listOfMissingItemsDetails) { Rpt0010_MissingItems rpt0010_missingitems = new Rpt0010_MissingItems() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, ocCheckTypeName = item.ocCheckTypeName, sexName = item.sexName, age = item.age, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, unCheckAsbitemName = item.unCheckAsbitemName, displayOrder = item.displayOrder, }; missingItems.Add(rpt0010_missingitems); }; List uninspectedPersones = new List(); foreach (var item in odf.uninspectedPersonnelDetails) { Rpt0010_UninspectedPerson rpt0010_missingitems = new Rpt0010_UninspectedPerson() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, ocCheckTypeName = item.ocCheckTypeName, sexName = item.sexName, age = item.age, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, unCheckAsbitemName = item.unCheckAsbitemName, displayOrder = item.displayOrder, }; uninspectedPersones.Add(rpt0010_missingitems); }; List ocAbnormals = new List(); foreach (var item in odf.occupationalAbnormalDetails) { Rpt0010_OcAbnormal rpt0010_ocabnormal = new Rpt0010_OcAbnormal() { occupationalAbnormalName = item.occupationalAbnormalName, occupationalAbnormalCount = item.occupationalAbnormalCount.ToString(), occupationalAbnormalRatio = item.occupationalAbnormalRatio.ToString(), displayOrder = item.displayOrder, }; ocAbnormals.Add(rpt0010_ocabnormal); }; List ocCheckTypes = new List(); foreach (var item in odf.ocCheckTypeDetails) { Rpt0010_OcCheckType rpt0010_occhecktype = new Rpt0010_OcCheckType() { poisonNames = item.poisonNames, ocCheckTypeName = item.ocCheckTypeName, checkCount = item.checkCount, displayOrder = item.displayOrder, }; ocCheckTypes.Add(rpt0010_occhecktype); }; List ocContraindications = new List(); foreach (var item in odf.occupationalContraindicationDetails) { Rpt0010_OcContraindication rpt0010_occontraindication = new Rpt0010_OcContraindication() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, sexName = item.sexName, age = item.age, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, anomalyIndex = item.anomalyIndex, handlingSuggestions = item.handlingSuggestions, medicalConclusion = item.medicalConclusion, ocCheckTypeName = item.ocCheckTypeName, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, displayOrder = item.displayOrder, }; ocContraindications.Add(rpt0010_occontraindication); }; List reviewPersonnel = new List(); foreach (var item in odf.reviewPersonnelDetails) { Rpt0010_ReviewPersonnel rpt0010_reviewpersonnel = new Rpt0010_ReviewPersonnel() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, sexName = item.sexName, age = item.age, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, anomalyIndex = item.anomalyIndex, handlingSuggestions = item.handlingSuggestions, medicalConclusion = item.medicalConclusion, ocCheckTypeName = item.ocCheckTypeName, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, displayOrder = item.displayOrder, }; reviewPersonnel.Add(rpt0010_reviewpersonnel); }; List suspectedOcDiseases = new List(); foreach (var item in odf.suspectedOccupationalDiseaseDetails) { Rpt0010_SuspectedOcDisease rpt0010_suspectedocdisease = new Rpt0010_SuspectedOcDisease() { patientRegisterNo = item.patientRegisterNo, patientName = item.patientName, idNo = item.idNo, sexName = item.sexName, age = item.age, jobType = item.jobType, poisonWorkTime = item.poisonWorkTime, poisonNames = item.poisonNames, anomalyIndex = item.anomalyIndex, handlingSuggestions = item.handlingSuggestions, medicalConclusion = item.medicalConclusion, ocCheckTypeName = item.ocCheckTypeName, medicalStartDate = item.medicalStartDate, summaryDoctorName = item.summaryDoctorName, displayOrder = item.displayOrder, }; suspectedOcDiseases.Add(rpt0010_suspectedocdisease); }; if (checkTypeNames.Count == 0) { Rpt0010_OcCheckTypeName aa = new Rpt0010_OcCheckTypeName() { typeName = EMPTY_VALUE.ToString() }; checkTypeNames.Add(aa); } if (odoaiDetails.Count == 0) { Rpt0010_OtherDiseasesOrAbnormalIndividualsDetails aa = new Rpt0010_OtherDiseasesOrAbnormalIndividualsDetails(); odoaiDetails.Add(aa); } if (nacdmedicalResults.Count == 0) { Rpt0010_NoAbnormalConditionsDetails aa = new Rpt0010_NoAbnormalConditionsDetails(); nacdmedicalResults.Add(aa); } if (medicalResultAbnormalRates.Count == 0) { Rpt0010_MedicalResultAbnormalRate aa = new Rpt0010_MedicalResultAbnormalRate(); medicalResultAbnormalRates.Add(aa); } if (missingItems.Count == 0) { Rpt0010_MissingItems aa = new Rpt0010_MissingItems(); missingItems.Add(aa); } if (uninspectedPersones.Count == 0) { Rpt0010_UninspectedPerson aa = new Rpt0010_UninspectedPerson(); uninspectedPersones.Add(aa); } if (ocAbnormals.Count == 0) { Rpt0010_OcAbnormal aa = new Rpt0010_OcAbnormal(); ocAbnormals.Add(aa); } if (ocCheckTypes.Count == 0) { Rpt0010_OcCheckType aa = new Rpt0010_OcCheckType() { displayOrder = EMPTY_VALUE }; ocCheckTypes.Add(aa); } if (ocContraindications.Count == 0) { Rpt0010_OcContraindication aa = new Rpt0010_OcContraindication(); ocContraindications.Add(aa); } if (reviewPersonnel.Count == 0) { Rpt0010_ReviewPersonnel aa = new Rpt0010_ReviewPersonnel(); reviewPersonnel.Add(aa); } if (suspectedOcDiseases.Count == 0) { Rpt0010_SuspectedOcDisease aa = new Rpt0010_SuspectedOcDisease(); suspectedOcDiseases.Add(aa); } Rpt0010 tr = new Rpt0010() { baseInfo = baseInfos, odoaiDetail = odoaiDetails, nacdmedicalResult = nacdmedicalResults, medicalResultAbnormalRate = medicalResultAbnormalRates, missingItems = missingItems, uninspectedPerson = uninspectedPersones, ocAbnormals = ocAbnormals, ocCheckType = ocCheckTypes, ocContraindication = ocContraindications, reviewPersonnel = reviewPersonnel, suspectedOcDiseases = suspectedOcDiseases, ocCheckTypeNames = checkTypeNames, pic = ToPicTable(dict, websiteUrl), }; dataSetJson = ClientConfig.SerializeObject(tr); if (isSaveJson) FileHelper.WriteAllText(filePath, dataSetJson); DataSet ds = ClientConfig.DeserializeObject(dataSetJson); return ds; }); DataSet dSet = await task; RemoveEmptyRows(dSet); return dSet; } } }