API Reference

This page contains a full list of valid Indivo API calls, generated from the code. For a more detailed walkthrough of individual calls, see Indivo API Overview.

In the access control for some calls, you might see the phrase full control. In Indivo, this is defined as follows:

full control

A principal is said to be in full control of a record if either:

  • The principal is the owner of the record
  • There is a full share between the record and the principal.

POST /accounts/

Create a new account, and send out initialization emails.

Short Name:

account_create

Accessible By:

Any admin app.

Formdata Parameters:
 
  • primary_secret_p – 0 or 1: Does this account require a primary secret?
  • secondary_secret_p – 0 or 1: Does this account require a secondary secret?
  • contact_email – A valid email at which to reach the account holder.
  • account_id – An identifier for the new account. Must be a valid email address. REQUIRED
  • full_name – The full name to associate with the account.
Returns:

200 OK with information about the new account on success, 400 Bad Request if ACCOUNT_ID isn’t passed or is already used.

Example Return Value:

<Account id="joeuser@indivo.example.org">
  <fullName>Joe User</fullName>
  <contactEmail>joeuser@gmail.com</contactEmail>
  <lastLoginAt>2010-05-04T15:34:23Z</lastLoginAt>
  <totalLoginCount>43</totalLoginCount>
  <failedLoginCount>0</failedLoginCount>
  <state>active</state>
  <lastStateChange>2009-04-03T13:12:12Z</lastStateChange>

  <authSystem name="password" username="joeuser" />
  <authSystem name="hospital_sso" username="Joe_User" />
</Account>

Search for accounts by name or email.

Short Name:

account_search

Accessible By:

Any admin app.

Query Parameters:
 
  • fullname – The full name of the account to search for
  • contact_email – The contact email of the account to search for
Returns:

200 OK with information about matching accounts, or 400 Bad Request if no search parameters are passed.

Example Return Value:

<Accounts>
  <Account id="joeuser@indivo.example.org">
    <fullName>Joe User</fullName>
    <contactEmail>joeuser@gmail.com</contactEmail>
    <lastLoginAt>2010-05-04T15:34:23Z</lastLoginAt>
    <totalLoginCount>43</totalLoginCount>
    <failedLoginCount>0</failedLoginCount>
    <state>active</state>
    <lastStateChange>2009-04-03T13:12:12Z</lastStateChange>

    <authSystem name="password" username="joeuser" />
    <authSystem name="hospital_sso" username="Joe_User" />
  </Account>

  ...

</Accounts>

GET /accounts/{ACCOUNT_EMAIL}

Display information about an account.

Short Name:

account_info

Accessible By:

Any admin app, or the Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

200 OK with information about the account

Example Return Value:

<Account id="joeuser@indivo.example.org">
  <fullName>Joe User</fullName>
  <contactEmail>joeuser@gmail.com</contactEmail>
  <lastLoginAt>2010-05-04T15:34:23Z</lastLoginAt>
  <totalLoginCount>43</totalLoginCount>
  <failedLoginCount>0</failedLoginCount>
  <state>active</state>
  <lastStateChange>2009-04-03T13:12:12Z</lastStateChange>

  <authSystem name="password" username="joeuser" />
  <authSystem name="hospital_sso" username="Joe_User" />
</Account>

POST /accounts/{ACCOUNT_EMAIL}/apps/{PHA_EMAIL}/connect_credentials

Get oAuth credentials for an app to run in Connect or SMART REST mode.

Short Name:

get_connect_credentials

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account to authorize the connect credentials
  • PHA_EMAIL – The email identifier of the Indivo user app to grant access via the connect credentials
Formdata Parameters:
 
  • record_id – The identifier of the Indivo Record to which to grant access via the connect credentials
Returns:

200 OK with a set of credentials providing access for the app to the record, via Connect-Style Authentication and via Standard oAuth authentication. Additionally, the credentials include a precalculated oAuth Header that the app can use to access the record.

Example Return Value:

<ConnectCredentials>
  <App id="problems@apps.indivo.org" />
  <ConnectToken>1QzyGdx13Da</ConnectToken>
  <ConnectSecret>re3Qg4dxaf9</ConnectSecret>
  <APIBase>http://your_indivo_instance.org:8000</APIBase>
  <RESTToken>7qGer7dx4gC</RESTToken>
  <RESTSecret>5JpXb0G2g4u</RESTSecret>
  <OAuthHeader>OAuth realm="", oauth_version="1.0", oauth_consumer_key="problems%40apps.indivo.org", oauth_signature_method="HMAC-SHA1", oauth_nonce="VNGQuyvdHbGLsFXm2oIL", oauth_timestamp="1334848404", oauth_signature="HHpwLSSCxgRhYfWDw3uLdmjsyMk%3D"</OAuthHeader>
  <ExpiresAt>2012-07-04T00:00:00Z</ExpiresAt>
</ConnectCredentials>

New in version 2.0.0.


DELETE /accounts/{ACCOUNT_EMAIL}/apps/{PHA_EMAIL}/preferences

Delete all app-specific User Preferences for an account.

Short Name:

delete_user_preferences

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 Success

Example Return Value:

<ok/>

New in version 2.0.0.


GET /accounts/{ACCOUNT_EMAIL}/apps/{PHA_EMAIL}/preferences

Get app-specific User Preferences for an account.

Short Name:

get_user_preferences

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK, with app-specific user preferences

Example Return Value:

Preferences format is defined by the app setting the preferences, and will therefore vary.

New in version 2.0.0.


PUT /accounts/{ACCOUNT_EMAIL}/apps/{PHA_EMAIL}/preferences

Set app-specific User Preferences for an account.

Short Name:

set_user_preferences

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 Success

Example Return Value:

<ok/>

New in version 2.0.0.


POST /accounts/{ACCOUNT_EMAIL}/authsystems/

Add a new method of authentication to an account.

Short Name:

account_authsystem_add

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • username – The username for this account
  • password – The password for this account
  • system – The identifier of the desired authsystem. password indicates the internal password system.
Returns:

200 Success, 403 Forbidden if the indicated auth system doesn’t exist, and 400 Bad Request if a system and a username weren’t passed, or if the account is already registered with the passed system, or if the username is already taken for the passed authsystem.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/authsystems/password/change

Change a account’s password.

Short Name:

account_password_change

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • new – The desired new password.
  • old – The existing account password.
Returns:

200 Success, 403 Forbidden if the old password didn’t validate, or 400 Bad Request if both a new and old password weren’t passed.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/authsystems/password/set

Force the password of an account to a given value.

Short Name:

account_password_set

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • password – The new password to set.
Returns:

200 Success, or 400 Bad Request if a new password wasn’t passed.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/authsystems/password/set-username

Force the username of an account to a given value.

Short Name:

account_username_set

Accessible By:

Any admin app, or the Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • username – The new username to set.
Returns:

200 Success, 400 Bad Request if a username wasn’t passed.

Example Return Value:

<ok/>

GET /accounts/{ACCOUNT_EMAIL}/check-secrets/{PRIMARY_SECRET}

Validate an account’s primary and secondary secrets.

Short Name:

account_check_secrets

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • PRIMARY_SECRET – A confirmation string sent securely to the patient from Indivo
Query Parameters:
 
  • secondary_secret – The secondary secret of the account to check.
Returns:

200 Success, or 403 Forbidden if validation fails.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/forgot-password

Resets an account if the user has forgotten its password.

Short Name:

account_forgot_password

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

:http:statuscode`200` with the account’s new secondary secret, or 400 Bad Request if the account hasn’t yet been initialized.

Example Return Value:

<secret>123456</secret>

GET /accounts/{ACCOUNT_EMAIL}/inbox/

List messages in an account’s inbox.

Short Name:

account_inbox

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Query Parameters:
 
  • status – The account or document status to filter by
  • order_by – See Query Operators
  • limit – See Query Operators
  • include_archive – 0 or 1: whether or not to include archived messages in the result set.
  • offset – See Query Operators
Returns:

200 OK, with a list of inbox messages.

Example Return Value:

<Messages>
  <Message id="879">
    <sender>doctor@example.indivo.org</sender>
    <received_at>2010-09-04T14:12:12Z</received_at>
    <read_at>2010-09-04T17:13:24Z</read_at>
    <subject>your test results are looking good</subject>
    <severity>normal</severity>
    <record id="123" />
    <attachment num="1" type="http://indivo.org/vocab/xml/documents#Models" size="12546" />
  </Message>

  ...

</Messages>

POST /accounts/{ACCOUNT_EMAIL}/inbox/

Send a message to an account.

Short Name:

account_send_message

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • body – The message body. Defaults to [no body].
  • severity – The importance of the message. Options are low, medium, high. Defaults to low.
  • body_type – The formatting of the message body. Options are plaintext, markdown. Defaults to plaintext.
  • message_id – An external identifier for the message, for idempotency.
  • subject – The message subject. Defaults to [no subject].
Returns:

200 Success with XML describing the message, or http:statuscode:400 if the passed message_id is a duplicate. Also emails account to alert them that a new message has arrived.

Example Return Value:

<Message id="63de173d-0dba-4cbd-92bd-5ef3b638ffd2">
    <sender>test@indivo.org</sender>
    <received_at>2012-07-13T15:59:25.102905Z</received_at>
    <read_at></read_at>
    <archived_at></archived_at>
    <subject>subj</subject>
    <severity>low</severity>
    <record id="03302536-a00d-425a-8b87-533d0d37478e" />
</Message>

GET /accounts/{ACCOUNT_EMAIL}/inbox/{MESSAGE_ID}

Retrieve an individual message from an account’s inbox.

Short Name:

account_inbox_message

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • MESSAGE_ID – The unique identifier of the Indivo Message
Returns:

200 OK, with XML describing the message.

Example Return Value:

<Message id="879">
  <sender>doctor@example.indivo.org</sender>
  <received_at>2010-09-04T14:12:12Z</received_at>
  <read_at>2010-09-04T17:13:24Z</read_at>
  <archived_at>2010-09-04T17:15:24Z</archived_at>
  <subject>your test results are looking good</subject>
  <body>Great results!
 It seems you'll live forever!</body>
  <severity>normal</severity>
  <record id="123" />
  <attachment num="1" type="http://indivo.org/vocab/xml/documents#Models" size="12546" />
</Message>

POST /accounts/{ACCOUNT_EMAIL}/inbox/{MESSAGE_ID}/archive

Archive a message.

Short Name:

account_message_archive

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • MESSAGE_ID – The unique identifier of the Indivo Message
Returns:

200 Success.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/inbox/{MESSAGE_ID}/attachments/{ATTACHMENT_NUM}/accept

Accept a message attachment into the record it corresponds to.

Short Name:

account_inbox_message_attachment_accept

Accessible By:

The Account owner.

URL Parameters:
  • ATTACHMENT_NUM – The 1-indexed number corresponding to the message attachment
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • MESSAGE_ID – The unique external identifier of the Indivo Message
Returns:

200 Success, or 410 Gone if the attachment has already been saved.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/info-set

Set basic information about an account.

Short Name:

account_info_set

Accessible By:

Any admin app, or the Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • contact_email – A valid email at which to reach the account holder.
  • full_name – The full name of the account.
Returns:

200 OK, or 400 Bad Request if no parameters are passed in.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/initialize/{PRIMARY_SECRET}

Initialize an account, activating it.

Short Name:

account_initialize

Accessible By:

Any Indivo UI app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
  • PRIMARY_SECRET – A confirmation string sent securely to the patient from Indivo
Formdata Parameters:
 
  • secondary_secret
Returns:

200 Success, 403 Forbidden if the account has already been initialized or if secrets didn’t validate, and 400 Bad Request if a secondary secret was required but missing.

Example Return Value:

<ok/>

GET /accounts/{ACCOUNT_EMAIL}/notifications/

List an account’s notifications.

Short Name:

account_notifications

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Query Parameters:
 
Returns:

200 OK with a list of the account’s notifications.

Example Return Value:

<Notifications>
  <Notification id="468">
    <sender>labs@apps.indivo.org</sender>
    <received_at>2010-09-03T15:12:12Z</received_at>
    <content>A new lab result has been delivered to your account</content>
    <record id="123" label="Joe User" />
    <document id="579" label="Lab Test 2" />
  </Notification>

  ...

</Notifications>

GET /accounts/{ACCOUNT_EMAIL}/permissions/

List the carenets that an account has access to.

Short Name:

account_permissions

Accessible By:

The Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

200 OK with a list of carenets.

Example Return Value:

<Carenets record_id="01234">
    <Carenet id="456" name="family" mode="explicit" />
    <Carenet id="567" name="school" mode="explicit" />
</Carenets>

GET /accounts/{ACCOUNT_EMAIL}/primary-secret

Display an account’s primary secret.

Short Name:

account_primary_secret

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

200 OK, with the primary secret.

Example Return Value:

<secret>123absxzyasdg13b</secret>

Deprecated since version 1.0.0: Avoid sending primary secrets over the wire. Instead, use GET /accounts/{ACCOUNT_EMAIL}/check-secrets/{PRIMARY_SECRET}.


GET /accounts/{ACCOUNT_EMAIL}/records/

List all available records for an account.

Short Name:

record_list

Accessible By:

Any admin app, or the Account owner.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Query Parameters:
 
Returns:

200 OK, with a list of records owned or shared with the account.

