コード例 #1
0
 public PatientMovementModel(PatientStayModel patientStay)
 {
     PatientID      = patientStay.PatientID;
     Beginn         = patientStay.Beginn;
     Ende           = patientStay.Ende;
     Raum           = patientStay.Raum;
     FallID         = patientStay.FallID;
     Bewegungsart_l = patientStay.Bewegungsart_l;
     StationID      = patientStay.StationID == null ? patientStay.FachabteilungsID : patientStay.StationID;
     Fachabteilung  = patientStay.Fachabteilung;
 }
コード例 #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
        public void Serialize_TransformationTest()
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Content = new StringContent("{\"meta\":{\"_type\":\"RESULTSET\",\"_created\":\"2020-09-01T11:28:43.095Z\",\"_executed_aql\":\"SELECT u/data[at0001]/items[at0004]/value/value as Beginn, u/data[at0001]/items[at0005]/value/value as Ende, u/data[at0001]/items[at0006]/value/value as Bewegungsart_l, a/items[at0048]/value/defining_code/code_string as Fachabteilung, e/ehr_id/value as PatientID, n/items[at0001,'Zugehörige Versorgungsfall-Kennung']/value/value as FallID, a/items[at0029,'Zimmerkennung']/value/value as Raum, a/items[at0046]/value/value as StationID FROM EHR e CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.event_summary.v0] CONTAINS (ADMIN_ENTRY u[openEHR-EHR-ADMIN_ENTRY.hospitalization.v0] CONTAINS CLUSTER a[openEHR-EHR-CLUSTER.location.v1] and CLUSTER n[openEHR-EHR-CLUSTER.case_identification.v0]) WHERE c/name/value='Patientenaufenthalt' and e/ehr_id/value MATCHES {'6abf1aec-27f9-463d-bdc4-8b08fdc5fdb8'} and EXISTS n/items[at0001,'Zugehörige Versorgungsfall-Kennung']/value/value ORDER BY e/ehr_id/value ASC, u/data[at0001]/items[at0004]/value/value ASC\"},\"q\":\"SELECT u/data[at0001]/items[at0004]/value/value as Beginn, u/data[at0001]/items[at0005]/value/value as Ende, u/data[at0001]/items[at0006]/value/value as Bewegungsart_l, a/items[at0048]/value/defining_code/code_string as Fachabteilung, e/ehr_id/value as PatientID, n/items[at0001,'Zugehörige Versorgungsfall-Kennung']/value/value as FallID, a/items[at0029,'Zimmerkennung']/value/value as Raum, a/items[at0046]/value/value as StationID FROM EHR e CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.event_summary.v0] CONTAINS (ADMIN_ENTRY u[openEHR-EHR-ADMIN_ENTRY.hospitalization.v0] CONTAINS CLUSTER a[openEHR-EHR-CLUSTER.location.v1] and CLUSTER n[openEHR-EHR-CLUSTER.case_identification.v0]) WHERE c/name/value='Patientenaufenthalt' and e/ehr_id/value MATCHES {'6abf1aec-27f9-463d-bdc4-8b08fdc5fdb8'} and EXISTS n/items[at0001,'Zugehörige Versorgungsfall-Kennung']/value/value ORDER BY e/ehr_id/value ASC, u/data[at0001]/items[at0004]/value/value ASC\",\"columns\":[{\"name\":\"Beginn\",\"path\":\"/data[at0001]/items[at0004]/value/value\"},{\"name\":\"Ende\",\"path\":\"/data[at0001]/items[at0005]/value/value\"},{\"name\":\"Bewegungsart_l\",\"path\":\"/data[at0001]/items[at0006]/value/value\"},{\"name\":\"Fachabteilung\",\"path\":\"/items[at0048]/value/defining_code/code_string\"},{\"name\":\"PatientID\",\"path\":\"/ehr_id/value\"},{\"name\":\"FallID\",\"path\":\"/items[at0001]/value/value\"},{\"name\":\"Raum\",\"path\":\"/items[at0029]/value/value\"},{\"name\":\"StationID\",\"path\":\"/items[at0046]/value/value\"}],\"rows\":[[\"2020-03-19T20:48:23+01:00\",\"2020-03-23T06:44:16+01:00\",\"AK Aufn and.KH\",\"0800\",\"6abf1aec-27f9-463d-bdc4-8b08fdc5fdb8\",\"20119981\",null,\"Station 14\"],[\"2020-03-20T12:00:00+01:00\",\"2020-03-20T12:00:00+01:00\",\"LA Klin.Auftrag\",\"0800\",\"6abf1aec-27f9-463d-bdc4-8b08fdc5fdb8\",\"20119981\",null,\"PNE Bronchoskopie\"]]}");

            PatientStayModel patStay1 = new PatientStayModel();

            patStay1.Beginn         = DateTime.Parse("2020-03-19T20:48:23+01:00");
            patStay1.Ende           = DateTime.Parse("2020-03-23T06:44:16+01:00");
            patStay1.Bewegungsart_l = "AK Aufn and.KH";
            patStay1.Fachabteilung  = "0800";
            patStay1.PatientID      = "6abf1aec-27f9-463d-bdc4-8b08fdc5fdb8";
            patStay1.FallID         = "20119981";
            patStay1.Raum           = null;
            patStay1.StationID      = "Station 14";

            PatientStayModel patStay2 = new PatientStayModel();

            patStay2.Beginn         = DateTime.Parse("2020-03-20T12:00:00+01:00");
            patStay2.Ende           = DateTime.Parse("2020-03-20T12:00:00+01:00");
            patStay2.Bewegungsart_l = "LA Klin.Auftrag";
            patStay2.Fachabteilung  = "0800";
            patStay2.PatientID      = "6abf1aec-27f9-463d-bdc4-8b08fdc5fdb8";
            patStay2.FallID         = "20119981";
            patStay2.Raum           = null;
            patStay2.StationID      = "PNE Bronchoskopie";

            List <PatientStayModel> actualPatientStays = new List <PatientStayModel>()
            {
                patStay1, patStay2
            };
            List <PatientStayModel> expectedPatientStays = openEHRJSONSerializer <PatientStayModel> .ReceiveModelConstructor(response);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.True(actualPatientStays != null);
            Assert.Equal(expectedPatientStays.Count, actualPatientStays.Count);
            for (int i = 0; i < expectedPatientStays.Count; i++)
            {
                Assert.Equal(expectedPatientStays[i].Beginn, actualPatientStays[i].Beginn);
                Assert.Equal(expectedPatientStays[i].Bewegungsart_l, actualPatientStays[i].Bewegungsart_l);
                Assert.Equal(expectedPatientStays[i].Ende, actualPatientStays[i].Ende);
                Assert.Equal(expectedPatientStays[i].Fachabteilung, actualPatientStays[i].Fachabteilung);
                Assert.Equal(expectedPatientStays[i].FallID, actualPatientStays[i].FallID);
                Assert.Equal(expectedPatientStays[i].PatientID, actualPatientStays[i].PatientID);
                Assert.Equal(expectedPatientStays[i].Raum, actualPatientStays[i].Raum);
                Assert.Equal(expectedPatientStays[i].StationID, actualPatientStays[i].StationID);
            }
        }
