コード例 #1
0
ファイル: Ls.cs プロジェクト: rjshaver/core
        async Task <List <VirtualNode> > resolveParameters()
        {
            List <VirtualNode> nodes = new List <VirtualNode> ();

            // if there are command line parameters, resolve them
            if (parameters.Count > 0)
            {
                foreach (string p in parameters)
                {
                    try {
                        Path        resolvedPath = FileSystemSubsystems.ResolveRelativePath(env) (p);
                        VirtualNode node         = FileSystemSubsystems.Node(resolvedPath);
                        nodes.Add(node);
                    } catch (VirtualIOException ex) {
                        Log.Error(ex);
                        await Output.WriteLineAsync(ex.Message);
                    }
                }
            }
            // otherwise, use the current working directory
            else
            {
                nodes.Add(env.WorkingDirectory);
            }

            return(nodes);
        }
コード例 #2
0
ファイル: ChatClient.cs プロジェクト: whuacn/MedQCSys
        /// <summary>
        /// 增加一个正在聊天用户节点
        /// </summary>
        /// <param name="userInfo"></param>
        /// <param name="iOnLine">1,在线,0,离线</param>
        private VirtualNode AddChatingTreeNode(UserInfo userInfo, int iOnLine)
        {
            if (userInfo.USER_ID == CurrentUser.USER_ID)
            {
                return(null);
            }
            if (!htChating.ContainsKey(userInfo.USER_ID))
            {
                htChating.Add(userInfo.USER_ID, userInfo);
            }
            else
            {
                return(null);
            }

            //在线用户树中添加该用户
            vTreeChating.SuspendLayout();
            VirtualNode userNode = new VirtualNode();

            userNode.Text        = string.Format("{0}", userInfo.USER_NAME);
            userNode.ToolTipText = string.Format("{0}-{1}", userInfo.DEPT_NAME, userInfo.USER_NAME);
            userNode.Tag         = userInfo;
            userNode.ForeColor   = iOnLine == 1 ? Color.Blue : Color.Gray;
            userNode.ImageIndex  = iOnLine;
            userNode.SubItems.Add(new VirtualSubItem()
            {
                ForeColor = Color.Red
            });                                                                   //未读消息列
            vTreeChating.Nodes.Add(userNode);
            vTreeChating.PerformLayout();
            return(userNode);
        }
コード例 #3
0
        ///<summary>
        /// 记录质控者阅读病历日志信息
        /// </summary>
        /// <param name="lstDocInfo">病历文档信息列表</param>
        /// <param name="dtCheckTime">检查时间</param>
        /// <param name="node">当前节点</param>
        private void SaveReadLogInfo(MedDocInfo docInfo, DateTime dtCheckTime, VirtualNode node)
        {
            if (string.IsNullOrEmpty(docInfo.DOC_SETID))
            {
                return;
            }

            EMRDBLib.MedicalQcLog qcActionLog = new EMRDBLib.MedicalQcLog();
            qcActionLog.PATIENT_ID    = SystemParam.Instance.PatVisitInfo.PATIENT_ID;
            qcActionLog.VISIT_ID      = SystemParam.Instance.PatVisitInfo.VISIT_ID;
            qcActionLog.DEPT_STAYED   = SystemParam.Instance.PatVisitInfo.DEPT_CODE;
            qcActionLog.DOC_SETID     = docInfo.DOC_SETID;
            qcActionLog.CHECKED_BY    = SystemParam.Instance.UserInfo.USER_NAME;
            qcActionLog.CHECKED_ID    = SystemParam.Instance.UserInfo.USER_ID;
            qcActionLog.DEPT_CODE     = SystemParam.Instance.UserInfo.DEPT_CODE;
            qcActionLog.DEPT_NAME     = SystemParam.Instance.UserInfo.DEPT_NAME;
            qcActionLog.CHECK_TYPE    = 0;
            qcActionLog.CHECK_DATE    = dtCheckTime;
            qcActionLog.LOG_TYPE      = 1;
            qcActionLog.LOG_DESC      = "质控者阅读病历";
            qcActionLog.AddQCQuestion = false;
            short shRet = MedicalQcLogAccess.Instance.Insert(qcActionLog);

            if (shRet != SystemData.ReturnValue.OK)
            {
                return;
            }

            node.SubItems[5].Text      = "是";
            node.SubItems[6].Text      = dtCheckTime.ToString("yyyy-MM-dd HH:mm:ss");
            node.SubItems[6].ForeColor = Color.Blue;
        }
コード例 #4
0
    }//Start

    protected void generateNodes()
    {
        int height = Mathf.CeilToInt(WorldBounds.height / Distance);
        int width  = Mathf.CeilToInt(WorldBounds.width / Distance);

        Grid = new VirtualNode[height, width];
        for (int h = 0; h < height; h++)
        {
            int     startIndex = h % 2;
            Vector3 worldPos   = Vector3.zero;
            worldPos.y = WorldBounds.yMax - (h * Distance);

            for (int w = startIndex; w < width; w++)
            {
                if (w % 2 == startIndex)
                {
                    continue;
                }

                worldPos.x = WorldBounds.xMin + (w * Distance);
                VirtualNode node = new VirtualNode(true, worldPos, w, h);
                Grid[h, w] = node;
            } //for w
        }     //for h
        this.gridHeight = height;
        this.gridWidth  = width;

        this.generateNeighbours();
    }//generateNodes
