Code Monkey home page Code Monkey logo

cql_runner's Introduction

CQL Runner

See it in Action

CQL Runner implementation.

Introduction

HTML-based Clinical Query Language (CQL) Runner

  • Allows you to run CQL commands against a pre-existing CQL Engine from the comfort of your own browser

โ€“ Runs against the CQF Ruler $cql operation

This project was generated with angular-cli version webpack.

Dependencies

The CQL Runner has the following global dependencies:

  1. NodeJS/NPM Simply download and install as per site instructions

This project was generated with Angular CLI version 14.0.2.

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

cql_runner's People

Contributors

brynrhodes avatar c-schuler avatar dependabot[bot] avatar jpercival avatar racingmars avatar

Stargazers

 avatar  avatar  avatar  avatar  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

cql_runner's Issues

Open intervals with null boundaries fail silently in the runner

I don't know whether this is an engine problem or a runner problem, so posting here because I can reproduce it easily in the runner:

library TestOverlaps

define I: Interval[@2018-06-01, @2018-06-30]
define T10: Interval(null, @2018-06-15]
define T11: Interval[@2018-06-15, null)

When this is run, only the I expression is returned as a result. The T10 and T11 expressions are not produced. I have verified that the translator produces the expected ELM in this case, so it's either in the runner or the engine.

Date values are displayed with class name

This expression:

define Date1: @2012-03-10

Gives this result:

Date1 [1:5] org.opencds.cqf.cql.runtime.DateTime@7ff7c68f

It should give the ISO 8601 string representation of the date/time value.

Library FHIRHelpers was included as version 4.0.1, but version 4.0.001 of the library was found

Hi everyone!
Can someone advise me on this error? I'm new to this.
https://cloud.alphora.com/sandbox/r4/cqm/fhir/$cql?subject=Patient/denom-EXM124&expression=[Observation]
"Failed to call access method: org.opencds.cqf.cql.engine.exception.CqlException: Translation of library LocalLibrary failed with the following message: Library FHIRHelpers was included as version 4.0.1, but version 4.0.001 of the library was found."
Thanks
Reza

Search across patients?

I am getting 0 results for Observation counts unless I provide a patient ID in the config settings. Is there a way to make it search across all patients or more than one patient?

Breaking compile-time .ts error on module inclusion.

When following the component usage instructions, it looks like there's an issue with the packaged TypeScript declarations. For example:

ERROR in ./~/cql-runner/index.ts
Module build failed: Error: Typescript emitted no output for /Users/preston/Developer/git/knartwork/node_modules/cql-runner/index.ts.
You should not need to recompile .ts files in node_modules.
Please contact the package author to advise them to use --declaration --outDir.
More microsoft/TypeScript#12358
at Object.loader (/Users/preston/Developer/git/knartwork/node_modules/ts-loader/dist/index.js:33:15)
@ ./src/app.module.ts 14:19-40
Warning: Task "webpack:build" failed. Use --force to continue.
Aborted due to warnings.

CQL_Runner not using latest published version of CQL

Was working with some CQL functions/operators that are not in earlier versions of CQL. It appears the CQL_Runner is using CQL R1 STU 2. When will CQL_Runner be updated to use CQL R1 STU 3 (published in September 2018) or STU 4 (due out later this year)?

Webapp currnetly down.

I'd like to use http://cql-runner.dataphoria.org/ as an example of why we may want to use the DBCG CQL libraries, but the webapp is currently down

What I did:

  1. log into http://cql-runner.dataphoria.org/ from a browser (crome)
  2. click on 'Retrieval with code filter' in the Examples tab,
  3. receive error message.

Error message displayed in api:

