public TrackedPatientsResult GetTrackedPatients(int page, int itemsPerPage) { // *** Gets a tracked patients result from the broker *** TrackedPatientsResult result = new TrackedPatientsResult(); // *** Create the command needed to get tracked patients *** DsioGetTrackingCommand command = new DsioGetTrackingCommand(this.broker); // *** Add appropriate parameters *** command.AddGetTrackedPatientsParameters(page, itemsPerPage); // *** Execute command and get response *** RpcResponse response = command.Execute(); // *** Add response to return result *** result.Success = (response.Status == RpcResponseStatus.Success); // *** Check for success *** if (result.Success) { result.Patients = new List <TrackedPatient>(); // *** Check if we have result *** if (command.TrackedPatients != null) { // *** Loop through resulting patients *** foreach (DsioTrackedPatient dsioPatient in command.TrackedPatients) { // *** Get strongly typed patient from dsio Patient *** TrackedPatient trackedPatient = GetTrackedPatient(dsioPatient); // *** Add patient to list *** result.Patients.Add(trackedPatient); } } result.TotalResults = command.TotalResults; } else { result.Message = response.InformationalMessage; } return(result); }
public TrackedPatient GetTrackedPatient(DsioTrackedPatient dsioPatient) { // *** Converts dsio patient to strongly typed patient *** TrackedPatient returnPatient = new TrackedPatient(); // *** Add values *** returnPatient.Dfn = dsioPatient.Dfn; returnPatient.LastName = dsioPatient.LastName; returnPatient.FirstName = dsioPatient.FirstName; if (dsioPatient.Last4.Length > 4) { if (dsioPatient.Last4.ToUpper().Contains("SENSITIVE")) { returnPatient.Last4 = "XXXX"; } else { returnPatient.Last4 = dsioPatient.Last4.Substring(5, 4); } } else { returnPatient.Last4 = dsioPatient.Last4; } // *** Process/Parse dob *** DateTime dob; if (DateTime.TryParse(dsioPatient.DateOfBirth, out dob)) { returnPatient.DateOfBirth = dob; } else { returnPatient.DateOfBirthInexact = Util.GetInexactDate(dsioPatient.DateOfBirth); } returnPatient.HomePhone = dsioPatient.HomePhone; returnPatient.NonVaObstetrician = dsioPatient.Obstetrician; returnPatient.PlannedDeliveryFacility = dsioPatient.LDFacility; // *** Process/Parse EDD *** returnPatient.EDD = VistaDates.ParseDateString(dsioPatient.EDD, VistaDates.VistADateOnlyFormat); returnPatient.Pregnant = (dsioPatient.Pregnant == "YES") ? true : false; returnPatient.Lactating = (dsioPatient.Lactating == "YES") ? true : false; // *** Add dates *** //returnPatient.NextChecklistDue = VistaDates.ParseDateString(dsioPatient.NextChecklistDue, VistaDates.VistADateFormatSix); //returnPatient.LastContactDate = VistaDates.ParseDateString(dsioPatient.LastContactDate, VistaDates.VistADateFormatSix); //returnPatient.NextContactDue = VistaDates.ParseDateString(dsioPatient.NextContactDue, VistaDates.VistADateFormatSix); returnPatient.NextChecklistDue = VistaDates.ParseDateString(dsioPatient.NextChecklistDue, VistaDates.VistADateOnlyFormat); returnPatient.LastContactDate = VistaDates.ParseDateString(dsioPatient.LastContactDate, VistaDates.VistADateOnlyFormat); returnPatient.NextContactDue = VistaDates.ParseDateString(dsioPatient.NextContactDue, VistaDates.VistADateOnlyFormat); // *** Current Pregnancy High Risk *** returnPatient.CurrentPregnancyHighRisk = (dsioPatient.CurrentPregnancyHighRisk == "TRUE"); returnPatient.HighRiskDetails = dsioPatient.HighRiskDetails; // *** Text4Baby *** if (dsioPatient.Text4BabyStatus.Equals("enrolled", StringComparison.CurrentCultureIgnoreCase)) { returnPatient.Text4BabyStatus = Text4BabyStatus.Enrolled; } else if (dsioPatient.Text4BabyStatus.Equals("not interested", StringComparison.CurrentCultureIgnoreCase)) { returnPatient.Text4BabyStatus = Text4BabyStatus.NotInterested; } return(returnPatient); }