コード例 #1
0
        public string GetPersonIdFieldName()
        {
            if (Persons != null && Persons.Any())
            {
                return(Persons[0].PersonId);
            }

            if (PayerPlanPeriods != null && PayerPlanPeriods.Any())
            {
                return(PayerPlanPeriods[0].PersonId);
            }

            if (ConditionOccurrence != null && ConditionOccurrence.Any())
            {
                return(ConditionOccurrence[0].PersonId);
            }

            if (Death != null && Death.Any())
            {
                return(Death[0].PersonId);
            }

            if (DrugExposure != null && DrugExposure.Any())
            {
                return(DrugExposure[0].PersonId);
            }

            if (ProcedureOccurrence != null && ProcedureOccurrence.Any())
            {
                return(ProcedureOccurrence[0].PersonId);
            }

            if (Observation != null && Observation.Any())
            {
                return(Observation[0].PersonId);
            }

            if (Measurement != null && Measurement.Any())
            {
                return(Measurement[0].PersonId);
            }

            if (VisitOccurrence != null && VisitOccurrence.Any())
            {
                return(VisitOccurrence[0].PersonId);
            }

            if (Cohort != null && Cohort.Any())
            {
                return(Cohort[0].PersonId);
            }

            if (DeviceExposure != null && DeviceExposure.Any())
            {
                return(DeviceExposure[0].PersonId);
            }

            throw new Exception("Cant find PersonId FieldName " + this.FileName);
        }
コード例 #2
0
ファイル: DeviceCost.cs プロジェクト: lanicon/ETL-CDMBuilder
        public DeviceCost(DeviceExposure ent)
        //: base(ent)
        {
            //Init(ent);

            Id       = ent.Id;
            PersonId = ent.PersonId;
            //SourceRecordGuid = ent.SourceRecordGuid;
        }
コード例 #3
0
        public DeviceCost CreateEnity(DeviceExposure de, IDataRecord reader, KeyMasterOffset keyOffset)
        {
            var paidCopay            = reader.GetDecimal(PaidCopay);
            var paidCoinsurance      = reader.GetDecimal(PaidCoinsurance);
            var paidTowardDeductible = reader.GetDecimal(PaidTowardDeductible);


            decimal?totalOutOfPocket = null;

            if (paidCopay.HasValue && paidCoinsurance.HasValue && paidTowardDeductible.HasValue)
            {
                totalOutOfPocket = paidCopay + paidCoinsurance + paidTowardDeductible;
            }
            else if (paidCoinsurance.HasValue && paidTowardDeductible.HasValue)
            {
                totalOutOfPocket = paidCoinsurance + paidTowardDeductible;
            }

            long?  revenueCodeConceptId = null;
            string revenueCodeSource    = null;

            if (Concepts != null)
            {
                if (Concepts.Length > 0)
                {
                    var revenueCodeConcept = Concepts[0];

                    if (revenueCodeConcept.Fields.Length > 0)
                    {
                        revenueCodeSource = reader.GetString(revenueCodeConcept.Fields[0].Key);

                        var revenueConcepts = revenueCodeConcept.GetConceptIdValues(Vocabulary, revenueCodeConcept.Fields[0],
                                                                                    reader);
                        if (revenueConcepts.Count > 0)
                        {
                            revenueCodeConceptId = revenueConcepts[0].ConceptId;
                        }
                    }
                }
            }

            return(new DeviceCost(de)
            {
                DeviceCostId = keyOffset.DeviceCostId,
                PaidCopay = paidCopay,
                PaidCoinsurance = paidCoinsurance,
                PaidTowardDeductible = paidTowardDeductible,
                PaidByPayer = reader.GetDecimal(PaidByPayer),
                PaidByCoordinationBenefits = reader.GetDecimal(PaidByCoordinationBenefits),
                TotalPaid = reader.GetDecimal(TotalPaid),
                TotalOutOfPocket = totalOutOfPocket,
                CurrencyConceptId = reader.GetLong(CurrencyConceptId) ?? 0,
                RevenueCodeConceptId = revenueCodeConceptId,
                RevenueCodeSourceValue = revenueCodeSource,
            });
        }
コード例 #4
0
        private void AddChildData(DeviceExposure parent, DeviceCost child)
        {
            if (child.PaidCopay == 0 && child.PaidCoinsurance == 0 && child.PaidTowardDeductible == 0 &&
                child.PaidByPayer == 0 && child.TotalPaid == 0)
            {
                return;
            }

            _personBuilders[parent.PersonId].Value.AddChildData(parent, child);
        }
コード例 #5
0
        public DeviceCost CreateEnity(DeviceExposure de, IDataRecord reader, KeyMasterOffset keyOffset)
        {
            var paidCopay            = reader.GetDecimal(PaidCopay);
            var paidCoinsurance      = reader.GetDecimal(PaidCoinsurance);
            var paidTowardDeductible = reader.GetDecimal(PaidTowardDeductible);

            decimal?totalOutOfPocket = null;

            if (paidCopay.HasValue && paidCoinsurance.HasValue && paidTowardDeductible.HasValue)
            {
                totalOutOfPocket = paidCopay + paidCoinsurance + paidTowardDeductible;
            }
            else if (paidCoinsurance.HasValue && paidTowardDeductible.HasValue)
            {
                totalOutOfPocket = paidCoinsurance + paidTowardDeductible;
            }

            long?  drgConceptId;
            string drgSource;
            long?  revenueCodeConceptId;
            string revenueCodeSource;

            PopulateOthersConcepts(reader, out drgConceptId, out drgSource, out revenueCodeConceptId, out revenueCodeSource);

            return(new DeviceCost(de)
            {
                DeviceCostId = keyOffset.DeviceCostId,
                PaidCopay = paidCopay,
                PaidCoinsurance = paidCoinsurance,
                PaidTowardDeductible = paidTowardDeductible,
                PaidByPayer = reader.GetDecimal(PaidByPayer),
                PaidByCoordinationBenefits = reader.GetDecimal(PaidByCoordinationBenefits),
                TotalPaid = reader.GetDecimal(TotalPaid),
                TotalOutOfPocket = totalOutOfPocket,
                CurrencyConceptId = reader.GetLong(CurrencyConceptId) ?? 0,
                DrgConceptId = drgConceptId,
                DrgSourceValue = drgSource,
                RevenueCodeConceptId = revenueCodeConceptId,
                RevenueCodeSourceValue = revenueCodeSource,
            });
        }