Error [19:1]: Failed to parse response from server when performing GET to URL http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/Patient?_id=null&_format=json - org.apache.http.conn.ConnectTimeoutException: Connect to measure.eval.kanvix.com:80 [measure.eval.kanvix.com/172.31.18.69] failed: connect timed out
Error [27:1]: Failed to parse response from server when performing GET to URL http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/MedicationRequest?patient=null&medication%3Ain=http%3A%2F%2Fhl7.org%2Ffhir%2Fig%2Fopioid-cds%2FValueSet%2Fopioids-abused-in-ambulatory-care&_format=json - org.apache.http.conn.ConnectTimeoutException: Connect to measure.eval.kanvix.com:80 [measure.eval.kanvix.com/172.31.18.69] failed: connect timed out

CQL Runner doesn't display empty string results

Run the following CQL in the CQL Runner:

define x: 'hello'
define y: ''
define z: null

As you can see, the non-erroneous empty string result is not output:

>> x [1:1] hello
>> z [3:1] Null

While it might appear blank due to how string values are currently output without quotes, one would still expect to see the ">> y [2:1]" line.

web service gives Java cast error when selecting a List

For the web service http://cql-runner.dataphoria.org some "define" work and some don't.

Given this in the Input:

define "Number1": 1
define "bar": List<System.Integer>{5,6,2}
define "foo": Interval[5,6]

Hitting "Run" produces this output:

>> foo [3:1] Interval [ 5, 6 ]
>> Error: java.lang.Integer cannot be cast to org.hl7.fhir.instance.model.api.IBaseResource
>> Number1 [1:1] 1

Now the List example is exactly as in the CQL specification. The CQL Runner is failing to handle it properly, while the Integer and Interval examples are working fine in the same run.

Another odd thing is that reflection of the values is in the opposite order that they were entered.

Interval math logical inconsistency between collapse() and union()

The CQL Runner at http://cql-runner.dataphoria.org produces logically inconsistent results for similar operations on intervals of integers, and possibly other discrete types.

Run the following code:

define dc1: collapse { Interval[4.0,6.0], Interval[6.0,8.0] }
define du1: Interval[4.0,6.0] union Interval[6.0,8.0]
define ic1: collapse { Interval[4,6], Interval[6,8] }
define iu1: Interval[4,6] union Interval[6,8]
define dc2: collapse { Interval[4.0,6.0], Interval[7.0,8.0] }
define du2: Interval[4.0,6.0] union Interval[7.0,8.0]
define ic2: collapse { Interval[4,6], Interval[7,8] }
define iu2: Interval[4,6] union Interval[7,8]

These are the results:

>> dc1 [1:1] [Interval [ 4.0, 8.0 ]]
>> du1 [2:1] Interval [ 4.0, 8.0 ]
>> ic1 [3:1] [Interval [ 4, 8 ]]
>> iu1 [4:1] Interval [ 4, 8 ]
>> dc2 [5:1] [Interval [ 4.0, 6.0 ], Interval [ 7.0, 8.0 ]]
>> du2 [6:1] Null
>> ic2 [7:1] [Interval [ 4, 6 ], Interval [ 7, 8 ]]
>> iu2 [8:1] Interval [ 4, 8 ]

Now the problem is with the last 2 lines, which logically should produce equivalent results like all 3 of the previous pairs but don't.

The integer type is such that every value has a defined predecessor and successor value, which means that 2 intervals of integer can be known to touch if their endpoints are adjacent, even if they aren't equal.

Now it is actually a design decision as to whether interval logic should specially recognize discrete types like integers and treat distinct closed endpoints as touching, or decide not to if it wants a measure of consistency with continuous types like general rationals. But whatever decision is made, it needs to be followed consistently, and the last 2 lines show that isn't the case.

So either ic2 needs to produce a single Interval[4,8] or iu2 needs to return Null.

Component integration.

This looks great, and I'd like to try integrating it into the knowledge artifact editor at http://knartwork.healthcreek.org, which is an Angular 2 application. Do you have guidance on how to this is modularized/componentized such that it can be included into other apps, and how to bind input/output to client-side data models?

No result is display in FF or Edge

I tried the example or CQL TEST from other source on https://cql-runner.dataphoria.org/ but nothing ever appear in the result

