示例#1
0
        public static void SavePatientDocumentsStickyNotes(Patient patient, PatientDocument[] documents)
        {
            EntityModelContainer context = patient.Context;

            for (int i = 0; i < documents.Length; i++)
            {
                int id = documents[i].Id;
                DocumentStickyNote[] delNotes =
                            context.DocumentStickyNotes.Execute(MergeOption.OverwriteChanges).Where(dn => dn.PatientDocumentId == id).ToArray();
                for (int j = 0; j < delNotes.Length; j++)
                    context.DocumentStickyNotes.DeleteObject(delNotes[j]);

                context.SaveChanges();

                for (int k = 0; k < documents[i].DocumentStickyNotes.Count; k++)
                {
                    documents[i].DocumentStickyNotes[k].PatientDocumentId = documents[i].Id;
                    context.PatientDocuments.Attach(documents[i]);
                    context.DocumentStickyNotes.AddObject(documents[i].DocumentStickyNotes[k]);
                }

                context.SaveChanges();

                for (int k = 0; k < documents[i].DocumentStickyNotes.Count; k++)
                    context.DocumentStickyNotes.Detach(documents[i].DocumentStickyNotes[k]);

                if(documents[i].EntityState!=EntityState.Detached)
                    context.PatientDocuments.Detach(documents[i]);
            }
        }
示例#2
0
        public static void SavePatientDocumentsContents(Patient patient, PatientDocument[] documents)
        {
            EntityModelContainer context = patient.Context;

            for (int i = 0; i < documents.Length; i++)
            {
                int documentId = documents[i].DocumentId;
                documents[i].Document = new Document();

                if (documents[i].Id != 0)
                {
                    documents[i].Document.Id = documentId;
                    documents[i].DocumentId = documentId;
                    context.Documents.Attach(documents[i].Document);
                    context.PatientDocuments.Attach(documents[i]);
                }
                else
                {
                    documents[i].FileName = documents[i].FileInfo.Name;
                    documents[i].PatientId = patient.Id;
                    context.PatientDocuments.AddObject(documents[i]);
                }

                documents[i].Document.Content = SerializeFile(documents[i].FileInfo);
                documents[i].LastModifiedDate = documents[i].FileInfo.LastWriteTime;
            }

            context.SaveChanges();

            for (int i = 0; i < documents.Length; i++)
            {
                context.Documents.Detach(documents[i].Document);
                context.PatientDocuments.Detach(documents[i]);
            }
        }
示例#3
0
        public static void SavePatientDocumentsDescription(Patient patient, PatientDocument[] documents)
        {
            EntityModelContainer context = patient.Context;

            for (int i = 0; i < documents.Length; i++)
            {
                context.PatientDocuments.Attach(documents[i]);
                context.ObjectStateManager.ChangeObjectState(documents[i], EntityState.Modified);
                context.SaveChanges();
            }

            for (int i = 0; i < documents.Length; i++)
                context.PatientDocuments.Detach(documents[i]);
        }
示例#4
0
        /// <summary>
        /// Loads patient`s Document to file System.
        /// </summary>
        private void LoadFromDatabase()
        {
            CheckError();

            try
            {
                PatientDocument[] lstDbDocuments = DataLayer.GetPatientFileDetails(_patient);
                _list.Clear();
                _list.AddRange(lstDbDocuments);

                FileInfo[] lstSystemDocuments = GetPatientSystemDocuments();

                PatientDocument[] documents = GetDif(lstDbDocuments, lstSystemDocuments);

                DataLayer.LoadPatientDocuments(_patient, _patientDirectory, documents);

                FileInfo[] patientFiles = GetPatientSystemDocuments();

                for (int i = 0; i < patientFiles.Length; i++)
                {
                    PatientDocument pd = _list.SingleOrDefault(d => d.FileName == patientFiles[i].Name);

                    if (pd == null)
                    {
                        PatientDocument newPd = new PatientDocument { FileInfo = patientFiles[i] };
                        _list.Add(newPd);
                    }
                    else
                        pd.FileInfo = patientFiles[i];
                }
            }
            catch (Exception exp)
            {
                Logger.Logger.Log(exp, "LoadFromDatabase");
                throw;
            }
        }
示例#5
0
        public static void LoadPatientDocuments(Patient patient, DirectoryInfo patientDirectory, PatientDocument[] documents)
        {
            EntityModelContainer context = patient.Context;

            for (int i = 0; i < documents.Length; i++)
            {
                try
                {
                    string path = Path.Combine(patientDirectory.FullName, documents[i].FileName);
                    int documentId = documents[i].DocumentId;
                    Deserialize(path, context.Documents.First(d => d.Id == documentId));
                    File.SetLastWriteTime(path, documents[i].LastModifiedDate);
                }
                catch
                {

                }
            }
        }
