コード例 #1
0
 public VoiceInfoAutomat(List<string> patientenNameList, List<long> patientIDList)
 {
     state = State.init;
     this.patientenNameList = patientenNameList;
     this.currentPatient = null;
     patientComponent = new PatientDocumentationComponent();
     this.patientenNameList = patientenNameList;
     this.patientIDList = patientIDList;
     patientList = patientComponent.GetAllPatients();
 }
コード例 #2
0
ファイル: CaseWindow.xaml.cs プロジェクト: wiegardfl/H.E.L.P.
        private void BtnEditData_Click(object sender, RoutedEventArgs e)
        {
            Patient     dataClone       = SystemCase.Data.Clone();
            PatientData editPatientData = new PatientData(SystemCase.Data);

            if (editPatientData.ShowDialog() == false)
            {
                foreach (Patient patient in DynamicData.Patients)
                {
                    if (dataClone.KVNR.Equals(patient.KVNR))
                    {
                        this.SystemCase.Data = patient;

                        break;
                    }
                }
            }
        }
コード例 #3
0
        private static void Main()
        {
            var pd = new PatientData();

            pd.GestationalAge.Value = 22.42857143;
            pd.FemurLength.Value    = 59;
            var list = ResultsHelper.GetEmptyResults(pd);

            foreach (var r in list)
            {
                if (r.ZScoreable)
                {
                    //System.Console.WriteLine(r.Name + ": " + r.Formula.GetZScore(3.2));
                    r.Formula.UseFL = true;
                    Debug.WriteLine(r.Formula.GetZScore(3.2));
                }
            }
        }
コード例 #4
0
ファイル: QueryProcessor.cs プロジェクト: sakpung/webstudy
        private void PatientMatchDelegate(PatientQuery patientResult, DicomDataSet ds)
        {
            PatientData patient = new PatientData( );

#if LEADTOOLS_V19_OR_LATER
            patient.BirthDate = (patientResult.PatientBirthDate == null) ? string.Empty : patientResult.PatientBirthDate.StartDate.Value.ToString( );
#else
            patient.BirthDate = (patientResult.PatientBirthDate == null) ? string.Empty : patientResult.PatientBirthDate.Value.ToString( );
#endif
            patient.Comments = patientResult.PatientComments;
            patient.ID       = patientResult.PatientId;
            patient.Name     = (string.IsNullOrEmpty(patientResult.PatientName)) ? string.Empty : patientResult.PatientName;
            patient.Sex      = patientResult.PatientSex;

            patient.NumberOfRelatedInstances = ds.GetValue <string> (DicomTag.NumberOfPatientRelatedInstances, string.Empty);
            patient.NumberOfRelatedSeries    = ds.GetValue <string> (DicomTag.NumberOfPatientRelatedSeries, string.Empty);
            patient.NumberOfRelatedStudies   = ds.GetValue <string> (DicomTag.NumberOfPatientRelatedStudies, string.Empty);
        }
コード例 #5
0
        public PatientBaseViewModel PatientProfile(Guid accId)
        {
            PatientBaseViewModel result = new PatientBaseViewModel();

            result.AccId = accId;

            try
            {
                PatientData dataLayer = new PatientData();
                result = dataLayer.PatientProfile(accId);
            }
            catch (Exception err)
            {
                new LogHelper().LogMessage("PatientBusiness.PatientProfile : " + err);
            }

            return(result);
        }
コード例 #6
0
 public FormulairePatientViewModel()
 {
     try
     {
         singleUser = Singleton.getInstance();
         _nav       = SimpleIoc.Default.GetInstance <INavigation>();
         CreateCommands();
         ListeNom    = PatientData.GetListeNom();
         ListePrenom = PatientData.GetListePrenom();
         Messenger.Default.Register <Singleton>(this, "Singleton", OnConnected);
         Messenger.Default.Register <bool>(this, "ConnInsc", ConnInsc);
         Messenger.Default.Register <bool>(this, "ConnSupp", ConnSupp);
     }
     catch (Exception ex)
     {
         GestionErreur.GerrerErreur(ex);
     }
 }
コード例 #7
0
        /// <summary>
        /// Calls the patient microservice API to get the name using the patient Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <PatientData> GetByIdAsync(int id)
        {
            var patientServiceName            = new Uri($"{_serviceContext.CodePackageActivationContext.ApplicationName}/MedicalBookingSystem.Patient");
            var patientServiceReverseProxyUrl = new Uri($"{APIGatewayConfiguration.ReverseProxyUri}{patientServiceName.AbsolutePath}");

            var response = await _apiClient.GetAsync(patientServiceReverseProxyUrl + UrlsConfig.PatientOperations.GetPatientById(id.ToString()));

            PatientData patient = null;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var content = await response.Content.ReadAsStringAsync();

                patient = JsonConvert.DeserializeObject <PatientData>(content);
            }

            return(patient);
        }
コード例 #8
0
ファイル: PatientTest.cs プロジェクト: rotovibe/engage
        public void SavePatient_Test()
        {
            PatientData data = new PatientData
            {
                Id        = "53f3c367d6a48508586bbace",
                FirstName = "Ellaha",
                LastName  = "Bullock"
            };
            PutUpdatePatientDataRequest request = new PutUpdatePatientDataRequest {
                Insert = true, Context = context, ContractNumber = contractNumber, UserId = userId, Version = version, PatientData = data
            };
            IPatientDataManager pm = new PatientDataManager {
                Factory = new PatientRepositoryFactory()
            };
            PutUpdatePatientDataResponse response = pm.UpdatePatient(request);

            Assert.IsNotNull(response);
        }