コード例 #5
0
    }//generateNodes

    protected void generateNeighbours()
    {
        for (int h = 0; h < this.gridHeight; h++)
        {
            for (int w = 0; w < this.gridWidth; w++)
            {
                VirtualNode node = Grid[h, w];
                if (node == null)
                {
                    continue;
                }

                for (int i = 0; i < this.neighbours.Count; i++)
                {
                    int nX = node.GetCoords()[0] + this.neighbours[i][0];
                    int nY = node.GetCoords()[1] + this.neighbours[i][1];

                    bool isInsideY = nY >= 0 && nY < this.gridHeight;
                    bool isInsideX = nX >= 0 && nX < this.gridWidth;
                    if (isInsideY && isInsideX)
                    {
                        node.AddNeighbour(Grid[nY, nX]);
                    }
                } //for i
            }     //for
        }         //for h
    }             //generateNeighbours
コード例 #6
0
ファイル: Ls.cs プロジェクト: rjshaver/core
        async Task printNodeLongFormat(VirtualNode node)
        {
            // drwxrwxr-x  5 tobias tobias 4,0K Mai 21 20:39

            string type, permissions, user, group, size, date, time, name;

            permissions = node.PermissionsString;
            name        = node.Path.FileName;
            user        = node.OwnerName;
            group       = node.OwnerName;

            VirtualFile file = node as VirtualFile;

            if (file != null)
            {
            }

            VirtualDirectory directory = node as VirtualDirectory;

            if (directory != null)
            {
            }

            await Output.WriteLineAsync($"{permissions} {user} {group} {size} {date} {time} {name}");
        }
コード例 #7
0
        IEnumerable <VirtualNode> createListing()
        {
            //Log.Debug ("Directory listing: ", directory);
            //Log.Indent++;

            var directories = SafeDirectoryEnumerator.EnumerateDirectories(directory.Path.RealPath, "*", SearchOption.TopDirectoryOnly);

            foreach (string realPath in directories)
            {
                //Log.Debug ("realPath: ", realPath);
                VirtualNode node = directory.GetChildDirectory(PathHelper.GetFileName(realPath));
                if (node != null)
                {
                    yield return(node);
                }
            }
            var files = SafeDirectoryEnumerator.EnumerateFiles(directory.Path.RealPath, "*", SearchOption.TopDirectoryOnly);

            foreach (string realPath in files)
            {
                //Log.Debug ("realPath: ", realPath);
                VirtualNode node = directory.GetChildFile(PathHelper.GetFileName(realPath));
                if (node != null)
                {
                    yield return(node);
                }
            }

            //Log.Indent--;
        }
コード例 #8
0
 static void TestFileWriteRead(VirtualNode file, Random r, int index, int length)
 {
     byte[] towrite = CreateTestBytes(r, length);
     file.Write(index, towrite);
     byte[] toread = file.Read(index, length);
     if (!Compare(towrite, toread))
     {
         throw new Exception("File read/write at " + index + " for " + length + " bytes, failed for file " + file.Name);
     }
 }
コード例 #9
0
 // set neighbours
 public void setNodes(VirtualNode a, VirtualNode b)
 {
     if (neighbors.Contains(b) == false)
     {
         neighbors.Add(b);
         neighborCount++;
         if (b.GetComponent <VirtualNode>().neighbors.Contains(b) == false)
         {
             b.GetComponent <VirtualNode>().neighbors.Add(a);
             b.GetComponent <VirtualNode>().neighborCount++;
         }
     }
 }
コード例 #10
0
        private void virtualTree1_NodeMouseClick(object sender, VirtualTreeEventArgs e)
        {
            this.m_SelectedNode = e.Node;
            EMRDBLib.PatVisitInfo patVisitLog = e.Node.Tag as EMRDBLib.PatVisitInfo;
            if (patVisitLog == null)
            {
                return;
            }

            if (SystemParam.Instance.PatVisitInfo != patVisitLog)
            {
                SystemParam.Instance.PatVisitInfo = patVisitLog;
                this.MainForm.OnPatientInfoChanged(EventArgs.Empty);
            }
        }
コード例 #11
0
 static void RecursivelyPrintNodes(VirtualNode node, string indent = "")
 {
     Console.Write(indent + node.Name);
     if (node.IsFile)
     {
         Console.WriteLine(" <file, len=" + node.FileLength.ToString() + ">");
     }
     else if (node.IsDirectory)
     {
         Console.WriteLine(" <directory>");
         foreach (VirtualNode child in node.GetChildren())
         {
             RecursivelyPrintNodes(child, indent + "  ");
         }
     }
 }
コード例 #12
0
        private void virtualTree1_NodeMouseClick(object sender, VirtualTreeEventArgs e)
        {
            this.m_SelectedNode = e.Node;
            //显示质检问题
            if (this.MainForm == null || this.MainForm.IsDisposed)
            {
                return;
            }
            if (e.Node == null || e.Type == HitTestType.None)
            {
                return;
            }
            MedDocInfo docInfo = e.Node.Data as MedDocInfo;

            this.MainForm.ShowQuestionListByDocInfo(docInfo);
        }