Example Return Value:

<Records>
  <Record id="123" label="John R. Smith" />
  <Record id="234" label="John R. Smith Jr. (shared)" shared="true" role_label="Guardian" />
  <Record id="345" label="Juanita R. Smith (carenet)" shared="true" carenet_id="678" carenet_name="family" />

  ...

</Records>

POST /accounts/{ACCOUNT_EMAIL}/reset

Reset an account to an uninitialized state.

Short Name:

account_reset

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

200 Success.

Example Return Value:

<ok/>

GET /accounts/{ACCOUNT_EMAIL}/secret

Return the secondary secret of an account.

Short Name:

account_secret

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

200 OK, with the secondary secret.

Example Return Value:

<secret>123456</secret>

POST /accounts/{ACCOUNT_EMAIL}/secret-resend

Sends an account user their primary secret in case they lost it.

Short Name:

account_resend_secret

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Returns:

200 Success. Also emails the account with their new secret.

Example Return Value:

<ok/>

POST /accounts/{ACCOUNT_EMAIL}/set-state

Set the state of an account.

Short Name:

account_set_state

Accessible By:

Any admin app.

URL Parameters:
  • ACCOUNT_EMAIL – The email identifier of the Indivo account
Formdata Parameters:
 
  • state – The desired state of the account. Options are active, disabled, retired.
Returns:

200 Success, or 403 Forbidden if the account has been retired and can no longer change state.

Example Return Value:

<ok/>

GET /apps/

List all available userapps.

Short Name:all_phas
Accessible By:Any principal in Indivo.
Returns:200 OK, with a list of app manifests as JSON on success.

Example Return Value:

[
{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
},

... other apps ...

]

Changed in version 2.0.0: Apps are now returned as JSON manifests, not XML


GET /apps/manifests/

List SMART manifests for all available userapps.

Short Name:all_manifests
Accessible By:Any principal in Indivo.
Returns:SMART-style manifests for each app.

Example Return Value:

[
{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
},

... other apps ...

]

New in version 2.0.0.


DELETE /apps/{PHA_EMAIL}

Delete a userapp from Indivo.

Short Name:

pha_delete

Accessible By:

The user app itself.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 Success.

Example Return Value:

<ok/>

GET /apps/{PHA_EMAIL}

Return a description of a single userapp.

Short Name:

pha

Accessible By:

Any principal in Indivo.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK, with the app’s JSON manifest

Example Return Value:

{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
}

Changed in version 2.0.0: Apps are now returned as JSON manifests, not XML


GET /apps/{PHA_EMAIL}/documents/

List app-specific documents.

Short Name:

app_document_list

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
Query Parameters:
 
Returns:

200 OK with A list of documents, or http:statuscode:404 if an invalid type was passed in the querystring.

Example Return Value:

<Documents record_id="" total_document_count="4" pha="problems@apps.indivo.org">
  <Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
    <createdAt>2009-05-04T17:05:33</createdAt>
    <creator id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </creator>
    <suppressedAt>2009-05-06T17:05:33</suppressedAt>
    <suppressor id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </suppressor>
    <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
    <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
    <label>HBA1C reading</label>
    <status>active</status>
    <nevershare>false</nevershare>
    <relatesTo>
      <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
      <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
    </relatesTo>
    <isRelatedFrom>
      <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
    </isRelatedFrom>
  </Document>

  ...

</Documents>

POST /apps/{PHA_EMAIL}/documents/

Create an app-specific Indivo document.

Short Name:

app_document_create

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created document, or 400 Bad Request if the new document failed validation.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}

Retrive an app-specific document with an associated external id.

Short Name:

app_document_ext

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • EXTERNAL_ID – The unique identifier of the Indivo document
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with the raw content of the document, or 404 Not Found if the document could not be found.

Example Return Value:

<DefaultProblemsPreferences record_id="123">
  <Preference name="hide_void" value="true" />
  <Preference name="show_rels" value="false" />
</DefaultProblemsPreferences>

PUT /apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}

Create an app-specific Indivo document with an associated external id.

Short Name:

app_document_create_or_update_ext

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created or updated document, or 400 Bad Request if the passed content didn’t validate.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

GET /apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}/meta

Fetch the metadata of an app-specific document identified by external id.

Short Name:

app_document_meta_ext

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with metadata describing the specified document, or http:statuscode:404 if the external_id is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="problems@apps.indivo.org" type="pha">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

DELETE /apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}

Delete an app-specific document.

Short Name:

app_document_delete

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

</ok>

GET /apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}

Retrive an app-specific document.

Short Name:

app_document

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with the raw content of the document, or 404 Not Found if the document could not be found.

Example Return Value:

<DefaultProblemsPreferences record_id="123">
  <Preference name="hide_void" value="true" />
  <Preference name="show_rels" value="false" />
</DefaultProblemsPreferences>

PUT /apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}

Create or Overwrite an app-specific Indivo document.

Short Name:

app_document_create_or_update

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The raw content of the document to create.

Returns:

200 OK with metadata describing the created or updated document, or 400 Bad Request if the passed content didn’t validate.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="problems@apps.indivo.org" type="pha">
  </creator>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

PUT /apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}/label

Set the label of an app-specific document.

Short Name:

app_document_label

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The new label for the document

Returns:

200 OK with metadata describing the re-labeled document, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>RELABELED: New HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}/meta

Fetch the metadata of an app-specific document.

Short Name:

app_document_meta

Accessible By:

A user app with an id matching the app email in the URL.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with the document metadata, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /apps/{PHA_EMAIL}/manifest

Return a SMART manifest for a single userapp.

Short Name:

app_manifest

Accessible By:

Any principal in Indivo.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

A SMART-style manifest for the app.

Example Return Value:

{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
}

New in version 2.0.0.


GET /apps/{PHA_EMAIL}/records/

Return a list of all records that have this pha enabled.

Short Name:

app_record_list

Accessible By:

Any autonomous user app.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with a list of records on success.

Example Return Value:

<Records>
  <Record id="123" label="John R. Smith" />
  <Record id = "234" label="Frank Frankson" />

  ...

</Records>

New in version 1.0.0.


POST /apps/{PHA_EMAIL}/records/{RECORD_ID}/access_token

Fetch an access token for an autonomous app to access a record.

Short Name:

autonomous_access_token

Accessible By:

An autonomous user app with a record on which the app is authorized to run.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with a valid access token for the app bound to the record on success.

Example Return Value:

oauth_token=abcd1fw3gasdgh3&oauth_token_secret=jgrlhre4291hfjas&xoauth_indivo_record_id=123

New in version 1.0.0.


DELETE /carenets/{CARENET_ID}

Delete a carenet.

Short Name:

carenet_delete

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 Success.

Example Return Value:

<ok/>

GET /carenets/{CARENET_ID}/accounts/

List the accounts in a carenet.

Short Name:

carenet_account_list

Accessible By:

A principal in the carenet, in full control of the carenet’s record, or any admin app.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK with a list of accounts in the specified carenet.

Example Return Value:

<CarenetAccounts>
  <CarenetAccount id="johndoe@indivo.org" fullName="John Doe" write="true" />

  ...

</CarenetAccounts>

POST /carenets/{CARENET_ID}/accounts/

Add an account to a carenet.

Short Name:

carenet_account_create

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Formdata Parameters:
 
  • writetrue or false. Whether this account can write to the carenet.
  • account_id – An identifier for the account. Must be a valid email address.
Returns:

200 Success, 404 Not Found if the specified account or carenet don’t exist, or 400 Bad Request if an account_id isn’t passed.

Example Return Value:

<ok/>

DELETE /carenets/{CARENET_ID}/accounts/{ACCOUNT_ID}

Remove an account from a carenet.

Short Name:

carenet_account_delete

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • ACCOUNT_ID – The email identifier of the Indivo account
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 Success, or 404 Not Found if either the passed account or the passed carenet doesn’t exist.

Example Return Value:

<ok/>

GET /carenets/{CARENET_ID}/accounts/{ACCOUNT_ID}/permissions

List the permissions of an account within a carenet.

Short Name:

carenet_account_permissions

Accessible By:

A user app with access to the carenet and proxying the account, a principal in full control of the carenet’s record, or any admin app.

URL Parameters:
  • ACCOUNT_ID – The email identifier of the Indivo account
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK with a list of document types that the account can access within a carenet. Currently always returns all document types.

Example Return Value:

<Permissions>
  <DocumentType type="*" write="true" />
</Permissions>

GET /carenets/{CARENET_ID}/apps/

List Apps within a given carenet.

Short Name:

carenet_apps_list

Accessible By:

A principal in the carenet, in full control of the carenet’s record, or any admin app.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK with manifests for the apps on success.

Example Return Value:

[
{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
},

... other apps ...

]

Changed in version 2.0.0: Apps are now returned as JSON manifests, not XML


DELETE /carenets/{CARENET_ID}/apps/{PHA_EMAIL}

Remove an app from a given carenet.

Short Name:

carenet_apps_delete

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 Success.

Example Return Value:

<ok/>

PUT /carenets/{CARENET_ID}/apps/{PHA_EMAIL}

Add an app to a carenet

Short Name:

carenet_apps_create

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 Success, or 400 Bad Request if the passed PHA is autonomous (autonomous apps can’t be scoped to carenets).

Example Return Value:

<ok/>

GET /carenets/{CARENET_ID}/apps/{PHA_EMAIL}/permissions

Retrieve the permissions for an app within a carenet. NOT IMPLEMENTED.

Short Name:

carenet_app_permissions

Accessible By:

Nobody

URL Parameters:
  • PHA_EMAIL – The email identifier of the Indivo user app
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK. This call is unimplemented, and has no effect.

Example Return Value:

<ok/>

Todo

The API Call ‘GET /carenets/{0}/apps/{1}/permissions’ is not yet implemented.


GET /carenets/{CARENET_ID}/demographics

Read demographics from a carenet.

Short Name:

read_demographics_carenet

Accessible By:

A user app with access to the carenet or the entire carenet’s record, an account in the carenet or in control of the record, or any admin app.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Query Parameters:
 
  • response_format – one of application/rdf+xml (SMART RDF/XML), application/json (SDMJ), or application/xml (SDMX). Default is application/rdf+xml
Returns:

200 OK with demographics formatted in the requested response_format (default application/rdf+xml) on success, 404 Not Found when no demographics found, and 400 Bad Request if response_format is invalid

Example Return Value:

application/rdf+xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:sp="http://smartplatforms.org/terms#"   xmlns:v="http://www.w3.org/2006/vcard/ns#">
    <rdf:Description rdf:nodeID="_6730841b-05df-445f-8695-ed64197f4e6a">
        <v:family-name>William</v:family-name>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Name"/>
        <v:given-name>Robinson</v:given-name>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_bcf66b59-e438-49b2-b572-99af4319b297">
        <rdf:value>800-870-3011</rdf:value>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Tel"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Home"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Pref"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_8cbe3da1-fb53-4d31-80b6-19e0d04220ad">
        <dcterms:identifier>http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6</dcterms:identifier>
        <sp:system>Indivo Record</sp:system>
        <dcterms:title>Indivo Record 96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6</dcterms:title>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_451ade87-b519-4c92-8d07-2bbfcb23999c">
        <rdf:value>800-870-3011</rdf:value>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Tel"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Home"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Pref"/>
    </rdf:Description>
    <rdf:Description rdf:about="http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#MedicalRecord"/>
    </rdf:Description>
    <rdf:Description rdf:about="http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6/demographics">
        <v:tel rdf:nodeID="_bcf66b59-e438-49b2-b572-99af4319b297"/>
        <v:tel rdf:nodeID="_451ade87-b519-4c92-8d07-2bbfcb23999c"/>
        <sp:email>william.robinson@example.com</sp:email>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Demographics"/>
        <v:bday rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1965-08-09</v:bday>
        <v:adr rdf:nodeID="_9f06ee63-3704-4b2a-9c2a-109cc9c99a57"/>
        <sp:belongsTo rdf:resource="http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6"/>
        <foaf:gender>male</foaf:gender>
        <sp:preferredLanguage>EN</sp:preferredLanguage>
        <v:n rdf:nodeID="_6730841b-05df-445f-8695-ed64197f4e6a"/>
        <sp:medicalRecordNumber rdf:nodeID="_8cbe3da1-fb53-4d31-80b6-19e0d04220ad"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_9f06ee63-3704-4b2a-9c2a-109cc9c99a57">
        <v:street-address>23 Church Rd</v:street-address>
        <v:country>USA</v:country>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Address"/>
        <v:region>OK</v:region>
        <v:locality>Bixby</v:locality>
        <v:postal-code>74008</v:postal-code>
    </rdf:Description>
</rdf:RDF>

application/xml:

    <Models>
        <Model name="Demographics" documentId="44190967-cbaa-43a7-a98c-9f97f094ef2b">
            <Field name="bday">1965-08-09</Field>
            <Field name="email">william.robinson@example.com</Field>
            <Field name="ethnicity"/>
            <Field name="gender">male</Field>
            <Field name="preferred_language">EN</Field>
            <Field name="race"/>
            <Field name="name_given">Robinson</Field>
            <Field name="name_suffix"/>
            <Field name="name_family">William</Field>
            <Field name="name_prefix"/>
            <Field name="tel_2_type">h</Field>
            <Field name="tel_2_preferred_p">True</Field>
            <Field name="tel_2_number">800-870-3011</Field>
            <Field name="adr_region">OK</Field>
            <Field name="adr_country">USA</Field>
            <Field name="adr_postalcode">74008</Field>
            <Field name="adr_city">Bixby</Field>
            <Field name="adr_street">23 Church Rd</Field>
            <Field name="tel_1_type">h</Field>
            <Field name="tel_1_preferred_p">True</Field>
            <Field name="tel_1_number">800-870-3011</Field>
        </Model>
    </Models>

