コード例 #1
0
            internal override void ApplyDefaults(ProcedureRequisition procedureRequisition, OrderEditorComponent component)
            {
                // apply the defaults iff this requisition is specifically the one that was requested to be edited
                if (!EntityRef.Equals(procedureRequisition.ProcedureRef, this.ProcedureRef, true))
                {
                    return;
                }
                if (!procedureRequisition.CanModify)
                {
                    return;
                }

                if (this.Defaults.ScheduledTime.HasValue)
                {
                    procedureRequisition.ScheduledTime = this.Defaults.ScheduledTime.Value;
                }

                if (this.Defaults.ScheduledDuration.HasValue)
                {
                    procedureRequisition.ScheduledDuration = this.Defaults.ScheduledDuration.Value;
                }

                if (this.Defaults.ModalityRef != null)
                {
                    var modality = component._modalityChoices.FirstOrDefault(m => m.ModalityRef.Equals(this.Defaults.ModalityRef, true));
                    procedureRequisition.Modality = modality;
                }
            }
コード例 #2
0
ファイル: OrderEntryAssembler.cs プロジェクト: hksonngan/Xian
        public void UpdateProcedureFromRequisition(Procedure procedure, ProcedureRequisition requisition, Staff currentUserStaff, IPersistenceContext context)
        {
            // check if the procedure was cancelled
            if (requisition.Cancelled)
            {
                if (procedure.Status == ProcedureStatus.SC)
                {
                    // if RP is still scheduled, cancel it
                    procedure.Cancel();
                }
                else if (procedure.Status == ProcedureStatus.IP)
                {
                    // if RP in-progress, discontinue it
                    procedure.Discontinue();
                }

                // early exit - nothing else to update
                return;
            }

            // The following properties are appropriate only for procedures in SC status.
            if (!IsProcedureModifiable(procedure))
            {
                return;
            }

            procedure.Schedule(requisition.ScheduledTime, requisition.ScheduledDuration);
            procedure.SchedulingCode = EnumUtils.GetEnumValue <SchedulingCodeEnum>(requisition.SchedulingCode, context);

            procedure.PerformingFacility   = context.Load <Facility>(requisition.PerformingFacility.FacilityRef, EntityLoadFlags.Proxy);
            procedure.PerformingDepartment = requisition.PerformingDepartment == null ? null
                                : context.Load <Department>(requisition.PerformingDepartment.DepartmentRef, EntityLoadFlags.Proxy);

            // if the requisition explicitly specifies a modality, assign that modality to all MPS
            // (we ignore the fact that the procedure plan can theoretically contain modality procedures steps spanning multiple
            // DICOM modalities, since in the small clinic use-case, each procedure type generally only has a single MPS)
            if (requisition.Modality != null)
            {
                foreach (var mps in procedure.ModalityProcedureSteps)
                {
                    mps.Modality = context.Load <Modality>(requisition.Modality.ModalityRef, EntityLoadFlags.Proxy);
                }
            }

            procedure.Laterality = EnumUtils.GetEnumValue <Laterality>(requisition.Laterality);
            procedure.Portable   = requisition.PortableModality;

            if (requisition.CheckedIn && procedure.IsPreCheckIn)
            {
                procedure.CheckIn(currentUserStaff, null);
            }
            else if (!requisition.CheckedIn && procedure.IsCheckedIn)
            {
                procedure.RevertCheckIn();
            }
        }
コード例 #3
0
            internal override void ApplyDefaults(ProcedureRequisition procedureRequisition, OrderEditorComponent component)
            {
                if (this.Defaults.ScheduledTime.HasValue)
                {
                    procedureRequisition.ScheduledTime = ComputeScheduledTime(this.Defaults.ScheduledTime.Value, component._proceduresTable.Items);
                }

                if (this.Defaults.ModalityRef != null)
                {
                    var modality = component._modalityChoices.FirstOrDefault(m => m.ModalityRef.Equals(this.Defaults.ModalityRef, true));
                    procedureRequisition.Modality = modality;
                }
            }
コード例 #4
0
        public ProcedureEditorComponent(
            ProcedureRequisition requisition,
            Mode mode,
            List <FacilitySummary> facilityChoices,
            List <DepartmentSummary> departmentChoices,
            List <ModalitySummary> modalityChoices,
            List <EnumValueInfo> lateralityChoices,
            List <EnumValueInfo> schedulingCodeChoices)
            : base(facilityChoices, departmentChoices, modalityChoices, lateralityChoices, schedulingCodeChoices)
        {
            Platform.CheckForNullReference(requisition, "requisition");

            _mode        = mode;
            _requisition = requisition;
        }
コード例 #5
0
 /// <summary>
 /// Applies default values to the specified procedure requisition.
 /// </summary>
 /// <param name="procedureRequisition"></param>
 /// <param name="component"></param>
 internal abstract void ApplyDefaults(ProcedureRequisition procedureRequisition, OrderEditorComponent component);
コード例 #6
0
ファイル: ProcedureFormat.cs プロジェクト: bangush/server-1
 /// <summary>
 /// Formats the procedure name, portable and laterality similar to "Name (Portable/Laterality)".
 /// Name is formatted according to the default person name format as specified in <see cref="FormatSettings"/>
 /// </summary>
 /// <param name="p"></param>
 /// <returns></returns>
 public static string Format(ProcedureRequisition p)
 {
     return(Format(p.ProcedureType.Name, p.PortableModality, p.Laterality, FormatSettings.Default.ProcedurePortableLateralityDefaultFormat));
 }