public async Task<string> GetSchedule(string user) { StringBuilder sb = new StringBuilder(); try { UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, user); string strDate = DateTime.Now.ToString(@"MM/dd/yyyy"); string sJson = await uda.Magic("GetSchedule", objUnityData.UnityAppUser, objUnityData.UnityAppName, "", objUnityData.Token, strDate, "", "", "", "", "", ""); return sJson; } catch (Exception ex) { WebView wc = new WebView(); wc.NavigateToString(ex.Message); Window.Current.Content = wc; return ""; } }
/// <summary> /// /// </summary> /// <param name="objUnityData.UnityAppUser"></param> /// <returns></returns> /// <author></author> /// <revisions>20120822 BD:Noe parsing the JSon string here.</revisions> public async Task<string> GetUserDetails(string user) { string strReturn = String.Empty; UnityDataAccess uda = new UnityDataAccess(); //string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetUserDetails", user, objUnityData.UnityAppName, "", objUnityData.Token, "", "", "", "", "", "", ""); JArray obj = JArray.Parse(sJson); foreach (JObject jo in obj) { JToken provdetails = jo.SelectToken("getuserdetailsinfo", false); if (!provdetails.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { if (provdetails.Count() == 0) continue; } foreach (JToken joRow in provdetails) { strReturn = joRow["LastName"].ToString() + ", " + joRow["FirstName"].ToString(); } } return strReturn; }
public async Task<bool> UpdateAllTiles() { TaskingObject to = new TaskingObject(); UnityDataAccess uda = new UnityDataAccess(); if (string.IsNullOrEmpty(objUnityData.Token)) objUnityData.Token = await uda.GetToken(objUnityData.UnitySvcUser,objUnityData.UnitySvcPwd,objUnityData.UnityAppName); return await to.ProcessTaskTileUpdates(objUnityData.UnityAppUser); }
public async Task<Vitals> GetVitals(string sAppUser, string sPatientID) { Vitals vitals = new Vitals(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetPatientChartSections", sAppUser, objUnityData.UnityAppName, sPatientID, objUnityData.Token, "vitals", "", "", "", "", "", ""); string patientID = string.Empty; JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getpatientchartsectionsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { string description = string.Empty; foreach (JToken joRow in table) { //description date, detail description = joRow["description"].ToString(); switch (description) { case "bmi": vitals.BMI = new string[] { joRow["detail"].ToString(), joRow["date"].ToString() }; break; case "bp": vitals.BP = new string[] { joRow["detail"].ToString(), joRow["date"].ToString() }; break; case "ht": vitals.HT = new string[] { joRow["detail"].ToString(), joRow["date"].ToString() }; break; case "temp": vitals.Temp = new string[] { joRow["detail"].ToString(), joRow["date"].ToString() }; break; case "wt": vitals.WT = new string[] { joRow["detail"].ToString(), joRow["date"].ToString() }; break; case "pulse": vitals.Pulse = new string[] { joRow["detail"].ToString(), joRow["date"].ToString() }; break; default: break; } } } } return vitals; }
public async Task<string> GetProblemActivity(string sAppUser, string sPatientID, string sProblemID) { StringBuilder sb = new StringBuilder(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); // string sJson = await uda.Magic("searchpatients", "", "ahsuser", "dztest", sToken, "allcascr", "", "", "", "", "", ""); string sJson = await uda.Magic("GetProblemActivity", sAppUser, objUnityData.UnityAppName, sPatientID, objUnityData.Token, sProblemID, "", "", "", "", "", ""); return sJson; }
public async Task<PatientItem> GetPatient(string user, string patientID,bool returnpicture) { string sPic = "N"; sPic = (returnpicture == true ? "Y" : "N"); PatientItem patient = new PatientItem(); UnityDataAccess uda = new UnityDataAccess(); string sJson = await uda.Magic("GetPatient", user, objUnityData.UnityAppName, patientID, objUnityData.Token, sPic, "png", "100", "100", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getpatientinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { //ID lastname firstname middlename gender dateofbirth ssn AddressLine1 AddressLine2 City State ZipCode HomePhone WorkPhone PhoneNumber ageMRNOtherNumber orgid patient.ID = joRow["ID"].ToString(); patient.shortTitle = joRow["LastName"].ToString() + ", " + joRow["Firstname"].ToString() + " " + joRow["middlename"].ToString(); string gender = (joRow["gender"].ToString().ToLower().Equals("male") ? "M" : "F"); if (gender.Equals("M")) { patient.GenderPath = @"Assets/gender/male_white_small.png"; } else { patient.GenderPath = @"Assets/gender/female_white_small.png"; } string displayAge = joRow["age"].ToString(); patient.Age = displayAge; string city = joRow["City"].ToString(); if (city.Length > 0) { city += ", "; } patient.Subtitle = " " + displayAge + " " + city + joRow["State"].ToString(); string base64string = joRow["base64image"].ToString(); if (!string.IsNullOrEmpty(base64string)) //Note: always set to empty.string { Utility util = new Utility(); patient.Img = await util.Base64ToBitmapImage(joRow["base64image"].ToString()); base64string = ""; } } } } return patient; }
/// <summary> /// /// </summary> /// <param name="objUnityData.UnityAppUser"></param> /// <param name="sSearch"></param> /// <returns>List of PatientSearchResultItems</returns> /// <remarks>ToDo: Add image functionality.</remarks> /// <author>2012 DZ</author> /// <revisions>20120803 BD</revisions> public async Task<Collection<PatientItem>> SearchPatients(string user, string sSearch) { Collection<PatientItem> colPatients = new Collection<PatientItem>(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("SearchPatients", user, objUnityData.UnityAppName, "", objUnityData.Token, sSearch, "Y", "png", "100", "100", "", ""); //PatientSearchResultItem JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("searchpatientsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { PatientItem patient = new PatientItem(); //ID lastname firstname middlename gender dateofbirth ssn AddressLine1 AddressLine2 City State ZipCode HomePhone WorkPhone PhoneNumber ageMRNOtherNumber orgid patient.ID = joRow["ID"].ToString(); patient.shortTitle = joRow["lastname"].ToString() + ", " + joRow["firstname"].ToString() + " " + joRow["middlename"].ToString(); string gender = (joRow["gender"].ToString().ToLower().Equals("male") ? "M" : "F"); if (gender.Equals("M")) { patient.GenderPath = "Assets//gender/male_white_small.png"; } else { patient.GenderPath = "Assets//gender/female_white_small.png"; } string displayAge = joRow["age"].ToString(); /* if (joRow["dateofbirth"].ToString().Length > 0) { DateTime date1 = DateTime.Now; DateTime date2 = Convert.ToDateTime(joRow["dateofbirth"].ToString()); TimeSpan datedifference = date1.Subtract(date2); int age = 0; if (datedifference.Days > 364) { age = datedifference.Days / 365; displayAge = age.ToString(); } else if (datedifference.Days < 30) { displayAge = datedifference.Days.ToString() + " days"; } else { age = datedifference.Days / 30; displayAge = age.ToString() + " months"; } } */ string city = joRow["City"].ToString(); if (city.Length > 0) { city += ", "; } patient.Subtitle = " " + displayAge + " " + city + joRow["State"].ToString(); // string base64string = joRow["base64image"].ToString(); // if (!string.IsNullOrEmpty(base64string)) //Note: always set to empty.string // { Utility util = new Utility(); patient.Img = await util.Base64ToBitmapImage(joRow["base64image"].ToString()); //} colPatients.Add(patient); } } } return colPatients; }
public async Task<bool> Logon(CancellationToken ct) { string jsonresultUserAuth = ""; string sAppUser = ""; CredentialPickerOptions co = new CredentialPickerOptions(); co.Message = "Please enter your logid and password."; co.AuthenticationProtocol = AuthenticationProtocol.Basic; co.AlwaysDisplayDialog = true; co.Caption = "Allscripts Wand"; co.TargetName = this.ToString(); co.CallerSavesCredential = false; co.CredentialSaveOption = CredentialSaveOption.Hidden; CredentialPickerResults credPickerResults = await CredentialPicker.PickAsync(co).AsTask(ct); if (credPickerResults.ErrorCode == 0) { if (string.IsNullOrEmpty(objUnityData.UnityURL)) { MessageDialog md = new MessageDialog("Unity URL not set. please set this in the Settings charm and try again."); await md.ShowAsync(); // m_sURL = "http://10.160.146.32/unity/unityservice.svc/json/"; // UnityData.UnityURL = m_sURL; return false; } UnityDataAccess uda = new UnityDataAccess(); //todo remove dztest harcodes, make appname for metro string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); //set once for the app. if (!string.IsNullOrEmpty(sToken)) objUnityData.Token = sToken; //todo make this xml string accurate with device names. string sXML = "<context><identifier>3baf035536659932886622bc99820eb5d6980bee</identifier><model>test</model>" + "<deviceName>testdev</deviceName><systemName>metro</systemName><systemVersion>4.3.5</systemVersion>" + "<appVersion>1.0</appVersion></context>"; //use jmedici demo if no creds are supplied. if (string.IsNullOrEmpty(credPickerResults.CredentialUserName)) { string spwd = "password01"; jsonresultUserAuth = await uda.Magic("getuserauthentication", "jmedici", objUnityData.UnityAppName, "", sToken, spwd, "", "1.0", sXML, "", string.Empty, null); sAppUser = "******"; } else { jsonresultUserAuth = await uda.Magic("getuserauthentication", credPickerResults.CredentialUserName.ToString(), objUnityData.UnityAppName, "", sToken, credPickerResults.CredentialPassword.ToString(), "", "1.0", sXML, "", string.Empty, null); sAppUser = credPickerResults.CredentialUserName.ToString(); } // JArray obj = Newtonsoft.Json.Linq.JArray.Parse(jsonresultUserAuth); JObject jo = JObject.Parse(obj[0].ToString()); //todo handle invalid and locked out users. string sValidUser = ((string)jo["getuserauthenticationinfo"][0]["ValidUser"]); string sLockOut = ((string)jo["getuserauthenticationinfo"][0]["Lockout"]); string sError = ((string)jo["getuserauthenticationinfo"][0]["ErrorMessage"]); if (!string.IsNullOrEmpty(sError)) { MessageDialog md = new MessageDialog("login error :" + sError); await md.ShowAsync(); // await Logon(ct); return false; } else { objUnityData.UnityAppUser = sAppUser ; return true; } } else { return false; } }
/// <summary> /// /// </summary> /// <param name="appUser"></param> /// <param name="patientId"></param> /// <returns></returns> public async Task<bool> UpdatePatientPhoto(string appUser, string patientId) { StorageFile file = null; byte[] imgByte = null; bool result = false; try { CameraCaptureUI dialog = new CameraCaptureUI(); Size aspectRatio = new Size(16, 9); dialog.PhotoSettings.CroppedAspectRatio = aspectRatio; file = await dialog.CaptureFileAsync(CameraCaptureUIMode.Photo); if (file != null) { IRandomAccessStream stream = await file.OpenReadAsync(); using (DataReader reader = new DataReader(stream)) { await reader.LoadAsync((uint)stream.Size); imgByte = new byte[stream.Size]; reader.ReadBytes(imgByte); } UnityDataAccess uda = new UnityDataAccess(); string imgAsString = Convert.ToBase64String(imgByte); await uda.Magic(UnityDataAccessActions.SavePatientPicture, UnityDataService.UnityAppUser, UnityDataService.UnityAppName, patientId, imgAsString, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty); result = true; } } catch (Exception e) { // TODO: Handle CameraCapture catch block exception(s) result = false; } return result; }
/// <summary> /// /// </summary> /// <param name="appUser"></param> /// <param name="patientID"></param> /// <param name="allergyID"></param> /// <returns>AllergicReaction List</returns> /// <author>20121001 BD</author> /// <revisions></revisions> public async Task<List<AllergicReaction>> AllergyManifestations(string appUser, string patientID, string allergyID) { //Re: allergyID ( IF charindex('|',@transid)-1 = -1 --An existing allergy) 'NONMED|12345' or 'MED|12345' or 12345 List<AllergicReaction> lstReactions = new List<AllergicReaction>(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetAllergyManifestations", appUser, objUnityData.UnityAppName, patientID, objUnityData.Token, allergyID, "", "", "", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getallergymanifestationsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { AllergicReaction reaction = new AllergicReaction(); reaction.ReactionID = Int32.Parse(joRow["transid"].ToString()); reaction.Description = joRow["manifestation"].ToString(); reaction.Checked = joRow["checked"].ToString().Equals("Y"); reaction.SortOrder = joRow["sortorder"].ToString(); lstReactions.Add(reaction); } } } return lstReactions; }
public async Task<List<ChartSectionItem>> GetChartSections(string user, string sPatientID, string sSection) { List<ChartSectionItem> lstChartSection = new List<ChartSectionItem>(); UnityDataAccess uda = new UnityDataAccess(); //string sToken = objUnityData.Token;//await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetPatientChartSections", user, objUnityData.UnityAppName, sPatientID, objUnityData.Token, sSection, "", "", "", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getpatientchartsectionsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { ChartSectionItem csi = new ChartSectionItem(); csi.section = joRow["section"].ToString(); csi.transid = joRow["transid"].ToString(); csi.style = joRow["style"].ToString(); csi.date = joRow["date"].ToString(); csi.level1 = joRow["level1"].ToString(); csi.sortorder = joRow["sortorder"].ToString(); csi.description = joRow["description"].ToString(); csi.detail = joRow["detail"].ToString(); csi.status = joRow["status"].ToString(); csi.included = joRow["included"].ToString(); csi.includeimmutable = joRow["includeimmutableflag"].ToString(); csi.displaydate = joRow["displaydate"].ToString(); csi.highlight = joRow["highlight"].ToString(); csi.expdescription = joRow["expdescription"].ToString(); csi.expdetail = joRow["expdetail"].ToString(); csi.exprightdescription = joRow["exprightdescription"].ToString(); csi.expright = joRow["expright"].ToString(); csi.exphighlight = joRow["exphighlight"].ToString(); csi.exp2description = joRow["exp2description"].ToString(); csi.exp2detail = joRow["exp2detail"].ToString(); csi.exp2rightdescription = joRow["exp2rightdescription"].ToString(); csi.exp2right = joRow["exp2right"].ToString(); csi.expmenu = joRow["expmenu"].ToString(); //Todo: check to see f annotations nolonger being returned in this field, Bob if (joRow["annotation"].ToString().Equals("Y")) { //csi.annotations = } csi.comment = joRow["comment"].ToString(); csi.actions = joRow["actions"].ToString(); if (csi.highlight.Contains("red") || csi.exphighlight.Contains("red")) { csi.textcolor = "Red"; } else { csi.textcolor = "Black"; } lstChartSection.Add(csi); } } } return lstChartSection; }
/// <summary> /// /// </summary> /// <param name="appUser"></param> /// <param name="ScheduleDate"></param> /// <param name="meridian"></param> /// <returns></returns> /// <author>BD 20120823</author> /// <revisions></revisions> public async Task<List<PatientScheduleItem>> GetSchedule(string appUser, string ScheduleDate, string meridian, bool includeProblems) { List<PatientScheduleItem> lstPatients = new List<PatientScheduleItem>(); int hour; UnityDataAccess uda = new UnityDataAccess(); string sJson = await uda.Magic("GetSchedule", appUser, objUnityData.UnityAppName, "", objUnityData.Token, ScheduleDate, null, "Y", "", "", "", ""); int appointmentCount = 0; JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getscheduleinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { if (joRow["ApptTime"].ToString().Length > 0) { hour = int.Parse(joRow["ApptTime"].ToString().Substring(0,2)); string recordMeridian = "am"; if (hour > 11) { recordMeridian = "pm"; } //Filter by requested Meridian || or No filter if (meridian.ToLower().Equals(recordMeridian) || meridian.Length.Equals(0)) { PatientScheduleItem patient = new PatientScheduleItem(); patient.OrderKey = appointmentCount; switch (hour) { case 0: case 12: patient.DisplayHour = "12:00 " + recordMeridian; break; case 1: case 13: patient.DisplayHour = "1:00 " + recordMeridian; break; case 2: case 14: patient.DisplayHour = "12:00 " + recordMeridian; break; case 3: case 15: patient.DisplayHour = "3:00 " + recordMeridian; break; case 4: case 16: patient.DisplayHour = "4:00 " + recordMeridian; break; case 5: case 17: patient.DisplayHour = "5:00 " + recordMeridian; break; case 6: case 18: patient.DisplayHour = "6:00 " + recordMeridian; break; case 7: case 19: patient.DisplayHour = "7:00 " + recordMeridian; break; case 8: case 20: patient.DisplayHour = "8:00 " + recordMeridian; break; case 9: case 21: patient.DisplayHour = "9:00 " + recordMeridian; break; case 10: case 22: patient.DisplayHour = "10:00 " + recordMeridian; break; case 11: case 23: patient.DisplayHour = "11:00 " + recordMeridian; break; default: break; } patient.ID = joRow["patientID"].ToString(); if (joRow["ApptTime"].ToString().Length > 0) { patient.ApptTime = patient.DisplayHour; } string middleName = string.Empty; if (joRow["patientmiddlename"].ToString().Length > 0) { middleName = joRow["patientmiddlename"].ToString(); } patient.shortTitle = joRow["PatientLastName"].ToString() + ", " + joRow["PatientFirstName"].ToString() + " " + middleName; patient.LastName = joRow["PatientLastName"].ToString() + ", "; patient.FirstName = joRow["PatientFirstName"].ToString(); patient.LastFI = patient.LastName + patient.FirstName.Substring(0, 1); PatientItem pi = await GetPatient(appUser,patient.ID,true); if (pi.Subtitle.Length > 0) { if (pi.GenderPath.ToLower().Contains("male")) { patient.GenderPathBlack = "/Assets/gender/male_black_small.png"; patient.GenderPathGray = "/Assets/gender/male_grey_small.png"; patient.GenderPathWhite = "/Assets/gender/male_white_small.png"; } else { patient.GenderPathBlack = "/Assets/gender/female_black_small.png"; patient.GenderPathGray = "/Assets/gender/female_grey_small.png"; patient.GenderPathWhite = "/Assets/gender/female_white_small.png"; } } patient.Age = pi.Age; if (joRow["Status"].ToString().Length > 0) { string status = joRow["Status"].ToString(); if (status == "Arr") { patient.checkedinpathgray = "/Assets/checkedin/checkedin_gray_large.png"; patient.checkedinpathwhite = "/Assets/checkedin/checkedin_white_large.png"; } } if (joRow["SchedComment"].ToString().Length > 0) { patient.Note = joRow["SchedComment"].ToString(); } else { patient.Note = " "; } if (pi.Img != null) //Note: always set to empty.string { patient.Img = pi.Img; } if (includeProblems && appointmentCount < 3) { List<ChartSectionItem> lstChartSection = await GetChartSections(appUser, patient.ID, "problems"); int upperBounds = lstChartSection.Count - 1; for (int i = 0; i < upperBounds & i < 4; i++) //we only want the first 4 items { switch (i) { case 0: patient.problem1 = lstChartSection[i].description; break; case 1: patient.problem2 = lstChartSection[i].description; break; case 2: patient.problem3 = lstChartSection[i].description; break; case 3: patient.problem4 = lstChartSection[i].description; break; default: break; } } } appointmentCount++; lstPatients.Add(patient); } //meridian filter }//no hour - then no play } //loop } //end if }//loop return lstPatients; }
public async Task<bool> AddPatientVitals(string patientId, string addVitalsRequestBody) { bool result = false; try { UnityDataAccess uda = new UnityDataAccess(); uda.Magic("Savevitals", objUnityData.UnityAppUser, objUnityData.UnityAppName, patientId, objUnityData.Token, addVitalsRequestBody, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, ""); result = true; } catch (Exception e) { result = false; } return result; }
/// <summary> /// /// </summary> /// <param name="appUser"></param> /// <param name="patientID"></param> /// <param name="allergyID"></param> /// <param name="reactionList"></param> /// <param name="annotation"></param> /// <returns>string</returns> /// <author>20121001 BD</author> /// <revisions></revisions> public async Task<string> AllergySave(string appUser, string patientID, string allergyID, string reactionList, string annotation) { //Re: allergyID add allergytype + pipe for new allergies 'NONMED|12345' or 'MED|12345'. Existing allergies just have the id (12345) //@AllergyReactions = '22,3,31,37,58,38,30,72,71,33' /* IF @Action = 'SaveAllergy' Begin EXEC UAILog @LoginUser, @action, 'start', @processidentifier, @appname Exec dbo.UAIFileAllergyXML @xml=@param2, @User=@LoginUser, @PatientID=@PatientID, @TestFlag = @TestFlag , @AppName = @AppName, @AllergyReactions = @param3, @Annotation = @param9, @token= @token, @EncounterTypeMne = @param5, @outStatus = @outStatus output EXEC UAILog @LoginUser, @action, 'end', @processidentifier, @appname Return End // Exec dbo.UAIFileAllergyXML @xml='MED|696', @User='******', @PatientID=22997, @TestFlag = 'Y', //@AppName = 'Wombat', @AllergyReactions = '22,3,31,37,58,38,30,72,71,33', @Annotation = '' * */ string status = string.Empty; UnityDataAccess uda = new UnityDataAccess(); //string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("SaveAllergy", appUser, objUnityData.UnityAppName, patientID, objUnityData.Token, "", allergyID, reactionList, "", "", annotation, ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("saveallergyinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { status = joRow["Status"].ToString(); //id also available //check if this in lowercase in Bob's recent revision. } } } return status; }
public async Task<string> GetTaskDetail(string user,string sTransid) { UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetTask", user, objUnityData.UnityAppName, "", objUnityData.Token, sTransid, "", "", "", "", "", ""); return sJson; }
public async Task<PatientScheduleItem> GetPatientHub(string sAppUser, string patientID) { PatientScheduleItem patienthub = new PatientScheduleItem(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetPatient", sAppUser, objUnityData.UnityAppName, patientID, objUnityData.Token, "Y", "png", "100", "100", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getpatientinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { //ID lastname firstname middlename gender dateofbirth ssn AddressLine1 AddressLine2 City State ZipCode HomePhone WorkPhone PhoneNumber ageMRNOtherNumber orgid patienthub.ID = joRow["ID"].ToString(); patienthub.shortTitle = joRow["LastName"].ToString().ToUpper() + ", " + joRow["Firstname"].ToString(); patienthub.FirstName = joRow["Firstname"].ToString(); patienthub.LastName = joRow["LastName"].ToString(); patienthub.LastFI = joRow["LastName"].ToString(); if (joRow["Firstname"].ToString().Length > 0) { patienthub.LastFI = patienthub.LastFI + ", " + joRow["Firstname"].ToString().Substring(0, 1); } string gender = (joRow["gender"].ToString().ToLower().Equals("male") ? "M" : "F"); if (gender.Equals("M")) { patienthub.GenderPathGray = @"/Assets/gender/male_gray_small.png"; patienthub.GenderPathWhite = @"/Assets/gender/male_white_small.png"; patienthub.GenderPathBlack = @"/Assets/gender/male_black_small.png"; } else { patienthub.GenderPathGray = @"/Assets/gender/female_gray_small.png"; patienthub.GenderPathWhite = @"/Assets/gender/female_white_small.png"; patienthub.GenderPathBlack = @"/Assets/gender/female_black_small.png"; } // if (joRow["age"].ToString().Length > 2) // { // patienthub.Age = joRow["age"].ToString().Substring(0, 2); // } // else // { patienthub.Age = joRow["age"].ToString(); // } string base64string = joRow["base64image"].ToString(); if (!string.IsNullOrEmpty(base64string)) //Note: always set to empty.string { Utility util = new Utility(); patienthub.Img = await util.Base64ToBitmapImage(joRow["base64image"].ToString()); } List<ChartSectionItem> lstChartSection = await GetChartSections(objUnityData.UnityAppUser, patientID, "problems"); int upperBounds = lstChartSection.Count - 1; for (int i = 0; i < upperBounds & i < 4; i++) //we only want the first 4 items { switch (i) { case 0: patienthub.problem1 = lstChartSection[i].expdescription; //description; break; case 1: patienthub.problem2 = lstChartSection[i].expdescription; //description; break; case 2: patienthub.problem3 = lstChartSection[i].expdescription; //description; break; case 3: patienthub.problem4 = lstChartSection[i].expdescription; //description; break; default: break; } } } } } return patienthub; }
public async Task<List<PatientScheduleItem>> GetRecentPatientsHub(string sAppUser) { List<PatientScheduleItem> patientList = new List<PatientScheduleItem>(); UnityDataAccess uda = new UnityDataAccess(); //string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetRecentPatients", sAppUser, objUnityData.UnityAppName, "", objUnityData.Token, "", "", "", "", "", "", ""); string patientID = string.Empty; JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getrecentpatientsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { int i = 0; foreach (JToken joRow in table) { if (i < 3) { PatientScheduleItem patient = new PatientScheduleItem(); patientID = joRow["ID"].ToString(); patient = await GetPatientHub(objUnityData.UnityAppUser, patientID); patientList.Add(patient); i++; } } } } return patientList; }
/// <summary> /// /// Provides Appointment counts by day and meridian for a full week from ScheduleDate. /// Filtering by Appointment_Status is also available. /// Notes: @StatusFilter = 'Active' 'active', 'activeNS', 'inactive', or 'all' /// </summary> /// <param name="appUser"></param> /// <param name="ScheduleDate"></param> /// <returns></returns> /// <author>BD 20120910</author> /// <revisions></revisions> public async Task<List<AppointmentCount>> GetApptCounts(string appUser, string scheduleDate) { List<AppointmentCount> lstApptCounts = new List<AppointmentCount>(); string apptTime = string.Empty; DateTime dtAppt; UnityDataAccess uda = new UnityDataAccess(); //string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); //UAIGetApptCounts @UserID='jmedici', @StartDate='1/07/2008', @StatusFilter='all', @AppName='Nike' string sJson = await uda.Magic("GetApptCounts", appUser, objUnityData.UnityAppName, "", objUnityData.Token, scheduleDate, "all", "", "", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getapptcountsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { AppointmentCount apptCount = new AppointmentCount(); apptTime = joRow["ScheduleDate"].ToString(); //2008-01-07 00:00:00.000 if (DateTime.TryParse(apptTime, out dtAppt)) { apptCount.ScheduleDate = dtAppt; } else { apptCount.ScheduleDate = DateTime.MinValue; } apptCount.Meridian = joRow["Meridian"].ToString(); apptCount.Count = int.Parse(joRow["ApptCount"].ToString()); lstApptCounts.Add(apptCount); } } } return lstApptCounts; }
/// <summary> /// Warning: user hardcoded to "jbones" for db 189. /// </summary> /// <param name="appUser"></param> /// <param name="patientID"></param> /// <returns>Allergen List</returns> /// <author>20121001 BD</author> /// <revisions></revisions> public async Task<List<Allergen>> AllergyFavorites(string appUser, string patientID) { //Re: allergyID ( IF charindex('|',@transid)-1 = -1 --An existing allergy) 'NONMED|12345' or 'MED|12345' or 12345 // search allergy = TransID Allergen DetailFlag //Favs = category allergen transid noknown List<Allergen> lstAllergens = new List<Allergen>(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetAllergyFavs", "jbones", objUnityData.UnityAppName, patientID, objUnityData.Token, "", "", "", "", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getallergyfavsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { Allergen allergen = new Allergen(); allergen.AllergyID = joRow["transid"].ToString(); allergen.Category = joRow["category"].ToString(); allergen.Description = joRow["allergen"].ToString(); allergen.NoKnown = joRow["noknown"].ToString().Equals(1); lstAllergens.Add( allergen); } } } return lstAllergens; }
public async Task<string> GetDocumentImage(string appUser, string patientid, string documentid, string doctype, string outputtype, bool thumbsonly) { UnityDataAccess uda = new UnityDataAccess(); string sThumbs = (thumbsonly == true ? "Y" : "N"); string res = "<xml><thumb1>50,50</thumb1><thumb2>50,50</thumb2></xml>"; // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetDocumentImage", appUser, objUnityData.UnityAppName, patientid, objUnityData.Token, documentid, doctype, outputtype, sThumbs, res, "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getdocumentimageinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { //grab theh 1st thumb return joRow["base64image"].ToString(); } } } return ""; }
/// <summary> /// /// </summary> /// <param name="patientId"></param> /// <param name="addVitalsRequestBody"></param> /// <returns></returns> public async Task<bool> AddPatientVitals(string patientId, string addVitalsRequestBody) { bool result = false; try { UnityDataAccess uda = new UnityDataAccess(); await uda.Magic(UnityDataAccessActions.SaveVitals, UnityDataService.UnityAppUser, UnityDataService.UnityAppName, patientId, UnityDataService.Token, addVitalsRequestBody, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, ""); result = true; } catch (Exception e) { result = false; } return result; }
public async Task<List<DocumentListItem>> GetDocumentList(string appUser, string patientid) { List<DocumentListItem> lstDocuments = new List<DocumentListItem>(); UnityDataAccess uda = new UnityDataAccess(); // string sToken = await uda.GetToken(objUnityData.UnitySvcUser, objUnityData.UnitySvcPwd, objUnityData.UnityAppUser); string sJson = await uda.Magic("GetDocuments", appUser, objUnityData.UnityAppName, patientid, objUnityData.Token, "", null, "", "", "", "", ""); JArray obj = Newtonsoft.Json.Linq.JArray.Parse(sJson); foreach (JObject jo in obj) { JToken table = jo.SelectToken("getdocumentsinfo", false); if (!table.ToString().Equals(objUnityData.EMPTY_JSON_TABLE)) { foreach (JToken joRow in table) { DocumentListItem dli = new DocumentListItem(); dli.AuthorName = joRow["AuthorName"].ToString(); dli.DisplayName = joRow["DisplayName"].ToString(); dli.DocStatus = joRow["DocStatus"].ToString(); dli.DocumentID = joRow["DocumentID"].ToString(); dli.DocumentType = joRow["DocumentType"].ToString(); dli.SortDate = joRow["SortDate"].ToString(); string sThumbnail = await GetDocumentImage(appUser, patientid, dli.DocumentID, dli.DocumentType, "PNG", true); if (!string.IsNullOrEmpty(sThumbnail)) //Note: always set to empty.string { Utility util = new Utility(); dli.Img = await util.Base64ToBitmapImage(sThumbnail); } lstDocuments.Add(dli); } } } return lstDocuments; }