|
Project Information
-
Activity
Medium
-
Project feeds
- Code license
-
Apache License 2.0
-
Labels
omhe,
openmobile,
health,
OpenMobileHealthExchange,
Python,
python-omhe,
ruby-omhe,
c-omhe,
microsyntax,
microformat,
quantifiedself,
mhealth
Links
|
OMHE (Open Mobile Health Exchange): A Microsyntax for Devices, Machines, & Humans:NOTE: This wiki is still active but the source code for the project is now maintained on github.com. http://github.com/videntity/python-omhe OMHE (Open Mobile Health Exchange), pronounced "ooommm" is an open-source microsyntax for text messaging (mobile SMS), Twitter®, medical devices, and other "short text capable" systems. It is a community work product of microsyntax.org. Its called OMHE because its the nirvana of health informatics..open, free, and simple. OMHE follows the basic syntax: [command]<value>#<tags>
...or...
[command]=<value>#<tags> So the '=' sign is optional to make it easy to work on a telephone keypad when needed. For example, to report weight (either automatically reported by a scale or by human, you could say things like.
wt155
...or...
weight=100.0k#afteryoga
The examples above illustrate two ways of communicating the same piece of information, 'weight'. Use OMHE as format for sending blood pressure, blood glucose, weight, pedometer readings, pain levels, and other common information exchanged between people, health care providers and medical devices. OMHE is designed to be easily typed on a mobile phone, while at the same time, easy for computers to read, write, and understand (i.e. machine readable/writeable). Although OMHE is simple enough for manual human entry, its not always necessarily typed directly by humans. For example, many applications may present the user (human) with a graphical user interface (GUI), but still use OMHE as the underlying data format. You can think of OMHE like its own markup language. You can use OMHE for "machine-to-machine" communication too. OMHE serves as an open source output message format for medical devices such as pedometers, blood glucose meters, heart monitors, weight scales, and other hardware. Why was OMHE Created?:OMHE was created for the greater good and in the interest of improving public health. Specifically, OMHE can increase electronic communication between people & physicians, OMHE promotes behavior change & disease prevention. All health data formats belong in the public domain, but most are proprietary or closed to the general public. OMHE, on the other hand, has no royalties, no fees, and no groups to join to access the format. OMHE is quite purposefully made freely available to all in an effort to lower health care costs and promote interoperability. Power to the people. Setup python-omhe parser library for Linux or Mac:From a console, type: sudo easy_install https://github.com/aviars/python-omhe/tarball/master Note you will need administrator privileges to complete this command because you are writing files to your system and not your local directory own by you. Setutools should already be instaled on Mac and many Linux distributions. However, if the above command does not work, you might be missing setuptools. To install on Ubuntu, type: sudo apt-get install setuptools
If you wan to install to a different directory or do not have root privileges then use the '--install-dir' option. To install on Ubuntu type: easy_install --install-dir=/home/foo/yourpath' https://github.com/aviars/python-omhe/tarball/master Make sure to add your install path to your $PYTHONPATH environment variable; How Can You Help?:If you want to help make OMHE better, we would love to have more volunteers. Please read the open source section near the bottom of this page. What is OMHE? - Nuts and Bolts Technical Details:To understand OMHE, let' first talk about what OMHE is not. :-) What OMHE is NOT:OMHE does NOT define the how the information is transported, such as text message (SMS), Twitter, BlueTooth, RS232, USB, RF, or other means, but OMHE is certainly compatible with all of these means or data transport. OMHE does not define any particular device such as brand X's pedometer, blood pressure meter, weight scale, blood glucose meter. Instead, OMHE provides medical device manufactures a royalty-free, open-format to make their devices communicate more with a broader array of systems and services. For all you propeller heads out there, you can think of OMHE loosely in terms of a model-view-controller (MVC) framework. OMHE serves the "data model" role, wheres the "view" can be though of as the transport medium (SMS, Twitter, email, etc.), and the "controller" is any application which "does something meaningful" with the data. Don't worry its not too hard to understand. OMHE is simple and designed to make life easier. OMHE is simply a super-short, well-defined, format designed to foster communication of health information between all devices, machines, and humans. OMHE is designed for use by any person (mortal or developer), system, or device capable of sending a short text string of 160 characters or less. OHME simply defines an open-source way to encode information such as blood pressure, steps per day, blood glucose, weight, and similar information. The complete list of OMHE COMMANDS can be found below in the Command Reference section. This wiki page you are reading serves as the official OMHE reference. Name Value Pairs:An OMHE string is an ASCII string of 160 characters (bytes) or less made up or one or more OMHE commands. An OMHE string is is simply a string made up of one or more name-value pairs(commands) separated by white spaces. All OMHE commands require an COMMAND NAME, but not all OMHE commands require a VALUE. Two or more letters make the COMMAND_NAME or KEY. The following section, if present and until whitespace or "#" is encountered is the VALUE. You can also separate the a command's NAME and VALUE with an equals "=" sign. OMHE is very simple and 2 dimensional in this way. A parsed OMHE string can represented (or thought of )like a named array, a dictionary ( or other similar structure depending on your development language). Tags:The '#' symbol lets you TAG each command as needed.This helps you add context, additional information, and the ability to support custom application behavior. In this respect, OMHE commands are extensible. You simply add TAGS to the end every COMMAND by prefixing each with a '#' symbol. Reserved Characters:The only reserved characters are "=", "#" ,"|", "*", and " ". As these have special meaning and are used in the parsing process. Whitespace " " and stars "*" are both legal OMHE command delimiters. The equals "=" sign delineates a command name from its value (and tags if present). | CHARACTER(s) | USE | COMMAND NAME | VALUE | TAGS | | " " | Separates commands | INVALID | VALID W/ ESCAPE | VALID W/ ESCAPE | | "=" | Separates command name from command value | INVALID | VALID, but cannot begin with "=", unless escaped. | VALID W/ ESCAPE | | "#" | Identifies and separates tags. | INVALID | INVALID | INVALID | | "|" | Reserved for future use | INVALID | INVALID | INVALID | | "*" | Reserved for future use | INVALID | INVALID | INVALID |
Naming Conventions:Also each command must begin with either a defined OMHE COMMAND_NAME or your own command made up of at least 2 characters. When defining your own commands, you'll need to add support to any parser to recognize your new command. The concept of namespaces will be supported in future version as our group figures out the best approach. We anticipate that most namespaces will be implied by the application, but the option will exist to explicitly tie a command to a particular namespace. In fact, OMHE itself can be conceptualized as a namespace. Design Philosophy:OMHE was designed with ultimate simplicity in mind and borrows from the JSON design philosophy. A key design consideration behind OMHE is the notion of creating a very stable and reliable format. As a general rule, when an OMHE comand status is "ACCEPTED", it will not change, however, NEW commands can and will be added. We want to make sure you can rely on OMHE formats to not break things. With an eye to ensure stability over time, we seek to ensure using OMHE syntax now will not break later when new commands are added. A public registry is being designed to submit new commands. Examples:#The basic OMHE syntax follows this basic format"
[COMMAND_NAME]<VALUE><#[TAG]>
# Reporting WEIGHT (This is correct):
wt123.4
# In the previous example, COMMAND_NAME=wt and VALUE=123.4
# Reporting WEIGHT (Also Correct):
wt=123.4
wt=123.4l
wt86k
weight=123.4
# In the previous example, COMMAND_NAME=wt and VALUE=123.4
# Reporting WEIGHT with _TAGS_ (Also Correct) :
wt=123.4#mytag#myothertag
# The previous example has two tags: 'mytag' and 'myothertag'
# Weight is a command that requires a value (These are INCORRECT):
wt
wt=
weight=
#Note that some commands do not require value. The most common example is when you
are trying to summon some piece of information. For example, 'getbloodpressure' or its short form 'gbp'.
#This is CORRECT
gbp
#This is INCORRECT and will FAIL
gbp=
# Report the start of a menstrual cycle (correct):
# (Correct) mcycle is another example of a command where value is not required
mcycle
# Report the first day of a menstrual cycle:
# Notice we can still add tags even if no value is given
mc
# Report the start of a menstrual cycle (Incorrect):
# You can't provide an equals "=" sign without a value:
mc=
# Report the adherence to a health directive such as taking medication (correct):
# (Correct) did is a command where value is not required
did
# Report the adherence to a health directive to stretch arm (correct):
did=ARMSTRETCH
# Send Blood Glucose Level:
bg125
# Send Blood Pressure:
bp100d120p65
# Send Blood Pressure using the equals sign style:
bp=100d120p65
# Send Blood Pressure with just numbers (must be exactly 9 digits in the form SSSDDDPPP):
bp=150099070
#Check In:
ci I just did 100 push ups! East my dust-o amigos!
# Send Weight:
wt145
wt=145 #Express weight using the equals sign style
w78k #Express weight in kilograms
wt145l #Explicit express weight in pounds (lbs)
wt245.8 #Express fractional weight
wt245p8 #Another way to express fractional weight
# Send blood glucose, patient identifier, a note, and the date:
bg145 id213762732467234 nAllGood d20090117
# Sending blood glucose with a simple note tag (with spaces):
bg145#I'm*feeling*very*tired*today
# Report the start of a menstrual cycle:
mcycle
# Get a copy of your health benefits/insurance card:
gethc
# Send a copy of your health benefits card to someone via fax:
sendhc=6509840982#fax
# Send a copy of your health benefits card as a pdf to someone via email:
sendhc=nurse@mydoc.com#pdf
# Get a copy of your personal health record:
getphr
# Get a copy of your personal health record as a pdf:
getphr#pdf
# Get a copy of your personal health record in CCD format:
getphr#ccd
# Send a copy of your personal health record to someone in CCR format:
sendphrnurse@mydoc.com#ccr
# Send a copy of your personal health record to someone in XML microformat:
sendphr=nurse@mydoc.com#microformat
Responses:OMHE has started response messages defined as well. For example 'ok' means everything wen through. So if you send the message 'shc=aviars@foo.bar', an OMHE service may send back an message beginning with 'ok'. So an "ok" response might look like: ok. Your health record was successful delivered to aviars@foo.bar. You might also encounter an error. an error should return the error "code" as the first part of the message, followed by any additional information. Using the above example, sending 'shc=aviars@foo.bar' may result in 'er7' if the network is unavailable. An erro might look something like: er7. Your send health card request failed due to a network error. Please try again. Below is the table of response codes.... Response Definitions:| RESPONSE CODE | NAME | CODE NUMBER | DETAILS | STATUS | | ok | OK | 0 | This means its all good, everything is a-okay | PROPOSAL | | err | UNKNOWN MISC ERROR | 1 | There was an unknown error. Here are the details. | PROPOSAL | | er2 | UNSUPPORTED FUNCTION | 2 | This OMHE command you sent is not supported bu this service. | PROPOSAL | | er3 | NOT AUTHORIZED | 3 | You are not authorized to use this service. Maybe you need to sign up? | PROPOSAL | | er4 | BAD REQUEST | 4 | the request was invalid. Invalid syntax | PROPOSAL | | er5 | USER NOT FOUND | 5 | No user account was found | PROPOSAL | | er6 | INVALID PASSWORD OR CREDENTIAL | 6 | Invalid pin or password | PROPOSAL | | er7 | NETWORK ERROR | 7 | A network error occurred. | PROPOSAL |
Representing OMHE Data in XML, JSON, and Other Formats:The OMHE message is just an encoded text string, however, there are ways to represent OMHE data in other formats. OMHE has an XML schema (XSD) so the information can be converted, represented, and validated in XML. Similarly, OMHE has a corresponding JSON format. JSON Examples and be found by clicking the downloads tab above. In addition, herehttp://code.gogle.com/p/microformat is an XML container microformat that can be used in conjunction with OMHE. Parser Rules (How to Build an OMHE Parser) and Conventions:If you are building your own OMHE parser, then it should follow these simple rules. An OMHE decoder MUST accept all well-formed OMHE messages. An OMHE message MUST be an ASCII string of 140 characters or less. An OMHE decoder MAY also accept non-OMHE text. Any parser you create MUST NOT produce an error if extra information is supplied. An OMHE encoder MUST only produce well-formed OMHE text. This is consistent with Postel's Law: "Be liberal in what you accept, and conservative in what you send." We allow for OMHE supersets. In other words, you can add your own commands. An OMHE message string is nothing more than the text being sent, however, we can represent OMHE message as XML, JSON or other delimited format for convenience. A Python based API can be downloaded for reading and writing the OMHE format. Libraries for various other languages are in planning. Please consider contributing your time and energy to this open source effort. If you create a language or platform specific version, please consider submitting it here. Start by joining the Google Group. Open Source Development:OMHE is volunteer open source project under Microsyntax.org. We are looking for people who want to help refine the format as well as help with building tools in various programming languages that encode and decode OMHE messages. So if you like to write code and are interested in furthering mobile health applications, please consider volunteering for this open source project. Reporting and Adding Information (to some arbitrary system):| COMMAND | NAME | KNOWN ALIASES | STATUS | OPTIONS | NOTES | EXAMPLES | | ci | Check In | ci, checkin, check-in | BETA | # tags are allowed. | Stop using an OMHE service. | ci=Howdy Partner, checkin=Just ate a tofo.#lunch Gross!t | | bp | Blood Pressure | bloodpressure | BETA | Use either a 'd' or a front slash '/' to delineate between systolic and diastolic readings. Either 'd' or '/' is required for a valid message. Use 'p' to denote pulse. # tags are allowed. | The first number always represents systolic pressure. The second number is always the diastolic pressure. the third number is always pulse (if given). Systolic acceptable range: 50-400. Diastolic acceptable range:20-200. Pulse acceptable Range: 30-200. | bp90d123p70, bp=102d80p70, bp140d80p60, bp=140/80p60, bp=120080060 |
| rhr | Resting Heart Rate | restingheartrate | PROPOSAL | Tags are allowed. Acceptable range is 30-150 | Express the heart rate at rest | rhr60, resthearrate=55 | | hr | Heart Rate | heartrate | PROPOSAL | Tags are allowed. Acceptable range is 30-200 | Express the heart rate at during exercise. This is usually acquired one time per minute | hr60, hearrate=55 | | lhr | Lactate Threshold Heart Rate | lthr, lactateheartrate | PROPOSAL | Tags are allowed. Acceptable range is 30-210 | Express the heart rate during exercise. | lhr60, lactatehearrate=55 | | v02 | V02 Maximum Heart Rate | vo2 vo2maxheartrate | PROPOSAL | Tags are allowed. Acceptable range is 30-210 | Express the V02 maximum heart rate. | hr60, hearrate=55 | | wt | Weight | weight | BETA | Use the 'k' suffix to denote kilograms. Use the 'l' suffix to denote pounds(lbs). Use '.' or 'p' to indicate 1/10ths of the weight unit. # tags are allowed. | If the 'l' or 'k' is not supplied then the weight unit is inferred based on geography. For example, pounds as a weight unit is implied in the United states. | wt125, wt=125l, wt85k, wt=155.5l, weight=134p7 | | bg | Blood Glucose Level | bloodglucose | BETA | Only # tags are allowed. | Used to express a blood glucose level. Range:0-500 | bg120, bg135, bg=124 | | bmi | Body Mass Index | bodymassindex | BETA | Only # tags are allowed | Used to express a body mass index value. Range:0-100 | bmi20, bmi20p5, bmi19.7, bmi=15.2 bmi=12.3#foo | | fm | Fat Mass | fatmass | BETA | 'k' suffix indicates kilograms. 'l' suffix indicates lbs. lbs is assumed if no weight provided. # tags are allowed | Used to express a body fat mass. | fm12 fm=20, fm=20k, fatmass=20l#foo | | ffm | Free Fat Mass | freefatmass | BETA | 'k' suffix indicates kilograms. 'l' suffix indicates lbs. lbs is assumed if no weight provided. # tags are allowed | Used to express a body's free fat mass. | ffm12 ffm=20, ffm=20k, freefatmass=20l#foo | | pbf | Percent Body Fat | percentbodyfat | BETA | Valid range is 5-80. # tags are allowed | Used to the percent of weight that is made up of body fat. | pbf12.6 pbf=20, percentbodyfat=41#foo | | lip | Lipid Profile (including total cholesterol, HDL, LDL and triglycerides) | chol, chl | BETA | Only # tags are allowed | Used to express total cholesterol, HDL, LDL, and triglycerides. All values are required. The first number is total cholesterol, followed by HDL, LDL, and triglycerides, respectively | lip190h44l126t99 | | st | Steps | steps, spd, fitbit | PROPOSAL | # tags are allowed | Records the number of steps taken in a day. Optionally indicate time in minutes. (This is normally a reading from a pedometer). | st=7540, st=1200, st=5050m480#hike | | km | Kilometers | kilometers | PROPOSAL | # tags are allowed | Records the number of kilometers traveled. Optionally indicate time in minutes.(This is normally a reading from a pedometer) | km7.5, km5m20#park, km=7.5 | | mi | Miles | miles | PROPOSAL | Only # tags are allowed | Records the number of miles traveled. Optionally indicate time in minutes.(This is normally a reading from a pedometer). | mi5m30#forest, mi21.0, mi=21.0 | | sw | Swim | swim | PROPOSAL | # tags are allowed | Records the number of meters swam. Optionally indicate time in minutes. | sw1000, swim1200m60#swimmeet, swim=4000 | | ce | Cardiovascular Exercise | cardio | PROPOSAL | Only # tags are allowed | Cardiovascular exercise. Optionally indicate time in minutes. | ce, ce45, ce=45#gym | | wbe | Weight Bearing Exercise | lift | PROPOSAL | Only # tages are allowed | Weight bearing exercise. Optionally indicate time in minutes. | wbe, wbe45 wbe=40 | | mc | Menstrual Cycle | mooncycle, mcycle, cyclebeads | BETA | Only # tags are allowed | First day of period. | mcycle, mcycle#start | | sp | Sleep | PROPOSAL | sleep | Only # tags are allowed | Indicates number of hours slept. | sleep8, sleep1.5#nap | | ca | Calories | calories | PROPOSAL | Only # tags are allowed | Number of calories consumed. | calories300, c900#bigmac | | pn | Pain | pain | BETA | Only # tags are allowed | Pain (general) on a scale of 0-10. 0=none, 10=max | pain=0, pain9#back, pain=5#neck | | md | Mood | mood | BETA | Only # tags are allowed | Level of happiness, mood, or general feeling of well being on a scale of 0-10. 0=none, 10=max | mood9, mood=1 | | hr | Personal Health Record | BETA | healthrecord | Only # tags are allowed | Report/add a PHR by URL reference. 'hr' may be followed by a valid URL. | hr#someinfo, hr=http://foobar.com/myphr.xml#ccr, hr=https://myphr.foo/mypage.pdf | | hc | Health Card | BETA | healthcard | Only # tags are allowed | Report/add a Health benefits card by URL reference. 'hc' may be followed by a valid URL. | hc#someinfo, hc=http://myplan.com/mycard.xml, hchttp://mysite.com/myplan.pdf#bcbs | | dci | DICOM Image | diacom | PROPOSAL | Only # tags are allowed | Report/add a DICOM image via URL reference. 'dicom' may be followed by a valid URL. | dcihttp://mydicom/myimage.tif, dci= | | dsr | DICOM Structured reports | diacomstructuredreports | PROPOSAL | Only # tags are allowed | Report/add a DICOM structured reports via URL reference. 'dsr' may be followed by a valid URL. | dsrhttp://mydicom/mystructuredreport.dat, dsr=https://mydicom/mystructuredreport.dat | | vts | Voice Transcrips | voicetranscripts | PROPOSAL | Only # tags are allowed | Report/add a voice transcript via URL reference. 'vts' may be followed by a valid URL. | vtshttp://myserver.com/myvoicets.dat, vts=https://myserver.com/myvoicets.dat | | snm | Snomed CT | snomed | PROPOSAL | Only # tags are allowed | Report/add a SNOMED data block via URL reference. 'snm' may be followed by a valid URL. | snmhttp://mysnomed/mydata.dat, snm= | | lab | Lab Data | non | PROPOSAL | # tags are allowed | Report/add a Lab result via URL reference. 'lab' may be followed by a valid URL. | lab#someresult, lab=http://mylab/myresult.xml#hl7, lab=http://mylab/myresult.pdf | | rx | Medication Prescription | med, prescription | PROPOSAL | # tags are allowed | Used to to indicate a prescription regimen. An identifier, such as Pillbox id, follows 'med' to indicate the prescription or OTC medicine. | medasprin, rx21736652#pillbox rx82732304#rxnorm#foo | | did | Medication Regimen or other Activity Adherence | goterdun, didit | PROPOSAL | # tags are allowed | Used to to indicate adherence prescription drug regimen or other activity. An identifier, such as pillbox id, follows 'did' to indicate the medication. | did=armstretch, did=21736652#pillbox did82732304#rxnorm#foo | | cl | Medical Checklist | checklist | PROPOSAL | A value is required. # tags are allowed | Create a new medical checklist of type Value. Value is a pointer to JSON tasklist. | cl=emergency, cl=http://foo.com/emergency.json | | tsk | Task from Checklist | task | PROPOSAL | A value is required. The value represents a pointer to a pending checklist task. # tags are allowed | Complete a task on a checklist. | task=push_the_button, tsk=4 | | zeo | Zeo Sleep Score | sleepscore | BETA | A number between 1-100 is required. # tags are allowed | A sleep score generated by the Zeo sleep machine (http://myzeo.com). | zeo=77, sleepscore99 |
Commands for Getting and Sending Information to Others:| COMMAND | NAME | KNOWN ALIASES | STATUS | OPTIONS | DETAILS | EXAMPLES | | gbg | Get Blood Glucose Level | getbg, getbloodglucose | PROPOSAL | Only # tags are allowed. | Get recent blood pressure measurements. | getbg, getbg#chart, getbg#omhe | | sbg | Send Blood Glucose Level | sendbg, sendbloodglucose | PROPOSAL | Only # tags are allowed. | Send most recent blood glucose measurements to someone. | sendbgbrian@mydoc.com, sendbg3042218972#chart#fax | | gbmi | Get Body Mass Index | getbmi, get bodymassindex | PROPOSAL | Only # tags are allowed | Get recent body mass index measurements. | getbmi, getbmi#chart, getbmi#omhe | | sbmi | Send Body Mass Index | sendbmi, sendbodymassindex | PROPOSAL | Only # tags are allowed | Send recent body mass index measurements. | sendbmiaviars@foo.com, sendbmi650979555#fax#chart, sendbmiaviars@foo.bar#chart#url | | gbp | Get Blood Pressure | getbp, getbloodpressure | PROPOSAL | Only # tags are allowed. | Get recent blood pressure measurements. | getbp, getbp#chart getbp#omhe | | sbp | Send Blood Pressure | sendbp, sendbloodpressure | PROPOSAL | Only # tags are allowed. | Send recent blood pressure measurements to someone. | sendbpaviars@foo.com, sendbp650979555#fax#chart, sendbpaviars@foo.bar#chart#url | | gwt | Get Weight | getwt, getweight | PROPOSAL | Only # tags are allowed | Get recent weight measurements. | getwt, getwt#chart, getwt#omhe | | swt | Send Weight | sendwt, sendweight | PROPOSAL | Only # tags are allowed | Send recent weight measurements to someone. | sendwt, sendwt650979555#fax#chart, sendwtaviars@foo.bar#chart | | gst | Get Steps | getst, getsteps | PROPOSAL | Only # tags are allowed | Get recent steps per day measurements. | getspd, getspd#chart, getspd#omhe | | sst | Send Steps | sendst, sendsteps | PROPOSAL | Only # tags are allowed | Send recent steps per day measurements to someone | sendspd, sendspd650979555#fax#chart, sendspdaviars@foo.bar#chart | | gkm | Get Kilometers | getkm, getkilometers | PROPOSAL | Only # tags are allowed | Get recent kilometers per day measurements. | getkpd, getkpd#chart, getkpd#omhe | | skm | Send Kilometers | sendkm, sendkilometers | PROPOSAL | Only # tags are allowed | Send recent kilometers per day to someone. | sendkpd, sendkpd650979555#fax#chart, sendkpdaviars@foo.bar#chart | | gmi | Get Miles | getmi, getmiles | PROPOSAL | Only # tags are allowed | Get recent miles per day measurements. | getmdp, getmpd#chart, getmpd#omhe | | smi | Send Miles | sendmi, sendmiles | PROPOSAL | Only # tags are allowed | Send recent weight measurements to someone. | sendmpd, sendmpd650979555#fax#chart, sendmdpaviars@foo.bar#chart | | gce | Get Cardiovascular Exercise | getce, getcardio, getcardioexercise | PROPOSAL | Only # tags are allowed | Get recent cardiovascular exercise measurements. | getcm, getcm#chart, getcm#omhe | | sce | Send Cardiovascular Exercise | sendce, sendcardio, sendcardioexercise | PROPOSAL | Only # tags are allowed | Send recent cardiovascular exercise measurements to someone. | sendcm, sendcm650979555#fax#chart, sendcmaviars@foo.bar#chart | | gwbe | Get Weight Bearing Exercise | getwbe, getweightbearingexercise | PROPOSAL | Only # tags are allowed | Get recent weight bearing exercise minutes. | getwbe, getwbe#chart, getwbe#omhe | | swbe | Send Weight Bearing Exercise | sendwbe, sendweightbearingexercise | PROPOSAL | Only # tags are allowed | Send recent weight bearing exercise minutes to someone. | sendwbe, sendwbe650979555#fax#chart, sendwbeaviars@foo.bar#chart | | gsw | Get Swim | getsm, getsm | PROPOSAL | Only # tags are allowed | Get recent swim measurements. | gwbe, getwbe#chart, getwbe#omhe | | ssw | Send Swim | sendsm, sendswim | PROPOSAL | Only # tags are allowed | Send recent swim measurements to someone. | ssw, sendsw6503339555#fax#chart, sendswim=aviars@foo.bar#chart | | gmc | Get Menstral Cycle | getmc, getmcycle, getmooncycle | PROPOSAL | Only # tags are allowed | Get recent menstral cycle start dates. | gmc, getmcycle#calendar, getmc#omhe | | smc | Send Menstral Cycle | sendmc, sendmcycle, sendmooncycle | PROPOSAL | Only # tags are allowed | Send recent mentral cycle start dates to someone. | smc, sendmc650979555#fax#chart, sendmooncycleaviars@foo.bar#calendar | | gsp | Get Sleep | getsp, getsleep | PROPOSAL | Only # tags are allowed | Get recent sleep measurements. | gsp, getsp#chart, getsleep#omhe | | ssp | Send Sleep | sendsp, sendsleep | PROPOSAL | Only # tags are allowed | Send recent sleep measurements to someone. | ssp, sendsp650979555#fax#chart, sendsleepaviars@foo.bar#chart | | gca | Get Calories | getca, getcalories | PROPOSAL | Only # tags are allowed | Get recent caloric measurements. | gca, getca#chart, getcalories#omhe | | sca | Send Calories | sendca, sendcalories | PROPOSAL | Only # tags are allowed | Send recent caloric measurements to someone | sendca, sendca=650979555#fax#chart, sendcaloriesaviars@foo.bar#chatr | | gpn | Get Pain | getpn, getpain | PROPOSAL | Only # tags are allowed | Get recent pain measurements. | gpn, getpn#chart, getpain#omhe | | spn | Send Pain | sendpn,sendpain | PROPOSAL | Only # tags are allowed | Send recent pain measurements to someone. | sendn, sendpain650979555#fax#chart, sendpainaviars@foo.bar#chatr | | gmd | Get Mood | getmd, getmood | PROPOSAL | Only # tags are allowed | Get recent weight readings. | getmd, getmd#chart, getmood#omhe | | smd | Send Mood | sendmd, sendmood | PROPOSAL | Only # tags are allowed | Send recent weight measurements to someone | sendhappy, sendhappy650979555#fax#chart, sendhappyaviars@foo.bar#chat | | ghr | Get Personal Health Record | gethr, gethealthrecord | PROPOSAL | Only # tags are allowed | Get recent PHR. | ghr, gethr#pdf, gethr#omhe, ghr#ccr | | shr | Send Personal Health Record | sendhr, sendhealthrecord | PROPOSAL | Only # tags are allowed | Send recent PHR to someone | shr, sendhr650979555#fax#chart, sendhraviars@foo.bar#chat | | ghc | Get Health Card | gethc, gethealthcard | PROPOSAL | Only # tags are allowed | Get recent health benefits card. | gethc, gethc#chart, gethc#omhe | | shc | Send Health Card | sendhc, sendhealthcard | PROPOSAL | Only # tags are allowed | Send recent health benefits card to someone | sendhc, sendhc650979555#fax#chart, sendhcaviars@foo.bar#chart |
Commands for Billing, Eligibility, and Authorization:We are especially seeking comment and input on this section Billing experts, join the OMHE_microsyntax Google group to participate | COMMAND | NAME | KNOWN ALIASES | STATUS | OPTIONS | DETAILS | EXAMPLES | | icn | ICD 9 Diagnosis Code | icdnine | PROPOSAL | Only # tags are allowed | Report/add an ICD9 code. icdnine must be followed by a valid icd9 code. | icn8929, icdnine=6421#foo | | ict | ICD 10 Code | icdten | PROPOSAL | Only # tags are allowed | Report/add an ICD10 code. icdten must be followed by a valid icd10 code. | ict8929, icdten=6421#foo | | cpt | CPT Code | none | PROPOSAL | 'm' delineates CPT modifiers. # tags are allowed | Report/add an CPT procedure code. 'cpt' must be followed by a valid cpt code. | cpt12345.1, cpt12345.1m23m12, cpt=43261#foobar | | cp | Co-Pay | copay | PROPOSAL | # tags are allowed. | Report a co-pay amount. 'copay' must be followed by a number. | cp10, copay=5.00 copay=20#USD |
Commands for Population / Public Health Reporting:We are especially seeking comment and input on this section USAID, NGOs, public health experts, students, and others please help us build out this section. Join the OMHE_microsyntax Google group to participate | COMMAND | NAME | KNOWN ALIASES | STATUS | OPTIONS | DETAILS | EXAMPLES | | PROPOSAL | PROPOSAL | none | PROPOSAL | PROPOSAL | PROPOSAL | PROPOSAL |
Commands for Food & Caloric Intake:We are especially seeking comment and input on this section. Join the OMHE_microsyntax Google group to participate | COMMAND | NAME | KNOWN ALIASES | STATUS | OPTIONS | DETAILS | EXAMPLES | | PROPOSAL | PROPOSAL | none | PROPOSAL | PROPOSAL | PROPOSAL | PROPOSAL |
Helper & Convenience Commands:PROPOSAL: Any Helper & Convenience may be appended to any other OMHE message. For example, the following is a valid OMHE message: bp120/80p60#dt20100101:122005Z#tzo-5 | COMMAND | NAME | KNOWN ALIASES | STATUS | OPTIONS | DETAILS | EXAMPLES | | hp | Help | help | BETA | # tags are allowed. | Ask an OMHE service for help. | help, helpbg, help=hc, helpweight | | ok | OK - an affirmative response | okay, y | BETA | # tags are allowed. | Anser yes or confirm | ok, y | | sta | Start | start, begin | BETA | # tags are allowed. | Start using an an OMHE service or begin an enrollment. | start, starthc, startwt | | sto | Stop | stop, end | BETA | # tags are allowed. | Stop using an OMHE service. | stop, stophc, stopwt | | id | Identification Number or User Name | user, identificationumber, username | BETA | none | A username or account number with no spaces. Provided as a convenience function, this often not required because it this can inferred by the phone number twitter name or other transport-level identifier. | id3478342, idBeGoodJ | | hid | Hardware Identification Number or String | hardwareid | BETA | none | A unique identifer to identify the hardware device. Provided as a convenience function, this often not required because it this can inferred. | hid3478342, hid 00:03:0d:47:dd:72#mac | | pw | Password | pw, pass, password | PROPOSAL | none | A password with no spaces. Provided as a convenience function | pw5555, password=mypass, pass=8 | | pi | Pin | pin | PROPOSAL | none | A pin with no spaces. Provided as a convenience function | pi5555, pin=7777, pin=8 | | dt | DateTime Stamp | datetime | PROPOSAL | none | Format: 'date:timeZtimezone offset'. In other words, 'yyyymmdd:hhmmssztz'. Provided as a convenience function, the date is often inferred from the sending device or transport protocol. In OMHE datetime must be expressed in UTC (i.e. Zulu time) and the must be provided. The ':' separates the date and the time and the letter 'z' separates the timezone offset from the datetime | dt20091218:123045z-5, datetime20101220:235945z0, dt=20091218:123045z+1 | | tz | Time Zone Offset | timezone | PROPOSAL | none | An integer between -12 and +12. Provided as a convenience function, timezone offset. | tz11, tz=-5 tz=+5 | | tm | Time | time | PROPOSAL | Use 'a' or 'p' to designate AM or PM respectively; otherwise a 24-hour clock is assumed. | Format: 'hhmm', 'hhmmss', hhmm[a|p]' or 'hhmmss[a|p]'. Provided as a convenience function, the time is often inferred from the sending device or transport protocol.In OMHE date is always expressed in UTC (i.e. Zulu) date time. | tm1230, time1450, time830a, time=730a, tm2305, tm230559, tm110559p | | uu | Universal Unique Identifier | uuid | PROPOSAL | none | A Universal Unique Identifier which can be used as a transaction identifier | uu550e8400-e29b-41d4-a716-446655440000, uuid550e8400-e29b-41d4-a716-446655440000, uu=550e8400-e29b-41d4-a716-446655440000 |
Creating & Sharing Your Own Commands:Add you own commands like so:
fb84754
foo=bar
cat=fluffy
Your commands just need follow the OMHE syntax structure. You'll may need to tweak a parser to recognize your new command, but this should be fairly simple. Sharing Your Commands:We invite you to contribute your commands here so others may use them. We will try and keep all of the parsers current with the latest commands. Please submit your suggestions in "Issues" here on Google Code or in join and send a note to the OMHE Google Group. http://groups.google.com/group/omhe_microsyntax
|