コード例 #13
0
        /// <summary>
        /// 获取选中节点的病历文档的标题和文档集ID
        /// </summary>
        /// <param name="selectedNode">当前节点</param>
        /// <param name="szDocSetID">文档集ID</param>
        /// <param name="szDocTitle">文档标题</param>
        private void GetSelectedNodeInfo(VirtualNode selectedNode, ref MedDocInfo meddocInfo)
        {
            MedDocInfo docInfo = selectedNode.Data as MedDocInfo;

            if (SystemParam.Instance.PatVisitInfo == null)
            {
                return;
            }

            if (docInfo != null)
            {
                meddocInfo.DOC_TITLE = docInfo.DOC_TITLE;
                if (docInfo.EMR_TYPE != "BAODIAN" && docInfo.EMR_TYPE != "CHENPAD" &&
                    docInfo.EMR_TYPE != "HEREN")
                {
                    meddocInfo.DOC_SETID = string.Empty;
                }
                else
                {
                    meddocInfo.DOC_SETID = docInfo.DOC_SETID;
                }
                meddocInfo.CREATOR_NAME = docInfo.CREATOR_NAME;
                meddocInfo.CREATOR_ID   = docInfo.CREATOR_ID;
                meddocInfo.DEPT_CODE    = docInfo.DEPT_CODE;
                meddocInfo.DEPT_NAME    = docInfo.DEPT_NAME;
            }
            else if (selectedNode.Data.Equals(COMBIN_NODE_TAG))
            {
                meddocInfo.DOC_TITLE = string.Concat(SystemParam.Instance.PatVisitInfo.PATIENT_NAME, "的病历");
            }
            else if (selectedNode.Data.Equals(DOCTOR_NODE_TAG))
            {
                meddocInfo.DOC_TITLE = "医生写的病历";
            }
            else if (selectedNode.Data.Equals(NURSE_NODE_TAG))
            {
                meddocInfo.DOC_TITLE = "护士写的病历";
            }
            else if (selectedNode.Data.Equals(UNKNOWN_NODE_TAG))
            {
                meddocInfo.DOC_TITLE = "未被归类的病历";
            }
            else
            {
                meddocInfo.DOC_TITLE = string.Concat(SystemParam.Instance.PatVisitInfo.PATIENT_NAME, "的以往旧病历");
            }
        }
コード例 #14
0
 public void SelectDocNodeByDocSetID(VirtualNode node, string szDocSetId)
 {
     if (string.IsNullOrEmpty(szDocSetId))
     {
         return;
     }
     if (node == null)
     {
         foreach (VirtualNode item in this.virtualTree1.Nodes)
         {
             if (item == null)
             {
                 continue;
             }
             SelectDocNodeByDocSetID(item, szDocSetId);
         }
     }
     else
     {
         if (node.Nodes.Count > 0)
         {
             foreach (VirtualNode item in node.Nodes)
             {
                 if (item == null)
                 {
                     continue;
                 }
                 SelectDocNodeByDocSetID(item, szDocSetId);
             }
         }
         else
         {
             MedDocInfo docInfo = node.Data as MedDocInfo;
             if (docInfo == null)
             {
                 return;
             }
             if (docInfo.DOC_SETID == szDocSetId)
             {
                 this.virtualTree1.SelectedNode = node;
                 this.m_SelectedNode            = node;
                 return;
             }
         }
     }
 }
コード例 #15
0
        /// <summary>
        /// 刷新患者当次就诊产生的病程记录
        /// </summary>
        public override void OnRefreshView()
        {
            base.OnRefreshView();
            this.Update();
            GlobalMethods.UI.SetCursor(this, Cursors.WaitCursor);
            this.ShowStatusMessage("正在刷新病程记录,请稍候...");
            if (this.m_htQCActionLog == null)
            {
                this.m_htQCActionLog = new Hashtable();
            }
            else
            {
                this.m_htQCActionLog.Clear();
            }
            this.GetQCMsgInfo();
            this.GetQCActionLogInfo();
            this.virtualTree1.Nodes.Clear();
            string szDocSetID = string.Empty;

            if (this.m_SelectedNode != null)
            {
                MedDocInfo docInfo = this.m_SelectedNode.Data as MedDocInfo;
                if (docInfo != null)
                {
                    szDocSetID = docInfo.DOC_SETID;
                }
            }
            this.m_SelectedNode = null;
            //新版和仁编辑器加载方式和老版本有差别
            if (SystemParam.Instance.LocalConfigOption.DefaultEditor == "2")
            {
                this.LoadHerenMedDocList();
            }
            else
            {
                this.LoadMedDocList();
            }
            //使用新版本控件加载病历类型
            //this.LoadPastDocList();
            //添加一次质检问题后,会刷新病历节点,导致m_SelectedNode为空,此处重新选上
            SelectDocNodeByDocSetID(null, szDocSetID);
            this.ShowStatusMessage(null);
            GlobalMethods.UI.SetCursor(this, Cursors.Default);
        }
