Artigo
· Abr. 12 1104min de leitura

Enterprise Monitor e HealthShare

O Enterprise Monitor é um componente do Ensemble e pode ajudar as organizações a monitorar várias produções executadas em diferentes namespaces na mesma instância ou em namespaces executados em várias instâncias.

A documentação pode ser encontrada em:

http://docs.intersystems.com/ens20161/csp/docbook/DocBook.UI.Page.cls?KEY=EMONITOR_all#EMONITOR_enterprise

No Ensemble 2016.1, foram realizadas mudanças para esse utilitário funcionar com ambientes do HealthShare.

Este artigo mostrará o seguinte:

  • Como configurar o Enterprise Monitor para sites do HealthShare
  • Alguns recursos do Enterprise Monitor
  • Alguns recursos do Enterprise Message Viewer

Para este artigo, usei a seguinte versão do HealthShare:

Cache para Windows (x86-64) 2016.1 (Build 656U) Sex 11 Mar 2016 17:42:42 EST [Módulos do HealthShare:Core:14.02.2415 + Linkage Engine:14.02.2415 + Patient Index:14.02.2415 + Clinical Viewer:14.02.2415 + Active Analytics:14.02.2415] __

Configurar o Enterprise Monitor

Criar um novo namespace

O Enterprise Monitor é executado no seu próprio namespace e pode estar localizado em uma instância existente ou separada.  Neste artigo, ele será executado na mesma instância.

Para criar um namespace:

  • Acesse o Portal de Gerenciamento de Sistemas -> System Administration (Administração do sistema) -> Configuration (Configuração) -> System Configuration (Configuração do sistema) -> Namespaces
  • Clique no botão "Create New Namespace" (Criar novo namespace)

Neste exemplo, criei um namespace HSMONITOR.  Também criei um banco de dados chamado HSMONITOR

Captura de tela de como criar um namespace:

Editar o aplicativo da Web

Para instâncias do HealthShare, o aplicativo da Web define, por padrão, o "Session Cookie Path" (Caminho do cookie da sessão) como "/csp/healthshare/".   Se o namespace do Enterprise Monitor estiver em uma instância com outros namespaces do HealthShare, mude o "Session Cookie Path" do namespace do Enterprise Monitor para "/csp/healthshare/[namespace]/".

Para mudar o aplicativo da Web:

  • Acesse o Portal de Gerenciamento de Sistema -> System Administration -> Security (Segurança) -> Applications (Aplicativos) -> Web Applications (Aplicativos da Web)
  • Selecione o aplicativo da Web que foi criado para seu namespace do Enterprise Monitor. No meu caso, é "/csp/healthshare/hsmonitor".
  • Selecione o menu suspenso de "Session Cookie Path" e altere para "/csp/healthshare/[namespace]/". No meu caso, selecionei "/csp/healthshare/hsmonitor/".

Captura de tela de como alterar o aplicativo da Web:

Adicionar uma credencial

O Enterprise Monitor usa serviços da Web para se comunicar com diversos sistemas, então ele precisa de um nome de usuário/senha para validar a comunicação. O Ensemble consegue fazer isso usando credenciais. Todos os namespaces do HealthShare usam credenciais com o nome de usuário "HS_Services"

Vamos adicionar "HS_Services" às credenciais do namespace do Ensemble que criamos para o Enterprise Monitor.

Etapas para criar uma credencial:

  • Acesse o Portal de Gerenciamento de Sistemas ->  Ensemble
  • Selecione o namespace do Enterprise Monitor, se solicitado, ou mude o namespace usando o link "switch" (trocar) no topo do Portal de Gerenciamento de Sistemas.
  • Acesse Configure (Configurar) -> Credentials (Credenciais)
  • Clique no botão "New" (Novas)
  • Defina o ID como "HS_Services"
  • Defina "UserName" (Nome de usuário) como "HS_Services"
  • Defina "Password" como a senha que o "HS_Services" usa para os outros namespaces do HealthShare.