application/json:

    [
        {
            "__modelname__": "Demographics",
            "__documentid__": "44190967-cbaa-43a7-a98c-9f97f094ef2b",
            "name_given": "Robinson",
            "name_family": "William",
            "name_prefix": null,
            "name_suffix": null,
            "gender": "male",
            "race": null,
            "ethnicity": null,
            "bday": "1965-08-09",
            "email": "william.robinson@example.com",
            "preferred_language": "EN",
            "tel_1_type": "h",
            "tel_1_number": "800-870-3011",
            "tel_1_preferred_p": true,
            "tel_2_type": "h",
            "tel_2_number": "800-870-3011",
            "tel_2_preferred_p": true,
            "adr_street": "23 Church Rd",
            "adr_city": "Bixby",
            "adr_postalcode": "74008",
            "adr_region": "OK",
            "adr_country": "USA"
        }
    ]

New in version 2.0.0.


GET /carenets/{CARENET_ID}/documents/

List documents from a given carenet.

Short Name:

carenet_document_list

Accessible By:

A user app with access to the carenet or the entire carenet’s record, or an account in the carenet or in control of the record.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Query Parameters:
 
  • type – The Indivo document type to filter by
Returns:

200 OK with a document list on success, 404 Not Found if type doesn’t exist.

Example Return Value:

<Documents record_id="123" total_document_count="3" pha="" >
  <Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
    <createdAt>2009-05-04T17:05:33</createdAt>
    <creator id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </creator>
    <suppressedAt>2009-05-06T17:05:33</suppressedAt>
    <suppressor id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </suppressor>
    <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
    <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
    <label>HBA1C reading</label>
    <status>active</status>
    <nevershare>false</nevershare>
    <relatesTo>
      <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
      <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
    </relatesTo>
    <isRelatedFrom>
      <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
    </isRelatedFrom>
  </Document>

  ...

</Documents>

GET /carenets/{CARENET_ID}/documents/{DOCUMENT_ID}

Return a document from a carenet.

Short Name:

carenet_document

Accessible By:

A user app with access to the carenet or the entire carenet’s record, or an account in the carenet or in control of the record.

URL Parameters:
  • DOCUMENT_ID – The unique identifier of the Indivo document
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK with the document content on success, 404 Not Found if document_id is invalid or if the document is not shared in the carenet.

Example Return Value:

<ExampleDocument>
  <content>That's my content</content>
  <otherField attr="val" />
</ExampleDocument>

GET /carenets/{CARENET_ID}/documents/{DOCUMENT_ID}/meta

Fetch the metadata of a record-specific document via a carenet.

Short Name:

carenet_document_meta

Accessible By:

A user app with access to the carenet or the entire carenet’s record, or an account in the carenet or in control of the record.

URL Parameters:
  • DOCUMENT_ID – The unique identifier of the Indivo document
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK with the document’s metadata, or 404 Not Found if document_id doesn’t identify an existing document in the carenet.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /carenets/{CARENET_ID}/record

Get basic information about the record to which a carenet belongs.

Short Name:

carenet_record

Accessible By:

A principal in the carenet, in full control of the carenet’s record, or any admin app.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Returns:

200 OK with XML describing the record.

Example Return Value:

<Record id="123" label="Joe User">
  <demographics document_id="467" />
  <created at="2010-10-23T10:23:34Z" by="indivoconnector@apps.indivo.org" />
</Record>

POST /carenets/{CARENET_ID}/rename

Change a carenet’s name.

Short Name:

carenet_rename

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • CARENET_ID – The id string associated with the Indivo carenet
Formdata Parameters:
 
  • name – The new name for the carenet.
Returns:

200 OK with XML describing the renamed carenet on success, 400 Bad Request if name wasn’t passed or if a carenet named name already exists on this record.

Example Return Value:

<Carenets record_id="123">
    <Carenet id="789" name="Work/School" mode="explicit" />
</Carenets>

GET /carenets/{CARENET_ID}/reports/{DATA_MODEL}/

List the Model data for a given carenet.

Short Name:

carenet_generic_list

Accessible By:

A user app with access to the carenet or the entire carenet’s record, or an account in the carenet or in control of the record.

URL Parameters:
  • DATA_MODEL – The name of the data model to report on
  • CARENET_ID – The id string associated with the Indivo carenet
Query Parameters:
 
Returns:

200 OK with a list of DATA_MODELs, or 400 Bad Request if any invalid query parameters were passed.

Example Return Value:

SDMX Example:
   {
    "__modelname__": "TestMedication",
    "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
    "name": "ibuprofen",
    "date_started": "2010-10-01T00:00:00Z",
    "date_stopped": "2010-10-31T00:00:00Z",
    "brand_name": "Advil",
    "prescription": {
        "__modelname__": "TestPrescription",
        "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
        "prescribed_by_name": "Kenneth D. Mandl",
        "prescribed_by_institution": "Children's Hospital Boston",
        "prescribed_on": "2010-09-30T00:00:00Z",
        "prescribed_stop_on": "2010-10-31T00:00:00Z"
    },
    "fills": [
        {
            "__modelname__": "TestFill",
            "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
            "date_filled": "2010-10-01T00:00:00Z",
            "supply_days": "15",
            "filled_at_name": "CVS"
        },
        {
            "__modelname__": "TestFill",
            "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
            "date_filled": "2010-10-16T00:00:00Z",
            "supply_days": "15",
            "filled_at_name": "CVS"
        }
    ]
}

SDMX Example:

<Models>
  <Model name="TestMedication" documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
    <Field name="date_started">2010-10-01T00:00:00Z</Field>
    <Field name="name">ibuprofen</Field>
    <Field name="brand_name">Advil</Field>
    <Field name="date_stopped">2010-10-31T00:00:00Z</Field>
    <Field name="prescription">
      <Model name="TestPrescription"  documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
        <Field name="prescribed_by_name">Kenneth D. Mandl</Field>
        <Field name="prescribed_by_institution">Children's Hospital Boston</Field>
        <Field name="prescribed_on">2010-09-30T00:00:00Z</Field>
        <Field name="prescribed_stop_on">2010-10-31T00:00:00Z</Field>
      </Model>
    </Field>
    <Field name="fills">
      <Models>
        <Model name="TestFill"  documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
          <Field name="date_filled">2010-10-01T00:00:00Z</Field>
          <Field name="supply_days">15</Field>
          <Field name="filled_at_name">CVS</Field>
        </Model>
        <Model name="TestFill"  documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
          <Field name="date_filled">2010-10-16T00:00:00Z</Field>
          <Field name="supply_days">15</Field>
          <Field name="filled_at_name">CVS</Field>
        </Model>
      </Models>
    </Field>
  </Model>
</Models>

GET /codes/systems/

List available codingsystems. NOT IMPLEMENTED.

Short Name:coding_systems_list
Accessible By:Anybody
Returns:500 Internal Server Error, as the system cannot process the call.

Example Return Value:

[{"short_name": "umls-snomed", "name": "UMLS SNOMED", "description" : "..."},
 {..},
 {..}]

Todo

The API Call ‘GET /codes/systems/’ is not yet implemented.


GET /codes/systems/{SYSTEM_SHORT_NAME}/query

Query a codingsystem for a value.

Short Name:

coding_system_query

Accessible By:

Anybody

URL Parameters:
  • SYSTEM_SHORT_NAME
Query Parameters:
 
  • q – The query string to search for
Returns:

200 OK with JSON describing codingsystems entries that matched q, or 404 Not Found if SYSTEM_SHORT_NAME is invalid.

Example Return Value:

[{"abbreviation": null, "code": "38341003", "consumer_value": null,
  "umls_code": "C0020538",
  "full_value": "Hypertensive disorder, systemic arterial (disorder)"},
 {"abbreviation": null, "code": "55822004", "consumer_value": null,
  "umls_code": "C0020473", "full_value": "Hyperlipidemia (disorder)"}]

GET /manifest

SMART Container Manifest

Short Name:smart_manifest
Accessible By:Any principal in Indivo.
Returns:SMART Container manifest describing its properties and capabilites, formatted as JSON

Example Return Value:

{
    "smart_version": "0.5.0",
    "api_base": "http://localhost:8000",
    "name": "SMART v0.5 Sandbox",
    "description": "Indivo Server",
    "admin": "support@indivo.localhost",

    "launch_urls": {
        "authorize_token": "http://localhost:8080/oauth/authorize",
        "exchange_token": "http://localhost:8000/oauth/access_token",
        "request_token": "http://localhost:8000/oauth/request_token"
    },

    "capabilities": {
        "http://smartplatforms.org/terms#Allergy": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#AppManifest": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#ClinicalNote": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#ContainerManifest": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Demographics": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Encounter": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Fulfillment": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Immunization": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#LabResult": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Medication": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Ontology": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Problem": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#Procedure": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#SocialHistory": {
            "methods": [
                "GET"
            ]
        },
        "http://smartplatforms.org/terms#VitalSignSet": {
            "methods": [
                "GET"
            ]
        }
    }
}

New in version 2.0.1.


POST /oauth/access_token

Exchange a request token for a valid access token.

Short Name:exchange_token
Accessible By:A request signed by a RequestToken.
Returns:200 OK with an access token, or 403 Forbidden if the request token didn’t validate.

Example Return Value:

oauth_token=abcd1fw3gasdgh3&oauth_token_secret=jgrlhre4291hfjas&xoauth_indivo_record_id=123

POST /oauth/internal/request_tokens/{REQTOKEN_ID}/approve

Indicate a user’s consent to bind an app to a record or carenet.

Short Name:

request_token_approve

Accessible By:

A principal in the carenet to which the request token is restricted (if the token is restricted), or a principal with full control over the record (if the token is not restricted).

URL Parameters:
  • REQTOKEN_ID
Formdata Parameters:
 
  • record_id – The record to bind to. Either record_id or carenet_id is required.
  • carenet_id – The carenet to bind to. Either record_id or carenet_id is required.
Returns:

200 OK with a redirect url to the app on success, 403 Forbidden if record_id/carenet_id don’t match reqtoken.

Example Return Value:

location=http%3A%2F%2Fapps.indivo.org%2Fproblems%2Fafter_auth%3Foauth_token%3Dabc123%26oauth_verifier%3Dabc123

