Ejemplo n.º 1
0
        public static Waiver GetWaiver(string waiverId)
        {
            string apiUrl       = "https://api.smartwaiver.com/v4/waivers/" + waiverId,
                   resultString = "";

            HttpWebRequest request = WebRequest.Create(apiUrl) as HttpWebRequest;

            request.Method = "GET";
            request.Headers.Add("sw-api-key", apiKey);
            request.Accept = "application/json";

            using (WebResponse webResponse = request.GetResponse())
                using (Stream stream = webResponse.GetResponseStream())
                    using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                        resultString = reader.ReadToEnd();

            if (!String.IsNullOrEmpty(resultString))
            {
                var    result = JObject.Parse(resultString);
                Waiver w      = new Waiver();
                w.numPhotos = result["waiver"]["photos"].ToObject <int>();
                w.tags      = result["waiver"]["tags"].ToObject <List <string> >();
                return(w);
            }
            else
            {
                throw new Exception("No response was received from the SmartWaiver API");
            }
        }
 public IActionResult Waiver(Waiver waiver)
 {
     if (ModelState.IsValid)
     {
         return(RedirectToAction("Submission"));
     }
     return(View());
 }
Ejemplo n.º 3
0
        public static List <Waiver> GetSignedWaivers(string lname = null)
        {
            string apiUrl       = "https://api.smartwaiver.com/v4/waivers",
                   resultString = "";

            if (lname != null)
            {
                apiUrl += "?lastName=" + lname;
            }

            HttpWebRequest request = WebRequest.Create(apiUrl) as HttpWebRequest;

            request.Method = "GET";
            request.Headers.Add("sw-api-key", apiKey);
            request.Accept = "application/json";

            using (WebResponse webResponse = request.GetResponse())
                using (Stream stream = webResponse.GetResponseStream())
                    using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                        resultString = reader.ReadToEnd();

            if (!String.IsNullOrEmpty(resultString))
            {
                var           resultObject  = JObject.Parse(resultString);
                var           result        = resultObject["waivers"];
                List <Waiver> signedWaivers = new List <Waiver>();

                foreach (var w in result)
                {
                    Waiver wv = new Waiver();

                    wv.waiverId  = w["waiverId"].ToString();
                    wv.createdOn = w["createdOn"].ToObject <DateTime>();
                    wv.firstName = w["firstName"].ToString();
                    wv.lastName  = w["lastName"].ToString();
                    Waiver wvDetails = GetWaiver(wv.waiverId);
                    wv.numPhotos = wvDetails.numPhotos;
                    wv.tags      = wvDetails.tags;
                    wv.photos    = GetPhotos(wv.waiverId);

                    signedWaivers.Add(wv);
                }
                return(signedWaivers);
            }
            else
            {
                throw new Exception("No response was received from the SmartWaiver API");
            }
        }
