New post

Find

Discussion (0)1
Log in or sign up to continue
Article
· Apr 24, 2023 5m read

開発者向けウェビナー:アーカイブビデオ一覧

開発者の皆さん、こんにちは!

過去に開催した開発者向けウェビナー アーカイブビデオのまとめページを作成しました。

今後もウェビナーを開催していきますのでこのページをブックマークしていただけると嬉しいですlaugh

プレイリストはこちら👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxB39_H2QMMEG_EsNEFc0ASz

2025年開催分:

✅ウェビナー

2024年開催分:

✅ウェビナー

 

2023年開催分:

✅ウェビナー

✅ InterSystems 医療 x IT セミナー アプリケーション開発編2

 

 

2022年開催分:

    ✅ InterSystems 医療 x IT セミナー アプリケーション開発編1

    ✅モダンホスピタルショウ

    ✅ InterSystems Japan Virtual Summit 2022:プレイリストはこちら👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxAGImHt9sB0n-e7IlHvfcOu

    ✅その他

     

    2021年開催分:ウェビナー

    ✅ウェビナー(1月)

    ✅ウェビナー(10月):プレイリストはこちら👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxBlWFxRfrrrScerJrpo7xjr

     

    2021年開催分:InterSystems Japan Virtual Summit 2021

    ✅開発:プレイリスト👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxAE7EpPq8npD_LFwMRvFRBI

    ✅HL7 FHIRによるインターオペラビリティ:プレイリスト👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxD6pgXvPtS92UeElPq2cDac

    ✅運用・管理:プレイリスト👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxDTIXYG_iwJczwzJbtSM8DF

    ✅マイグレーション:プレイリスト👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxCYZuzDKN5miU0KlTSDlW1Z

    20 Comments
    Discussion (20)1
    Log in or sign up to continue
    Announcement
    · Apr 19, 2023

    持续火热报名中:欢迎参加InterSystems 中国技术培训认证

    为支持医疗信息行业人才发展,InterSystems 为中国市场量身定制了贴近需求、灵活、实操性强的技术认证培训计划,由 InterSystems 资深技术专家亲自授课,帮助用户快速掌握 InterSystems 技术,确保用户从快速发展的 InterSystems 技术中获益,以更好地服务于医院信息化建设。点击此处查看课程详情:InterSystems中国技术培训认证

    您的最佳学习路径

     

    为什么要参加 InterSystems 技术认证培训?

    • InterSystems 数据平台技术已成为国内医疗信息化领域的主流技术之一,支持全国数百家大型公立医院核心系统长期稳定运行 20 余年;
    • 专为中国技术用户量身定制,具有贴近需求、灵活、实操性强等特点;
    • InterSystems 资深技术专家亲自授课,帮助用户快速掌握 InterSystems 技术及最佳实践;
    • InterSystems 官方技术认证培训具备更高权威性,可以助力用户更好地运用 InterSystems 技术,并从快速发展的 InterSystems 技术中获益,保持技术先进性。

    哪些用户可以参加认证培训?

    凡使用 InterSystems 技术或对 InterSystems 技术感兴趣的IT从业人员或机构均可参加。

    您可以从技术认证培训中获得哪些技能和成长?
    • 与时俱进的课程更新,理论与实践相结合的学习方式,可以帮助您持续提升对 InterSystems 技术的掌握;
    • 参与 InterSystems 的分级培训计划,考核通过即可获得认证证书;
    • 通过线下课程与活动,拓展技术人脉。
    InterSystems 中国的认证培训讲师团成员是哪些?

    InterSystems 中国资深工程师团队授课。

    报名方式及开课时间是如何安排的?

    报名人数满 5 人即开班,每季度一次,培训方式为线下培训,考试内容含书面测试与上机实践。课程收费请咨询您的 InterSystems 客户经理医院及医疗信息化企业推荐以机构方式参与培训。

    如需报名或咨询更多详情,请联系您的 InterSystems 客户经理,或通过以下方式与 InterSystems 中国团队联系:

    电话:400-601-9890

    邮件:GCDPsales@InterSystems.com

    2 Comments
    Discussion (2)0
    Log in or sign up to continue
    Article
    · Apr 18, 2023 2m read

    AI generated text detection using IntegratedML

    In recent years, artificial intelligence technologies for text generation have developed significantly. For example, text generation models based on neural networks can produce texts that are almost indistinguishable from texts written by humans.
    ChatGPT is one such service. It is a huge neural network trained on a large number of texts, which can generate texts on various topics and be matched to a given context. 

    A new task for people is to develop ways to recognize texts written not only by people but also by artificial intelligence (AI). This is because, in recent years, neural network-based text generation models have become capable of producing texts that are almost indistinguishable from texts written by humans.

    There are two main methods for AI-written text recognition:

    • Use machine learning algorithms to analyze the statistical characteristics of the text;
    • Use cryptographic methods that can help determine the authorship of the text

    In general, the task of AI text recognition is difficult but important.

    I am happy to present an application for the recognition of the texts generated by AI. During development, I took the benefits of InterSystems Cloud SQL and Integrated ML, which include:

    • Fast and efficient data requests with high performance and speed;
    • User-friendly interface for non-experts in databases and machine learning;
    • Scalability and flexibility to quickly adjust ML models according to requirements;

    In the development and further training of the model, I used an open dataset, namely 35 thousand written texts. Half of the texts were written by hand by a large number of authors, and the other half was generated by AI with ChatGPT.

    Configuration used for GPT model:

    model="text-curie-001"
    temperature=0.7
    max_tokens=300
    top_p=1
    frequency_penalty=0.4
    presence_penalty=0.1

    Next, about 20 basic parameters were determined, according to which further training was carried out. Here are some of the options I used:

    • Characters count
    • Words count
    • Average word length
    • Sentences count
    • Average sentence length
    • Unique words count
    • Stop words count
    • Unique words ratio
    • Punctuations count
    • Punctuations ratio
    • Questions count
    • Exclamations count
    • Digitals count
    • Capital letters count
    • Repeat words count
    • Unique bigrams count
    • Unique trigrams count
    • Unique fourgrams count

    As a result, I got a simple application that you can use for your tasks or just have fun.

    This is what it looks like:

    imageTo try the application you can use online demo or run it locally with your own Cloud SQL account. 

    Also, this application participates in the contest. If you like it, vote for it.

    Welcome to the comments to discuss this app if you were interested.
     

    1 Comment
    Discussion (1)1
    Log in or sign up to continue
    Article
    · Apr 16, 2023 4m read

    Tuples ahead

    Overview

    Cross-Skilling from IRIS objectScript to Python it becomes clear there are some fascinating differences in syntax.

    One of these areas was how Python returns Tuples from a method with automatic unpacking.

    Effectively this presents as a method that returns multiple values. What an awesome invention :)

    out1, out2 = some_function(in1, in2)

    ObjectScript has an alternative approach with ByRef and Output parameters.

    Do ##class(some_class).SomeMethod(.inAndOut1, in2, .out2)

    Where:

    • inAndOut1 is ByRef
    • out2 is Output

    The leading dot (".") in front of the variable name passes ByRef and for Output.

    The purpose of this article is to describe how the community PyHelper utility has been enhanced to give a pythonic way to take advantage of ByRef and Output parameters. Gives access to %objlasterror and has an approach for Python None type handling.
     

      Example ByRef

      Normal invocation for embedded python would be:

      oHL7=iris.cls("EnsLib.HL7.Message")._OpenId('er12345')

      When this method fails to open, variable "oHL7" is an empty string.
      In the signature of this method there is a status parameter that is available to object script that gives an explanation of the exact problem.
      For example:

      • The record may not exist
      • The record couldn't be opened in default exclusive concurrency mode ("1"), within timeout
      ClassMethod %OpenId(id As %String = "", concurrency As %Integer = -1, ByRef sc As %Status = {$$$OK}) As %ObjectHandle

      The TupleOut method can assist returning the value of argument sc, back to a python context.
       

      > oHL7,tsc=iris.cls("alwo.PyHelper").TupleOut("EnsLib.HL7.Message","%OpenId",['sc'],1,'er145999', 0)
      > oHL7
      ''
      > iris.cls("%SYSTEM.Status").DisplayError(tsc)
      ERROR #5809: Object to Load not found, class 'EnsLib.HL7.Message', ID 'er145999'1
      ```

      The list ['sc'] contains a single item in this case. It can return multiple ByRef values, and in the order specified. Which is useful to automatically unpack to the intended python variables.

      Example Output parameter handling

      Python code:

      > oHL7=iris.cls("EnsLib.HL7.Message")._OpenId('145')
      > oHL7.GetValueAt('<%MSH:9.1')
      ''

      The returned string is empty but is this because the element is actually empty OR because something went wrong.
      In object script there is also an output status parameter (pStatus) that can be accessed to determine this condition.

      Object script code:

      > write oHL7.GetValueAt("<%MSH:9.1",,.pStatus)
      ''
      > Do $System.Status.DisplayError(pStatus)
      ERROR <Ens>ErrGeneral: No segment found at path '<%MSH'

      With TupleOut the equivalent functionality can be attained by returning and unpacking both the method return value AND the status output parameter.

      Python code:

      > hl7=iris.cls("EnsLib.HL7.Message")._OpenId(145,0)
      > val, status = iris.cls("alwo.PyHelper").TupleOut(hl7,"GetValueAt",['pStatus'],1,"<&$BadMSH:9.1")
      > val==''
      True
      > iris.cls("%SYSTEM.Status").IsError(status)
      1
      > iris.cls("%SYSTEM.Status").DisplayError(status)
      ERROR <Ens>ErrGeneral: No segment found at path '<&$BadMSH'1


      Special variable %objlasterror

      In objectscript there is access to percent variables across method scope.
      There are scenarios where detecting or accessing special variable %objlasterror is useful after calling a CORE or third party API
      The TupleOut method allows access to %objlasterror, as though it has been defined as an Output parameter, when invoking methods from Python

      > del _objlasterror
      
      > out,_objlasterror=iris.cls("alwo.PyHelper").TupleOut("EnsLib.HL7.Message","%OpenId",['%objlasterror'],1,'er145999', 0) 
      
      > iris.cls("%SYSTEM.Status").DisplayError(_objlasterror)
      ERROR #5809: Object to Load not found, class 'EnsLib.HL7.Message', ID 'er145999'1

      When None is not a String

      TupleOut handles python None references as objectscript undefined. This allows parameters to default and methods behave consistently.
      This is significant for example with %Persistent::%OnNew where the %OnNew method is not triggered when None is supplied for initvalue, but would be triggered if an empty string was supplied.

      In objectscript the implementation might say:

      do oHL7.myMethod("val1",,,"val2")

      Note the lack of variables between commas.

      TupleOut facilitates the same behavior with:

      Python:

      iris.cls("alwo.PyHelper").TupleOut(oHL7,"myMethod",[],0,"val1",None,None,"val2")

      Another way to consider this, is being able to have one line implementation of invocation code, that behaves flexibly depending on pre-setup of variables:

      Object Script:

      set arg1="val1"
      kill arg2
      kill arg3
      set arg4="val2"
      do oHL7.myMethod(.arg1, .arg2, .arg3, .arg4)

      TupleOut facilitates the same behavior with:

      Python:

      arg1="val1"
      arg2=None
      arg3=None
      arg4="val2"
      iris.cls("alwo.PyHelper").TupleOut(oHL7,"myMethod",[],0,arg1,arg2,arg3,arg4)

      List and Dictionaries

      When handling parameters for input, ByRef and Output, TupleOut utilizes PyHelper automatic mapping between:
      IRIS Lists and Python Lists
      IRIS Arrays and Python Arrays
      Where it takes care to always use strings to represent dictionary keys when moving from IRIS Arrays to Python Dict types.

      Conclusion

      Hope this article helps inspire new ideas and discussion for embedded Python ideas and suggestions.

      Hope also it gives encouragement to explore the flexibility for how IRIS can easily bend to meet new challenges.

      Discussion (0)1
      Log in or sign up to continue