(which is the urlencoded form of:

http://apps.indivo.org/problems/after_auth?oauth_token=abc123&oauth_verifier=abc123 )

POST /oauth/internal/request_tokens/{REQTOKEN_ID}/claim

Claim a request token on behalf of an account.

Short Name:

request_token_claim

Accessible By:

Any Account.

URL Parameters:
  • REQTOKEN_ID
Returns:

200 OK with the email of the claiming principal, or 403 Forbidden if the token has already been claimed.

Example Return Value:

joeuser@indivo.org

GET /oauth/internal/request_tokens/{REQTOKEN_ID}/info

Get information about a request token.

Short Name:

request_token_info

Accessible By:

Any Account.

URL Parameters:
  • REQTOKEN_ID
Returns:

200 OK with information about the token.

Example Return Value:

<RequestToken token="XYZ">
  <record id="123" />
  <carenet />
  <kind>new</kind>
  <App id="problems@apps.indivo.org">
    <name>Problem List</name>
    <description>Managing your list of problems</description>
    <autonomous>false</autonomous>
    <frameable>true</frameable>
    <ui>true</ui>
  </App>
</RequestToken>

POST /oauth/internal/session_create

Authenticate a user and register a web session for them.

Short Name:

session_create

Accessible By:

Any Indivo UI app.

Formdata Parameters:
 
  • username – The username of the user to authenticate.
  • password – The password to use with username against the internal password auth system. EITHER password or system is Required.
  • system – An external auth system to authenticate the user with. EITHER password or system is Required.
Returns:

200 OK with a valid session token, or 403 Forbidden if the passed credentials were invalid.

Example Return Value:

oauth_token=XYZ&oauth_token_secret=ABC&account_id=joeuser%40indivo.org

GET /oauth/internal/surl-verify

Verify a signed URL.

Short Name:

surl_verify

Accessible By:

Any Account.

Query Parameters:
 
  • surl_sig – The computed signature (base-64 encoded sha1) of the url.
  • surl_timestamp – when the url was generated. Must be within the past hour.
  • surl_token – The access token used to sign the url.
Returns:

200 OK with XML describing whether the surl validated.

Example Return Value:

If the surl validated:

<result>ok</result>

If the surl was too old:

<result>old</result>

If the surl's signature was invalid:

<result>mismatch</result>

POST /oauth/request_token

Get a new request token, bound to a record or carenet if desired.

Short Name:

request_token

Accessible By:

Any user app.

Formdata Parameters:
 
  • indivo_record_id – The record to which to bind the request token. EITHER indivo_record_id or indivo_carenet_id is REQUIRED.
  • indivo_carenet_id – The carenet to which to bind the request token. EITHER indivo_record_id or indivo_carenet_id is REQUIRED.
Returns:

200 OK with the request token on success, 403 Forbidden if the oauth signature on the request of missing or faulty.

Example Return Value:

oauth_token=abcd1fw3gasdgh3&oauth_token_secret=jgrlhre4291hfjas&xoauth_indivo_record_id=123

GET /ontology

Fetch the SMART ontology as RDF/XML.

Short Name:smart_ontology
Accessible By:Any principal in Indivo.
Returns:An OWL file describing the SMART ontology.

Example Return Value:

see http://sandbox-api.smartplatforms.org/ontology

New in version 2.0.0.


POST /records/

Create a new record.

Short Name:record_create
Accessible By:Any admin app.
Raw Data:A valid Indivo Demographics Document (see Indivo Document Demographics Schema).
Returns:200 OK with information about the record on success, 400 Bad Request if the demographics XML was empty or invalid.

Example Return Value:

<Record id="123" label="Joe Smith">
  <demographics document_id="" />
</Record>

PUT /records/external/{PRINCIPAL_EMAIL}/{EXTERNAL_ID}

Create a new record with an associated external id.

Short Name:

record_create_ext

Accessible By:

An admin app with an id matching the principal_email in the URL.

URL Parameters:
  • PRINCIPAL_EMAIL – The email with which to scope an external id.
  • EXTERNAL_ID – The external identifier of the desired resource
Raw Data:

A valid Indivo Demographics Document (see Indivo Document Demographics Schema).

Returns:

200 OK with information about the record on success, 400 Bad Request if the demographics XML was empty or invalid.

Example Return Value:

<Record id="123" label="Joe Smith">
  <demographics document_id="" />
</Record>

Search for records by label (usually the same as full name), given name, family name, or postal code. If multiple

Short Name:

record_search

Accessible By:

Any admin app.

Query Parameters:
 
  • label – A search string to match against record labels.
Returns:

200 OK with a list of matching records on success, 400 Bad Request if no query parameters were passed.

Example Return Value:

<Records>
  <Record id="123" label="John R. Smith" />
  <Record id = "234" label="Frank Frankson" />

  ...

</Records>

New in version 1.0.1.


GET /records/{RECORD_ID}

Get information about an individual record.

Short Name:

record

Accessible By:

A principal in full control of the record, any admin app, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 OK with information about the record.

Example Return Value:

<Record id="123" label="Joe Smith">
  <demographics document_id="346" />
</Record>

GET /records/{RECORD_ID}/allergies/

SMART allergy list, serialized as RDF/XML.

Short Name:

smart_allergies

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

SMART RDF describing the record’s allergies and allergy exclusions

Example Return Value:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
   xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:sp="http://smartplatforms.org/terms#"
>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/271807003">
    <dcterms:title>skin rash</dcterms:title>
    <dcterms:identifier>271807003</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/03059111-af61-4834-8234-befe5f5a2532/allergies/f8efc96a-7677-4b4f-9879-7fc6d6488d0b">
    <sp:category rdf:nodeID="_865481f6-03ca-4707-8a89-ec468952efa5"/>
    <sp:severity rdf:nodeID="_9f6a6981-1173-4041-8fa3-4462238ab8ae"/>
    <sp:foodAllergen rdf:nodeID="_24be52e0-51a4-4d00-9654-25ae9e0ad2f4"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Allergy"/>
    <sp:belongsTo rdf:nodeID="_f63e49ae-5071-4f99-a62d-329a2e23ce85"/>
    <sp:allergicReaction rdf:nodeID="_7912ae70-da78-443f-a0b6-3f955b9e140a"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_865481f6-03ca-4707-8a89-ec468952efa5">
    <dcterms:title>food allergy</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/414285001"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_e6301747-0618-4a74-9b52-d7b5f3745463">
    <dcterms:title>drug allergy</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/416098002"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_b8361d90-8b1e-40cb-b892-80dcb4301d90">
    <dcterms:title>mild</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/255604002"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/414285001">
    <dcterms:title>food allergy</dcterms:title>
    <dcterms:identifier>414285001</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/AllergyCategory"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_7912ae70-da78-443f-a0b6-3f955b9e140a">
    <dcterms:title>anaphylaxis</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/39579001"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_9f6a6981-1173-4041-8fa3-4462238ab8ae">
    <dcterms:title>severe</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/24484000"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/416098002">
    <dcterms:title>drug allergy</dcterms:title>
    <dcterms:identifier>416098002</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/AllergyCategory"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_2c0973ad-d7fd-4e7f-a6c2-5c625a54aea7">
    <dcterms:title>skin rash</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/271807003"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/03059111-af61-4834-8234-befe5f5a2532/allergies/a4abf13b-ec73-4ae4-b0a2-9d71ab2ea368">
    <sp:drugClassAllergen rdf:nodeID="_f06759ab-6668-4832-97da-0794d244d403"/>
    <sp:category rdf:nodeID="_e6301747-0618-4a74-9b52-d7b5f3745463"/>
    <sp:severity rdf:nodeID="_b8361d90-8b1e-40cb-b892-80dcb4301d90"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Allergy"/>
    <sp:belongsTo rdf:nodeID="_f63e49ae-5071-4f99-a62d-329a2e23ce85"/>
    <sp:allergicReaction rdf:nodeID="_2c0973ad-d7fd-4e7f-a6c2-5c625a54aea7"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/39579001">
    <dcterms:title>anaphylaxis</dcterms:title>
    <dcterms:identifier>39579001</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/255604002">
    <dcterms:title>mild</dcterms:title>
    <dcterms:identifier>255604002</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/AllergySeverity"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_24be52e0-51a4-4d00-9654-25ae9e0ad2f4">
    <dcterms:title>peanut</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://fda.gov/UNII/QE1QX6B99R"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/NDFRT/N0000175503">
    <dcterms:title>sulfonamide antibacterial</dcterms:title>
    <dcterms:identifier>N0000175503</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/NDFRT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/NDFRT"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_f06759ab-6668-4832-97da-0794d244d403">
    <dcterms:title>sulfonamide antibacterial</dcterms:title>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/NDFRT/N0000175503"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_f63e49ae-5071-4f99-a62d-329a2e23ce85">
    <rdf:type rdf:resource="http://smartplatforms.org/terms#MedicalRecord"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://fda.gov/UNII/QE1QX6B99R">
    <dcterms:title>peanut</dcterms:title>
    <dcterms:identifier>QE1QX6B99R</dcterms:identifier>
    <sp:system>http://fda.gov/UNII/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/UNII"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/24484000">
    <dcterms:title>severe</dcterms:title>
    <dcterms:identifier>24484000</dcterms:identifier>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/AllergySeverity"/>
  </rdf:Description>
</rdf:RDF>

New in version 2.0.0.


GET /records/{RECORD_ID}/allergies/{MODEL_ID}

Retrieve a specific instance of a SMART allergy.

Short Name:

smart_allergies_instance

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • MODEL_ID – The id of the Allergy/AllergyExclusion
Returns:

SMART RDF describing the AllergyAllergyExclusion

Example Return Value:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sp="http://smartplatforms.org/terms#"
>
    <rdf:Description rdf:nodeID="_9ea3b5f3-c0c4-40d7-a370-2ab475ea1d6e">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <sp:code rdf:resource="http://purl.bioontology.org/ontology/NDFRT/N0000175503"/>
        <dcterms:title>Sulfonamide Antibacterial</dcterms:title>
    </rdf:Description>
    <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/416098002">
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/AllergyCategory"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <dcterms:identifier>416098002</dcterms:identifier>
        <dcterms:title>Drug allergy</dcterms:title>
        <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    </rdf:Description>
    <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/24484000">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/AllergySeverity"/>
        <dcterms:identifier>24484000</dcterms:identifier>
        <dcterms:title>Severe</dcterms:title>
        <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    </rdf:Description>
    <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/39579001">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
        <dcterms:identifier>39579001</dcterms:identifier>
        <dcterms:title>Anaphylaxis</dcterms:title>
        <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    </rdf:Description>
    <rdf:Description rdf:about="http://indivo.org/records/b171cd33-00a6-4038-976d-b8380c276ba1/allergies/09eadb0d-9c58-4cac-aad5-c84c29caf5bd">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Allergy"/>
        <sp:allergicReaction rdf:nodeID="_6538190b-0659-4710-b083-fe3f0462242b"/>
        <sp:category rdf:nodeID="_3572cdcd-7787-4801-b6b3-e153794ace84"/>
        <sp:drugClassAllergen rdf:nodeID="_9ea3b5f3-c0c4-40d7-a370-2ab475ea1d6e"/>
        <sp:severity rdf:nodeID="_e62b76fe-e33b-4d9f-9a2b-dc1221e3eb17"/>
        <sp:belongsTo rdf:resource="http://indivo.org/records/b171cd33-00a6-4038-976d-b8380c276ba1"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_6538190b-0659-4710-b083-fe3f0462242b">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/39579001"/>
        <dcterms:title>Anaphylaxis</dcterms:title>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_e62b76fe-e33b-4d9f-9a2b-dc1221e3eb17">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/24484000"/>
        <dcterms:title>Severe</dcterms:title>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_3572cdcd-7787-4801-b6b3-e153794ace84">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/416098002"/>
        <dcterms:title>Drug allergy</dcterms:title>
    </rdf:Description>
    <rdf:Description rdf:about="http://purl.bioontology.org/ontology/NDFRT/N0000175503">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/NDFRT"/>
        <dcterms:identifier>N0000175503</dcterms:identifier>
        <dcterms:title>Sulfonamide Antibacterial</dcterms:title>
        <sp:system>http://purl.bioontology.org/ontology/NDFRT/</sp:system>
    </rdf:Description>
</rdf:RDF>

New in version 2.1.0.


GET /records/{RECORD_ID}/apps/

List userapps bound to a given record.

Short Name:

record_phas

Accessible By:

A principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Query Parameters:
 
  • type – A namespaced document type. If specified, only apps which explicitly declare themselves as supporting that document type will be returned.
Returns:

200 OK with a list of JSON manifests for the userapps.

Example Return Value:

[
{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
},

... other apps ...

]

Changed in version 2.0.0: Apps are now returned as JSON manifests, not XML


DELETE /records/{RECORD_ID}/apps/{PHA_EMAIL}

Remove a userapp from a record.

Short Name:

pha_record_delete

Accessible By:

Any admin app, or a principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 Success.

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/apps/{PHA_EMAIL}

Get information about a given userapp bound to a record.

Short Name:

record_pha

Accessible By:

A principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with a JSON manifest for the app, or 404 Not Found if the app isn’t bound to the record.

Example Return Value:

{
    "name" : "SMART Problems",
    "description" : "Display problems in a table view",
    "author" : "Josh Mandel, Children's Hospital Boston",
    "id" : "problem-list@apps.smartplatforms.org",
    "version" : ".1a",

    "mode" : "ui",
    "scope": "record",

    "index" : "http://fda.gping.org:8012/framework/problem_list/index.html",
    "icon" : "http://fda.gping.org:8012/framework/problem_list/icon.png",

    "requires" : {
        "http://smartplatforms.org/terms#Problem": {
            "methods": ["GET"]
        }
    }
}

Changed in version 2.0.0: Apps are now returned as JSON manifests, not XML


PUT /records/{RECORD_ID}/apps/{PHA_EMAIL}

Enable a userapp for a record.

Short Name:

record_pha_enable

Accessible By:

Any admin app, or a principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK on success, 404 Not Found if either the specified record or the specified app doesn’t exist.

Example Return Value:

<ok/>

New in version 1.0.0.


GET /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/

List record-app-specific documents.

Short Name:

record_app_document_list

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Query Parameters:
 
Returns:

200 OK with a list of documents, or 404 Not Found if an invalid type was passed in the querystring.

Example Return Value:

<Documents record_id="123" total_document_count="4" pha="problems@apps.indivo.org">
  <Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
    <createdAt>2009-05-04T17:05:33</createdAt>
    <creator id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </creator>
    <suppressedAt>2009-05-06T17:05:33</suppressedAt>
    <suppressor id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </suppressor>
    <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
    <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
    <label>HBA1C reading Preferences</label>
    <status>active</status>
    <nevershare>false</nevershare>
    <relatesTo>
      <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
      <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
    </relatesTo>
    <isRelatedFrom>
      <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
    </isRelatedFrom>
  </Document>

  ...

</Documents>

POST /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/

Create a record-app-specific Indivo document.

Short Name:

record_app_document_create

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created document, or 400 Bad Request if the new document failed validation.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading Preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}

Retrieve a record-app-specific document with an associated external id.

Short Name:

record_app_document_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The unique identifier of the Indivo document
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with the raw content of the document, or 404 Not Found if the document could not be found.

Example Return Value:

<ProblemsPreferences record_id="123">
  <Preference name="hide_void" value="true" />
  <Preference name="show_rels" value="false" />
</ProblemsPreferences>

POST /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}

Create or Overwrite a record-app-specific Indivo document with an associated external id.

Short Name:

record_app_document_create_or_update_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The raw content of the document to create/update.

Returns:

200 OK with metadata describing the created or updated document, or 400 Bad Request if the passed content didn’t validate.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="problems@apps.indivo.org" type="pha">
  </creator>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

