Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Pablo Pazos Gutiérrez
    @ppazos
    In terms of implementation, generating XSDs from OPTs (or Marand's web templates) is not a requirement for any implementation, since instances could be generated from, and validated against, the OPTs, with a little software component. And when working with JSON, XSDs are unusable, so the only reliable way is by using the canonical OPT as the only source of truth in terms of generating and validating instances. Of course I have my own design preferences that might differ from Marand's, because the have their own implementation and support tools and derived formats that work for them.
    Which is OK, but is not the only way of doing things :)
    sasurfer
    @sasurfer
    Hi @chevalleyc , do you have a schedule for the fix release of CR #157 and CR #159?
    that is ADMIN_ENTRY and null_flavours
    Christian Chevalley
    @chevalleyc
    Hi @sasurfer I'm currently working on CD #159 but already posted a fix for CR #157 in branch v1.3.0. Please give it a try and let me know. Thanks
    Pablo Pazos Gutiérrez
    @ppazos
    You
    sasurfer
    @sasurfer

    Hi @chevalleyc
    Unfortunately it doesn't work for me. I corrected an ORBDA composition to pass Code4health check. The composition is without external_ref, null_flavour and DV_DATE but it contains several ADMIN_ENTRY. In the new ethercis the error is:
    500

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

    <title>Error 500 #1.0.0 Invocation exception to method:create:java.lang.IllegalArgumentException: Could not parse supplied content:java.lang.IllegalArgumentException: Unhandled data type:openEHR-EHR-ADMIN_ENTRY.patient_discharge.v1, Patient discharge</title>
    </head>

    <body><h2>HTTP ERROR 500</h2>

    <p>Problem accessing /rest/v1/composition. Reason:

    <pre> #1.0.0 Invocation exception to method:create:java.lang.IllegalArgumentException: Could not parse supplied content:java.lang.IllegalArgumentException: Unhandled data type:openEHR-EHR-ADMIN_ENTRY.patient_discharge.v1, Patient discharge</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>

    </body>
    </html>
    Note: I checked out the 1.3 version of ehrserver in order to create the updated Ethercis
    template used: https://gist.github.com/sasurfer/7ea03c1e56fa3c233197c4e889a3b1e6
    composition used: https://gist.github.com/sasurfer/51e789e754064be8325e61b384f06f39
    Any hint?

    Christian Chevalley
    @chevalleyc
    @sasurfer I tried it out (and fixed a minor bug in the meantime) and could post/get a composition with admin_entry. You might need to rebuild all jars with v1.3.0. I have done some changes to the poms since I am now using openjdk 10 on Linux Ubuntu (some stuff were not going through since Oracle Java has some peculiarities not found with openjdk). Please let me know how it goes. Thanks
    Ricardo Gonçalves
    @ricardofago
    I'm having some trouble compiling v1.3.0 about missing classes:
    com.ethercis.jooq.pg.tables.records.FeederAuditRecord
    com.ethercis.jooq.pg.tables.records.FeederSystemAuditRecord
    com.ethercis.jooq.pg.tables.records.OriginatingSystemAuditRecord
    I can't find them anywhere, am I missing something?
    Christian Chevalley
    @chevalleyc
    Please do a mvn flyway migrate (by memory, I'm out of the office) from the db module, there are new tables setup by migration. Then rerun mvn in jooq-pg
    Ricardo Gonçalves
    @ricardofago
    That did the trick, I was doing it with gradle from db, the right one is mvn from ecisdb, thanks
    sasurfer
    @sasurfer
    @ricardofago @chevalleyc Are you compiling with the -Dmaven.test.failure.ignore=true clause or in other words are all the test passing?
    Ricardo Gonçalves
    @ricardofago
    @sasurfer I'm actually skipping the tests (-Dmaven.test.skip=true)
    sasurfer
    @sasurfer
    ok. thanks
    sasurfer
    @sasurfer

    @chevalleyc @ricardofago I finally made it through the libraries compilation.
    Now I can POST a composition with ADMIN_ENTRY and null_flavour but I can't retrieve it with the method GET. I tried with success the POST and GET of the same composition on thinkehr.
    Did any of you succeed in using a GET on a composition? Suggestions ?
    Here's the error:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>Error 500 #1.0.0 Invocation exception to method:retrieve:java.lang.IllegalArgumentException: DB inconsistency:java.lang.IllegalArgumentException: Unhandled path in template:/content[openEHR-EHR-ADMIN_ENTRY.hospitalization_authorization.v1 and name/value='Authorization for hospital admission']/data[at0001]/items[at0061 and name/value='Issue date'] with definition:{/name=[{value=Issue date}], /value={value=2010-09-01T00:00:00-03:00, epoch_offset=1.28331E12}, /$PATH$=/content[openEHR-EHR-ADMIN_ENTRY.hospitalization_authorization.v1 and name/value='Authorization for hospital admission']/data[at0001]/items[at0061 and name/value='Issue date'], /$CLASS$=DvDateTime, $OBJECT$=2010-09-01T00:00:00-03:00}, possible cause is out of synch template and persisted data (composition id: Hospitalização)</title>
    </head>
    <body><h2>HTTP ERROR 500</h2>
    <p>Problem accessing /rest/v1/composition/9b462a76-d6ff-45cb-9e27-d13ff1414950::ethercis.crs4::1. Reason:
    <pre> #1.0.0 Invocation exception to method:retrieve:java.lang.IllegalArgumentException: DB inconsistency:java.lang.IllegalArgumentException: Unhandled path in template:/content[openEHR-EHR-ADMIN_ENTRY.hospitalization_authorization.v1 and name/value='Authorization for hospital admission']/data[at0001]/items[at0061 and name/value='Issue date'] with definition:{/name=[{value=Issue date}], /value={value=2010-09-01T00:00:00-03:00, epoch_offset=1.28331E12}, /$PATH$=/content[openEHR-EHR-ADMIN_ENTRY.hospitalization_authorization.v1 and name/value='Authorization for hospital admission']/data[at0001]/items[at0061 and name/value='Issue date'], /$CLASS$=DvDateTime, $OBJECT$=2010-09-01T00:00:00-03:00}, possible cause is out of synch template and persisted data (composition id: Hospitalização)</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>

    </body>
    </html>

    Ricardo Gonçalves
    @ricardofago
    @sasurfer did you upload the OPT to EtherCIS after running v1.3.0 or did you use something from the previous version? looks like some mismatch regarding the data point on the DB, which makes sense since it was just implemented... can you share the OET + archetypes and the XML instance you are trying to post?
    sasurfer
    @sasurfer
    @ricardofago ( @chevalleyc ) I repeated the process re-inserting the opt, re-posting the composition and re-trying the GET method on the new composition. Same results.
    template opt used: https://gist.github.com/sasurfer/6fb7355714e945eede1037e514ebf801
    composition: https://gist.github.com/sasurfer/4abe303f148ab4bf1240e9abb788a157
    template oet: https://gist.github.com/sasurfer/d70bcb69404c19817ea6627aeefeb19a
    Archetypes:
    openEHR-EHR-COMPOSITION.hospitalisation.v1 https://gist.github.com/sasurfer/d9c30fe9f95cd17ea1137f87cde4a39d
    openEHR-EHR-ADMIN_ENTRY.patient_discharge.v1 https://gist.github.com/sasurfer/8f699fa8f8ddb1f43733b314a97123ff
    openEHR-EHR-ADMIN_ENTRY.hospitalization_authorization.v1.adl https://gist.github.com/sasurfer/80dfa3ef9df74a1ed9f0468e70adec5d
    openEHR-EHR-ADMIN_ENTRY.admission.v1 https://gist.github.com/sasurfer/bd412133393b204bedc3b7f939caaff1
    openEHR-EHR-EVALUATION.problem_diagnosis-sus.v1 https://gist.github.com/sasurfer/5f97f7fcfc532268179cb7987e6fb807
    openEHR-EHR-ACTION.procedure-sus.v1 https://gist.github.com/sasurfer/755644873a9108512fa892167bf2629d
    Ricardo Gonçalves
    @ricardofago
    @sasurfer thanks, I reproduced it, the thing is that in the OPT, name/value for at0000 in openEHR-EHR-ADMIN_ENTRY.hospitalization_authorization.v1 is defined in pt-br (Autorizacao de internacao hospitalar), the original language in the ADL. EtherCIS is probably fetching the text from the english component ontology (judging by the entries on the ehr.containment table). The JSON document (ehr.entry) is fine but when retrieving it differs from the OPT. If you replace "Authorization for hospital admission" in the composition it works. @chevalleyc what do you think? Should it use the original term definition for name/value?
    sasurfer
    @sasurfer

    @ricardofago I confirm that the at0000 value change does the trick.
    I feel very ignorant about it.
    When I post a composition the template is checked for conformity bu what happens when I call the get method for the composition loaded? I presume the template is interrogated again to show on output the right path for each composition element. Am i wrong?

    So, if the only source of knowledge for the composition posted is the template why a similar problem to the one you solved doesn't occur with Patient Discharge? In the opt template patient discharge is called with the brazilian name "Alta do paciente" whereas in the composition "Patient discharge" (alike "Autorizacao de internacao hospitalar" and "Authorization for hospital admission")

    @chevalleyc Is something like this supposed to happen or is it a bug?

    sasurfer
    @sasurfer
    I add to the conversation what it seems to me a bug. The get method for template endpoint with templateId doesn't work the way it should. It returns all the templates as though a templateId was not given.
    jylliu
    @jylliu
    Hello, we are building EtherCIS from the source, there are a few pre-compiled 3rd party lib, the thinkehr-framework-jsonlib, openEHR.v1.OperationalTemplate, openEHR.v1.Template, just wondering where can we find the source of these libs and compile them on our own? Thanks
    Christian Chevalley
    @chevalleyc
    Hi, please use the latest release, you shouldn't have issues with these dependencies, and build a fat jar as described at https://github.com/ethercis/deploy-n-scripts/tree/master/distribution and launch ethercis as in https://github.com/ethercis/deploy-n-scripts/tree/master/ethercis-install/v1.3.0.
    Christian Chevalley
    @chevalleyc
    PS. I realized I posted a fat jar in the install lib directory as well...
    Pablo Pazos Gutiérrez
    @ppazos
    Hi all, quick question: is the canonical openEHR XML format supported on POST .../composition? I'm testing this and can't make it work.
    Christian Chevalley
    @chevalleyc
    Yes POST ../composition with canonical XML is supported
    sasurfer
    @sasurfer
    @ppazos can you post the error?
    Pablo Pazos Gutiérrez
    @ppazos
    @sasurfer yes! the client receives just {"error":"Internal Server Error", "status":"Internal Server Error"}
    on the terminal I can see a huge stack trace, things that I can understand are "Unhandled type: ITEM_SINGLE", the same for ITEM_LIST.
    Pablo Pazos Gutiérrez
    @ppazos
    this is my OPT
    that is the full trace
    and that is the postman with the request I sent
    maybe I'm doing something wrong :)
    Christian Chevalley
    @chevalleyc
    So far, at the moment, EtherCIS supports ITEM_TREE only (if I remember this part well enough ;-))
    sasurfer
    @sasurfer
    I thought it could be a problem I ran across but it's not. As @chevalley said:
    from the code:
    if (!(rmTypeName.equals("CLUSTER") ||
    rmTypeName.equals("ITEM_TREE") ||
    rmTypeName.equals("DV_INTERVAL<DV_QUANTITY>") || //used in Action, defaulted
    rmTypeName.equals("ISM_TRANSITION"))) //used in Action, defaulted
    log.warn("Unhandled type: "+rmTypeName );
    }
    Pablo Pazos Gutiérrez
    @ppazos
    thanks, that should be the issue
    Luis
    @lmarcoruiz
    hi @chevalleyc I am investingaating the serialization of Ethercis and, in particular, the class ECIS_XMLBinding.java. I am designing some tests to check its behaviour. I was wondering if there is a specific reason for not using the openehr library for serialization available at : https://mvnrepository.com/artifact/org.openehr.java-libs/xml-serializer/1.0.71 Is there any issue that prevented you from using it? Also, is there any advantage in using org.apache.xmlbeans instead of JAXB? Thanks!
    Christian Chevalley
    @chevalleyc
    Hi @lmarcoruiz xml-serializer deals with archetypes (AM). In EtherCIS we deal with templates (RM). XMLBinding uses xmlbeans at this stage (it's a bit historical really) to invoke RM object handling (DvQuantity f.e.) using Java reflection (getters and setters) which are provided as POJOs whenever you compile a schema with xmlbean.
    Pablo Pazos Gutiérrez
    @ppazos
    @chevalleyc templates are not RM, are at the level of AM but it's model is called TOM for ADL < 2 :) of course, I don't know how this is implemented internally.
    Christian Chevalley
    @chevalleyc
    @ppazos yes you are formally right. thanks
    Luis
    @lmarcoruiz
    @chevalleyc thanks for the information!
    sasurfer
    @sasurfer
    Hi. I submitted a new issue ( ethercis/ethercis#182 ) about an error in management of template/composition languages displayed while getting a composition by id.
    sasurfer
    @sasurfer
    Hi all. What do you recommend to handle demographic data following openehr schema? is there a separate opensource system out there?
    Joaquin
    @joaquinrcsi
    Hi all! Has enyone here set up EtherCIS Server + DB only using Docker containers?
    serefarikan
    @serefarikan
    @joaquinrcsi I did that work for a (now old) version of Ethercis at some point. @robdyke took it over afterwards I think. Don't know where it went but there was definitely a docker compose setup for it at some point
    others may tell you if there is a more up to date version and where you may find it