Clean
In this tutorial, we will employ the Clean API to identify redundant or out-of-date problems for removal from the problem list.
This capability is licensed under IMO Core.
What problem can you address with this API?
Problem lists are ever evolving, requiring providers to curate the list as existing problems resolve or evolve and new problems arise. Providers often find it difficult and time-consuming to do so without assistive tools, so bloated problem lists continue to grow with duplicative and outdated data, compounding their frustration. Furthermore, if problem lists are not kept current and correct, the inaccurate data they contain can compromise the EHR’s ability to deliver accurate outcomes from decision support, population health, quality reporting, and numerous other use cases. That’s why the Clean API searches the problem list for extraneous data - seeking out related, lapsed, or duplicated health conditions. The provider can then choose to remove the targeted problems from view, resulting in a current, accurate problem list.
Setup
Start with a problem list that you will check for related, lapsed, or duplicated health conditions.
List example:
Problem List
Authentication
To call the Clean endpoint, use the access token obtained from our OAuth2 authorization server.
Best Practices for an Efficient Workflow
While we have high confidence in our cleanup recommendations, we do not intend for changes to be made to the patient’s problem list without review and approval by the provider. That said, there are several design concepts that we’ve found can minimize clicks, thereby improving user experience and adoption.
Display of recommendations
IMO’s Clean endpoint returns cleanup recommendations in this sequential order, with increasing complexity: Lapsed, then Duplicates, then Related. Through valuable conversations and usability studies, IMO has learned that the provider’s experience is optimized when the recommendations are reviewed in the order indicated.
Some problems may be flagged multiple times. For instance, “Closed fracture of right femur” might appear as Lapsed if it has been on the list for >270 days and may also appear as Related if the same list contains “Broken leg”. However, if “Closed fracture of right femur” is resolved in the Lapsed section, it should no longer appear elsewhere in the list.
Pre-selections
To streamline the provider’s workflow, it may be helpful to stage problems for removal by presupposing the action a provider is likely to take.
Lapsed problems have been flagged because they refer to time-limited conditions that, based on their onset date, are likely resolved and no longer necessary on the active problem list. As such, the expected cleanup action would be to mark the problem as resolved. If your EHR supports it, you may want to consider additionally adding these resolved problems to the patient’s past medical history. An ideal workflow allows a provider to review the problems we have flagged as Lapsed, de-select any problem they wish to keep, and resolve the rest with a single click.
Duplicate problems have been flagged because two or more problems on a single patient problem list have identical clinical meaning. This is often done in error, as duplicate entries provide no additional clinical value. As such, the expected cleanup action would be to merge these duplicate problems into a single record, linking all related metadata (specifically clinical notes or other documentation) to a single record, assigning the earliest “date of onset” and the latest “last addressed date,” and marking the other records in the duplicate group as inactive. An ideal workflow allows a provider to review each Duplicate group we have flagged, along with any related metadata, and select the one they wish to keep with a single click, merging or marking the others as inactive.
Related problems have been flagged because two or more problems on a single patient problem list have related or conflicting clinical meaning. Often, Related problems refer to the same underlying condition, but with differing severity or specificity that requires additional clinical insight to resolve to a single record. As such, IMO can provide no recommendation as to which Related problem should be retained and which can be removed. However, the cleanup workflow should be very similar to Duplicate groups: An ideal workflow allows a provider to review each Related group we have flagged, along with any related metadata, and select the one they wish to keep with a single click, merging or marking the others as resolved.
How to: Clean the Problem List
To identify the cleanup recommendations, you will call the Clean API using any of the three requests demonstrated below.
Note: Each request set in the examples below may reflect a condensed version of the problem list.
- Lapsed Problems
Description: Find “lapsed,” “expired,” or “outdated” problems
Ex: Pregnancy with an onset of 01/01/20210 is a lapsed condition.
- Note - onset_date is a required field to calculate lapsed items.
Request:
curl --location --request POST 'https://api-sandbox.imohealth.com/problemlistmanagement/problems/clean' \
--header 'Authorization: {{UPDATE_BEARER_TOKEN_HERE}}' \
--header 'Content-Type: application/json' \
--data '{
"problems": [
{
"title": "Pregnancy",
"onset_date": "2022-08-29T18:15:22.433Z"
}
]
}'
Response:
{
"lapsed": [
{
"date_used_in_calculations": "2010-01-01T00:00:00",
"lexical_code": "52609",
"free_text": "Pregnancy"
}
],
"duplicates": [],
"related": []
}
- Duplicate Problems
Description: Find duplicate problems
Ex: “Bronchial asthma” and “asthma attack” are synonymous problems. Together, these entries create a cluttered problem list.
Request:
curl --location --request POST 'https://api-sandbox.imohealth.com/problemlistmanagement/problems/clean' \
--header 'Authorization: {{UPDATE_BEARER_TOKEN_HERE}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"problems":[
{
"title": "Asthma attack"
},
{
"title": "Asthma attack"
}
]
}'
Response:
{
"lapsed": [],
"duplicates": [
{
"id": "dec61c26-be86-4677-8c2c-eab40e0d1269",
"problems": [
{
"lexical_code": "709660",
"title": "Asthma attack"
},
{
"lexical_code": "709660",
"title": "Asthma attack"
}
]
}
],
"related": []
}
- Related Problems
Description: Find related problems
Ex: "Dyspnea on exertion" and "shortness of breath" are related to one another. Such diagnosis may be redundant or logically inconsistent within the same problem list.
Request:
curl --location --request POST 'https://api-sandbox.imohealth.com/problemlistmanagement/problems/clean' \
--header 'Authorization: {{UPDATE_BEARER_TOKEN_HERE}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"problems": [
{
"title": "Dyspnea on exertion"
},
{
"title": "Shortness of breath"
}
]
}'
Response:
{
"lapsed": [],
"duplicates": [],
"related": [
{
"id": "f65a66f2-b6b3-4215-a286-0036186b5452",
"problems": [
{
"lexical_code": "27423",
"title": "Shortness of breath"
},
{
"lexical_code": "193923",
"title": "Dyspnea on exertion"
}
]
}
]
}
Summary: Clean
- You sent a call to the Clean API with the goal to reduce clutter and yield an up-to-date problem list.
- The API returned a list of suggested diagnoses for list clean-up: the diagnosis indicated may be lapsed, duplicate, or related health conditions.
- You can now review the clean-up suggestions and then choose to remove conditions from view when they are determined to be lapsed, duplicate, or related.
Example: In the problem list scenarios above, you may choose to remove (or keep) the respective conditions on the problem list:
-
-
- Pregnancy can be removed as "Lapsed"
- "Asthma" can be removed as "Duplicate"
- "Dyspnea on exertion" can be removed as "Related"
-