示例#6
0
        private PatientDocument[] GetDif(PatientDocument[] lstDbDocuments)
        {
            List<PatientDocument> lst = new List<PatientDocument>();

            for (int i = 0; i < _list.Count; i++)
            {
                _list[i].FileInfo.Refresh();
                PatientDocument temp = lstDbDocuments.SingleOrDefault(d => d.FileName == _list[i].FileInfo.Name);

                if (temp == null ||
                    _list[i].FileInfo.LastWriteTime > temp.LastModifiedDate)
                    lst.Add(_list[i]);
            }

            return lst.ToArray();
        }
示例#7
0
        private PatientDocument[] GetDif(PatientDocument[] lstDbDocuments, FileInfo[] lstSystemDocuments)
        {
            return (from t in lstDbDocuments let temp = lstSystemDocuments.SingleOrDefault(d => d.Name == t.FileName)
                    where temp == null || t.LastModifiedDate > temp.LastWriteTime
                    select t)
                    .ToArray();

            /*
            List<PatientDocument> lst = new List<PatientDocument>();

            for (int i = 0; i < lstDbDocuments.Length; i++)
            {
                FileInfo temp = lstSystemDocuments.SingleOrDefault(d => d.Name == lstDbDocuments[i].FileName);

                if (temp == null || lstDbDocuments[i].LastModifiedDate > temp.LastWriteTime)
                    lst.Add(lstDbDocuments[i]);
            }

            return lst.ToArray();
             */
        }
示例#8
0
 private void AddToDocumentList(FileInfo file)
 {
     if (_list.All(d => d.FileName != file.Name) || _list.Count==0)
     {
         PatientDocument pd = new PatientDocument {FileInfo = file};
         _list.Add(pd);
     }
 }
示例#9
0
 public DocumentPictureBox(PatientDocument pd)
     : base()
 {
     pictureDoc = pd;
 }
示例#10
0
 /// <summary>
 /// Deprecated Method for adding a new object to the PatientDocuments EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToPatientDocuments(PatientDocument patientDocument)
 {
     base.AddObject("PatientDocuments", patientDocument);
 }
示例#11
0
 /// <summary>
 /// Create a new PatientDocument object.
 /// </summary>
 /// <param name="id">Initial value of the Id property.</param>
 /// <param name="patientId">Initial value of the PatientId property.</param>
 /// <param name="documentId">Initial value of the DocumentId property.</param>
 /// <param name="lastModifiedDate">Initial value of the LastModifiedDate property.</param>
 /// <param name="fileName">Initial value of the FileName property.</param>
 public static PatientDocument CreatePatientDocument(global::System.Int32 id, global::System.Int32 patientId, global::System.Int32 documentId, global::System.DateTime lastModifiedDate, global::System.String fileName)
 {
     PatientDocument patientDocument = new PatientDocument();
     patientDocument.Id = id;
     patientDocument.PatientId = patientId;
     patientDocument.DocumentId = documentId;
     patientDocument.LastModifiedDate = lastModifiedDate;
     patientDocument.FileName = fileName;
     return patientDocument;
 }
示例#12
0
        private void setSmallImages(PatientDocument pd)
        {
            DocumentPictureBox pb = new DocumentPictureBox(pd);

            Image smallImages;
            if (imgExtention.Contains(pd.FileInfo.Extension.Trim('.').ToLower()))
            {
                smallImages = Image.FromFile(pd.FileInfo.FullName);
                pb.IsImage = true;
            }
            else
            {
                pb.IsImage = false;
                smallImages = Icon.ExtractAssociatedIcon(pd.FileInfo.FullName).ToBitmap();
            }
            int ParentWidth = (!panelImages.VerticalScroll.Enabled) ? panelImages.Width-20 : panelImages.Width;
            pb.Width = ParentWidth;
            pb.Height = 50;
            pb.Location = new Point(0, panelImages.Controls[panelImages.Controls.Count - 1].Location.Y + panelImages.Controls[panelImages.Controls.Count - 1].Height+15);
            pb.InitialImage = smallImages;
            pb.Image = smallImages.GetThumbnailImage(50, 50, null, IntPtr.Zero);
            pb.SizeMode = PictureBoxSizeMode.CenterImage;
            pb.MouseClick += new MouseEventHandler(thumbnail_Click);
            pb.DoubleClick += new EventHandler(pb_DoubleClick);
            pb.BorderStyle = BorderStyle.FixedSingle;

            panelImages.Controls.Add(pb);
            panelImages.Controls.Add(new Label() { TextAlign = ContentAlignment.MiddleCenter, Text = pd.FileInfo.Name, ForeColor = Color.Black, Width = ParentWidth, Height = 20/*,BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle*/, Location = new Point(0, panelImages.Controls[panelImages.Controls.Count - 1].Location.Y + panelImages.Controls[panelImages.Controls.Count - 1].Height) });
        }