示例#1
0
        private List <PatientMovementModel> ReturValueConstrutor(List <PatientStayModel> patientStayList)
        {
            List <PatientMovementModel> patientMovementList = new List <PatientMovementModel>();
            List <string>      PatID_CaseId_Combination     = new List <string>();
            EpisodeOfCareModel episodeOfCare = null;

            foreach (PatientStayModel patientStay in patientStayList)
            {
                string patfallID = createPatIDCaseIDCombination(patientStay);

                EpsiodeOfCareParameter episodeOfCareParam = createParameterOfMovement(patientStay);

                if (!PatID_CaseId_Combination.Contains(patfallID))
                {
                    List <EpisodeOfCareModel> episodeOfCareList = _restData.AQLQuery <EpisodeOfCareModel>(AQLCatalog.PatientAdmission(episodeOfCareParam));
                    List <EpisodeOfCareModel> discharges        = _restData.AQLQuery <EpisodeOfCareModel>(AQLCatalog.PatientDischarge(episodeOfCareParam));
                    if (!(episodeOfCareList is null))
                    {
                        //result.First because there can be just one admission/discharge timestamp for each case
                        episodeOfCare = episodeOfCareList[0];
                        if (discharges != null)
                        {
                            episodeOfCare.Ende = discharges[0].Ende;
                        }
                    }
                    PatID_CaseId_Combination.Add(patfallID);
                }

                transformToPatientMovementData(patientStay, episodeOfCare, patientMovementList);
            }

            return(patientMovementList);
        }
示例#2
0
        private void addAdmissionObject(PatientStayModel patientStay, EpisodeOfCareModel episodeOfCare, List <PatientMovementModel> patientMovementList)
        {
            if (!(episodeOfCare is null) && patientStay.Beginn == episodeOfCare.Beginn)
            {
                PatientMovementModel patientMovement = new PatientMovementModel(patientStay);;
                patientMovement.Ende = episodeOfCare.Beginn;
                patientMovement.AddMovementType(1, "Aufnahme");

                patientMovementList.Add(patientMovement);
            }
        }
示例#3
0
        private void addDischargeObject(PatientStayModel patientStay, EpisodeOfCareModel episodeOfCare, List <PatientMovementModel> patientMovementList)
        {
            if (episodeOfCare.Ende != DateTime.MinValue)
            {
                if (!(episodeOfCare is null) && patientStay.Ende == episodeOfCare.Ende)
                {
                    PatientMovementModel patientMovement = new PatientMovementModel(patientStay);
                    patientMovement.Beginn = episodeOfCare.Ende;
                    patientMovement.AddMovementType(2, "Entlassung");

                    patientMovementList.Add(patientMovement);
                }
            }
        }
示例#4
0
 private void transformToPatientMovementData(PatientStayModel patientStay, EpisodeOfCareModel episodeOfCare, List <PatientMovementModel> patientMovementList)
 {
     addAdmissionObject(patientStay, episodeOfCare, patientMovementList);
     addMovementTypeByDateComparison(patientStay, patientMovementList);
     addDischargeObject(patientStay, episodeOfCare, patientMovementList);
 }