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); }
public static AQLQuery PatientAdmission(EpsiodeOfCareParameter parameter) { return(new AQLQuery("PatientAdmission", $@"SELECT p/data[at0001]/items[at0071]/value/value as Beginn FROM EHR e CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.fall.v1] CONTAINS ADMIN_ENTRY p[openEHR-EHR-ADMIN_ENTRY.admission.v0] WHERE c/name/value = 'Stationärer Versorgungsfall' and e/ehr_id/value = '{ parameter.PatientID }' and c/context/other_context[at0001]/items[at0003,'Fall-Kennung']/value/value = '{ parameter.CaseID }'")); }
public static AQLQuery PatientDischarge(EpsiodeOfCareParameter parameter) { return(new AQLQuery("PatientDischarge", $@"SELECT b/data[at0001]/items[at0011,'Datum/Uhrzeit der Entlassung']/value/value as Ende FROM EHR e CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.fall.v1] CONTAINS ADMIN_ENTRY b[openEHR-EHR-ADMIN_ENTRY.discharge_summary.v0] WHERE c/name/value = 'Stationärer Versorgungsfall' and e/ehr_id/value = '{ parameter.PatientID }' and c/context/other_context[at0001]/items[at0003,'Fall-Kennung']/value/value = '{ parameter.CaseID }'")); }
private EpsiodeOfCareParameter createParameterOfMovement(PatientStayModel patientStay) { EpsiodeOfCareParameter epsiodeOfCareParameter = new EpsiodeOfCareParameter(patientStay); return(epsiodeOfCareParameter); }