示例#1
0
        public string addAdherenceHIVStatus(int patientId, int patientMasterVisitId, int createdBy, int AcceptedStatus, int DisclosureComplete)
        {
            IPatientEncounter       patientEncounter        = (IPatientEncounter)ObjectFactory.CreateInstance("BusinessProcess.CCC.BPatientEncounter, BusinessProcess.CCC");
            PatientEncounterManager patientEncounterManager = new PatientEncounterManager();

            encounterTypeId = patientEncounterManager.GetPatientEncounterId("EncounterType", "Adherence-Barriers");
            var foundEncounter = patientEncounterManager.GetEncounterIfExists(Convert.ToInt32(patientId), Convert.ToInt32(patientMasterVisitId), Convert.ToInt32(encounterTypeId));

            if (foundEncounter != null)
            {
                EncounterResult = foundEncounter.Id;
            }
            else
            {
                EncounterResult = patientEncounterManager.AddpatientEncounter(Convert.ToInt32(patientId), Convert.ToInt32(patientMasterVisitId),
                                                                              patientEncounterManager.GetPatientEncounterId("EncounterType", "Adherence-Barriers"), 203, createdBy);
            }
            if (EncounterResult > 0)
            {
                try
                {
                    var AL = new AdherenceLogic();
                    Result = AL.addAdherenceHIVStatus(patientId, patientMasterVisitId, createdBy, AcceptedStatus, DisclosureComplete);
                    if (Result > 0)
                    {
                        Msg = " HIV Status Added Successfully";
                    }
                }
                catch (Exception e)
                {
                    Msg = e.Message;
                }
            }
            return(Msg);
        }
示例#2
0
        public int savePatientEncounterPresentingComplaints(string patientMasterVisitID, string patientID, string serviceID, string VisitDate, string VisitScheduled, string VisitBy, string anyComplaints, string Complaints, int TBScreening, int NutritionalStatus, int userId, string adverseEvent, string presentingComplaints)
        {
            IPatientEncounter       patientEncounter        = (IPatientEncounter)ObjectFactory.CreateInstance("BusinessProcess.CCC.BPatientEncounter, BusinessProcess.CCC");
            PatientEncounterManager patientEncounterManager = new PatientEncounterManager();

            JavaScriptSerializer parser = new JavaScriptSerializer();

            var advEvent    = parser.Deserialize <List <AdverseEvents> >(adverseEvent);
            var pComplaints = parser.Deserialize <List <PresentingComplaints> >(presentingComplaints);
            int val         = patientEncounter.savePresentingComplaints(patientMasterVisitID, patientID, serviceID, VisitDate, VisitScheduled, VisitBy, anyComplaints, Complaints, TBScreening, NutritionalStatus, userId, advEvent, pComplaints);

            //Set the Visit Encounter Here
            //TODO: ALWAYS CHECK IF AN ENCOUNTER EXITS BEFRE ADDING:
            encounterTypeId = patientEncounterManager.GetPatientEncounterId("EncounterType", "ccc-encounter".ToLower());
            var foundEncounter = patientEncounterManager.GetEncounterIfExists(Convert.ToInt32(patientID), Convert.ToInt32(patientMasterVisitID), Convert.ToInt32(encounterTypeId));

            if (foundEncounter != null)
            {
                result = foundEncounter.Id;
            }
            else
            {
                if (val > 0)
                {
                    result = patientEncounterManager.AddpatientEncounter(Convert.ToInt32(patientID),
                                                                         Convert.ToInt32(patientMasterVisitID),
                                                                         patientEncounterManager.GetPatientEncounterId("EncounterType", "ccc-encounter".ToLower()), 203,
                                                                         userId);
                }
            }
            return((result > 0) ? val : 0);
        }