PUT /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}

Create or Overwrite a record-app-specific Indivo document with an associated external id.

Short Name:

record_app_document_create_or_update_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The raw content of the document to create/update.

Returns:

200 OK with metadata describing the created or updated document, or 400 Bad Request if the passed content didn’t validate.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="problems@apps.indivo.org" type="pha">
  </creator>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

GET /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/external/{EXTERNAL_ID}/meta

Fetch the metadata of a record-app-specific document identified by external id.

Short Name:

record_app_document_meta_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with metadata describing the specified document, or http:statuscode:404 if the external_id is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="problems@apps.indivo.org" type="pha">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading Preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

DELETE /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}

Delete a record-app-specific document.

Short Name:

record_app_document_delete

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}

Retrieve a record-app-specific document.

Short Name:

record_app_document

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with the raw content of the document, or 404 Not Found if the document could not be found.

Example Return Value:

<ProblemsPreferences record_id="123">
  <Preference name="hide_void" value="true" />
  <Preference name="show_rels" value="false" />
</ProblemsPreferences>

PUT /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}/label

Set the label of a record-app-specific document.

Short Name:

record_app_document_label

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The new label for the document

Returns:

200 OK with metadata describing the re-labeled document, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>RELABELED: New HBA1C reading Preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /records/{RECORD_ID}/apps/{PHA_EMAIL}/documents/{DOCUMENT_ID}/meta

Fetch the metadata of a record-app-specific document.

Short Name:

record_app_document_meta

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with the document metadata, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading Preferences</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

POST /records/{RECORD_ID}/apps/{PHA_EMAIL}/setup

Bind an app to a record without user authorization.

Short Name:

record_pha_setup

Accessible By:

Any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

Raw content that will be used as a setup document for the record. OPTIONAL.

Returns:

200 OK with a valid access token for the newly set up app.

Example Return Value:

oauth_token=abcd1fw3gasdgh3&oauth_token_secret=jgrlhre4291hfjas&xoauth_indivo_record_id=123

GET /records/{RECORD_ID}/audits/

Return audits of calls touching record.

Short Name:

audit_record_view

Accessible By:

A principal in full control of the record, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Query Parameters:
 
Returns:

200 OK, with a list of Audit Reports.

Example Return Value:

<Reports xmlns="http://indivo.org/vocab/xml/documents#">
  <Summary total_document_count="2" limit="100" offset="0" order_by="date_measured" />
  <QueryParams>
    <Filters>
    </Filters>
  </QueryParams>
  <Report>
    <Meta>
    </Meta>
    <Item>
      <AuditEntry>
        <BasicInfo datetime="2011-04-27T17:32:23Z" view_func="get_document" request_successful="true" />
        <PrincipalInfo effective_principal="myapp@apps.indivoheatlh.org" proxied_principal="me@indivohealth.org" />
        <Resources carenet_id="" record_id="123" pha_id="" document_id="234" external_id="" message_id="" />
        <RequestInfo req_url="/records/123/documents/acd/" req_ip_address="127.0.0.1" req_domain="localhost"  req_method="GET" />
        <ResponseInfo resp_code="200" />
      </AuditEntry>
    </Item>
  </Report>

  ...

</Reports>

Deprecated since version 0.9.3: Use GET /records/{RECORD_ID}/audits/query/ instead.


GET /records/{RECORD_ID}/audits/documents/{DOCUMENT_ID}/

Return audits of calls touching record and document_id.

Short Name:

audit_document_view

Accessible By:

A principal in full control of the record, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Query Parameters:
 
Returns:

200 OK, with a list of Audit Reports.

Example Return Value:

<Reports xmlns="http://indivo.org/vocab/xml/documents#">
  <Summary total_document_count="2" limit="100" offset="0" order_by="date_measured" />
  <QueryParams>
    <Filters>
      <Filter name="document_id" value="234"/>
    </Filters>
  </QueryParams>
  <Report>
    <Meta>
    </Meta>
    <Item>
      <AuditEntry>
        <BasicInfo datetime="2011-04-27T17:32:23Z" view_func="get_document" request_successful="true" />
        <PrincipalInfo effective_principal="myapp@apps.indivoheatlh.org" proxied_principal="me@indivohealth.org" />
        <Resources carenet_id="" record_id="123" pha_id="" document_id="234" external_id="" message_id="" />
        <RequestInfo req_url="/records/123/documents/acd/" req_ip_address="127.0.0.1" req_domain="localhost"  req_method="GET" />
        <ResponseInfo resp_code="200" />
      </AuditEntry>
    </Item>
  </Report>

  ...

</Reports>

Deprecated since version 0.9.3: Use GET /records/{RECORD_ID}/audits/query/ instead.


GET /records/{RECORD_ID}/audits/documents/{DOCUMENT_ID}/functions/{FUNCTION_NAME}/

Return audits of calls to function_name touching record and document_id.

Short Name:

audit_function_view

Accessible By:

A principal in full control of the record, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
  • FUNCTION_NAME – The internal Indivo function name called by the API request
Query Parameters:
 
Returns:

200 OK, with a list of Audit Reports.

Example Return Value:

<Reports xmlns="http://indivo.org/vocab/xml/documents#">
  <Summary total_document_count="2" limit="100" offset="0" order_by="date_measured" />
  <QueryParams>
    <Filters>
      <Filter name="document_id" value="234"/>
      <Filter name="req_view_func" value="record_document"/>
    </Filters>
  </QueryParams>
  <Report>
    <Meta>
    </Meta>
    <Item>
      <AuditEntry>
        <BasicInfo datetime="2011-04-27T17:32:23Z" view_func="get_document" request_successful="true" />
        <PrincipalInfo effective_principal="myapp@apps.indivoheatlh.org" proxied_principal="me@indivohealth.org" />
        <Resources carenet_id="" record_id="123" pha_id="" document_id="234" external_id="" message_id="" />
        <RequestInfo req_url="/records/123/documents/acd/" req_ip_address="127.0.0.1" req_domain="localhost"  req_method="GET" />
        <ResponseInfo resp_code="200" />
      </AuditEntry>
    </Item>
  </Report>

  ...

</Reports>

Deprecated since version 0.9.3: Use GET /records/{RECORD_ID}/audits/query/ instead.


GET /records/{RECORD_ID}/audits/query/

Select Audit Objects via the Query API Interface.

Short Name:

audit_query

Accessible By:

A principal in full control of the record, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Query Parameters:
 
Returns:

200 OK with a list of audit records, or 400 Bad Request if any of the arguments to the query interface are invalid.

Example Return Value:

<Reports xmlns="http://indivo.org/vocab/xml/documents#">
  <Summary total_document_count="2" limit="100" offset="0" order_by="date_measured" />
  <QueryParams>
    <DateRange value="created_at*1995-03-10T00:00:00Z*" />
    <Filters>
      <Filter name="document_id" value="234"/>
    </Filters>
  </QueryParams>
  <Report>
    <Meta>
    </Meta>
    <Item>
      <AuditEntry>
        <BasicInfo datetime="2011-04-27T17:32:23Z" view_func="get_document" request_successful="true" />
        <PrincipalInfo effective_principal="myapp@apps.indivoheatlh.org" proxied_principal="me@indivohealth.org" />
        <Resources carenet_id="" record_id="123" pha_id="" document_id="234" external_id="" message_id="" />
        <RequestInfo req_url="/records/123/documents/acd/" req_ip_address="127.0.0.1" req_domain="localhost"  req_method="GET" />
        <ResponseInfo resp_code="200" />
      </AuditEntry>
    </Item>
  </Report>

  ...

</Reports>

New in version 0.9.3.


GET /records/{RECORD_ID}/autoshare/bytype/

For a single record, list all carenets that a given doctype is autoshared with.

Short Name:

autoshare_list

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Query Parameters:
 
  • type – The document schema type to check autoshares for. REQUIRED.
Returns:

200 OK with a list of carenets, or 404 Not Found if the passed document type is invalid.

Example Return Value:

<Carenets record_id="123">
  <Carenet id="789" name="Work/School" mode="explicit" />

  ...

</Carenets>

GET /records/{RECORD_ID}/autoshare/bytype/all

For a single record, list all doctypes autoshared into carenets.

Short Name:

autoshare_list_bytype_all

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 OK with a list of doctypes and their shared carenets.

Example Return Value:

<DocumentSchemas>
  <DocumentSchema type="http://indivo.org/vocab/xml/documents#Medication">
    <Carenet id="123" name="Family" mode="explicit" />

    ...

  </DocumentSchema>

  ...

</DocumentSchemas>

POST /records/{RECORD_ID}/autoshare/carenets/{CARENET_ID}/bytype/set

Automatically share all documents of a certain type into a carenet.

Short Name:

autoshare_create

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • CARENET_ID – The id string associated with the Indivo carenet
Formdata Parameters:
 
  • type – the document schema type to create an autoshare for
Returns:

200 OK, or 404 Not Found if the passed document type doesn’t exist.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/autoshare/carenets/{CARENET_ID}/bytype/unset

Remove an autoshare from a carenet.

Short Name:

autoshare_delete

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • CARENET_ID – The id string associated with the Indivo carenet
Formdata Parameters:
 
  • type – the document schema type to remove an autoshare for
Returns:

200 OK, or 404 Not Found if the passed document type doesn’t exist.

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/carenets/

List all carenets for a record.

Short Name:

carenet_list

Accessible By:

A principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 OK, with a list of carenets.

Example Return Value:

<Carenets record_id="123">
  <Carenet id="789" name="Work/School" mode="explicit" />

  ...

</Carenets>

POST /records/{RECORD_ID}/carenets/

Create a new carenet for a record.

Short Name:

carenet_create

Accessible By:

A principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Formdata Parameters:
 
  • name – The label for the new carenet.
Returns:

200 OK with a description of the new carenet, or 400 Bad Request if the name of the carenet wasn’t passed or already exists.

Example Return Value:

<Carenets record_id="123">
  <Carenet id="789" name="Work/School" mode="explicit" />
</Carenets>

GET /records/{RECORD_ID}/demographics

Read demographics from a record.

Short Name:

read_demographics

Accessible By:

A user app with access to the record, a principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Query Parameters:
 
  • response_format – one of application/rdf+xml (SMART RDF/XML), application/json (SDMJ), or application/xml (SDMX). Default is application/rdf+xml
Returns:

200 OK with demographics formatted in the requested response_format (default application/rdf+xml) on success, 404 Not Found when no demographics found, and 400 Bad Request if response_format is invalid

Example Return Value:

application/rdf+xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:sp="http://smartplatforms.org/terms#"   xmlns:v="http://www.w3.org/2006/vcard/ns#">
    <rdf:Description rdf:nodeID="_6730841b-05df-445f-8695-ed64197f4e6a">
        <v:family-name>William</v:family-name>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Name"/>
        <v:given-name>Robinson</v:given-name>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_bcf66b59-e438-49b2-b572-99af4319b297">
        <rdf:value>800-870-3011</rdf:value>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Tel"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Home"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Pref"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_8cbe3da1-fb53-4d31-80b6-19e0d04220ad">
        <dcterms:identifier>http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6</dcterms:identifier>
        <sp:system>Indivo Record</sp:system>
        <dcterms:title>Indivo Record 96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6</dcterms:title>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_451ade87-b519-4c92-8d07-2bbfcb23999c">
        <rdf:value>800-870-3011</rdf:value>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Tel"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Home"/>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Pref"/>
    </rdf:Description>
    <rdf:Description rdf:about="http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#MedicalRecord"/>
    </rdf:Description>
    <rdf:Description rdf:about="http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6/demographics">
        <v:tel rdf:nodeID="_bcf66b59-e438-49b2-b572-99af4319b297"/>
        <v:tel rdf:nodeID="_451ade87-b519-4c92-8d07-2bbfcb23999c"/>
        <sp:email>william.robinson@example.com</sp:email>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Demographics"/>
        <v:bday rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1965-08-09</v:bday>
        <v:adr rdf:nodeID="_9f06ee63-3704-4b2a-9c2a-109cc9c99a57"/>
        <sp:belongsTo rdf:resource="http://indivo.org/records/96ff9eb2-3b18-4a0e-9df8-5a731b96d5d6"/>
        <foaf:gender>male</foaf:gender>
        <sp:preferredLanguage>EN</sp:preferredLanguage>
        <v:n rdf:nodeID="_6730841b-05df-445f-8695-ed64197f4e6a"/>
        <sp:medicalRecordNumber rdf:nodeID="_8cbe3da1-fb53-4d31-80b6-19e0d04220ad"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_9f06ee63-3704-4b2a-9c2a-109cc9c99a57">
        <v:street-address>23 Church Rd</v:street-address>
        <v:country>USA</v:country>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Address"/>
        <v:region>OK</v:region>
        <v:locality>Bixby</v:locality>
        <v:postal-code>74008</v:postal-code>
    </rdf:Description>
</rdf:RDF>

