示例#1
0
        public async static Task <Dsave_return> Pat_delete_aysnc(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            var  Dr  = new Dsave_return();
            Mret M1  = null;
            var  Bpl = new Dictionary <string, object>(bp);

            Bpl["Call_vector"] = 5184;
            string Token = Enc256.Encode(Key, Salt, Claims);

            try
            {
                M1 = await Get_Data(Base, Token, Bpl);

                if (M1.status == 200)
                {
                    Dr = JsonConvert.DeserializeObject <Dsave_return>(M1.body);
                }
                else
                {
                    Dr.code    = M1.status;
                    Dr.message = M1.message;
                }
            }
#pragma warning disable CS0168 // Variable is declared but never used
            catch (FlurlHttpException ex)
#pragma warning restore CS0168 // Variable is declared but never used
            {
                //    int i = 1;
            }
            //  }

            return(Dr);
        }
示例#2
0
        public async static Task <Level1_Return> Get_Level1_aysnc(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            var l1 = new Level1_Return();

            if (File.Exists("l1ret.json"))
            {
                using (var sr = new StreamReader("l1ret.json"))
                {
                    string l1d = sr.ReadToEnd();
                    l1 = JsonConvert.DeserializeObject <Level1_Return>(l1d);
                    return(l1);
                }
            }

            Mret m1;
            var  bpl = new Dictionary <string, object>(bp);

            bpl["Call_vector"] = 5000;
            string Token = Enc256.Encode(Key, Salt, Claims);

            m1 = await Get_Data(Base, Token, bpl);

            if (m1.status == 200)
            {
                l1 = JsonConvert.DeserializeObject <Level1_Return>(m1.body);
            }
            else
            {
                l1.code    = m1.status;
                l1.message = m1.message;
            }

            return(l1);
        }
示例#3
0
        public async static Task <Dsave_return> Save_exception(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            var  Dr  = new Dsave_return();
            Mret M1  = null;
            var  Bpl = new Dictionary <string, object>(bp);

            Bpl["Call_vector"] = 6725;
            string Token = Enc256.Encode(Key, Salt, Claims);

            try
            {
                M1 = await Get_Data(Base, Token, Bpl);

                //   M1 = await Cli.Request().PostJsonAsync(Bpl).ReceiveJson<Mret>();
                if (M1.status == 200)
                {
                    Dr = JsonConvert.DeserializeObject <Dsave_return>(M1.body);
                }
                else
                {
                    Dr.code    = M1.status;
                    Dr.message = M1.message;
                }
            }
#pragma warning disable CS0168 // Variable is declared but never used
            catch (FlurlHttpException ex)
#pragma warning restore CS0168 // Variable is declared but never used
            {
                MessageBox.Show(ex.Message);
            }

            return(Dr);
        }
示例#4
0
        private async void Register_Click(object sender, EventArgs e)
        {
            var nw = DateTimeOffset.UtcNow;
            //var ew = nw.AddYears(1);
            var ew = nw.AddMinutes(5);

            IDateTimeProvider provider = new UtcDateTimeProvider();
            string            salt;
            string            Cid = null;
            string            mtyenc;
            Register_Return   mcd;
            var aws_body = new Dictionary <string, object>();

            using (RegistryKey Rkey = Registry.CurrentUser.OpenSubKey(@"Software\Medical_Profile", true))
            {
                Cid = Rkey.GetValue("Cid", null).ToString();

                if (Key.Text is object && !((Key.Text ?? "") == (string.Empty ?? "")))
                {
                    key_encrypted = Enc256.Encrypt(Key.Text, Enc256.Scramble(keys));
                    salt          = Enc256.Getsalt(key_encrypted);

                    var payload = new Dictionary <string, object>()
                    {
                        { "aud", "http://medicalprofilecard.com" }, { "exp", ew.ToUnixTimeSeconds() }, { "register", key_encrypted }
                    };

                    payload["cid"]          = Cid;
                    payload["User_Name"]    = Environment.UserName;
                    payload["Machine_Name"] = Environment.MachineName;

                    aws_body["vector_code"] = "4152";

                    Application.UseWaitCursor = true;
                    mcd = await Aws.Register_aysnc(installation_url, keys, salt, payload, aws_body);

                    Application.UseWaitCursor = false;
                    mtyenc = Enc256.Decrypt(mcd.eval, Enc256.Scramble(keys), 18926);

                    if (mtyenc is object)
                    {
                        Rkey.SetValue("eval", mtyenc);
                    }
                }
            }

            Close();
        }
