athenahealth / apiserver-athenaFlex

Software developers can use sample code and documentation to use athenahealth's athenaPractice/athenaFlow FHIR API Server.
https://mydata.athenahealth.com/home
17 stars 7 forks source link

Provided HDID not found #271

Closed alianhm closed 1 year ago

alianhm commented 1 year ago

Hi, I'm trying to POST the following Observation to the sandbox (POST fhir/r4/Observation) :

{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/1992091292327740" }, "performer": { "reference": "Practitioner/1975828132052550" }, "code": { "coding": [ { "system": "http://loinc.org", "code": "88122-7", "display": "Within the past 12 months, I/we worried whether our food would run out before I/we got money to buy more." }, { "system": "https://mydata.athenahealth.com/fhir/athenaFlex/codesystem/HDID", "code": "568877", "display": "Within the past 12 months, I/we worried whether our food would run out before I/we got money to buy more." } ] }, "valueCodeableConcept": { "coding": [ { "system": "http://loinc.org", "code": "LA28398-8", "display": "Never true" } ], "text": "Never true" } }

But I'm receiving the following response:

{ "resourceType": "OperationOutcome", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><table width=\"100%\"><tbody><tr><td width=\"25%\"><span class=\"text-muted\">Outcome null</span></td><td width=\"42%\"><span class=\"text-muted\"><table><thead><tr><th>#</th><th>Severity</th><th>Type</th><th>Detail</th></tr></thead><tbody><tr><td>1</td><td>ERROR</td><td>BUSINESSRULE</td><td>Provided HDID not found</td></tr></tbody></table></span></td></tr></tbody></table></div>" }, "issue": [ { "severity": "error", "code": "business-rule", "diagnostics": "Provided HDID not found" } ] }

Which HDID code should I use?

Thanks.

AOCjcarr commented 1 year ago

@alianhm looking at the sample provided above it looks like the display field shows the description. Based on the example in this article it appears that the display should be the OBS name from athenaPractice, so in your example should be FOODWORRY for that HDID { "system": "https://mydata.athenahealth.com/fhir/athenaFlex/codesystem/HDID", "code": "568877", "display": "FOODWORRY" }

Article 231 showing code examples before/after same HDID error https://github.com/athenahealth/apiserver-athenaFlex/issues/231#issuecomment-1036497847

alianhm commented 1 year ago

@AOCjcarr Thanks for your response. Just tried what you suggested:

{ "system": "https://mydata.athenahealth.com/fhir/athenaFlex/codesystem/HDID", "code": "568877", "display": "FOODWORRY" }

Same error in the response:

"diagnostics": "Provided HDID not found"

AOCjcarr commented 1 year ago

Please attempt a post using SMOK STATUS as we had recommended to do testing against sandbox as we are not sure if the newer OBS FOODWORRY has been added to the sandbox at this point. SMOK STATUS HDID and values were provided yesterday

alianhm commented 1 year ago
        {
            "system": "https://mydata.athenahealth.com/fhir/athenaFlex/codesystem/HDID",
            "code": "300015",
            "display": "SMOK STAT"
        }

Sorry, same error.

AOCjcarr commented 1 year ago

SMOK STATUS is the proper field name

alianhm commented 1 year ago

Fixed, but same error: { "system": "https://mydata.athenahealth.com/fhir/athenaFlex/codesystem/HDID", "code": "300015", "display": "SMOK STATUS" }

AOCjcarr commented 1 year ago

@Torin-Shepard-athena Any recommendations on how the post statement can be updated. Originally trying to post to obs term FOODWORRY HDID 568877, however this was a new field as of Feb, so was not sure if it has been loaded to the Sandbox yet.

He then tried to post SMOK STATUS HDID 300015 which should be there, and still getting the provided HDID not found error when trying to post.

Also with that, can you confirm if the valueCodeableConcept of the result value is accurate, specifcally as with FoodWorry there are specific expected LOINC response values (which these do show in our CQM_MAP in V22.) https://loinc.org/88122-7
which we are assuming the display and code should match the value and the AnswerID in the LOINC site.

