/// <summary>
        /// DLN1.2
        /// </summary>
        /// <param name="doc">doc文件</param>
        /// <param name="request">请求参数</param>
        private void NutritionCareReport(WordDocument doc, ReportRequest request)
        {
            INursingManageService service = IOCContainer.Instance.Resolve <INursingManageService>();

            IList <NutrtioncateRec> ncList = service.QueryNutrtioncateRec(new BaseRequest <NutrtioncateRecFilter> {
                Data = new NutrtioncateRecFilter {
                    FeeNo = request.feeNo
                }
            }).Data;

            if (ncList != null && ncList.Count > 0)
            {
                DataTable dt       = new DataTable();
                var       colCount = ncList.Count;
                for (var i = 0; i < colCount; i++)
                {
                    dt.Columns.Add((i + 1).ToString());
                }
                var dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Recorddate;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].DietPattern;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].NutrtionPathway, "L00.016");
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].DietWay, "L00.017");
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    var dinnerFreqP1 = "";
                    var dinnerFreqP2 = "";
                    var dinnerFreqP3 = "";
                    if (ncList[j].DinnerFreq.ToString().Split(',').Count() == 3)
                    {
                        dinnerFreqP1 = ncList[j].DinnerFreq.ToString().Split(',')[0];
                        dinnerFreqP2 = ncList[j].DinnerFreq.ToString().Split(',')[1];
                        dinnerFreqP3 = ncList[j].DinnerFreq.ToString().Split(',')[2];
                    }
                    dr[(j + 1).ToString()] = "正餐 " + dinnerFreqP1 + " 次/天\r点心 " + dinnerFreqP2 + " 次/天\r其他 " + dinnerFreqP2 + " 次/天";
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].ActivityAbility, "L00.018");
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Weight;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].OtherDisease;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Bmi;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].WeightEval, "L00.019");
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].DietState, "L00.020");
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].WaterUptake;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Kcal + "kcal/天\r" + "(主食类 " + ncList[j].KcalFood + " 份、\r肉鱼豆蛋 " + ncList[j].KcalFish + " 份、蔬菜 " + ncList[j].KcalVegetables + " 份、\r水果类 " + ncList[j].KcalFruit + " 份、\r油脂类" + ncList[j].KcalGrease + " 份)";
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Protein;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Salinity;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].PipeKcal + "kcal/天\r" + "蛋白质 " + ncList[j].PipeProtein + " g、\r冲管水量 " + ncList[j].PipleWater + "c.c.、\r其他水量 " + ncList[j].PipleOtherWater + " c.c.、\rVit补充 " + ncList[j].PipleVit;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].NutrtionDiag;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].SpecialDiet;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Suggestion;
                }
                dt.Rows.Add(dr);

                dr = dt.NewRow();
                for (var j = 0; j < colCount; j++)
                {
                    dr[(j + 1).ToString()] = ncList[j].Dietitian;
                }
                dt.Rows.Add(dr);

                doc.FillNutritionCateRecTable(0, dt);
            }
        }
