Esempio n. 1
0
        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 ""; 

            }
                
        }
Esempio n. 2
0
       /// <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;

       }
Esempio n. 3
0
        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);

        
        }
Esempio n. 4
0
        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;

        }
Esempio n. 5
0
        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;
            
            
           

        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        /// <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;
        }
Esempio n. 8
0
       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;

               }
              
           
          
       }
Esempio n. 9
0
        /// <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;
        }
Esempio n. 10
0
        /// <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;

        }
Esempio n. 11
0
        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;

        }
Esempio n. 12
0
        /// <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;
        }
Esempio n. 13
0
        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;

        }
Esempio n. 14
0
        /// <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;

        }
Esempio n. 15
0
        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;


        }
Esempio n. 16
0
        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;
        }
Esempio n. 17
0
        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;
        }
Esempio n. 18
0
        /// <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;

        }
Esempio n. 19
0
        /// <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;

        }
Esempio n. 20
0
        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 "";

        }
Esempio n. 21
0
        /// <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;

        }
Esempio n. 22
0
        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;
        }