Skip to content
This repository has been archived by the owner on Sep 2, 2020. It is now read-only.

Architecture Planning Louis

Louis Ades edited this page Oct 24, 2017 · 6 revisions

JS ECQME - Architecture Planning

  • Testing
    • Test Measures – Sam and Dave’s picks
      • At least one happy path
      • At least one not-so-happy path
      • Happy path will be the only one worked with earlier on for each standard.
        • Especially in the second round of implementing functionality for HQMF
  • Patient Source
    • Requirements
      • Interact with Mongo for all patient storage
      • QDM (early, CQL version) Patient structure
      • QDM (later, HQMF version) Patient structure
      • Load QDM patient
      • Translate HDS Patient model to QDM (existing)
      • Load HDS patient
    • External Libraries/Resources
      • Existing Models for both CQL and HQMF versions of QDM, just not in ES6 Javascript as we need it
        • CQL
          • qdm.5.3.xsd
          • qdm-modelinfo-5.3.xml
          • Generated Typescript models by Sam/Andy
          • Need to ask out which one of the xml or xsd was used to generate the Typescript models, which tools were used, and then generate them to ES6 Javascript classes
      • patientapi
        • Translate HDS patient to QDM, version number of what HQMF uses
          • Unclean in structure right now, even has extensions in hqmf2js. May want to be refactored in a new branch to clean it up.
        • 100% ready to be used in Javascript--called directly to translate the patient. Included as a gem file (thanks to Rails), called directly.
      • cql-patient-api
        • Translate HDS patient to QDM, version number of what CQL uses
        • 100% ready to be used in Javascript--called directly to translate the patient. Included as a gem file (thanks to Rails), called directly.
          • Literally calling new CQL_QDM.CQLPatient(my_hds_patient)
    • Acceptance Criteria
      • First Pass
        • Patient returned, consistent with cql-patient-api specs
      • Second Pass
        • HQMF integration included as a second option
        • Patient returned, consistent with patientapi specs
  • Measure Source
    • Requirements
      • Interact with Mongo for all measure storage
        • Interact from both a web endpoint, and from a Node.js endpoint (such as Mongoose)
      • Measure Logic models
      • Load HQMF measures interpreted as JavaScript
      • Load CQL measures interpreted as Elm
    • Existing Libraries
      • Bonnie
    • Acceptance Criteria
      • First Pass
        • CQL measure data returned, in a format ready to be run through cql4browsers
      • Second pass
        • QDM-based HQMF measure data returned, in a format ready to be map-reduced against patients
  • Execution Engine - All using V8
    • Requirements
      • Execute HQMF measures against older QDM version patients
      • Execute CQL measures against newer QDM version patients
    • Existing Libraries
      • clinical_quality_language has the execution framework
      • cql_qdm_patientapi also has the latest version of the browserified version of the execution framework, can be invoked directly in JavaScript
    • Acceptance Criteria
      • First pass
        • For CQL, take patients and measures as arguments, return results model with calculation results
      • Second pass
        • Same as first pass, but for HQMF
  • Results Storage and Loading
    • Requirements
      • Interact with Mongo for results storage
      • Models/interfaces for storing results
    • Acceptance Criteria
      • js-ecqme can save results from measure calculations in the execution engine
      • js-ecqme can load and retrieve results from desired run
Clone this wiki locally