コード例 #1
0
        /// <summary>
        /// Translates the specified clinical payor coverage.
        /// </summary>
        /// <param name="clinicalPayorCoverage">The clinical payor coverage.</param>
        /// <returns>A billing PayorCoverage.</returns>
        public PayorCoverage Translate(PayorCoverageCache clinicalPayorCoverage)
        {
            if (clinicalPayorCoverage == null)
            {
                return(null);
            }

            var payor = _payorRepository.GetByKey(clinicalPayorCoverage.PayorCache.Key);

            var clinicalPayorSubscriber         = clinicalPayorCoverage.PayorSubscriberCache;
            var payorSubscriberRelationshipType =
                _lookupValueRepository.GetLookupByWellKnownName <PayorSubscriberRelationshipType> (
                    clinicalPayorSubscriber.PayorSubscriberRelationshipCacheType.WellKnownName);
            var payorSubscriber = new PayorSubscriber(
                clinicalPayorSubscriber.Address,
                clinicalPayorSubscriber.BirthDate,
                clinicalPayorSubscriber.AdministrativeGender,
                clinicalPayorSubscriber.Name,
                payorSubscriberRelationshipType);

            var payorCoverageType =
                _lookupValueRepository.GetLookupByWellKnownName <PayorCoverageType> (clinicalPayorCoverage.PayorCoverageCacheType.WellKnownName);

            var billingPayorCoverage = new PayorCoverage(
                payor, payorSubscriber, clinicalPayorCoverage.MemberNumber, clinicalPayorCoverage.EffectiveDateRange, payorCoverageType);

            return(billingPayorCoverage);
        }