コード例 #9
0
        public void SupPatient()
        {
            try
            {
                if (MessageBox.Show(AxLanguage.Languages.REAplan_Supprimer_Confirmation, AxLanguage.Languages.REAplan_Confirmation, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    Singleton single          = Singleton.getInstance();
                    DateTime  DateDeNaissance = Convert.ToDateTime(SelectResultRech.DateDeNaissance);
                    PatientData.SupPatient(SelectResultRech.Nom, SelectResultRech.Prenom, DateDeNaissance);

                    MessageBox.Show(AxLanguage.Languages.REAplan_Supprimer_Patient, AxLanguage.Languages.REAplan_Suppression, MessageBoxButton.OK, MessageBoxImage.Exclamation);

                    ResultRech = new ObservableCollection <ListePatientDataGrid>();
                    using (ReaPlanDBEntities context = new ReaPlanDBEntities())
                    {
                        ObjectSet <PatientDB>    query       = context.PatientDBs;
                        ObjectResult <PatientDB> queryResult = query.Execute(MergeOption.AppendOnly);
                        foreach (PatientDB result in queryResult)
                        {
                            if (result.Nom == SelectN || result.Prenom == SelectP)
                            {
                                if (single.PatientSingleton == null || (result.Nom != single.PatientSingleton.Nom || result.Prenom != single.PatientSingleton.Prenom || result.DateNaissance != single.PatientSingleton.DateNaiss))
                                {
                                    ListePatientDataGrid p = new ListePatientDataGrid();
                                    p.Nom             = result.Nom;
                                    p.Prenom          = result.Prenom;
                                    p.DateDeNaissance = result.DateNaissance.ToShortDateString();
                                    ResultRech.Add(p);
                                }
                            }
                        }
                    }
                    ListeNom      = GetListeNom();
                    ListePrenom   = GetListePrenom();
                    NomPatient    = null;
                    PrenomPatient = null;
                }
                SimpleIoc.Default.GetInstance <INavigation>().NavigateTo <HomeViewModel>(null, "PostTraitementSupression", null, false);
            }
            catch (Exception ex)
            {
                GestionErreur.GerrerErreur(ex);
            }
        }
コード例 #10
0
        public async Task <string> OnAddExercisePressed()
        {
            if (!String.IsNullOrEmpty(_hours.Text))
            {
                if (float.Parse(_hours.Text) > 0 && float.Parse(_hours.Text) <= 4)
                {
                    DateTime timeNow = DateTime.Now.ToLocalTime();

                    PatientData patientData = new PatientData();
                    Patient     patient;

                    try
                    {
                        patient = await _restService.ReadPatientAsync();
                    }
                    catch (Exception)
                    {
                        return("No Connection");
                    }

                    PatientExercise patientExercise = new PatientExercise()
                    {
                        UserId         = patient.UserId,
                        HoursExercised = float.Parse(_hours.Text),
                        TimeOfDay      = timeNow
                    };

                    patientData.PatientExercises.Add(patientExercise);

                    await _restService.CreatePatientData(patientData);

                    return("Success");
                }
                else
                {
                    return("That Number Is Not Valid");
                }
            }
            else
            {
                return("The form is not filled out");
            }
        }
コード例 #11
0
        public void LoadPatientData()
        {
            defaultLog.Write("Loading patient data");
            string query = "SELECT PESEL, first_name, last_name FROM patient_data";

            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataReader data = cmd.ExecuteReader();

            while (data.Read())
            {
                UInt64 PESEL = Convert.ToUInt64((string)data["PESEL"]);
                string first_name = (string)data["first_name"];
                string last_name = (string)data["last_name"];

                PatientData p = new PatientData(first_name, last_name, PESEL, Global.dataSource);
            }

            data.Close();
        }
コード例 #12
0
        private static List <MeasurementSpecification> PulmonaryVeinSpecs(PatientData pd)
        {
            var specs = new List <MeasurementSpecification>();
            Dictionary <string, string> props = new Dictionary <string, string>();

            props.Add("Cardiac Cycle Point", "End Systole");
            specs.Add(new MeasurementSpecification("Pulm vein S wave", "Peak Velocity", new Dictionary <string, string>(props), "cm/s", formula: ImpactOfCardiacGrowthFormula.PulmVeinSWave(pd, "pulmonary venous S wave velocity"), unitEnum: SpeedUnit.CentimeterPerSecond));
            props.Clear();

            props.Add("Cardiac Cycle Point", "End Diastole");
            specs.Add(new MeasurementSpecification("Pulm vein D wave", "Peak Velocity", new Dictionary <string, string>(props), "cm/s", formula: ImpactOfCardiacGrowthFormula.PulmVeinDWave(pd, "pulmonary venous D wave velocity"), unitEnum: SpeedUnit.CentimeterPerSecond));
            props.Clear();

            specs.Add(new MeasurementSpecification("Pulm vein A wave", "Peak Reversal Velocity during Atrial Contraction", new Dictionary <string, string>(props), "cm/s", formula: ImpactOfCardiacGrowthFormula.PulmVeinAWave(pd, "pulmonary venous A wave velocity"), unitEnum: SpeedUnit.CentimeterPerSecond));
            specs.Add(new MeasurementSpecification("Pulmonary vein A wave duration", "A-Wave Duration", new Dictionary <string, string>(props), "ms", unitEnum: DurationUnit.Millisecond));
            props.Clear();

            return(specs);
        }
コード例 #13
0
ファイル: ParseSqlQuery.cs プロジェクト: oleghsandra/kn_47
        public static List <PatientData> GetPatientData(string bdResult)
        {
            var values = bdResult.Split('*');
            var result = new List <PatientData>();

            for (int i = 0; i < values.Length - 1; i += 5)
            {
                var patientData = new PatientData
                {
                    FirstName = (values.GetValue(i) ?? "Not specified").ToString(),
                    LastName  = (values.GetValue(1 + i) ?? "Not specified").ToString(),
                    Birthday  = Convert.ToDateTime((values.GetValue(2 + i) != "") ? values.GetValue(2 + i) : new DateTime(1900, 1, 1)),
                    Phone     = (values.GetValue(3 + i) ?? "Not specified").ToString(),
                    BloodType = (values.GetValue(4 + i) ?? "Not specified").ToString(),
                };
                result.Add(patientData);
            }
            return(result);
        }
コード例 #14
0
        public PatientData DetailsOfPatient(PatientData patientData)
        {
            var patient = new PatientData
            {
                PatientName = patientData.PatientName,
                PhoneNumber = patientData.PhoneNumber,
                Gender      = patientData.Gender,
                Age         = patientData.Age,
                Address     = patientData.Address,
                City        = patientData.City,
                State       = patientData.State,
                Country     = patientData.Country
            };

            DbContext.PatientDetails.Add(patient);
            DbContext.SaveChanges();
            patientData.Id = patient.Id;
            return(patient);
        }
コード例 #15
0
ファイル: PatientContainer.cs プロジェクト: uffiee1/EurocomV2
        public List <PatientModel> RetreivePatientStatus(string idP)
        {
            PatientData         patientData      = new PatientData();
            List <PatientModel> patientStatus    = new List <PatientModel>();
            List <PatientDTO>   patientStatusDTO = patientData.GetPatientStatus(idP);

            foreach (PatientDTO status in patientStatusDTO)
            {
                PatientModel patientModel = new PatientModel
                {
                    statusModel = new StatusModel
                    {
                        Date = status.statusDTO.Date,
                        INR  = status.statusDTO.INR
                    }
                };
                patientStatus.Add(patientModel);
            }
            return(patientStatus);
        }
コード例 #16
0
        public async Task <PatientData> ReadPatientDataAsync()
        {
            try
            {
                await _client.GetAsync(new Uri(_baseAddress) + "Auth/");

                _token    = new CancellationTokenSource();
                _response = await _client.PostAsync(new Uri(_baseAddress + "Data/Read/"), null, _token.Token);

                _data = await _response.Content.ReadAsStringAsync();

                PatientData patientData = JsonConvert.DeserializeObject <PatientData>(_data);
                return(patientData);
            }
            catch (Exception)
            {
                _token.Cancel();
                return(null);
            }
        }
コード例 #17
0
        public IActionResult Post([FromBody] PatientModel obj)
        {
            var context = new ValidationContext(obj, null, null);
            var result  = new List <ValidationResult>();
            var isValid = Validator.TryValidateObject(obj, context, result, true);

            if (result.Count == 0)
            {
                PatientData dal = new PatientData();
                dal.Database.EnsureCreated();
                dal.Add(obj);      //add in memory
                dal.SaveChanges(); //physical memory
                List <PatientModel> recs = dal.PatientModels.ToList <PatientModel>();
                return(StatusCode(200, recs));
            }
            else
            {
                return(StatusCode(500, (result)));
            }
        }
コード例 #18
0
        private static List <MeasurementSpecification> PulmonicValveSpecs(PatientData pd)
        {
            var specs = new List <MeasurementSpecification>();
            Dictionary <string, string> props = new Dictionary <string, string>();

            props.Add("Finding Site", "Cardiac valve annulus");
            specs.Add(new MeasurementSpecification("Pulmonary valve annulus", "Diameter", new Dictionary <string, string>(props), "cm", formula: RegressionEquationFormula.PulmonaryValveAnnulus(pd, "Pulmonary valve annulus"), includeImageMode: true, unitEnum: LengthUnit.Centimeter));
            props.Clear();

            props.Add("Flow Direction", "Antegrade Flow");
            specs.Add(new MeasurementSpecification("Pulmonary valve mean gradient", "Mean Gradient", new Dictionary <string, string>(props), "mmHg"));
            specs.Add(new MeasurementSpecification("Pulmonary valve peak gradient", "Peak Gradient", new Dictionary <string, string>(props), "mmHg"));
            specs.Add(new MeasurementSpecification("Pulmonary valve peak velocity", "Peak Velocity", new Dictionary <string, string>(props), "m/s", unitEnum: SpeedUnit.MeterPerSecond));
            props.Clear();

            props.Add("Flow Direction", "Regurgitant Flow");
            specs.Add(new MeasurementSpecification("Pulmonary valve end diastolic velocity", "End Diastolic Velocity", new Dictionary <string, string>(props), "m/s", unitEnum: SpeedUnit.MeterPerSecond));
            props.Clear();
            return(specs);
        }
コード例 #19
0
        public int DeletePatientDocumentByPatientDocumentID(Int64 PatientDocumentID)
        {
            int         _ReturnValue = 0;
            PatientData data         = new PatientData();

            OracleDataAccess.OracleCommandData _data = new OracleDataAccess.OracleCommandData();
            try
            {
                _data._CommandType = CommandType.Text;
                _data.CommandText  = "SELECT * FROM PATIENT_DOCUMENT where  Patient_Document_ID=" + PatientDocumentID + "";// trim(DOC_CATEGORY_ID)=" + CategoryID + " AND trim(Patient_ID)='" + PatientID + "'";
                _data.OpenWithOutTrans();

                //Executing Query
                DataSet _ds = _data.Execute(OracleDataAccess.ExecutionType.ExecuteDataSet) as DataSet;

                data.dt      = _ds.Tables[0];
                data.isValid = true;
                if (_ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow item in _ds.Tables[0].Rows)
                    {
                        FileHelper.DeleteFile(item["Path"].ToString());
                        _ReturnValue = 1;
                    }
                }

                //string sQuery = "SELECT * FROM PatientTable ";
                // data.dt= new DBAction().ExecuteDataSetInline(sQuery).Tables[0];
            }
            catch (Exception ex)
            {
                data.Error = ex.Message.ToString();
                //throw;
            }
            finally
            {
                _data.Close();
            }

            return(_ReturnValue);
        }
