Code Monkey home page Code Monkey logo

connectathon-artifacts's Introduction

connectathon-artifacts

(1) Some files and folders in this repository contain test data that is referenced in IHE Connectathon tests. Some test data are FHIR Resources that are preloaded on servers to enable peer-to-peer testing during IHE Connectathons. In general, the test data is organized into sub-directory according to IHE domain and profile.

(2) Other files and folders in this repository are the source material for artifacts including value sets used in IHE Connectathons. In general, tab delimited files are maintained as the source of truth. A master configuration file and a set of perl scripts convert the tab delimited files into output formats used during the a Connectathon. Reasons for choosing this scheme are found at the bottom of this file.

Generating Output (value sets)

From this top level folder, execute:

perl scripts/master.pl [path]

where path is an optional argument that points to a root folder for output. The script will use a default value of "." if no path is specified.

The script reads each line of master.txt and produces output based on each line. A description of the contents and format of entries are included at the top of master.txt

Discussion of Tab Delimited Files and Perl Scripts

Connectathon value sets have been distributed in various formats starting with the first IHE Connectathon in 1999. The first versions were not machine readable. Bill Majurski of NIST designed a codes.xml file that includes coded values used by his XDS Toolkit. He intended it for internal use, but XDS developers adopted that format to configure their software, at least in the context of Connectathon testing. HL7 FHIR(R) now has a standardized way to create a machine readable file with a list of codes to form a value set. The specification supports JSON and XML encodings.

We chose a model where the source data (codes) are stored in tab delimited spreadsheets with associated perl scripts to convert these into various formats used during a Connectathon. The main driver is our experience in managing the codes themselves. It is much easier to visualize and maintain the codes in the grid structure of a spreadsheet than it is to manage in JSON or XML. The maintainers of the coded values (Lynn Felhofer, Steve Moore) want to see the patterns that are expressed in the columns and use that as a secondary means to ensure consistency.

Perl was chosen to transform the tab delimited files into other formats because it is an interpreted language and available on all platforms. The perl scripts do not require any external modules and should execute with a baseline version of perl. We acknowledge that some operations would be more elegant with other languages and/or XSL transformations.

One overriding decision is that we wanted one source of truth and did not want to maintain multiple copies of the codes. We could have chosen to maintain equivalent files in XML, JSON and other formats so that this repository contained final output and was ready for use without any transformation. We rejected that approach because we did not want to spend time checking for consistency between the files.

connectathon-artifacts's People

Contributors

lynnfel avatar stl-steve-moore avatar

Stargazers

Jonathan Whitby avatar

Watchers

Chris Carr avatar James Cloos avatar  avatar Sunil Bhaskarla avatar John Rhoads avatar Jose Costa Teixeira avatar  avatar

connectathon-artifacts's Issues

Updated README.md

Prior to NA CAT 2022, update README.md.

The current contents apply primarily to codes.xml, and we have expanded this repository to be used for much more than that.

Confusing version in artifacts

At least some code systems and value sets use the same version (4.0.1), which also is a FHIR version. It gets quite confusing in some tests (like SVCM_ITI-99_ValidateCode).
Could we have different versions for the artifacts used in this test?

wrong codingScheme for DICOM in eventCodeList

In codes.xml in the XDS Tools used for 2021 IHE Connectathons the codingScheme value for DICOM codes for eventCodeList is INCORRECT and has been for years! (The URI value of http://dicom.nema.org/resources/ontology/DCM for system is correct).

Per DICOM PS3.16 Table 8-1, the correct coding scheme for DICOM Controlled Terminology in DICOM PS3.16 Chapter D is 1.2.840.10008.2.16.4. And in FHIR, the equivalent system value for DICOM codes is http://dicom.nema.org/resources/ontology/DCM.

Note that the formatCode in codes.xml for KOS correctly uses codingScheme t 1.2.840.1008.2.6.1 since the code value comes from the OID Registry in PS3.3.6

one classCode used by toolkit is missing from codes.xml (rev 2021.01)

The latest XDS tool kit version 7.6.0 is still referring the one of the old code "SUMMARY" classificationScheme=urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a (classCode) which does not exists in the latest codes.xml file.

Toolkit reference load document request test cases:

Test: 12346 : Initialize Registry for Stored Query Testing

Test: 12374 : Initialize Registry for Stored Query Testing - different Patient ID

Suggested fix (Lynn) Change code "SUMMARIES" back to "SUMMARY"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.