I configured our cql-ruler server but I got the same result, I even put obviously wrong CQL and I got no message

is the app using a recent API to the CQL ruler ?

thanks in advance

best regards

How to

Hello, I have installed cql_runner and cqf-ruler. How to set up cql_runner to use the cql engine include in cqf_ruler?

CQL Runner all Translation Error messages display in 1 long line

The CQL Runner at http://cql-runner.dataphoria.org displays runtime results nicely, one per line, but if a failure occurred early when translating the CQL to ELM, the whole list of errors, each with a line/col indicator, are all a single run-on sentence; they all display on one line.

This ticket is a request to display each Translation Error on a separate line so it can be read effectively. It should be a simple matter of adding a line break in the Output before each item.

CQL Runner fails with FHIR version 3

The current CQL Runner service at http://cql-runner.dataphoria.org fails to handle FHIR version 3 in a variety of different ways.

Running the following code example as is will output the define without errors:

library Y version '1.0.0'
//using FHIR version '3.0.1'
//using FHIR version '3.0.0'
using FHIR version '1.8'
include FHIRHelpers
define x: 1

Trying to use FHIR 3.0.1 (the latest version) instead and without any FHIRHelpers produces the error:

>> Translation Error: [Y-1.0.0[3:1, 3:26]Could not resolve model info provider for model FHIR, version 3.0.1.]

Trying to use FHIR 3.0.0 instead and without any FHIRHelpers doesn't have an error.

Trying to use FHIR 3.0.0 but with FHIRHelpers produces a ream of errors from inside the FHIRHelpers used implicitly by CQL Runner.

