Beispiel #1
0
        protected override void Execute(CodeActivityContext context)
        {
            ITracingService             tracingService  = (ITracingService)context.GetExtension <ITracingService>();
            IWorkflowContext            workflowContext = (IWorkflowContext)context.GetExtension <IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory  = (IOrganizationServiceFactory)context.GetExtension <IOrganizationServiceFactory>();
            IOrganizationService        service         = serviceFactory.CreateOrganizationService(workflowContext.UserId);

            tracingService.Trace("Patient Details using input and output parameters Workflow Started.");
            var patientName             = PatientName.Get(context);
            var dateOfBirth             = DateOfBirth.Get(context);
            var hospital                = ((EntityReference)(Hospital.Get(context))).Id;
            var hospitalid              = ((EntityReference)(Hospital.Get(context))).Name;
            var patientStatus           = PatientStatus.Get(context);
            var hospitalizationRequired = HospitalizationRequired.Get(context);
            var patientAge              = PatientAge.Get(context);
            var consultationFee         = ConsultationFee.Get(context);
            var estimatedAmount         = EstimatedAmount.Get(context);
            var treatmentCost           = ((OptionSetValue)(TreatmentCost.Get(context))).Value;
            var patientId               = PatientInOut.Get(context);

            tracingService.Trace($"Patient Name : {patientName}, Date Of Birth : {dateOfBirth}, Hospital : {hospital}, Patient Status : {patientStatus}, Hospitalization Required: {hospitalizationRequired}, Patient Age: {patientAge}, Consultation Fee : {consultationFee}, Estimated Amount : {estimatedAmount}, Treatment Cost : {treatmentCost}, Patient ID : {patientId}");
            var patientDetails = $"Patient Name : {patientName}, Date Of Birth : {dateOfBirth}, Hospital : {hospital}, Patient Status : {patientStatus}, Hospitalization Required: {hospitalizationRequired}, Patient Age: {patientAge}, Consultation Fee : {consultationFee}, Estimated Amount : {estimatedAmount}, Treatment Cost : {treatmentCost}, Patient ID : {patientId}";

            PatientInOut.Set(context, PatientInOut.ToString());
            ShowPatientDetails.Set(context, patientDetails);
            tracingService.Trace("Patient Details using input and output parameters Workflow Ended.");
        }
