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; }
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); } } }
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); } }
//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); }
private void transformToPatientMovementData(PatientStayModel patientStay, EpisodeOfCareModel episodeOfCare, List <PatientMovementModel> patientMovementList) { addAdmissionObject(patientStay, episodeOfCare, patientMovementList); addMovementTypeByDateComparison(patientStay, patientMovementList); addDischargeObject(patientStay, episodeOfCare, patientMovementList); }
private EpsiodeOfCareParameter createParameterOfMovement(PatientStayModel patientStay) { EpsiodeOfCareParameter epsiodeOfCareParameter = new EpsiodeOfCareParameter(patientStay); return(epsiodeOfCareParameter); }
private string createPatIDCaseIDCombination(PatientStayModel patientStay) { return(patientStay.PatientID + patientStay.FallID); }
public EpsiodeOfCareParameter(PatientStayModel patientStay) { PatientID = patientStay.PatientID; CaseID = patientStay.FallID; }