示例#5
0
        public async static Task <Level2_Return> Get_Level2_aysnc(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            var l2 = new Level2_Return();

            if (File.Exists("l2ret.json"))
            {
                using (var sr = new StreamReader("l2ret.json"))
                {
                    string l2d = sr.ReadToEnd();
                    l2 = JsonConvert.DeserializeObject <Level2_Return>(l2d);
                    return(l2);
                }
            }

            Mret m1  = null;
            var  bpl = new Dictionary <string, object>(bp);

            bpl["Call_vector"] = 6000;
            string Token = Enc256.Encode(Key, Salt, Claims);

            try
            {
                m1 = await Get_Data(Base, Token, bpl);

                if (m1.status == 200)
                {
                    l2 = JsonConvert.DeserializeObject <Level2_Return>(m1.body);
                }
                else
                {
                    l2.code    = m1.status;
                    l2.message = m1.message;
                }
            }
#pragma warning disable CS0168 // Variable is declared but never used
            catch (FlurlHttpException ex)
#pragma warning restore CS0168 // Variable is declared but never used
            {
                //   int i = 1;
            }

            return(l2);
        }
示例#6
0
        public async static Task <Dsave_return> Dsave_get_aysnc(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            var  Dvr = new Dsave_return();
            Mret M1  = null;
            var  Bpl = new Dictionary <string, object>(bp);

            if (File.Exists("dsave_get_return.json"))
            {
                using (var sr = new StreamReader("dsave_get_return.json"))
                {
                    string l1d = sr.ReadToEnd();
                    Dvr = JsonConvert.DeserializeObject <Dsave_return>(l1d);
                    return(Dvr);
                }
            }

            Bpl["Call_vector"] = 7943;
            string Token = Enc256.Encode(Key, Salt, Claims);

            try
            {
                M1 = await Get_Data(Base, Token, Bpl);

                if (M1.status == 200)
                {
                    Dvr = JsonConvert.DeserializeObject <Dsave_return>(M1.body);
                }
                else
                {
                    Dvr.code    = M1.status;
                    Dvr.message = M1.message;
                }
            }
#pragma warning disable CS0168 // Variable is declared but never used
            catch (FlurlHttpException ex)
#pragma warning restore CS0168 // Variable is declared but never used
            {
                //   int i = 1;
            }

            return(Dvr);
        }
示例#7
0
        static async Task <int> Write_exception(string Ex, bool show = false)
        {
            Dictionary <string, object> aws_body = new Dictionary <string, object>();
            string       Wrtim  = DateTime.Now.ToString("yyyyMMddHHmmss");
            var          claims = Mpf.Gen_Claims();
            Dsave_return Dr;

            aws_body.Clear();
            aws_body["ukey"]          = Enc256.Encrypt(Mpf.cid + Mpf.Mpck.Dlab, Mpf.cid + Mpf.Mpck.Dlab, Mpf.Mpck.Iterations);
            aws_body["wrtim"]         = Wrtim;
            aws_body["exception"]     = Ex;
            Application.UseWaitCursor = true;
            Dr = await Aws.Save_exception(Mpf.Mpck.Url, Mpf.enck, Mpf.Mpck.Salt, claims, aws_body);

            Application.UseWaitCursor = false;
            if (show)
            {
                FlexibleMessageBox.Show(Ex, "Unhandled Exception");
            }

            return(Dr.code);
        }
