<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>CryzeZz的博客</title>
        <link>http://blog.ttykx.com</link>
        <description>CryzeZz的博客</description>
        <atom:link href="http://blog.ttykx.com/rss.html" rel="self" />
        <language>zh-cn</language>
        <lastBuildDate>Fri, 17 Apr 2026 12:27:02 GMT</lastBuildDate>
        <item>
            <title>欢迎使用 Firekylin</title>
            <link>http://blog.ttykx.com/post/hello-world-via-firekylin.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-848">常用操作</a><ul>
<li><a href="#toc-1ab">登录后台</a></li>
<li><a href="#toc-7e4">网站基本设置</a></li>
<li><a href="#toc-ff3">评论设置</a></li>
<li><a href="#toc-310">菜单管理</a></li>
<li><a href="#toc-921">主题外观</a></li>
</ul>
</li>
<li><a href="#toc-a17">Markdown 简介</a></li>
</ul>
</div><p>这是程序自动发布的文章。如果您看到这篇文章，表示您的 Blog 已经安装成功！</p>
<p>如果您对 Firekylin 不是很熟悉，可以先阅读以下常用操作了解一下。</p>
<!--more-->

<h2><a id="toc-848" class="anchor" href="#toc-848"></a>常用操作</h2>
<h3><a id="toc-1ab" class="anchor" href="#toc-1ab"></a>登录后台</h3>
<p>Firekylin 的后台登录入口在 <a href="/admin">~/admin</a></p>
<h3><a id="toc-7e4" class="anchor" href="#toc-7e4"></a>网站基本设置</h3>
<p>后台的 <a href="/admin/options/">系统设置</a> 提供了与网站相关的选项，例如可在其中的 <a href="/admin/options/general">基本设置</a> 中设置网站名称、Logo地址等。<br>更多的设置，请参考 <a href="https://github.com/firekylin/firekylin/wiki/">官方 WIKI</a> 的 <a href="https://github.com/firekylin/firekylin/wiki/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E7%BD%AE">系统设置</a></p>
<h3><a id="toc-ff3" class="anchor" href="#toc-ff3"></a>评论设置</h3>
<p>Firekylin 没有内置评论模块。但是，Firekylin 可方便地使用第三方评论系统。在后台的 <a href="/admin/options/">系统设置</a> 的 <a href="/admin/options/comment">评论设置</a> 的 <code>自定义</code> 模式下粘贴第三方评论系统的代码即可。</p>
<p>Firekylin 还对 <a href="https://disqus.com/">Disqus</a> 、<a href="https://changyan.kuaizhan.com/">畅言</a> 、<a href="https://gentie.163.com/">网易云跟帖</a>  提供了特别的支持，只需要填写对应的网站id即可，不需要粘贴具体的代码。</p>
<h3><a id="toc-310" class="anchor" href="#toc-310"></a>菜单管理</h3>
<p>后台的 <a href="admin/appearance/">外观设置</a> 可进行 <a href="/admin/appearance/navigation">菜单管理</a>，包括新增菜单、删除菜单、菜单排序等。<br>新增菜单时，如填写了菜单属性（例如属性为 <code>home</code>），Firekylin 自带的主题会从图标库尝试寻找 <code>icon-home</code> 作为该菜单的图标，如未查到匹配的则不会显示图标。</p>
<h3><a id="toc-921" class="anchor" href="#toc-921"></a>主题外观</h3>
<p>Firekylin 目前只带了一套主题，所以基于 Firekylin 架构的网站长得都差不多^_^<br>主题外观的使用、修改、创建可参考官网 WIKI 的 <a href="https://github.com/firekylin/firekylin/wiki/%E4%B8%BB%E9%A2%98%E5%A4%96%E8%A7%82">主题外观</a>。<br>欢迎越来越多的热心用户为 Firekylin 开发主题外观，开发手册详见 <a href="https://github.com/firekylin/firekylin/wiki/%E4%B8%BB%E9%A2%98%E5%BC%80%E5%8F%91">主题开发</a>。</p>
<h2><a id="toc-a17" class="anchor" href="#toc-a17"></a>Markdown 简介</h2>
<p>Firekylin 的编辑器为支持 Markdown 语法的编辑器。Markdown 是一种简化的标记语言，普通的纯文本内容（例如 Windows 的记事本撰写的内容）经过 Markdown 标记之后，可被渲染成赏心悦目的富格式文本。</p>
<p>Markdown 的格式说明可参考：<a href="https://guides.github.com/features/mastering-markdown/">英文版</a>、<a href="https://coding.net/help/doc/project/markdown.html">中文版</a></p>
<p>好了，介绍就这么多，快开始你的 Blog 之旅吧！</p>

            ]]></description>
            <pubDate>Fri, 11 Apr 2025 07:30:26 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/hello-world-via-firekylin.html</guid>
        </item>
        <item>
            <title>Caché 字符编码自动判断</title>
            <link>http://blog.ttykx.com/post/cache-chaset.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-d6a">先说几个场景：</a></li>
<li><a href="#toc-079">基础</a></li>
<li><a href="#toc-1da">场景1</a></li>
<li><a href="#toc-f2a">场景2</a></li>
<li><a href="#toc-0a4">场景3</a></li>
<li><a href="#toc-2d0">代码下载</a></li>
<li><a href="#toc-25f">总结</a></li>
</ul>
</div><h3><a id="toc-d6a" class="anchor" href="#toc-d6a"></a>先说几个场景：</h3>
<ol>
<li>使用文件字符流打开一个文本文档，但是我不确定是以UTF8编码的还是GB18030,所以就无法准确设置TranslateTable，就导致了中文乱码问题。</li>
<li>有一个文件下载的csp,其中文件名参数可能是中文，如果在一个UTF8编码的界面直接调用时，后台取到的文件名就会是乱码。</li>
<li>接收到字节流后需要转成字符流读取内容，但是无法确定编码格式，就无法准确的转成字符。</li>
</ol>
<p>以上几个场景虽然大多都可以提前做好约定解决，但是可能有历史原因或者种种情况，需要我们自己能够解决，于是就有了下面的故事。</p>
<h3><a id="toc-079" class="anchor" href="#toc-079"></a>基础</h3>
<p>首先我方系统使用GB18030编码，然后碰到的情况大多都是对方可能是UTF8编码，所以主要来解决识别字节流是不是UTF8编码的。</p>
<p>然后查了一个UTF8编码格式</p>
<ul>
<li>1字节 0xxxxxxx</li>
<li>2字节 110xxxxx 10xxxxxx</li>
<li>3字节 1110xxxx 10xxxxxx 10xxxxxx</li>
<li>4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx</li>
<li>5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx</li>
<li>6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx</li>
</ul>
<p>有了UTF8编码格式，然后逐字节进行判断，看整个字节序列是否完美符合UTF8编码，所以先实现了方法<code>IfMatchUTF8Bytes</code></p>
<pre><code class="hljs lang-reasonml"><span class="hljs-comment">/// 是否是符合UTF8的字节序列</span>
<span class="hljs-comment">/// bytes 字节串或字节流</span>
<span class="hljs-comment">/// maxLen 最大验证长度 超过此长度的不再验证</span>
<span class="hljs-comment">/// Output Count  符合1-6字节编码标准的字符数 $lb(f1,f2,f3,f4,f5,f6)</span>
<span class="hljs-comment">/// 返回值 1符合 0不符合</span>
ClassMethod <span class="hljs-constructor">IfMatchUTF8Bytes(<span class="hljs-params">bytes</span>, <span class="hljs-params">maxLen</span> = 30000, Output Count)</span>
{
    <span class="hljs-comment">///code</span>
}</code></pre><p>基于<code>IfMatchUTF8Bytes</code>方法，然后又实现了一个方法<code>GuessUTF8Bytes</code>，此方法又做了一些其它的判断：如果前三字节为UTF8BOM则直接认定为UTF8，如果校验结果中只有1、2字节的字符，而3-6字节字符没有，则认定为不是UTF8编码。</p>
<pre><code class="hljs lang-javascript"><span class="hljs-comment">/// 猜测是否是UTF8字节序列</span>
<span class="hljs-comment">/// bytes 字节串或字节流</span>
<span class="hljs-comment">/// 返回值 1符合 0不符合</span>
ClassMethod <span class="hljs-function"><span class="hljs-title">GuessUTF8Bytes</span>(<span class="hljs-params">bytes</span>)</span>
{
    <span class="hljs-comment">///code</span>
}</code></pre><h3><a id="toc-1da" class="anchor" href="#toc-1da"></a>场景1</h3>
<p>基于以上，我们就可以实现一个方法打开某文件获得字符流，自动判断编码并设置TranslateTable为相应编码了。</p>
<pre><code class="hljs lang-reasonml"><span class="hljs-comment">/// 打开某文件获得字符流（自动判断编码并设置TranslateTable为相应编码 目前只支持UTF8）</span>
<span class="hljs-comment">/// s fileSteam=##class(BSP.SYS.COM.Charset).OpenFileCharacterStream(fullName)</span>
ClassMethod <span class="hljs-constructor">OpenFileCharacterStream(<span class="hljs-params">fullName</span> = <span class="hljs-string">&quot;&quot;</span>, <span class="hljs-params">autocharset</span>)</span> As %FileCharacterStream
{
    s fileSteam=##<span class="hljs-keyword">class</span>(%FileCharacterStream).%<span class="hljs-constructor">New()</span>

    s sc=fileSteam.<span class="hljs-constructor">LinkToFile(<span class="hljs-params">fullName</span>)</span>
    <span class="hljs-keyword">if</span> <span class="hljs-constructor">$$$ISERR(<span class="hljs-params">sc</span>)</span> {
        q <span class="hljs-string">&quot;&quot;</span>
    }
    s oldTranslateTable=fileSteam.TranslateTable
    s fileSteam.TranslateTable=<span class="hljs-string">&quot;RAW&quot;</span>  <span class="hljs-comment">//判断字节 需要先将TranslateTable设置成RAW</span>
    <span class="hljs-keyword">if</span> ..<span class="hljs-constructor">GuessUTF8Bytes(<span class="hljs-params">fileSteam</span>)</span> {
        d fileSteam.<span class="hljs-constructor">Rewind()</span>
        s fileSteam.TranslateTable=<span class="hljs-string">&quot;UTF8&quot;</span>
    }<span class="hljs-keyword">else</span>{
        d fileSteam.<span class="hljs-constructor">Rewind()</span>
        s fileSteam.TranslateTable=oldTranslateTable    
    }
    q fileSteam
}</code></pre><p>这样我们就可以随便读取本地的文本文件了，也不会乱码了，解决场景1。</p>
<p><img src="http://blog.ttykx.com/static/upload/20221110/upload_9aff4fbc4289ff6fc2e22601d29ce42f.png" alt="charset1.png"></p>
<h3><a id="toc-f2a" class="anchor" href="#toc-f2a"></a>场景2</h3>
<p>如何判断一个请求它的参数是以UTF8编码的还是以GB18030呢，通过测试发现我们可以通过<code>GetCgiEnv(&quot;QUERY_STRING&quot;)</code>获取到请求的参数的，且测试发现不同浏览器设置可能不同，有的为URL编码后的，有的则只是按UTF8或GB18030编码后的字节序列。对于URL编码后的可以先使用<code>$zconvert(url,&quot;I&quot;,&quot;URL&quot;)</code>解码获得字节序列再进行判断，故而实现了方法<code>IfMatchUTF8EscapedURL</code>与<code>GuessUTF8EscapedURL</code>。</p>
<pre><code class="hljs lang-reasonml"><span class="hljs-comment">/// 是否是符合UTF8编码并进行URL编码的字符串</span>
<span class="hljs-comment">/// url 字符传</span>
<span class="hljs-comment">/// maxLen 最大验证长度 超过此长度的不再验证</span>
<span class="hljs-comment">/// Output Count  符合1-6字节编码标准的字符数 $lb(f1,f2,f3,f4,f5,f6)</span>
<span class="hljs-comment">/// 返回值 1符合 0不符合</span>
ClassMethod <span class="hljs-constructor">IfMatchUTF8EscapedURL(<span class="hljs-params">url</span>, <span class="hljs-params">maxLen</span> = 30000, Output Count)</span>
{
    s <span class="hljs-built_in">bytes</span>=<span class="hljs-constructor">$zconvert(<span class="hljs-params">url</span>,<span class="hljs-string">&quot;I&quot;</span>,<span class="hljs-string">&quot;URL&quot;</span>)</span>
    s ret=..<span class="hljs-constructor">IfMatchUTF8Bytes(<span class="hljs-params">bytes</span>,<span class="hljs-params">maxLen</span>,.Count)</span>
    q ret
}
<span class="hljs-comment">/// 猜测是符合UTF8编码并进行URL编码的字符串</span>
<span class="hljs-comment">/// url 字符传</span>
<span class="hljs-comment">/// 返回值 1符合 0符合</span>
ClassMethod <span class="hljs-constructor">GuessUTF8EscapedURL(<span class="hljs-params">url</span>)</span>
{
    <span class="hljs-comment">///code</span>
}</code></pre><p>基于以上就可以实现一个方法判断请求调用方是不是UTF8编码的了。</p>
<pre><code class="hljs lang-cos"><span class="hljs-comment">/// req %CSP.Request对象</span>
<span class="hljs-comment">/// 返回值 1符合 0不符合</span>
<span class="hljs-keyword">ClassMethod</span> GuessUTF8Request(req <span class="hljs-keyword">As</span> <span class="hljs-built_in">%CSP.Request</span>)
{
    <span class="hljs-comment">///code</span>
}</code></pre><p>另外由于编码格式不一致，通过%requet.Data拿到的数据就会出现乱码，此时可以通过将自己解析QUERY_STRING来获取数据，于是有了<code>ParseRequestData</code></p>
<pre><code class="hljs lang-cos"><span class="hljs-comment">/// 解析请求数据 （自动判断编码 ，目前只支持UTF8）</span>
<span class="hljs-comment">/// 目前只实现了从QUERY_STRING解析 在请求体的暂未找到原始数据</span>
<span class="hljs-comment">/// req %CSP.Request对象</span>
<span class="hljs-comment">/// data ByRef 解析出来的数据 </span>
<span class="hljs-keyword">ClassMethod</span> ParseRequestData(req <span class="hljs-keyword">As</span> <span class="hljs-built_in">%CSP.Request</span>, ByRef data)
{
    <span class="hljs-comment">///code</span>
}</code></pre><p>似乎这样就解决了场景二
<img src="http://blog.ttykx.com/static/upload/20221110/upload_aa960fc98023066a8abb743afdf583e7.png" alt="charset2.png"></p>
<p><img src="http://blog.ttykx.com/static/upload/20221110/upload_dc01ea4e8d612e9fe7f41a8d211aadf9.png" alt="charset2-2.png"></p>
<p><img src="http://blog.ttykx.com/static/upload/20221110/upload_81c008986208d9af568c4feb97b39bb6.png" alt="charset2-3.png"></p>
<h3><a id="toc-0a4" class="anchor" href="#toc-0a4"></a>场景3</h3>
<p>有了上面的基础，似乎场景3自然而然水到渠成了。字节流转字符流首先想到的是读取字节，然后使用<code>$zcvt(bytes,&quot;I&quot;,charset)</code>转换，但是这种需要注意不要将一个字符的多个字节分成了两段。此处是利用了<code>%FileCharacterStream</code>做了一次中转，使用其TranslateTable进行转换，不知是否有其它方法支持</p>
<pre><code class="hljs lang-javascript"><span class="hljs-comment">/// 将字节串转换为字符串（自动猜编码，目前只支持UTF8）</span>
<span class="hljs-comment">/// 将字节流转换为字符流（自动猜编码，目前只支持UTF8）</span>
<span class="hljs-comment">/// bytes 字节串或字节流</span>
<span class="hljs-comment">/// 返回值 字符串或字符流</span>
<span class="hljs-comment">/// w ##class(BSP.SYS.COM.Charset).Bytes2Chars($zcvt(&quot;测试&quot;,&quot;O&quot;,&quot;GB18030&quot;) )</span>
ClassMethod <span class="hljs-function"><span class="hljs-title">Bytes2Chars</span>(<span class="hljs-params">bytes</span>)</span>
{
    <span class="hljs-comment">///code</span>
}</code></pre><p><img src="http://blog.ttykx.com/static/upload/20221110/upload_25f66bfdab7915332668cacda7696c46.png" alt="charset3.png"></p>
<h3><a id="toc-2d0" class="anchor" href="#toc-2d0"></a>代码下载</h3>
<p><a href="https://ttykx.com/filemgr/download/?id=5697T8IFMM5J7FHQ8B27YIQNTYQXU53G">Cache字符编码自动判断.zip</a></p>
<h3><a id="toc-25f" class="anchor" href="#toc-25f"></a>总结</h3>
<p>一个小玩具，分享出来大家看看</p>

            ]]></description>
            <pubDate>Thu, 10 Nov 2022 11:31:22 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/cache-chaset.html</guid>
        </item>
        <item>
            <title>Caché 验证码图片生成</title>
            <link>http://blog.ttykx.com/post/Caché Captcha.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-90e">实现原理</a></li>
<li><a href="#toc-1a6">示例</a></li>
</ul>
</div><p>一个用于生成验证码图片的工具类</p>
<!--more-->

<pre><code class="hljs lang-cos"><span class="hljs-comment">/// pFile 生成图片的文件名(完整的物理路径)</span>
<span class="hljs-comment">/// 返回值 生成的验证码值</span>
<span class="hljs-keyword">ClassMethod</span> CreateImage(pFile <span class="hljs-keyword">As</span> <span class="hljs-built_in">%String</span>) <span class="hljs-keyword">As</span> <span class="hljs-built_in">%String</span></code></pre><h2><a id="toc-90e" class="anchor" href="#toc-90e"></a>实现原理</h2>
<p>1.将随机产生的验证码字符按照轨迹生成为一个个像素坐标的RGB值</p>
<p>2.根据 <a href="https://blog.csdn.net/chy555chy/article/details/51620321">BMP图像编码格式</a>创建文件</p>
<h2><a id="toc-1a6" class="anchor" href="#toc-1a6"></a>示例</h2>
<p>执行如下代码，将会在D盘根目录生成一个文件名<code>captcha1.bmp</code>的图片，并返回图片的验证码值。</p>
<pre><code class="hljs lang-leaf">w <span class="hljs-function"><span class="hljs-keyword">##</span><span class="hljs-title">class</span><span class="hljs-params">(<span class="hljs-variable">BSP</span>.<span class="hljs-variable">SYS</span>.<span class="hljs-variable">COM</span>.<span class="hljs-variable">Captcha</span>)</span></span>.CreateImage(&quot;D:\captcha1.bmp&quot;)</code></pre><p><img src="http://blog.ttykx.com/static/upload/20220624/upload_b4ca45dd12edbd4f0ad52385969d7638.png" alt="captcha1.png"></p>
<p>返回值为<code>MLYQ</code>，并且生成了图片，图片的内容为返回值。</p>
<p><img src="http://blog.ttykx.com/static/upload/20220624/upload_9d6d46e9763a51ead88d6263f47da136.png" alt="captcha2.png"></p>
<p>下载地址：<a href="http://ttykx.com/filemgr/download/?id=4BJP5WJY9RQ9URBY5EOUKZ3F8QJ8KNQR">BSP.SYS.COM.Captcha.xml</a></p>
<p>源代码来自于 intersystems社区，<a href="https://community.intersystems.com/post/generate-and-validate-captcha-code">Generate and Validate Captcha Code</a></p>
<p>原文代码生成的图片会不正确，可能编码有关系，修改代码改为将字节写入到文件字节流中就可以正确生成。</p>

            ]]></description>
            <pubDate>Fri, 24 Jun 2022 09:02:20 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/Caché Captcha.html</guid>
        </item>
        <item>
            <title>记录一次全编译CSP导致HIS库不能访问</title>
            <link>http://blog.ttykx.com/post/d20211019.html</link>
            <description><![CDATA[
            <div class="toc"></div><p>某项目，因未知原因界面中文乱码，CSP内容正常，编译后生成的中间类代码中的中文为乱码，重新编译csp后正常,因此决定对系统内的CSP进行全编译。</p>
<!--more-->
<p>1.编译某目录下所有csp命令</p>
<pre><code class="hljs lang-awk">d <span class="hljs-variable">$system</span>.xxxx    <span class="hljs-regexp">//</span>此处不具体说了，避免随意尝试</code></pre><p>2.执行后最后有个错误提示
<img src="http://blog.ttykx.com/static/upload/20211019/upload_80f9b1b9beb828230b844984c5e85eb7.png" alt="d20211019-1.png"></p>
<p>有错误本以为很正常，没去在意，此时去访问HIS，发现HIS系统所有csp访问都是500错误</p>
<p>3.再回头看错误提示，但是在锁那里并没有找到提示的这个的锁，反而发现了另一个锁
<img src="http://blog.ttykx.com/static/upload/20211019/upload_6163fbb6399e808f7216faaa61b7ae8a.png" alt="d20211019-2.png"></p>
<p>4.studio找到csp编译，提示信息如下
<img src="http://blog.ttykx.com/static/upload/20211019/upload_95a31a93c2fd50b4ea0577af2ad0677f.png" alt="d20211019-3.png"></p>
<p>少了类，导致编译失败。</p>
<p>5.移除锁后，删除错误的csp，再次执行命令编译csp，虽然会有个别编译失败，但是不会影响其它正常的csp。</p>
<p>大概猜测原因：这个csp编译失败，生成的中间类被锁在那，导致后续无法去编译中间类（至于为啥影响其它csp的中间类不清楚），总之就是最后就是所有csp生成的中间类都没有被编译，就所有的csp都无法访问了。所以系统内如果有这样的csp,还是尽快移除掉吧，免得啥时候真全编译csp时导致系统炸掉。</p>

            ]]></description>
            <pubDate>Tue, 19 Oct 2021 13:15:17 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/d20211019.html</guid>
        </item>
        <item>
            <title>Caché RSA加密</title>
            <link>http://blog.ttykx.com/post/Cache-RSA.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-b15">密钥生成</a><ul>