Captura de tela de como adicionar credenciais:

Criar uma produção

Em seguida, criamos uma produção que usa o serviço empresarial "Ens.Enterprise.MonitorService".  Essa é a produção que será executada no namespace do Enterprise Monitor que configuramos.

Confira a seguir a produção que criei.  Observe que ela estende "Ens.Enterprise.Production" e inclui um item de serviço empresarial, que foi adicionado (Ens.Enterprise.MonitorService).

Class HSMONITOR.MonitorProduction Extends Ens.Enterprise.Production
{
XData ProductionDefinition
{
<Production Name="HSMONITOR.MonitorProduction">
    <ActorPoolSize>2</ActorPoolSize>
    <Item Name="Ens.Enterprise.MonitorService" ClassName="Ens.Enterprise.MonitorService" PoolSize="1" />
</Production>
}

}

Depois disso, você pode iniciar a produção no namespace do Enterprise Monitor que você criou.  Nesse exemplo, iniciei o HSMONITOR.MonitorProduction no meu namespace HSMONITOR.

Adicionar um sistema empresarial

Agora que a produção está sendo executada, podemos adicionar os sistemas empresariais que queremos monitorar.

Para criar um novo sistema empresarial:

  • Acesse o Portal de Gerenciamento de Sistemas -> Ensemble
  • Confira se você está no namespace do Enterprise Monitor
  • Acesse Configure -> Enterprise Systems (Sistemas empresariais)
  • Clique no novo botão "New Connection" (Nova conexão)

Captura de tela dos sistemas empresariais:

Para adicionar uma nova conexão:

  • Insira o nome
  • Insira o endereço IP da Web
  • Insira o namespace
  • Insira o caminho para o serviço de aplicativo da Web
  • Insira as credenciais Soap
  • Clique no botão "Save" (Salvar).

Captura de tela de como adicionar uma conexão a HSREGISTRY:

Você pode adicionar vários sistemas empresariais para refletir seus ambientes do HealthShare.  É possível adicionar gateways de borda, gateways de acesso, outros componentes do HealthShare, como Personal Community, Patient Index, Health Insight, etc.

A maioria das informações do HealthShare está localizada no registro de serviços.

Coloquei meu namespace do Enterprise Monitor na mesma instância que o HSREGISTRY.

Escrevi e executei o seguinte código no meu namespace HSMONITOR para criar sistemas empresariais de forma automática com base nas informações localizadas no registro de serviços.

Código de amostra:

ClassMethod BuildEM()
{
                set tSaveNamespace = $namespace
                zn "HSREGISTRY"             

                set sql="select EndPoint,Name,Info from HS_Registry_Service.SOAP"
                set statement = ##class(%SQL.Statement).%New()
                set tSC = statement.%Prepare(sql)
                quit:$$$ISERR(tSC)
                set result = statement.%Execute()
                while result.%Next() {
                                set tEndPoint = result.EndPoint
                                set tName = result.Name
                                set tInfo = result.Info
                                If tName = "HSREGISTRY" set tName = ":"_tName
                                If tName = "HSPI" set tName = ":"_tName
                                If $p(tName,":",2) = "WebServices" set tName = ":"_tName
                                If tName = "HSCommunity.PIXv3.Consumer" set tName = ":HSCOMMUNITY"
                                Continue:$p(tName,":",2)=""
                                set tMCName = $p(tName,":",2)
                                set tMCNamespace = $p(tEndPoint,"/",6)
                                set tMCWebIP = tInfo
                                set tMCHomePath = "/"_$p(tEndPoint,"/",4,6)_"/"
                                set tMCServicePath = "/"_$p(tEndPoint,"/",4,7)_"/"
                                set aMC(tMCName)=$lb(tMCNamespace,tMCWebIP,tMCHomePath,tMCServicePath)
                }
                zn tSaveNamespace
                ///Now we have an array of namespaces, create Monitor entries
                set tName = ""
                do {
                  set tName=$O(aMC(tName))
                  if tName '="" {
                                set tMonitorClient = ##class(Ens.Enterprise.MonitorClient).%New()
                                set tMonitorClient.Name=tName 
                                set tMonitorClient.WebIPAddress=$list(aMC(tName),2) ;IP/Port
                                set tMonitorClient.Namespace=$list(aMC(tName),1) ;NameSpace
                                set tMonitorClient.HomePage="%25CSP.Portal.Home.zen"
                                set tMonitorClient.HomePath=$list(aMC(tName),3) ;"/csp/healthshare/[namespace]/"
                                set tMonitorClient.QueueThreshold=""
                                set tMonitorClient.ServicePath=$list(aMC(tName),4) ;"/csp/healthshare/[namespace]/services/"
                                set tMonitorClient.SOAPCredentials="HS_Services"
                                set tMonitorClient.SSLCheckServerIdentity="1"
                                set tMonitorClient.SSLConfig=""
                                set tMonitorClient.Version="2016.1.1.108.1."
                                set tSC=tMonitorClient.%Save()
                                w !,tName,": ",$system.Status.DisplayError(tSC)
                  }
                } while tName '= ""
                quit
}