示例#8
0
        public async static Task <Ckup_Return> Update_aysnc(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            Ckup_Return Uv  = new Ckup_Return();
            Mret        m1  = null;
            var         bpl = new Dictionary <string, object>(bp);

            bpl["Call_vector"] = 4162;
            string Token = Enc256.Encode(Key, Salt, Claims);

            m1 = await Get_Data(Base, Token, bpl);

            if (m1.status == 200)
            {
                Uv = JsonConvert.DeserializeObject <Ckup_Return>(m1.body);
            }
            else
            {
                Uv.code    = m1.status;
                Uv.message = m1.message;
            }

            return(Uv);
        }
示例#9
0
        public async static Task <Register_Return> Register_aysnc(string Base, string Key, string Salt, Dictionary <string, object> Claims, Dictionary <string, object> bp)
        {
            Register_Return Rv  = null;
            Mret            m1  = null;
            var             bpl = new Dictionary <string, object>(bp);

            bpl["Call_vector"] = 4152;
            string Token = Enc256.Encode(Key, Salt, Claims);

            m1 = await Get_Data(Base, Token, bpl);

            if (m1.status == 200)
            {
                Rv = JsonConvert.DeserializeObject <Register_Return>(m1.body);
            }
            else
            {
                Rv.code    = m1.status;
                Rv.message = m1.message;
            }

            return(Rv);
        }
示例#10
0
        private async Task <Dsave_return> save_blk()
        {
            if (run_timer)
            {
                Ettb.Text = start_timer(SW);
            }

            var          claims = Gen_Claims();
            string       Wrtim  = DateTime.Now.ToString("yyyyMMddHHmmss");
            var          Sblk   = new Save_blk();
            Sblock       Sb;
            string       js;
            string       jse;
            Dsave_return dr;

            if (saved_type)
            {
                // Dsi = dsaves.SelectedItem
                Ds = Dsi.Value;
                if (string.IsNullOrEmpty(Patient.Text))
                {
                    Patient.Text = Ds.Name;
                }
            }

            if (string.IsNullOrEmpty(Patient.Text))
            {
                Patient.Text = "Unknown_" + Wrtim;
            }

            if (!string.IsNullOrEmpty(Patient.Text) && Ds is object && !string.IsNullOrEmpty(Ds.Name))
            {
                if (!((Patient.Text ?? "") == (Ds.Name ?? "")))
                {
                    saved_type = false;
                }
            }

            Sblk.Practice = Practice.Text;
            if (Department.Items.Count > 1)
            {
                Sblk.Department = Department.Text;
            }
            else
            {
                Sblk.Department = dept_tbox.Text;
            }

            Sblk.Patient           = Patient.Text;
            Sblk.Patient_id        = Patientid.Text;
            Sblk.Address           = address.Text;
            Sblk.DOB               = DOB.Text;
            Sblk.Emergency_contact = econtact.Text;
            Sblk.Insurance         = ins.Text;
            if (atpv.Count > 1)
            {
                Sblk.Priph = prv_combo.Text;
            }
            else
            {
                Sblk.Priph = priph.Text;
            }

            Sblk.Phone       = Phone.Text;
            Sblk.Prtitle     = ppgb.Text;
            Sblk.Sptitle     = sptitle.Text;
            Sblk.Secph       = secph.Text;
            Sblk.Sec_visible = Mpck.Sec_visible;
            foreach (KeyValuePair <int, string> s in bl_used)
            {
                Sb = new Sblock();
                {
                    var withBlock = Sb;
                    withBlock.num    = s.Key;
                    withBlock.header = Controls[s.Value].Controls[0].Text;
                    withBlock.body   = Controls[s.Value].Controls[1].Text;
                }

                Sblk.Blk_list.Add(Sb);
            }

            aws_body.Clear();
            js = JsonConvert.SerializeObject(Sblk, Formatting.Indented);
            aws_body["skey"] = Enc256.Encrypt(Sblk.Patient, Enc256.Iterscramble(cid + Mpck.Dlab, Mpck.Iterations));
            var switchExpr = save_ver;

            switch (switchExpr)
            {
            case 1:
            {
                jse = Enc256.Encrypt(js, Enc256.Iterscramble(cid), Convert.ToInt32(Mpck.Iterations % 10 + 2));
                aws_body["skey"] = Enc256.Encrypt(Sblk.Patient, Enc256.Iterscramble(cid + Mpck.Dlab), Mpck.Iterations % 10 + 2);
                break;
            }

            default:
            {
                jse = Enc256.Encrypt(js, Enc256.Iterscramble(cid, Mpck.Iterations), Convert.ToInt32(Mpck.Iterations / (double)3));
                aws_body["skey"] = Enc256.Encrypt(Sblk.Patient, Enc256.Iterscramble(cid + Mpck.Dlab, Mpck.Iterations));
                break;
            }
            }

            aws_body["ukey"] = Enc256.Encrypt(cid + Mpck.Dlab, cid + Mpck.Dlab, Mpck.Iterations);
            if (saved_type)
            {
                if (string.IsNullOrEmpty(Ds.lwtim))
                {
                    aws_body["wrtim"] = Wrtim;
                    aws_body["lwtim"] = Wrtim;
                }
                else
                {
                    aws_body["wrtim"] = Ds.wrtim;
                    aws_body["lwtim"] = Wrtim;
                }
            }
            else
            {
                aws_body["wrtim"] = Wrtim;
                aws_body["lwtim"] = Wrtim;
            }

            aws_body["vers"]          = save_ver.ToString();
            aws_body["value"]         = jse;
            Application.UseWaitCursor = true;
            dr = await Aws.Pat_save_aysnc(Mpck.Url, enck, Mpck.Salt, claims, aws_body);

            Application.UseWaitCursor = false;
            Add_saved_item(dr.ds[0]);
            Data_altered = false;
            if (run_timer)
            {
                Ettb.Text = stop_timer(SW);
            }

            return(dr);
        }