<li><a href="#toc-e91">下载安装OpenSSL</a></li>
<li><a href="#toc-d85">配置环境变量</a></li>
<li><a href="#toc-7b7">生成私钥</a></li>
<li><a href="#toc-5fa">生成公钥</a></li>
<li><a href="#toc-2c3">生成证书</a></li>
</ul>
</li>
<li><a href="#toc-f72">工具方法</a><ul>
<li><a href="#toc-565">加密</a></li>
<li><a href="#toc-187">解密</a></li>
</ul>
</li>
<li><a href="#toc-893">调用示例</a></li>
</ul>
</div><p>Caché RSA加密实现</p>
<!--more-->
<h2><a id="toc-b15" class="anchor" href="#toc-b15"></a>密钥生成</h2>
<h3><a id="toc-e91" class="anchor" href="#toc-e91"></a>下载安装OpenSSL</h3>
<p>自行百度搜索下载Win64OpenSSL-1_1_1d.exe，或者csdn下载<a href="https://download.csdn.net/download/zhangxiang_ouc/33164167">Caché RSA加密示例代码和工具.zip</a></p>
<h3><a id="toc-d85" class="anchor" href="#toc-d85"></a>配置环境变量</h3>
<p><img src="http://blog.ttykx.com/static/upload/20211015/upload_71490fac07ad3352a6476b949b146712.png" alt="OpenSSL.png"></p>
<h3><a id="toc-7b7" class="anchor" href="#toc-7b7"></a>生成私钥</h3>
<pre><code class="hljs lang-sas">openssl genrsa -<span class="hljs-meta">out</span> my-<span class="hljs-meta">key</span>.pem 1024</code></pre><p><img src="http://blog.ttykx.com/static/upload/20211015/upload_7bfdf43bf405e73eb0c59e6eaa5658eb.png" alt="生成私钥.png"></p>
<h3><a id="toc-5fa" class="anchor" href="#toc-5fa"></a>生成公钥</h3>
<pre><code class="hljs lang-processing">openssl rsa -in my-<span class="hljs-built_in">key</span>.pem -pubout -out my-<span class="hljs-keyword">public</span>-<span class="hljs-built_in">key</span>.pem</code></pre><p><img src="http://blog.ttykx.com/static/upload/20211015/upload_458f3b8c37ebe0e7b5371bf9f9417c47.png" alt="生成公钥.png"></p>
<h3><a id="toc-2c3" class="anchor" href="#toc-2c3"></a>生成证书</h3>
<p>M中只支持证书加密，需要生成证书</p>
<ol>
<li><p>证书申请</p>
<pre><code class="hljs lang-maxima">openssl req -<span class="hljs-built_in">new</span> -out my-req.csr -<span class="hljs-built_in">key</span> my-<span class="hljs-built_in">key</span>.pem</code></pre><p><img src="http://blog.ttykx.com/static/upload/20211015/upload_d24d355810538fec444c813d8c2154e4.png" alt="申请证书.png"></p>
</li>
<li><p>签署证书</p>
<pre><code class="hljs lang-applescript">openssl x509 -req -<span class="hljs-keyword">in</span> <span class="hljs-keyword">my</span>-req.csr -out <span class="hljs-keyword">my</span>-cert.pem -signkey <span class="hljs-keyword">my</span>-key.pem -days <span class="hljs-number">3650</span></code></pre><p><img src="http://blog.ttykx.com/static/upload/20211015/upload_3888566beefde92ac9ac02212a7b3075.png" alt="签署证书.png"></p>
</li>
</ol>
<h2><a id="toc-f72" class="anchor" href="#toc-f72"></a>工具方法</h2>
<h3><a id="toc-565" class="anchor" href="#toc-565"></a>加密</h3>
<pre><code class="hljs lang-cos"><span class="hljs-comment">/// RSA加密</span>
<span class="hljs-comment">/// plainText  明文</span>
<span class="hljs-comment">/// certPath  证书路径  M只支持证书加密</span>
<span class="hljs-comment">/// Encoding  填充模式（1/2）  1 OAEP   2 RSA_PKCS1_PADDING  Cache2016才支持此参数，2010没有此参数(按1OAEP)</span>
<span class="hljs-keyword">ClassMethod</span> Encrypt(plainText, certPath, Encoding = <span class="hljs-number">2</span>)
{
    <span class="hljs-keyword">s</span> plainText=<span class="hljs-built_in">$zcvt</span>(plainText,<span class="hljs-string">&quot;O&quot;</span>,<span class="hljs-string">&quot;UTF8&quot;</span>)

    <span class="hljs-keyword">Set</span> filestream=<span class="hljs-keyword">##class</span>(<span class="hljs-built_in">%FileCharacterStream</span>).<span class="hljs-built_in">%New</span>()
    <span class="hljs-keyword">Set</span> filestream.Filename=certPath
    <span class="hljs-keyword">Set</span> PublicKeyStr=filestream.<span class="hljs-keyword">Read</span>(.len)

    <span class="hljs-keyword">if</span> <span class="hljs-built_in">$l</span>(<span class="hljs-built_in">$g</span>(<span class="hljs-symbol">^oddCOM</span>(<span class="hljs-string">&quot;%SYSTEM.Encryption&quot;</span>,<span class="hljs-string">&quot;m&quot;</span>,<span class="hljs-string">&quot;RSAEncrypt&quot;</span>,<span class="hljs-number">50</span>)),<span class="hljs-string">&quot;,&quot;</span>)=<span class="hljs-number">5</span>{  <span class="hljs-comment">//2016 </span>
        <span class="hljs-keyword">set</span> Encoding=<span class="hljs-built_in">$s</span>(Encoding=<span class="hljs-number">2</span>:<span class="hljs-number">2</span>,<span class="hljs-number">1</span>:<span class="hljs-number">1</span>)
        <span class="hljs-keyword">Set</span> cipherText=<span class="hljs-keyword">##class</span>(<span class="hljs-built_in">%SYSTEM.Encryption</span>).RSAEncrypt(plainText,PublicKeyStr,<span class="hljs-string">&quot;&quot;</span>,<span class="hljs-string">&quot;&quot;</span>,Encoding)
    }<span class="hljs-keyword">else</span> {  <span class="hljs-comment">//2010</span>
        <span class="hljs-keyword">Set</span> cipherText=<span class="hljs-keyword">##class</span>(<span class="hljs-built_in">%SYSTEM.Encryption</span>).RSAEncrypt(plainText,PublicKeyStr,<span class="hljs-string">&quot;&quot;</span>,<span class="hljs-string">&quot;&quot;</span>)
    }
    <span class="hljs-keyword">Set</span> cipherText=<span class="hljs-keyword">##class</span>(<span class="hljs-built_in">%SYSTEM.Encryption</span>).Base64Encode(cipherText)
    <span class="hljs-keyword">Q</span> cipherText
}</code></pre><h3><a id="toc-187" class="anchor" href="#toc-187"></a>解密</h3>
<pre><code class="hljs lang-reasonml"><span class="hljs-comment">/// RSA加密</span>
<span class="hljs-comment">/// cipherText  Base64密文</span>
<span class="hljs-comment">/// privatePath  私钥路径  </span>
<span class="hljs-comment">/// Encoding  填充模式（1/2）  1 OAEP   2 RSA_PKCS1_PADDING  Cache2016才支持此参数，2010没有此参数(按1OAEP)</span>
ClassMethod <span class="hljs-constructor">Decrypt(<span class="hljs-params">cipherText</span>, <span class="hljs-params">privatePath</span>, Encoding = 2)</span>
{
    Set cipherText=##<span class="hljs-keyword">class</span>(%SYSTEM.Encryption).<span class="hljs-constructor">Base64Decode(<span class="hljs-params">cipherText</span>)</span>
    Set filestream=##<span class="hljs-keyword">class</span>(%FileCharacterStream).%<span class="hljs-constructor">New()</span>
    Set filestream.Filename=privatePath    
    Set PrivateKeyStr=filestream.<span class="hljs-constructor">Read(.<span class="hljs-params">len</span>)</span>
    <span class="hljs-keyword">if</span> <span class="hljs-constructor">$l($<span class="hljs-params">g</span>(^<span class="hljs-params">oddCOM</span>(<span class="hljs-string">&quot;%SYSTEM.Encryption&quot;</span>,<span class="hljs-string">&quot;m&quot;</span>,<span class="hljs-string">&quot;RSADecrypt&quot;</span>,50)</span>),<span class="hljs-string">&quot;,&quot;</span>)=<span class="hljs-number">4</span>{  <span class="hljs-comment">//2016</span>
        set Encoding=<span class="hljs-constructor">$s(Encoding=2:2,1:1)</span>
        s plainText=##<span class="hljs-keyword">class</span>(%SYSTEM.Encryption).<span class="hljs-constructor">RSADecrypt(<span class="hljs-params">cipherText</span>,PrivateKeyStr,<span class="hljs-string">&quot;&quot;</span>,Encoding)</span>
    }<span class="hljs-keyword">else</span>{
        s plainText=##<span class="hljs-keyword">class</span>(%SYSTEM.Encryption).<span class="hljs-constructor">RSADecrypt(<span class="hljs-params">cipherText</span>,PrivateKeyStr,<span class="hljs-string">&quot;&quot;</span>)</span>
    }
    s plainText=<span class="hljs-constructor">$zcvt(<span class="hljs-params">plainText</span>,<span class="hljs-string">&quot;I&quot;</span>,<span class="hljs-string">&quot;UTF8&quot;</span>)</span>
    Q plainText
}</code></pre><h2><a id="toc-893" class="anchor" href="#toc-893"></a>调用示例</h2>
<pre><code class="hljs lang-reasonml"><span class="hljs-comment">/// d ##class(a.RSAUtil).Test()</span>
ClassMethod <span class="hljs-constructor">Test()</span>
{
    <span class="hljs-comment">//证书文件路径 </span>
    s certPath=<span class="hljs-string">&quot;D:\temp\rsatest1\my-cert.pem&quot;</span>

    <span class="hljs-comment">//加密明文</span>
    s plainText=<span class="hljs-string">&quot;blog.ttykx.com原创博客&quot;</span>
    w <span class="hljs-string">&quot;加密前明文为：&quot;</span>,!,plainText,!,!

    <span class="hljs-comment">//使用证书进行加密</span>
    s resultEncrypt=##<span class="hljs-keyword">class</span>(a.RSAUtil).<span class="hljs-constructor">Encrypt(<span class="hljs-params">plainText</span>,<span class="hljs-params">certPath</span>,2)</span>
    w <span class="hljs-string">&quot;使用&quot;</span>_certPath_<span class="hljs-string">&quot;加密结果为：&quot;</span>,!
    w resultEncrypt,!,!


    <span class="hljs-comment">//私钥路径</span>
    s privatePath=<span class="hljs-string">&quot;D:\temp\rsatest1\my-key.pem&quot;</span>

    <span class="hljs-comment">//使用私钥解密上一步的加密结果</span>
    s resultDecrypt=##<span class="hljs-keyword">class</span>(a.RSAUtil).<span class="hljs-constructor">Decrypt(<span class="hljs-params">resultEncrypt</span>,<span class="hljs-params">privatePath</span>,2)</span>

    w <span class="hljs-string">&quot;使用&quot;</span>_privatePath_<span class="hljs-string">&quot;对上一步加密结果解密，结果为：&quot;</span>,!,resultDecrypt,!
}</code></pre><p><img src="http://blog.ttykx.com/static/upload/20211015/upload_12c1e3fef8323bf20715dfb09c4b8097.png" alt="调用示例.png"></p>
<p><a href="https://ttykx.com/filemgr/download/?id=NKK2PHN9VKA3D9HLTZPBKWF7WV3SJZ66">示例代码下载</a></p>

            ]]></description>
            <pubDate>Fri, 15 Oct 2021 08:20:21 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/Cache-RSA.html</guid>
        </item>
        <item>
            <title>IE浏览器相关</title>
            <link>http://blog.ttykx.com/post/IEQA.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-2e7">IE浏览器相关</a><ul>
<li><a href="#toc-9a8">会话</a></li>
</ul>
</li>
</ul>
</div><h2><a id="toc-2e7" class="anchor" href="#toc-2e7"></a>IE浏览器相关</h2>
<!--more-->

<h3><a id="toc-9a8" class="anchor" href="#toc-9a8"></a>会话</h3>
<p>IE启动时会沿用之前打开IE的那个会话，如果一个系统想要登录多个用户，需要启动时加上属性<strong>-nomerge</strong></p>
<pre><code class="hljs lang-taggerscript">&quot;C:<span class="hljs-symbol">\P</span>rogram Files (x86)<span class="hljs-symbol">\I</span>nternet Explorer<span class="hljs-symbol">\i</span>explore.exe&quot; -nomerge

&quot;C:<span class="hljs-symbol">\P</span>rogram Files (x86)<span class="hljs-symbol">\I</span>nternet Explorer<span class="hljs-symbol">\i</span>explore.exe&quot; http://blog.ttykx.com -nomerge</code></pre><p><img src="http://blog.ttykx.com/static/upload/20211014/upload_47b9363e2fba6c5cc18aff8ac48fcee8.png" alt="nomerge.png"></p>

            ]]></description>
            <pubDate>Thu, 14 Oct 2021 06:38:28 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/IEQA.html</guid>
        </item>
        <item>
            <title>消息动作类型</title>
            <link>http://blog.ttykx.com/post/xiao-xi-dong-zuo-lei-xing.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-988">消息动作类型</a></li>
</ul>
</div><style>
table th:first-of-type {
    width: 160px;
}
table th:nth-of-type(2) {
    width: 62px;
}
table th:nth-of-type(3) {
    width: 178px;
}
table th:nth-of-type(4) {
    width: 170px;
}
table th:nth-of-type(5) {
    width: 380px;
}
table td:nth-of-type(3),
table td:nth-of-type(4),
table td:nth-of-type(5) {
    word-break:break-all;
}
</style>

