public AddBabyResult AddBabyToPregnancy(string patientDfn, string pregnancyIen) { AddBabyResult returnResult = new AddBabyResult(); PregnancyListResult pregResult = this.GetPregnancies(patientDfn, pregnancyIen); if (!pregResult.Success) { returnResult.SetResult(pregResult.Success, pregResult.Message); } else if (pregResult.Pregnancies != null) { if (pregResult.Pregnancies.Count == 1) { PregnancyDetails pregDetail = pregResult.Pregnancies[0]; bool okToAdd = true; // *** Do we have a babies object ? *** if (pregDetail.Babies != null) { if (pregDetail.Babies.Count >= 9) { returnResult.SetResult(false, "This pregnancy already has 9 babies. You cannot add more than 9 babies to a pregnancy."); okToAdd = false; } } if (okToAdd) { // *** Create the save command *** DsioSavePregDetailsCommand saveCommand = new DsioSavePregDetailsCommand(this.broker); // *** Create the dsio pregnancy *** DsioPregnancy dsioPreg = CreateDsioPregnancy(pregDetail); // *** Add the command arguments, addBaby = true *** saveCommand.AddCommandArguments(dsioPreg, true); // *** Execute the command *** RpcResponse response = saveCommand.Execute(); returnResult.SetResult(pregResult.Success, pregResult.Message); // *** Check the status *** if (response.Status == RpcResponseStatus.Success) { //int newBabyNum = -1; //int.TryParse(saveCommand.BabyNumber, out newBabyNum); //pregDetail.Babies.Add(new Baby() { BabyNum = newBabyNum, Ien = saveCommand.BabyIen }); returnResult.NewBabyIen = saveCommand.BabyIen; returnResult.NewBabyNumber = saveCommand.BabyNumber; } } } } return(returnResult); }
public PregnancyResult GetCurrentOrMostRecentPregnancy(string patientDfn) { // *** Returns the current pregnancy information *** PregnancyResult result = new PregnancyResult(); // *** Get all pregnancies *** PregnancyListResult listResult = GetPregnancies(patientDfn, ""); // *** Add results to return *** result.SetResult(listResult.Success, listResult.Message); if (result.Success) { // *** If we have pregnancies, look for a current *** if (listResult.Pregnancies != null) { if (listResult.Pregnancies.Count > 0) { PregnancyDetails mostRecent = null; foreach (PregnancyDetails preg in listResult.Pregnancies) { if (preg.RecordType == PregnancyRecordType.Current) { result.Pregnancy = preg; } if (mostRecent == null) { mostRecent = preg; } else if (mostRecent.EndDate < preg.EndDate) { mostRecent = preg; } } if (result.Pregnancy == null) { if (mostRecent != null) { result.Pregnancy = mostRecent; } } } } // *** Add result/message if no current *** if (result.Pregnancy == null) { result.SetResult(true, "No Pregnancy Data Found"); } } return(result); }
public PregnancyListResult GetPregnancies(string patientDfn, string pregnancyIen) { PregnancyListResult result = new PregnancyListResult(); // *** Create the command *** DsioGetPregDetailsCommand command = new DsioGetPregDetailsCommand(this.broker); // *** Add arguments...gets all *** command.AddCommandArguments(patientDfn, pregnancyIen); // *** Execute command *** RpcResponse response = command.Execute(); // *** Add response to result *** result.SetResult(response.Status == RpcResponseStatus.Success, response.InformationalMessage); // *** Check for success *** if (result.Success) { // *** Loop through the list and create strongly typed pregnancy list *** if (command.PregnancyList != null) { foreach (DsioPregnancy dsioPreg in command.PregnancyList) { if (result.Pregnancies == null) { result.Pregnancies = new List <PregnancyDetails>(); } PregnancyDetails tempPregnancy = CreatePregnancy(dsioPreg); result.Pregnancies.Add(tempPregnancy); } } // *** If no pregnancies, then nothing found *** if (result.Pregnancies == null) { result.SetResult(true, "No Pregnancy Data Found"); } } return(result); }