application/xml:

    <Models>
        <Model name="Demographics" documentId="44190967-cbaa-43a7-a98c-9f97f094ef2b">
            <Field name="bday">1965-08-09</Field>
            <Field name="email">william.robinson@example.com</Field>
            <Field name="ethnicity"/>
            <Field name="gender">male</Field>
            <Field name="preferred_language">EN</Field>
            <Field name="race"/>
            <Field name="name_given">Robinson</Field>
            <Field name="name_suffix"/>
            <Field name="name_family">William</Field>
            <Field name="name_prefix"/>
            <Field name="tel_2_type">h</Field>
            <Field name="tel_2_preferred_p">True</Field>
            <Field name="tel_2_number">800-870-3011</Field>
            <Field name="adr_region">OK</Field>
            <Field name="adr_country">USA</Field>
            <Field name="adr_postalcode">74008</Field>
            <Field name="adr_city">Bixby</Field>
            <Field name="adr_street">23 Church Rd</Field>
            <Field name="tel_1_type">h</Field>
            <Field name="tel_1_preferred_p">True</Field>
            <Field name="tel_1_number">800-870-3011</Field>
        </Model>
    </Models>

application/json:

    [
        {
            "__modelname__": "Demographics",
            "__documentid__": "44190967-cbaa-43a7-a98c-9f97f094ef2b",
            "name_given": "Robinson",
            "name_family": "William",
            "name_prefix": null,
            "name_suffix": null,
            "gender": "male",
            "race": null,
            "ethnicity": null,
            "bday": "1965-08-09",
            "email": "william.robinson@example.com",
            "preferred_language": "EN",
            "tel_1_type": "h",
            "tel_1_number": "800-870-3011",
            "tel_1_preferred_p": true,
            "tel_2_type": "h",
            "tel_2_number": "800-870-3011",
            "tel_2_preferred_p": true,
            "adr_street": "23 Church Rd",
            "adr_city": "Bixby",
            "adr_postalcode": "74008",
            "adr_region": "OK",
            "adr_country": "USA"
        }
    ]

New in version 2.0.0.


PUT /records/{RECORD_ID}/demographics

Create or update demographics on a record.

Short Name:

set_demographics

Accessible By:

A user app with access to the record, a principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 OK with metadata on the updated document, or 400 Bad Request if the new content didn’t validate

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="http://indivo.org/vocab/xml/documents#Demographics" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <status>active</status>
  <nevershare>false</nevershare>
</Document>

New in version 2.0.0.


DELETE /records/{RECORD_ID}/documents/

Delete all documents associated with a record.

Short Name:

documents_delete

Accessible By:

Nobody

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 Success

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/documents/

List record-specific documents.

Short Name:

record_document_list

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Query Parameters:
 
Returns:

200 OK with a list of documents, or 404 Not Found if an invalid type was passed in the querystring.

Example Return Value:

<Documents record_id="123" total_document_count="4">
  <Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
    <createdAt>2009-05-04T17:05:33</createdAt>
    <creator id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </creator>
    <suppressedAt>2009-05-06T17:05:33</suppressedAt>
    <suppressor id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </suppressor>
    <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
    <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
    <label>HBA1C reading</label>
    <status>active</status>
    <nevershare>false</nevershare>
    <relatesTo>
      <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
      <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
    </relatesTo>
    <isRelatedFrom>
      <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
    </isRelatedFrom>
  </Document>

  ...

</Documents>

POST /records/{RECORD_ID}/documents/

Create a record-specific Indivo Document.

Short Name:

document_create

Accessible By:

A user app with access to the record, a principal in full control of the record, or the admin app that created the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created document, or 400 Bad Request if the new document failed validation.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /records/{RECORD_ID}/documents/external/{PHA_EMAIL}/{EXTERNAL_ID}

Retrieve a record-specific document with an associated external id.

Short Name:

record_document_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

DESCRIBE THE VALUES THAT THE CALL RETURNS

Example Return Value:

GIVE AN EXAMPLE OF A RETURN VALUE

PUT /records/{RECORD_ID}/documents/external/{PHA_EMAIL}/{EXTERNAL_ID}

Create a record-specific Indivo Document with an associated external id.

Short Name:

document_create_by_ext_id

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created document, or 400 Bad Request if the new document failed validation, or if the external id was taken.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

PUT /records/{RECORD_ID}/documents/external/{PHA_EMAIL}/{EXTERNAL_ID}/label

Set the label of a record-specific document, specified by external id.

Short Name:

record_document_label_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Raw Data:

The new label for the document

Returns:

200 OK with metadata describing the re-labeled document, or 404 Not Found if EXTERNAL_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>RELABELED: New HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /records/{RECORD_ID}/documents/external/{PHA_EMAIL}/{EXTERNAL_ID}/meta

Fetch the metadata of a record-specific document identified by external id.

Short Name:

record_document_meta_ext

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
Returns:

200 OK with the document metadata, or 404 Not Found if EXTERNAL_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID_0}/rels/{REL}/{DOCUMENT_ID_1}

Create a new relationship between two existing documents.

Short Name:

document_rels

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID_1 – The id of the document that is the subject of the relationship, i.e. DOCUMENT_ID_1 annotates DOCUMENT_ID_0
  • DOCUMENT_ID_0 – The id of the document that is the object of the relationship, i.e. DOCUMENT_ID_0 is annotated by DOCUMENT_ID_1
  • REL – The type of relationship between the documents, i.e. annotation, interpretation
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID_0, DOCUMENT_ID_1, or REL don’t exist.

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/documents/{DOCUMENT_ID}

Retrieve a record-specific document.

Short Name:

record_document

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with the raw content of the document, or 404 Not Found if the document could not be found.

Example Return Value:

<HBA1C xmlns="http://indivo.org/vocab#" value="5.3" unit="percent" datetime="2011-01-15T17:00:00.000Z" />

GET /records/{RECORD_ID}/documents/{DOCUMENT_ID}/carenets/

List all the carenets into which a document has been shared.

Short Name:

document_carenets

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with a list of carenets.

Example Return Value:

<Carenets record_id="123">
  <Carenet id="789" name="Work/School" mode="explicit" />

  ...

</Carenets>

DELETE /records/{RECORD_ID}/documents/{DOCUMENT_ID}/carenets/{CARENET_ID}

Unshare a document from a given carenet.

Short Name:

carenet_document_delete

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • CARENET_ID – The id string associated with the Indivo carenet
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID is invalid or if either the passed carenet or document do not belong to the passed record.

Example Return Value:

<ok/>

PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID}/carenets/{CARENET_ID}

Place a document into a given carenet.

Short Name:

carenet_document_placement

Accessible By:

A principal in full control of the carenet’s record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • CARENET_ID – The id string associated with the Indivo carenet
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID is invalid or nevershared.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/documents/{DOCUMENT_ID}/carenets/{CARENET_ID}/autoshare-revert

Revert the document-sharing of a document in a carent to whatever rules are specified by autoshares. NOT IMPLEMENTED.

Short Name:

autoshare_revert

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • CARENET_ID – The id string associated with the Indivo carenet
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success.

Example Return Value:

<ok/>

Todo

The API Call ‘POST /records/{0}/documents/{1}/carenets/{2}/autoshare-revert’ is not yet implemented.


PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID}/label

Set the label of a record-specific document.

Short Name:

record_document_label

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The new label for the document

Returns:

200 OK with metadata describing the re-labeled document, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>RELABELED: New HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

GET /records/{RECORD_ID}/documents/{DOCUMENT_ID}/meta

Fetch the metadata of a record-specific document.

Short Name:

record_document_meta

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with the document metadata, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID}/meta

Set metadata fields on a document. NOT IMPLEMENTED.

Short Name:

update_document_meta

Accessible By:

Nobody

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success.

Example Return Value:

<ok/>

Todo

The API Call ‘PUT /records/{0}/documents/{1}/meta’ is not yet implemented.


DELETE /records/{RECORD_ID}/documents/{DOCUMENT_ID}/nevershare

Remove the nevershare flag from a document.

Short Name:

document_remove_nevershare

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<ok/>

PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID}/nevershare

Flag a document to never be shared, anywhere.

Short Name:

document_set_nevershare

Accessible By:

A principal in full control of the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 Success, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/documents/{DOCUMENT_ID}/rels/{REL}/

Get all documents related to the passed document_id by a relation of the passed relation-type.

Short Name:

get_documents_by_rel

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • REL – The type of relationship between the documents, i.e. annotation, interpretation
  • DOCUMENT_ID – The unique identifier of the Indivo document
Query Parameters:
 
  • status – The account or document status to filter by.
  • limit – See Query Operators. CURRENTLY UNIMPLEMENTED.
  • order_by – See Query Operators. CURRENTLY UNIMPLEMENTED.
  • offset – See Query Operators. CURRENTLY UNIMPLEMENTED
Returns:

200 OK with a list of related documents, or 400 Bad Request if DOCUMENT_ID is invalid.

Example Return Value:

<Documents record_id="123" total_document_count="4">
  <Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
    <createdAt>2009-05-04T17:05:33</createdAt>
    <creator id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </creator>
    <suppressedAt>2009-05-06T17:05:33</suppressedAt>
    <suppressor id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </suppressor>
    <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
    <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
    <label>HBA1C reading</label>
    <status>active</status>
    <nevershare>false</nevershare>
    <relatesTo>
      <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
      <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
    </relatesTo>
    <isRelatedFrom>
      <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
    </isRelatedFrom>
  </Document>

  ...

</Documents>

POST /records/{RECORD_ID}/documents/{DOCUMENT_ID}/rels/{REL}/

Create a document and relate it to an existing document.

Short Name:

document_create_by_rel

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • REL – The type of relationship between the documents, i.e. annotation, interpretation
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created document, or 400 Bad Request if the new content was invalid, or 404 Not Found if DOCUMENT_ID or REL are invalid.

Example Return Value:

<Document id="238543a5-e516-4da2-8a70-8c764c65a5a7" type="" size="104" digest="6aaef7aa0fbc24eef18f6cde0bc17120cbea6f35" record_id="e32c3daf-33e3-443e-aa4a-fad22fe559cc">
    <createdAt>2012-07-10T14:58:36.805563Z</createdAt>
    <creator id="bob@indivo.org" type="account">
        <fullname>Bob Loblaw</fullname>
    </creator>
    <original id="238543a5-e516-4da2-8a70-8c764c65a5a7"/>
    <status>active</status>
    <nevershare>false</nevershare>
    <isRelatedFrom>
        <relation type="http://indivo.org/vocab/documentrels#annotation" count="1" />
    </isRelatedFrom>
</Document>

POST /records/{RECORD_ID}/documents/{DOCUMENT_ID}/rels/{REL}/external/{PHA_EMAIL}/{EXTERNAL_ID}

Create a document, assign it an external id, and relate it to an existing document.

Short Name:

document_create_by_rel_with_ext_id

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • REL – The type of relationship between the documents, i.e. annotation, interpretation
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The raw content of the document to create.

Returns:

200 OK with the metadata of the created document, or 400 Bad Request if the new content was invalid, or 404 Not Found if DOCUMENT_ID or REL are invalid.

Example Return Value:

<Document id="238543a5-e516-4da2-8a70-8c764c65a5a7" type="" size="104" digest="6aaef7aa0fbc24eef18f6cde0bc17120cbea6f35" record_id="e32c3daf-33e3-443e-aa4a-fad22fe559cc">
    <createdAt>2012-07-10T14:58:36.805563Z</createdAt>
    <creator id="bob@indivo.org" type="account">
        <fullname>Bob Loblaw</fullname>
    </creator>
    <original id="238543a5-e516-4da2-8a70-8c764c65a5a7"/>
    <status>active</status>
    <nevershare>false</nevershare>
    <isRelatedFrom>
        <relation type="http://indivo.org/vocab/documentrels#annotation" count="1" />
    </isRelatedFrom>
</Document>

PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID}/rels/{REL}/external/{PHA_EMAIL}/{EXTERNAL_ID}

Create a document, assign it an external id, and relate it to an existing document.

Short Name:

document_create_by_rel_with_ext_id

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • REL – The type of relationship between the documents, i.e. annotation, interpretation
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The raw content of the document to create.

Returns:

200 Success, 400 Bad Request if the new content was invalid, or 404 Not Found if DOCUMENT_ID or REL are invalid.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/documents/{DOCUMENT_ID}/replace

Create a new version of a record-specific document.

Short Name:

document_version

Accessible By:

A user app with access to the record, a principal in full control of the record, or the admin app that created the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The raw content of the document to create.

Returns:

200 OK with metadata on the new document, 400 Bad Request if the old document has already been replaced by a newer version, or 404 Not Found if DOCUMENT_ID is invalid or if the new content is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <replaces id="abe8130e2-ba54-1234-eeef-45a3b6cd9a8e" />
  <original id="abe8130e2-ba54-1234-eeef-45a3b6cd9a8e" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

PUT /records/{RECORD_ID}/documents/{DOCUMENT_ID}/replace/external/{PHA_EMAIL}/{EXTERNAL_ID}

Create a new version of a record-specific document and assign it an external id.

Short Name:

document_version_by_ext_id

Accessible By:

A user app with access to the record, with an id matching the app email in the URL.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • EXTERNAL_ID – The external identifier of the desired resource
  • PHA_EMAIL – The email identifier of the Indivo user app
  • DOCUMENT_ID – The unique identifier of the Indivo document
Raw Data:

The raw content of the document to create.

Returns:

200 OK with metadata on the new document, 400 Bad Request if the old document has already been replaced by a newer version, or 404 Not Found if DOCUMENT_ID is invalid or if the new content is invalid.