<h3><a id="toc-988" class="anchor" href="#toc-988"></a>消息动作类型</h3>
<table>
<thead>
<tr>
<th>消息类型</th>
<th>代码</th>
<th>入参</th>
<th>接受对象</th>
<th>备注</th>
</tr>
</thead>
<tbody><tr>
<td>通知</td>
<td>2000</td>
<td></td>
<td></td>
<td>消息与病人无关，请用此类型</td>
</tr>
<tr>
<td>OA通知</td>
<td>2001</td>
<td></td>
<td></td>
<td>OA通知，用户传代码，程序单独转成用户ID</td>
</tr>
<tr>
<td>危急值</td>
<td>1000</td>
<td>EpisodeID</td>
<td>危急值平台配置</td>
<td>危急值平台通讯，响应对象的接口<br><code>危急值平台</code></td>
</tr>
<tr>
<td>感染</td>
<td>1001</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>处方点评(事后)</td>
<td>1002</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td><code>药房</code></td>
</tr>
<tr>
<td>处方审核(事前)</td>
<td>1003</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>检验报告取消审核</td>
<td>1004</td>
<td>EpisodeID</td>
<td>医疗单元、主管医生</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>检查报告状态变化</td>
<td>1005</td>
<td>EpisodeID</td>
<td>医疗单元</td>
<td>再次审核 <code>pacs</code></td>
</tr>
<tr>
<td>标本拒收</td>
<td>1006</td>
<td>OEOrdItemID</td>
<td>病区护士（主管护士，护士长）</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>微生物中间报告</td>
<td>1007</td>
<td>OEOrdItemID</td>
<td>医疗单元</td>
<td><code>检验</code> or <code>病理</code></td>
</tr>
<tr>
<td>病历质控</td>
<td>1008</td>
<td>EpisodeId</td>
<td>主管医生</td>
<td>时效性控制. <code>电子病历</code></td>
</tr>
<tr>
<td>终末质控</td>
<td>1009</td>
<td>EpisodeId</td>
<td>科室</td>
<td><code>电子病历</code></td>
</tr>
<tr>
<td>病人隔离</td>
<td>1010</td>
<td>EpisodeId</td>
<td>全病区护士与医生, 主管医生操作</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>疑似</td>
<td>1011</td>
<td>EpisodeId</td>
<td>主管医生</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>退回感染报告</td>
<td>1012</td>
<td>EpisodeId</td>
<td>写报告人（主动传入）</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>检验报告再次审核</td>
<td>1013</td>
<td>OEOrdItemID</td>
<td>医疗单元、主管医生</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>会诊</td>
<td>1014</td>
<td>OEOrdItemID</td>
<td>单独指定</td>
<td><code>护士站</code></td>
</tr>
<tr>
<td>病案迟归</td>
<td>1015</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td>用来提醒医生病案没有上交给病案室的 <code>医政管理组</code></td>
</tr>
<tr>
<td>护士回退</td>
<td>1016</td>
<td>OEOrdItemID</td>
<td>下医嘱医生</td>
<td><code>护士站</code></td>
</tr>
<tr>
<td>病案回收失败</td>
<td>1017</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td><code>医政管理组</code></td>
</tr>
<tr>
<td>传染病未报</td>
<td>1018</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td><code>医政管理组</code></td>
</tr>
<tr>
<td>皮试结果</td>
<td>1019</td>
<td>OEOrdItemID</td>
<td>主管医生/就诊科室</td>
<td><code>护士站</code></td>
</tr>
<tr>
<td>维修提醒</td>
<td>1020</td>
<td>自传用户串</td>
<td></td>
<td></td>
</tr>
<tr>
<td>计量检测</td>
<td>1021</td>
<td></td>
<td>自传用户串</td>
<td></td>
</tr>
<tr>
<td>设备保修</td>
<td>1022</td>
<td></td>
<td>自传用户串</td>
<td></td>
</tr>
<tr>
<td>资质证书</td>
<td>1023</td>
<td></td>
<td>自传用户串</td>
<td></td>
</tr>
<tr>
<td>入库单待审核</td>
<td>1024</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>出库单待审核</td>
<td>1025</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>转移入库待接收</td>
<td>1026</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>退货单待审核</td>
<td>1027</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>调价单待审核</td>
<td>1028</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)(仅待审核,不判断生效与否)</td>
</tr>
<tr>
<td>药品信息待审核</td>
<td>1029</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>库存调整单待审核</td>
<td>1030</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>库存报损单待审核</td>
<td>1031</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>库存请求单出库</td>
<td>1032</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>采购计划待审核</td>
<td>1033</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>药物不良反应退回</td>
<td>1034</td>
<td>EpisodeID</td>
<td>填报医生</td>
<td><code>药房</code>(2016-03-16 新增)</td>
</tr>
<tr>
<td>紧急会诊</td>
<td>1035</td>
<td>OEOrdItemID</td>
<td>单独指定</td>
<td><code>护士站</code>(2016-03-29 新增)</td>
</tr>
<tr>
<td>配血</td>
<td>1036</td>
<td>OEOrdItemID</td>
<td>某个输液室的输液的护士(单独指定)</td>
<td>血库，<code>检验</code>(2016-05-10 新增)</td>
</tr>
<tr>
<td>发血</td>
<td>1037</td>
<td>OEOrdItemID</td>
<td>某个输液室的输液的护士(单独指定)</td>
<td>血库，<code>检验</code>(2016-05-10 新增)</td>
</tr>
<tr>
<td>取血通知</td>
<td>1038</td>
<td>OEOrdItemID</td>
<td>某个输液室的输液的护士(单独指定)</td>
<td>血库，<code>检验</code>(2016-05-10 新增)</td>
</tr>
<tr>
<td>手术通知</td>
<td>1039</td>
<td>EpisodeID</td>
<td>病区护士（主管护士，护士长）</td>
<td><code>手麻组</code>(2016-05-24,新增） 增加一个呼叫准备功能，手术室选中患者，给主管护士发送消息，消息级别为紧急，信息内容为：请给某床+姓名+住院号+做术前准备</td>
</tr>
<tr>
<td>检查取消接收</td>
<td>1040</td>
<td>OEOrdItemID</td>
<td>医疗单元或主管医生</td>
<td><code>检查组</code>(2016-05-24,新增)</td>
</tr>
<tr>
<td>有新医嘱</td>
<td>1041</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td><code>医生站</code></td>
</tr>
<tr>
<td>今日需续方</td>
<td>1042</td>
<td></td>
<td>管床医生</td>
<td><code>医生站</code></td>
</tr>
<tr>
<td>病历授权申请</td>
<td>1043</td>
<td>EpisodeID</td>
<td>病案室所有人</td>
<td><code>电子病历</code>—医生申请</td>
</tr>
<tr>
<td>处方审核申诉</td>
<td>1044</td>
<td>EpisodeID 主管医生</td>
<td>药房</td>
<td></td>
</tr>
<tr>
<td>危急值重发</td>
<td>1045</td>
<td>EpisodeID</td>
<td>自拼userid</td>
<td><code>基础平台</code>，如果15分钟内没有处理危急值，消息重发给医务科</td>
</tr>
<tr>
<td>抗菌药物审核</td>
<td>1046</td>
<td>EpisodeID</td>
<td>自拼userid</td>
<td><code>医生站</code>, 提醒医生，读过就可以。</td>
</tr>
<tr>
<td>停诊诊间通知</td>
<td>1047</td>
<td>自拼userid</td>
<td><code>医生站</code>，如果医生停诊，门办则发消息给诊间护士，且护士读后给门办回执消息</td>
<td></td>
</tr>
<tr>
<td>拒绝发药申诉</td>
<td>1048</td>
<td>EpisodeID</td>
<td>自拼userid</td>
<td>药房发现处方有问题，拒绝发药后，医生再申诉或确认时发消息给药房所有人</td>
</tr>
<tr>
<td>日报自动结账</td>
<td>1049</td>
<td></td>
<td>自拼userid</td>
<td>收费员自动日结时，给组长发下消息</td>
</tr>
<tr>
<td>药房审核后医生停止</td>
<td>1050</td>
<td>EpisodeID,OrdItemID</td>
<td></td>
<td>药房审核医嘱之后医生又停医嘱的消息发送给药房</td>
</tr>
<tr>
<td>药房缺药</td>
<td>1051</td>
<td>EpisodeID</td>
<td></td>
<td>护士审核药品时，发现药品少了，发消息给科室医生.</td>
</tr>
<tr>
<td>电子病历签名审核</td>
<td>1052</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>给上级医师发消息签名的动作</td>
</tr>
<tr>
<td>手术申请</td>
<td>1053</td>
<td>EpisodeID，OrderItemID</td>
<td>手术室（传用户）</td>
<td><code>手麻组</code>(2016-12-14,新增)</td>
</tr>
<tr>
<td>手术拒绝</td>
<td>1054</td>
<td>EpisodeID</td>
<td>申请人（用户）</td>
<td><code>手麻组</code>(2016-12-14,新增)</td>
</tr>
<tr>
<td>危急值</td>
<td>1055</td>
<td>OrderItemID</td>
<td>配置成空</td>
<td>住院---接收为三级医师---某项目特殊需求</td>
</tr>
<tr>
<td>库存转移拒绝</td>
<td>1056</td>
<td></td>
<td>自己传入用户串</td>
<td><code>药房</code> 库存从A药房转移到另B药房，B药房拒绝转移，这时发消息给A药房</td>
</tr>
<tr>
<td>费用核查</td>
<td>1057</td>
<td></td>
<td>1</td>
<td><code>计费</code> 晚上滚任务出，出问题会发一消息给demo，demo点处理进入处理界面</td>
</tr>
<tr>
<td>特殊患者标记</td>
<td>1058</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>特殊患者标记、关闭 发消息提示主治医生</td>
</tr>
<tr>
<td>待审核医嘱</td>
<td>1059</td>
<td></td>
<td>业务串用户</td>
<td>待审核医嘱指实习医生开立的需要患者主管医生审核的医嘱。此处可以查看当前医生需要审核的医嘱信息。</td>
</tr>
<tr>
<td>护理提示</td>
<td>1060</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>护理提示指入院患者生活能力评分 &lt;70的提示。此处可以查看当前医生主管患者的3天内的护理提示信息</td>
</tr>
<tr>
<td>抗菌药物审核结果</td>
<td>1061</td>
<td>EpisodeID</td>
<td>自串UserId</td>
<td>抗菌药物审核结果通知给申请人</td>
</tr>
<tr>
<td>会诊完成提示</td>
<td>1062</td>
<td>EpisodeID</td>
<td>自串UserId</td>
<td>特殊需求，会诊完成提示</td>
</tr>
<tr>
<td>抗菌药物会诊</td>
<td>1063</td>
<td>EpisodeID</td>
<td>自串UserId</td>
<td>抗菌药物审核那边的一个配置，如果能走护理的会诊就走那个，不能的话走这个</td>
</tr>
<tr>
<td>特殊患者消息</td>
<td>1064</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>特殊患者消息指对特殊患者记录的处理而发送的消息</td>
</tr>
<tr>
<td>电子病历签名</td>
<td>1065</td>
<td>EpisodeID,</td>
<td>自串UserId （主管医生，管床医生，及上级医生）</td>
<td>二版电子病历使用的签名消息（1052） 须处理类消息</td>
</tr>
<tr>
<td>首页质控提示</td>
<td>1066</td>
<td>EpisodeID</td>
<td>自串UserId（编目医生，建卡员， 财务，护士）</td>
<td>首页质控系统使用的质控消息</td>
</tr>
<tr>
<td>领药提醒</td>
<td>1067</td>
<td>无关</td>
<td>自串UserId（病区所有护士）</td>
<td>中心药房与病区距离很远，中心药房配好药后，给病区护士发消息，让护士过来领药</td>
</tr>
<tr>
<td>病历权限申请（同意）</td>
<td>1068</td>
<td>无关</td>
<td>自串</td>
<td>读消息，一般，</td>
</tr>
<tr>
<td>病历权限申请（拒绝）</td>
<td>1069</td>
<td>无关</td>
<td>自串</td>
<td>读消息，一般</td>
</tr>
<tr>
<td>医保登记审核</td>
<td>1070</td>
<td>EpisodeID</td>
<td>固定科室（医保科）</td>
<td>住院登记时，收费员将不能确定的病人信息推送给医保科所有用户，且等待医保登记审核 处理链接：websys.default.csp?WEBSYS.TCOMPONENT=INSUAudit</td>
</tr>
<tr>
<td>检验危急值</td>
<td>1071</td>
<td>EpisodeID</td>
<td>病区护士与科室医生</td>
<td>老的检验危急值是一个cs程序，维护工作量大，增加到消息平台中</td>
</tr>
<tr>
<td>用药建议</td>
<td>1072</td>
<td>OEOrdItem</td>
<td>下医嘱医生</td>
<td>临床药学填写用药建议后 发送给医生、护士</td>
</tr>
<tr>
<td>病人费用核查</td>
<td>1073</td>
<td>EpisodeID</td>
<td>护士</td>
<td>住院病人出院时，需要做财务审核，医嘱有问题 审核不通过就给病人一个标志 并通知护士站</td>
</tr>
<tr>
<td></td>
<td>1074</td>
<td></td>
<td></td>
<td>(苍州)</td>
</tr>
<tr>
<td>预防清洁手术</td>
<td>1075</td>
<td>OEOrdItem</td>
<td>下医嘱医生</td>
<td>预防清洁手术，抗生素发出下医嘱医生，医生处理，1续继使用，2停止医嘱重开</td>
</tr>
<tr>
<td>慢性管控提醒</td>
<td>1076</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>医保审核结果</td>
<td>1077</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>待审核药品医嘱</td>
<td>1078</td>
<td></td>
<td></td>
<td>医生有开新药品医嘱下来，提醒药房</td>
</tr>
<tr>
<td>多耐菌</td>
<td>1079</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>院感科发现多耐菌，向主治医生发送消息</td>
</tr>
<tr>
<td>病历复核退回</td>
<td>1080</td>
<td>EpisodeID</td>
<td></td>
<td>病历归档复核时，电子病历病历退回时，可以发消息给提交电子病历的医生，并且有退回原因。</td>
</tr>
<tr>
<td>物资材料审核</td>
<td>1081</td>
<td></td>
<td></td>
<td>新增的物资卫生材料，仓库会计新建字典后自动传送给物价员审核、调价（物价员电脑自动弹出提示框）</td>
</tr>
<tr>
<td>新增收费项医保对照</td>
<td>1082</td>
<td></td>
<td></td>
<td>物价员审核调价后自动传送到医保办进行报销数据维护（医保办电脑自动弹出提示框）</td>
</tr>
<tr>
<td>退费审核通过</td>
<td>1083</td>
<td></td>
<td></td>
<td>住院处和科室负责人增加会有退费审批操作，审批流程完全通过后，发送给退费申请人</td>
</tr>
<tr>
<td>退费审核拒绝</td>
<td>1084</td>
<td></td>
<td></td>
<td>住院处和科室负责人增加会有退费审批操作，拒绝后发送给退费申请人</td>
</tr>
<tr>
<td>停医嘱</td>
<td>1085</td>
<td>OEOrdItemIds</td>
<td></td>
<td>停医嘱时发送给住院护士</td>
</tr>
<tr>
<td>撤销医嘱</td>
<td>1086</td>
<td>OEOrdItemIds</td>
<td></td>
<td>撤销医嘱也发送给病区护士</td>
</tr>
<tr>
<td>传染病上报</td>
<td>1087</td>
<td></td>
<td></td>
<td>发送个公共卫生科</td>
</tr>
<tr>
<td>中草药提醒</td>
<td>1088</td>
<td></td>
<td></td>
<td>开立的中草药，最后一天提醒医生，是否继续用药。</td>
</tr>
<tr>
<td>项目到位资金</td>
<td>1089</td>
<td></td>
<td>自串用户Id（申请用户）</td>
<td>科研处对用户提交的数据审核，审核过了之后自动通知该条数据对应的用户</td>
</tr>
<tr>
<td>中检和验收</td>
<td>1090</td>
<td>无</td>
<td>自串用户Id（项目负责人）</td>
<td>科教处提醒项目负责人这个项目应该中检或者验收（科研组）</td>
</tr>
<tr>
<td>未审核处方</td>
<td>1091</td>
<td>EpisodeID</td>
<td>医嘱的接收科室的所有医护人员</td>
<td>医生开了药品处方后，需要发消息给医嘱接收科室，提示药房审核</td>
</tr>
<tr>
<td>住院审核</td>
<td>1092</td>
<td>EpisodeID</td>
<td>西院住院处</td>
<td>实现护士最终结算后，推送消息至住院处，告知住院处该患者可以进行住院审核</td>
</tr>
<tr>
<td>收费项增加修改</td>
<td>1093</td>
<td></td>
<td>医保办人员</td>
<td>增加或修改收费项后，发消息给医保办人员，登陆医系统后有弹出消息提醒，点击【须处理】按钮后进入目录对照界面(定位到收费项目)  处理链接insutarcontrast.csp</td>
</tr>
<tr>
<td>费别修改</td>
<td>1094</td>
<td></td>
<td>主管医生</td>
<td>入院时没带医保卡，自费办入院，中途转成医保费别时，医保登记成功后发消息给主管医生，告知读消息</td>
</tr>
<tr>
<td>处方拒绝</td>
<td>1095</td>
<td>EpisodeID,OrdItem</td>
<td>下医嘱医生</td>
<td>处方拒绝时发消息给医嘱的对应下医嘱医生(只读消息)</td>
</tr>
<tr>
<td>加急医嘱消息</td>
<td>1096</td>
<td></td>
<td>病区护士</td>
<td>加急医嘱的，通知护理  (1089)</td>
</tr>
<tr>
<td>不良事件上报</td>
<td>1097</td>
<td></td>
<td></td>
<td>不良事件上报发送给需要审核的人</td>
</tr>
<tr>
<td>病理标本拒收</td>
<td>1098</td>
<td>EpisodeID,OrdItem</td>
<td>科室医生与病区护士</td>
<td>病理系统拒收标本后，拒绝信息发给给his的医生与护士</td>
</tr>
<tr>
<td>追加术中抗生素</td>
<td>1099</td>
<td>EpisodeID</td>
<td>主管护士</td>
<td>增加一个呼叫术中追加抗生素的按钮功能，手术室选中患者，给主管护士发送信息，信息级别为紧急，信息内容为：请给某床+名字+住院号+追加术中抗生素</td>
</tr>
<tr>
<td>输血申请单接收</td>
<td>1100</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>输血申请单接收后通知医生</td>
</tr>
<tr>
<td>营养科关注的检验项目</td>
<td>1101</td>
<td>EpisodeID</td>
<td>营养科</td>
<td>检验结果中营养科关注的项目不正常时，发消息给营养科</td>
</tr>
<tr>
<td>肿瘤慢病未报</td>
<td>1102</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>慢病病理检测出恶性肿瘤提醒</td>
</tr>
<tr>
<td>HIV阳性</td>
<td>1103</td>
<td>EpisodeID,OrdItem</td>
<td>下医嘱医生</td>
<td>HIV阳性</td>
</tr>
<tr>
<td>有新开医嘱</td>
<td>1104</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>住院医师签完病历之后，消息提醒治疗医师（医嘱的接收科室对应的所有医生）</td>
</tr>
<tr>
<td>梅毒阳性</td>
<td>1105</td>
<td>EpisodeID,OrdItem</td>
<td>下医嘱医生</td>
<td>梅毒阳性</td>
</tr>
<tr>
<td>医技预约（护士）</td>
<td>1106</td>
<td>EpisodeID,OrdItem</td>
<td>护士</td>
<td>护士看到消息后，给病人及时打印预约单</td>
</tr>
<tr>
<td>医技预约(后勤)</td>
<td>1107</td>
<td>EpisodeID,OrdItem</td>
<td>临床服务部</td>
<td>临床服务部看到后，打印派遣单，派遣医院后勤人员在预约时间接住院病人。</td>
</tr>
<tr>
<td>床位预约</td>
<td>1108</td>
<td></td>
<td>病区护士</td>
<td>住院服务中心给病人预约床位后，在预约日期前一天给预约病区护士进行消息推送，病区护士将消息处理后回传给住院服务中心</td>
</tr>
<tr>
<td>输血申请</td>
<td>1109</td>
<td>EpisodeID,OrdItem</td>
<td>业务传</td>
<td>输血临床审批流程发送给一个人审核</td>
</tr>
<tr>
<td>多重耐药</td>
<td>1110</td>
<td>EpisodeID,OrdItemId</td>
<td>主治医生</td>
<td>检验医生发现多重耐药，发送信息给主治医生，主治医生收到信息，点击处理弹出医政的报卡界面(dhchai.ir.mrb.infmrbqry.csp)。</td>
</tr>
<tr>
<td>护士领药审核</td>
<td>1111</td>
<td>EpisodeID</td>
<td>业务传</td>
<td>护士领药审核后点击‘全区发送’后，给药房提示</td>
</tr>
<tr>
<td>自费转医保审核</td>
<td>1112</td>
<td>EpisodeID</td>
<td>医保审核安全组工号</td>
<td>住院患者自费转医保需要经过医保办审批，住院医生发起申请，医保审核安全组的工号进行审批，消息发给医保审核安全组的工号，他们点处理时候最好是能直接弹出审批的菜单，进行审批。配置处理url。</td>
</tr>
<tr>
<td>退药申请</td>
<td>1113</td>
<td>EpisodeID,OrdItemId</td>
<td></td>
<td>护士申请退药需要消息弹框提醒药房</td>
</tr>
<tr>
<td>留观超期</td>
<td>1114</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>留观病人超72小时，提醒医生，并要求医生处理。</td>
</tr>
<tr>
<td>过敏记录</td>
<td>1115</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>医生填写后，护士能自动收到，需要提示</td>
</tr>
<tr>
<td>报告修改</td>
<td>1116</td>
<td>EpisodeID,OrdItemId</td>
<td>主治医生</td>
<td>检查科修改过报告后，把修改过的内容发给病人主治医生，主治医生看过后，消息就消失。</td>
</tr>
<tr>
<td>停替诊</td>
<td>1117</td>
<td></td>
<td>自传</td>
<td>停替诊发消息通知挂号收费人员</td>
</tr>
<tr>
<td>贵重药品</td>
<td>1118</td>
<td>EpisodeID,OrdItemId</td>
<td>自传</td>
<td>贵重药品，在护士做领药审核的时候对药房人员进行提示</td>
</tr>
<tr>
<td>库存预警</td>
<td>1119</td>
<td></td>
<td></td>
<td>如果出现剩余库存超过药品维护库存下限了  则对药房药库相关人员进行消息提醒</td>
</tr>
<tr>
<td>疑似病例</td>
<td>1120</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>医政监测疑似病例时发送消息给科室医生</td>
</tr>
<tr>
<td>睡眠呼吸监测</td>
<td>1121</td>
<td>EpisodeID,OrdItemId</td>
<td>接收科室脑病科医生</td>
<td>医生开了医嘱：睡眠呼吸检测和睡眠呼吸监测过筛试验，需要自动发送消息到接受科室（脑病科）。接受科室看到消息，回信息给开单医生。开单医生再消息给接受科室</td>
</tr>
<tr>
<td>住院医嘱点评</td>
<td>1122</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>住院医嘱点评 发给医生</td>
</tr>
<tr>
<td>院感宣教</td>
<td>1123</td>
<td></td>
<td>自传</td>
<td>院感科针对性的对临床院感专员和医生进行知识宣教推送消息  <code>医务管理</code></td>
</tr>
<tr>
<td>检查报告取消审核</td>
<td>1124</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检查报告有误，取消审核发消息给主管医生</td>
</tr>
<tr>
<td>住院草药退药</td>
<td>1125</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>住院草药不允许退药，除非草药房把处方置为可退，护士那边才能做退药申请 药房置为可退时，发消息通知病区护士</td>
</tr>
<tr>
<td>降钙素原</td>
<td>1126</td>
<td>EpisodeID</td>
<td>自传</td>
<td>将首义院区内所有临床科室检验结果中的“降钙素原”项目数值大于“2”的消息弹窗发至重症医学科医生工作站</td>
</tr>
<tr>
<td>入库进价变动</td>
<td>1127</td>
<td></td>
<td>自传</td>
<td>物资入库时，如果进价跟上次入库进价有变动，则进行消息提醒</td>
</tr>
<tr>
<td>不入径审核通过</td>
<td>1128</td>
<td>EpisodeID</td>
<td>申请人（产品组自取）</td>
<td>临床路径不入径申请，科主任审核通过，通知下申请人</td>
</tr>
<tr>
<td>不入径审核拒绝</td>
<td>1129</td>
<td>EpisodeID</td>
<td>申请人（产品组自取）</td>
<td>临床路径不入径申请，科主任审核拒绝，通知申请人，申请人要进行入径操作，将消息置为处理</td>
</tr>
<tr>
<td>不良事件驳回</td>
<td>1130</td>
<td>EpisodeID</td>
<td>上报人（产品组自取）</td>
<td>不良事件驳回，通知上报人</td>
</tr>
<tr>
<td>护士拒绝医嘱</td>
<td>1131</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>护士处理医嘱，选择拒绝时，通知医生</td>
</tr>
<tr>
<td>拒绝发药</td>
<td>1132</td>
<td>EpisodeID,OrdItemId</td>
<td>病区护士</td>
<td>护士领药审核，药房拒绝发药，消息提示病区护士</td>
</tr>
<tr>
<td>分配处方</td>
<td>1133</td>
<td>EpisodeID</td>
<td>对应药师（产品组自取）</td>
<td>处方点评中，处方分配给药师后，消息提醒药师</td>
</tr>
<tr>
<td>病情证明书</td>
<td>1134</td>
<td>EpisodeID</td>
<td>分诊区护士</td>
<td>门诊医生在电子病历勾选门诊病情书后，保存病历后发消息通知分诊区护士</td>
</tr>
<tr>
<td>拒绝退药</td>
<td>1135</td>
<td>EpisodeID,OrdItemId</td>
<td>病区护士</td>
<td>药房拒绝退药，发送消息通知病区护士</td>
</tr>
<tr>
<td>拒绝发血</td>
<td>1136</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>拒绝发血后通知医生</td>
</tr>
<tr>
<td>转科审核</td>
<td>1137</td>
<td>EpisodeID</td>
<td>产品组自取</td>
<td>转科需要审核，发给审核人</td>
</tr>
<tr>
<td>迁档申请</td>
<td>1138</td>
<td></td>
<td>产品组自取</td>
<td>公共卫生系统中在A机构建立档案，B机构在建立这份档案的时候可以向A机构发送迁档申请 发送消息</td>
</tr>
<tr>
<td>需停医嘱</td>
<td>1139</td>
<td>EpisodeID，</td>
<td>科室医生</td>
<td>滚医嘱时，如果国家集中采购的药品超过8万元时不生成执行记录，需要提醒医生去停医嘱</td>
</tr>
<tr>
<td>VTE评估</td>
<td>1140</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>评估某个病人得静默血栓，发出消息。分数大4分，可能是高危，提醒医生。评估为医政界面为：dhc.jsp</td>
</tr>
<tr>
<td>上级药师点评</td>
<td>1141</td>
<td>EpisodeID</td>
<td>产品组自己传</td>
<td>上级药师抽取已经被点评的处方，进行审核，查看一次点评药师点评的是否合理，不合理发给一次点评的药师</td>
</tr>
<tr>
<td>住院超30天</td>
<td>1142</td>
<td>EpisodeID</td>
<td>科室医生与病区护士</td>
<td>病人住院30天，发送消息，提醒填写住院超过30天患者管理与评价表</td>
</tr>
<tr>
<td>手术即将开始</td>
<td>1143</td>
<td>EpisodeID</td>
<td>主管医生病区护士</td>
<td>发送即将进行手术消息给病区护士和主管医生，护士进行准备工作</td>
</tr>
<tr>
<td>手术即将结束</td>
<td>1144</td>
<td>EpisodeID</td>
<td>主管医生病区护士</td>
<td>发送即将结束手术消息给病区护士和主管医生，护士进行准备工作</td>
</tr>
<tr>
<td>抗菌药物超36小时</td>
<td>1145</td>
<td>EpisodeID,OrdItemId</td>
<td>科室医生</td>
<td>使用目的为预防的抗菌药物长期医嘱，如果距离该医嘱开立时间超过36小时，则需要发消息给患者主管医生，提醒医生“预防应用抗菌药物超过36小时，请停用或改为治疗性应用”</td>
</tr>
<tr>
<td>体检报告质量上报</td>
<td>1146</td>
<td>EpisodeID</td>
<td>产品组自传</td>
<td>审核体检报告，对有问题的报告进行质量上报</td>
</tr>
<tr>
<td>疑似传染病</td>
<td>1147</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>检验/放射结果中，符合意思传染病接口的，需要触发消息发送传染病疑似结果到医生</td>
</tr>
<tr>
<td>出径审核拒绝</td>
<td>1148</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>临床路径出径申请，科主任审核拒绝，通知申请人</td>
</tr>
<tr>
<td>出径审核通过</td>
<td>1149</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>主治医生、临床路径出径申请，科主任审核通过，通知申请人</td>
</tr>
<tr>
<td>护理病历审批</td>
<td>1150</td>
<td>EpisodeID</td>
<td>上级护士</td>
<td>当护理病历修改时，需求要上级护士审批修改。</td>
</tr>
<tr>
<td>精神病报卡状态异常</td>
<td>1151</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>严重精神疾病报卡状态异常</td>
</tr>
<tr>
<td>院感预警</td>
<td>1152</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>杏林系统出现院感预警值时，发送消息给主治医生</td>
</tr>
<tr>
<td>VTE健康宣教</td>
<td>1153</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>医生vte评估，如果勾选了健康宣教，需要给护士发消息</td>
</tr>
<tr>
<td>护理病历医生签名</td>
<td>1154</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>护士写完这个护理病历，保存后，医生站消息有提醒，之后医生在这个护理病历上签名</td>
</tr>
<tr>
<td>会诊通知</td>
<td>1155</td>
<td>EpisodeID</td>
<td>产品组自定</td>
<td>会诊申请时，同时发消息给医务部，与医院质量办公室  消息与会诊状态独立，新建消息类型</td>
</tr>
<tr>
<td>静配医嘱审查结果</td>
<td>1156</td>
<td>EpisodeID，OrdItemId</td>
<td>下医嘱医生</td>
<td>静配医嘱审查后，结果通知医生</td>
</tr>
<tr>
<td>急诊病人签床通知</td>
<td>1157</td>
<td>EpisodeID</td>
<td></td>
<td>住院管理处给急诊的新入院病人签床之后，发消息给急诊的护士，给病人办理结账，让病人住院</td>
</tr>
<tr>
<td>新开住院证患者</td>
<td>1158</td>
<td>EpisodeID</td>
<td>产品组传住院证要入科室|ToDoctor</td>
<td>当门急诊医生开完住院证后需给本科病区发送消息，提醒病区医生有新开住院证患者，请尽快给患者预约床位</td>
</tr>
<tr>
<td>床位预约成功</td>
<td>1159</td>
<td>EpisodeID</td>
<td>就诊科室</td>
<td>急诊的留观和抢救区的患者预约床位成功后，给开住院证的整个急诊科室发消息，提醒“该患者床位预约成功”</td>
</tr>
<tr>
<td>体检高危</td>
<td>1160</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>现在主要是体检高危的消息，体检的过程会上报检查严重的阳性体征，发消息给科室医生</td>
</tr>
<tr>
<td>申请恢复医嘱</td>
<td>1161</td>
<td>EpisodeID，OrdItemId</td>
<td>产品组自传护理部</td>
<td>护士撤销执行医嘱之后，申请恢复到撤销之前的已执行状态，发消息给护理部审核</td>
</tr>
<tr>
<td>多科会诊审核</td>
<td>1162</td>
<td>EpisodeID</td>
<td>产品组自取</td>
<td>多科会诊需要科主任审核，发送消息提醒</td>
</tr>
<tr>
<td>核酸检测结果</td>
<td>1163</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>增加【核酸检测】</td>
</tr>
<tr>
<td>远程会诊</td>
<td>1164</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>需求发起远程会诊消息，点击处理时切换到对应会诊科室与安全组系统</td>
</tr>
<tr>
<td>不良事件审核</td>
<td>1165</td>
<td>EpisodeID</td>
<td>产品组自取</td>
<td>不良事件审核   --标准版</td>
</tr>
<tr>
<td>检验标本接收</td>
<td>1166</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验标本接收</td>
</tr>
<tr>
<td>检验标本核收</td>
<td>1167</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验标本核收</td>
</tr>
<tr>
<td>检验报告审核</td>
<td>1168</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验报告审核</td>
</tr>
<tr>
<td>检验标本取消核收</td>
<td>1169</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验标本取消核收</td>
</tr>
<tr>
<td>血库拒收</td>
<td>1170</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>血库拒收输血申请单</td>
</tr>
<tr>
<td>新开会诊医嘱</td>
<td>1171</td>
<td>EpisodeID,OrdItemId</td>
<td>自传 LocId|ToNurse</td>
<td>A科医生给其它科室会诊时，开医嘱时消息提醒A科对应病区护士处理医嘱</td>
</tr>
<tr>
<td>手术申请审核</td>
<td>1172</td>
<td>EpisodeID</td>
<td>科主任</td>
<td>住院所有手术申请均需要科主任审核，所以需要将申请信息发送给科主任</td>
</tr>
<tr>
<td>危急值转发</td>
<td>1173</td>
<td>EpisodeID,OrdItemId</td>
<td>产品组传</td>
<td>危急值转发给某医生  --危急值转发</td>
</tr>
<tr>
<td>病案编目</td>
<td>1174</td>
<td>EpisodeID</td>
<td>自传</td>
<td>病案编目时，有啥问题可以发消息通知主管医生</td>
</tr>
<tr>
<td>双向转诊</td>
<td>1175</td>
<td>EpisodeID</td>
<td>自传</td>
<td>卫生院医生通过双向转诊界面预约了转诊， 病人去科技城医院取号成功后，接诊后，住院后 将病人的取号信息传给卫生院的医生</td>
</tr>
<tr>
<td>检查结核审核</td>
<td>1176</td>
<td>EpisodeID</td>
<td>全体医护人员（医生与护士）</td>
<td>病人在做检查时，如果检查出结核的病灶，审核报告的时候需要推送消息给临床医生和护士，以前是手工的业务，结核指针会以纸质的单据送到医生处，现在需要在系统推送消息，告知医生病人有结核。</td>
</tr>
<tr>
<td>MDT会诊</td>
<td>1177</td>
<td>EpisodeID</td>
<td>自传</td>
<td>MDT会诊发送后给会诊医生发送的消息，会诊医生阅读消息后变已处理</td>
</tr>
<tr>
<td>麻醉医生医嘱</td>
<td>1178</td>
<td>EpisodeID,OrdItemId</td>
<td>手术护士、麻醉护士安全组</td>
<td>麻醉科医生开医嘱，需要提醒麻醉护士和手术室护士</td>
</tr>
<tr>
<td>RIS危急值</td>
<td>1179</td>
<td></td>
<td></td>
<td>医技科室发现危急值时，手动发送消息给医生。某项目要将危急值按检验检查发送不同消息类型，此类型作为检查危急值 20200827</td>
</tr>
<tr>
<td>体温升高预警</td>
<td>1180</td>
<td>EpisodeID</td>
<td>公共卫生科</td>
<td>患者体温高于37.3°C时，提醒公共卫生科</td>
</tr>
<tr>
<td>报卡退回</td>
<td>1181</td>
<td>EpisodeID</td>
<td>产品组自取上报人</td>
<td>院感办把报卡退回的时候通过消息平台提醒上报医生</td>
</tr>
<tr>
<td>会诊超时</td>
<td>1182</td>
<td>EpisodeID</td>
<td>产品组自传</td>
<td>会诊接收后超过12小时未完成 发消息提醒接收人</td>
</tr>
<tr>
<td>预防使用抗菌药物超三天</td>
<td>1183</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>院感发现预防使用抗菌药物超三天时消息提醒主管医生</td>
</tr>
<tr>
<td>临床路径入径提醒</td>
<td>1184</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>患者入径后发消息提醒护士</td>
</tr>
<tr>
<td>不良事件转抄</td>
<td>1185</td>
<td>EpisodeID</td>
<td>自传</td>
<td>不良事件的转抄业务</td>
</tr>
<tr>
<td>MDT会诊完成通知</td>
<td>1186</td>
<td>EpisodeID</td>
<td>自传</td>
<td>MDT会诊完成后通知各会诊医生</td>
</tr>
<tr>
<td>处方审核通过</td>
<td>1187</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>药房处方审核通过后，发消息提醒下医嘱医生，读即处理</td>
</tr>
<tr>
<td>退费申请</td>
<td>1188</td>
<td>EpisodeID</td>
<td>自传</td>
<td>门诊医生进行退费申请时发消息通知收费处</td>
</tr>
<tr>
<td>会诊审核</td>
<td>1189</td>
<td>EpisodeID</td>
<td>科主任</td>
<td>科主任待审核会诊消息，点开后，链接到会诊审核界面，会诊申请被审核后，该消息即消失</td>
</tr>
<tr>
<td>营养科关注医嘱</td>
<td>1190</td>
<td>EpisodeID,OrdItemId</td>
<td>营养科</td>
<td>临床科室开固定的某些医嘱，审核后，会自动给营养科发送消息</td>
</tr>
<tr>
<td>化疗方案</td>
<td>1191</td>
<td>EpisodeID,OrdItemId</td>
<td>发给上级医生</td>
<td>申请医生发化疗方案，给上级医生审核消息；绑定上级医生审核界面</td>
</tr>
<tr>
<td>化疗方案审核</td>
<td>1192</td>
<td>EpisodeID,OrdItemId</td>
<td>发送给药房药师</td>
<td>上级医生审核完消息后再发药房药师消息。绑定药房药师处理界面</td>
</tr>
<tr>
<td>化疗方案成功</td>
<td>1193</td>
<td>EpisodeID,OrdItemId</td>
<td>发送申请医生</td>
<td>药师审核完成后，发消息给申请医生</td>
</tr>
<tr>
<td>医保患者出院</td>
<td>1194</td>
<td>EpisodeID,OrdItemId</td>
<td>发送给医保办</td>
<td>医生审核出院医嘱后，给医保办发送消息， 然后医保办去医保审核界面审核相应的患者，医保患者才能办理结算</td>
</tr>
<tr>
<td>非计划再次手术</td>
<td>1195</td>
<td>EpisodeID</td>
<td>科室-医务科</td>
<td>非计划再次手术需要发送消息给医务科</td>
</tr>
<tr>
<td>不良事件未转归</td>
<td>1196</td>
<td>EpisodeID</td>
<td>自传</td>
<td>不良事件（跌倒、护理意外、药物外渗、非预期压疮）超过一个月未填转归，消息提醒护士长</td>
</tr>
<tr>
<td>外出检查未归</td>
<td>1197</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>如有已外出检查扫描，24小时内未返回的，消息提醒病区护士</td>
</tr>
<tr>
<td>药学咨询</td>
<td>1198</td>
<td></td>
<td>自传</td>
<td>临床药学、药学咨询，医生咨询后，药师界面增加消息提醒</td>
</tr>
<tr>
<td>死亡患者未报</td>
<td>1199</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>死亡患者填写了死亡医嘱后，未及时报卡发消息给主管医生，提醒及时报卡</td>
</tr>
<tr>
<td>超量用血提醒</td>
<td>1200</td>
<td>OrdItemID</td>
<td>下医嘱医生</td>
<td>超量用血提醒申请医生，补提输血申请单</td>
</tr>
<tr>
<td>医嘱审核</td>
<td>1201</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>实习医嘱审核</td>
</tr>
<tr>
<td>输血审核</td>
<td>1202</td>
<td>EpisodeID</td>
<td></td>
<td>大量用血审批-科主任审核</td>
</tr>
<tr>
<td>输血审核</td>
<td>1203</td>
<td>EpisodeID</td>
<td></td>
<td>大量用血审批-医务审核</td>
</tr>
<tr>
<td>用药建议申诉</td>
<td>1204</td>
<td>EpisodeID</td>
<td></td>
<td>临床药学，医生对药师填写的用药建议提出申诉后，发送消息给药师  ---标准版 <code>药房药库</code></td>
</tr>
<tr>
<td>慢病干预提醒</td>
<td>1205</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>慢病系统中对患者进行干预操作，将干预措施发消息提醒HIS主管医生</td>
</tr>
<tr>
<td>调停诊申请</td>
<td>1206</td>
<td></td>
<td></td>
<td>医生调停诊发消息通知门诊办进行审核</td>
</tr>
<tr>
<td>手术排班成功</td>
<td>1207</td>
<td>EpisodeID</td>
<td></td>
<td>手麻系统进行手术排班成功后，提醒手术医师</td>
</tr>
<tr>
<td>特抗药会诊</td>
<td>1208</td>
<td>EpisodeID</td>
<td></td>
<td>特殊级抗菌药物会诊要和普通会诊区分开</td>
</tr>
<tr>
<td>三病筛查提醒</td>
<td>1209</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>B超宫内早孕、宫内单活胎或宫内双活胎、宫内晚孕；检验血(HCG&gt; 5mIU/ml)或尿HCG(+) 发送消息提醒主管医生  联系患者到医院三病筛查    医生开三病筛查医嘱或某授权人选择终止 方将消息置为已处理</td>
</tr>
<tr>
<td>日间手术通知</td>
<td>1210</td>
<td>EpisodeID，OrdItemId</td>
<td></td>
<td>日间手术流程--1.增加发送手术通知功能，发送的内容可以面向病人（上下午不同）、主刀、麻师，发送内容可以在基础平台中维护</td>
</tr>
<tr>
<td>换床通知</td>
<td>1211</td>
<td>EpisodeID</td>
<td></td>
<td></td>
</tr>
<tr>
<td>转科通知</td>
<td>1212</td>
<td>EpisodeID</td>
<td></td>
<td></td>
</tr>
<tr>
<td>急诊手术申请</td>
<td>1213</td>
<td>EpisodeID</td>
<td></td>
<td>医生申请手术后，发消息给手术室护士，请求手术排班</td>
</tr>
<tr>
<td>危急值特殊原因结束审核</td>
<td>1214</td>
<td>EpisodeID</td>
<td></td>
<td>危急值医生可以选则特殊原因将危急值置为结束，而不需要走正常的处理复查流程，需要提醒职能部门审核</td>
</tr>
<tr>
<td>危急值特殊原因结束审核结果</td>
<td>1215</td>
<td>EpisodeID</td>
<td></td>
<td>危急值特殊原因结束职能部门审核结果通知给置标志人</td>
</tr>
<tr>
<td>新的治疗申请</td>
<td>1216</td>
<td>EpisodeID,OrdItemId</td>
<td>医嘱接收科室技师</td>
<td>医生给患者开治疗申请后，消息提醒医嘱接收科室</td>
</tr>
<tr>
<td>限制用药医嘱审核结果</td>
<td>1217</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>医保办与医务部对限制用药的医嘱审核结果，消息提醒开医嘱医生</td>
</tr>
<tr>
<td>有新中草药处方</td>
<td>1218</td>
<td>EpisodeID</td>
<td>中药房</td>
<td>医生新开草药处方时，提醒中药房</td>
</tr>
<tr>
<td>医技预约</td>
<td>1219</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>医技预约后发消息提醒医生</td>
</tr>
<tr>
<td>会诊驳回</td>
<td>1220</td>
<td>EpisodeID</td>
<td>自传</td>
<td>会诊审核驳回后，增加消息推送功能，推送给申请医师，当前会诊已驳回并显示驳回原因--标准版 <code>新产品组</code></td>
</tr>
<tr>
<td>会诊拒收</td>
<td>1221</td>
<td>EpisodeID</td>
<td>自传</td>
<td>会诊拒收，增加消息推送功能，推送给申请医师，会诊已拒收--标准版 <code>新产品组</code></td>
</tr>
<tr>
<td>单病种上报提醒</td>
<td>1222</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>单病种系统筛选出符合单病种的患者，发消息提醒主管医生进行上报</td>
</tr>
<tr>
<td>药品断货提醒</td>
<td>1223</td>
<td>EpisodeID</td>
<td>自传科室</td>
<td>药品断货标识发生变化时，发送消息提醒相应的药房科室</td>
</tr>
<tr>
<td>药品直送提醒</td>
<td>1224</td>
<td>EpisodeID</td>
<td>自传科室</td>
<td>药品直送标识发生变化时，发送消息提醒相应的药房科室</td>
</tr>
<tr>
<td>药品调价通知</td>
<td>1225</td>
<td></td>
<td>全体用户</td>
<td>药品调价后，给全体用户发送药品调价信息</td>
</tr>
<tr>
<td>新开静配医嘱</td>
<td>1226</td>
<td>EpisodeID,OrdItemId</td>
<td>医嘱接收科室用户</td>
<td>有新开静配医嘱时，提醒静配中心</td>
</tr>
<tr>
<td>血糖预警</td>
<td>1227</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>护士录入血糖时，当达到预警值，系统自动发消息提醒主管医生</td>
</tr>
<tr>
<td>营养科会诊</td>
<td>1228</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>患者病历营养筛查表得分大于等于3分发消息给临床医生提醒临床医生需要营养科会诊</td>
</tr>
<tr>
<td>营养科会诊</td>
<td>1229</td>
<td>EpisodeID</td>
<td>营养科</td>
<td>患者病历营养筛查表得分大于等于3分发消息给营养科医生提示该名患者得分大于等于3分需会诊</td>
</tr>
<tr>
<td>DRGS预警</td>
<td>1230</td>
<td>EpisodeID</td>
<td>主治医生医疗单元</td>
<td>DRGS预警消息提醒主管医生医疗单元</td>
</tr>
<tr>
<td>病案滞归</td>
<td>1231</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>存在滞归病历，病案室给主管医生发送消息进行提醒   --标准版 <code>病案管理组</code></td>
</tr>
<tr>
<td>VTE填报(护士)</td>
<td>1232</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>病人入院后，如果年龄大于14岁，发消息提醒病区护士，填报后置为已处理</td>
</tr>
<tr>
<td>VTE填报(医生)</td>
<td>1233</td>
<td>EpisodeID</td>
<td>主治医师医疗单元</td>
<td>护士填报完vte后，发消息提醒医生，填报后置为已处理</td>
</tr>
<tr>
<td>危急值需复查</td>
<td>1234</td>
<td>EpisodeID</td>
<td>发送者</td>
<td>医生在处理危急值消息时，设置一复查时间，到时间时发消息提醒自己</td>
</tr>
<tr>
<td>非计划入院</td>
<td>1235</td>
<td>EpisodeID</td>
<td>高级：医务科</td>
<td>院登记的时候如果是非计划入院的患者要给医务科发一条消息</td>
</tr>
<tr>
<td>病案归档提醒</td>
<td>1236</td>
<td>EpisodeID</td>
<td>高级：病案室</td>
<td>当医生点击病案首页上的送病案室按钮后，向病案室发送消息，病案室点击此消息可以直接打开相应的病案首页</td>
</tr>
<tr>
<td>材料请求单审核不通过</td>
<td>1237</td>
<td></td>
<td>自传</td>
<td>材料请单审核不通过时发消息通知</td>
</tr>
<tr>
<td>固定资产出库</td>
<td>1238</td>
<td></td>
<td>自传</td>
<td>第三方固定资产出库信息要在消息里面有显示，包含出库人、出库资产名称、出库科室、出库日期</td>
</tr>
<tr>
<td>物资出库</td>
<td>1239</td>
<td></td>
<td>自传</td>
<td>第三方物资出库信息要在消息里面有显示，包含出库人、出库资产名称、出库科室、出库日期</td>
</tr>
<tr>
<td>投诉信息</td>
<td>1240</td>
<td></td>
<td>自传</td>
<td>第三方投诉管理系统投诉信息要在消息里面有显示，包含投诉人、投诉日期、投诉医生</td>
</tr>
<tr>
<td>不良事件审核结果</td>
<td>1241</td>
<td></td>
<td>自传</td>
<td>第三方不良事件上报后，最后审核结果发消息提醒医生</td>
</tr>
<tr>
<td>感染标志物阳性</td>
<td>1242</td>
<td>EpisodeID</td>
<td>科室医生与病区护士</td>
<td>一些感染标志物的检验结果为阳性时发送消息提醒临床</td>
</tr>
<tr>
<td>停现场</td>
<td>1243</td>
<td></td>
<td>安全组门办</td>
<td>门诊医生停止新挂号</td>
</tr>
<tr>
<td>护理级别变更</td>
<td>1244</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>护理级别变更发送消息给主管医生</td>
</tr>
<tr>
<td>线上预约成功</td>
<td>1245</td>
<td></td>
<td>固定科室</td>
<td>线上预约成功后，需护士判断医生是否有空，否则取消患者的线上预约</td>
</tr>
<tr>
<td>付费处方发药</td>
<td>1246</td>
<td>EpisodeID</td>
<td>高级：药房</td>
<td>处方结算成功后，发送消息给药房提示有可发药处方</td>
</tr>
<tr>
<td>发药提醒</td>
<td>1247</td>
<td>EpisodeID</td>
<td>高级：住院西药房</td>
<td>智能药柜药品需要发药时，提醒药房去进行发药操作</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>

            ]]></description>
            <pubDate>Tue, 14 Sep 2021 02:11:18 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/xiao-xi-dong-zuo-lei-xing.html</guid>
        </item>
        <item>
            <title>消息平台</title>
            <link>http://blog.ttykx.com/post/xiao-xi-ping-tai.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-63b">消息平台</a><ul>