コード例 #5
0
        //Die Vergleiche der Methode können eventuell noch PatientMovementModel hinzugefügt werden
        private void addMovementTypeByDateComparison(PatientStayModel patientStay, List <PatientMovementModel> patientMovementList)
        {
            PatientMovementModel patientMovement = new PatientMovementModel(patientStay);

            if (patientMovement.Beginn == patientMovement.Ende)
            {
                patientMovement.AddMovementType(4, "Behandlung");
            }
            else
            {
                if (patientMovement.Ende == DateTime.MinValue)
                {
                    patientMovement.Ende = DateTime.Now;
                }
                patientMovement.AddMovementType(3, "Wechsel");
            }
            patientMovementList.Add(patientMovement);
        }
コード例 #6
0
 private void transformToPatientMovementData(PatientStayModel patientStay, EpisodeOfCareModel episodeOfCare, List <PatientMovementModel> patientMovementList)
 {
     addAdmissionObject(patientStay, episodeOfCare, patientMovementList);
     addMovementTypeByDateComparison(patientStay, patientMovementList);
     addDischargeObject(patientStay, episodeOfCare, patientMovementList);
 }
コード例 #7
0
        private EpsiodeOfCareParameter createParameterOfMovement(PatientStayModel patientStay)
        {
            EpsiodeOfCareParameter epsiodeOfCareParameter = new EpsiodeOfCareParameter(patientStay);

            return(epsiodeOfCareParameter);
        }
コード例 #8
0
 private string createPatIDCaseIDCombination(PatientStayModel patientStay)
 {
     return(patientStay.PatientID + patientStay.FallID);
 }
コード例 #9
0
 public EpsiodeOfCareParameter(PatientStayModel patientStay)
 {
     PatientID = patientStay.PatientID;
     CaseID    = patientStay.FallID;
 }