PracticeFusion.MmeCalculator.Core 1.2.2

dotnet add package PracticeFusion.MmeCalculator.Core --version 1.2.2                
NuGet\Install-Package PracticeFusion.MmeCalculator.Core -Version 1.2.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PracticeFusion.MmeCalculator.Core" Version="1.2.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PracticeFusion.MmeCalculator.Core --version 1.2.2                
#r "nuget: PracticeFusion.MmeCalculator.Core, 1.2.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PracticeFusion.MmeCalculator.Core as a Cake Addin
#addin nuget:?package=PracticeFusion.MmeCalculator.Core&version=1.2.2

// Install PracticeFusion.MmeCalculator.Core as a Cake Tool
#tool nuget:?package=PracticeFusion.MmeCalculator.Core&version=1.2.2                


Practice Fusion MME Calculator

Morphine Milligram Equivalent (MME) Calculator: APIs, Containers and Samples

The calculator accepts two parameters:

  1. the RxNorm RxCUI (the drug identifier), which is used to retrieve the RxNorm normalized drug name
  2. the sig, free-text instructions from the prescriber or pharmacist indicating how the patient should use the medication

The sig is used to establish a maximum or total daily dose. The normalized drug name is used to identify active opioids and their strengths, so that a total daily dose in milligrams (or the appropriate unit of measure) can be established. Finally, using the appropriate conversion factor, which sometimes requires additional information on the route or form of the drug, a maximum morphine milligram equivalence per day is calculated.

The result is returned along with analysis of the medications and sigs. The analysis breaks down the parsed and calculated information, and includes a confidence rating on the information, along with any explanation of failures. Currently, if there are any failures, the calculator returns a "no-confidence" result.

The calculator makes no recommendations regarding the safety of the maximum MME per day, that is instead left up to calling services (like clinical decision support services), which should analyze the calculated result and the confidence of the calculation before making a recommendation.

Installing / Getting started

Installing the NuGet Package

To use the calculator in your own project, add the package:

dotnet add package PracticeFusion.MmeCalculator.Core

See the sample CLI for more information on how to use the calculator.

Running the web demo in a docker image

  1. From the src directory, run:
$ docker build -f Samples/PracticeFusion.MmeCalculator.WebDemo/Dockerfile . -t mmewebdemo
$ docker run -d -p 80:80 --name mmewebdemo mmewebdemo
  1. Browse to http://localhost/ to see the demo
  2. Browse to http://localhost/docs to view the api documentation.
Web demo examples

The web demo gives you a quick example of how to pass a sig and an RxNorm ID, and get a calculated MME in response:

A screenshot of the MME Calculator Demo web page, showing an MME calculation

The demo also includes a simple example of just parsing a sig:

A screenshot of the MME Calculator Demo web page, showing a parsed sig

Running the sample CLI in a docker image

  1. From the src directory, run:
$ docker build -f Tools/PracticeFusion.MmeCalculator.Cli/Dockerfile . -t mmecli
  1. Run an instance to see the help:
$ docker run -i --rm mmecli --help

  mmecalculator [options] [command]

  -i, --input <input>                                 input file (if not present, will use stdin)
  -o, --output <output>                               output file (if not present, will use stdout)
  -ow, --overwrite                                    overwrite the output file if it exists [default: False]
  -of, --outputFormat <Basic|Debug|DebugFormatted>    output format (basic, debug) [default: Basic]
  --version                                           Show version information
  -?, -h, --help                                      Show help and usage information


How to Contribute

We want to make contributing to this project as simple as possible, and we are grateful to the community for contributing bug fixes, feature requests and code improvments. Read below to learn how you can take part in improving the MME calculator.

Bug reports

To report a bug click here and fill in the template. We'll look at it as soon as we can.

Feature Requests

To request a new feature click here and fill in the template.

Contributing Guide

Read our Contributing Guide

Code of Conduct

We have adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text.




The Practice Fusion MME Calculator is licensed under the MIT license.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on PracticeFusion.MmeCalculator.Core:

Package Downloads

This package provides the MME Calculator with RxNorm results retrieved using the RxNorm API services described at: This product uses publicly available data from the U.S. National Library of Medicine (NLM), National Institutes of Health, Department of Health and Human Services; NLM is not responsible for the product and does not endorse or recommend this or any other product.


This package provides a static set of RxNorm lookups. For testing ONLY, not for production use. The data contained in this package is static, and will not be updated regularly. It is retrieved from the NIH Value Set Authority Center: Value Set Name: Opioids, All Code System: RXNORM OID: 2.16.840.1.113762.1.4.1196.226 Type: Extensional Definition Version: 20191126 Steward: IMPAQ International

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.2 218 7/20/2023
1.2.1 351 4/1/2023
1.2.0 653 12/2/2022
1.1.2 1,974 5/11/2022
1.1.1 449 1/9/2022
1.1.0 445 12/24/2021
1.1.0-alpha.1 124 12/24/2021
1.1.0-alpha.0 119 12/24/2021
0.0.0-alpha.0.2 123 12/24/2021
0.0.0-alpha.0 111 12/24/2021