<li><a href="#toc-25f">1. 发送消息接口</a></li>
<li><a href="#toc-ff3">2. 消息处理</a><ul>
<li><a href="#toc-dcb">2.1 消息处理接口ExecAll</a></li>
<li><a href="#toc-4a8">2.2 消息处理接口Exec</a></li>
<li><a href="#toc-0b5">2.3 消息撤销接口Cancel</a></li>
</ul>
</li>
<li><a href="#toc-046">3. 配置说明</a><ul>
<li><a href="#toc-a54">3.1 接收对象</a></li>
<li><a href="#toc-2e0">3.2 消息动作类型</a></li>
<li><a href="#toc-a9b">3.3 高级接收对象配置</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div><h2><a id="toc-63b" class="anchor" href="#toc-63b"></a>消息平台</h2>
<h3><a id="toc-25f" class="anchor" href="#toc-25f"></a>1. 发送消息接口</h3>
<pre><code class="hljs lang-vb">d <span class="hljs-meta">##class(websys.DHCMessageInterface).Send(Context, ActionTypeCode, FromUserRowId, EpisodeId, OrdItemId, </span>
        ToUserRowId, OtherInfoJson, ToLocRowId, EffectiveDays , CreateLoc)</code></pre>
<table>
<thead>
<tr>
<th><em>参数名</em></th>
<th><em>说明</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>Context</td>
<td>发送的消息内容</td>
<td>可以为空，系统会根据就诊与医嘱id生成内容</td>
</tr>
<tr>
<td>ActionTypeCode</td>
<td>消息动作代码</td>
<td>如1002表示处方点评。具体值见<a href="#消息动作类型">动作类型</a></td>
</tr>
<tr>
<td>FromUserRowId</td>
<td>发送消息的用户Id</td>
<td>如果获取不到HIS用户Id, 可以传入&quot;^姓名&quot;</td>
</tr>
<tr>
<td>EpisodeId</td>
<td>病人就诊Id</td>
<td>如获取不到可以为空。</td>
</tr>
<tr>
<td>OrdItemId</td>
<td>医嘱Id</td>
<td>如获取不到可以为空</td>
</tr>
<tr>
<td>ToUserRowId</td>
<td>接收消息的用户Id</td>
<td>可以为空。为空走配置.</td>
</tr>
<tr>
<td>OtherInfoJson</td>
<td>其它信息</td>
<td>可以为空。格式为json<br> <code>&quot;link&quot;:&quot;xx.csp&quot;,linkParam:&quot;EpisodeId=1&amp;ReportId=002&quot;</code>,<br><code>&quot;dialogWidth&quot;:1000,&quot;dialogHeight&quot;:500,</code><br><code>&quot;target&quot;:&quot;_blank&quot;,&quot;BizObjId&quot;:1</code> ，其中属性均为可选项 具体值见<a href="#OtherInfoJson说明">OtherInfoJson说明</a></td>
</tr>
<tr>
<td>ToLocRowId</td>
<td>接收消息的科室 Id</td>
<td>可以为空。<br>格式&quot;1^2^3&quot; 发给科室所有医护人员<br> &quot;1^2^3|ToNurse&quot;发给科室所有护士<br>&quot;1^2^3|ToDoctor&quot;发给科室所有医生<br>&quot;1^2^3|Logon&quot;发给有此科室登录权限的所有用户<br>&quot;1^2^3|OnlyFlag&quot;仅作一个标识告诉我们这个消息 是想发给哪个科室的人的，<br>具体哪些人还需要在前面ToUserRowId参数传<br>此参数主要是为了解决一个发给A科的所有人的消息（比 如会诊），<br>但是某人拥有AB两科的权限，在登录B科时 不查看 A科消息</td>
</tr>
<tr>
<td>EffectiveDays</td>
<td>消息有效天数</td>
<td>可以为空。此有效天数级别高于动作类型所配置</td>
</tr>
<tr>
<td>CreateLoc</td>
<td>发送者科室</td>
<td>可以为空。传HIS中科室Id，可传“＾科室描述”</td>
</tr>
<tr>
<td><em>返回值</em></td>
<td><em>说明</em></td>
<td><em>备注</em></td>
</tr>
<tr>
<td>数字</td>
<td>大于0表示成功</td>
<td></td>
</tr>
<tr>
<td>-100^ErrorMsg</td>
<td>表示失败</td>
<td>如:-100^动作类型不存在</td>
</tr>
</tbody></table>
<p>消息动作类型</p>
<table>
<thead>
<tr>
<th>消息类型</th>
<th>代码</th>
<th>入参</th>
<th>接受对象</th>
<th>备注</th>
</tr>
</thead>
<tbody><tr>
<td>通知</td>
<td>2000</td>
<td></td>
<td></td>
<td>消息与病人无关，请用此类型</td>
</tr>
<tr>
<td>OA通知</td>
<td>2001</td>
<td></td>
<td></td>
<td>OA通知，用户传代码，程序单独转成用户ID</td>
</tr>
<tr>
<td>危急值</td>
<td>1000</td>
<td>EpisodeID</td>
<td>危急值平台配置</td>
<td>危急值平台通讯，响应对象的接口<br><code>危急值平台</code></td>
</tr>
<tr>
<td>感染</td>
<td>1001</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>处方点评(事后)</td>
<td>1002</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td><code>药房</code></td>
</tr>
<tr>
<td>处方审核(事前)</td>
<td>1003</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>检验报告取消审核</td>
<td>1004</td>
<td>EpisodeID</td>
<td>医疗单元、主管医生</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>检查报告状态变化</td>
<td>1005</td>
<td>EpisodeID</td>
<td>医疗单元</td>
<td>再次审核 <code>pacs</code></td>
</tr>
<tr>
<td>标本拒收</td>
<td>1006</td>
<td>OEOrdItemID</td>
<td>病区护士（主管护士，护士长）</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>微生物中间报告</td>
<td>1007</td>
<td>OEOrdItemID</td>
<td>医疗单元</td>
<td><code>检验</code> or <code>病理</code></td>
</tr>
<tr>
<td>病历质控</td>
<td>1008</td>
<td>EpisodeId</td>
<td>主管医生</td>
<td>时效性控制. <code>电子病历</code></td>
</tr>
<tr>
<td>终末质控</td>
<td>1009</td>
<td>EpisodeId</td>
<td>科室</td>
<td><code>电子病历</code></td>
</tr>
<tr>
<td>病人隔离</td>
<td>1010</td>
<td>EpisodeId</td>
<td>全病区护士与医生, 主管医生操作</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>疑似</td>
<td>1011</td>
<td>EpisodeId</td>
<td>主管医生</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>退回感染报告</td>
<td>1012</td>
<td>EpisodeId</td>
<td>写报告人（主动传入）</td>
<td><code>医政</code></td>
</tr>
<tr>
<td>检验报告再次审核</td>
<td>1013</td>
<td>OEOrdItemID</td>
<td>医疗单元、主管医生</td>
<td><code>检验</code></td>
</tr>
<tr>
<td>会诊</td>
<td>1014</td>
<td>OEOrdItemID</td>
<td>单独指定</td>
<td><code>护士站</code></td>
</tr>
<tr>
<td>病案迟归</td>
<td>1015</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td>用来提醒医生病案没有上交给病案室的 <code>医政管理组</code></td>
</tr>
<tr>
<td>护士回退</td>
<td>1016</td>
<td>OEOrdItemID</td>
<td>下医嘱医生</td>
<td><code>护士站</code></td>
</tr>
<tr>
<td>病案回收失败</td>
<td>1017</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td><code>医政管理组</code></td>
</tr>
<tr>
<td>传染病未报</td>
<td>1018</td>
<td>OEOrdItemID</td>
<td>主管医生</td>
<td><code>医政管理组</code></td>
</tr>
<tr>
<td>皮试结果</td>
<td>1019</td>
<td>OEOrdItemID</td>
<td>主管医生/就诊科室</td>
<td><code>护士站</code></td>
</tr>
<tr>
<td>维修提醒</td>
<td>1020</td>
<td>自传用户串</td>
<td></td>
<td></td>
</tr>
<tr>
<td>计量检测</td>
<td>1021</td>
<td></td>
<td>自传用户串</td>
<td></td>
</tr>
<tr>
<td>设备保修</td>
<td>1022</td>
<td></td>
<td>自传用户串</td>
<td></td>
</tr>
<tr>
<td>资质证书</td>
<td>1023</td>
<td></td>
<td>自传用户串</td>
<td></td>
</tr>
<tr>
<td>入库单待审核</td>
<td>1024</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>出库单待审核</td>
<td>1025</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>转移入库待接收</td>
<td>1026</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>退货单待审核</td>
<td>1027</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>调价单待审核</td>
<td>1028</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)(仅待审核,不判断生效与否)</td>
</tr>
<tr>
<td>药品信息待审核</td>
<td>1029</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>库存调整单待审核</td>
<td>1030</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>库存报损单待审核</td>
<td>1031</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>库存请求单出库</td>
<td>1032</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>采购计划待审核</td>
<td>1033</td>
<td></td>
<td>自传用户串</td>
<td><code>药房</code>(2016-03-08新增)</td>
</tr>
<tr>
<td>药物不良反应退回</td>
<td>1034</td>
<td>EpisodeID</td>
<td>填报医生</td>
<td><code>药房</code>(2016-03-16 新增)</td>
</tr>
<tr>
<td>紧急会诊</td>
<td>1035</td>
<td>OEOrdItemID</td>
<td>单独指定</td>
<td><code>护士站</code>(2016-03-29 新增)</td>
</tr>
<tr>
<td>配血</td>
<td>1036</td>
<td>OEOrdItemID</td>
<td>某个输液室的输液的护士(单独指定)</td>
<td>血库，<code>检验</code>(2016-05-10 新增)</td>
</tr>
<tr>
<td>发血</td>
<td>1037</td>
<td>OEOrdItemID</td>
<td>某个输液室的输液的护士(单独指定)</td>
<td>血库，<code>检验</code>(2016-05-10 新增)</td>
</tr>
<tr>
<td>取血通知</td>
<td>1038</td>
<td>OEOrdItemID</td>
<td>某个输液室的输液的护士(单独指定)</td>
<td>血库，<code>检验</code>(2016-05-10 新增)</td>
</tr>
<tr>
<td>手术通知</td>
<td>1039</td>
<td>EpisodeID</td>
<td>病区护士（主管护士，护士长）</td>
<td><code>手麻组</code>(2016-05-24,新增） 增加一个呼叫准备功能，手术室选中患者，给主管护士发送消息，消息级别为紧急，信息内容为：请给某床+姓名+住院号+做术前准备</td>
</tr>
<tr>
<td>检查取消接收</td>
<td>1040</td>
<td>OEOrdItemID</td>
<td>医疗单元或主管医生</td>
<td><code>检查组</code>(2016-05-24,新增)</td>
</tr>
<tr>
<td>有新医嘱</td>
<td>1041</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td><code>医生站</code></td>
</tr>
<tr>
<td>今日需续方</td>
<td>1042</td>
<td></td>
<td>管床医生</td>
<td><code>医生站</code></td>
</tr>
<tr>
<td>病历授权申请</td>
<td>1043</td>
<td>EpisodeID</td>
<td>病案室所有人</td>
<td><code>电子病历</code>—医生申请</td>
</tr>
<tr>
<td>处方审核申诉</td>
<td>1044</td>
<td>EpisodeID 主管医生</td>
<td>药房</td>
<td></td>
</tr>
<tr>
<td>危急值重发</td>
<td>1045</td>
<td>EpisodeID</td>
<td>自拼userid</td>
<td><code>基础平台</code>，如果15分钟内没有处理危急值，消息重发给医务科</td>
</tr>
<tr>
<td>抗菌药物审核</td>
<td>1046</td>
<td>EpisodeID</td>
<td>自拼userid</td>
<td><code>医生站</code>, 提醒医生，读过就可以。</td>
</tr>
<tr>
<td>停诊诊间通知</td>
<td>1047</td>
<td>自拼userid</td>
<td><code>医生站</code>，如果医生停诊，门办则发消息给诊间护士，且护士读后给门办回执消息</td>
<td></td>
</tr>
<tr>
<td>拒绝发药申诉</td>
<td>1048</td>
<td>EpisodeID</td>
<td>自拼userid</td>
<td>药房发现处方有问题，拒绝发药后，医生再申诉或确认时发消息给药房所有人</td>
</tr>
<tr>
<td>日报自动结账</td>
<td>1049</td>
<td></td>
<td>自拼userid</td>
<td>收费员自动日结时，给组长发下消息</td>
</tr>
<tr>
<td>药房审核后医生停止</td>
<td>1050</td>
<td>EpisodeID,OrdItemID</td>
<td></td>
<td>药房审核医嘱之后医生又停医嘱的消息发送给药房</td>
</tr>
<tr>
<td>药房缺药</td>
<td>1051</td>
<td>EpisodeID</td>
<td></td>
<td>护士审核药品时，发现药品少了，发消息给科室医生.</td>
</tr>
<tr>
<td>电子病历签名审核</td>
<td>1052</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>给上级医师发消息签名的动作</td>
</tr>
<tr>
<td>手术申请</td>
<td>1053</td>
<td>EpisodeID，OrderItemID</td>
<td>手术室（传用户）</td>
<td><code>手麻组</code>(2016-12-14,新增)</td>
</tr>
<tr>
<td>手术拒绝</td>
<td>1054</td>
<td>EpisodeID</td>
<td>申请人（用户）</td>
<td><code>手麻组</code>(2016-12-14,新增)</td>
</tr>
<tr>
<td>危急值</td>
<td>1055</td>
<td>OrderItemID</td>
<td>配置成空</td>
<td>住院---接收为三级医师---某项目特殊需求</td>
</tr>
<tr>
<td>库存转移拒绝</td>
<td>1056</td>
<td></td>
<td>自己传入用户串</td>
<td><code>药房</code> 库存从A药房转移到另B药房，B药房拒绝转移，这时发消息给A药房</td>
</tr>
<tr>
<td>费用核查</td>
<td>1057</td>
<td></td>
<td>1</td>
<td><code>计费</code> 晚上滚任务出，出问题会发一消息给demo，demo点处理进入处理界面</td>
</tr>
<tr>
<td>特殊患者标记</td>
<td>1058</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>特殊患者标记、关闭 发消息提示主治医生</td>
</tr>
<tr>
<td>待审核医嘱</td>
<td>1059</td>
<td></td>
<td>业务串用户</td>
<td>待审核医嘱指实习医生开立的需要患者主管医生审核的医嘱。此处可以查看当前医生需要审核的医嘱信息。</td>
</tr>
<tr>
<td>护理提示</td>
<td>1060</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>护理提示指入院患者生活能力评分 &lt;70的提示。此处可以查看当前医生主管患者的3天内的护理提示信息</td>
</tr>
<tr>
<td>抗菌药物审核结果</td>
<td>1061</td>
<td>EpisodeID</td>
<td>自串UserId</td>
<td>抗菌药物审核结果通知给申请人</td>
</tr>
<tr>
<td>会诊完成提示</td>
<td>1062</td>
<td>EpisodeID</td>
<td>自串UserId</td>
<td>特殊需求，会诊完成提示</td>
</tr>
<tr>
<td>抗菌药物会诊</td>
<td>1063</td>
<td>EpisodeID</td>
<td>自串UserId</td>
<td>抗菌药物审核那边的一个配置，如果能走护理的会诊就走那个，不能的话走这个</td>
</tr>
<tr>
<td>特殊患者消息</td>
<td>1064</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>特殊患者消息指对特殊患者记录的处理而发送的消息</td>
</tr>
<tr>
<td>电子病历签名</td>
<td>1065</td>
<td>EpisodeID,</td>
<td>自串UserId （主管医生，管床医生，及上级医生）</td>
<td>二版电子病历使用的签名消息（1052） 须处理类消息</td>
</tr>
<tr>
<td>首页质控提示</td>
<td>1066</td>
<td>EpisodeID</td>
<td>自串UserId（编目医生，建卡员， 财务，护士）</td>
<td>首页质控系统使用的质控消息</td>
</tr>
<tr>
<td>领药提醒</td>
<td>1067</td>
<td>无关</td>
<td>自串UserId（病区所有护士）</td>
<td>中心药房与病区距离很远，中心药房配好药后，给病区护士发消息，让护士过来领药</td>
</tr>
<tr>
<td>病历权限申请（同意）</td>
<td>1068</td>
<td>无关</td>
<td>自串</td>
<td>读消息，一般，</td>
</tr>
<tr>
<td>病历权限申请（拒绝）</td>
<td>1069</td>
<td>无关</td>
<td>自串</td>
<td>读消息，一般</td>
</tr>
<tr>
<td>医保登记审核</td>
<td>1070</td>
<td>EpisodeID</td>
<td>固定科室（医保科）</td>
<td>住院登记时，收费员将不能确定的病人信息推送给医保科所有用户，且等待医保登记审核 处理链接：websys.default.csp?WEBSYS.TCOMPONENT=INSUAudit</td>
</tr>
<tr>
<td>检验危急值</td>
<td>1071</td>
<td>EpisodeID</td>
<td>病区护士与科室医生</td>
<td>老的检验危急值是一个cs程序，维护工作量大，增加到消息平台中</td>
</tr>
<tr>
<td>用药建议</td>
<td>1072</td>
<td>OEOrdItem</td>
<td>下医嘱医生</td>
<td>临床药学填写用药建议后 发送给医生、护士</td>
</tr>
<tr>
<td>病人费用核查</td>
<td>1073</td>
<td>EpisodeID</td>
<td>护士</td>
<td>住院病人出院时，需要做财务审核，医嘱有问题 审核不通过就给病人一个标志 并通知护士站</td>
</tr>
<tr>
<td></td>
<td>1074</td>
<td></td>
<td></td>
<td>(苍州)</td>
</tr>
<tr>
<td>预防清洁手术</td>
<td>1075</td>
<td>OEOrdItem</td>
<td>下医嘱医生</td>
<td>预防清洁手术，抗生素发出下医嘱医生，医生处理，1续继使用，2停止医嘱重开</td>
</tr>
<tr>
<td>慢性管控提醒</td>
<td>1076</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>医保审核结果</td>
<td>1077</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>待审核药品医嘱</td>
<td>1078</td>
<td></td>
<td></td>
<td>医生有开新药品医嘱下来，提醒药房</td>
</tr>
<tr>
<td>多耐菌</td>
<td>1079</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>院感科发现多耐菌，向主治医生发送消息</td>
</tr>
<tr>
<td>病历复核退回</td>
<td>1080</td>
<td>EpisodeID</td>
<td></td>
<td>病历归档复核时，电子病历病历退回时，可以发消息给提交电子病历的医生，并且有退回原因。</td>
</tr>
<tr>
<td>物资材料审核</td>
<td>1081</td>
<td></td>
<td></td>
<td>新增的物资卫生材料，仓库会计新建字典后自动传送给物价员审核、调价（物价员电脑自动弹出提示框）</td>
</tr>
<tr>
<td>新增收费项医保对照</td>
<td>1082</td>
<td></td>
<td></td>
<td>物价员审核调价后自动传送到医保办进行报销数据维护（医保办电脑自动弹出提示框）</td>
</tr>
<tr>
<td>退费审核通过</td>
<td>1083</td>
<td></td>
<td></td>
<td>住院处和科室负责人增加会有退费审批操作，审批流程完全通过后，发送给退费申请人</td>
</tr>
<tr>
<td>退费审核拒绝</td>
<td>1084</td>
<td></td>
<td></td>
<td>住院处和科室负责人增加会有退费审批操作，拒绝后发送给退费申请人</td>
</tr>
<tr>
<td>停医嘱</td>
<td>1085</td>
<td>OEOrdItemIds</td>
<td></td>
<td>停医嘱时发送给住院护士</td>
</tr>
<tr>
<td>撤销医嘱</td>
<td>1086</td>
<td>OEOrdItemIds</td>
<td></td>
<td>撤销医嘱也发送给病区护士</td>
</tr>
<tr>
<td>传染病上报</td>
<td>1087</td>
<td></td>
<td></td>
<td>发送个公共卫生科</td>
</tr>
<tr>
<td>中草药提醒</td>
<td>1088</td>
<td></td>
<td></td>
<td>开立的中草药，最后一天提醒医生，是否继续用药。</td>
</tr>
<tr>
<td>项目到位资金</td>
<td>1089</td>
<td></td>
<td>自串用户Id（申请用户）</td>
<td>科研处对用户提交的数据审核，审核过了之后自动通知该条数据对应的用户</td>
</tr>
<tr>
<td>中检和验收</td>
<td>1090</td>
<td>无</td>
<td>自串用户Id（项目负责人）</td>
<td>科教处提醒项目负责人这个项目应该中检或者验收（科研组）</td>
</tr>
<tr>
<td>未审核处方</td>
<td>1091</td>
<td>EpisodeID</td>
<td>医嘱的接收科室的所有医护人员</td>
<td>医生开了药品处方后，需要发消息给医嘱接收科室，提示药房审核</td>
</tr>
<tr>
<td>住院审核</td>
<td>1092</td>
<td>EpisodeID</td>
<td>西院住院处</td>
<td>实现护士最终结算后，推送消息至住院处，告知住院处该患者可以进行住院审核</td>
</tr>
<tr>
<td>收费项增加修改</td>
<td>1093</td>
<td></td>
<td>医保办人员</td>
<td>增加或修改收费项后，发消息给医保办人员，登陆医系统后有弹出消息提醒，点击【须处理】按钮后进入目录对照界面(定位到收费项目)  处理链接insutarcontrast.csp</td>
</tr>
<tr>
<td>费别修改</td>
<td>1094</td>
<td></td>
<td>主管医生</td>
<td>入院时没带医保卡，自费办入院，中途转成医保费别时，医保登记成功后发消息给主管医生，告知读消息</td>
</tr>
<tr>
<td>处方拒绝</td>
<td>1095</td>
<td>EpisodeID,OrdItem</td>
<td>下医嘱医生</td>
<td>处方拒绝时发消息给医嘱的对应下医嘱医生(只读消息)</td>
</tr>
<tr>
<td>加急医嘱消息</td>
<td>1096</td>
<td></td>
<td>病区护士</td>
<td>加急医嘱的，通知护理  (1089)</td>
</tr>
<tr>
<td>不良事件上报</td>
<td>1097</td>
<td></td>
<td></td>
<td>不良事件上报发送给需要审核的人</td>
</tr>
<tr>
<td>病理标本拒收</td>
<td>1098</td>
<td>EpisodeID,OrdItem</td>
<td>科室医生与病区护士</td>
<td>病理系统拒收标本后，拒绝信息发给给his的医生与护士</td>
</tr>
<tr>
<td>追加术中抗生素</td>
<td>1099</td>
<td>EpisodeID</td>
<td>主管护士</td>
<td>增加一个呼叫术中追加抗生素的按钮功能，手术室选中患者，给主管护士发送信息，信息级别为紧急，信息内容为：请给某床+名字+住院号+追加术中抗生素</td>
</tr>
<tr>
<td>输血申请单接收</td>
<td>1100</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>输血申请单接收后通知医生</td>
</tr>
<tr>
<td>营养科关注的检验项目</td>
<td>1101</td>
<td>EpisodeID</td>
<td>营养科</td>
<td>检验结果中营养科关注的项目不正常时，发消息给营养科</td>
</tr>
<tr>
<td>肿瘤慢病未报</td>
<td>1102</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>慢病病理检测出恶性肿瘤提醒</td>
</tr>
<tr>
<td>HIV阳性</td>
<td>1103</td>
<td>EpisodeID,OrdItem</td>
<td>下医嘱医生</td>
<td>HIV阳性</td>
</tr>
<tr>
<td>有新开医嘱</td>
<td>1104</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>住院医师签完病历之后，消息提醒治疗医师（医嘱的接收科室对应的所有医生）</td>
</tr>
<tr>
<td>梅毒阳性</td>
<td>1105</td>
<td>EpisodeID,OrdItem</td>
<td>下医嘱医生</td>
<td>梅毒阳性</td>
</tr>
<tr>
<td>医技预约（护士）</td>
<td>1106</td>
<td>EpisodeID,OrdItem</td>
<td>护士</td>
<td>护士看到消息后，给病人及时打印预约单</td>
</tr>
<tr>
<td>医技预约(后勤)</td>
<td>1107</td>
<td>EpisodeID,OrdItem</td>
<td>临床服务部</td>
<td>临床服务部看到后，打印派遣单，派遣医院后勤人员在预约时间接住院病人。</td>
</tr>
<tr>
<td>床位预约</td>
<td>1108</td>
<td></td>
<td>病区护士</td>
<td>住院服务中心给病人预约床位后，在预约日期前一天给预约病区护士进行消息推送，病区护士将消息处理后回传给住院服务中心</td>
</tr>
<tr>
<td>输血申请</td>
<td>1109</td>
<td>EpisodeID,OrdItem</td>
<td>业务传</td>
<td>输血临床审批流程发送给一个人审核</td>
</tr>
<tr>
<td>多重耐药</td>
<td>1110</td>
<td>EpisodeID,OrdItemId</td>
<td>主治医生</td>
<td>检验医生发现多重耐药，发送信息给主治医生，主治医生收到信息，点击处理弹出医政的报卡界面(dhchai.ir.mrb.infmrbqry.csp)。</td>
</tr>
<tr>
<td>护士领药审核</td>
<td>1111</td>
<td>EpisodeID</td>
<td>业务传</td>
<td>护士领药审核后点击‘全区发送’后，给药房提示</td>
</tr>
<tr>
<td>自费转医保审核</td>
<td>1112</td>
<td>EpisodeID</td>
<td>医保审核安全组工号</td>
<td>住院患者自费转医保需要经过医保办审批，住院医生发起申请，医保审核安全组的工号进行审批，消息发给医保审核安全组的工号，他们点处理时候最好是能直接弹出审批的菜单，进行审批。配置处理url。</td>
</tr>
<tr>
<td>退药申请</td>
<td>1113</td>
<td>EpisodeID,OrdItemId</td>
<td></td>
<td>护士申请退药需要消息弹框提醒药房</td>
</tr>
<tr>
<td>留观超期</td>
<td>1114</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>留观病人超72小时，提醒医生，并要求医生处理。</td>
</tr>
<tr>
<td>过敏记录</td>
<td>1115</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>医生填写后，护士能自动收到，需要提示</td>
</tr>
<tr>
<td>报告修改</td>
<td>1116</td>
<td>EpisodeID,OrdItemId</td>
<td>主治医生</td>
<td>检查科修改过报告后，把修改过的内容发给病人主治医生，主治医生看过后，消息就消失。</td>
</tr>
<tr>
<td>停替诊</td>
<td>1117</td>
<td></td>
<td>自传</td>
<td>停替诊发消息通知挂号收费人员</td>
</tr>
<tr>
<td>贵重药品</td>
<td>1118</td>
<td>EpisodeID,OrdItemId</td>
<td>自传</td>
<td>贵重药品，在护士做领药审核的时候对药房人员进行提示</td>
</tr>
<tr>
<td>库存预警</td>
<td>1119</td>
<td></td>
<td></td>
<td>如果出现剩余库存超过药品维护库存下限了  则对药房药库相关人员进行消息提醒</td>
</tr>
<tr>
<td>疑似病例</td>
<td>1120</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>医政监测疑似病例时发送消息给科室医生</td>
</tr>
<tr>
<td>睡眠呼吸监测</td>
<td>1121</td>
<td>EpisodeID,OrdItemId</td>
<td>接收科室脑病科医生</td>
<td>医生开了医嘱：睡眠呼吸检测和睡眠呼吸监测过筛试验，需要自动发送消息到接受科室（脑病科）。接受科室看到消息，回信息给开单医生。开单医生再消息给接受科室</td>
</tr>
<tr>
<td>住院医嘱点评</td>
<td>1122</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>住院医嘱点评 发给医生</td>
</tr>
<tr>
<td>院感宣教</td>
<td>1123</td>
<td></td>
<td>自传</td>
<td>院感科针对性的对临床院感专员和医生进行知识宣教推送消息  <code>医务管理</code></td>
</tr>
<tr>
<td>检查报告取消审核</td>
<td>1124</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检查报告有误，取消审核发消息给主管医生</td>
</tr>
<tr>
<td>住院草药退药</td>
<td>1125</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>住院草药不允许退药，除非草药房把处方置为可退，护士那边才能做退药申请 药房置为可退时，发消息通知病区护士</td>
</tr>
<tr>
<td>降钙素原</td>
<td>1126</td>
<td>EpisodeID</td>
<td>自传</td>
<td>将首义院区内所有临床科室检验结果中的“降钙素原”项目数值大于“2”的消息弹窗发至重症医学科医生工作站</td>
</tr>
<tr>
<td>入库进价变动</td>
<td>1127</td>
<td></td>
<td>自传</td>
<td>物资入库时，如果进价跟上次入库进价有变动，则进行消息提醒</td>
</tr>
<tr>
<td>不入径审核通过</td>
<td>1128</td>
<td>EpisodeID</td>
<td>申请人（产品组自取）</td>
<td>临床路径不入径申请，科主任审核通过，通知下申请人</td>
</tr>
<tr>
<td>不入径审核拒绝</td>
<td>1129</td>
<td>EpisodeID</td>
<td>申请人（产品组自取）</td>
<td>临床路径不入径申请，科主任审核拒绝，通知申请人，申请人要进行入径操作，将消息置为处理</td>
</tr>
<tr>
<td>不良事件驳回</td>
<td>1130</td>
<td>EpisodeID</td>
<td>上报人（产品组自取）</td>
<td>不良事件驳回，通知上报人</td>
</tr>
<tr>
<td>护士拒绝医嘱</td>
<td>1131</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>护士处理医嘱，选择拒绝时，通知医生</td>
</tr>
<tr>
<td>拒绝发药</td>
<td>1132</td>
<td>EpisodeID,OrdItemId</td>
<td>病区护士</td>
<td>护士领药审核，药房拒绝发药，消息提示病区护士</td>
</tr>
<tr>
<td>分配处方</td>
<td>1133</td>
<td>EpisodeID</td>
<td>对应药师（产品组自取）</td>
<td>处方点评中，处方分配给药师后，消息提醒药师</td>
</tr>
<tr>
<td>病情证明书</td>
<td>1134</td>
<td>EpisodeID</td>
<td>分诊区护士</td>
<td>门诊医生在电子病历勾选门诊病情书后，保存病历后发消息通知分诊区护士</td>
</tr>
<tr>
<td>拒绝退药</td>
<td>1135</td>
<td>EpisodeID,OrdItemId</td>
<td>病区护士</td>
<td>药房拒绝退药，发送消息通知病区护士</td>
</tr>
<tr>
<td>拒绝发血</td>
<td>1136</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>拒绝发血后通知医生</td>
</tr>
<tr>
<td>转科审核</td>
<td>1137</td>
<td>EpisodeID</td>
<td>产品组自取</td>
<td>转科需要审核，发给审核人</td>
</tr>
<tr>
<td>迁档申请</td>
<td>1138</td>
<td></td>
<td>产品组自取</td>
<td>公共卫生系统中在A机构建立档案，B机构在建立这份档案的时候可以向A机构发送迁档申请 发送消息</td>
</tr>
<tr>
<td>需停医嘱</td>
<td>1139</td>
<td>EpisodeID，</td>
<td>科室医生</td>
<td>滚医嘱时，如果国家集中采购的药品超过8万元时不生成执行记录，需要提醒医生去停医嘱</td>
</tr>
<tr>
<td>VTE评估</td>
<td>1140</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>评估某个病人得静默血栓，发出消息。分数大4分，可能是高危，提醒医生。评估为医政界面为：dhc.jsp</td>
</tr>
<tr>
<td>上级药师点评</td>
<td>1141</td>
<td>EpisodeID</td>
<td>产品组自己传</td>
<td>上级药师抽取已经被点评的处方，进行审核，查看一次点评药师点评的是否合理，不合理发给一次点评的药师</td>
</tr>
<tr>
<td>住院超30天</td>
<td>1142</td>
<td>EpisodeID</td>
<td>科室医生与病区护士</td>
<td>病人住院30天，发送消息，提醒填写住院超过30天患者管理与评价表</td>
</tr>
<tr>
<td>手术即将开始</td>
<td>1143</td>
<td>EpisodeID</td>
<td>主管医生病区护士</td>
<td>发送即将进行手术消息给病区护士和主管医生，护士进行准备工作</td>
</tr>
<tr>
<td>手术即将结束</td>
<td>1144</td>
<td>EpisodeID</td>
<td>主管医生病区护士</td>
<td>发送即将结束手术消息给病区护士和主管医生，护士进行准备工作</td>
</tr>
<tr>
<td>抗菌药物超36小时</td>
<td>1145</td>
<td>EpisodeID,OrdItemId</td>
<td>科室医生</td>
<td>使用目的为预防的抗菌药物长期医嘱，如果距离该医嘱开立时间超过36小时，则需要发消息给患者主管医生，提醒医生“预防应用抗菌药物超过36小时，请停用或改为治疗性应用”</td>
</tr>
<tr>
<td>体检报告质量上报</td>
<td>1146</td>
<td>EpisodeID</td>
<td>产品组自传</td>
<td>审核体检报告，对有问题的报告进行质量上报</td>
</tr>
<tr>
<td>疑似传染病</td>
<td>1147</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>检验/放射结果中，符合意思传染病接口的，需要触发消息发送传染病疑似结果到医生</td>
</tr>
<tr>
<td>出径审核拒绝</td>
<td>1148</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>临床路径出径申请，科主任审核拒绝，通知申请人</td>
</tr>
<tr>
<td>出径审核通过</td>
<td>1149</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>主治医生、临床路径出径申请，科主任审核通过，通知申请人</td>
</tr>
<tr>
<td>护理病历审批</td>
<td>1150</td>
<td>EpisodeID</td>
<td>上级护士</td>
<td>当护理病历修改时，需求要上级护士审批修改。</td>
</tr>
<tr>
<td>精神病报卡状态异常</td>
<td>1151</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>严重精神疾病报卡状态异常</td>
</tr>
<tr>
<td>院感预警</td>
<td>1152</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>杏林系统出现院感预警值时，发送消息给主治医生</td>
</tr>
<tr>
<td>VTE健康宣教</td>
<td>1153</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>医生vte评估，如果勾选了健康宣教，需要给护士发消息</td>
</tr>
<tr>
<td>护理病历医生签名</td>
<td>1154</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>护士写完这个护理病历，保存后，医生站消息有提醒，之后医生在这个护理病历上签名</td>
</tr>
<tr>
<td>会诊通知</td>
<td>1155</td>
<td>EpisodeID</td>
<td>产品组自定</td>
<td>会诊申请时，同时发消息给医务部，与医院质量办公室  消息与会诊状态独立，新建消息类型</td>
</tr>
<tr>
<td>静配医嘱审查结果</td>
<td>1156</td>
<td>EpisodeID，OrdItemId</td>
<td>下医嘱医生</td>
<td>静配医嘱审查后，结果通知医生</td>
</tr>
<tr>
<td>急诊病人签床通知</td>
<td>1157</td>
<td>EpisodeID</td>
<td></td>
<td>住院管理处给急诊的新入院病人签床之后，发消息给急诊的护士，给病人办理结账，让病人住院</td>
</tr>
<tr>
<td>新开住院证患者</td>
<td>1158</td>
<td>EpisodeID</td>
<td>产品组传住院证要入科室</td>
<td>ToDoctor</td>
</tr>
<tr>
<td>床位预约成功</td>
<td>1159</td>
<td>EpisodeID</td>
<td>就诊科室</td>
<td>急诊的留观和抢救区的患者预约床位成功后，给开住院证的整个急诊科室发消息，提醒“该患者床位预约成功”</td>
</tr>
<tr>
<td>体检高危</td>
<td>1160</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>现在主要是体检高危的消息，体检的过程会上报检查严重的阳性体征，发消息给科室医生</td>
</tr>
<tr>
<td>申请恢复医嘱</td>
<td>1161</td>
<td>EpisodeID，OrdItemId</td>
<td>产品组自传护理部</td>
<td>护士撤销执行医嘱之后，申请恢复到撤销之前的已执行状态，发消息给护理部审核</td>
</tr>
<tr>
<td>多科会诊审核</td>
<td>1162</td>
<td>EpisodeID</td>
<td>产品组自取</td>
<td>多科会诊需要科主任审核，发送消息提醒</td>
</tr>
<tr>
<td>核酸检测结果</td>
<td>1163</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>增加【核酸检测】</td>
</tr>
<tr>
<td>远程会诊</td>
<td>1164</td>
<td>EpisodeID</td>
<td>科室医生</td>
<td>需求发起远程会诊消息，点击处理时切换到对应会诊科室与安全组系统</td>
</tr>
<tr>
<td>不良事件审核</td>
<td>1165</td>
<td>EpisodeID</td>
<td>产品组自取</td>
<td>不良事件审核   --标准版</td>
</tr>
<tr>
<td>检验标本接收</td>
<td>1166</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验标本接收</td>
</tr>
<tr>
<td>检验标本核收</td>
<td>1167</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验标本核收</td>
</tr>
<tr>
<td>检验报告审核</td>
<td>1168</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验报告审核</td>
</tr>
<tr>
<td>检验标本取消核收</td>
<td>1169</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>检验标本取消核收</td>
</tr>
<tr>
<td>血库拒收</td>
<td>1170</td>
<td>EpisodeID,OrdItemId</td>
<td>主管医生</td>
<td>血库拒收输血申请单</td>
</tr>
<tr>
<td>新开会诊医嘱</td>
<td>1171</td>
<td>EpisodeID,OrdItemId</td>
<td>自传 LocId</td>
<td>ToNurse</td>
</tr>
<tr>
<td>手术申请审核</td>
<td>1172</td>
<td>EpisodeID</td>
<td>科主任</td>
<td>住院所有手术申请均需要科主任审核，所以需要将申请信息发送给科主任</td>
</tr>
<tr>
<td>危急值转发</td>
<td>1173</td>
<td>EpisodeID,OrdItemId</td>
<td>产品组传</td>
<td>危急值转发给某医生  --危急值转发</td>
</tr>
<tr>
<td>病案编目</td>
<td>1174</td>
<td>EpisodeID</td>
<td>自传</td>
<td>病案编目时，有啥问题可以发消息通知主管医生</td>
</tr>
<tr>
<td>双向转诊</td>
<td>1175</td>
<td>EpisodeID</td>
<td>自传</td>
<td>卫生院医生通过双向转诊界面预约了转诊， 病人去科技城医院取号成功后，接诊后，住院后 将病人的取号信息传给卫生院的医生</td>
</tr>
<tr>
<td>检查结核审核</td>
<td>1176</td>
<td>EpisodeID</td>
<td>全体医护人员（医生与护士）</td>
<td>病人在做检查时，如果检查出结核的病灶，审核报告的时候需要推送消息给临床医生和护士，以前是手工的业务，结核指针会以纸质的单据送到医生处，现在需要在系统推送消息，告知医生病人有结核。</td>
</tr>
<tr>
<td>MDT会诊</td>
<td>1177</td>
<td>EpisodeID</td>
<td>自传</td>
<td>MDT会诊发送后给会诊医生发送的消息，会诊医生阅读消息后变已处理</td>
</tr>
<tr>
<td>麻醉医生医嘱</td>
<td>1178</td>
<td>EpisodeID,OrdItemId</td>
<td>手术护士、麻醉护士安全组</td>
<td>麻醉科医生开医嘱，需要提醒麻醉护士和手术室护士</td>
</tr>
<tr>
<td>RIS危急值</td>
<td>1179</td>
<td></td>
<td></td>
<td>医技科室发现危急值时，手动发送消息给医生。某项目要将危急值按检验检查发送不同消息类型，此类型作为检查危急值 20200827</td>
</tr>
<tr>
<td>体温升高预警</td>
<td>1180</td>
<td>EpisodeID</td>
<td>公共卫生科</td>
<td>患者体温高于37.3°C时，提醒公共卫生科</td>
</tr>
<tr>
<td>报卡退回</td>
<td>1181</td>
<td>EpisodeID</td>
<td>产品组自取上报人</td>
<td>院感办把报卡退回的时候通过消息平台提醒上报医生</td>
</tr>
<tr>
<td>会诊超时</td>
<td>1182</td>
<td>EpisodeID</td>
<td>产品组自传</td>
<td>会诊接收后超过12小时未完成 发消息提醒接收人</td>
</tr>
<tr>
<td>预防使用抗菌药物超三天</td>
<td>1183</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>院感发现预防使用抗菌药物超三天时消息提醒主管医生</td>
</tr>
<tr>
<td>临床路径入径提醒</td>
<td>1184</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>患者入径后发消息提醒护士</td>
</tr>
<tr>
<td>不良事件转抄</td>
<td>1185</td>
<td>EpisodeID</td>
<td>自传</td>
<td>不良事件的转抄业务</td>
</tr>
<tr>
<td>MDT会诊完成通知</td>
<td>1186</td>
<td>EpisodeID</td>
<td>自传</td>
<td>MDT会诊完成后通知各会诊医生</td>
</tr>
<tr>
<td>处方审核通过</td>
<td>1187</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>药房处方审核通过后，发消息提醒下医嘱医生，读即处理</td>
</tr>
<tr>
<td>退费申请</td>
<td>1188</td>
<td>EpisodeID</td>
<td>自传</td>
<td>门诊医生进行退费申请时发消息通知收费处</td>
</tr>
<tr>
<td>会诊审核</td>
<td>1189</td>
<td>EpisodeID</td>
<td>科主任</td>
<td>科主任待审核会诊消息，点开后，链接到会诊审核界面，会诊申请被审核后，该消息即消失</td>
</tr>
<tr>
<td>营养科关注医嘱</td>
<td>1190</td>
<td>EpisodeID,OrdItemId</td>
<td>营养科</td>
<td>临床科室开固定的某些医嘱，审核后，会自动给营养科发送消息</td>
</tr>
<tr>
<td>化疗方案</td>
<td>1191</td>
<td>EpisodeID,OrdItemId</td>
<td>发给上级医生</td>
<td>申请医生发化疗方案，给上级医生审核消息；绑定上级医生审核界面</td>
</tr>
<tr>
<td>化疗方案审核</td>
<td>1192</td>
<td>EpisodeID,OrdItemId</td>
<td>发送给药房药师</td>
<td>上级医生审核完消息后再发药房药师消息。绑定药房药师处理界面</td>
</tr>
<tr>
<td>化疗方案成功</td>
<td>1193</td>
<td>EpisodeID,OrdItemId</td>
<td>发送申请医生</td>
<td>药师审核完成后，发消息给申请医生</td>
</tr>
<tr>
<td>医保患者出院</td>
<td>1194</td>
<td>EpisodeID,OrdItemId</td>
<td>发送给医保办</td>
<td>医生审核出院医嘱后，给医保办发送消息， 然后医保办去医保审核界面审核相应的患者，医保患者才能办理结算</td>
</tr>
<tr>
<td>非计划再次手术</td>
<td>1195</td>
<td>EpisodeID</td>
<td>科室-医务科</td>
<td>非计划再次手术需要发送消息给医务科</td>
</tr>
<tr>
<td>不良事件未转归</td>
<td>1196</td>
<td>EpisodeID</td>
<td>自传</td>
<td>不良事件（跌倒、护理意外、药物外渗、非预期压疮）超过一个月未填转归，消息提醒护士长</td>
</tr>
<tr>
<td>外出检查未归</td>
<td>1197</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>如有已外出检查扫描，24小时内未返回的，消息提醒病区护士</td>
</tr>
<tr>
<td>药学咨询</td>
<td>1198</td>
<td></td>
<td>自传</td>
<td>临床药学、药学咨询，医生咨询后，药师界面增加消息提醒</td>
</tr>
<tr>
<td>死亡患者未报</td>
<td>1199</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>死亡患者填写了死亡医嘱后，未及时报卡发消息给主管医生，提醒及时报卡</td>
</tr>
<tr>
<td>超量用血提醒</td>
<td>1200</td>
<td>OrdItemID</td>
<td>下医嘱医生</td>
<td>超量用血提醒申请医生，补提输血申请单</td>
</tr>
<tr>
<td>医嘱审核</td>
<td>1201</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>实习医嘱审核</td>
</tr>
<tr>
<td>输血审核</td>
<td>1202</td>
<td>EpisodeID</td>
<td></td>
<td>大量用血审批-科主任审核</td>
</tr>
<tr>
<td>输血审核</td>
<td>1203</td>
<td>EpisodeID</td>
<td></td>
<td>大量用血审批-医务审核</td>
</tr>
<tr>
<td>用药建议申诉</td>
<td>1204</td>
<td>EpisodeID</td>
<td></td>
<td>临床药学，医生对药师填写的用药建议提出申诉后，发送消息给药师  ---标准版 <code>药房药库</code></td>
</tr>
<tr>
<td>慢病干预提醒</td>
<td>1205</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>慢病系统中对患者进行干预操作，将干预措施发消息提醒HIS主管医生</td>
</tr>
<tr>
<td>调停诊申请</td>
<td>1206</td>
<td></td>
<td></td>
<td>医生调停诊发消息通知门诊办进行审核</td>
</tr>
<tr>
<td>手术排班成功</td>
<td>1207</td>
<td>EpisodeID</td>
<td></td>
<td>手麻系统进行手术排班成功后，提醒手术医师</td>
</tr>
<tr>
<td>特抗药会诊</td>
<td>1208</td>
<td>EpisodeID</td>
<td></td>
<td>特殊级抗菌药物会诊要和普通会诊区分开</td>
</tr>
<tr>
<td>三病筛查提醒</td>
<td>1209</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>B超宫内早孕、宫内单活胎或宫内双活胎、宫内晚孕；检验血(HCG&gt; 5mIU/ml)或尿HCG(+) 发送消息提醒主管医生  联系患者到医院三病筛查    医生开三病筛查医嘱或某授权人选择终止 方将消息置为已处理</td>
</tr>
<tr>
<td>日间手术通知</td>
<td>1210</td>
<td>EpisodeID，OrdItemId</td>
<td></td>
<td>日间手术流程--1.增加发送手术通知功能，发送的内容可以面向病人（上下午不同）、主刀、麻师，发送内容可以在基础平台中维护</td>
</tr>
<tr>
<td>换床通知</td>
<td>1211</td>
<td>EpisodeID</td>
<td></td>
<td></td>
</tr>
<tr>
<td>转科通知</td>
<td>1212</td>
<td>EpisodeID</td>
<td></td>
<td></td>
</tr>
<tr>
<td>急诊手术申请</td>
<td>1213</td>
<td>EpisodeID</td>
<td></td>
<td>医生申请手术后，发消息给手术室护士，请求手术排班</td>
</tr>
<tr>
<td>危急值特殊原因结束审核</td>
<td>1214</td>
<td>EpisodeID</td>
<td></td>
<td>危急值医生可以选则特殊原因将危急值置为结束，而不需要走正常的处理复查流程，需要提醒职能部门审核</td>
</tr>
<tr>
<td>危急值特殊原因结束审核结果</td>
<td>1215</td>
<td>EpisodeID</td>
<td></td>
<td>危急值特殊原因结束职能部门审核结果通知给置标志人</td>
</tr>
<tr>
<td>新的治疗申请</td>
<td>1216</td>
<td>EpisodeID,OrdItemId</td>
<td>医嘱接收科室技师</td>
<td>医生给患者开治疗申请后，消息提醒医嘱接收科室</td>
</tr>
<tr>
<td>限制用药医嘱审核结果</td>
<td>1217</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>医保办与医务部对限制用药的医嘱审核结果，消息提醒开医嘱医生</td>
</tr>
<tr>
<td>有新中草药处方</td>
<td>1218</td>
<td>EpisodeID</td>
<td>中药房</td>
<td>医生新开草药处方时，提醒中药房</td>
</tr>
<tr>
<td>医技预约</td>
<td>1219</td>
<td>EpisodeID,OrdItemId</td>
<td>下医嘱医生</td>
<td>医技预约后发消息提醒医生</td>
</tr>
<tr>
<td>会诊驳回</td>
<td>1220</td>
<td>EpisodeID</td>
<td>自传</td>
<td>会诊审核驳回后，增加消息推送功能，推送给申请医师，当前会诊已驳回并显示驳回原因--标准版 <code>新产品组</code></td>
</tr>
<tr>
<td>会诊拒收</td>
<td>1221</td>
<td>EpisodeID</td>
<td>自传</td>
<td>会诊拒收，增加消息推送功能，推送给申请医师，会诊已拒收--标准版 <code>新产品组</code></td>
</tr>
<tr>
<td>单病种上报提醒</td>
<td>1222</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>单病种系统筛选出符合单病种的患者，发消息提醒主管医生进行上报</td>
</tr>
<tr>
<td>药品断货提醒</td>
<td>1223</td>
<td>EpisodeID</td>
<td>自传科室</td>
<td>药品断货标识发生变化时，发送消息提醒相应的药房科室</td>
</tr>
<tr>
<td>药品直送提醒</td>
<td>1224</td>
<td>EpisodeID</td>
<td>自传科室</td>
<td>药品直送标识发生变化时，发送消息提醒相应的药房科室</td>
</tr>
<tr>
<td>药品调价通知</td>
<td>1225</td>
<td></td>
<td>全体用户</td>
<td>药品调价后，给全体用户发送药品调价信息</td>
</tr>
<tr>
<td>新开静配医嘱</td>
<td>1226</td>
<td>EpisodeID,OrdItemId</td>
<td>医嘱接收科室用户</td>
<td>有新开静配医嘱时，提醒静配中心</td>
</tr>
<tr>
<td>血糖预警</td>
<td>1227</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>护士录入血糖时，当达到预警值，系统自动发消息提醒主管医生</td>
</tr>
<tr>
<td>营养科会诊</td>
<td>1228</td>
<td>EpisodeID</td>
<td>主管医生</td>
<td>患者病历营养筛查表得分大于等于3分发消息给临床医生提醒临床医生需要营养科会诊</td>
</tr>
<tr>
<td>营养科会诊</td>
<td>1229</td>
<td>EpisodeID</td>
<td>营养科</td>
<td>患者病历营养筛查表得分大于等于3分发消息给营养科医生提示该名患者得分大于等于3分需会诊</td>
</tr>
<tr>
<td>DRGS预警</td>
<td>1230</td>
<td>EpisodeID</td>
<td>主治医生医疗单元</td>
<td>DRGS预警消息提醒主管医生医疗单元</td>
</tr>
<tr>
<td>病案滞归</td>
<td>1231</td>
<td>EpisodeID</td>
<td>主治医生</td>
<td>存在滞归病历，病案室给主管医生发送消息进行提醒   --标准版 <code>病案管理组</code></td>
</tr>
<tr>
<td>VTE填报(护士)</td>
<td>1232</td>
<td>EpisodeID</td>
<td>病区护士</td>
<td>病人入院后，如果年龄大于14岁，发消息提醒病区护士，填报后置为已处理</td>
</tr>
<tr>
<td>VTE填报(医生)</td>
<td>1233</td>
<td>EpisodeID</td>
<td>主治医师医疗单元</td>
<td>护士填报完vte后，发消息提醒医生，填报后置为已处理</td>
</tr>
<tr>
<td>危急值需复查</td>
<td>1234</td>
<td>EpisodeID</td>
<td>发送者</td>
<td>医生在处理危急值消息时，设置一复查时间，到时间时发消息提醒自己</td>
</tr>
<tr>
<td>非计划入院</td>
<td>1235</td>
<td>EpisodeID</td>
<td>高级：医务科</td>
<td>院登记的时候如果是非计划入院的患者要给医务科发一条消息</td>
</tr>
<tr>
<td>病案归档提醒</td>
<td>1236</td>
<td>EpisodeID</td>
<td>高级：病案室</td>
<td>当医生点击病案首页上的送病案室按钮后，向病案室发送消息，病案室点击此消息可以直接打开相应的病案首页</td>
</tr>
<tr>
<td>材料请求单审核不通过</td>
<td>1237</td>
<td></td>
<td>自传</td>
<td>材料请单审核不通过时发消息通知</td>
</tr>
<tr>
<td>固定资产出库</td>
<td>1238</td>
<td></td>
<td>自传</td>
<td>第三方固定资产出库信息要在消息里面有显示，包含出库人、出库资产名称、出库科室、出库日期</td>
</tr>
<tr>
<td>物资出库</td>
<td>1239</td>
<td></td>
<td>自传</td>
<td>第三方物资出库信息要在消息里面有显示，包含出库人、出库资产名称、出库科室、出库日期</td>
</tr>
<tr>
<td>投诉信息</td>
<td>1240</td>
<td></td>
<td>自传</td>
<td>第三方投诉管理系统投诉信息要在消息里面有显示，包含投诉人、投诉日期、投诉医生</td>
</tr>
<tr>
<td>不良事件审核结果</td>
<td>1241</td>
<td></td>
<td>自传</td>
<td>第三方不良事件上报后，最后审核结果发消息提醒医生</td>
</tr>
<tr>
<td>感染标志物阳性</td>
<td>1242</td>
<td>EpisodeID</td>
<td>科室医生与病区护士</td>
<td>一些感染标志物的检验结果为阳性时发送消息提醒临床</td>
</tr>
<tr>
<td>停现场</td>
<td>1243</td>
<td></td>
<td>安全组门办</td>
<td>门诊医生停止新挂号</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>:sparkles:</td>
</tr>
</tbody></table>
<p>OtherInfoJson说明</p>
<table>
<thead>
<tr>
<th>键</th>
<th>示例值</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>linkParam</td>
<td>EpisodeId=1&amp;ReportId=002</td>
<td>链接参数，与动作类型配置的Link合成URL，便于修改csp路径。<br>如: 把危机值1000类型对应的处理链接维护为criticalvalue.trans.csp则消息明细对应的处理URL为criticalvalue.trans.csp?EpisodeId=1&amp;ReportId=002</td>
</tr>
<tr>
<td>link</td>
<td>criticalvalue.trans.csp?EpisodeId=1&amp;ReportId=002</td>
<td>业务处理或查看明细URL，级别高过动作类型配置的link</td>
</tr>
<tr>
<td>dialogWidth</td>
<td>1000 默认1000</td>
<td>打开处理界面时界面宽度。界面宽度为1000px 支持百分比表示占顶层宽度的百分比如80%(<code>HIS8.3</code>以后)</td>
</tr>
<tr>
<td>dialogHeight</td>
<td>500  默认 500</td>
<td>打开处理界面时界面高度。界面高度为500px支持百分比表示占顶层宽度的百分比如50%(<code>HIS8.3</code>以后)</td>
</tr>
<tr>
<td>target</td>
<td>默认空</td>
<td>目标窗口 如果为_blank 采用window.open新窗口方式打开，否则为顶层界面弹出hisui(easyui)模态框，内嵌iframe形式打开</td>
</tr>
<tr>
<td>BizObjId</td>
<td>1</td>
<td>业务系统ID，用于后续消息处理、撤销定位消息</td>
</tr>
</tbody></table>
<h3><a id="toc-ff3" class="anchor" href="#toc-ff3"></a>2. 消息处理</h3>
<h4><a id="toc-dcb" class="anchor" href="#toc-dcb"></a>2.1 消息处理接口ExecAll</h4>
<p>用于已知消息明细记录ID（1.发送时记录下来，2.在消息处打开的处理界面会传入明细记录ID），来处理消息</p>
<pre><code class="hljs lang-vb">w <span class="hljs-meta">##class(websys.DHCMessageInterface).ExecAll(MsgDetailsId, ExecUserDr, ExecDate, ExecTime)</span></code></pre>
<table>
<thead>
<tr>
<th><em>参数名</em></th>
<th><em>说明</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>MsgDetailsId</td>
<td>消息明细记录ID</td>
<td>不可为空. 点击【处理】按钮弹出的界面可以通过%request.Data(&quot;MsgDetailsId&quot;,1)拿到消息Id</td>
</tr>
<tr>
<td>ExecUserDr</td>
<td>处理用户ID</td>
<td>默认当前会话用户.  %session.Data(&quot;LOGON.USERID&quot;)</td>
</tr>
<tr>
<td>ExecDate</td>
<td>处理日期</td>
<td>默认当前日期.   +$h</td>
</tr>
<tr>
<td>ExecTime</td>
<td>处理时间</td>
<td>默认当前日期.  $p($h, &quot;,&quot;2)</td>
</tr>
<tr>
<td><em>返回值</em></td>
<td><em>说明</em></td>
<td><em>备注</em></td>
</tr>
<tr>
<td>数字</td>
<td>大于0表示成功</td>
<td></td>
</tr>
<tr>
<td>-100^ErrorMsg</td>
<td>表示失败</td>
<td>如:-100^ID错误</td>
</tr>
</tbody></table>
<p>示例</p>
<pre><code class="hljs lang-html"> <span class="hljs-tag">&lt;<span class="hljs-name">Server</span>&gt;</span>
     //从%request内拿消息明细id
     Set DetailsId = $g(%request.Data(&quot;MsgDetailsId&quot;,1))
 <span class="hljs-tag">&lt;/<span class="hljs-name">Server</span>&gt;</span>
 <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;text/javascript&quot;</span>&gt;</span><span class="javascript">
    <span class="hljs-keyword">var</span> DetailsId = <span class="hljs-string">&quot;#(DetailsId)#&quot;</span>;
    <span class="hljs-comment">// 关闭消息弹出窗口方法</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">closewin</span>(<span class="hljs-params"></span>)</span>{
        <span class="hljs-built_in">window</span>.close();
        top.HideExecMsgWin();
    }
    <span class="hljs-comment">/// 执行所有相关消息</span>
    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">SendExec</span>(<span class="hljs-params"></span>)</span>{
        tkMakeServerCall(<span class="hljs-string">&quot;websys.DHCMessageInterface&quot;</span>,<span class="hljs-string">&quot;ExecAll&quot;</span>,DetailsId) 
    }
 </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