コード例 #20
0
        public async Task <string> DeletePatientDataAsync(PatientData patientData)
        {
            try
            {
                await _client.GetAsync(new Uri(_baseAddress) + "Auth/");

                _token = new CancellationTokenSource();
                //Serialize the patientCreationBundle and send it to the API.
                StringContent patientContent = new StringContent(JObject.FromObject(patientData).ToString(), Encoding.UTF8, "application/json");

                _response = await _client.PostAsync(new Uri(_baseAddress + "Data/Delete/"), patientContent, _token.Token);

                _data = await _response.Content.ReadAsStringAsync();

                return("Success");
            }
            catch (Exception)
            {
                return("Failure");
            }
        }
コード例 #21
0
        public static StructuredReport GetStructuredReport(DicomDataset ds)
        {
            var         sr       = new DicomStructuredReport(ds);
            PatientData pd       = null;
            var         findings = new Dictionary <string, List <MeasurementGroup> >();

            foreach (var group in sr.Children())
            {
                if (group.Type == DicomValueType.Container && group.Code.Value.Equals("121070"))
                {
                    HandleFinding(findings, group);
                }
                else if (group.Type == DicomValueType.Container && group.Code.Value.Equals("121118"))
                {
                    pd = new PatientData(group);
                }
            }
            var report = new StructuredReport(pd, findings);

            return(report);
        }
コード例 #22
0
        public ActionResult PopulateTimeSlot(TimeSlotViewModel model)
        {
            if (Session["userId"] == null)
            {
                return(Redirect("~"));
            }
            //model.Date = (DateTime)TempData["SelectedDateForAppointment"];
            ScheduleBasedAppointmentManagement appointmentManagement = new ScheduleBasedAppointmentManagement();
            var doctorAvailability = appointmentManagement.GetAvailability(model.DoctorId, model.Date);

            model.FromSlot = doctorAvailability.FromTime;
            model.ToSlot   = doctorAvailability.ToTime;
            DoctorScheduleManagement doctorScheduleManagement = new DoctorScheduleManagement();

            model.TimeSlots = new DoctorsData().GetDoctorAvailableTimeSlots(model.DoctorId, model.Date);
            var patientData = new PatientData();
            int patientId   = patientData.GetPatientIdIfExists(model.PatientPhone);

            model.RemoveExistingAppointmentSlots(patientId, model.Date);
            return(View(model));
        }