Example Return Value:

<Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
  <createdAt>2009-05-04T17:05:33</createdAt>
  <creator id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </creator>
  <suppressedAt>2009-05-06T17:05:33</suppressedAt>
  <suppressor id="steve@indivo.org" type="account">
    <fullname>Steve Zabak</fullname>
  </suppressor>
  <replaces id="abe8130e2-ba54-1234-eeef-45a3b6cd9a8e" />
  <original id="abe8130e2-ba54-1234-eeef-45a3b6cd9a8e" />
  <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
  <label>HBA1C reading</label>
  <status>active</status>
  <nevershare>false</nevershare>
  <relatesTo>
    <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
    <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
  </relatesTo>
  <isRelatedFrom>
    <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
  </isRelatedFrom>
</Document>

POST /records/{RECORD_ID}/documents/{DOCUMENT_ID}/set-status

Set the status of a record-specific document.

Short Name:

document_set_status

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Formdata Parameters:
 
  • status – The new status for the document. Options are active, void, archived.
  • reason – The reason for the status change.
Returns:

200 Success, 400 Bad Request if status or reason are missing, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<ok/>

GET /records/{RECORD_ID}/documents/{DOCUMENT_ID}/status-history

List all changes to a document’s status over time.

Short Name:

document_status_history

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Returns:

200 OK with a the document’s status history, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<DocumentStatusHistory document_id="456">
  <DocumentStatus by="joeuser@indivo.example.org" at="2010-09-03T12:45:12Z" status="archived">
    <reason>no longer relevant</reason>
  </DocumentStatus>

  ...

</DocumentStatusHistory>

GET /records/{RECORD_ID}/documents/{DOCUMENT_ID}/versions/

Retrieve the versions of a document.

Short Name:

document_versions

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DOCUMENT_ID – The unique identifier of the Indivo document
Query Parameters:
 
Returns:

200 OK with a list of document versions, or 404 Not Found if DOCUMENT_ID is invalid.

Example Return Value:

<Documents record_id="123" total_document_count="4">
  <Document id="14c81023-c84f-496d-8b8e-9438280441d3" type="" digest="7e9bc09276e0829374fd810f96ed98d544649703db3a9bc231550a0b0e5bcb1c" size="77">
    <createdAt>2009-05-04T17:05:33</createdAt>
    <creator id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </creator>
    <suppressedAt>2009-05-06T17:05:33</suppressedAt>
    <suppressor id="steve@indivo.org" type="account">
      <fullname>Steve Zabak</fullname>
    </suppressor>
    <original id="14c81023-c84f-496d-8b8e-9438280441d3" />
    <latest id="14c81023-c84f-496d-8b8e-9438280441d3" createdAt="2009-05-05T17:05:33" createdBy="steve@indivo.org" />
    <label>HBA1C reading</label>
    <status>active</status>
    <nevershare>false</nevershare>
    <relatesTo>
      <relation type="http://indivo.org/vocab/documentrels#attachment" count="1" />
      <relation type="http://indivo.org/vocab/documentrels#annotation" count="5" />
    </relatesTo>
    <isRelatedFrom>
      <relation type="http://indivo.org/vocab/documentrels#interpretation" count="1" />
    </isRelatedFrom>
  </Document>

  ...

</Documents>

POST /records/{RECORD_ID}/inbox/{MESSAGE_ID}

Send a message to a record.

Short Name:

record_send_message

Accessible By:

Any admin app, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • MESSAGE_ID – The unique external identifier of the Indivo Message, for idempotency.
Formdata Parameters:
 
  • body – The message body. Defaults to [no body].
  • body_type – The formatting for the message body. Options are plaintext, markdown. Defaults to plaintext.
  • num_attachments – The number of attachments this message requires. Attachments are uploaded with calls to POST /records/{RECORD_ID}/inbox/{MESSAGE_ID}/attachments/{ATTACHMENT_NUM}. Defaults to 0.
  • severity – The importance of the message. Options are low, medium, high. Defaults to low.
  • subject – The message subject. Defaults to [no subject].
Returns:

200 Success, or 400 Bad Request if MESSAGE_ID was a duplicate. Also triggers notification emails to accounts authorized to view messages for the passed record.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/inbox/{MESSAGE_ID}/attachments/{ATTACHMENT_NUM}

Attach a document to an Indivo message.

Short Name:

record_message_attach

Accessible By:

Any admin app, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • ATTACHMENT_NUM – The 1-indexed number corresponding to the message attachment
  • MESSAGE_ID – The unique identifier of the Indivo Message
Raw Data:

The raw XML attachment data.

Returns:

200 Success, or 400 Bad Request if ATTACHMENT_NUM has already been uploaded.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/notifications/

Send a notification about a record to all accounts authorized to be notified.

Short Name:

record_notify

Accessible By:

Any admin app, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Formdata Parameters:
 
  • content – The plaintext content of the notification.
  • app_url – A callback url to the app for more information. OPTIONAL.
  • document_id – The id of the document to which this notification pertains. OPTIONAL.
Returns:

200 Success, or 400 Bad Request if content wasn’t passed.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/notify

Send a notification about a record to all accounts authorized to be notified.

Short Name:

record_notify

Accessible By:

Any admin app, or a user app with access to the record.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Formdata Parameters:
 
  • content – The plaintext content of the notification.
  • app_url – A callback url to the app for more information. OPTIONAL.
  • document_id – The id of the document to which this notification pertains. OPTIONAL.
Returns:

200 Success, or 400 Bad Request if content wasn’t passed.

Example Return Value:

<ok/>

Deprecated since version 1.0: Use POST /records/{RECORD_ID}/notifications/ instead.


GET /records/{RECORD_ID}/owner

Get the owner of a record.

Short Name:

record_get_owner

Accessible By:

A principal in full control of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 Success.

Example Return Value:

<Account id='joeuser@example.com' />

POST /records/{RECORD_ID}/owner

Set the owner of a record.

Short Name:

record_set_owner

Accessible By:

Any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Raw Data:

The email address of the new account owner.

Returns:

200 OK with information about the account, or 400 Bad Request if the passed email address is invalid.

Example Return Value:

<Account id="joeuser@indivo.example.org">
  <fullName>Joe User</fullName>
  <contactEmail>joeuser@gmail.com</contactEmail>
  <lastLoginAt>2010-05-04T15:34:23Z</lastLoginAt>
  <totalLoginCount>43</totalLoginCount>
  <failedLoginCount>0</failedLoginCount>
  <state>active</state>
  <lastStateChange>2009-04-03T13:12:12Z</lastStateChange>

  <authSystem name="password" username="joeuser" />
  <authSystem name="hospital_sso" username="Joe_User" />
</Account>

PUT /records/{RECORD_ID}/owner

Set the owner of a record.

Short Name:

record_set_owner

Accessible By:

Any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Raw Data:

The email address of the new account owner.

Returns:

200 OK with information about the account, or 400 Bad Request if the passed email address is invalid.

Example Return Value:

<Account id="joeuser@indivo.example.org">
  <fullName>Joe User</fullName>
  <contactEmail>joeuser@gmail.com</contactEmail>
  <lastLoginAt>2010-05-04T15:34:23Z</lastLoginAt>
  <totalLoginCount>43</totalLoginCount>
  <failedLoginCount>0</failedLoginCount>
  <state>active</state>
  <lastStateChange>2009-04-03T13:12:12Z</lastStateChange>

  <authSystem name="password" username="joeuser" />
  <authSystem name="hospital_sso" username="Joe_User" />
</Account>

GET /records/{RECORD_ID}/reports/experimental/ccr

Export patient data as a Continuity of Care Record (CCR) document.

Short Name:

report_ccr

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 OK with an EXPERIMENTAL CCR document.

Example Return Value:

<ContinuityOfCareRecord xmlns="urn:astm-org:CCR">
  <CCRDocumentObjectID>0</CCRDocumentObjectID>
  <Language>
    <Text>ENGLISH</Text>
  </Language>
  <Version>V1.0</Version>
  <DateTime>
    <Type>
      <Text>Create</Text>
      <ObjectAttribute>
        <Attribute>DisplayDate</Attribute>
        <AttributeValue>
          <Value>09/30/10</Value>
        </AttributeValue>
      </ObjectAttribute>
    </Type>
    <ExactDateTime>2010-05-04T15:34:23Z</ExactDateTime>
  </DateTime>
  <Patient>
    <ActorID>123</ActorID>
  </Patient>
  <From>
    <ActorLink/>
  </From>
  <Body>
    <Medications>
      <Medication>
     <CCRDataObjectID>789</CCRDataObjectID>
     <DateTime>
       <Type>
         <Text>Dispense date</Text>
       </Type>
       <ExactDateTime>2010-05-04T15:34:23Z</ExactDateTime>
     </DateTime>
     <Status>
       <Text>Active</Text>
     </Status>
     <Product>
       <ProductName>
         <Text>Vioxx</Text>
         <Code>
           <Value>C1234</Value>
           <CodingSystem>RxNorm</CodingSystem>
         </Code>
       </ProductName>
       <Strength>
         <Value>20</Value>
         <Units>
           <Unit>mg</Unit>
         </Units>
       </Strength>
     </Product>
     <Directions>
          <Direction>
            <Dose>
              <Value>1</Value>
              <Units>
             <Unit>Pills</Unit>
              </Units>
            </Dose>
            <Route>
              <Text>Oral</Text>
            </Route>
            <Frequency>
              <Value>1QR</Value>
            </Frequency>
          </Direction>
     </Directions>
      </Medication>

      ...

    </Medications>
    <Immunizations>
      <Immunization>
        <CCRDataObjectID>567</CCRDataObjectID>
     <DateTime>
          <Type>
            <Text>Start date</Text>
          </Type>
       <ExactDateTime>2010-05-04T15:34:23Z</ExactDateTime>
     </DateTime>
      <Product>
        <ProductName>
          <Text>Rubella</Text>
          <Code>
            <Value>C1345</Value>
            <CodingSystem>HL7 Vaccines</CodingSystem>
          </Code>
        </ProductName>
      </Product>
      </Immunization>

      ...

    </Immunizations>
    <VitalSigns>

    ...

    </VitalSigns>

    ...

  </Body>
  <Actors>
  </Actors>
</ContinuityOfCareRecord>

GET /records/{RECORD_ID}/reports/{DATA_MODEL}/

List the Model data for a given record.

Short Name:

generic_list

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • DATA_MODEL – The name of the data model to report on
Query Parameters:
 
Returns:

200 OK with a list of DATA_MODELs, or 400 Bad Request if any invalid query parameters were passed.

Example Return Value:

SDMJ Example:

   {
    "__modelname__": "TestMedication",
    "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
    "name": "ibuprofen",
    "date_started": "2010-10-01T00:00:00Z",
    "date_stopped": "2010-10-31T00:00:00Z",
    "brand_name": "Advil",
    "prescription": {
        "__modelname__": "TestPrescription",
        "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
        "prescribed_by_name": "Kenneth D. Mandl",
        "prescribed_by_institution": "Children's Hospital Boston",
        "prescribed_on": "2010-09-30T00:00:00Z",
        "prescribed_stop_on": "2010-10-31T00:00:00Z"
    },
    "fills": [
        {
            "__modelname__": "TestFill",
            "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
            "date_filled": "2010-10-01T00:00:00Z",
            "supply_days": "15",
            "filled_at_name": "CVS"
        },
        {
            "__modelname__": "TestFill",
            "__documentid__": "b1d83191-6edd-4aad-be4e-63117cd4c660",
            "date_filled": "2010-10-16T00:00:00Z",
            "supply_days": "15",
            "filled_at_name": "CVS"
        }
    ]
}

SDMX Example:

<Models>
  <Model name="TestMedication" documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
    <Field name="date_started">2010-10-01T00:00:00Z</Field>
    <Field name="name">ibuprofen</Field>
    <Field name="brand_name">Advil</Field>
    <Field name="date_stopped">2010-10-31T00:00:00Z</Field>
    <Field name="prescription">
      <Model name="TestPrescription"  documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
        <Field name="prescribed_by_name">Kenneth D. Mandl</Field>
        <Field name="prescribed_by_institution">Children's Hospital Boston</Field>
        <Field name="prescribed_on">2010-09-30T00:00:00Z</Field>
        <Field name="prescribed_stop_on">2010-10-31T00:00:00Z</Field>
      </Model>
    </Field>
    <Field name="fills">
      <Models>
        <Model name="TestFill"  documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
          <Field name="date_filled">2010-10-01T00:00:00Z</Field>
          <Field name="supply_days">15</Field>
          <Field name="filled_at_name">CVS</Field>
        </Model>
        <Model name="TestFill"  documentId="b1d83191-6edd-4aad-be4e-63117cd4c660">
          <Field name="date_filled">2010-10-16T00:00:00Z</Field>
          <Field name="supply_days">15</Field>
          <Field name="filled_at_name">CVS</Field>
        </Model>
      </Models>
    </Field>
  </Model>
</Models>

GET /records/{RECORD_ID}/shares/

List the shares of a record.

Short Name:

record_shares

Accessible By:

The owner of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Returns:

200 OK with a list of shares.

Example Return Value:

<Shares record="123">
  <Share id="678" account="joeuser@example.com" />
  <Share id="789" pha="problems@apps.indivo.org" />

  ...