Esempio n. 2
0
        protected override void Operation(WordDocument doc)
        {
            int id   = Convert.ToInt32(ParamId);
            var now  = DateTime.Now;
            var dtdc = new DateTime(1900, 1, 1);

            doc.ReplaceText("Org", GetOrgName(SecurityHelper.CurrentPrincipal.OrgId));
            doc.ReplaceText("year", StartDate.Year.ToString());
            var nurEval = carePlanservice.QueryNutritionEval(id);

            #region 临床检查

            if (nurEval != null)
            {
                #region 住民信息

                var residentInfo = carePlanservice.GetExportResidentInfo(Convert.ToInt64(nurEval.FEENO));

                if (residentInfo != null)
                {
                    doc.ReplaceText("name", residentInfo.Name ?? "");
                    doc.ReplaceText("birdate", residentInfo.BirthDate.HasValue ? Convert.ToDateTime(residentInfo.BirthDate).ToString("yyyy-MM-dd") : "");
                    doc.ReplaceText("age", residentInfo.Age.HasValue ? residentInfo.Age.ToString() : "");
                    doc.ReplaceText("sex", residentInfo.Sex ?? "未填");
                    doc.ReplaceText("bedno", residentInfo.BedNo ?? "");
                    doc.ReplaceText("ResidentNo", residentInfo.ResidentNo);
                    doc.ReplaceText("indate", residentInfo.InDate.HasValue ? Convert.ToDateTime(residentInfo.InDate).ToString("yyyy-MM-dd") : "");
                }
                else
                {
                    clearpersonInfo(doc);
                }

                #endregion

                #region 体重信息
                BaseRequest <NutrtionEvalFilter> requestnur = new BaseRequest <NutrtionEvalFilter>
                {
                    PageSize = 0,
                    Data     =
                    {
                        FeeNo   = Convert.ToInt64(nurEval.FEENO),
                        OrgId   = SecurityHelper.CurrentPrincipal.OrgId,
                        EndDate = StartDate,
                    }
                };
                var ipdresponse = resservice.QueryNutrtionEvalExtend(requestnur);

                if (ipdresponse.Data != null && ipdresponse.Data.Count > 0)
                {
                    doc.ReplaceText("iDealWeight", ipdresponse.Data[0].IDEALWEIGHT.HasValue ? ipdresponse.Data[0].IDEALWEIGHT.ToString() : "");
                }
                else
                {
                    doc.ReplaceText("iDealWeight", "");
                }

                BaseRequest <UnPlanWeightIndFilter> request = new BaseRequest <UnPlanWeightIndFilter>();
                request.CurrentPage       = 1;
                request.PageSize          = 100;
                request.Data.RegNo        = Convert.ToInt64(nurEval.REGNO);
                request.Data.FeeNo        = Convert.ToInt64(nurEval.FEENO);
                request.Data.ThisRecDate1 = dtdc;
                request.Data.ThisRecDate2 = StartDate;
                request.Data.OrgId        = SecurityHelper.CurrentPrincipal.OrgId;
                var unresponse = indexservice.QueryUnPlanWeightInd(request);


                if (unresponse.Data != null && unresponse.Data.Count > 0)
                {
                    doc.ReplaceText("height", unresponse.Data[0].ThisHeight.HasValue ? unresponse.Data[0].ThisHeight.ToString() : "");
                    doc.ReplaceText("ThisWeight", unresponse.Data[0].ThisWeight.HasValue ? unresponse.Data[0].ThisWeight.ToString() : "");
                    doc.ReplaceText("kneeLen", unresponse.Data[0].KneeLen.HasValue ? unresponse.Data[0].KneeLen.ToString() : "");

                    var count = 0;
                    if (unresponse.Data.Count >= 11)
                    {
                        count = 11;
                    }
                    else
                    {
                        count = unresponse.Data.Count;
                    }

                    DataTable dt       = new DataTable();
                    var       colCount = 0;
                    if (unresponse.Data.Count > 11)
                    {
                        colCount = 11;
                    }
                    else
                    {
                        colCount = unresponse.Data.Count;
                    }
                    for (var i = 0; i < colCount; i++)
                    {
                        dt.Columns.Add((i + 1).ToString());
                    }
                    var dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = unresponse.Data[j].ThisRecDate;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = unresponse.Data[j].ThisWeight;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = unresponse.Data[j].BMI;
                    }
                    dt.Rows.Add(dr);
                    doc.FillUnplanTable(2, dt);
                }
                else
                {
                    clearUnplanIpd(doc);
                }



                #endregion
                #region 生化检查数据

                //调用接口
                var biolist = carePlanservice.QueryBiochemistryList(Convert.ToInt32(nurEval.FEENO), StartDate.AddDays(1));

                if (biolist != null && biolist.Count > 0)
                {
                    DataTable dt       = new DataTable();
                    var       colCount = 0;
                    if (biolist.Count > 11)
                    {
                        colCount = 11;
                    }
                    else
                    {
                        colCount = biolist.Count;
                    }
                    for (var i = 0; i < colCount; i++)
                    {
                        dt.Columns.Add((i + 1).ToString());
                    }

                    var dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = Convert.ToDateTime(biolist[j].CHECKDATE).ToString("yyyy-MM-dd");
                    }

                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        var checkresult = string.Empty;

                        var result = biolist[j].ReportCheckRecdtl.Where(o => o.CHECKITEMNAME == "EASO%(嗜硷性白血球比)").ToList();
                        if (result == null)
                        {
                            checkresult = "";
                        }
                        else if (result != null && result.Count > 0)
                        {
                            checkresult = result.OrderByDescending(o => o.ID).ToList().FirstOrDefault().CHECKRESULTS;
                        }
                        dr[(j + 1).ToString()] = checkresult;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        var checkresult = string.Empty;

                        var result = biolist[j].ReportCheckRecdtl.Where(o => o.CHECKITEMNAME == "ALB(白蛋白)").ToList();
                        if (result == null)
                        {
                            checkresult = "";
                        }
                        else if (result != null && result.Count > 0)
                        {
                            checkresult = result.OrderByDescending(o => o.ID).ToList().FirstOrDefault().CHECKRESULTS;
                        }
                        dr[(j + 1).ToString()] = checkresult;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        var checkresult = string.Empty;

                        var result = biolist[j].ReportCheckRecdtl.Where(o => o.CHECKITEMNAME == "TG(三酸甘油脂)").ToList();
                        if (result == null)
                        {
                            checkresult = "";
                        }
                        else if (result != null && result.Count > 0)
                        {
                            checkresult = result.OrderByDescending(o => o.ID).ToList().FirstOrDefault().CHECKRESULTS;
                        }
                        dr[(j + 1).ToString()] = checkresult;
                    }
                    dt.Rows.Add(dr);

                    doc.FillBioTable(3, dt);
                }

                #endregion

                #region 营养照护单

                INursingManageService service = IOCContainer.Instance.Resolve <INursingManageService>();

                IList <NutrtioncateRec> ncList = service.QueryNutrtioncateRec(new BaseRequest <NutrtioncateRecFilter> {
                    Data = new NutrtioncateRecFilter {
                        FeeNo = Convert.ToInt64(nurEval.FEENO)
                    }
                }).Data;

                ncList = ncList.Where(o => o.Recorddate <= StartDate.AddDays(1)).ToList();


                if (ncList != null && ncList.Count > 0)
                {
                    DataTable dt       = new DataTable();
                    var       colCount = 0;
                    if (ncList.Count > 3)
                    {
                        colCount = 3;
                    }
                    else
                    {
                        colCount = ncList.Count;
                    }
                    for (var i = 0; i < colCount; i++)
                    {
                        dt.Columns.Add((i + 1).ToString());
                    }
                    var dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Recorddate;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].DietPattern;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].NutrtionPathway, "L00.016");
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].DietWay, "L00.017");
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        var dinnerFreqP1 = "";
                        var dinnerFreqP2 = "";
                        var dinnerFreqP3 = "";
                        if (ncList[j].DinnerFreq.ToString().Split(',').Count() == 3)
                        {
                            dinnerFreqP1 = ncList[j].DinnerFreq.ToString().Split(',')[0];
                            dinnerFreqP2 = ncList[j].DinnerFreq.ToString().Split(',')[1];
                            dinnerFreqP3 = ncList[j].DinnerFreq.ToString().Split(',')[2];
                        }
                        dr[(j + 1).ToString()] = "正餐 " + dinnerFreqP1 + " 次/天\r点心 " + dinnerFreqP2 + " 次/天\r其他 " + dinnerFreqP2 + " 次/天";
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].ActivityAbility, "L00.018");
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Weight;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].OtherDisease;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Bmi;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].WeightEval, "L00.019");
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = GetCodeDtlByCodeType(ncList[j].DietState, "L00.020");
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].WaterUptake;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Kcal + "kcal/天\r" + "(主食类 " + ncList[j].KcalFood + " 份、\r肉鱼豆蛋 " + ncList[j].KcalFish + " 份、蔬菜 " + ncList[j].KcalVegetables + " 份、\r水果类 " + ncList[j].KcalFruit + " 份、\r油脂类" + ncList[j].KcalGrease + " 份)";
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Protein;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Salinity;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].PipeKcal + "kcal/天\r" + "蛋白质 " + ncList[j].PipeProtein + " g、\r冲管水量 " + ncList[j].PipleWater + "c.c.、\r其他水量 " + ncList[j].PipleOtherWater + " c.c.、\rVit补充 " + ncList[j].PipleVit;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].NutrtionDiag;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].SpecialDiet;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Suggestion;
                    }
                    dt.Rows.Add(dr);

                    dr = dt.NewRow();
                    for (var j = 0; j < colCount; j++)
                    {
                        dr[(j + 1).ToString()] = ncList[j].Dietitian;
                    }
                    dt.Rows.Add(dr);

                    doc.FillNutritionCateRecTable(5, dt);
                }

                #endregion


                doc.ReplaceText("diseasediag", nurEval.DISEASEDIAG ?? "");
                doc.ReplaceText("CHEWDIFFCULT", carePlanservice.GetCodedtlInfo(nurEval.CHEWDIFFCULT, "L03.001"));     //咀嚼困难
                doc.ReplaceText("SWALLOWABILITY", carePlanservice.GetCodedtlInfo(nurEval.SWALLOWABILITY, "L00.004")); //吞咽能力
                doc.ReplaceText("EATPATTERN", carePlanservice.GetCodedtlInfo(nurEval.EATPATTERN, "L03.003"));         //进食型式  L03.006
                doc.ReplaceText("DIGESTIONPROBLEM", nurEval.DIGESTIONPROBLEM ?? "");
                doc.ReplaceText("FOODTABOO", nurEval.FOODTABOO ?? "");
                doc.ReplaceText("ACTIVITYABILITY", carePlanservice.GetCodedtlInfo(nurEval.ACTIVITYABILITY, "L03.006"));  //活动能力
                doc.ReplaceText("PRESSURESORE", nurEval.PRESSURESORE ?? "");
                doc.ReplaceText("EDEMA", nurEval.EDEMA ?? "");
                doc.ReplaceText("CURRENTDIET", nurEval.CURRENTDIET ?? "");
                doc.ReplaceText("EATAMOUNT", nurEval.EATAMOUNT ?? "");
                doc.ReplaceText("WATER", nurEval.WATER ?? "");
                doc.ReplaceText("SUPPLEMENTS", nurEval.SUPPLEMENTS ?? "");
                doc.ReplaceText("SNACK", nurEval.SNACK ?? "");
            }
            else
            {
                clearpersonInfo(doc);
                clearUnplanIpd(doc);
                clearClinical(doc);
            }
            #endregion
        }