コード例 #6
0
        public void AddData(IEntity data, EntityType entityType)
        {
            switch (entityType)
            {
            case EntityType.Person:
            {
                Persons.Add((Person)data);
                break;
            }

            case EntityType.Death:
            {
                Deaths.Add((Death)data);
                break;
            }

            case EntityType.PayerPlanPeriod:
            {
                PayerPlanPeriods.Add((PayerPlanPeriod)data);
                break;
            }

            case EntityType.ConditionOccurrence:
            {
                ConditionOccurrences.Add((ConditionOccurrence)data);
                break;
            }

            case EntityType.DrugExposure:
            {
                DrugExposures.Add((DrugExposure)data);
                break;
            }

            case EntityType.ProcedureOccurrence:
            {
                ProcedureOccurrences.Add((ProcedureOccurrence)data);
                break;
            }

            case EntityType.Observation:
            {
                Observations.Add((Observation)data);
                break;
            }

            case EntityType.VisitOccurrence:
            {
                VisitOccurrences.Add((VisitOccurrence)data);
                break;
            }

            case EntityType.VisitDetail:
            {
                VisitDetails.Add((VisitDetail)data);
                break;
            }

            case EntityType.Cohort:
            {
                Cohort.Add((Cohort)data);
                break;
            }

            case EntityType.Measurement:
            {
                Measurements.Add((Measurement)data);
                break;
            }

            case EntityType.DeviceExposure:
            {
                DeviceExposure.Add((DeviceExposure)data);
                break;
            }

            case EntityType.ObservationPeriod:
            {
                ObservationPeriods.Add((ObservationPeriod)data);
                break;
            }

            case EntityType.DrugEra:
            {
                DrugEra.Add((EraEntity)data);
                break;
            }

            case EntityType.ConditionEra:
            {
                ConditionEra.Add((EraEntity)data);
                break;
            }

            case EntityType.Note:
            {
                Note.Add((Note)data);
                break;
            }
            }
        }
コード例 #7
0
 public void AddChildData(DeviceExposure parent, DeviceCost child)
 {
     parent.DeviceCosts = new List <DeviceCost> {
         child
     };
 }
コード例 #8
0
        public void AddData(IEntity data, EntityType entityType)
        {
            switch (entityType)
            {
            case EntityType.Person:
            {
                Persons.Enqueue((Person)data);
                break;
            }

            case EntityType.Death:
            {
                Deaths.Enqueue((Death)data);
                break;
            }

            case EntityType.PayerPlanPeriod:
            {
                PayerPlanPeriods.Enqueue((PayerPlanPeriod)data);
                break;
            }

            case EntityType.ConditionOccurrence:
            {
                ConditionOccurrences.Enqueue((ConditionOccurrence)data);
                break;
            }

            case EntityType.DrugExposure:
            {
                DrugExposures.Enqueue((DrugExposure)data);
                break;
            }

            case EntityType.ProcedureOccurrence:
            {
                ProcedureOccurrences.Enqueue((ProcedureOccurrence)data);
                break;
            }

            case EntityType.Observation:
            {
                Observations.Enqueue((Observation)data);
                break;
            }

            case EntityType.VisitOccurrence:
            {
                VisitOccurrences.Enqueue((VisitOccurrence)data);
                break;
            }

            case EntityType.Cohort:
            {
                Cohort.Enqueue((Cohort)data);
                break;
            }

            case EntityType.Measurement:
            {
                Measurements.Enqueue((Measurement)data);
                break;
            }

            case EntityType.DeviceExposure:
            {
                DeviceExposure.Enqueue((DeviceExposure)data);
                break;
            }

            case EntityType.DeviceCost:
            {
                DeviceCost.Enqueue((DeviceCost)data);
                break;
            }

            case EntityType.DrugCost:
            {
                DrugCost.Enqueue((DrugCost)data);
                break;
            }

            case EntityType.VisitCost:
            {
                VisitCost.Enqueue((VisitCost)data);
                break;
            }

            //case EntityType.Cost:
            //{

            //   break;
            //}

            case EntityType.ProcedureCost:
            {
                ProcedureCost.Enqueue((ProcedureCost)data);
                break;
            }

            case EntityType.ObservationPeriod:
            {
                ObservationPeriods.Enqueue((ObservationPeriod)data);
                break;
            }

            case EntityType.DrugEra:
            {
                DrugEra.Enqueue((EraEntity)data);
                break;
            }

            case EntityType.ConditionEra:
            {
                ConditionEra.Enqueue((EraEntity)data);
                break;
            }
            }
        }