Enterprise Monitor

Agora que temos entradas no sistema empresarial, você verá uma nova opção de menu no namespace do Enterprise Monitor do Ensemble.  Essa nova opção de menu será "Enterprise Monitor".

Captura de tela da nova opção de menu:

Ao selecionar "Enterprise Monitor", vemos o seguinte:

Agora podemos ver em um único local quais produções do HealthShare estão "Running" (em execução) ou "Stopped" (interrompidas), com links para as configurações das que estiverem em execução.

Ao selecionar uma linha, é possível ver os detalhes de cada ambiente.  Confira este exemplo:

Essa tela mostra detalhes sobre:

  • Conexões de entrada
  • Conexões de saída
  • Filas
  • Registro de eventos
  • Gráfico de atividades
  • Lista de mensagens do Ensemble

Você também pode adicionar métricas personalizadas.

Confira mais informações sobre o monitor de produções:

http://docs.intersystems.com/ens20161/csp/docbook/DocBook.UI.Page.cls?KEY=EMONITOR_production

Enterprise Message Viewer

Com o Enterprise Monitor configurado, você também pode conferir o Enterprise Message Viewer.

Neste exemplo, acesse "Patient Search" (Pesquisa de pacientes) no HSACCESS, faça uma consulta, selecione um paciente e veja as informações mostradas no Clinical Viewer.

Ao acessar o Enterprise Message Viewer, é possível ver todos os sistemas chamados e as informações que foram usadas para realizar essa ação do Clinical Viewer.

Agora há um único lugar para ver como as mensagens estão fluindo em todos os sistemas/namespaces no ambiente do HealthShare.

OBSERVAÇÃO:  esse utilitário Enterprise Message Viewer contém somente informações básicas do cabeçalho de mensagens do Ensemble.  Ele fornece links para os detalhes específicos da sessão e direciona você aos detalhes e rastreamentos da mensagem do Ensemble.

Conclusão

O Enterprise Monitor e o Enterprise Message Viewer são ferramentas novas no Ensemble que ajudarão os clientes do HealthShare a gerenciar os ambientes e ver fluxos de trabalho no HealthShare.

Enterprise Monitor:

  • Local único para ver quais ambientes estão em execução e quais foram interrompidos
  • Links para todas as configurações de produção no ambiente do HealthShare
  • Consulta dos detalhes de cada produção, incluindo
    • Conexões de entrada
    • Conexões de saída
    • Filas
    • Registro de eventos
    • Gráfico de atividades
    • Mensagens

Enterprise Message Viewer:

  • Visualização única de todas as mensagens no ambiente do HealthShare
Discussão (0)1
Entre ou crie uma conta para continuar