>> Translation Error: [FHIRHelpers-1.8[3:1, 3:24]Could not load model information for model FHIR, version 1.8 because version 3.0.0 is already loaded.
, FHIRHelpers-1.8[5:35, 5:45]Could not resolve model name FHIR
, FHIRHelpers-1.8[5:1, 6:54]org.hl7.elm.r1.Null cannot be cast to org.hl7.elm.r1.TypeSpecifier
, FHIRHelpers-1.8[8:37, 8:49]Could not resolve model name FHIR
, FHIRHelpers-1.8[8:1, 9:78]org.hl7.elm.r1.Null cannot be cast to org.hl7.elm.r1.TypeSpecifier
...

More generally, FHIRHelpers internally requires FHIR 1.8 and so any library using FHIRHelpers can't use any other FHIR version.

The task of this ticket is to make CQL Runner accept FHIR 3.0.1 or otherwise at least make it so FHIRHelpers works with FHIR 3.0.0 or the latest FHIR version that is supported at the time.

Visual artifacts and UI locking in Safari

The current CQL Runner at http://cql-runner.dataphoria.org exhibits certain visual artifacts and consequential UI failures in the Safari browser (version 11) which can be reproduced by the following steps:

  1. Load the page http://cql-runner.dataphoria.org
  2. Click on "Config" on the top left which brings up the config panel.
  3. Click on any of the dropdown menus in that panel.
  4. Click outside the config panel such as on the input window; the config panel disappears but not the dropdown menu; this is the first visual artifact.
  5. Trying to click "Config" again doesn't bring that panel back.
  6. Click the Run button; the Run process goes through its cycles, and when its done, the Run button has 2 triangles plus an hourglass icon all displayed at once.

Firefox and Chrome don't exhibit these problematic behaviours.

Null values for pre-set examples

Is this project still being maintained? I'm getting null values for the examples. I also tried adding my own data source and expressions for my target patient came back null as well.

Thanks

Bad QUICK ModelInfo?

If I try to run the following:

using QUICK

valueset "V": 'x'

define _:
  [Procedure : "V"]

I get the following error:

Error [5:1]: Unexpected exception caught during execution: ca.uhn.fhir.rest.server.exceptions.InvalidRequestException: HTTP 400 Bad Request: Unknown search parameter "type". Value search parameters for this search are: [_id, _language, based-on, category, code, context, date, definition, encounter, identifier, location, part-of, patient, performer, status, subject]

It seems like it's trying to search for Procedure using the type search parameter, which doesn't exist for Procedure.

I think this is probably the wrong repo to file this ticket though. Should I file in DBCG/cql_engine or DBCG/cql_execution_service instead?

Retrieve with filter example doesn't return expected results

The example "Retrieve with filter" is not returning the expected results.

First, the example is looking for a clincalStatus of inactive, it should be active.

Even addressing that, the definition:

define MalignantNeoplasmConditions:
  [Condition: "Malignant Neoplasm of Colon"] C
    where C.clinicalStatus.value = 'active'
      and C.verificationStatus.value = 'confirmed'

Returns:

>> MalignantNeoplasmConditions [20:1] []

We confirmed via http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/Condition?patient=Patient-12214 that this patient has a condition with SNOMED code 363414004.

We also confirmed via http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/ValueSet/2.16.840.1.113883.3.464.1003.108.11.1001 that this value set contains the code 363414004.

web service non-graceful crash on trivial bad user input

The CQL Runner web service at http://cql-runner.dataphoria.org crashes on trivial bad user input rather than handling this gracefully.

The simplest reproduction is to just go to http://cql-runner.dataphoria.org and hit the "Run" button while the Input field has its default value consisting of a comment and no code; alternately the Input pane can be completely blank for contain garbage like just the character "x".

The actual result in the Output pane is the error message: >> Engine Service call failed: Response with status: 500 Request failed. for URL: http://cql.dataphoria.org/cql/evaluate

Now an HTTP response of 500 means "Internal server error", that is something has gone wrong, but the server can not be more specific about the error condition in its response to the client. This is perceptually and actually the same as a standard GUI application suddenly crashing with only the operating system to report that it died.

The expected result in the general case is that the Output pane would contain some kind of graceful error message, at the very least, that the server didn't like what the user left in the Input field when hitting "Run", thus being explicit that there is something wrong with the user input, which may typically mean an HTTP 4xx response, rather than a 5xx which is saying its the server at fault.

For a null input a good response would likely be that the input is correct but is a null program.

In contrast to this, providing a valid input such as define "Number1": 1 does provide a successful result.

Possible to make a new install work today?

tl;dr: On a new Linux box, with Node.js v6.10.3, is it possible to get cql_runner up and running?

I'm finding it impossible to get all of the npm dependencies installed successfully to run cql_runner. I'm not that familiar with the nodejs/npm ecosystem so I might be missing something that's obvious to others, but I've been battling this for several hours so figure I'd ask for help.

I have a fresh Ubuntu 17.04 box. I've downloaded the current node.js LTS version from nodejs.org, v6.10.3 and added it to my path.

Following the cql_runner readme, I first npm install -g [email protected]. That's where the first problem comes up; it can't find that version but mentions that the old angular-cli package name is deprecated and it's under @angular/cli now. So instead I npm install -g @angular/[email protected], which gets further but leaves an unmet peer dependency:

npm WARN @angular/[email protected] requires a peer of zone.js@^0.8.4 but none was installed.

Doing some research about npm, it sounds like at some point not all dependencies automatically install, so I should manually install. I try npm install -g zone.js@^0.8.4. That seems to complete successfully by installing [email protected], but if I do a npm ls -g I still end up with:

npm ERR! peer dep missing: zone.js@^0.8.4, required by @angular/[email protected]

...which seems odd, because 0.8.11 should be compatible with 0.8.4, but let's try explicitly installing 0.8.4 with npm install -g [email protected]. Still get the same error from npm ls -g, even though in that tree it prints out [email protected] is now explicitly listed as installed. Maybe some downstream changes that aren't supported by the 1.0.0 release candidate of @angular/cli?

Anyway, not sure how important that remaining zone.js dependency is, let's move on to cql_runner itself, continuing to follow the readme.

npm install -g... completed without errors or warning!

Now to the local dependencies: npm install. Here's where we end up with a lot of warnings about unmet dependencies:

npm WARN @ng-bootstrap/[email protected] requires a peer of @angular/core@^4.0.3 but none was installed.
npm WARN @ng-bootstrap/[email protected] requires a peer of @angular/common@^4.0.3 but none was installed.
npm WARN @ng-bootstrap/[email protected] requires a peer of @angular/forms@^4.0.3 but none was installed.
npm WARN @angular/[email protected] requires a peer of typescript@^2.1.5 but none was installed.
npm WARN [email protected] requires a peer of typescript@^2.1.0 but none was installed.

If I ignore those warnings and proceed to ng build, it finishes with the following warnings:

WARNING in ./~/@ng-bootstrap/ng-bootstrap/buttons/radio.js
108:12-21 "export 'Renderer2' was not found in '@angular/core'

WARNING in ./~/@ng-bootstrap/ng-bootstrap/buttons/radio.js
212:12-21 "export 'Renderer2' was not found in '@angular/core'

WARNING in ./~/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-input.js
188:12-21 "export 'Renderer2' was not found in '@angular/core'

WARNING in ./~/@ng-bootstrap/ng-bootstrap/modal/modal-window.js
61:12-21 "export 'Renderer2' was not found in '@angular/core'

WARNING in ./~/@ng-bootstrap/ng-bootstrap/popover/popover.js
119:12-21 "export 'Renderer2' was not found in '@angular/core'

WARNING in ./~/@ng-bootstrap/ng-bootstrap/tooltip/tooltip.js
131:12-21 "export 'Renderer2' was not found in '@angular/core'

WARNING in ./~/@ng-bootstrap/ng-bootstrap/typeahead/typeahead.js
224:12-21 "export 'Renderer2' was not found in '@angular/core'

If I forge ahead and cd src && ng server, I get the same warnings but the server starts up. When I open localhost:4200 in the browser, there's just a page that says "Loading..." indefinitely. The JavaScript console in the browser shows the same warnings about Renderer2 not found.

So I'm guessing some of those NPM warnings about missing dependencies are, indeed, relevant. But here's what I just get stuck. First I try manually installing those missing dependencies from the earlier npm install run: npm install @angular/[email protected] @angular/[email protected] @angular/[email protected] [email protected] [email protected]. That says there is no 2.1.0 of typescript, so remove that from the command and hope 2.1.5 satisfies everything.

That command completes, but now there are even more unmet dependencies:

npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of zone.js@^0.8.4 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none was installed.

So if I keep going down the rabbit hole of manually installing the specific versions of all the dependencies listed here, I can never get to the end. It always ends up either adding new dependencies on different versions of the same things, or I end up with some invalid packages.

Thinking "maybe the older NPM versions that tried to automatically satisfy more peer dependencies can solve this for me," I started over with Node.js v4.8.3 and its corresponding npm 2 version. Again following the instructions in the cql_runner readme, didn't get much father... it fails installing the dependencies.

As I stated at the beginning I really don't know much about the node and npm ecosystem, so I'm stuck here and don't know if a) I'm doing something totally wrong related to npm, or b) if the cql_runner project isn't currently in a state that I should expect to be able to get it up and running. Any insight would be appreciated!