示例#3
0
        public int SavePatientPreviousEncounter(int patientID, int patientMasterVisitID, string EncounterType, int ServiceAreaId, int userId, DateTime visitDate)
        {
            int val = 0;
            IPatientEncounter       patientEncounter        = (IPatientEncounter)ObjectFactory.CreateInstance("BusinessProcess.CCC.BPatientEncounter, BusinessProcess.CCC");
            PatientEncounterManager patientEncounterManager = new PatientEncounterManager();

            encounterTypeId = patientEncounterManager.GetPatientEncounterId("EncounterType", EncounterType.ToLower());
            var foundEncounter = patientEncounterManager.GetEncounterIfExists(Convert.ToInt32(patientID), Convert.ToInt32(patientMasterVisitID), Convert.ToInt32(encounterTypeId));

            if (foundEncounter != null)
            {
                result = foundEncounter.Id;
            }
            else
            {
                Entities.CCC.Visit.PatientEncounter patientVisitEncounter = new Entities.CCC.Visit.PatientEncounter()
                {
                    PatientId            = Convert.ToInt32(patientID),
                    EncounterStartTime   = visitDate,
                    EncounterEndTime     = visitDate,
                    ServiceAreaId        = 203,
                    EncounterTypeId      = encounterTypeId,
                    PatientMasterVisitId = Convert.ToInt32(patientMasterVisitID),
                    CreatedBy            = userId
                };

                result = patientEncounterManager.AddPatientEncounter(patientVisitEncounter);
            }
            return((result > 0) ? result : val);
        }
示例#4
0
        public int savePatientEncounter(int patientID, int patientMasterVisitID, string EncounterType, int ServiceAreaId, int userId)
        {
            int val = 0;
            IPatientEncounter       patientEncounter        = (IPatientEncounter)ObjectFactory.CreateInstance("BusinessProcess.CCC.BPatientEncounter, BusinessProcess.CCC");
            PatientEncounterManager patientEncounterManager = new PatientEncounterManager();

            encounterTypeId = patientEncounterManager.GetPatientEncounterId("EncounterType", EncounterType.ToLower());
            var foundEncounter = patientEncounterManager.GetEncounterIfExists(Convert.ToInt32(patientID), Convert.ToInt32(patientMasterVisitID), Convert.ToInt32(encounterTypeId));

            if (foundEncounter != null)
            {
                result = foundEncounter.Id;
            }
            else
            {
                result = patientEncounterManager.AddpatientEncounter(Convert.ToInt32(patientID), Convert.ToInt32(patientMasterVisitID), encounterTypeId, 203, userId);
            }
            return((result > 0) ? result : val);
        }
示例#5
0
        public int saveUpdatePharmacy(string PatientMasterVisitID, string PatientId, string LocationID, string OrderedBy,
                                      string UserID, string DispensedBy, string RegimenLine, string ModuleID, string pmscmFlag, string prescription,
                                      string TreatmentProgram, string PeriodTaken, string TreatmentPlan, string TreatmentPlanReason, string Regimen,
                                      string regimenText, string prescriptionDate, string dispensedDate)
        {
            IPatientPharmacy        patientEncounter        = (IPatientPharmacy)ObjectFactory.CreateInstance("BusinessProcess.CCC.BPatientPharmacy, BusinessProcess.CCC");
            PatientEncounterManager patientEncounterManager = new PatientEncounterManager();
            JavaScriptSerializer    parser = new JavaScriptSerializer();
            int val = 0;
            var drugPrescription = parser.Deserialize <List <DrugPrescription> >(prescription);

            string RegimenType = "";

            for (int i = 0; i < drugPrescription.Count; i++)
            {
                if (!RegimenType.ToUpper().Contains(drugPrescription[i].DrugAbbr.ToUpper()))
                {
                    if (drugPrescription[i].DrugAbbr != "")
                    {
                        RegimenType += drugPrescription[i].DrugAbbr + "/";
                    }
                }
            }

            result = patientEncounter.saveUpdatePharmacy(PatientMasterVisitID, PatientId, LocationID, OrderedBy,
                                                         UserID, RegimenType.TrimEnd('/'), DispensedBy, RegimenLine, ModuleID, drugPrescription, pmscmFlag,
                                                         TreatmentProgram, PeriodTaken, TreatmentPlan, TreatmentPlanReason, Regimen, prescriptionDate,
                                                         dispensedDate);

            //--  Raise event if result is>0 for sharing with IL

            if (result > 0)
            {
                MessageEventArgs arg = new MessageEventArgs()
                {
                    PatientId            = Convert.ToInt32(PatientId),
                    EntityId             = result, // the orderId
                    EventOccurred        = "Prescription Raised",
                    MessageType          = MessageType.DrugPrescriptionRaised,
                    FacilityId           = 0,
                    PatientMasterVisitId = Convert.ToInt32(PatientMasterVisitID)
                };
                Publisher.RaiseEventAsync(this, arg).ConfigureAwait(false); // --
            }
            if (result > 0)
            {
                val = patientEncounterManager.AddpatientEncounter(Convert.ToInt32(PatientId), Convert.ToInt32(PatientMasterVisitID), patientEncounterManager.GetPatientEncounterId("EncounterType", "Pharmacy-encounter".ToLower()), 204, Convert.ToInt32(UserID));
            }
            return((val > 0) ? result : 0);
            // return result;
        }