</Shares>

POST /records/{RECORD_ID}/shares/

Fully share a record with another account.

Short Name:

record_share_add

Accessible By:

The owner of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
Formdata Parameters:
 
  • account_id – The email address of the recipient account. REQUIRED.
  • role_label – A label for the share, usually the relationship between the owner and the recipient (i.e. Guardian). OPTIONAL.
Returns:

200 Success, 400 Bad Request if account_id was not passed, or 404 Not Found if the passed account_id was invalid.

Example Return Value:

<ok/>

DELETE /records/{RECORD_ID}/shares/{OTHER_ACCOUNT_ID}

Undo a full record share with an account.

Short Name:

record_share_delete

Accessible By:

The owner of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • OTHER_ACCOUNT_ID – The email identifier of the Indivo account to share with
Returns:

200 Success, or 404 Not Found if OTHER_ACCOUNT_ID is invalid.

Example Return Value:

<ok/>

POST /records/{RECORD_ID}/shares/{OTHER_ACCOUNT_ID}/delete

Undo a full record share with an account.

Short Name:

record_share_delete

Accessible By:

The owner of the record, or any admin app.

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • OTHER_ACCOUNT_ID – The email identifier of the Indivo account to share with
Returns:

200 Success, or 404 Not Found if OTHER_ACCOUNT_ID is invalid.

Example Return Value:

<ok/>

Deprecated since version 1.0: Use DELETE /records/{RECORD_ID}/shares/{OTHER_ACCOUNT_ID} instead.


GET /records/{RECORD_ID}/{MODEL_NAME}/

SMART-compatible alias for the generic list view: returns data_models serialized as SMART RDF.

Short Name:

smart_generic

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • MODEL_NAME – The name of the SMART data_model to retrieve (i.e. problems). Options are defined by the SMART API.
Returns:

200 OK with SMART RDF/XML for all items matching MODEL_NAME belonging to the record.

Example Return Value:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
   xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:sp="http://smartplatforms.org/terms#"
>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/03426213-a50b-4df8-8585-e951fad99898">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_93f4ebe0-e5dd-4b45-80c1-a1b118871457"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2007-06-02T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_8e568a92-ab2c-4400-902f-5aa5685b0bdf">
    <dcterms:title>Hyperlipidemia</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/55822004"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/651c297e-364c-4df8-b22d-280fd805d1fa">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_ec4d16cf-1f3d-4463-9872-d4494cf44327"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2007-01-22T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/165084003">
    <dcterms:title>Clinical finding</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>165084003</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/5fb3e8e1-e65f-42f3-bc52-cd4040dbeca8">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_46c3aa8e-bc89-4012-8aa2-f1aadee29aac"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2007-09-26T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_93f4ebe0-e5dd-4b45-80c1-a1b118871457">
    <dcterms:title>Chronic non-suppurative otitis media</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/21186006"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/82271004">
    <dcterms:title>Injury of head</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>82271004</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/8e474cad-c6b2-46d9-853d-10a02d84ed16">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_5602c2a0-875e-48ee-b6fb-350a32aeb39c"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2007-01-28T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c">
    <rdf:type rdf:resource="http://smartplatforms.org/terms#MedicalRecord"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/399963005">
    <dcterms:title>Abrasion or friction burn of other, multiple, and unspecified sites, without mention of infection</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>399963005</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/21186006">
    <dcterms:title>Chronic non-suppurative otitis media</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>21186006</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/7c885267-4a2b-49e8-bee3-c3aaef1512e3">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_8e568a92-ab2c-4400-902f-5aa5685b0bdf"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2004-09-20T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_46c3aa8e-bc89-4012-8aa2-f1aadee29aac">
    <dcterms:title>Acute bronchitis</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/10509002"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/34649000">
    <dcterms:title>Closed fracture of malar AND/OR maxillary bones</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>34649000</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_5602c2a0-875e-48ee-b6fb-350a32aeb39c">
    <dcterms:title>Closed fracture of malar AND/OR maxillary bones</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/34649000"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/c9708111-36d1-4255-84bc-6c4819864e00">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_f60a3485-ba2c-4f11-9e73-2af6b0621904"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2007-01-22T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_f0fde196-8295-4cd6-b2ee-b08e39832e63">
    <dcterms:title>Clinical finding</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/165084003"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_f60a3485-ba2c-4f11-9e73-2af6b0621904">
    <dcterms:title>Injury of head</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/82271004"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="_ec4d16cf-1f3d-4463-9872-d4494cf44327">
    <dcterms:title>Abrasion or friction burn of other, multiple, and unspecified sites, without mention of infection</dcterms:title>
    <sp:code rdf:resource="http://purl.bioontology.org/ontology/SNOMEDCT/399963005"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/10509002">
    <dcterms:title>Acute bronchitis</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>10509002</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c/problems/bbd612b9-3a47-4d62-b913-5cab6d8cc8cf">
    <sp:endDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-09-13T00:00:00</sp:endDate>
    <sp:problemName rdf:nodeID="_f0fde196-8295-4cd6-b2ee-b08e39832e63"/>
    <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2004-09-20T00:00:00</sp:startDate>
    <sp:belongsTo rdf:resource="http://indivo.org/records/8f5fb6c3-e065-41db-9be2-0c1fa4a97e2c"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Problem"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/55822004">
    <dcterms:title>Hyperlipidemia</dcterms:title>
    <sp:system>http://purl.bioontology.org/ontology/SNOMEDCT/</sp:system>
    <dcterms:identifier>55822004</dcterms:identifier>
    <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
    <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/SNOMED"/>
  </rdf:Description>
</rdf:RDF>

New in version 2.0.0.


GET /records/{RECORD_ID}/{MODEL_NAME}/{MODEL_ID}

Retrieve a specific instance of a SMART model.

Short Name:

smart_generic_instance

Accessible By:

A user app with access to the record, or a principal in full control of the record

URL Parameters:
  • RECORD_ID – The id string associated with the Indivo record
  • MODEL_ID – The id of the SMART data_model to retrieve
  • MODEL_NAME

    The name of the SMART data model to retrieve (i.e. problems). Options are defined by the SMART API.

Returns:

200 OK with SMART RDF/XML for the item matching MODEL_NAME and MODEL_ID belonging to the record.

Example Return Value:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sp="http://smartplatforms.org/terms#"
xmlns:v="http://www.w3.org/2006/vcard/ns#"
>
    <rdf:Description rdf:about="http://smartplatforms.org/terms/codes/LabResultInterpretation#normal">
        <sp:system>http://smartplatforms.org/terms/codes/LabResultInterpretation#</sp:system>
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/LabResultInterpretation"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <dcterms:title>Normal</dcterms:title>
        <dcterms:identifier>normal</dcterms:identifier>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_16d04766-09ab-4a14-847b-c2cc2aa90544">
        <sp:unit>mEq/L</sp:unit>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueAndUnit"/>
        <sp:value>120</sp:value>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_dc97d85d-c1fd-4996-980a-f2b37195c00a">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <dcterms:title>Serum Sodium</dcterms:title>
        <sp:code rdf:resource="http://purl.bioontology.org/ontology/LNC/2951-2"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_83b7740f-b37b-40be-8d78-99e80de40790">
        <sp:person rdf:nodeID="_fb3f9793-c486-40af-8be1-54b8105355c9"/>
        <sp:role>Lab Specialist</sp:role>
        <sp:organization rdf:nodeID="_679ad47e-94ca-4dc6-96ed-168ca03610b8"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Participant"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_372b5eab-eb4d-4d1f-b131-f6f7a8d82d7f">
        <sp:maximum rdf:nodeID="_ce2e6286-ba4a-4c96-b686-3896189e468e"/>
        <sp:minimum rdf:nodeID="_ce2e6286-ba4a-4c96-b686-3896189e468e"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueRange"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_ce2e6286-ba4a-4c96-b686-3896189e468e">
        <sp:unit>mEq/L</sp:unit>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueAndUnit"/>
        <sp:value>135</sp:value>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_716ae160-84dd-4f9e-b035-bd3b26b625dd">
        <sp:unit>mEq/L</sp:unit>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueAndUnit"/>
        <sp:value>140</sp:value>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_6fa51a50-1bdc-43b9-8be3-cbe828fab220">
        <sp:normalRange rdf:nodeID="_372b5eab-eb4d-4d1f-b131-f6f7a8d82d7f"/>
        <sp:nonCriticalRange rdf:nodeID="_e60921df-5c19-4a7f-b0c3-acaf46ff81d2"/>
        <sp:valueAndUnit rdf:nodeID="_716ae160-84dd-4f9e-b035-bd3b26b625dd"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#QuantitativeResult"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_7e185aa4-7394-4cce-b107-d3a2ef01318c">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <dcterms:title>Final results: complete and verified</dcterms:title>
        <sp:code rdf:resource="http://smartplatforms.org/terms/codes/LabStatus#final"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_c2141794-697e-4917-8cb2-eefc7d612f1a">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#CodedValue"/>
        <dcterms:title>Normal</dcterms:title>
        <sp:code rdf:resource="http://smartplatforms.org/terms/codes/LabResultInterpretation#normal"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_679ad47e-94ca-4dc6-96ed-168ca03610b8">
        <v:organization-name>City Lab</v:organization-name>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Organization"/>
        <v:adr rdf:nodeID="_660a15ce-8650-4c91-ad1d-cdee3015ea97"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_fb3f9793-c486-40af-8be1-54b8105355c9">
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Person"/>
        <v:n rdf:nodeID="_0ac2cdea-f2b3-44c6-b703-284a757111d8"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_660a15ce-8650-4c91-ad1d-cdee3015ea97">
        <v:postal-code>11111</v:postal-code>
        <v:street-address>20 Elm St</v:street-address>
        <v:region>MA</v:region>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Address"/>
        <v:locality>Springfield</v:locality>
        <v:country>USA</v:country>
    </rdf:Description>
    <rdf:Description rdf:about="http://purl.bioontology.org/ontology/LNC/2951-2">
        <sp:system>http://purl.bioontology.org/ontology/LNC/</sp:system>
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/LOINC"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <dcterms:title>Serum Sodium</dcterms:title>
        <dcterms:identifier>2951-2</dcterms:identifier>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_d8aacfc9-e1f0-4702-8f8e-c1846c5c214a">
        <sp:unit>mEq/L</sp:unit>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueAndUnit"/>
        <sp:value>145</sp:value>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_0ac2cdea-f2b3-44c6-b703-284a757111d8">
        <v:family-name>Finnialispi</v:family-name>
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Name"/>
        <v:given-name>Tad</v:given-name>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_e60921df-5c19-4a7f-b0c3-acaf46ff81d2">
        <sp:maximum rdf:nodeID="_16d04766-09ab-4a14-847b-c2cc2aa90544"/>
        <sp:minimum rdf:nodeID="_16d04766-09ab-4a14-847b-c2cc2aa90544"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueRange"/>
    </rdf:Description>
    <rdf:Description rdf:about="http://indivo.org/records/f48030f2-5ed6-4fc0-97b2-a925d7d88d94/lab_results/d2ed9b5e-3eab-4cae-a35c-f5d8ce4c9fff">
        <sp:abnormalInterpretation rdf:nodeID="_c2141794-697e-4917-8cb2-eefc7d612f1a"/>
        <sp:notes>Blood sample appears to have hemolyzed</sp:notes>
        <sp:belongsTo rdf:resource="http://indivo.org/records/f48030f2-5ed6-4fc0-97b2-a925d7d88d94"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#LabResult"/>
        <sp:quantitativeResult rdf:nodeID="_6fa51a50-1bdc-43b9-8be3-cbe828fab220"/>
        <sp:labName rdf:nodeID="_dc97d85d-c1fd-4996-980a-f2b37195c00a"/>
        <sp:accessionNumber>AC09205823577</sp:accessionNumber>
        <sp:labStatus rdf:nodeID="_7e185aa4-7394-4cce-b107-d3a2ef01318c"/>
        <sp:specimenCollected rdf:nodeID="_0e2687ff-7b32-430e-b04e-d21f334918e4"/>
    </rdf:Description>
    <rdf:Description rdf:about="http://smartplatforms.org/terms/codes/LabStatus#final">
        <sp:system>http://smartplatforms.org/terms/codes/LabStatus#</sp:system>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Code"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms/codes/LabResultStatus"/>
        <dcterms:title>Final results: complete and verified</dcterms:title>
        <dcterms:identifier>final</dcterms:identifier>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_0e2687ff-7b32-430e-b04e-d21f334918e4">
        <sp:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-12-27T17:00:00</sp:startDate>
        <sp:participant rdf:nodeID="_83b7740f-b37b-40be-8d78-99e80de40790"/>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#Attribution"/>
    </rdf:Description>
    <rdf:Description rdf:nodeID="_b5de9335-f855-413c-8544-c80982421244">
        <sp:unit>mEq/L</sp:unit>
        <rdf:type rdf:resource="http://smartplatforms.org/terms#ValueAndUnit"/>
        <sp:value>155</sp:value>
    </rdf:Description>
</rdf:RDF>

New in version 2.1.0.


GET /version

Return the current version of Indivo.

Short Name:get_version
Accessible By:Any principal in Indivo.
Returns:200 OK with the current version of Indivo.

Example Return Value:

1.0.0.0