<h4><a id="toc-4a8" class="anchor" href="#toc-4a8"></a>2.2 消息处理接口Exec</h4>
<p>用于相应业务处理完成后，将消息置为已处理，此方法为根据业务数据(消息类型、就诊、医嘱、业务ID)去查找消息数据，将查到的最新一条消息置为已处理。注意要避免同一业务数据发送多条消息。</p>
<pre><code class="hljs lang-vb">w <span class="hljs-meta">##class(websys.DHCMessageInterface).Exec(ToUserId, ActionType, EpisodeId, OEOrdItemId, ObjectId, ExecUserDr, ExecDate, ExecTime,OtherParams)</span></code></pre>
<table>
<thead>
<tr>
<th><em>参数名</em></th>
<th><em>说明</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>ToUserId</td>
<td>用户ID</td>
<td>为空处理所有人消息，不为空只处理此人消息</td>
</tr>
<tr>
<td>ActionType</td>
<td>消息类型代码</td>
<td>发送消息时传的动作代码</td>
</tr>
<tr>
<td>EpisodeId</td>
<td>病人就诊ID</td>
<td>发送消息时传的EpisodeId</td>
</tr>
<tr>
<td>OEOrdItemId</td>
<td>医嘱ID</td>
<td>发送消息时传的OEOrdItemId</td>
</tr>
<tr>
<td>ObjectId</td>
<td>业务ID</td>
<td>发送消息时OtherInfoJson的BizObjId属性值，再不传BizObjId时，此参数为OtherInfoJson包含的字符串</td>
</tr>
<tr>
<td>ExecUserDr</td>
<td>处理用户ID</td>
<td>默认当前会话用户.  %session.Data(&quot;LOGON.USERID&quot;)</td>
</tr>
<tr>
<td>ExecDate</td>
<td>处理日期</td>
<td>默认当前日期.   +$h</td>
</tr>
<tr>
<td>ExecTime</td>
<td>处理时间</td>
<td>默认当前日期.  $p($h, &quot;,&quot;2)</td>
</tr>
<tr>
<td>OtherParams</td>
<td>其它扩展参数</td>
<td>用于后续参数扩展，扩展多个用^分隔 默认空 注意此参数在8.4之后才有</td>
</tr>
<tr>
<td><em>返回值</em></td>
<td><em>说明</em></td>
<td><em>备注</em></td>
</tr>
<tr>
<td>数字</td>
<td>大于0表示成功</td>
<td></td>
</tr>
<tr>
<td>-100^ErrorMsg</td>
<td>表示失败</td>
<td>如:-100^ID错误</td>
</tr>
</tbody></table>
<p>OtherParams以^分隔每个位置说明</p>
<table>
<thead>
<tr>
<th><em>按^分隔位置</em></th>
<th><em>说明</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>只处理哪个人员类型的消息</td>
<td>为空处理所有<code>(CT_CarPrvTp.CTCPT_InternalType)[NURSE,DOCTOR,Technician,Pharmacist,Other]</code></td>
</tr>
<tr>
<td>2</td>
<td>审核拒绝标志(Y/N)</td>
<td>医呼通 需要审核通过或拒绝标志 Y通过接受 N拒绝驳回</td>
</tr>
<tr>
<td>3</td>
<td>审核备注拒绝原因</td>
<td>审核备注拒绝原因</td>
</tr>
</tbody></table>
<p>示例</p>
<pre><code class="hljs lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;text/javascript&quot;</span>&gt;</span><span class="javascript">
        <span class="hljs-comment">// 关闭消息弹出窗口方法</span>
        <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">closewin</span>(<span class="hljs-params"></span>)</span>{
                <span class="hljs-built_in">window</span>.close();
                top.HideExecMsgWin();
    }
        <span class="hljs-comment">/// 执行所有相关消息</span>
        <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">SendExec</span>(<span class="hljs-params"></span>)</span>{
                <span class="hljs-comment">//tkMakeServerCall(&quot;websys.DHCMessageInterface&quot;,&quot;Exec&quot;,&quot;&quot;,&quot;1000&quot;,&quot;&quot;,&quot;&quot;,&quot;PrescNO=102&quot;)          </span>
                tkMakeServerCall(<span class="hljs-string">&quot;websys.DHCMessageInterface&quot;</span>,<span class="hljs-string">&quot;Exec&quot;</span>,<span class="hljs-string">&quot;&quot;</span>,<span class="hljs-string">&quot;1000&quot;</span>,<span class="hljs-string">&quot;55&quot;</span>,<span class="hljs-string">&quot;55||1&quot;</span>,<span class="hljs-string">&quot;ReportId=102&amp;RepType=1&quot;</span>)
        }