コード例 #16
0
        /// <summary>
        /// 获取选中节点的病历文档的标题和文档集ID
        /// </summary>
        /// <param name="selectedNode">当前节点</param>
        /// <param name="szDocSetID">文档集ID</param>
        /// <param name="szDocTitle">文档标题</param>
        /// <param name="byteDocData">文档数据</param>
        private void GetSelectedNodeInfo(VirtualNode selectedNode, ref string szDocTitle, ref string szDocSetID
                                         , ref string szCreatorName, ref string szDeptCode, ref byte[] byteDocData)
        {
            MedDocInfo docInfo = selectedNode.Data as MedDocInfo;

            if (docInfo != null)
            {
                szDocTitle = docInfo.DOC_TITLE;

                if (docInfo.EMR_TYPE != "BAODIAN" && docInfo.EMR_TYPE != "CHENPAD" && docInfo.EMR_TYPE != "HEREN")
                {
                    szDocSetID = string.Empty;
                }
                else
                {
                    szDocSetID = docInfo.DOC_SETID;
                }
                szCreatorName = docInfo.CREATOR_NAME;
                szDeptCode    = docInfo.DEPT_CODE;
                EmrDocAccess.Instance.GetDocByID(docInfo.DOC_ID, ref byteDocData);
            }
            else if (selectedNode.Data.Equals(COMBIN_NODE_TAG))
            {
                szDocTitle = string.Concat(SystemParam.Instance.PatVisitInfo.PATIENT_NAME, "的病历");
            }
            else if (selectedNode.Data.Equals(DOCTOR_NODE_TAG))
            {
                szDocTitle = "医生写的病历";
            }
            else if (selectedNode.Data.Equals(NURSE_NODE_TAG))
            {
                szDocTitle = "护士写的病历";
            }
            else if (selectedNode.Data.Equals(UNKNOWN_NODE_TAG))
            {
                szDocTitle = "未被归类的病历";
            }
            else
            {
                szDocTitle = string.Concat(SystemParam.Instance.PatVisitInfo.PATIENT_NAME, "的以往旧病历");
            }
        }
