Code Monkey home page Code Monkey logo

genomics-operations's Introduction

HL7 FHIR Genomics Operations - Reference Implementation

Source code for a public reference implementation of HL7 FHIR Genomics Operations.

Please refer to project Wiki page for details of this reference implementation, including how to replicate.

For additional information on the operations and the reference implementation, please see our JAMIA manuscript.

Issues (bugs, enhancements, etc) can be entered here. (Legacy issues are here). Contact [email protected] for other comments.

Use Case

A common use case driving the operations is the notion of an application (e.g. a SMART-ON-FHIR clinical genomics App, a clinical decision support application, an EHR screen) needing specific genotype or phenotype information, for a patient or a population. Applications have diverse needs, such as matching a cancer patient to available clinical trials based on identified somatic variants; screening for actionable hereditary conditions; identifying a risk for adverse medication reactions based on pharmacogenomic variants; updating a patient's risk as knowledge of their variants evolves; and more. A goal for FHIR Genomics operations is to ultimately support any and all of these clinical scenarios.

Scope

In scope are clinical genomics operations. In the future, operations supporting variant calling and annotation, and knowledge base lookups may be added. We further categorize clinical genomics operations along two orthogonal axes - subject vs. population, and genotype vs. phenotype. For example, the 'find-subject-variants' operation retrieves genotype information for a single subject; whereas the 'find-population-tx-implications' retrieves a count or list of patients having specific phenotypes (such as being intermediate metabolizers of clopidogrel).

Response

All operations return a JSON output. However, if an invalid request is submitted, or some other error occurs, a JSON response is returned in the following format:

{
  "type": string,
  "title": string,
  "detail": string,
  "status": int
}

Status Codes

The operations return the following status codes:

Status Code Description
200 Successfully executed request
400 ERROR: Invalid query parameters
404 ERROR: Patient not found
422 ERROR: Failed LiftOver
500 INTERNAL SERVER ERROR

Testing

To run the integration tests, you can use the VS Code Testing functionality which should discover them automatically. You can also run python3 -m pytest from the terminal to execute them all.

Additionally, since the tests run against the Mongo DB database, if you need to update the test data in this repo, you can run OVERWRITE_TEST_EXPECTED_DATA=true python3 -m pytest from the terminal and then create a pull request with the changes.

genomics-operations's People

Contributors

akrampersad avatar arraxx avatar dependabot[bot] avatar fatemaker254 avatar justinaronson avatar lmckenzi avatar mihaitodor avatar rhdolin avatar rohan-cod avatar yashjanidev avatar

Stargazers

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

genomics-operations's Issues

Unit test coverage

Issue:
There are a lot of functions in the common.py file which don't have unit tests. Currently, only the is_int function is tested

Solution:
Unit tests for the other testable functions should be added

Adding parameters for germline and somatic genomicSourceClass

Issue

Adding parameters for germline and somatic genomicSourceClass

Context

Under Subject Genotype Operations the Patient NB6TK328's genotype under finding_subject_haplotype showing same results for both somatic and germline genomicSourceClass parameter.

Solution

Different output should be displayed after selection of either genomic or somatic genomicSourceClass.

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.