Our May API Network exploration is sick! Today I'll be walking through Infermedica: "The most advanced Symptom Checker and Medical Diagnosis API." Their Postman collection can be downloaded from their site after authorization credentials are obtained via their signup page. I got my key within a business day, which is incredible for any small organization manually reviewing applicants.
Infermedica facilitates patient journeys from triage to diagnosis. Doctors can use it to suggest what questions to ask a patient or what labs to run. A lot of people seem to think that doctor's jobs are next on the chopping block for automation, but Infermedica provides an interesting counterpoint. Their API is a powerful tool to replace the humdrum diagnoses doctors sink valuable time into; which they could be using for treatment.
For example, Infermedica has a "parse" endpoint that takes blocks of natural language and returns a list of observations found in the text. I tried out a patient flow on myself, tearfully relating my symptoms to Dr. API: I was skeptical that NLP would be good enough to pick up all of the symptoms I described, but it did amazingly well:Looks like I've got a lot going on. Though I didn't need a doctor, robot or human, to tell me that. What I do need to know is what all of it adds up to. Infermedica to the rescue! The "/diagnosis" endpoint will return a list of potential conditions, as well as questions used to confirm potential diagnoses. I adapted the symptoms that the parsing put out and sent them off for checkup:
I will say this for robot doctors, they need to work on their bedside manor. The first thing Infermedica asked me was if "I feel fearful or anxious?" Keep in mind that the endpoint is only getting a base list of symptoms, so it doesn't know the original natural language I used to describe my terror of our future robot overlords (echoes of Roko's Basilisk anyone?). This is a pretty legitimate question to ask someone experiencing nervousness, sweating, shaking, upset stomach, and heart palpitations.
Despite Infermedica performing the API equivalent of looking me in the eye and asking "Do I frighten you, punk?" I kept it together enough to examine my diagnoses. The API returns them in a list from most to least likely:
So even a robot can tell I have an anxiety disorder now. Great. Maybe it just suggests that for every millennial?
Even though I'd consider the first diagnosis spot-on, the followups are a little disturbing in their severity and likelihood. On the other hand, WebMD isn't doing much better: I suppose for the final word, you really need to go see a real doctor. Like I said earlier in the post, the busywork of base interview and diagnoses has been abstracted out. Infermedica can be leveraged by chatbots or front office staff so that the doctor shows up with the expertise to make sense of and take action from gathered information, rather than gathering it themselves. After all, you can't request medication with an API (yet).
Though I may be terrified of an oncoming robotic dystopia, it is possible to be simultaneously afraid and impressed. Infermedica's AI is powerful, its API is straightforward, and its documentation is stellar. I encourage you to check it out, and get a head start on what I'm sure will be one of most impactful applications of technology this century (even if it does lead to robots taking over the world).