コード例 #17
0
        /// <summary>
        /// 打开医生或护士创建的所有病历
        /// <param name="parentNode">双击的节点</param>
        /// </summary>
        private void OpenAllDocList(VirtualNode parentNode)
        {
            if (parentNode == null || parentNode.Nodes.Count <= 0)
            {
                return;
            }

            MedDocList lstDocInfos = new MedDocList();
            DateTime   dtCheckTime = SysTimeHelper.Instance.Now;

            for (int index = 0; index < parentNode.Nodes.Count; index++)
            {
                if (!parentNode.Nodes[index].Data.Equals(COMBIN_NODE_TAG))
                {
                    continue;
                }

                if (index > 0)
                {
                    dtCheckTime = dtCheckTime.AddSeconds(1);
                }
                for (int ii = 0; ii < parentNode.Nodes[index].Nodes.Count; ii++)
                {
                    VirtualNode childNode = parentNode.Nodes[index].Nodes[ii];
                    MedDocInfo  docInfo   = childNode.Data as MedDocInfo;
                    if (docInfo == null)
                    {
                        continue;
                    }

                    if (ii > 0)
                    {
                        dtCheckTime = dtCheckTime.AddSeconds(1);
                    }
                    this.SaveReadLogInfo(docInfo, dtCheckTime, childNode);
                    lstDocInfos.Add(docInfo);
                }
            }
            this.Update();
            this.MainForm.OpenDocument(lstDocInfos);
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: Snerdette/CST-352-LABS
        static void TestVirtualFileSystem()
        {
            try
            {
                Random r = new Random();

                VolatileDisk disk = new VolatileDisk(1);
                //PersistentDisk disk = new PersistentDisk(1, "disk1");
                disk.TurnOn();

                VirtualFS vfs = new VirtualFS();

                vfs.Format(disk);
                vfs.Mount(disk, "/");
                VirtualNode root = vfs.RootNode;

                VirtualNode dir1 = root.CreateDirectoryNode("dir1");
                dir1.CreateDirectoryNode("foo");
                dir1.CreateDirectoryNode("bar");
                VirtualNode dir2 = root.CreateDirectoryNode("dir2");
                dir2.CreateDirectoryNode("hah!");

                VirtualNode file1 = dir1.CreateFileNode("file1");
                TestFileWriteRead(file1, r, 0, 100);    // 1 sector
                TestFileWriteRead(file1, r, 0, 500);    // 2 sectors
                TestFileWriteRead(file1, r, 250, 500);  // 3 sectors
                dir2.CreateFileNode("another");

                vfs.Unmount("/");

                vfs.Mount(disk, "/");
                RecursivelyPrintNodes(vfs.RootNode);

                disk.TurnOff();
            }
            catch (Exception ex)
            {
                Console.WriteLine("VFS test failed: " + ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }
コード例 #19
0
ファイル: ChatClient.cs プロジェクト: whuacn/MedQCSys
        /// <summary>
        /// 窗体激活时显示将正在聊天的新内容展示到显示框中
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ChatClient_Activated(object sender, EventArgs e)
        {
            if (ToUserInfo == null)
            {
                return;
            }
            if (vTreeChating.SelectedNode == null)
            {
                return;
            }
            //获取节点用户发送过来的未读消息
            List <MessageInfo> lstInfo = new List <MessageInfo>();

            lstInfo = ListMessageInfo.FindAll(i => i.MessageFrom.USER_ID == ToUserInfo.USER_ID);
            if (lstInfo == null || lstInfo.Count == 0)
            {
                return;
            }
            foreach (MessageInfo item in lstInfo)
            {
                if (item.MessageAction == (int)ActionType.SendMessage)
                {
                    ShowMessageText(item);
                }
                else if (item.MessageAction == (int)ActionType.SendPIc)
                {
                    ShowMessagePic(item, null);
                }
                //从缓存list中移除
                ListMessageInfo.Remove(item);
                //设置消息已读
                UpdateChatLog(item);
            }
            //更新当前聊天对象信息
            vTreeChating.SuspendLayout();
            VirtualNode node = vTreeChating.SelectedNode;

            node.SubItems[0].Text = "";
            vTreeChating.PerformLayout();
        }
コード例 #20
0
ファイル: ChatClient.cs プロジェクト: whuacn/MedQCSys
        /// <summary>
        /// 绑定所有用户
        /// </summary>
        private void BindAllUserInfo()
        {
            if (SystemCache.LstUserInfo == null || SystemCache.LstUserInfo.Count == 0)
            {
                return;
            }
            TreeNode rootNode = new TreeNode();

            rootNode.Text = "所有用户";
            SystemCache.LstUserInfo.Sort(delegate(UserInfo a, UserInfo b) { return(string.Compare(a.DEPT_NAME, b.DEPT_NAME, StringComparison.CurrentCulture)); });

            //加载所有户用
            vTreeAlluser.SuspendLayout();

            VirtualNode dept = new VirtualNode();

            dept.Text      = SystemCache.LstUserInfo[0].DEPT_NAME;
            dept.ForeColor = Color.Blue;
            foreach (UserInfo userInfo in SystemCache.LstUserInfo)
            {
                if (string.IsNullOrEmpty(userInfo.USER_NAME) || string.IsNullOrEmpty(userInfo.DEPT_NAME))
                {
                    continue;
                }
                if (dept.Text != userInfo.DEPT_NAME)
                {
                    vTreeAlluser.Nodes.Add(dept);
                    dept           = new VirtualNode();
                    dept.ForeColor = Color.Blue;
                    dept.Text      = userInfo.DEPT_NAME;
                }
                VirtualNode userNode = new VirtualNode(userInfo.USER_NAME);
                userNode.ForeColor  = Color.Gray;
                userNode.ImageIndex = 0;
                userNode.Tag        = userInfo;
                dept.Nodes.Add(userNode);
            }
            vTreeAlluser.PerformLayout();
            vTreeAlluser.BringToFront();
        }
コード例 #21
0
ファイル: ChatClient.cs プロジェクト: whuacn/MedQCSys
        /// <summary>
        /// 更新一个正在聊天用户节点在线,离线状态
        /// </summary>
        /// <param name="userInfo"></param>
        /// <param name="iOnLine">1,在线,0,离线</param>
        private void UpdateChatingTreeInOff(UserInfo user, int iOnLine)
        {
            VirtualNode userNode = null;
            UserInfo    itemInfo = null;

            foreach (VirtualNode item in vTreeChating.Nodes)
            {
                itemInfo = item.Tag as UserInfo;
                if (itemInfo != null && itemInfo.USER_ID == user.USER_ID)
                {
                    userNode = item;
                    break;
                }
            }
            if (userNode != null)
            {
                vTreeChating.SuspendLayout();
                userNode.ForeColor  = iOnLine == 1 ? Color.Blue : Color.Gray;
                userNode.ImageIndex = iOnLine;
                vTreeChating.PerformLayout();
            }
        }
コード例 #22
0
        private void mnuAddFeedInfo_Click(object sender, EventArgs e)
        {
            if (this.MainForm == null || this.MainForm.IsDisposed)
            {
                return;
            }

            VirtualNode selectedNode = this.virtualTree1.SelectedNode;

            if (selectedNode == null)
            {
                MessageBoxEx.Show("没有选中病历文书中任何一份病历,无法添加质检问题!", MessageBoxIcon.Warning);
                return;
            }

            string     szDocTitle   = string.Empty;
            string     szDocSetID   = string.Empty;
            string     szDocCreator = string.Empty;
            string     szDeptCode   = string.Empty;
            MedDocInfo docInfo      = selectedNode.Data as MedDocInfo;

            if (docInfo == null && !SystemParam.Instance.LocalConfigOption.AllowAddQuestionToParDocType)
            {
                MessageBoxEx.Show("没有选中病历文书中任何一份病历,无法添加质检问题!", MessageBoxIcon.Warning);
                return;
            }
            else if (SystemParam.Instance.LocalConfigOption.AllowAddQuestionToParDocType)
            {
                docInfo              = new MedDocInfo();
                docInfo.DOC_TITLE    = selectedNode.ToString();
                docInfo.DOC_SETID    = string.Empty;
                docInfo.CREATOR_NAME = SystemParam.Instance.PatVisitInfo.INCHARGE_DOCTOR;
                docInfo.CREATOR_ID   = SystemParam.Instance.PatVisitInfo.INCHARGE_DOCTOR_ID;
                docInfo.DEPT_CODE    = SystemParam.Instance.PatVisitInfo.DEPT_CODE;
                docInfo.DEPT_NAME    = SystemParam.Instance.PatVisitInfo.DEPT_NAME;
            }
            this.MainForm.AddMedicalQcMsg(docInfo);
        }
コード例 #23
0
ファイル: Ls.cs プロジェクト: rjshaver/core
        async Task printNode(VirtualNode node, AsyncAction <VirtualNode> printAction)
        {
            VirtualFile file = node as VirtualFile;

            if (file != null)
            {
                await printAction(file);
            }

            VirtualDirectory directory = node as VirtualDirectory;

            if (directory != null)
            {
                var list = directory.OpenList();
                foreach (VirtualDirectory subDirectory in list.ListDirectories())
                {
                    await printAction(subDirectory);
                }
                foreach (VirtualFile subFile in list.ListFiles())
                {
                    await printAction(subFile);
                }
            }
        }
コード例 #24
0
        private void mnuAddFeedInfo_Click(object sender, EventArgs e)
        {
            if (this.MainForm == null || this.MainForm.IsDisposed)
            {
                return;
            }

            VirtualNode selectedNode = this.virtualTree1.SelectedNode;

            if (selectedNode == null)
            {
                return;
            }
            EMRDBLib.PatVisitInfo patVisitLog = selectedNode.Tag as EMRDBLib.PatVisitInfo;
            if (patVisitLog == null)
            {
                return;
            }
            SystemParam.Instance.PatVisitInfo = patVisitLog;
            MedDocInfo docInfo = new MedDocInfo();

            this.GetSelectedNodeInfo(selectedNode, ref docInfo);
            this.MainForm.AddMedicalQcMsg(docInfo);
        }
コード例 #25
0
ファイル: ChatClient.cs プロジェクト: whuacn/MedQCSys
        /// <summary>
        /// 更新消息对应的用户节点显示信息
        /// </summary>
        /// <param name="info"></param>
        private void UpdateChatingTreeMessage(MessageInfo info)
        {
            if (info == null)
            {
                return;
            }
            //找到消息对应节点
            VirtualNode userNode = null;
            UserInfo    userInfo = null;

            foreach (VirtualNode item in vTreeChating.Nodes)
            {
                userInfo = item.Tag as UserInfo;
                if (userInfo != null && userInfo.USER_ID == info.MessageFrom.USER_ID)
                {
                    userNode = item;
                    break;
                }
            }
            if (userNode == null)//添加离线节点
            {
                userInfo = SystemCache.LstUserInfo.Find(i => i.USER_ID == info.MessageFrom.USER_ID);
                userNode = AddChatingTreeNode(userInfo, 0);
            }
            if (userNode == null || userInfo == null || string.IsNullOrEmpty(userInfo.USER_ID))
            {
                return;
            }
            //获取发送用户的消息
            List <MessageInfo> lstInfo = new List <MessageInfo>();

            lstInfo = ListMessageInfo.FindAll(i => i.MessageFrom.USER_ID == userInfo.USER_ID);
            vTreeChating.SuspendLayout();
            userNode.SubItems[0].Text = string.Format("{0}", lstInfo.Count == 0 ? "" : string.Format("{0}", lstInfo.Count));
            vTreeChating.PerformLayout();
        }
コード例 #26
0
    // creates undirected graph
    private void UndirectedGraph()
    {
        if (graphDataset != null)
        {
            String allData = graphDataset.text;
            allData.Replace("\r", "\n");
            String[] lines = allData.Split("\n"[0]);
            populateGridPositions3D(lines.Length);
            // read through each line
            foreach (String s in lines)
            {
                Color col = defaultColor;
                if (colorGraph == true)
                {
                    col = UnityEngine.Random.ColorHSV(0.1f, 0.8f, 0.7f, 1f, 0.5f, 1f);
                }

                // split line on empty character
                String[] subLines = s.Split(new char[0]);

                // line node
                VirtualNode lineNode = null;

                // check if first node on line has been created
                if (checkIfCreated(subLines[0]) == false && subLines[0] != String.Empty)
                {
                    int x = UnityEngine.Random.Range(0, lines.Length);
                    int y = UnityEngine.Random.Range(0, lines.Length);
                    int z = UnityEngine.Random.Range(0, lines.Length);
                    while (gridPositionTaken3D[x, y, z] == true)
                    {
                        x = UnityEngine.Random.Range(0, lines.Length);
                        y = UnityEngine.Random.Range(0, lines.Length);
                        z = UnityEngine.Random.Range(0, lines.Length);
                    }
                    // initialize pos
                    Vector3 pos = Vector3.zero;
                    pos = gridPositions3D[x, y, z];
                    gridPositionTaken3D[x, y, z] = true;

                    GameObject n = Instantiate(defaultNode, pos, transform.rotation);
                    n.GetComponent <MeshRenderer>().material.color = col;
                    n.name = subLines[0];
                    VirtualNode getNode = n.GetComponent <VirtualNode>();
                    getNode.setID(subLines[0]);
                    lineNode = getNode;
                    lineNode.setCircle(true);
                    lineNode.transform.parent = this.transform;
                    nodes.Add(lineNode);
                    n.transform.localScale = new Vector3(scale, scale, scale);
                }
                else
                {
                    lineNode = grabNode(subLines[0]);
                }

                int i = 0;
                // go through and create all adjacencies
                foreach (String sub_s in subLines)
                {
                    if (checkIfCreated(sub_s) == false && sub_s != string.Empty && i != 0)
                    {
                        int x = UnityEngine.Random.Range(0, lines.Length);
                        int y = UnityEngine.Random.Range(0, lines.Length);
                        int z = UnityEngine.Random.Range(0, lines.Length);
                        while (gridPositionTaken3D[x, y, z] == true)
                        {
                            x = UnityEngine.Random.Range(0, lines.Length);
                            y = UnityEngine.Random.Range(0, lines.Length);
                            z = UnityEngine.Random.Range(0, lines.Length);
                        }
                        // initialize pos
                        Vector3 pos = Vector3.zero;
                        pos = gridPositions3D[x, y, z];

                        GameObject n = Instantiate(defaultNode, pos, transform.rotation);
                        n.GetComponent <MeshRenderer>().material.color = col;
                        n.name = sub_s;
                        VirtualNode getNode = n.GetComponent <VirtualNode>();
                        getNode.setID(sub_s);
                        getNode.setNodes(getNode, lineNode);
                        lineNode.setNodes(lineNode, getNode);
                        getNode.transform.parent = this.transform;
                        Edge e = new Edge(lineNode.transform, n.transform, false);
                        edgeCreator.addEdges(e);
                        nodes.Add(getNode);
                        print("added edge");

                        n.transform.localScale = new Vector3(scale, scale, scale);
                    }
                    else
                    {
                        if (checkIfCreated(sub_s) == true && i != 0 && subLines[0] != String.Empty)
                        {
                            VirtualNode n = grabNode(sub_s);
                            n.setNodes(n, lineNode);
                            lineNode.setNodes(lineNode, n);
                            Edge e = new Edge(lineNode.transform, n.transform, false);
                            edgeCreator.addEdges(e);
                            print("added edge");
                            n.transform.localScale = new Vector3(scale, scale, scale);
                        }
                    }
                    i++;
                }
            }
            GraphSize = nodes.Count;
        }
    }
コード例 #27
0
 private Amazon.CDK.AWS.AppMesh.CfnRoute CreateRouterRoute(string id, string serviceName, string branch, VirtualRouter virtualRouter, VirtualNode virtualNode, Mesh mesh, int priority)
 {
     return(new Amazon.CDK.AWS.AppMesh.CfnRoute(this, $"{serviceName}-{branch}-route", new Amazon.CDK.AWS.AppMesh.CfnRouteProps
     {
         MeshName = mesh.MeshName,
         VirtualRouterName = virtualRouter.VirtualRouterName,
         RouteName = $"{serviceName}-{branch}-route",
         Spec = new RouteSpecProperty
         {
             Priority = priority,
             HttpRoute = new HttpRouteProperty
             {
                 Match = new HttpRouteMatchProperty
                 {
                     Headers = new HttpRouteHeaderProperty[]
                     {
                         new HttpRouteHeaderProperty {
                             Name = "x-branch-header",
                             Invert = false,
                             Match = new HeaderMatchMethodProperty {
                                 Exact = $"{branch}"
                             }
                         }
                     },
                     Prefix = "/"
                 },
                 Action = new HttpRouteActionProperty
                 {
                     WeightedTargets = new WeightedTargetProperty[]
                     {
                         new WeightedTargetProperty()
                         {
                             VirtualNode = virtualNode.VirtualNodeName,
                             Weight = 1
                         }
                     }
                 }
             },
         }
     }));
 }
コード例 #28
0
        private void metroTextBox1_TextChanged(object sender, EventArgs e)
        {
            string       szDocID  = this.txtDocID.Text.Trim();
            MedDocInfo   docInfo  = null;
            short        shRet    = EmrDocAccess.Instance.GetDocInfo(szDocID, ref docInfo);
            PatVisitInfo patVisit = null;

            if (docInfo == null)
            {
                string szPatientID = this.txtDocID.Text.Trim();
                List <PatVisitInfo> lstPatVisitInfo = null;
                PatVisitAccess.Instance.GetPatVisitInfos(szPatientID, ref lstPatVisitInfo);
                if (lstPatVisitInfo == null)
                {
                    return;
                }
                patVisit = lstPatVisitInfo.LastOrDefault();
            }
            else
            {
                string szPatientID = docInfo.PATIENT_ID;
                string szVisitNo   = docInfo.VISIT_ID;//文书VisitID存了 VisitNo
                shRet = PatVisitAccess.Instance.GetPatVisit(szPatientID, szVisitNo, ref patVisit);
            }
            if (patVisit == null)
            {
                return;
            }
            if (m_lstPatVisit == null)
            {
                m_lstPatVisit = new List <PatVisitInfo>();
            }
            if (m_lstPatVisit.Exists(m => m.PATIENT_ID == patVisit.PATIENT_ID && m.VISIT_NO == patVisit.VISIT_NO))
            {
                return;
            }
            List <MedDocInfo> lstMedDocInfos = null;

            shRet = EmrDocAccess.Instance.GetDocList(patVisit.PATIENT_ID, patVisit.VISIT_NO, ref lstMedDocInfos);
            if (lstMedDocInfos == null)
            {
                return;
            }
            List <RecPaper> lstRecPapers = new List <RecPaper>();

            shRet = RecPaperAccess.Instance.GetRecPapers(patVisit.PATIENT_ID, patVisit.VISIT_NO, ref lstRecPapers);
            string[] arrSignKeyName = DataCache.Instance.DicHdpParameter[SystemData.ConfigKey.SignKeyName].Split('|');
            var      result         = lstMedDocInfos.Where(m => StringHelper.ArrayContains(m.DOC_TITLE, arrSignKeyName)).ToList();

            if (result != null && result.Count > 0)
            {
                VirtualNode node       = new VirtualNode();
                string      szNodeText = string.Format("应{0}张 患者号:{1} 姓名:{2} ", result.Count, patVisit.PATIENT_ID, patVisit.PATIENT_NAME);
                if (patVisit.DISCHARGE_TIME != patVisit.DefaultTime)
                {
                    szNodeText += "出院时间:" + patVisit.DISCHARGE_TIME.ToString("yyyy-MM-dd HH:mm");
                }
                node.Text     = szNodeText;
                node.CheckBox = true;
                node.Expand();
                node.ImageIndex = 0;
                this.virtualTree1.Nodes.Add(node);
                foreach (var doc in result)
                {
                    string      szRecordTime = doc.RECORD_TIME.ToString("yyyy-MM-dd HH:mm");
                    VirtualNode childNode    = new VirtualNode(szRecordTime);
                    childNode.SubItems.Add(new VirtualSubItem());
                    childNode.SubItems.Add(new VirtualSubItem());
                    childNode.SubItems.Add(new VirtualSubItem());
                    childNode.SubItems[0].Text = doc.DOC_TITLE;
                    var recPaper = lstRecPapers.Where(m => m.DOC_ID == doc.DOC_ID).FirstOrDefault();
                    if (recPaper != null)
                    {
                        if (!string.IsNullOrEmpty(recPaper.IMAGE_FRONTAGE))
                        {
                            childNode.SubItems[1].ImageIndex = 1;
                            childNode.SubItems[1].Tag        = recPaper.IMAGE_FRONTAGE;
                        }
                        if (!string.IsNullOrEmpty(recPaper.IMAGE_OPPOSITE))
                        {
                            childNode.SubItems[2].ImageIndex = 1;
                            childNode.SubItems[2].Tag        = recPaper.IMAGE_OPPOSITE;
                        }
                        childNode.Tag = recPaper;
                    }
                    this.m_paperCount++;
                    node.Nodes.Add(childNode);
                }
                if (m_lstPatVisit == null)
                {
                    m_lstPatVisit = new List <PatVisitInfo>();
                }
                m_lstPatVisit.Add(patVisit);
            }
        }
コード例 #29
0
ファイル: Ls.cs プロジェクト: rjshaver/core
 async Task printNodeShortFormat(VirtualNode node)
 {
     await Output.WriteLineAsync(node.Path.FileName);
 }
コード例 #30
0
        static void TestVirtualFileSystem()
        {
            try
            {
                Random r = new Random();

                VolatileDisk disk = new VolatileDisk(1);
                //PersistentDisk disk = new PersistentDisk(1, "disk1");
                disk.TurnOn();

                VirtualFS vfs = new VirtualFS();

                vfs.Format(disk);
                vfs.Mount(disk, "/");

                VirtualNode root = vfs.RootNode;
                VirtualNode dir1 = root.CreateDirectoryNode("dir1");
                VirtualNode dir2 = root.CreateDirectoryNode("dir2");
                dir2.CreateDirectoryNode("dir3");
                dir1.CreateDirectoryNode("dir4");
                dir2.CreateDirectoryNode("dir5");


                VirtualNode file1 = dir1.CreateFileNode("file1");
                VirtualNode file2 = dir1.CreateFileNode("file2");
                VirtualNode file3 = dir2.CreateFileNode("file3");
                VirtualNode file4 = dir2.CreateFileNode("file4");

                TestFileWriteRead(file1, r, 0, 100);    // 1 sector
                TestFileWriteRead(file1, r, 42, 77);

                TestFileWriteRead(file1, r, 0, 500);    // 2 sectors
                TestFileWriteRead(file1, r, 250, 500);  // 3 sectors
                TestFileWriteRead(file1, r, 275, 700);  // 4 sectors

                RecursivelyPrintNodes(vfs.RootNode);

                Console.WriteLine("Rename!");
                dir1 = vfs.RootNode.GetChild("dir1");
                dir1.Rename("newdir1");
                RecursivelyPrintNodes(vfs.RootNode);

                // Move something
                Console.WriteLine("Move!");
                dir2 = vfs.RootNode.GetChild("dir2");
                dir1.Move(dir2);
                RecursivelyPrintNodes(vfs.RootNode);

                // Make sure disk is correct
                Console.WriteLine("Unmount/mount!");
                vfs.Unmount("/");
                vfs.Mount(disk, "/");
                RecursivelyPrintNodes(vfs.RootNode);

                // Delete
                Console.WriteLine("Delete file!");
                VirtualNode file6 = vfs.RootNode.CreateFileNode("file6");
                file6.Write(0, CreateTestBytes(r, 1000));
                Console.WriteLine("File before deleting!");
                RecursivelyPrintNodes(vfs.RootNode);
                file6.Delete();
                Console.WriteLine("File after deleting!");
                RecursivelyPrintNodes(vfs.RootNode);

                // Delete directory
                Console.WriteLine("Delete Directory!");
                VirtualNode deleteDir2 = vfs.RootNode.GetChild("dir2");
                VirtualNode deleteDir1 = deleteDir2.GetChild("newdir1");
                //deleteDir2.Delete();
                deleteDir1.Delete();
                Console.WriteLine("...After deleting Directory!");
                RecursivelyPrintNodes(vfs.RootNode);

                disk.TurnOff();
                Console.WriteLine("TestVirtualFileSystem success!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("VFS test failed: " + ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }
コード例 #31
0
ファイル: MainWindow.xaml.cs プロジェクト: RainsSoft/panda
 private object _getDiskName(VirtualNode virtualNode)
 {
     return ViewModel.OpenDisks.First(dvm => dvm.Disk == virtualNode.Disk).Name;
 }
コード例 #32
0
ファイル: MainWindow.xaml.cs プロジェクト: RainsSoft/panda
 private void _doPasteToDifferentDisk(VirtualNode source, VirtualDirectory target)
 {
     // check if source is a directory
     var vd = source as VirtualDirectory;
     if (vd != null)
     {
         // yes => create directory & recursively call this function for all child nodes
         var newVd = ((VirtualDirectory) target).CreateDirectory(source.Name);
         foreach (VirtualNode child in vd)
         {
             _doPasteToDifferentDisk(child, newVd);
         }
     }
     else
     {
         // no => copy file
         target.CreateFile(source.Name, ((VirtualFile) source).Open());
     }
 }