Nouvelle publication

Rechercher

Question
· 22 hr il y a

Special character appearing in downstream system but not seen in HL7 message.

Hi,

We're having an issue with some messages being sent to a downstream system from Healthshare.  Part of the free text in the NTE segment is displaying with special characters on the system front-end but is not present in the HL7 message that we send to them.  We are guessing that this is a result of some of the text being copied and pasted from something like MS Word. The '?' on their system is just representing an invalid character. 

Is anyone aware of a way to prevent this occurring? We are sending the messages using the 'cp1252' encoding.

 

 

Sent from us to system

 

What displays on the system front end

 

Thanks, 

Martin

2 nouveaux commentaires
Discussion (2)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Avr 24

InterSystems Ideas News #21

Hi Community!

Welcome to Issue #21 of the InterSystems Ideas newsletter! This edition highlights the latest news from the Ideas Portal, such as:

✓ General statistics
✓ Community Opportunity ideas

   Here are some March numbers for you. During this month, we had:

  • 19 new ideas
  • 1 implemented idea
  • 6 comments
  • 72 votes

👏 Thanks to everyone who contributed in any way to the Ideas Portal last month.

   In recent months, you've added several ideas that were categorized as Community Opportunity, which means that any member of the Developer Community is welcome to implement them and thus pave their way to the Hall of Fame! So here they are:


✨ Share your ideas, support your favorites with comments and votes, and bring the most interesting ones to life! 🙏

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Avr 24 3m de lecture

Mini Dica do Dia - Pré carregando a licença na Imagem Docker IRIS

Quem nunca passou pela situação de estar desenvolvendo um belo exemplo usando uma imagem Docker do IRIS e o processo de geração da imagem falhar no Dockerfile porque a licença sob a qual a imagem foi criada não contém certas permissões?

No meu caso, o que eu estava implantando no Docker é uma pequena aplicação que usa o tipo de dado Vector. Com a versão Community, isso não é um problema porque ela já inclui o Vector Search e o armazenamento de vetores. No entanto, quando troquei a imagem do IRIS para um IRIS convencional (o latest-cd), descobri que ao construir a imagem, incluindo as classes que ele havia gerado, retornou este erro:

9.505 ERROR #15806: Vector Search not permitted with current license
9.505   > ERROR #5030: An error occurred while compiling class 'Inquisidor.Object.LicitacionOS'
9.505 Compiling class Inquisidor.Object.Licitacion
9.505 ERROR #15806: Vector Search not permitted with current license
9.505   > ERROR #5030: An error occurred while compiling class 'Inquisidor.Object.Licitacion'
9.538 Compiling class Inquisidor.Message.LicitacionResponse

Esse erro me deixou confuso, porque eu, como uma pessoa obediente, havia definido no meu docker-compose.yml o parâmetro que indica onde minha licença válida está localizada:

  iris:
    init: true
    container_name: iris
    build:
      context: .
      dockerfile: iris/Dockerfile
    ports:
      - 52774:52773
      - 51774:1972
    volumes:
    - ./iris/shared:/iris-shared
    environment:
    - ISC_DATA_DIRECTORY=/iris-shared/durable
    command: --check-caps false --ISCAgent false --key /iris-shared/iris.key

Demorei um pouco para perceber que o problema era a imagem original que eu estava usando, e não a licença que eu tinha, como você pode ver, não sou a pessoa mais esperta nesse caso.

O problema estava no ponto em que eu importava minhas classes para a imagem padrão do IRIS.

RUN \
zn "%SYS" \
do ##class(SYS.Container).QuiesceForBundling() \
do ##class(Security.Users).UnExpireUserPasswords("*") \
set sc=##class(%SYSTEM.OBJ).Load("/opt/irisapp/DemoSetup.Utilities.cls","ck") \
set helper=##class(DemoSetup.Utilities).%New() \ 
do helper.EnableSSLSuperServer() \
do ##class(Security.Applications).Import("/ApplicationInquisidor.xml",.n) \
zn "INQUISIDOR" \
set sc = $SYSTEM.OBJ.LoadDir("/opt/irisapp/src/Inquisidor", "ck", , 1) \
set production = "Inquisidor.Production" \
set ^Ens.Configuration("csp","LastProduction") = production \
do ##class(Ens.Director).SetAutoStart(production) \

A compilação do código estava retornando o erro anterior. O que eu deveria fazer para corrigir isso? Foi muito simples: eu tive que enviar a nova licença para a imagem IRIS inicial e pedir para ela atualizar a licença na primeira linha dos comandos que eu estava usando.

O primeiro passo é mover a nova licença para o diretório /mgr da instalação, o que eu fiz com este código:

COPY --chown=$ISC_PACKAGE_MGRUSER:$ISC_PACKAGE_IRISGROUP /iris/iris.key /usr/irissys/mgr
RUN chmod +x /usr/irissys/mgr/iris.key

O caminho de instalação do IRIS na nossa imagem é /usr/irissys/mgr, e o caminho /iris/iris.key é o meu diretório local. Com a licença na imagem IRIS, eu só precisei dizer ao IRIS para atualizar sua licença, então eu modifiquei os comandos anteriores adicionando a seguinte declaração:

RUN \
zn "%SYS" \
do ##class(%SYSTEM.License).Upgrade() \

Et voilà! Agora eu tenho minha imagem IRIS com minha licença carregada antes de importar e compilar minhas classes. Sem mais erros de compilação.

Espero que seja útil para você!

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
InterSystems officiel
· Avr 24

As versões de manutenção 2024.1.4 e 2023.1.6 do InterSystems IRIS, IRIS for Health e HealthShare HealthConnect já estão disponíveis

As versões de manutenção 2024.1.4 e 2023.1.6 da plataforma de dados InterSystems IRIS® , InterSystems IRIS® for HealthTM, e HealthShare® Health Connect agora estão disponíveis para o público em geral (GA). Essas versões incluem as correções para o seguinte alerta emitido recentemente - Alerta: Queries SQL retornando resultados errados | InterSystems. Compartilhe seu feedback por meio da Comunidade de Desenvolvedores e assim construímos um produto melhor juntos. 

Documentação

Você pode encontrar as listas de alterações detalhadas e listas de verificação de atualizações nestas páginas:

Programa de Acesso Antecipado(EAPs)

Há muitos EAPs disponíveis agora. Confira esta página e inscreva-se para aqueles de seu interesse.

Como obter o software? 

Pacotes de instalação completas para ambos InterSystems IRIS e InterSystems IRIS for Health estão disponíveis através da página InterSystems IRIS Data Platform Full Kits do WRC. Kits do HealthShare Health Connect estão disponíveis através da página HealthShare Full Kits do WRC. Imagens de contêiner estão disponíveis através do InterSystems Container Registry. 

Disponibilidade e Informações do Pacote 

Esta versão inclui pacotes de instalação clássicos para todas as plataformas suportadas, bem como imagens de contêiner no formato Docker. Para obter uma lista completa, consulte o documento Plataformas Suportadas. Os números de compilação dessas Versões de Manutenção são: 2024.1.4.512.0 e 2023.1.6.809.0.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Discussion
· Avr 24

What is the best way to output JSON data in a REST API GET request?

Hi devs!

What is the best way to return JSON in IRIS for a GET request in a REST app?

This is how I do it now:

ClassMethod GetAllPersons() As %Stream.Object
{
    d ..%SetContentType("application/json")
    Set rset = ##class(dc.Sample.Person).ExtentFunc()

    set stream=##class(%Stream.TmpCharacter).%New()
    d stream.Write("[")
    if rset.%Next() {
        Set person = ##class(dc.Sample.Person).%OpenId(rset.ID)
        Do person.%JSONExportToStream(.stream)
    }
    While rset.%Next() {
        d stream.Write(",")
        Set person = ##class(dc.Sample.Person).%OpenId(rset.ID)
        Do person.%JSONExportToStream(.stream)
    }
    d stream.Write("]")
    return stream
}

The query is used vs the following persistent class:

Class dc.Sample.Person Extends (%Persistent, %JSON.Adaptor, %Populate)

{



Property Name As %VarString;



Property Title As %String;



Property Company As %String;



Property Phone As %VarString;



Property DOB As %Date(MAXVAL = "$piece($horolog, "","", 1)");



Property PersonId As %Integer [ Calculated, SqlComputeCode = { set {*}={%%ID}}, SqlComputed ];



/// Index for property DOB

Index DOBIndex On DOB;



ClassMethod AddTestData(amount As %Integer = 10)

{

d ..Populate(amount)

}

}

What I don't like:

1. "Unnecessary" "manual" writes of "[]":

d stream.Write("[")

2. Code block repeat for the first segment to excuse "," :


    if rset.%Next() {
        Set person = ##class(dc.Sample.Person).%OpenId(rset.ID)
        Do person.%JSONExportToStream(.stream)
    }
    While rset.%Next() {
        d stream.Write(",")
        Set person = ##class(dc.Sample.Person).%OpenId(rset.ID)
        Do person.%JSONExportToStream(.stream)
    }

3. I should introduce an "artificial" PersonId to make the response include record ID's (thanks to @Robert Cemper):

Property PersonId As %Integer [ Calculated, SqlComputeCode = { set {*}={%%ID}}, SqlComputed ];

Your ideas?

3 nouveaux commentaires
Discussion (3)1
Connectez-vous ou inscrivez-vous pour continuer