Torin-Shepard-athena commented 1 year ago

@alianhm @AOCjcarr

https://ap22sandbox.fhirapi.athenahealth.com/demoAPIServer/fhir/r4/Observation?patient=1961415746177250&code=300015

This response to this FHIR Observation request contains the expected content for Observation.code elements.

{
    "system": "https://docs.mydata.athenahealth.com/fhir-r4/athenaFlex/codesystem/HDID/1000-4-9390",
    "code": "300015",
    "display": "SMOK STATUS"
}

The coding system for athenaPractice values starts with docs.mydata and ends with a license code.

Notice the training license code at the end of Observation.code.coding.system: .../HDID/1000-4-9390.

The license code is included in coding system elements when a coding system is something that can be edited/modified in athenaPractice Admin module. This gives an indication to FHIR client if/when codes come from a specific athenaPractice site; in this case a custom OBS term that may exist at one site but not another.

Try adding the license code at the end of Observation.code.coding.system in the POST request body.

The valueCodableConcept for coded OBS values seems correct as long as you have confirmed CQM_Map table has the expected row where MapType = 'ExactCodeDescription' and HDID = \<<coded value for relevant OBS term>>

https://docs.mydata.athenahealth.com/fhir-r4/Observation-Example3.html https://docs.mydata.athenahealth.com/fhir-r4/Observation-Example3.json.html This has an example of valueCodableConcept with coded value for OBS term SMOK STATUS.

alianhm commented 1 year ago

Thanks! I was able to create the Observation.

AOCjcarr commented 1 year ago

Great thanks @Torin @.***>! They were able to get the post to complete! I was not aware of the license code, so would that be specific for any write/create statements? Just curious as all 3 observations we tried are factory observations and factory CQM Mappings for the LOINC codes. Wonder if best practice to always include the site specific license when posting back to be safe.

For the result codes I believe it is setup correct, it was added by support to CQM_MAP in the Feb 2023 Kbase all mappings are factory.

Torin- I will send you a separate email as I opened a support case on some other questions we have with the result codes and discrepancies I am seeing on what is being pulled in the FHIR Get statements for the 2 new observations as well as SMOK STATUS

Thanks, Jeremy Carr

CELL 773.580.0099 @.**@.>

From: Torin Shepard @.> Sent: Tuesday, April 11, 2023 6:21 PM To: athenahealth/apiserver-athenaFlex @.> Cc: Jeremy Carr @.>; Mention @.> Subject: Re: [athenahealth/apiserver-athenaFlex] Provided HDID not found (Issue #271)

@alianhmhttps://github.com/alianhm @AOCjcarrhttps://github.com/AOCjcarr

https://ap22sandbox.fhirapi.athenahealth.com/demoAPIServer/fhir/r4/Observation?patient=1961415746177250&code=300015

This response to this FHIR Observation request contains the expected content for Observation.code elements.

Notice the license code at the end of Observation.code.coding.system. The license code is included in coding system elements when a coding system is something that can be edited/modified in athenaPractice Admin module. This gives an indication to FHIR client if/when codes come from a specific athenaPractice site; in this case a custom OBS term that may exist at one site but not another.

{

"system": "https://docs.mydata.athenahealth.com/fhir-r4/athenaFlex/codesystem/HDID/1000-4-9390",

"code": "300015",

"display": "SMOK STATUS"

}

Try adding the license code at the end of Observation.code.coding.system in the POST request body.

The valueCodableConcept for coded OBS values seems correct as long as you have confirmed CQM_Map table has the expected row where MapType = 'ExactCodeDescription' and HDID = \<>

— Reply to this email directly, view it on GitHubhttps://github.com/athenahealth/apiserver-athenaFlex/issues/271#issuecomment-1504252643, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHU5JR3YPUMEOQLFVBAIQPLXAXRNDANCNFSM6AAAAAAWZNN75Y. You are receiving this because you were mentioned.Message ID: @.**@.>>

AjeetYadav07 commented 1 year ago

@AOCjcarr Marking this issue as closed, hoping we have addressed your questions. Please raise a new ticket, if you have query.