</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></pre>
<h4><a id="toc-0b5" class="anchor" href="#toc-0b5"></a>2.3 消息撤销接口Cancel</h4>
<p>用于撤销已发送的消息<br>撤销判断逻辑：读即处理消息，有一人读过则不可撤销，其它有一人处理过则不可撤销</p>
<pre><code class="hljs lang-vb">w <span class="hljs-meta">##class(websys.DHCMessageInterface).Cancel(ToUserId, ActionType, EpisodeId, OEOrdItemId, ObjectId, ExecUserDr, ExecDate, ExecTime)</span></code></pre>
<table>
<thead>
<tr>
<th><em>参数名</em></th>
<th><em>说明</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>ToUserId</td>
<td>用户ID</td>
<td>无用参数（为方便，此方法参数设计和Exec一致）</td>
</tr>
<tr>
<td>ActionType</td>
<td>消息类型代码</td>
<td>发送消息时传的动作代码</td>
</tr>
<tr>
<td>EpisodeId</td>
<td>病人就诊ID</td>
<td>发送消息时传的EpisodeId</td>
</tr>
<tr>
<td>OEOrdItemId</td>
<td>医嘱ID</td>
<td>发送消息时传的OEOrdItemId</td>
</tr>
<tr>
<td>ObjectId</td>
<td>业务ID</td>
<td>发送消息时OtherInfoJson的BizObjId属性值，再不传BizObjId时，此参数为OtherInfoJson包含的字符串</td>
</tr>
<tr>
<td>ExecUserDr</td>
<td>处理用户ID</td>
<td>默认当前会话用户.  %session.Data(&quot;LOGON.USERID&quot;)</td>
</tr>
<tr>
<td>ExecDate</td>
<td>处理日期</td>
<td>默认当前日期.   +$h</td>
</tr>
<tr>
<td>ExecTime</td>
<td>处理时间</td>
<td>默认当前日期.  $p($h, &quot;,&quot;2)</td>
</tr>
<tr>
<td><em>返回值</em></td>
<td><em>说明</em></td>
<td><em>备注</em></td>
</tr>
<tr>
<td>数字</td>
<td>大于0表示成功</td>
<td></td>
</tr>
<tr>
<td>-100^ErrorMsg</td>
<td>表示失败</td>
<td>如:-100^ID错误</td>
</tr>
</tbody></table>
<h3><a id="toc-046" class="anchor" href="#toc-046"></a>3. 配置说明</h3>
<h4><a id="toc-a54" class="anchor" href="#toc-a54"></a>3.1 接收对象</h4>
<p>预定义的常见的接收对象，一般和就诊、医嘱相关</p>
<table>
<thead>
<tr>
<th><em>代码</em></th>
<th><em>名称</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>AdmDoctor</td>
<td>主管医生</td>
<td>患者就诊的主管医生或接诊医生</td>
</tr>
<tr>
<td>AdmDoctorMedUnit</td>
<td>主管医生医疗单元</td>
<td>患者就诊主管医生所属的医疗单元</td>
</tr>
<tr>
<td>OrderDoctor</td>
<td>下医嘱医生</td>
<td>下医嘱医生</td>
</tr>
<tr>
<td>OrderDoctorMedUnit</td>
<td>下医嘱医生医疗单元</td>
<td>下医嘱医生医疗单元</td>
</tr>
<tr>
<td>AdmLoc</td>
<td>就诊科室</td>
<td>患者就诊科室所关联的医护人员</td>
</tr>
<tr>
<td>WardDoctor</td>
<td>科室医生</td>
<td>患者就诊科室所关联的医生</td>
</tr>
<tr>
<td>WardNurse</td>
<td>病区护士</td>
<td>患者所在病区关联的护士</td>
</tr>
<tr>
<td>WardDoctorNurse</td>
<td>科室医生与病区护士</td>
<td>患者就诊科室和所在病区所关联的医护人员</td>
</tr>
<tr>
<td>OAUserCode</td>
<td>OA用户Code</td>
<td>特殊，配置为此对象时会将发送接口ToUserRowId参数传进来的值当作HIS用户工号处理</td>
</tr>
<tr>
<td>OrderRecLocDoc</td>
<td>医嘱接收科室医生</td>
<td>医嘱接收科室关联的医生</td>
</tr>
<tr>
<td>OrderRecLocNur</td>
<td>医嘱接收科室护士</td>
<td>医嘱接收科室关联的护士</td>
</tr>
<tr>
<td>TriageNurse</td>
<td>分诊区护士</td>
<td>门诊患者对应诊区关联的操作员</td>
</tr>
</tbody></table>
<h4><a id="toc-2e0" class="anchor" href="#toc-2e0"></a>3.2 消息动作类型</h4>
<table>
<thead>
<tr>
<th><em>字段</em></th>
<th>*说明 *</th>
</tr>
</thead>
<tbody><tr>
<td>类型代码</td>
<td>唯一值，发送消息时使用代码来区分消息类型，当新增消息类型时请联系我们给统一编排消息类型代码</td>
</tr>
<tr>
<td>类型名称</td>
<td>用于显示</td>
</tr>
<tr>
<td>接收对象</td>
<td>此消息类型的<a href="#接收对象">接收对象</a>，有些消息的接收人无法用常见接收对象描述，那么此字段可为空，具体接收人可以在发送消息时通过参数传入 <br>消息最终接收人由<code>接收对象</code>、<code>高级接收对象</code>、<code>抄送人</code>、<code>接口参数</code>共同决定取并集</td>
</tr>
<tr>
<td>发送方式</td>
<td>此消息类型可以通过哪种发送方式提醒用户，一般只实现了信息系统</td>
</tr>
<tr>
<td>消息重要性</td>
<td>区分消息的重要程度，非常重要和紧急消息在未处理时会自动弹出，其中非常重要消息在读过一次后不再弹出</td>
</tr>
<tr>
<td>有效天数</td>
<td>消息多久之后自动变为已处理，同时消息发送接口上也有有效天数字段，参数优先级高于配置</td>
</tr>
<tr>
<td>团队执行消息</td>
<td>1.<code>消息相互独立,读后自己消息不显示</code>消息读后即变为已处理状态 2.<code>需要处理</code>(在老版本中分为了：<code>有一人处理,消息全部消失</code>和<code>全员处理,消息才算处理</code>,但是实际上控制是业务组调用方法时通过参数控制的，所以合并为一个)表示此消息需要业务处理，即读消息时不改变处理状态</td>
</tr>
<tr>
<td>读消息回调方法</td>
<td>消息第一次变为已读时是否要调用业务组的某个方法，说明见<a href="#读消息回调方法">读消息回调方法</a></td>
</tr>
<tr>
<td>消息处理链接</td>
<td>消息关联业务的处理业务的链接，和发送消息时OtherInfoJson.linkParam共同组成完整链接，但是优先级低于OtherInfoJson.link <code>8.4</code>及之前版本配了此链接则消息必须为需要处理，后续版本则扩展了可以作为一个不需要处理消息的查看详细业务的链接</td>
</tr>
<tr>
<td>工具按钮</td>
<td><code>执行按钮</code>用于部分消息想实现一人处理全都消失，但是又无法提供业务处理界面或无法对接消息处理接口时</td>
</tr>
<tr>
<td>弹出间隔</td>
<td>消息未处理时多少分钟再次弹出，配置应为消息查询间隔的整数倍，为空时当作5分钟</td>
</tr>
<tr>
<td>音频文件</td>
<td>此类型消息播放audio目录下哪个音频进行提示，如危急值配置为1000.wav，为空时则播放您有新的消息提示声，为字符串NULL时则不播放音频</td>
</tr>
<tr>
<td>弹出样式</td>
<td>消息<code>处理</code>或<code>查看</code>弹出界面样式 <code>dialogWidth</code>宽 <code>dialogHeight</code>高 <code>target</code>窗口形式 <code>level</code>H表示此配置高于OtherInfoJson</td>
</tr>
<tr>
<td>需登录科室</td>
<td>由于用户可能有多个权限，就希望用户只有登录相应科室才看到相应科室的消息(后续有扩展安全组)，所以就有了目标角色的概念，发送时将目标角色记录下来，当此字段为Y时，则用户只有登录相应角色时才能查看到消息</td>
</tr>
<tr>
<td>出院字自动处理</td>
<td>当患者的状态为D时，是否将消息自动置为已处理</td>
</tr>
<tr>
<td>超过有效期不显示</td>
<td>消息因超期自动变为已处理时，是否能在已处理再看到</td>
</tr>
<tr>
<td>启用</td>
<td>消息类型是否启用</td>
</tr>
<tr>
<td>隐藏发送人</td>
<td>消息界面发送人显示为匿名</td>
</tr>
<tr>
<td>隐藏接收人</td>
<td>消息界面处理人，消息回复中，会显示为匿名</td>
</tr>
<tr>
<td>允许回复</td>
<td>此消息类型是否允许回复</td>
</tr>
</tbody></table>
<p>读消息回调方法
用户在消息列表中，点击一条未读消息时会将其记为已读，此时消息平台会去调用此消息类型维护的读后回调方法
在DHC-APP命名空间下   类名和方法名自取</p>
<pre><code class="hljs lang-vb">w <span class="hljs-meta">##class(FullClassName).MethodName(EpisodeId,OrdItemId,BizObjId,ReadUserRowId,ReadDate,ReadTime)</span></code></pre>
<table>
<thead>
<tr>
<th><em>参数名</em></th>
<th><em>说明</em></th>
<th><em>备注</em></th>
</tr>
</thead>
<tbody><tr>
<td>EpisodeId</td>
<td>病人就诊ID</td>
<td>发送消息时传的EpisodeId</td>
</tr>
<tr>
<td>OEOrdItemId</td>
<td>医嘱ID</td>
<td>发送消息时传的OEOrdItemId</td>
</tr>
<tr>
<td>BizObjId</td>
<td>业务ID</td>
<td>发送消息时OtherInfoJson的BizObjId属性值</td>
</tr>
<tr>
<td>ReadUserRowId</td>
<td>阅读用户ID</td>
<td></td>
</tr>
<tr>
<td>ReadDate</td>
<td>阅读日期</td>
<td></td>
</tr>
<tr>
<td>ReadTime</td>
<td>阅读时间</td>
<td></td>
</tr>
</tbody></table>
<h4><a id="toc-a9b" class="anchor" href="#toc-a9b"></a>3.3 高级接收对象配置</h4>
<p><code>8.4</code>版本扩展了高级接收对象配置，简单上使用时可以配置一些固定的科室、安全组作为接收对象，而不用再在程序里写死，复杂上使用是可以根据医院、就诊类型、科室、发送时段、发送方式配置不同的接收对象。</p>
<table>
<thead>
<tr>
<th><em>字段</em></th>
<th>*说明 *</th>
</tr>
</thead>
<tbody><tr>
<td>代码</td>
<td>此配置绑定到哪个消息类型代码上去</td>
</tr>
<tr>
<td>医院</td>
<td>为空或者某具体院区</td>
</tr>
<tr>
<td>就诊类型</td>
<td>为空或者某具体就诊类型</td>
</tr>
<tr>
<td>科室</td>
<td>为空或者某具体科室，医院、就诊类型、科室都是根据传进来的就诊进行判断的，具体值得优先级高于空值，当具体值没有满足条件得配置时才会去取空值得配置</td>
</tr>
<tr>
<td>开始时间</td>
<td>此配置适用时段的开始时间</td>
</tr>
<tr>
<td>结束时间</td>
<td>此配置适用时段的结束时间</td>
</tr>
<tr>
<td>发送方式</td>
<td>此配置适用的发送方式，适用时段和方式，多条配置都满足时则取多条</td>
</tr>
<tr>
<td>接收者类型</td>
<td><code>消息平台接收对象</code>,<code>科室(登录)</code>,<code>科室人员</code>,<code>科室医生</code>,<code>科室护士</code>,<code>用户</code>,<code>安全组</code></td>
</tr>
<tr>
<td>接收者</td>
<td>根据接收者类型选则的具体对象</td>
</tr>
<tr>
<td>目标角色</td>
<td>消息是想发送给哪个角色的，用户需要登录哪个角色才可以看到(需要消息类型处的<code>需登录科室</code>勾上)<br><code>自动判断</code>如科室医生就是某科室，用户就是任意角色，安全组就是某安全组<br><code>就诊科室</code>患者就诊科室 <br><code>下医嘱科室</code>下医嘱科室<br><code>任意角色</code>任意角色，即登录任何角色都可看到<br><code>其它</code>通过指定具体科室安全组</td>
</tr>
</tbody></table>

            ]]></description>
            <pubDate>Wed, 08 Sep 2021 11:00:26 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/xiao-xi-ping-tai.html</guid>
        </item>
        <item>
            <title>Caché自定义%session和%request变量,方便terminal调试用到此变量代码</title>
            <link>http://blog.ttykx.com/post/Cache-Mock-Session-Request.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-df3">前言</a></li>
