public async Task <IActionResult> GetSelectJson(string enCode)
        {
            var data = from r in await _dialysisMachineApp.GetItemList(enCode)
                       select new
            {
                id   = r.F_DialylisBedNo,
                text = r.F_DialylisBedNo + "(" + r.F_DefaultType + ")"
            };

            return(Content(data.ToJson()));
        }
Exemple #2
0
        /// <summary>
        /// 根据分区编码查询床位信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <IActionResult> GetSelectJson(BaseInput input)
        {
            var data = from r in await _dialysisMachineApp.GetItemList(input == null? "" : input.KeyValue)
                       select new
            {
                r.F_Id,
                r.F_GroupName,
                r.F_DefaultType,
                r.F_DialylisBedNo,
                r.F_MachineName,
                r.F_MachineNo,
                r.F_ShowOrder
            };

            return(Ok(data));
        }
        /// <summary>
        /// 今日就诊-首页 记录单卡片
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> GetCardList(GetCardListInput input)
        {
            var query = _patVisitApp.GetList() //input.visitDate, input.groupName, input.visitNo
                        .Where(t => t.F_VisitDate == input.visitDate && t.F_GroupName == input.groupName && t.F_VisitNo == input.visitNo)
                        .Select(t => new
            {
                t.F_Id,
                t.F_Pid,
                t.F_DialysisType,
                t.F_GroupName,
                t.F_DialysisBedNo,
                t.F_DialyzerType1,
                t.F_HeparinType,
                t.F_HeparinAmount,
                t.F_HeparinUnit,
                t.F_DialysisStartTime,
                t.F_DialysisEndTime,
                t.F_VascularAccess,
                t.F_AccessName
            });
            var list = query.ToList();
            //床位排序
            var beds = await _dialysisMachineApp.GetItemList(input.groupName);

            var result = new List <GetCardListOutput>();
            //存储肝素、透析器字典
            Hashtable table = new Hashtable();

            foreach (var item in list)
            {
                if (item.F_HeparinType != null && !table.ContainsKey(item.F_HeparinType))
                {
                    var drug = await _drugsApp.GetForm(item.F_HeparinType);

                    table.Add(item.F_HeparinType, drug?.F_DrugName);
                }
                if (item.F_DialyzerType1 != null && !table.ContainsKey(item.F_DialyzerType1))
                {
                    var m = await _materialApp.GetForm(item.F_DialyzerType1);

                    table.Add(item.F_DialyzerType1, m?.F_MaterialName);
                }

                var output = new GetCardListOutput
                {
                    id                = item.F_Id,
                    groupName         = item.F_GroupName,
                    bedNo             = item.F_DialysisBedNo,
                    dialysisType      = item.F_DialysisType,
                    dialysisStartTime = item.F_DialysisStartTime,
                    dialysisEndTime   = item.F_DialysisEndTime,
                    vascularAccess    = item.F_VascularAccess,
                    accessName        = item.F_AccessName,
                    heparinAmount     = item.F_HeparinAmount,
                    heparinUnit       = item.F_HeparinUnit,
                    heparinType       = item.F_HeparinType == null ? "" : table[item.F_HeparinType].ToString(),
                    dialyzerType      = item.F_DialyzerType1 == null ? "" : table[item.F_DialyzerType1].ToString()
                };
                if (item.F_Pid == null)
                {
                    continue;
                }
                else
                {
                    var patient = await _patientApp.GetForm(item.F_Pid);

                    if (patient == null)
                    {
                        continue;
                    }
                    output.patientId = patient.F_Id;
                    if (patient.F_BirthDay != null)
                    {
                        output.patientAge = (DateTime.Today - patient.F_BirthDay.ToDate()).TotalDays.ToInt() / 365;
                    }
                    output.patientName = patient.F_Name;
                    output.beInfected  = "+".Equals(patient.F_Tp) || "+".Equals(patient.F_Hiv) || "+".Equals(patient.F_HBsAg) || "+".Equals(patient.F_HBeAg) || "+".Equals(patient.F_HBeAb);//阳性患者判断规则
                    output.headIcon    = patient.F_HeadIcon;
                }
                var bed = beds.First(t => t.F_DialylisBedNo.Equals(item.F_DialysisBedNo));
                if (bed == null)
                {
                    output.sortNo = 999;
                }
                else
                {
                    output.sortNo = bed.F_ShowOrder.ToInt();
                }
                if (item.F_DialysisStartTime == null)
                {
                    output.percent = 0;
                }
                else if (item.F_DialysisEndTime != null)
                {
                    output.percent = 100;
                }
                else
                {
                    output.percent = ((DateTime.Now - item.F_DialysisStartTime.ToDate()).TotalHours / 4).ToFloat(2);
                }
                result.Add(output);
            }
            var data = result.OrderBy(t => t.sortNo);

            return(Ok(data));
        }