HTTP 400 errors for Coverage resource

The CQL Runner at http://cql-runner.dataphoria.org has a problem with the Coverage FHIR resource.

library L version '1.0.0'
using FHIR version '3.0.0'
//context Patient
define x: [Coverage] Cov

Execute that and you get this result:

>> Error: HTTP 400 Bad Request: Unknown search parameter "patient". Value search parameters for this search are: [_id, _language, beneficiary, class, dependent, group, identifier, payor, plan, policy-holder, sequence, subclass, subgroup, subplan, subscriber, type]

Under normal usage (and with context Patient uncommented), that 400 error may appear multiple times, such as once for each define that mentions [Coverage] directly or indirectly.

CQL Runner shows no output for some null defines

The CQL Runner at http://cql-runner.dataphoria.org fails to show output for some defines where the result is null, though it does show output for some other null results.

Given these 4 defines as input:

define y1: DateTime(2012) < DateTime(2014, 2, 15)
define y2: DateTime(2015) < DateTime(2014, 2, 15)
define y3: DateTime(2014) < DateTime(2014, 2, 15)
define x1: null < DateTime(2014)

These 3 lines are output:

>> y1 [10:1] true
>> y2 [11:1] false
>> x1 [13:1] Null

So a Null produced because an argument is null shows up, but a null produced when the answer is "I don't know" when comparing 2 particular dates of different precisions shows no result at all.