Ejemplo n.º 4
0
        public void AutoWaiver(int billServiceId, string reason)
        {
            var billService = db.BillServices.Find(billServiceId);

            //get waiverNumber
            var waiverNumber = 0;

            if (billService != null)
            {
                var owner = billService.OpdRegister;
                if (owner.Waivers.Count() >= 1)
                {
                    waiverNumber = owner.Waivers.Last().Id;
                    var waiver = db.Waivers.Find(waiverNumber);
                    waiver.AmountWaived = waiver.AmountWaived + (billService.Price * billService.Quatity) - (billService.Award * billService.Quatity);
                    db.SaveChanges();
                }
                else
                {
                    var waiver = new Waiver();
                    waiver.OPDIPDNo        = owner.Id;
                    waiver.AmountWaived    = (billService.Price * billService.Quatity) - (billService.Award * billService.Quatity);
                    waiver.ReasonForWaiver = reason;
                    waiver.WaiverNote      = "Auto Waiver";
                    waiver.UserId          = 1; waiver.BranchId = 1;
                    waiver.DateAdded       = DateTime.Now;
                    db.Waivers.Add(waiver);
                    db.SaveChanges();

                    waiverNumber = waiver.Id;
                }

                billService.WaivedAmount = (billService.Price * billService.Quatity) - (billService.Award * billService.Quatity);
                billService.WaiverNo     = waiverNumber;
                billService.Paid         = true;
                db.SaveChanges();

                AttemptMarkPaid(billService.Id, 0);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="wvr"></param>
        /// <returns></returns>
        internal WaiverNewReqRes addNewCase(Waiver wvr)
        {
            var connectionString = dbConnSdw;
            //  String spName = "GETSTATUS";
            String spName = "PKG_ICM_CASES.MODERNIZED_ADD_CASE";
            //  String spName = "ADD_USER_DOCUMENT";

            // String moutput = "";
            WaiverNewReqRes reqResult = new WaiverNewReqRes();
            // String rctlnum = "";
            //String rarea = "";

            ParameterDirection inpd = ParameterDirection.Input;
            ParameterDirection outpd = ParameterDirection.Output;
            OracleDbType VCHAR2 = OracleDbType.Varchar2;
            OracleDbType INT64 = OracleDbType.Int64;
            OracleDbType DATE1 = OracleDbType.Date;
            string sdMedMidUid = getUserId(SpecDutyBase.gv.MEDMID_INTERFACE_EDIPI);
            Int64 sdMedMidUidLong = Convert.ToInt64(sdMedMidUid);

            using (var conn = new OracleConnection(connectionString))
            using (var command = new OracleCommand(spName, conn)
            {
                CommandType = CommandType.StoredProcedure
            })
            {

                //addcase parameters
                command.Parameters.Add("P_SPONSOR_SSN", VCHAR2, inpd).Value = wvr.sponsorSSN;
                command.Parameters.Add("P_LNAME", VCHAR2, inpd).Value = wvr.sponsorLName;
                command.Parameters.Add("P_FNAME", VCHAR2, inpd).Value = wvr.sponsorFName;
                command.Parameters.Add("P_MNAME", VCHAR2, inpd).Value = wvr.sponsorMName;
                command.Parameters.Add("P_DOB", VCHAR2, inpd).Value = wvr.sponsorDOBString;
                command.Parameters.Add("P_EMAIL", VCHAR2, inpd).Value = wvr.sponsorEMail;
                command.Parameters.Add("P_RELATIONSHIP_ID", INT64, inpd).Value = wvr.relationshipID;
                command.Parameters.Add("P_SERVICE_ID", INT64, inpd).Value = wvr.serviceID;
                command.Parameters.Add("P_DOD_STATUS_ID", INT64, inpd).Value = wvr.dodStatusID;
                command.Parameters.Add("P_DOD_COMPONENT_ID", INT64, inpd).Value = wvr.dodComponentID;
                command.Parameters.Add("P_RANK", INT64, inpd).Value = wvr.rank;
                command.Parameters.Add("P_DECEASED", VCHAR2, inpd).Value = wvr.deceased;
                command.Parameters.Add("P_DOD", VCHAR2, inpd).Value = null;  // wvr.dod;
                command.Parameters.Add("P_SUFFIX", VCHAR2, inpd).Value = wvr.suffix;
                command.Parameters.Add("P_GENDER", VCHAR2, inpd).Value = wvr.gender;
                command.Parameters.Add("P_PHONE", VCHAR2, inpd).Value = wvr.phone;
                command.Parameters.Add("P_DT_CREATED", DATE1, inpd).Value = wvr.created; //DateTime.Now;//
                command.Parameters.Add("P_DEPENDENT_SSN", VCHAR2, inpd).Value = wvr.dependentSSN;
                command.Parameters.Add("P_DEPENDENT_LNAME", VCHAR2, inpd).Value = wvr.dependentLName;
                command.Parameters.Add("P_DEPENDENT_FNAME", VCHAR2, inpd).Value = wvr.dependentFName;
                command.Parameters.Add("P_DEPENDENT_MNAME", VCHAR2, inpd).Value = wvr.dependentMName;
                command.Parameters.Add("P_DEPENDENT_DOB", VCHAR2, inpd).Value = null;// wvr.dependentDOB;
                command.Parameters.Add("P_DEPENDENT_SUFFIX", VCHAR2, inpd).Value = wvr.dependentSuffix;
                command.Parameters.Add("P_DEPENDENT_GENDER", VCHAR2, inpd).Value = wvr.dependentGender;
                command.Parameters.Add("P_USER_ID", INT64, inpd).Value = sdMedMidUidLong; // wvr.userID;
                command.Parameters.Add("p_priority_id", INT64, inpd).Value = wvr.priorityID;
                command.Parameters.Add("P_CASE_ID", INT64, wvr.caseID, outpd); //.Value = wvr.caseID;                   //26

                command.Parameters.Add("P_ORGANIZATIONID", INT64, inpd).Value = wvr.orgID;             //27
                command.Parameters.Add("p_personnelType", INT64, inpd).Value = SpecDutyBase.gv.WW_PERSONNELTYPE;      // wvr.personnelType;
                command.Parameters.Add("p_saveCase", VCHAR2, inpd).Value = "FALSE";// wvr.saveCase;
                command.Parameters.Add("p_bypass", VCHAR2, inpd).Value = "ON";//wvr.bypass;
                command.Parameters.Add("P_WAIVER_REQUESTS", VCHAR2, inpd).Value = wvr.waiverRequests;
                command.Parameters.Add("P_DIAGNOSIS", VCHAR2, inpd).Value = wvr.diagnosis;
                command.Parameters.Add("P_ORGAN", INT64, inpd).Value = wvr.organ;
                command.Parameters.Add("P_COMMENTS", VCHAR2, inpd).Value = wvr.comments;
                command.Parameters.Add("P_ICD_CODE", VCHAR2, inpd).Value = wvr.icd;
                command.Parameters.Add("P_NOTE", VCHAR2, inpd).Value = wvr.note;
                command.Parameters.Add("P_NOTE_TYPE_ID", INT64, inpd).Value = wvr.noteTypeID;
                command.Parameters.Add("P_PARENT_ID", INT64, inpd).Value = wvr.parentID;
                command.Parameters.Add("P_BYPASS_NOTE", VCHAR2, inpd).Value = wvr.bypassNote;
                command.Parameters.Add("P_BYPASS_NOTE_TYPE_ID", INT64, inpd).Value = wvr.bypassNoteTypeID;
                command.Parameters.Add("P_BYPASS_PARENT_ID", INT64, inpd).Value = wvr.bypassParentID;
                command.Parameters.Add("P_URGENT_NOTE", VCHAR2, inpd).Value = wvr.urgentNote;
                command.Parameters.Add("P_URGENT_NOTE_TYPE_ID", INT64, inpd).Value = wvr.urgentNoteTypeID;
                command.Parameters.Add("P_URGENT_PARENT_ID", INT64, inpd).Value = wvr.urgentParentID;

                //
                logger.Debug("MODERNIZED_ADD_CASE Document 1- title:"+wvr.title1+" wvr.docTypeID1: "+wvr.docTypeID1 +" filename: "+wvr.fileName1+" path:"+wvr.path1);
                command.Parameters.Add("P_TITLE_1", VCHAR2, inpd).Value = wvr.title1;  //45
                command.Parameters.Add("P_SIZE_1", INT64, inpd).Value = wvr.size1;
                command.Parameters.Add("P_PATH_1", VCHAR2, inpd).Value = wvr.path1;
                command.Parameters.Add("P_EXTENSION_1", VCHAR2, inpd).Value = wvr.extension1;
                command.Parameters.Add("P_DOC_TYPE_ID_1", INT64, inpd).Value = wvr.docTypeID1;
                //   command.Parameters.Add("P_FILE_NAME_1", VCHAR2, 4000, wvr.fileName1, outpd);//.Value = wvr.fileName1; //50
                command.Parameters.Add("P_FILE_NAME_1", VCHAR2, inpd).Value = wvr.fileName1;
                command.Parameters.Add("P_COMMENTS_1", VCHAR2, inpd).Value = wvr.comments1;

                command.Parameters.Add("P_TITLE_2", VCHAR2, inpd).Value = wvr.title2;
                command.Parameters.Add("P_SIZE_2", INT64, inpd).Value = wvr.size2;
                command.Parameters.Add("P_PATH_2", VCHAR2, inpd).Value = wvr.path2;
                command.Parameters.Add("P_EXTENSION_2", VCHAR2, inpd).Value = wvr.extension2;
                command.Parameters.Add("P_DOC_TYPE_ID_2", INT64, inpd).Value = wvr.docTypeID2;
                //  command.Parameters.Add("P_FILE_NAME_2", VCHAR2, 4000, wvr.fileName2, outpd);//.Value = wvr.fileName2;
                command.Parameters.Add("P_FILE_NAME_2", VCHAR2, inpd).Value = wvr.fileName2;
                command.Parameters.Add("P_COMMENTS_2", VCHAR2, inpd).Value = wvr.comments2;

                command.Parameters.Add("P_TITLE_3", VCHAR2, inpd).Value = wvr.title3;
                command.Parameters.Add("P_SIZE_3", INT64, inpd).Value = wvr.size3;       //60
                command.Parameters.Add("P_PATH_3", VCHAR2, inpd).Value = wvr.path3;
                command.Parameters.Add("P_EXTENSION_3", VCHAR2, inpd).Value = wvr.extension3;
                command.Parameters.Add("P_DOC_TYPE_ID_3", INT64, inpd).Value = wvr.docTypeID3;
                //   command.Parameters.Add("P_FILE_NAME_3", VCHAR2, 4000, wvr.fileName3, outpd);//.Value = wvr.fileName3 ;
                command.Parameters.Add("P_FILE_NAME_3", VCHAR2, inpd).Value = wvr.fileName3;
                command.Parameters.Add("P_COMMENTS_3", VCHAR2, inpd).Value = wvr.comments3;

                command.Parameters.Add("P_TITLE_4", VCHAR2, inpd).Value = wvr.title4;
                command.Parameters.Add("P_SIZE_4", INT64, inpd).Value = wvr.size4;
                command.Parameters.Add("P_PATH_4", VCHAR2, inpd).Value = wvr.path4;
                command.Parameters.Add("P_EXTENSION_4", VCHAR2, inpd).Value = wvr.extension4;
                command.Parameters.Add("P_DOC_TYPE_ID_4", INT64, inpd).Value = wvr.docTypeID4;    //70
                //command.Parameters.Add("P_FILE_NAME_4", VCHAR2, 4000, wvr.fileName4, outpd);//.Value = wvr.fileName4;
                command.Parameters.Add("P_FILE_NAME_4", VCHAR2, inpd).Value = wvr.fileName4;
                command.Parameters.Add("P_COMMENTS_4", VCHAR2, inpd).Value = wvr.comments4;

                command.Parameters.Add("P_TITLE_5", VCHAR2, inpd).Value = wvr.title5;
                command.Parameters.Add("P_SIZE_5", INT64, inpd).Value = wvr.size5;
                command.Parameters.Add("P_PATH_5", VCHAR2, inpd).Value = wvr.path5;
                command.Parameters.Add("P_EXTENSION_5", VCHAR2, inpd).Value = wvr.extension5;
                command.Parameters.Add("P_DOC_TYPE_ID_5", INT64, inpd).Value = wvr.docTypeID5;
                //command.Parameters.Add("P_FILE_NAME_5", VCHAR2, 4000, wvr.fileName5, outpd);//.Value = wvr.fileName5;
                command.Parameters.Add("P_FILE_NAME_5", VCHAR2, inpd).Value = wvr.fileName5;
                command.Parameters.Add("P_COMMENTS_5", VCHAR2, inpd).Value = wvr.comments5;
                String res = "";
                String ctlnum = "";
                String area = "";
                command.Parameters.Add("p_result", VCHAR2, 4000, res, outpd);    //80
                command.Parameters.Add("P_CTRL_NUMBER", VCHAR2, 4000, ctlnum, outpd);
                command.Parameters.Add("p_area", VCHAR2, 4000, area, outpd);
                command.Parameters.Add("P_SPONSOR_EDIPI", VCHAR2, inpd).Value = null;// wvr.sponsorEDIPI;
                command.Parameters.Add("P_DEPENDENT_EDIPI", VCHAR2, inpd).Value = null;//  wvr.dependentEDIPI;
                command.Parameters.Add("P_IS_MEDMIDS", VCHAR2, inpd).Value = "T";

                try
                {
                    conn.Open();
                    command.ExecuteNonQuery();

                    reqResult.result = command.Parameters["p_result"].Value.ToString();
                    reqResult.ctrlNum = command.Parameters["P_CTRL_NUMBER"].Value.ToString();
                    reqResult.area = command.Parameters["p_area"].Value.ToString();
                    reqResult.caseId = command.Parameters["P_CASE_ID"].Value.ToString();
                    reqResult.docName1 = command.Parameters["P_TITLE_1"].Value.ToString();
                    reqResult.docName2 = command.Parameters["P_TITLE_2"].Value.ToString();
                    reqResult.docName3 = command.Parameters["P_TITLE_3"].Value.ToString();
                    reqResult.docName4 = command.Parameters["P_TITLE_4"].Value.ToString();
                    reqResult.docName5 = command.Parameters["P_TITLE_5"].Value.ToString();
                    reqResult.priority = wvr.priorityID.ToString();
                    conn.Close();
                }
                catch (SqlException e)
                {
                    logger.Fatal("SpecDutyBase.CaseAction 1 exception: " + e.Message + e.StackTrace);

                    System.Diagnostics.Debug.WriteLine(e.Message);
                    throw new Exception(e.Message);
                }
            }

            if (reqResult.result.Contains("unique"))
            {
                logger.Error("Modernized_add_case result: " + reqResult.result);
                throw new Exception("Failed Unique Index.  Cannot add documents with same name.");
            }

            return reqResult;
        }
Ejemplo n.º 6
0
        public int AddItemToBill(BillServiceData data, int UserId)
        {
            BillService billService = new BillService();
            var         service     = db.Services.Find(data.ServiceId);
            var         OPDEntry    = db.OpdRegisters.Find(data.OPDNo);

            DateTime dob = ((DateTime)db.OpdRegisters.Find(data.OPDNo).Patient.DOB);

            DateTime today = DateTime.Today;

            int months = today.Month - dob.Month;
            int years  = today.Year - dob.Year;


            if ((years <= 5 && service.IsUnder5))
            {
                billService.Paid = true;

                //Insert In waiver
                var waiver = new Waiver()
                {
                    OPDIPDNo        = data.OPDNo,
                    AmountWaived    = service.CashPrice,
                    ReasonForWaiver = "under 5 automatic waiver",
                    WaiverNote      = "",
                    UserId          = UserId,
                    BranchId        = 1,
                    DateAdded       = DateTime.Now
                };

                //if (Session["UserBranchId"] != null)
                //{
                //    //waiver.BranchId = (int)Session["UserBranchId"];
                //}
                var _waiver = db.Waivers.Add(waiver);
                db.SaveChanges();


                billService.WaivedAmount = service.CashPrice * data.Quantity;
                billService.WaiverNo     = waiver.Id;
            }

            billService.OPDNo        = data.OPDNo;
            billService.DepartmentId = service.DepartmentId;
            billService.SeviceId     = data.ServiceId;
            billService.ServiceName  = service.ServiceName;
            billService.Price        = service.CashPrice;

            var OPD = db.OpdRegisters.Find(data.OPDNo);

            if (OPD.Tariff.Company.CompanyName.ToLower() != "cash")
            {
                var Iprice = db.InsurancePrices.FirstOrDefault(e => e.CompanyId == OPD.Tariff.CompanyId &&
                                                               e.ServicesPrice.ServiceId == data.ServiceId);

                if (Iprice != null)
                {
                    billService.Price = Iprice.Price;
                }
            }

            billService.TariffId        = OPDEntry.TariffId;
            billService.Award           = data.AwardAmount;
            billService.DoctorFee       = 0.0;
            billService.Quatity         = data.Quantity;
            billService.WorkOrderTestId = data.WorkOrderTestId;
            if (data.Quantity == 0)
            {
                billService.Quatity = 1;
            }


            billService.DateAdded = DateTime.Now;
            billService.UserId    = UserId;

            var User = db.Users.FirstOrDefault(e => e.Id.Equals(UserId));

            billService.BranchId = User?.Employee?.BranchId ?? 1;

            if (data.View != null && data.View.ToLower() == "provisionalbillservices")
            {
                if (OPDEntry.Patient.OpdRegisters.Any(e => e.BillServices.Any(f => f.Service.
                                                                              Department.DepartmentName.ToLower().Contains("clinic"))))
                {
                    var ExemptConsultationForClinics = db.KeyValuePairs.FirstOrDefault(e => e.Key_.Equals("ExemptConsultationForClinics"));

                    if (ExemptConsultationForClinics == null)
                    {
                        db.KeyValuePairs.Add(new KeyValuePair()
                        {
                            Key_  = "ExemptConsultationForClinics",
                            Value = "No",
                            Owner = "Dev"
                        });
                    }

                    var ExemptConsultationForClinics2 = db.KeyValuePairs.FirstOrDefault(e => e.Key_.Equals("ExemptConsultationForClinics"));

                    if (ExemptConsultationForClinics2 != null && ExemptConsultationForClinics2.Value == "Yes")
                    {
                        var opd          = db.OpdRegisters.Find(data.OPDNo);
                        var billtoExempt = opd.BillServices.FirstOrDefault(e => e.Service.ServiceName.Contains("Consultation"));

                        if (billtoExempt != null)
                        {
                            billtoExempt.Paid  = true;
                            billtoExempt.Price = 0;
                        }
                    }
                }
            }

            db.BillServices.Add(billService);
            db.SaveChanges();
            if (billService.OpdRegister.Tariff.Company.CompanyName.ToLower().Trim() == "exemption")
            {
                hs.AttemptMarkPaid(billService.Id, 0);
            }
            if (OPDEntry.Tariff.TariffName.ToLower().Trim() != "cash")
            {
                hs.ApplyAward(billService.Id);
            }

            if (hs.ExemptUnderFive() && hs.IsUnderFive(billService.OpdRegister.PatientId))
            {
                if (billService.Service.IsUnder5)
                {
                    hs.AutoWaiver(billService.Id, "under 5 automatic waiver");
                }
            }



            return(billService.Id);
        }