Giter Site home page Giter Site logo

acr-rsna-cdes's Introduction

RSNA/ACR Common Data Element (CDE) Project

This repository defines the data model behind the RSNA/ACR CDE project.

This data model provides the structure and syntax of a well-formed CDE set containing elements and values. It is most useful for those developing software tools to create or consume CDEs.

Information around the content that is represented within this structure can be found in our authoring guide and our standardization guide.

Our repository has an API

Repository Introduction

cde.schema.json This file contains the latest version of the schema, written in JSON schema draft-07.

SampleDES.cdes.json A JSON file representing a CDE set that idenfies the questions (elements) needed to completely evaluate an adrenal nodule during adrenal protocol CT.

build_schmeas.py A local development tool that creates schema files to validate json documents containing lists of sets, lists of elements, and a single element. The checks are automatic in vscode if you use the following file suffixes:

granularity filename
element *.cde.json
element list *.cde_list.json
set *.cdes.json
set list *.cdes_list.json

deprecated Includes prior versions of the schema in several legacy formats

.vscode, .gitignore Configuration for Visual Studio Code, and Git

acr-rsna-cdes's People

Contributors

ccarr avatar radngandhi avatar shadowdoc avatar talkasab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acr-rsna-cdes's Issues

Add modality to schema for sets and elements

Will be optional. Pasting the original modality specification from legacy schema below

modality =
    element modality {
        element system { "RadLex" },
        ( element code {"CT"},
           element name { "Computed Tomography"},
           element url { "http://radlex.org/RID/RID10321" } ) ?,
        ( element code { "FL" },
          element name { "Fluoroscopy" },
          element url { "http://radlex.org/RID/RID10361" } ) ?,
        ( element code { "MR" },
          element name { "Magnetic Resonance Imaging" },
          element url { "http://radlex.org/RID/RID10312" } ) ?,
        ( element code { "NM" },
          element name { "Nuclear Medicine" },
          element url { "http://radlex.org/RID/RID10330" } ) ?,
        ( element code { "PET" },
          element name { "Positron Emission Tomography" },
          element url { "http://radlex.org/RID/RID10337" } ) ?,
        ( element code { "US" },
          element name { "Ultrasound" },
          element url { "http://radlex.org/RID/RID10326" } ) ?,
        ( element code { "XR" },
          element name { "Projection Radiography" },
          element url { "http://radlex.org/RID/RID10345" } ) ?
     }

Value set validation

  • value_set array should have at least 2 elements
  • min_cardinality should be a minimum of 0
  • max_cardinality should be a minimum of 1

Need versions of schema for different situations

We would like to have coordinated versions of the schema for:

  • A set (what the schema currently does): cde_set.schema.json
  • An element cde_element.schema.json
  • List of sets cde_set_list.schema.json
  • List of elements cde_element_list.schema.json

Add parent set to element

We need to ensure that it's discoverable within an element that it has a parent set. Downstream applications will need to understand whether the element is a reference, or child of the current set under consideration.

Body part -> index codes should be an array

Right now, the property of body_part for codes is named index_codes, but accepts only a single code. We should either:

  • Change the name to index_code or
  • Allow an array of index codes for each body_part (preferred)

Avoid empty arrays

  • Require at least one element in a set
  • Remove index_codes, specialties, and modalities from set and element requirements
  • Add at least minimum of one to index_code, specialty, and modality definitions

Event requirements

Event should require date and status.

Consider adding a note to event and tracking when element / set version changes.

Organization roles

  • organization's roles are capitalized strings, in contrast to the person roles

Return modality to the schema

@ccarr - can someone let me know whether this exists in the current radelement site as an optional element, or is it just missing from our examples because it's optional?

If it's there, but missing in the schema, I'll add it now. Otherwise that's another future enhancement to request.

Apologies, I don't see other devs to "@"...

Need to be able to refer to CDE Sets, Elements

Should to have a structure by which a Set definition can indicate that it includes an Element which isn't being defined within the Set.
I would propose that we define an element_ref structure of the form:

{
  "ref_id": "RDE1234",
  "version_number": 1
}

and then make the elements component of the Set definition be able to refer to either our existing element objects or this new element_ref-type object.

Add TBA as valid content for identifiers

Update identifiers: set id, element id, and value code to have TO_BE_ASSIGNED as a valid option to support creation of JSON resources prior to uploading to Radelement.org

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.