OnDemand Import (Beta)

We are still working to make this feature more usable, particularly in the patient mediated use case.

The OnDemand Import enables a customer to refresh patient data from health system backends. The patient to update can be identified based on unique identifier or demographics search.

  1. Patient FHIR Identifier - https://api.1up.health/import?patient=4321&system=1234

  2. Other Patient Identifier (Direct Connection Customers Only) - https://api.1up.health/import?patient=6543&IDType=MRN&system=1234

  3. Patient Name and Birth Date (Direct Connection Customers Only)- https://api.1up.health/import?lastName=g&birthDate=2000-01-01&system=1234&firstName=tina

This payload can either be sent entirely in the body or entirely in the query string. For any of these, you can specify which resources to update using the resourceList parameter. Otherwise, the entire patient record will be imported.

For Population Level


  1. patient

    1. The patient's id for the external system

  2. firstName, lastName and birthDate

    1. If ALL 3 are included, we can do a search by demographics data and find the patients ID from it.

  3. idType

    1. IF the idType is not fhir, it needs to be specified so we can convert it.

  4. system (required)

    1. This is set to the external_systems id. This is the only required query param.

  5. resourceList

    1. Comma delimited list of resources to update. E.g resourceList=Patient,Encounter,Procedure

Authorization is required for this service. Work with your 1upHealth contact for this.

For development, please utilize https://api.1up.healthdev.com/import

URL considerations - For managed deployment customers, the base url may be different


Upon successfully kicking off an import, a response will be provided including the patient ID and a url-encoded URL with information on the job status.

statusCode: 200 (accepted)
headers: {
'Content-Type': 'application/json',
'Content-Location': ${jobUrl}, },
"resourceType": "OperationOutcome",
"id": "12345678",
"issue": [
"severity": "outcome",
"code": "external",
"details": {
"text": "You have successfully triggered an import for {{patientID}} from {{systemId}}",
"patientId": {{patientID}}

For Patient Mediated:

To refresh data for a patient using onDemandImport endpoint successfully, patient has to authorize their data once by signing in and authorizing their data via provider login .

Patients can login via apps using 1up system-search api / connect api or 1up patient app.

Once patient is connected and authorize their data , on Demand import can be triggered using systemId, provider patientId in request body and access token in request header. Below is a sample curl request.

curl --location --request POST 'https://api.1up.health/import' \ --header 'Authorization: Bearer xxxxxxxxxx' \ --header 'Content-Type: application/json' \ --data-raw '{ "system": "4748", "patient": "xxxxxxxxxxxx" }'

On Successful import the response would look like this:

{"resourceType":"OperationOutcome","id":"9302elfws25","issue":[{"severity":"outcome","code":"external","details":{"text":"successfully requested data import for patient xxxxxxxxxxxxx from system 4748"}}]}

You can check the updated data using fhir api using the same access token. Below is a sample curl request.

curl GET 'https://api.1up.health/fhir/dstu2/{resourceType}' \ --header 'Authorization: Bearer xxxxxxxxxx' \

Currently this feature is only available to Epic and Medicare connections. For Medicare connections patients just have to sign in and authorize their data once and for Epic connections every month.