<li><a href="#toc-5a0">BSP.SYS.COM.MockSession</a><ul>
<li><a href="#toc-ded">模拟简单的HIS会话</a></li>
<li><a href="#toc-0d9">根据会话ID模拟会话</a></li>
</ul>
</li>
<li><a href="#toc-8e0">BSP.SYS.COM.MockRequest</a><ul>
<li><a href="#toc-de6">通过键值对字符串模拟简单的请求数据</a></li>
</ul>
</li>
<li><a href="#toc-25f">总结</a></li>
</ul>
</div><h1><a id="toc-df3" class="anchor" href="#toc-df3"></a>前言</h1>
<p>后台代码中，有些时候会去使用%session和%request中的数据，但是在terminal调试时会发现这两个变量并没有定义，所以想到一个方法是自己去定义此变量，故而创建了<code>BSP.SYS.COM.MockSession</code>模拟<code>%CSP.Session</code>和<code>BSP.SYS.COM.MockRequest</code>模拟<code>%CSP.Request</code></p>
<h1><a id="toc-5a0" class="anchor" href="#toc-5a0"></a>BSP.SYS.COM.MockSession</h1>
<p>定义%session变量,模拟其Data数据</p>
<h2><a id="toc-ded" class="anchor" href="#toc-ded"></a>模拟简单的HIS会话</h2>
<pre><code class="hljs lang-vb">d <span class="hljs-meta">##class(BSP.SYS.COM.MockSession).MockSimpleHISSession(userId, locId, groupId)</span></code></pre>
<table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>userId</td>
<td>用户ID</td>
</tr>
<tr>
<td>locId</td>
<td>科室ID</td>
</tr>
<tr>
<td>groupId</td>
<td>安全组ID</td>
</tr>
</tbody></table>
<ol>
<li>terminal先调用方法，去定义并模拟出%session<pre><code class="hljs lang-vb"> d <span class="hljs-meta">##class(BSP.SYS.COM.MockSession).MockSimpleHISSession(10209,95,29)</span></code></pre>
</li>
<li>再去调用用到%session变量的方法即可<pre><code class="hljs lang-undefined"> ///下面方法仅为了展示Data数据
 d ##class(BSP.SYS.COM.MockSession).DisplaySession()</code></pre>