Beispiel #2
0
        /// <summary>
        /// 自定义每个页面的样式
        /// </summary>
        /// <param name="title">页面的标题</param>
        /// <param name="type">是选择卡片,还是数字键</param>
        /// <param name="pageNum">页面的页数</param>
        /// <param name="dataShowType">数据:血压,身高,腰围,体重中的一项</param>
        /// <param name="cardData">要写入卡片的数据</param>
        /// <param name="moveType">上一步下一步 上一步提交 下一步</param>
        public UserUIAllOf(string title, int pageNum, InputType type, DataShowType dataShowType, CardData cardData, MoveType moveType)
        {
            InitializeComponent();

            //标题
            var title1 = new Title
            {
                title     = title,
                BackColor = Color.White
            };

            panel1.Controls.Add(title1);
            title1.Dock = DockStyle.Fill;
            _titleOf    = title;

            //进度条
            var progressBar1 = new ProgressBarUser(pageNum);

            panel2.Controls.Add(progressBar1);
            progressBar1.Dock = DockStyle.Fill;
            _pageNum          = pageNum;
            //数据处理
            switch (type)            //卡片还是数字键输入
            {
            case InputType.KeyBoard: //如果是数字键的输入
                var dataInput1 = new DataInput();
                //数据输入事件
                dataInput1.SetInput += dataInput1_SetInput;    //输入
                //数据清除事件
                dataInput1.ClearInput += dataInput1_ClearInput;
                panel3.Controls.Add(dataInput1);
                dataInput1.Height = (int)(0.40 * panel3.Height / 0.55);
                dataInput1.Dock   = DockStyle.Bottom;
                _diDataInput      = dataInput1;
                switch (dataShowType)                                                  //是哪种数据:血压,身高,腰围,体重中的一项
                {
                case DataShowType.BloodPressure: var dataShowBp = new BloodPressure(); //血压
                    //
                    panel3.Controls.Add(dataShowBp);                                   //加入panel
                    dataShowBp.Dock   = DockStyle.Top;                                 //因为该panel是放卡片  或  键盘和显示数据  ,当时后者的时候,要一分为二
                    dataShowBp.Height = (int)(0.15 * panel3.Height / 0.55);            //设置占比
                    _bpPressure       = dataShowBp;                                    //将局部变量赋值给全局变量
                    break;

                case DataShowType.HeightData: var dataShowHd = new HeightData();        //身高
                    panel3.Controls.Add(dataShowHd);
                    dataShowHd.Dock   = DockStyle.Top;
                    dataShowHd.Height = (int)(0.15 * panel3.Height / 0.55);
                    _hdHeightData     = dataShowHd;
                    break;

                case DataShowType.WaistLine: var dataShowWl = new WaistLine();        //腰围
                    panel3.Controls.Add(dataShowWl);
                    dataShowWl.Dock   = DockStyle.Top;
                    dataShowWl.Height = (int)(0.15 * panel3.Height / 0.55);
                    _wlWaistLine      = dataShowWl;
                    break;

                case DataShowType.WeightData: var dataShowWd = new WeightData();        //体重
                    panel3.Controls.Add(dataShowWd);
                    dataShowWd.Dock   = DockStyle.Top;
                    dataShowWd.Height = (int)(0.15 * panel3.Height / 0.55);
                    _wdWeightData     = dataShowWd;
                    break;

                case DataShowType.PatientAge: var dataShowPa = new PatientAge();
                    panel3.Controls.Add(dataShowPa);
                    dataShowPa.Dock   = DockStyle.Top;
                    dataShowPa.Height = (int)(0.15 * panel3.Height / 0.55);
                    _paPatientAge     = dataShowPa;
                    break;

                default:
                    ;
                    break;
                }
                ShowType = dataShowType;
                break;

            case InputType.TwoMouseSelect:    //如果是两卡片输入
                var mouseTwoSelection = new TwoSelection(cardData.CardTitle, cardData.CardContent, cardData.Proportion);
                //注册卡片点击事件
                mouseTwoSelection.TwoSelectionClik += mouseTwoSelection_TwoSelectionClik;
                panel3.Controls.Add(mouseTwoSelection);
                mouseTwoSelection.Dock = DockStyle.Fill;
                break;

            case InputType.FourMouseSelect:    //如果是四卡片输入
                var mouseFourSelection = new FourSelection(cardData.CardTitle, cardData.CardContent, cardData.Proportion);
                //注册卡片点击事件
                mouseFourSelection.FourSelectClik += mouseFourSelection_FourSelectClik;
                panel3.Controls.Add(mouseFourSelection);
                mouseFourSelection.Dock = DockStyle.Fill;
                break;
            }
            InputStyle = type;
            //向前向后样式
            switch (moveType)
            {
            case MoveType.NextAndPrev:
                var moveNext = new PrevAndNext();
                _pnPrevAndNext       = moveNext;
                moveNext.RightString = "下一步";
                panel4.Controls.Add(moveNext);
                moveNext.Dock = DockStyle.Fill;
                //注册点击事件
                moveNext.Next += prevAndNext1_Next;    //下一步
                moveNext.Prev += prevAndNext1_Prev;    //上一步
                break;

            case MoveType.OnlyNext:
                var onlyNext = new OnlyNext();
                panel4.Controls.Add(onlyNext);
                onlyNext.Dock  = DockStyle.Fill;
                onlyNext.Next += onlyNext_Next;    //下一步
                break;

            case MoveType.PrevAndSubmit:
                var moveSubmit = new PrevAndNext();
                _pnPrevAndNext         = moveSubmit;
                moveSubmit.RightString = "提交";
                panel4.Controls.Add(moveSubmit);
                moveSubmit.Dock = DockStyle.Fill;
                //注册点击事件
                moveSubmit.Next += prevAndNext1_Next;    //提交,和上面下一步是一个事件
                moveSubmit.Prev += prevAndNext1_Prev;    //上一步
                break;
            }
        }