Пример #1
0
        /// <inheritdoc/>
        public string ToDelimitedString()
        {
            CultureInfo culture = CultureInfo.CurrentCulture;

            return(string.Format(
                       culture,
                       StringHelper.StringFormatSequence(0, 26, Configuration.FieldSeparator),
                       Id,
                       ReferralStatus?.ToDelimitedString(),
                       ReferralPriority?.ToDelimitedString(),
                       ReferralType?.ToDelimitedString(),
                       ReferralDisposition != null ? string.Join(Configuration.FieldRepeatSeparator, ReferralDisposition.Select(x => x.ToDelimitedString())) : null,
                       ReferralCategory?.ToDelimitedString(),
                       OriginatingReferralIdentifier?.ToDelimitedString(),
                       EffectiveDate.HasValue ? EffectiveDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ExpirationDate.HasValue ? ExpirationDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ProcessDate.HasValue ? ProcessDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ReferralReason != null ? string.Join(Configuration.FieldRepeatSeparator, ReferralReason.Select(x => x.ToDelimitedString())) : null,
                       ExternalReferralIdentifier != null ? string.Join(Configuration.FieldRepeatSeparator, ExternalReferralIdentifier.Select(x => x.ToDelimitedString())) : null,
                       ReferralDocumentationCompletionStatus?.ToDelimitedString(),
                       PlannedTreatmentStopDate.HasValue ? PlannedTreatmentStopDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ReferralReasonText,
                       NumberOfAuthorizedTreatmentsUnits?.ToDelimitedString(),
                       NumberOfUsedTreatmentsUnits?.ToDelimitedString(),
                       NumberOfScheduleTreatmentsUnits?.ToDelimitedString(),
                       RemainingBenefitAmount?.ToDelimitedString(),
                       AuthorizedProvider?.ToDelimitedString(),
                       AuthorizedHealthProfessional?.ToDelimitedString(),
                       SourceText,
                       SourceDate.HasValue ? SourceDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       SourcePhone?.ToDelimitedString(),
                       Comment,
                       ActionCode
                       ).TrimEnd(Configuration.FieldSeparator.ToCharArray()));
        }
Пример #2
0
 public Referral(ReferralType type, string note, string accessory, Specialist specialist)
 {
     this.type       = type;
     this.note       = note;
     this.accessory  = accessory;
     this.specialist = specialist;
     this.id         = 0;
 }
Пример #3
0
        public ReferralLink CreateUserReferralLink(string userId, ReferralType referralType)
        {
            var model = new ReferralLink
            {
                UserId       = userId,
                ReferralType = referralType,
                Link         = GenerateReferralLink(),
                InsertDate   = DateTime.Now,
            };

            _context.ReferralLinks.Add(model);
            _context.SaveChanges();
            return(model);
        }