</li>
</ol>
<h2><a id="toc-0d9" class="anchor" href="#toc-0d9"></a>根据会话ID模拟会话</h2>
<pre><code class="hljs lang-vb">d <span class="hljs-meta">##class(BSP.SYS.COM.MockSession).MockSessionFromSessionId(sessionId)</span></code></pre>
<table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>sessionId</td>
<td>会话ID</td>
</tr>
</tbody></table>
<ol>
<li>通过数据库SMP,系统-CSP会话，查到会话ID</li>
<li>terminal调用方法，定义模拟%session<pre><code class="hljs lang-vb"> d <span class="hljs-meta">##class(BSP.SYS.COM.MockSession).MockSessionFromSessionId(&quot;fRhu7uxMCx&quot;)</span></code></pre>
</li>
<li>再去调用用到%session变量的方法即可<pre><code class="hljs lang-undefined"> ///下面方法仅为了展示Data数据
 d ##class(BSP.SYS.COM.MockSession).DisplaySession()</code></pre>
</li>
</ol>
<h1><a id="toc-8e0" class="anchor" href="#toc-8e0"></a>BSP.SYS.COM.MockRequest</h1>
<p>定义%request变量,模拟其Data、Cookies、MimeData、CgiEnvs数据，主要就只是Data数据</p>
<h2><a id="toc-de6" class="anchor" href="#toc-de6"></a>通过键值对字符串模拟简单的请求数据</h2>
<pre><code class="hljs lang-vb">d <span class="hljs-meta">##class(BSP.SYS.COM.MockRequest).MockSimpleRequest(keyValueStr)</span></code></pre>
<table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>keyValueStr</td>
<td>键值对字符串 key=val&amp;key2=val2形式</td>
</tr>
</tbody></table>
<ol>
<li>terminal先调用方法，去定义并模拟出%request<pre><code class="hljs lang-vb"> s str=<span class="hljs-string">&quot;EpisodeID=1&amp;PatientID=1&amp;DocName=李华&quot;</span>
 d <span class="hljs-meta">##class(BSP.SYS.COM.MockRequest).MockSimpleRequest(str)</span></code></pre>
</li>
<li>再去调用用到%request变量的方法即可<pre><code class="hljs lang-undefined"> ///下面方法仅为了展示Data数据
 d ##class(BSP.SYS.COM.MockRequest).DisplayRequest()</code></pre>
 <img src="https://img-blog.csdnimg.cn/20210526202902658.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5neGlhbmdfb3Vj,size_16,color_FFFFFF,t_70#pic_center" alt="模拟请求示例"></li>
</ol>
<h1><a id="toc-25f" class="anchor" href="#toc-25f"></a>总结</h1>
<p>上述方法自行定义了%session和%request变量，只是为了方便terminal调试用到了%session和%request数据的方法，请不要在正式代码中使用</p>
<p><a href="http://ttykx.com/filemgr/download/?id=BU9TTJCT1EZEWDIB82Z4N73LCVBQ84US">下载地址</a></p>

            ]]></description>
            <pubDate>Wed, 08 Sep 2021 10:59:24 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/Cache-Mock-Session-Request.html</guid>
        </item>
        <item>
            <title>HIS端调用第三方HTTP服务配置</title>
            <link>http://blog.ttykx.com/post/http-service-config-in-his.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-224">配置</a><ul>
<li><a href="#toc-405">固定参数、测试参数配置</a></li>
<li><a href="#toc-827">测试界面</a></li>
<li><a href="#toc-bfc">SSL/TLS 配置</a></li>
</ul>
</li>
<li><a href="#toc-1b6">代码调用</a><ul>
<li><a href="#toc-54e">接口</a></li>
<li><a href="#toc-274">小示例</a></li>
</ul>
</li>
<li><a href="#todo">Todo</a></li>
</ul>
</div><ol>
<li>配置服务的地址、参数等</li>
<li>提供调用方法，简化代码，开发只需要获取所需数据</li>
<li>测试接口</li>
</ol>
<!--more-->

<h3><a id="toc-224" class="anchor" href="#toc-224"></a>配置</h3>
<p><img src="http://blog.ttykx.com/static/upload/20210226/upload_904bcab432ad6c7999ea133a0f473a3c.png" alt="QQ截图20210226095639.png"></p>
<table>
<thead>
<tr>
<th>配置项</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>代码</td>
<td>唯一值，调用时使用，建议【产品组_模块_功能】格式</td>
</tr>
<tr>
<td>名称</td>
<td>服务中文名称</td>
</tr>
<tr>
<td>服务IP/域名</td>
<td>如127.0.0.1，<a href="http://www.baidu.com">www.baidu.com</a></td>
</tr>
<tr>
<td>端口</td>
<td>如80，443，8080</td>
</tr>
<tr>
<td>服务url</td>
<td>如 /a/b/c</td>
</tr>
<tr>
<td>固定参数</td>
<td>部分需要写死的参数</td>
</tr>
<tr>
<td>是否HTTPS</td>
<td>是否是HTTPS</td>
</tr>
<tr>
<td>HTTPS配置名</td>
<td>需要去Cache数据库SMP  系统 &gt; 安全管理 &gt; SSL/TLS 配置 &gt; 编辑 SSL/TLS 配置</td>
</tr>
<tr>
<td>验证服务器身份</td>
<td>是否校验服务器与服务器证书是否匹配</td>
</tr>
<tr>
<td>HTTP方法</td>
<td>POST/GET</td>
</tr>
<tr>
<td>数据类型</td>
<td>form-urlencoded/json</td>
</tr>
<tr>
<td>备注</td>
<td>备注说明</td>
</tr>
<tr>
<td>启用</td>
<td></td>
</tr>
<tr>
<td>超时(秒)</td>
<td></td>
</tr>
<tr>
<td>测试参数</td>
<td>用于生成测试界面</td>
</tr>
</tbody></table>
<h4><a id="toc-405" class="anchor" href="#toc-405"></a>固定参数、测试参数配置</h4>
<p><img src="http://blog.ttykx.com/static/upload/20210226/upload_88db7c7aa1abbe46d84552d4d585c7f8.png" alt="QQ截图20210226095707.png"></p>
<h4><a id="toc-827" class="anchor" href="#toc-827"></a>测试界面</h4>
<p>点击列表上的测试按钮，根据测试参数生成测试界面
<img src="http://blog.ttykx.com/static/upload/20210226/upload_efdadd2e14e7ecedbcf65d923a30daf7.png" alt="QQ截图20210226095724.png"></p>
<h4><a id="toc-bfc" class="anchor" href="#toc-bfc"></a>SSL/TLS 配置</h4>
<p>Cache数据库SMP  系统 &gt; 安全管理 &gt; SSL/TLS 配置 &gt; 编辑 SSL/TLS 配置 
<img src="http://blog.ttykx.com/static/upload/20210226/upload_4b0711afb2ed6ca649a3f295ab8a9dfe.png" alt="QQ截图20210226092413.png"></p>
<h3><a id="toc-1b6" class="anchor" href="#toc-1b6"></a>代码调用</h3>
<h4><a id="toc-54e" class="anchor" href="#toc-54e"></a>接口</h4>
<pre><code class="hljs lang-leaf"><span class="hljs-function"><span class="hljs-keyword">##</span><span class="hljs-title">class</span><span class="hljs-params">(<span class="hljs-variable">CF</span>.<span class="hljs-variable">BSP</span>.<span class="hljs-variable">SYS</span>.<span class="hljs-variable">SRV</span>.<span class="hljs-variable">Request</span>)</span></span>.Send(ReqCode, ByRef Params, Output ErrMsg)</code></pre><table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>ReqCode</td>
<td>配置代码</td>
</tr>
<tr>
<td>Params</td>
<td>服务所需参数，如果接口数据类型是form-urlencoded或者是简单的json(一层)，此参数可以多维数组；接口内部给组装，如果接口类型是复杂的json,此参数可以是自己处理好的标准JSON字符串</td>
</tr>
<tr>
<td>ErrMsg</td>
<td>错误信息</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>返回值</td>
<td>http服务响应内容</td>
</tr>
</tbody></table>
<h4><a id="toc-274" class="anchor" href="#toc-274"></a>小示例</h4>
<pre><code class="hljs lang-stata"><span class="hljs-comment">/// d ##class(BSP.TEST.Request).Test()</span>
ClassMethod <span class="hljs-keyword">Test</span>()
{
    s p(<span class="hljs-string">&quot;province&quot;</span>)=<span class="hljs-string">&quot;山东省&quot;</span>
    s p(<span class="hljs-string">&quot;desc&quot;</span>)=<span class="hljs-string">&quot;济&quot;</span>
    s ErrMsg=<span class="hljs-string">&quot;&quot;</span>
    s <span class="hljs-keyword">ret</span>=##<span class="hljs-keyword">class</span>(<span class="hljs-keyword">CF</span>.BSP.SYS.SRV.Request).Send(<span class="hljs-string">&quot;BSP_DATA_City&quot;</span>,.p,.ErrMsg)
    <span class="hljs-keyword">if</span> ErrMsg=<span class="hljs-string">&quot;&quot;</span> {
        w <span class="hljs-string">&quot;调用成功，响应内容：&quot;</span>,!
        w <span class="hljs-keyword">ret</span>,!    
    }<span class="hljs-keyword">else</span>{
        w <span class="hljs-string">&quot;调用失败，错误信息：&quot;</span>,!
        w <span class="hljs-keyword">ret</span>,!    
    }
}</code></pre><p><img src="http://blog.ttykx.com/static/upload/20210226/upload_cad1a8cae9eb43d0a133b3f31f4bcfdf.png" alt="QQ截图20210226100038.png"></p>
<h3><a id="todo" class="anchor" href="#todo"></a>Todo</h3>
<ol>
<li>日志？</li>
<li>响应内容做了一点简单的编码分析，但是可能还不完善</li>
<li>参数支持太简单？或者它的定位就应该是简单的http服务配置，不需要复杂化？</li>
</ol>

            ]]></description>
            <pubDate>Wed, 08 Sep 2021 10:58:07 GMT</pubDate>
            <guid>http://blog.ttykx.com/post/http-service-config-in-his.html</guid>
        </item>
    </channel>
</rss>
