示例#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
 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 }'"));
 }
示例#3
0
 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 }'"));
 }
示例#4
0
        private EpsiodeOfCareParameter createParameterOfMovement(PatientStayModel patientStay)
        {
            EpsiodeOfCareParameter epsiodeOfCareParameter = new EpsiodeOfCareParameter(patientStay);

            return(epsiodeOfCareParameter);
        }