示例#6
0
        public string AddpatientVitals(int patientId, int bpSystolic, int bpDiastolic, decimal heartRate, decimal height,
                                       decimal muac, int patientMasterVisitId, decimal respiratoryRate, decimal spo2, decimal tempreture,
                                       decimal weight, decimal bmi, decimal headCircumference, string bmiz, string weightForAge, string weightForHeight, DateTime visitDate)
        {
            try
            {
                PatientEncounterManager patientEncounterManager = new PatientEncounterManager();
                int facilityId = Convert.ToInt32(Session["AppPosID"]);

                PatientVital patientVital = new PatientVital()
                {
                    PatientId            = patientId,
                    BpSystolic           = bpSystolic,
                    Bpdiastolic          = bpDiastolic,
                    HeartRate            = heartRate,
                    Height               = height,
                    Muac                 = muac,
                    PatientMasterVisitId = patientMasterVisitId,
                    RespiratoryRate      = respiratoryRate,
                    SpO2                 = spo2,
                    Temperature          = tempreture,
                    Weight               = weight,
                    BMI = bmi,
                    HeadCircumference = headCircumference,
                    VisitDate         = visitDate,
                    BMIZ            = bmiz,
                    WeightForAge    = weightForAge,
                    WeightForHeight = weightForHeight,
                };
                var vital = new PatientVitalsManager();
                Result = vital.AddPatientVitals(patientVital, facilityId);
                int userId = Convert.ToInt32(Session["AppUserId"]);

                if (Result > 0)
                {
                    Result = patientEncounterManager.AddpatientEncounter(patientId, patientMasterVisitId, patientEncounterManager.GetPatientEncounterId("EncounterType", "Triage-encounter".ToLower()), 204, userId);

                    if (Result > 0)
                    {
                        Msg = "Patient Vitals Added Successfully!";
                    }
                }
            }
            catch (Exception e)
            {
                Msg = e.Message;
            }
            return(Msg);
        }
