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); }
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); } }
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); } } }
private void transformToPatientMovementData(PatientStayModel patientStay, EpisodeOfCareModel episodeOfCare, List <PatientMovementModel> patientMovementList) { addAdmissionObject(patientStay, episodeOfCare, patientMovementList); addMovementTypeByDateComparison(patientStay, patientMovementList); addDischargeObject(patientStay, episodeOfCare, patientMovementList); }