示例#11
0
        public void Set_saved_items(List <Dsave> ds, bool preserve = false)
        {
            string dss = null;
            object O1  = null;
            string S1  = null;

            string[] np       = null;
            var      csep     = new[] { ' ' };
            string   dec_name = null;

            dsaves.SelectedIndexChanged -= Dsaves_SelectedIndexChanged;
            if (preserve)
            {
                O1 = dsaves.SelectedValue;
                S1 = dsaves.SelectedText;
            }

            saved_patients.Clear();
            dsaves.SelectedItem = null;
            if (ds is object && ds.Count > 0)
            {
                foreach (Dsave d in ds)
                {
                    var switchExpr = Convert.ToInt32(d.vers);
                    switch (switchExpr)
                    {
                    case 1:
                    {
                        dec_name = Enc256.Decrypt(d.Skey, Enc256.Iterscramble(cid + Mpck.Dlab), Mpck.Iterations % 10 + 2);
                        if (string.IsNullOrEmpty(dec_name))
                        {
                            d.Name = "Unknown_" + (string.IsNullOrEmpty(d.lwtim) ? d.wrtim : d.lwtim);
                            dss    = d.Name;
                        }
                        else
                        {
                            d.Name = dec_name;
                        }

                        break;
                    }

                    default:
                    {
                        dec_name = Enc256.Decrypt(d.Skey, Enc256.Iterscramble(cid + Mpck.Dlab, Mpck.Iterations));
                        if (string.IsNullOrEmpty(dec_name))
                        {
                            d.Name = "Unknown_" + (string.IsNullOrEmpty(d.lwtim) ? d.wrtim : d.lwtim);
                            dss    = d.Name;
                        }
                        else
                        {
                            d.Name = dec_name;
                        }

                        break;
                    }
                    }

                    np = d.Name.Split(csep);
                    if (np.Count() > 1)
                    {
                        dss = np[1] + "," + np[0];
                        if (string.IsNullOrEmpty(d.lwtim))
                        {
                            dss = dss + string.Format(" {0}/{1}/{2} {3}:{4}:{5}", d.wrtim.Substring(0, 4), d.wrtim.Substring(4, 2), d.wrtim.Substring(6, 2), d.wrtim.Substring(8, 2), d.wrtim.Substring(10, 2), d.wrtim.Substring(12, 2));
                        }
                    }

                    var sb = new StringBuilder();
                    sb.Append("dss[" + dss + "] d.name[" + d.Name + "]");
                    if (!string.IsNullOrEmpty(d.wrtim))
                    {
                        sb.Append(" wrtim[" + d.wrtim + "]");
                    }

                    if (!string.IsNullOrEmpty(d.lwtim))
                    {
                        sb.Append(" lwtim[" + d.lwtim + "]");
                    }

                    saved_patients[dss] = d;
                }

                dsaves.DisplayMember = "key";
                dsaves.ValueMember   = "Value";
                dsaves.DataSource    = new BindingSource(saved_patients, null);
                dsaves.Enabled       = true;
                dsaves.Visible       = true;
                Dsbox.Enabled        = true;
                Dsbox.Visible        = true;
                if (preserve)
                {
                    dsaves.SelectedIndex = dsaves.FindStringExact(S1);
                }
                else
                {
                    dsaves.SelectedItem = null;
                }

                dsaves.SelectedIndexChanged += Dsaves_SelectedIndexChanged;
            }
            else
            {
                dsaves.Enabled = false;
                dsaves.Visible = false;
                Dsbox.Enabled  = false;
                Dsbox.Visible  = false;
            }
        }