示例#7
0
        public string saveTracingData(int PatientId, int PersonId, string tracingdate, int tracingmethod, int tracingoutcome, string othertracingoutcome, string tracingdateofdeath,
                                      string tracingdateoftransfer, string transferfacility, string tracingnotes, string tracingstatus, int?visitid)
        {
            ILookupManager mgr     = (ILookupManager)ObjectFactory.CreateInstance("BusinessProcess.CCC.BLookupManager, BusinessProcess.CCC");
            var            tracing = new ReportingResultsManager();
            int            userId  = Convert.ToInt32(Session["AppUserId"]);
            int            patientmastervisitresult = 0;
            int            EncounterResult          = 0;
            string         savestatus       = "";
            DateTime?      deathTracingDate = new DateTime();
            int            CheckoutResult   = 0;

            //save tracing data
            if (tracingdateofdeath == "")
            {
                deathTracingDate = null;
            }
            else
            {
                deathTracingDate = Convert.ToDateTime(tracingdateofdeath);
            }

            DateTime?transferTracingDate = new DateTime();

            if (tracingdateoftransfer == "")
            {
                transferTracingDate = null;
            }
            else
            {
                transferTracingDate = Convert.ToDateTime(tracingdateoftransfer);
            }

            try
            {
                //create patient master visit id
                PatientMasterVisitManager patientMasterVisit = new PatientMasterVisitManager();
                LookupLogic lookupLogic     = new LookupLogic();
                var         currentfacility = lookupLogic.GetFacility(Session["AppPosID"].ToString());
                if (currentfacility == null)
                {
                    currentfacility = lookupLogic.GetFacility();
                }

                if (visitid.HasValue && visitid.Value > 0)
                {
                    Tracing[] patientTracingData = tracing.getTracingData(visitid.Value).ToArray();
                    if (patientTracingData.Length > 0)
                    {
                        patientTracingData[0].Mode                    = tracingmethod;
                        patientTracingData[0].Outcome                 = tracingoutcome;
                        patientTracingData[0].DateTracingDone         = Convert.ToDateTime(tracingdate);
                        patientTracingData[0].TracingDateOfDeath      = deathTracingDate;
                        patientTracingData[0].TracingTransferFacility = transferfacility;
                        patientTracingData[0].TracingTransferDate     = transferTracingDate;
                        patientTracingData[0].Remarks                 = tracingnotes;

                        tracing.UpdatePatientTracing(patientTracingData[0]);
                        Session["PatientTrace"] = "";
                    }
                }
                else
                {
                    patientmastervisitresult = patientMasterVisit.PatientMasterVisitCheckin(PatientId, userId, currentfacility.FacilityID);

                    //create encounter
                    PatientEncounterManager patientEncounterManager = new PatientEncounterManager();
                    EncounterResult = patientEncounterManager.AddpatientEncounterTracing(Convert.ToInt32(PatientId), Convert.ToInt32(patientmastervisitresult),
                                                                                         patientEncounterManager.GetPatientEncounterId("EncounterType", "Patient-Tracing"), 203, userId, Convert.ToDateTime(tracingdate), Convert.ToDateTime(tracingdate));
                    int tracingType = Convert.ToInt32(mgr.GetLookupItemId("DefaulterTracing"));
                    //save tracing data
                    Tracing patientTracing = new Tracing()
                    {
                        PersonID             = PersonId,
                        TracingType          = tracingType,
                        PatientMasterVisitId = patientmastervisitresult,
                        DateTracingDone      = Convert.ToDateTime(tracingdate),
                        Mode                    = tracingmethod,
                        Outcome                 = tracingoutcome,
                        TracingDateOfDeath      = deathTracingDate,
                        TracingTransferFacility = transferfacility,
                        TracingTransferDate     = transferTracingDate,
                        Remarks                 = tracingnotes,
                        CreateDate              = DateTime.Now,
                        CreatedBy               = Convert.ToInt32(Session["AppUserId"])
                    };

                    Result = tracing.AddPatientTracing(patientTracing);

                    //checkout patient master visit
                    PatientMasterVisitManager patientMasterVisitcheckout = new PatientMasterVisitManager();
                    CheckoutResult = patientMasterVisit.PatientMasterVisitCheckout(patientmastervisitresult, PatientId, 0, 0, 0, Convert.ToDateTime(tracingdate));

                    Session["EncounterStatusId"] = 0;
                    Session["PatientEditId"]     = 0;
                    Session["PatientPK"]         = 0;
                    Session["PatientTrace"]      = "";

                    if (Result > 0 && CheckoutResult > 0)
                    {
                        Msg = "Patient appointment Added Successfully!";
                    }
                }
            }
            catch (Exception e)
            {
                Msg = e.Message;
            }
            return(savestatus);
        }
