Nova postagem

Pesquisar

Pergunta
· Mar. 19

Expanding 1 HL7 segment into multiple based on interger value from a lookup table mapping

I have a HL7 DTL in which I'm doing a lookup to a table based on a code value in the IN1:3 field.  That incoming code may have a 1 to 1 mapping, or 1 to many mapping in a table.  If it's a 1 to many, the values in the lookup table are comma delimited.  If it's 1 to 1, that IN1 segment will map straight across.  If it's one to many, I need to create additional IN1 segments.  For example, if the incoming code maps to three, I need to map the original IN1 segment with one of the mapped codes, then create two additional IN1 segments with the other 2 codes for a total of 3 IN1 segments.  I'd like to do this with a loop.  I can get the number of segments I need with:

..Length(insurancePlanIDs,",")

and putting the number in a variable.  However, the ForEach in the DTL will only work with a collection as opposed to just a variable that contains the number 3, for example.  I can use the PIECE function to get each code out, so that's not an issue.  As mentioned, I'm not sure how to get the looping to work within the DTL.  With other programming languages, I could just use a for or while loop and iterate over that integer variable, but I'm struggling with how to create a loop with just an integer variable.

Any help is appreciated. 

2 Comments
Discussão (2)2
Entre ou crie uma conta para continuar
Pergunta
· Mar. 19

Calling iris merge from Ansible

Does anyone know if iris merge can be called from Ansible.  I have tried a couple of ways, but it doesn't seem to actually run the command on the target even though Ansible outputs it was successful.

Ansible Play:

 - name: Install Iris

    hosts: "{{ host_group }}"

    serial: 1

    remote_user: cotelmer

    gather_facts: yes

    vars:

      - instance_type: "{{ inst_type }}"

    roles:

      - disable_new_bus_rule_editor

 

Ansible task:

 - name: Run iris merge to disable application

    ansible.builtin.shell: |

      set timout 15

      spawn bash -c "iris merge {{ item }}{{ hostvars[inventory_hostname].env }}{{ hostvars[inventory_hostname].failover_member_id }} /WORK/{{ item }}/deploy/cpf_merge_files/all_disable_application.mergefile /{{ item }}/{{ item }}{{ hostvars[inventory_hostname].env }}{{ hostvars[inventory_hostname].failover_member_id }}/iris.cpf"

      expect "Username: "

      send "hsadmin\n"

      expect "Password: "

      send "{{ pwd }}"

      expect eof

    args:

      executable: /usr/bin/expect

 

    with_items:

      - "{{ instance_type }}"

    register: iris_merge_output # Capture the output from the module

    changed_when: iris_merge_output != 0 # <- Uses the return  code to define when the task has changed.

 

  - name: printing iris_output

    ansible.builtin.debug:

      var: iris_merge_output

 

Output of task:

changed: [lp-itfuat04] => (item=CLIN) => {
    "ansible_loop_var": "item",
    "changed": true,
    "cmd": "set timout 15\nspawn bash -c \nsend \"iris merge CLINUAT04 /WORK/CLIN/deploy/cpf_merge_files/all_disable_application.mergefile /CLIN/CLINUAT04/iris.cpf\"\nexpect \"Username: \"\nsend \"hsadmin\\n\"\nexpect \"Password: \"\nsend \"         \"\nexpect eof\n",
    "delta": "0:00:00.009829",
    "end": "2025-03-19 11:39:45.088939",
    "invocation": {
        "module_args": {
            "_raw_params": "set timout 15\nspawn bash -c \nsend \"iris merge CLINUAT04 /WORK/CLIN/deploy/cpf_merge_files/all_disable_application.mergefile /CLIN/CLINUAT04/iris.cpf\"\nexpect \"Username: \"\nsend \"hsadmin\\n\"\nexpect \"Password: \"\nsend \"Adm4uat14\"\nexpect eof\n",
            "_uses_shell": true,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": "/usr/bin/expect",
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "item": "CLIN",
    "rc": 0,
    "start": "2025-03-19 11:39:45.079110",
    "stderr": "send: spawn id exp5 not open\n    while executing\n\"send \"hsadmin\\n\"\"",
    "stderr_lines": [
        "send: spawn id exp5 not open",
        "    while executing",
        "\"send \"hsadmin\\n\"\""
    ],
    "stdout": "spawn bash -c\r\niris merge CLINUAT04 /WORK/CLIN/deploy/cpf_merge_files/all_disable_application.mergefile /CLIN/CLINUAT04/iris.cpfbash: -c: option requires an argument",
    "stdout_lines": [
        "spawn bash -c",
        "iris merge CLINUAT04 /WORK/CLIN/deploy/cpf_merge_files/all_disable_application.mergefile /CLIN/CLINUAT04/iris.cpfbash: -c: option requires an argument"
    ]
}
 

Content of all_disable_application.mergefile:

[Actions]

ModifyApplication:Name=/ui/interop/rule-editor,Enabled=0

5 Comments
Discussão (5)3
Entre ou crie uma conta para continuar
Anúncio
· Mar. 19

[Video] Is your data ready for AI?

Hey Community!

We're happy to share the next video in the series dedicated to Gen AI on our InterSystems Developers YouTube:

⏯ Is your data ready for AI?

This video explores how data quality impacts both traditional machine learning and generative AI models. Learn why normalization, patient matching, and external data integration are crucial for accuracy. Discover how retrieval-augmented generation (RAG) enhances AI responses and why structured, timely data is key to better outcomes.

🗣  Presenter: @Don Woodlock, Vice President, Healthcare Solutions Development, InterSystems

Enjoy watching, and look forward to more videos! 👍

Discussão (0)1
Entre ou crie uma conta para continuar
Job
· Mar. 19

Looking for Opportunities in InterSystems Technology

Hi everyone,

I am looking for new opportunities in the InterSystems technology space and would love to connect with professionals and organizations working in this ecosystem.

With 12+ years of experience in software development, I specialize in:

InterSystems Technologies:
InterSystems IRIS & IRIS for Health, Cache, MUMPS, GT.M, Ensemble
InterSystems HealthShare 2023.1, ODBC & MSSQL Integration, Data Exchange & System Design
Clinical Viewer, Registries (Patient, Clinical, Facility), Consent Policies

Healthcare IT & Interoperability:
VA VistA EHR Applications, EMR, EHR, HL7, FHIR, CCDA
• Data Interoperability, Clinical Data Exchange, and Scalable Healthcare Solutions

Enterprise & Solution Architecture:
• Scalable, High-Performance Systems in Healthcare & BFSI
Investment & Wealth Management – Fintech innovations, risk analytics, and digital transformations

AI & Data Science:
AI, NLP, Digital Image Processing – Healthcare & Fintech Applications
• Courses in NLP & Digital Image Processing from IIIT Hyderabad

Additionally, I hold an Executive Program in Business Management (EPBM) from IIM Calcutta, strengthening my strategic decision-making and leadership capabilities.

Previously, I worked at Franklin Templeton Investments, Optum (UnitedHealth Group), and IQVIA, contributing to enterprise solutions, fintech innovations, and large-scale system integrations.

I am eager to explore collaborations and contribute to cutting-edge InterSystems-based solutions. If you know of any opportunities or would like to connect, feel free to reach out!

Looking forward to engaging with the community!

Best regards,
Arun Kumar Durairaj,
+918408803322,
darunk67@gmail.com,

linkedin.com/in/arun-kumar-d-14159457

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Mar. 19 3min de leitura

CSP(REST)でのトラブルシューティングに使用できるツール

これはInterSystems FAQサイトの記事です。


ISCLOG を有効にすることにより、CSP(REST)アクセスに関連するログ情報を収集できます。これを使用して CSP(REST)でのトラブル時の調査を行うことが可能です。  

◎このツールをトラブルシューティングに使用する場合は、基本的に、エラーを(意図的に)再現できる状況で使用します。
 他のウェブアクセス等がない状態で、単体実行してエラーを発生させ、このログを取得して調査します。

手順は以下のとおりです。

① ログをクリアします。

 //IRIS
 Kill ^ISCLOG
 //Caché
 Kill ^%ISCLOG


② ロギングレベルを設定します。

 Set ^%ISCLOG=3
------------------------------------
#0 ― ログを記録しません。
#1 ― 例外的なイベント (エラー・メッセージなど) のみをログに記録します。
#2 ― 'method ABC invoked with parameters X,Y,Z and returned 1234' などの詳細な情報をログに記録します。
#3 ― HTTP 要求から受け取ったデータなどの未処理のデータをログに記録します。
------------------------------------

 
③ CSPでエラーになる処理を行います。


④ ロギングを無効に設定します。

 Set ^%ISCLOG=0


⑤ 詳細ログは、^ISCLOGグローバル(Cachéでは^%ISCLOG)に保存されます。


ISCLOGの詳細については、以下のドキュメントをご参照ください。
ドキュメント:埋め込み言語による開発 > Web API および Web アプリケーション >  CSP > ログ


ログの内容について、インターシステムズで解析が必要な場合には、以下の手順でグローバルをエクスポートし、カスタマーサポートセンターまでご連絡ください。

【グローバルエクスポート手順】
ターミナルで以下の要領で ^ISCLOG グローバル(Cachéでは、^%ISCLOGグローバル)をエクスポートします。
USER>zn "%SYS"
%SYS>d ^%GOF
Write globals to file/tape for fast input to InterSystems IRIS
Device: e:\temp\isclog.gof
           file format: ("UNW*") =>
          Maximum media size (bytes):  (No maximum)
Enter a short description of the contents of this tape or file
Description:
All Globals? No => No
Global ^ISCLOG
Global ^
1 global selected from 61 available globals. All globals that are mapped to another namespace will not be saved.
Use %GO or GUI Cache format to save this data.
^%ISCLOG                                         1 data block written
1 blocks written in  0 minutes,   0 seconds
%SYS>

 上記で出力されたグローバルエクスポートファイル(isclog.gof)をお送りください。

 

Discussão (0)1
Entre ou crie uma conta para continuar