The task of this issue is to make the result for defines like y3 show up in the output.

exists() returnes wrong result for null and null list

Spec states:

define "ExistsIsTrue": exists { 1, 3, 5, 7 }
define "ExistsIsFalse": exists { }
define "ExistsIsAlsoFalse": exists { null }
define "ExistsIsAlsoAlsoFalse": exists null

CQL Runner returns 'undefined' (should be: false) for:

library BareMinimum version '0.0.1'
using FHIR version '4.0.1'
define N: [Basic]
define X: exists N // 'undefined'

Unit conversion support

Does CQL runner support unit conversion? We expected an output of 'mg/d' unit for "Product" but the return is 'mL'. Thank you!

define "MedicationStrength":
  System.Quantity {value: 0.25, unit: 'mg/mL'}
    
define "Supply":
  System.Quantity {value: 15, unit: 'mL'}
    
define "DaysSupplied":
  System.Quantity {value: 29, unit: 'd'}
    
define "Product":
    ("Supply" * "MedicationStrength")/"DaysSupplied"
>> MedicationDose [1:1] 0.25 'mg/mL'
>> Supply [4:1] 15 'mL'
>> DaysSupplied [7:1] 29 'd'
>> Product [10:1] 0.12931034 'mL'

Report the same location context info for errors as for successes

When a CQL named expression is evaluated successfully, the output gives the expression name and line number in the source code, for example:

>> Is Colonoscopy In Last Ten Years [304:1] false

However, when there are runtime errors with an expression, that context is not indicated, for example:

>> Error: HTTP 404 Not Found

The task of this ticket is to update the runner such that the expression name / line number context is always reported regardless of whether the evaluation result is successful or an error.

This information is important for tracking down where in many possible places the error may originate in the source code.

Null context Population result

Hi, I'm trying to execute a simple script but the result for the script below is null. Is it correct?

library Retrieve2 version '1.0'

using FHIR version '3.0.0'

context Patient

define InInitialPopulation:
  AgeInYearsAt(@2013-01-01) >= 1

context Population

define PopulationCount:
  Count(InInitialPopulation)

Result:

>> Patient [5:1] Null
>> InInitialPopulation [7:1] Null
>> PopulationCount [12:1] 0

The script is taken from http://cql.hl7.org/02-authorsguide.html#context

CQL Runner inexplicable list cardinality errors

With http://cql-runner.dataphoria.org enter the following simplest-case program for Input:

//library R
using FHIR
context Patient
define x: 1

Hitting the Run button will produce this output:

>> x [4:1] 1
>> Error: Expected a list with at most one element, but found a list with multiple elements.

Attempting to run many different programs produces either one or often many instances of the above Error message; there is no obvious direct cause and the errors seem to be originating from the internals of CQL Runner.

The above program is the simplest reproducing case. Removing the "context Patient" makes the error go away. Removing the "using FHIR" also makes the error go away. Technically the "using" and "context" lines are the only ones required, and produce the error message alone. The presence or absence of the "library" line has no effect. (The "define" shows the program is otherwise running.)

Since presumably real program errors can result in the cardinality issue, the above errors can confuse as to whether someone's code is at fault or not. Otherwise it is a lot of verbosity in the output.

Thank you in advance for a quick fix.

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.