示例#8
0
        /// <summary>
        /// Saves the patient lab order.
        /// </summary>
        /// <param name="patientID">The patient identifier.</param>
        /// <param name="patient_Pk">The patient pk.</param>
        /// <param name="userId">The user identifier.</param>
        /// <param name="facilityID">The facility identifier.</param>
        /// <param name="moduleId">The module identifier.</param>
        /// <param name="patientMasterVisitId">The patient master visit identifier.</param>
        /// <param name="labOrderDate">The lab order date.</param>
        /// <param name="orderNotes">The order notes.</param>
        /// <param name="patientLabOrder">The patient lab order.</param>
        /// <param name="orderStatus">The order status.</param>
        /// <returns>order Id</returns>
        public int savePatientLabOrder(int patientID, int patient_Pk, int userId, int facilityID, int moduleId, int patientMasterVisitId, string labOrderDate, string orderNotes, string patientLabOrder, string orderStatus)
        {
            int visitId = 0;
            int orderId = 0;
            int testId  = 0;
            //int _paramId = 0;
            DateTime orderDate = Convert.ToDateTime(labOrderDate);
            // DateTime orderDate = DateTime.Now;
            //DateTime orderDate = DateTime.Parse(labOrderDate);
            var jss = new JavaScriptSerializer();
            IList <ListLabOrder> data = jss.Deserialize <IList <ListLabOrder> >(patientLabOrder);

            if (patientID > 0)
            {
                PatientVisit visit = new PatientVisit()
                {
                    Ptn_Pk      = patient_Pk,
                    LocationID  = facilityID,
                    UserID      = userId,
                    TypeofVisit = 70, //Self (70) 71 (Treatmentsupporter)
                    VisitDate   = orderDate,
                    ModuleId    = moduleId,
                    VisitType   = 6
                };
                visitId = _visitManager.AddPatientVisit(visit);

                LabOrderEntity labOrder = new LabOrderEntity()
                {
                    Ptn_pk               = patient_Pk,
                    PatientId            = patientID,
                    LocationId           = facilityID,
                    VisitId              = visitId,
                    ModuleId             = moduleId,
                    OrderedBy            = userId,
                    ClinicalOrderNotes   = orderNotes,
                    PatientMasterVisitId = patientMasterVisitId,
                    OrderStatus          = orderStatus,
                    OrderDate            = orderDate,
                    UserId               = userId
                };
                orderId = _mgr.AddPatientLabOrder(labOrder);
                // DateTime? nullDate = null;
                foreach (ListLabOrder t in data)
                {
                    LabDetailsEntity labDetails = new LabDetailsEntity()
                    {
                        LabOrderId = orderId,
                        LabTestId  = t.LabNameId,
                        TestNotes  = t.LabNotes,
                        UserId     = userId,
                        CreatedBy  = userId,
                        StatusDate = DateTime.Now,
                        ResultDate = t.ResultDate
                    };
                    testId = _mgr.AddLabOrderDetails(labDetails);

                    PatientLabTracker labTracker = new PatientLabTracker()
                    {
                        PatientId            = patientID,
                        PatientMasterVisitId = patientMasterVisitId,
                        LabName    = t.LabName,
                        SampleDate = orderDate,
                        Reasons    = t.OrderReason,

                        CreatedBy      = userId,
                        Results        = orderStatus,
                        LabOrderId     = orderId,
                        LabTestId      = t.LabNameId, //parameter
                        LabOrderTestId = testId,      //uniquely identifies a particular test
                        FacilityId     = facilityID,
                        ResultDate     = t.ResultDate
                    };

                    Result = _mgr.AddPatientLabTracker(labTracker);
                    if (Result > 0)
                    {
                        Id = _patientEncounterManager.AddpatientEncounter(patientID, patientMasterVisitId, _patientEncounterManager.GetPatientEncounterId("EncounterType", "lab-encounter".ToLower()), 205, userId);
                    }
                    //add to dtlresults

                    List <LookupTestParameter> _parameters = _lookupTest.GetTestParameter(t.LabNameId);
                    if (_parameters != null)
                    {
                        foreach (LookupTestParameter p in _parameters)
                        {
                            LabResultsEntity labresults = new LabResultsEntity()
                            {
                                LabOrderId     = orderId,
                                LabTestId      = t.LabNameId,
                                LabOrderTestId = testId,
                                ParameterId    = p.Id,
                                UserId         = userId,
                                CreatedBy      = userId,
                                StatusDate     = DateTime.Now
                            };
                            _mgr.AddPatientLabResults(labresults);
                        }
                    }
                }
            }
            return(orderId);
        }