Пример #4
0
        /// <summary>
        /// Adds the referral type in the context to the data store.
        /// </summary>
        /// <returns>
        /// The ResultCode corresponding to the result of the operation.
        /// </returns>
        public ResultCode AddReferralType()
        {
            ResultCode result = ResultCode.Created;

            ReferralType referralType = (ReferralType)Context[Key.ReferralType];

            using (DataTable eventRewardsTable = new DataTable("EventRewards"))
            {
                // Build the EventRewards table parameter.
                eventRewardsTable.Locale = CultureInfo.InvariantCulture;
                eventRewardsTable.Columns.Add("Id", typeof(Guid));
                eventRewardsTable.Columns.Add("ReferralEventId", typeof(Int32));
                eventRewardsTable.Columns.Add("RewardId", typeof(Guid));
                eventRewardsTable.Columns.Add("PerUserLimit", typeof(Int32));
                foreach (ReferralEventReward referralEventReward in referralType.ReferralEventRewards)
                {
                    eventRewardsTable.Rows.Add(referralEventReward.Id, referralEventReward.ReferralEvent,
                                               referralEventReward.RewardId, referralEventReward.PerUserLimit);
                }

                // Add the referral type to the data layer.
                SqlProcedure("MergeReferralType",
                             new Dictionary <string, object>
                {
                    { "@id", referralType.Id },
                    { "@referrerId", referralType.ReferrerId },
                    { "@referrerTypeId", referralType.ReferrerType },
                    { "@referralVectorId", referralType.ReferralVector },
                    { "@rewardRecipientId", referralType.RewardRecipient },
                    { "@eventRewards", eventRewardsTable }
                },

                             (sqlDataReader) =>
                {
                    if (sqlDataReader.Read() == true)
                    {
                        referralType.Code = sqlDataReader.GetString(sqlDataReader.GetOrdinal("Code"));
                        if (sqlDataReader.GetBoolean(sqlDataReader.GetOrdinal("NewCode")) == false)
                        {
                            result = ResultCode.Success;
                        }
                    }
                });
            }

            return(result);
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ClinicalCaseProfile"/> class.
        /// </summary>
        /// <param name="initialLocation">The initial location.</param>
        /// <param name="clinicalCaseStartDate">The clinical case start date.</param>
        /// <param name="performedByStaff">The performed by staff.</param>
        /// <param name="patientPresentingProblemNote">The patient presenting problem note.</param>
        /// <param name="referralType">Type of the referral.</param>
        /// <param name="initialContactMethod">The initial contact method.</param>
        public ClinicalCaseProfile(
            Location initialLocation,
            DateTime?clinicalCaseStartDate,
            Staff performedByStaff,
            string patientPresentingProblemNote,
            ReferralType referralType,
            InitialContactMethod initialContactMethod)
        {
            Check.IsNotNull(initialLocation, "Initial location is required.");

            InitialLocation              = initialLocation;
            ClinicalCaseStartDate        = clinicalCaseStartDate;
            PerformedByStaff             = performedByStaff;
            PatientPresentingProblemNote = patientPresentingProblemNote;
            ReferralType         = referralType;
            InitialContactMethod = initialContactMethod;
        }
Пример #6
0
        /// <inheritdoc/>
        public string ToDelimitedString()
        {
            CultureInfo culture = CultureInfo.CurrentCulture;

            return(string.Format(
                       culture,
                       StringHelper.StringFormatSequence(0, 12, Configuration.FieldSeparator),
                       Id,
                       ReferralStatus?.ToDelimitedString(),
                       ReferralPriority?.ToDelimitedString(),
                       ReferralType?.ToDelimitedString(),
                       ReferralDisposition != null ? string.Join(Configuration.FieldRepeatSeparator, ReferralDisposition.Select(x => x.ToDelimitedString())) : null,
                       ReferralCategory?.ToDelimitedString(),
                       OriginatingReferralIdentifier?.ToDelimitedString(),
                       EffectiveDate.HasValue ? EffectiveDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ExpirationDate.HasValue ? ExpirationDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ProcessDate.HasValue ? ProcessDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ReferralReason != null ? string.Join(Configuration.FieldRepeatSeparator, ReferralReason.Select(x => x.ToDelimitedString())) : null,
                       ExternalReferralIdentifier != null ? string.Join(Configuration.FieldRepeatSeparator, ExternalReferralIdentifier.Select(x => x.ToDelimitedString())) : null
                       ).TrimEnd(Configuration.FieldSeparator.ToCharArray()));
        }
Пример #7
0
        ///<summary>Returns a list of patient names that are attached to this referral. Used to display in the referral edit window.</summary>
        public static string[] GetPats(long refNum, ReferralType refType)
        {
            if (RemotingClient.RemotingRole == RemotingRole.ClientWeb)
            {
                return(Meth.GetObject <string[]>(MethodBase.GetCurrentMethod(), refNum, refType));
            }
            string command = "SELECT CONCAT(CONCAT(patient.LName,', '),patient.FName) "
                             + "FROM patient,refattach,referral "
                             + "WHERE patient.PatNum=refattach.PatNum "
                             + "AND refattach.ReferralNum=referral.ReferralNum "
                             + "AND refattach.RefType=" + POut.Int((int)refType) + " "
                             + "AND referral.ReferralNum=" + POut.Long(refNum);
            DataTable table = Db.GetTable(command);

            string[] retStr = new string[table.Rows.Count];
            for (int i = 0; i < table.Rows.Count; i++)
            {
                retStr[i] = PIn.String(table.Rows[i][0].ToString());
            }
            return(retStr);
        }
        /// <summary>
        /// Build the ReferralType from the ReferralTypeDataContract.
        /// </summary>
        /// <returns>
        /// The result of the operation.
        /// </returns>
        protected virtual ResultCode BuildReferralType()
        {
            ResultCode result = ResultCode.Success;

            string passedRewardRecipient = ((int)Context[Key.RewardRecipient]).ToString();
            string rewardRecipient       = ((RewardRecipient)Context[Key.RewardRecipient]).ToString();

            if (passedRewardRecipient != rewardRecipient)
            {
                ReferralEventRewardDataContract signupReward = new ReferralEventRewardDataContract
                {
                    ReferralEvent = ReferralEvent.Signup.ToString(),
                    RewardId      = CommerceServiceConfig.Instance.UserSignupReferralRewardId,
                    PerUserLimit  = 0 // No limit
                };
                List <ReferralEventRewardDataContract> referalEventRewards = new List <ReferralEventRewardDataContract>
                {
                    signupReward
                };
                ReferralTypeDataContract referralTypeDataContract = new ReferralTypeDataContract
                {
                    ReferralVector       = ReferralVector.Unknown.ToString(),
                    RewardRecipient      = rewardRecipient,
                    ReferralEventRewards = referalEventRewards
                };
                ReferralType referralType = new ReferralType()
                {
                    ReferrerId   = (Guid)Context[Key.GlobalUserId],
                    ReferrerType = ReferrerType.User
                };

                result = BuildReferralType(referralTypeDataContract, referralType);
            }
            else
            {
                result = ResultCode.InvalidParameter;
            }

            return(result);
        }
Пример #9
0
        public Referral Read(uint id)
        {
            List <string[]> data = Persistence.ReadEntryByPrimaryKey(path, id.ToString());

            if (data.Count == 1)
            {
                uint         refID     = uint.Parse(data[0][0]);
                int          type      = int.Parse(data[0][1]);
                ReferralType refType   = (ReferralType)type;
                string       note      = data[0][2];
                string       accessory = data[0][3];
                Specialist   s         = null;
                if (!data[0][4].Equals(""))
                {
                    uint specID = uint.Parse(data[0][4]);
                    s = (Specialist)PeopleRepository.GetInstance().Read(specID);
                }
                Referral ret = new Referral(refType, note, accessory, s);
                ret.SetId(refID);
                return(ret);
            }
            return(null);
        }
Пример #10
0
 /// <summary>
 /// Assigns the type of the referral.
 /// </summary>
 /// <param name="referralType">Type of the referral.</param>
 /// <returns>A ClinicalCaseProfileBuilder.</returns>
 public ClinicalCaseProfileBuilder WithReferralType(ReferralType referralType)
 {
     _referralType = referralType;
     return this;
 }
Пример #11
0
        public ReferralLink CreateUserReferralLink(ReferralType referralType)
        {
            var userId = _userManager.GetUserId(Core.Helpers.AppContext.Current.User);

            return(CreateUserReferralLink(userId, referralType));
        }
Пример #12
0
 public async Task <ReferralLink> GetUserReferralLink(string userId, ReferralType referralType)
 {
     return(await _context.ReferralLinks.FirstOrDefaultAsync(l => l.UserId == userId && l.ReferralType == referralType));
 }
Пример #13
0
        public async Task <ReferralLink> GetUserReferralLink(ReferralType referralType)
        {
            var userId = _userManager.GetUserId(Core.Helpers.AppContext.Current.User);

            return(await GetUserReferralLink(userId, referralType));
        }
Пример #14
0
 /// <summary>
 /// Assigns the type of the referral.
 /// </summary>
 /// <param name="referralType">Type of the referral.</param>
 /// <returns>A ClinicalCaseProfileBuilder.</returns>
 public ClinicalCaseProfileBuilder WithReferralType(ReferralType referralType)
 {
     _referralType = referralType;
     return(this);
 }
        public async Task <ActionResult> MyReferralLink(ReferralType referralType)
        {
            var model = await _referralLinkRepository.GetUserReferralLink(referralType);

            return(PartialView(model));
        }
Пример #16
0
        public async Task <ReferralTree> AddReferralTreeItem(string parent, string child, ReferralType refType)
        {
            var model = new ReferralTree
            {
                ParentNodeId = parent,
                ChildNodeId  = child,
                ReferralType = refType
            };

            _context.ReferralTree.Add(model);
            await _context.SaveChangesAsync();

            return(model);
        }
Пример #17
0
        public static Gov.Jag.Embc.Public.ViewModels.Referral Generate(ReferralType type, string registrationId)
        {
            var referral = createBaseReferral();

            referral.EssNumber = registrationId;
            switch (type)
            {
            case ReferralType.Food_Groceries:
                referral.Type         = "Food";
                referral.SubType      = "Groceries";
                referral.NumDaysMeals = 3;
                break;

            case ReferralType.Food_Restaurant:
                referral.Type          = "Food";
                referral.SubType       = "Restaurant";
                referral.NumBreakfasts = 4;
                referral.NumLunches    = 5;
                referral.NumDinners    = 6;
                break;

            case ReferralType.Transportation_Taxi:
                referral.Type        = "Transportation";
                referral.SubType     = "Taxi";
                referral.FromAddress = "here";
                referral.ToAddress   = "there";
                break;

            case ReferralType.Transportation_Other:
                referral.Type    = "Transportation";
                referral.SubType = "Other";
                referral.OtherTransportModeDetails = "skytrain and seabus";
                break;

            case ReferralType.Lodging_Hotel:
                referral.Type      = "Lodging";
                referral.SubType   = "Hotel";
                referral.NumNights = 5;
                referral.NumRooms  = 2;
                break;

            case ReferralType.Lodging_Group:
                referral.Type      = "Lodging";
                referral.SubType   = "Group";
                referral.NumNights = 5;
                break;

            case ReferralType.Lodging_Billeting:
                referral.Type      = "Lodging";
                referral.SubType   = "Billeting";
                referral.NumNights = 5;
                break;

            case ReferralType.Incidentals:
                referral.Type          = "Incidentals";
                referral.SubType       = null;
                referral.ApprovedItems = "approved items";
                break;

            case ReferralType.Clothing:
                referral.Type    = "Clothing";
                referral.SubType = null;
                referral.ExtremeWinterConditions = true;
                break;
            }

            return(referral);
        }
        /// <summary>
        /// Populate the specified ReferralType from the specified ReferralTypeDataContract.
        /// </summary>
        /// <param name="referralTypeDataContract">
        /// The ReferralTypeDataContract to use to populate the ReferralType.
        /// </param>
        /// <param name="referralType">
        /// The ReferralType to populate.
        /// </param>
        /// <returns>
        /// The result of the operation.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// * Parameter referralTypeDataContract cannot be null.
        /// -OR-
        /// * Parameter referralType cannot be null.
        /// </exception>
        protected internal ResultCode BuildReferralType(ReferralTypeDataContract referralTypeDataContract,
                                                        ReferralType referralType)
        {
            if (referralTypeDataContract == null)
            {
                throw new ArgumentNullException("referralTypeDataContract", "Parameter referralTypeDataContract cannot be null.");
            }

            if (referralType == null)
            {
                throw new ArgumentNullException("referralType", "Parameter referralType cannot be null.");
            }

            ResultCode result = ResultCode.Success;

            ReferralVector  referralVector  = ReferralVector.Twitter;
            RewardRecipient rewardRecipient = RewardRecipient.Referrer;
            ReferralEvent   referralEvent   = ReferralEvent.Signup;
            bool            stepResult      = true;

            stepResult = Enum.TryParse <ReferralVector>(referralTypeDataContract.ReferralVector, true, out referralVector);
            if (stepResult == true)
            {
                referralType.ReferralVector = referralVector;

                stepResult = Enum.TryParse <RewardRecipient>(referralTypeDataContract.RewardRecipient, true, out rewardRecipient);
            }
            if (stepResult == true)
            {
                referralType.RewardRecipient = rewardRecipient;

                stepResult = referralTypeDataContract.ReferralEventRewards != null;
            }
            if (stepResult == true)
            {
                Dictionary <ReferralEvent, bool> registeredEvents = new Dictionary <ReferralEvent, bool>();

                foreach (ReferralEventRewardDataContract referralEventRewardDataContract
                         in referralTypeDataContract.ReferralEventRewards)
                {
                    ReferralEventReward referralEventReward = new ReferralEventReward();

                    stepResult = Enum.TryParse <ReferralEvent>(referralEventRewardDataContract.ReferralEvent, true,
                                                               out referralEvent);
                    if (stepResult == true)
                    {
                        if (registeredEvents.ContainsKey(referralEvent) == false)
                        {
                            registeredEvents[referralEvent] = true;
                        }
                        else
                        {
                            stepResult = false;
                        }
                    }
                    if (stepResult == true)
                    {
                        referralEventReward.ReferralEvent = referralEvent;

                        stepResult = referralEventRewardDataContract.RewardId != Guid.Empty;
                    }
                    if (stepResult == true)
                    {
                        referralEventReward.RewardId = referralEventRewardDataContract.RewardId;

                        stepResult = referralEventRewardDataContract.PerUserLimit >= 0;
                    }
                    if (stepResult == true)
                    {
                        referralEventReward.PerUserLimit = referralEventRewardDataContract.PerUserLimit;

                        referralType.ReferralEventRewards.Add(referralEventReward);
                    }
                    else
                    {
                        break;
                    }
                }
            }
            if (stepResult == true)
            {
                stepResult = referralType.ReferralEventRewards.Count > 0;
            }
            if (stepResult == true)
            {
                Context[Key.ReferralType] = referralType;
                ReferralType = referralType;
            }
            else
            {
                result = ResultCode.InvalidParameter;
            }

            return(result);
        }