示例#12
0
        public void Add_saved_item(Dsave ds)
        {
            string[] np   = null;
            var      csep = new[] { ' ' };
            string   pn   = null;

            dsaves.SelectedIndexChanged -= Dsaves_SelectedIndexChanged;
            var switchExpr = Convert.ToInt32(ds.vers);

            switch (switchExpr)
            {
            case 1:
            {
                ds.Name = Enc256.Decrypt(ds.Skey, Enc256.Iterscramble(cid + Mpck.Dlab), Mpck.Iterations % 10 + 2);
                break;
            }

            default:
            {
                ds.Name = Enc256.Decrypt(ds.Skey, Enc256.Iterscramble(cid + Mpck.Dlab, Mpck.Iterations));
                break;
            }
            }

            if (string.IsNullOrEmpty(ds.Name))
            {
                ds.Name = "Unknown_" + (string.IsNullOrEmpty(ds.lwtim) ? ds.wrtim : ds.lwtim);
            }

            np = ds.Name.Split(csep);
            if (np.Count() > 1)
            {
                pn = np[1] + "," + np[0];
            }
            else
            {
                pn = ds.Name;
            }

            saved_patients[pn] = ds;
            if (saved_type)
            {
                dsaves.Text = pn;
            }

            if (saved_patients.Count > 0)
            {
                dsaves.DisplayMember = "key";
                dsaves.ValueMember   = "Value";
                dsaves.DataSource    = new BindingSource(saved_patients, null);
                dsaves.SelectedIndex = dsaves.FindStringExact(pn);
                dsaves.Enabled       = true;
                dsaves.Visible       = true;
                Dsbox.Enabled        = true;
                Dsbox.Visible        = true;
            }
            else
            {
                dsaves.Enabled = false;
                dsaves.Visible = false;
                Dsbox.Enabled  = false;
                Dsbox.Visible  = false;
            }

            dsaves.SelectedIndexChanged += Dsaves_SelectedIndexChanged;
        }