コード例 #23
0
        public async Task <ActionResult <PatientData> > PostPatientData(PatientData patientData)
        {
            _context.PatientData.Add(patientData);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (PatientDataExists(patientData.PatientID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetPatientData", new { id = patientData.PatientID }, patientData));
        }
コード例 #24
0
        public void SentEmailNotification(AppointmentModel model, PractitionerBaseViewModel ptResult)
        {
            string mailFrom = ConstantHelper.AppSettings.MailFrom;
            string userName = ConstantHelper.AppSettings.UserName;
            string password = ConstantHelper.AppSettings.Password;

            try
            {
                PatientData patientDataLayer = new PatientData();
                string      patientEmail     = patientDataLayer.GetPatientEmail(model.PatientId);
                if (!String.IsNullOrEmpty(patientEmail))
                {
                    //Sent notification email to patient
                    string patientEmailSubject = ConstantHelper.Email.AppointmentVerification.AppointmentMadeSubject;
                    string patientEmailBody    = ConstantHelper.Email.AppointmentVerification.AppointmentMadeBody;
                    //replace with appointment details
                    DateTime tempAppointmentDateTime = Convert.ToDateTime(model.AppointmentDate.ToString());
                    string   appointmentDetailsTable = "<table><caption>Appointment Details</caption><tr><th>Appointment Date</th><td>" + tempAppointmentDateTime.ToString("dd/MM/yyyy") + "</td></tr><tr><th>Appointment Time</th><td>" + tempAppointmentDateTime.ToString("hh:mm tt") + "</td></tr><tr><th>Company</th><td>" + ptResult.CompanyName + "</td></tr><tr><th>City</th><td>" + ptResult.City + "</td></tr><tr><th>Postal Code</th><td>" + ptResult.PostalCode + "</td></tr><tr><th>State</th><td>" + ptResult.State + "</td></tr><tr><th>Appointment Description</th><td>" + model.Description + "</td></tr><tr><th>Appointment Remarks</th><td>" + model.Remarks + "</td></tr></table>";
                    patientEmailBody = patientEmailBody.Replace(ConstantHelper.Email.Keyword.AppointmentDetails, appointmentDetailsTable);
                    EmailHelper.SentMail(mailFrom, patientEmail, patientEmailSubject, patientEmailBody, userName, password);
                }

                PractitionerData practitionerDataLayer = new PractitionerData();
                string           practitionerEmail     = practitionerDataLayer.GetPractitionerEmail(model.PractitionerId);
                if (!String.IsNullOrEmpty(practitionerEmail))
                {
                    //Sent notification email to practitioner
                    string practitionerEmailSubject = ConstantHelper.Email.AppointmentVerification.NewAppointmentSubject;
                    string practitionerEmailBody    = ConstantHelper.Email.AppointmentVerification.NewAppointmentBody;
                    //replace maybe link to practitionerLogin
                    string practitionerLoginPage = "<a href='" + ConstantHelper.AppSettings.RootSiteUrl + ConstantHelper.API.Practitioner.PractitionerLogin + "'>Practitioner Login Page</a>";
                    practitionerEmailBody = practitionerEmailBody.Replace(ConstantHelper.Email.Keyword.PractitionerLoginPage, practitionerLoginPage);
                    EmailHelper.SentMail(mailFrom, practitionerEmail, practitionerEmailSubject, practitionerEmailBody, userName, password);
                }
            }
            catch (Exception err)
            {
                new LogHelper().LogMessage("PatientBusiness.SentEmailNotification : " + err);
            }
        }
コード例 #25
0
        private void insertSinglePatientObservations(long id, List <Observation> observations)
        {
            registerCMs();


            var filter = Builders <PatientData> .Filter.Eq(x => x.fhirID, id);

            PatientData pd;

            //PatientData toInsert = new PatientData(id, null, observations);
            try
            {
                pd = collection.Find(filter).FirstOrDefault();
                if (pd.observations == null)
                {
                    pd.observations = observations;
                }
                else
                {
                    List <Observation> oldObservations = pd.observations;
                    List <Observation> newObservations = new List <Observation>();
                    foreach (var obs in observations)
                    {
                        if (!oldObservations.Any(x => x.Id == obs.Id))
                        {
                            newObservations.Add(obs);
                        }
                    }
                    pd.observations = oldObservations.Concat(newObservations).ToList();
                }

                collection.ReplaceOne(filter, pd);
            }
            catch (Exception e)
            {
                //no patient with that Id
                pd = new PatientData(id, null, observations);
                collection.InsertOne(pd);
            }
        }
コード例 #26
0
        public async Task <string> OnBloodSugarAddButtonPressed()
        {
            #region old code
            if (float.Parse(_level.Text) <= 1000 && float.Parse(_level.Text) > 0)
            {
                DateTime timeNow = DateTime.Now;

                PatientData patientData = new PatientData();
                Patient     patient;

                try
                {
                    patient = await _restService.ReadPatientAsync();
                }
                catch (Exception)
                {
                    return("No Connection");
                }

                PatientBloodSugar patientBlood = new PatientBloodSugar()
                {
                    UserId      = patient.UserId,
                    ReadingType = (ReadingType)Enum.Parse(typeof(ReadingType), _readingType.SelectedItem.ToString()),
                    Level       = float.Parse(_level.Text),
                    TimeOfDay   = timeNow
                };

                patientData.PatientBloodSugars.Add(patientBlood);

                await _restService.CreatePatientData(patientData);

                return("Success");
            }
            else
            {
                return("Invalid Range");
            }
            #endregion
        }
コード例 #27
0
    public void SavePatientsFromLocal(string _login, PatientData _data, string _imageKey, string _clipKey)
    {
        var data = new PatientSaveData(
            _data.PatientName,
            _data.PatientGender,
            _imageKey,
            _clipKey);

        if (_data.img != null)
        {
            SaveImage(_data.img.texture, _imageKey);
        }

        if (_data.nameClip != null)
        {
            SaveAudio(_data.nameClip, _clipKey);
        }

        var json = JsonUtility.ToJson(data);

        PlayerPrefs.SetString(_login, json);
    }
コード例 #28
0
    public void AddPatientInDataPanel(PatientData _data, string _identifier)
    {
        if (patientsDataContent == null)
        {
            return;
        }
        if (patientDataCardPref == null)
        {
            return;
        }

        var card = Instantiate(patientDataCardPref, patientsDataContent.transform);

        card.GetComponent <PatientDataCard>().Initialize(_data, _identifier);

        card.transform.SetAsFirstSibling();

        UIInstruments.GetSizeForVerticalGroup(
            patientDatasLayoutGroup,
            patientsDataContent.transform.childCount,
            card.GetComponent <RectTransform>().sizeDelta.y *card.GetComponent <RectTransform>().localScale.y);
    }
コード例 #29
0
ファイル: Level.cs プロジェクト: savik-games/SeriousGameJam
    void StartNewPatient()
    {
        //dialogLog.ClearLog();
        dialogSelect.Clear();

        currPatient = Instantiate(patients[currPatientId]);

        AudioSource callAS = AudioManager.Instance.PlayLoop(callSound, 0.15f);

        AudioManager.Instance.Play(systemMessageSound);
        dialogLog.AddToLog(DialogLogUI.LogEntryType.Servise, $"Call with <i>{currPatient.name}</i> started", onShowLog: () => {
        });

        dialogSelect.AddButton("start", () => {
            AudioManager.Instance.ChangeASVolume(callAS, 0.0f, 0.25f);
            Destroy(callAS.gameObject, 1.0f);

            dialogSelect.Clear();
            NodeLinkData narrativeData = currPatient.dialogue.NodeLinks.First();             //Entrypoint node
            ProceedToNarrative(narrativeData.TargetNodeGUID);
        });
    }
コード例 #30
0
        private static List <MeasurementSpecification> PulmonaryArterySpecs(PatientData pd)
        {
            var specs = new List <MeasurementSpecification>();
            Dictionary <string, string> props = new Dictionary <string, string>();

            specs.Add(new MeasurementSpecification("Main pulmonary artery", "Diameter", new Dictionary <string, string>(props), "cm", formula: RegressionEquationFormula.MainPulmonaryArtery(pd, "Main pulmonary artery"), includeImageMode: true, unitEnum: LengthUnit.Centimeter));
            props.Clear();

            props.Add("Finding Site", "Left pulmonary artery");
            specs.Add(new MeasurementSpecification("Left pulmonary artery", "Diameter", new Dictionary <string, string>(props), "cm", formula: RegressionEquationFormula.LeftPulmonaryArtery(pd, "Left pulmonary artery"), includeImageMode: true, unitEnum: LengthUnit.Centimeter));
            specs.Add(new MeasurementSpecification("Left pulmonary artery peak gradient", "Peak Gradient", new Dictionary <string, string>(props), "mmHg"));
            specs.Add(new MeasurementSpecification("Left pulmonary artery peak velocity", "Peak Velocity", new Dictionary <string, string>(props), "m/s", unitEnum: SpeedUnit.MeterPerSecond));
            props.Clear();

            props.Add("Finding Site", "Right pulmonary artery");
            specs.Add(new MeasurementSpecification("Right pulmonary artery", "Diameter", new Dictionary <string, string>(props), "cm", formula: RegressionEquationFormula.RightPulmonaryArtery(pd, "Right pulmonary artery"), includeImageMode: true, unitEnum: LengthUnit.Centimeter));
            specs.Add(new MeasurementSpecification("Right pulmonary artery peak gradient", "Peak Gradient", new Dictionary <string, string>(props), "mmHg"));
            specs.Add(new MeasurementSpecification("Right pulmonary artery peak velocity", "Peak Velocity", new Dictionary <string, string>(props), "m/s", unitEnum: SpeedUnit.MeterPerSecond));
            props.Clear();

            return(specs);
        }
コード例 #31
0
        //TODO consider serializing before persisting, could take less space?
        private void insertSinglePatientQRs(long id, List <QuestionnaireResponse> QRs)
        {
            registerCMs();

            var filter = Builders <PatientData> .Filter.Eq(x => x.fhirID, id);

            PatientData pd;

            try
            {
                pd = collection.Find(filter).FirstOrDefault();
                if (pd.QRs == null)
                {
                    pd.QRs = QRs;
                }
                else
                {
                    List <QuestionnaireResponse> oldQRs = pd.QRs;
                    List <QuestionnaireResponse> newQRs = new List <QuestionnaireResponse>();
                    foreach (var QR in QRs)
                    {
                        if (!oldQRs.Any(x => x.Id == QR.Id))
                        {
                            newQRs.Add(QR);
                        }
                    }
                    pd.QRs = oldQRs.Concat(newQRs).ToList();
                }

                collection.ReplaceOne(filter, pd);
            }
            catch (Exception e)
            {
                //no patient with that Id
                pd = new PatientData(id, QRs, null);
                collection.InsertOne(pd);
            }
        }
コード例 #32
0
        private static List <MeasurementSpecification> MitralValveSpecs(PatientData pd)
        {
            var specs = new List <MeasurementSpecification>();
            Dictionary <string, string> props = new Dictionary <string, string>();

            specs.Add(new MeasurementSpecification("Mitral valve annulus", "Cardiovascular Orifice Diameter", new Dictionary <string, string>(props), "cm", formula: RegressionEquationFormula.MitralValveAnnulus(pd, "Mitral valve annulus"), includeImageMode: true, unitEnum: LengthUnit.Centimeter));
            props.Clear();

            props.Add("Flow Direction", "Antegrade Flow");
            specs.Add(new MeasurementSpecification("Mitral valve E wave", "E-Wave Peak Velocity", new Dictionary <string, string>(props), "cm/s", formula: ImpactOfCardiacGrowthFormula.MitralValveEWave(pd, "Mitral valve E wave velocity"), unitEnum: SpeedUnit.CentimeterPerSecond));
            specs.Add(new MeasurementSpecification("Mitral valve A wave", "A-Wave Peak Velocity", new Dictionary <string, string>(props), "cm/s", formula: ImpactOfCardiacGrowthFormula.MitralValveAWave(pd, "Mitral valve A wave velocity"), unitEnum: SpeedUnit.CentimeterPerSecond));
            props.Clear();

            props.Add("Image Mode", "Tissue Doppler Imaging");
            specs.Add(new MeasurementSpecification("Mitral E/A ratio", "Peak E wave/Peak A wave by US", new Dictionary <string, string>(props), "", formula: ImpactOfCardiacGrowthFormula.MitralEA_Ratio(pd, "Mitral E/A ratio")));
            props.Clear();


            props.Add("Flow Direction", "Antegrade Flow");
            specs.Add(new MeasurementSpecification("MV decel time", "Deceleration Time", new Dictionary <string, string>(props), "ms", formula: EchoManualFormula.MVDecelTime(pd, "mitral valve deceleration time"), unitEnum: DurationUnit.Millisecond));
            props.Clear();


            props.Add("Flow Direction", "Antegrade Flow");
            specs.Add(new MeasurementSpecification("Mitral valve inflow mean gradient", "Mean Gradient", new Dictionary <string, string>(props), "mmHg"));
            props.Clear();

            props.Add("Flow Direction", "Regurgitant Flow");
            specs.Add(new MeasurementSpecification("Mitral valve regurgitation peak gradient", "Peak Gradient", new Dictionary <string, string>(props), "mmHg"));
            specs.Add(new MeasurementSpecification("Mitral valve regurgitation peak velocity", "Peak Velocity", new Dictionary <string, string>(props), "m/s", unitEnum: SpeedUnit.MeterPerSecond));
            props.Clear();

            specs.Add(new MeasurementSpecification("Mitral valve inflow A wave duration", "A-Wave Duration", new Dictionary <string, string>(props), "ms", unitEnum: DurationUnit.Millisecond));
            specs.Add(new MeasurementSpecification("Myocardial Performance Index", "Myocardial Performance Index (Tei)", new Dictionary <string, string>(props), ""));
            props.Clear();

            return(specs);
        }
コード例 #33
0
ファイル: ImportCHG.cs プロジェクト: jpesquibel/CHSIWeb
        private void ProcessRow(string row)
        {
            string[] rowData = row.Split('\t');

            //if a trailing space, hard return, etc. This file is copied from a webpage and saved as a file.
            if (rowData.Length < 30)
                return;

            PatientData patData = new PatientData();

            patData.HmoId = rowData[(int)CHG_ColumnMapping.HMO_ID].ToString().Trim();

            //only process this record if the enrollment date is newer than 120 days
            patData.EffectiveDate = ParseYYYYMMDD(rowData[(int)CHG_ColumnMapping.EffectiveDate].ToString());

            //set term date
            DateTime temp;
            patData.TermDate = null;
            patData.DOB = null;

            //is term date null or provided?
            if (ParseYYYYMMDD(rowData[(int)CHG_ColumnMapping.TermDate].ToString()) != DateTime.MinValue)
                patData.TermDate = ParseYYYYMMDD(rowData[(int)CHG_ColumnMapping.DOBYYYYMMDD].ToString());

            patData.NGProviderId = GetProviderId(rowData[(int)CHG_ColumnMapping.ProviderID].ToString()).ToString();

            //make sure address is there
            if (rowData[(int)CHG_ColumnMapping.Zip].ToString().Trim() != "")
            {
                patData.Address = rowData[(int)CHG_ColumnMapping.Address].ToString() + " " + rowData[(int)CHG_ColumnMapping.Address2].ToString();

                patData.City = rowData[(int)CHG_ColumnMapping.City].ToString();
                patData.State = rowData[(int)CHG_ColumnMapping.State].ToString();
                patData.Zip = int.Parse(rowData[(int)CHG_ColumnMapping.Zip].ToString().Trim());
            }

            patData.FirstName = rowData[(int)CHG_ColumnMapping.FirstName].ToString();
            patData.LastName = rowData[(int)CHG_ColumnMapping.LastName].ToString();

            patData.DOB = ParseYYYYMMDD(rowData[(int)CHG_ColumnMapping.DOBYYYYMMDD].ToString());

            //CHGContracts contract;
            //patData.ContractId = Enum.TryParse<CHGContracts>(rowData[(int)CHG_ColumnMapping.Plan].ToString(), out contract) ? (int)contract : 0;

            Enum.TryParse<CHG_BusinessLines>(rowData[(int)CHG_ColumnMapping.Plan].ToString(), out _chgBusLine);
            patData.BusinessLine = (BusinessLines)_chgBusLine;

            if ((int)patData.BusinessLine == 0)
            {
                int x = 24;
            }

            patData.Payer = _payer;

            patData.Phone = rowData[(int)CHG_ColumnMapping.Phone].ToString().Trim();

            currentMembers.Add(SavePatientRecord(patData));
        }
コード例 #34
0
        public State EnterCommand(string command)
        {
            Debug.WriteLine("EnterCommand " + this.state);
            command.Trim();
            switch(this.state){
                case State.init:
                    if (command.StartsWith("name")) {
                        string patientName = command.Remove(0, 4).Trim();
                        foreach (PatientData patient in patientList) {
                            if (patientName.Equals(patient.FirstName + " " + patient.SurName)) {
                                this.state = State.cognitied;
                                this.currentPatient = patient;
                            }
                        }
                    } else if (command.StartsWith("id")) {
                        long patientID = 0;
                        if (command.Length <= 2) {
                            return this.state;
                        }
                        try {
                            patientID = Int64.Parse(command.Remove(0, 2).Trim());
                        } catch (FormatException) {
                            this.currentPatient = null;
                            return this.state;
                        }
                        foreach (PatientData patient in patientList) {
                            if (patientID == patient.Id) {
                                this.state = State.cognitied;
                                this.currentPatient = patient;
                            }
                        }
                    }
                    break;

                case State.cognitied:
                    if (command.Equals("master")) {
                        this.state = State.master;
                    } else if (command.Equals("operation")) {
                        this.state = State.lastOperation;
                    } else if (command.Equals("visit")) {
                        this.state = State.lastVisit;
                    } else if (command.Equals("reset")) {
                        this.state = State.init;
                    }
                    break;

                case State.master:
                    if (command.Equals("repeat")) {
                        this.state = State.master;
                    } else if (command.Equals("back")) {
                        this.state = State.cognitied;
                    } else if (command.Equals("reset")) {
                        this.state = State.init;
                    } else if (command.Equals("repeat")) {
                        this.state = State.master;
                    }
                    break;

                case State.lastOperation:
                    if (command.Equals("more")) {
                        this.state = State.allOperation;
                    } else if (command.Equals("back")) {
                        this.state = State.cognitied;
                    } else if (command.Equals("reset")) {
                        this.state = State.init;
                    } else if (command.Equals("repeat")) {
                        this.state = State.lastOperation;
                    }
                    break;

                case State.lastVisit:
                    if (command.Equals("more")) {
                        this.state = State.allVisit;
                    } else if (command.Equals("back")) {
                        this.state = State.cognitied;
                    } else if (command.Equals("reset")) {
                        this.state = State.init;
                    } else if (command.Equals("repeat")) {
                        this.state = State.lastVisit;
                    }
                    break;

                case State.allOperation:
                    if (command.Equals("back")) {
                        this.state = State.cognitied;
                    } else if (command.Equals("reset")) {
                        this.state = State.init;
                    } else if (command.Equals("repeat")) {
                        this.state = State.allOperation;
                    }
                    break;

                case State.allVisit:
                    if (command.Equals("back")) {
                        this.state = State.cognitied;
                    } else if (command.Equals("reset")) {
                        this.state = State.init;
                    } else if (command.Equals("repeat")) {
                        this.state = State.allVisit;
                    }
                    break;

                default:

                    break;
            }
            return this.state;
        }
コード例 #35
0
            /// <summary>
            ///     Convert JSON Date
            /// </summary>
            /// <param name="jToken">Token</param>
            /// <returns>Patient Data Object</returns>
            /// <remarks></remarks>
            public static PatientData ConvertJsonDate(JToken jToken)
            {
                var data = new PatientData();

                if (Utilities.IsJTokenValid(jToken))
                {
                    data.PatientOnSetAge = (jToken["patientonsetage"]).ToString();
                    data.PatientOnSetAgeUnit = (jToken["patientonsetageunit"]).ToString();
                    //        patient.patientonsetageunit()
                    //string
                    //The unit of measurement for the patient.patientonsetage field.
                    //800 = Decade
                    //801 = Year
                    //802 = Month
                    //803 = Week
                    //804 = Day
                    //805 = Hour

                    var patientSex = (int) data.PatientSex;

                    int.TryParse((jToken["patientsex"]).ToString(), out patientSex);
                    data.PatientSex = (PatientSex) patientSex;

                    //data.patientsex = jToken("patientsex")
                    //        patient.patientsex()
                    //string
                    //The sex of the patient.
                    //0 = Unknown
                    //1 = Male
                    //2 = Female

                    data.PatientWeight = Utilities.GetJTokenString(jToken, "patientweight"); // KiloGrams

                    if (Utilities.IsJTokenValid(Utilities.GetJTokenString(jToken, "patientdeath")))
                    {
                        //data.PatientDeathDate = ConvertDateStringToDate(jToken("patientdeath")("patientdeathdate"), "yyyyMMdd")
                        data.PatientDeathDate = DateTime.ParseExact((jToken["patientdeath"]["patientdeathdate"]).ToString(), "yyyyMMdd", CultureInfo.InvariantCulture);
                    }

                    data.Drug = DrugData.ConvertJsonData(jToken["drug"]);
                    data.Reaction = ReactionData.ConvertJsonData(jToken["reaction"]);
                }

                return data;
            }
コード例 #36
0
			public OperationData(string operation, PatientProfile patientProfile)
			{
				Operation = operation;
				Patient = new PatientData(patientProfile);
			}
コード例 #37
0
 public static void WriteEEGStudioPatDataFile(PatientData patientData, String filePatData, String fileName)
 {
     StreamWriter writer = null;
     try
     {
         writer = new StreamWriter(filePatData, false, Encoding.GetEncoding(1251));
         writer.WriteLine(fileName);
         writer.WriteLine(patientData.FullName);
         writer.WriteLine(String.Format("{0:dd.MM.yyyy}", patientData.Birthday));
         writer.WriteLine(patientData.Gender);
         writer.WriteLine(""); //Код
         writer.WriteLine(patientData.Address);
         writer.WriteLine(patientData.Phone);
         writer.WriteLine(""); //место работы
         writer.WriteLine(patientData.Document);
         writer.WriteLine(""); //Direction
         writer.WriteLine(""); //Decease history
         writer.WriteLine(""); //Профессия
         writer.WriteLine(""); //Зарезервировано
         writer.WriteLine(""); //Наименование обследования
         writer.WriteLine(String.Format("{0:dd.MM.yyyy}", patientData.TimeStart));
         writer.WriteLine(String.Format("{0:HH:mm:ss}", patientData.TimeStart));
         writer.WriteLine(DateTime.Now.Year - patientData.Birthday.Year); //age
         writer.WriteLine(""); //Диагноз
         writer.WriteLine("");
         writer.WriteLine("");
         writer.WriteLine("");
         //patientData.WriteLine(examination.Examiner != null ? examination.Examiner.Name : String.Empty);
         writer.WriteLine("0"); //рост
         writer.WriteLine("0"); //вес
         writer.WriteLine("1"); //Coeff
         writer.WriteLine("0"); //Edist
         writer.WriteLine("0"); //SPressure
         writer.WriteLine("0"); //DPressure
         writer.WriteLine("0"); //Blood
     }
     catch { throw new Exception("PatData Error"); }
     finally
     {
         if (writer != null)
         {
             writer.Close();
             writer = null;
         }
     }
 }
コード例 #38
0
ファイル: ImportIEHP.cs プロジェクト: jpesquibel/CHSIWeb
        private void ProcessRow(string row)
        {
            string[] rowData = row.Split(',');

            //if a trailing space, hard return, etc. This file is copied from a webpage and saved as a file.
            if (rowData.Length < 15 || rowData[(int)IEHP_ColumnMapping.Phone].ToString().ToLower() == "phone")
                return;

            ///////////////////////////////////////////////////////

            PatientData patData = new PatientData();

            patData.HmoId = rowData[(int)IEHP_ColumnMapping.HMO_ID].ToString().Trim();
            patData.Gender = rowData[(int)IEHP_ColumnMapping.Gender].ToString().Trim();

            //only process this record if the enrollment date is newer than 120 days
            patData.EffectiveDate = DateTime.Parse(rowData[(int)IEHP_ColumnMapping.EffectiveDate].ToString());

            //set term date
            DateTime temp;
            patData.TermDate = null;
            patData.DOB = null;

            //is term date null or provided?
            if (DateTime.TryParse(rowData[(int)IEHP_ColumnMapping.TermDate].ToString(), out temp))
                patData.TermDate = DateTime.Parse(rowData[(int)IEHP_ColumnMapping.TermDate].ToString());

            patData.NGProviderId = GetProviderId(rowData[(int)IEHP_ColumnMapping.IEHP_ProviderId].ToString()).ToString();

            //TODO: Address has underscores. Get this file from server and compare what its doing. Remove underscores
            patData.Address = rowData[(int)IEHP_ColumnMapping.Address].ToString();

            patData.City = rowData[(int)IEHP_ColumnMapping.City].ToString().Trim();
            patData.State = rowData[(int)IEHP_ColumnMapping.State].ToString().Trim();
            patData.Zip = int.Parse(rowData[(int)IEHP_ColumnMapping.Zip].ToString().Trim());

            patData.FirstName = rowData[(int)IEHP_ColumnMapping.FirstName].ToString().Trim();
            patData.LastName = rowData[(int)IEHP_ColumnMapping.LastName].ToString().Trim();

            if (DateTime.TryParse(rowData[(int)IEHP_ColumnMapping.DOB].ToString(), out temp))
                patData.DOB = DateTime.Parse(rowData[(int)IEHP_ColumnMapping.DOB].ToString());

            //IEHPContracts contract;
            //patData.ContractId = Enum.TryParse<IEHPContracts>(rowData[(int)IEHP_ColumnMapping.Plan].ToString(), out contract) ? (int)contract : 0;

            Enum.TryParse<IEHP_BusinessLines>(rowData[(int)IEHP_ColumnMapping.Plan].ToString().Replace("-", "_"), out _iehpBusLine);
            patData.BusinessLine = (BusinessLines)_iehpBusLine;

            if ((int)patData.BusinessLine == 0)
            {
                int x = 24;
            }

            patData.Payer = _payer;

            patData.Phone = rowData[(int)IEHP_ColumnMapping.Phone].ToString().Trim();

            currentMembers.Add(SavePatientRecord(patData));
        }
コード例 #39
0
        private void ExcuteCommand(string executeFile, Guid examinationContext,
            string fileName, bool isNewExamination, string additionalParams = "", PatientData patientData = null)
        {
            if (moduleExchange == null)
                throw new Exception("Exchange module null reference error !!!");

            if (File.Exists(executeFile) == false)
                throw new Exception("EEG Synapse executable file not found !!!");

            // Запуск нового обследования
            if (isNewExamination == true)
            {
                // Создаем файл PatData.dat в папке конфига для обмена данными между базой и EEGStudio
                // Данные из PatData.dat применяются только при создании нового обследования
                PatientDataHelper.WriteEEGStudioPatDataFile(patientData, patDataFile, fileName);

                BeginProcess(examinationContext, executeFile, "-new", additionalParams);
            }
            else
            {
                String file = String.Format("\"{0}\"", fileName);
                BeginProcess(examinationContext, executeFile, file, additionalParams);
            }
        }
コード例 #40
0
			public OperationData(string operation, PatientProfile patientProfile, Order order)
			{
				Operation = operation;
				Patient = new PatientData(patientProfile);
				Order = new OrderData(order);
			}
コード例 #41
0
ファイル: FileImports.cs プロジェクト: jpesquibel/CHSIWeb
        protected int SavePatientRecord(PatientData patData)
        {
            bool isNewMember = false;

            payFileImportData fid = new payFileImportData();

            //get patient record by hmoId
            chsi.dat.payNewPatients pat = (from patients in db.payNewPatients
                                           join payerIds in db.payPatientPayers on patients.payNewPatientId equals payerIds.payNewPatientId
                                           where payerIds.HMOId == patData.HmoId
                                           select patients).FirstOrDefault();

            int patId = 0;

            if (pat == null)
            {
                _newMemberCount += 1;
                isNewMember = true;
                //if patient is not in the database, insert patient into database
                patId = chsi.dom.pay.NewPatients.AddToNewPatients(patData);
            }
            else
            {
                if (pat.Active == false)
                    _newMemberCount += 1;

                //only update address, phone, and provider from file if not in nextgen
                if (pat.Address == null)
                {
                    pat.Address = Upper(patData.Address);
                    pat.City = Upper(patData.City);
                    pat.State = Upper(patData.State);
                    pat.Zip = patData.Zip;
                }

                if (pat.Phone == null)
                    pat.Phone = patData.Phone;

                if (pat.NG_provider_id == null)
                {
                    if (patData.NGProviderId != null)
                        pat.NG_provider_id = patData.NGProviderId;
                }

                pat.EnrollmentDate = patData.EffectiveDate;
                pat.TermDate = patData.TermDate;
                pat.payPayerId = (int)_payer;

                if ((int)patData.BusinessLine != 0)
                    pat.payBusinessLineId = (int)patData.BusinessLine;

                pat.Active = true;

                db.SaveChanges();
                patId = pat.payNewPatientId;
            }

            _activeMemberCount += 1;

            UpdateFileImportData(patId, fileImport.payFileImport, isNewMember, false, patData.NGProviderId);

            return patId;
        }
コード例 #42
0
			public OperationData(string operation, PatientProfile patientProfile, Order order, IEnumerable<Procedure> procedures)
			{
				Operation = operation;
				Patient = new PatientData(patientProfile);
				Order = new OrderData(order);
				Procedures = procedures.Select(rp => new ProcedureData(rp)).ToList();
			}
コード例 #43
0
ファイル: ImportLIHP.cs プロジェクト: jpesquibel/CHSIWeb
        private void ProcessRow(DataRow row)
        {
            //if a trailing space, hard return, etc. This file is copied from a webpage and saved as a file.
            if (row.ItemArray.Length < 12 || row.ItemArray[(int)LIHP_ColumnMapping.Phone].ToString().ToLower() == "phone"
                || row.ItemArray[0].ToString().Trim() == "")
                return;

            PatientData patData = new PatientData();

            patData.HmoId = row.ItemArray[(int)LIHP_ColumnMapping.HMO_ID].ToString().Trim();

            //only process this record if the enrollment date is newer than 120 days
            patData.EffectiveDate = DateTime.Parse(row.ItemArray[(int)LIHP_ColumnMapping.EffectiveDate].ToString());

            //set term date
            DateTime temp;
            patData.TermDate = null;
            patData.DOB = null;

            //is term date null or provided?
            if (DateTime.TryParse(row.ItemArray[(int)LIHP_ColumnMapping.TermDate].ToString(), out temp))
                patData.TermDate = DateTime.Parse(row.ItemArray[(int)LIHP_ColumnMapping.TermDate].ToString());

            //TODO: provider id  hardcoded as "LIHP"
            patData.NGProviderId = GetProviderId("LIHP").ToString();

            patData.Address = Upper(row.ItemArray[(int)LIHP_ColumnMapping.Address].ToString() + " " + row.ItemArray[(int)LIHP_ColumnMapping.Address2].ToString());

            string[] cityState = row.ItemArray[(int)LIHP_ColumnMapping.CityState].ToString().Split(',');

            patData.City = cityState[0].Trim();
            patData.State = cityState[1].Trim();
            patData.Zip = int.Parse(row.ItemArray[(int)LIHP_ColumnMapping.Zip].ToString().Trim());

            string[] name = row.ItemArray[(int)LIHP_ColumnMapping.FullName].ToString().Split(',');
            patData.FirstName = name[1].Trim();
            patData.LastName = name[0].Trim();

            if (DateTime.TryParse(row.ItemArray[(int)LIHP_ColumnMapping.DOB].ToString(), out temp))
                patData.DOB = DateTime.Parse(row.ItemArray[(int)LIHP_ColumnMapping.DOB].ToString());

            LIHPContracts contract;
            //patData.ContractId = Enum.TryParse<LIHPContracts>(row.ItemArray[(int)LIHP_ColumnMapping.Plan].ToString(), out contract) ? (int)contract : 0;

            patData.Payer = Payers.LIHP;

            patData.Phone = row.ItemArray[(int)LIHP_ColumnMapping.Phone].ToString().Trim();

            currentMembers.Add(SavePatientRecord(patData));
        }
コード例 #44
0
        private void talkPatient(PatientData patient)
        {
            if (patient == null) {
                return;
            }
            StringBuilder sb = new StringBuilder();
            sb.Append("patient number: ");
            sb.Append(patient.Id);
            sb.Append(". ");

            sb.Append("firstname: ");
            sb.Append(patient.FirstName);
            sb.Append(". ");

            sb.Append("surname: ");
            sb.Append(patient.SurName);
            sb.Append(". ");

            sb.Append("birthdate: ");
            sb.Append(patient.DateOfBirth.ToLongDateString());
            sb.Append(". ");

            sb.Append("weight: ");
            sb.Append(patient.Weight);
            sb.Append(". ");

            sb.Append("sex: ");
            sb.Append(patient.Sex.ToString());
            sb.Append(". ");

            sb.Append("phone: ");
            sb.Append(patient.Phone);
            sb.Append(". ");

            sb.Append("address: ");
            sb.Append(patient.Address);
            sb.Append(". ");

            talk(sb.ToString());
        }