Technical API Documentation
GETTING STARTED
By using or accessing any API services or materials, you agree to be bound by the API Terms of Use available at:
https://www.modmed.com/api-terms-of-use/.
All RESTful web service endpoints require HTTP Basic Authentication with a valid username and password for either a Staff or a Patient for a Practice known on this server.
For all endpoints, please use the same server root portion of the url was used to access this FHIR Capability Statement.
Review the official HL7.org guidelines on FHIR implementation here:
https://hl7.org/fhir/index.html
ENDPOINT TO RETRIEVE FHIR CAPABILITY STATEMENT
The following endpoint may be used to retrieve the server’s FHIR Capability Statement:
TITLE: FHIR Capability Statement
DESCRIPTION: Retrieve the server’s FHIR Capability Statement.
URL: /fhir/metadata
METHOD: Get
OPTIONAL URL PARAMETERS:
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The full server FHIR Capability Statement will be returned.]
ERROR HTTP RESPONSE CODES:
404 [Resource Not Found. This will occur if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/metadata&_format=json
ENDPOINTS FOR STAFF MEMBERS
The following endpoints are meant to be accessed with valid credentials for a Staff member:
TITLE: Lookup Patient Identifier
DESCRIPTION: Searches for a Unique Patient Identifier for the given demographics.
URL: /fhir/Patient
METHOD: Get
REQUIRED URL PARAMETERS:
given [An exact match for the Patient’s first name]
family [An exact match for the Patient’s last name]
gender [An exact match for the Patient’s gender. Valid values are male or female]
birthdate [An exact match for the Patient’s birthdate. Valid format is yyyy-MM-dd]
OPTIONAL URL PARAMETERS:
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The matching Patient Resource will be returned. Only the id property of the Patient will be returned, and no additional data.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Staff member known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patients exactly match the demographics or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?given=Clayton&family=Abernathy&gender=male&birthdate=1982-06-02&_format=json
TITLE: Get All Data for Single Patient
DESCRIPTION: Retrieves All Data for a Patient.
URL: /fhir/Patient
METHOD: Get
REQUIRED URL PARAMETERS:
identifier [The unique Patient Identifier on the server. This identifier can be retrieved using the Lookup Patient Identifier Endpoint described earlier.]
OPTIONAL URL PARAMETERS:
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The matching Patient Resource will be returned with all available data points.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Staff member known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patient matches the requested Patient identifier or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?identifier=1125&_format=json
TITLE: Get Specific Data for Single Patient
DESCRIPTION: Retrieves Specific Data for a Patient.
URL: /fhir/Patient
METHOD: Get
REQUIRED URL PARAMETERS:
identifier [The unique Patient Identifier on the server. This identifier can be retrieved using the Lookup Patient Identifier Endpoint described earlier.]
OPTIONAL URL PARAMETERS:
_include [Send a separate _include parameter for each desired section. See the NOTES below for a detail on each _include parameter]
date [Send a maximum of 2 date parameters to indicate a date range. Data for each included section for the Patient will be returned if it satisfies the date range. See the NOTES below for a further explanation of valid date parameter formats.]
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The matching Patient Resource will be returned with the requested data points. Also included will be the Patient given name, family name, birthdate and gender.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Staff member known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patient matches the requested Patient identifier or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
NOTES:
Valid date parameter values are as follows:
eqyyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
ltyyyy-MM-dd [date is less than the yyyy-MM-dd formatted date]
leyyyy-MM-dd [date is less than or equal to the yyyy-MM-dd formatted date]
gtyyyy-MM-dd [date is greater than the yyyy-MM-dd formatted date]
geyyyy-MM-dd [date is greater than or equal to the yyyy-MM-dd formatted date]
Valid _include parameter values are as follows:
Patient:allergy [Patient allergy information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/allergyintolerance.html
Patient:assessment [Patient assessment information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careplan.html
Patient:careTeam [Patient care team information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careteam.html
Patient:device [Patient medical device information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/device.html
Patient:ethnicGroup [Patient ethnic group information will be returned if it is available]
Info on this data structure is available at https://hl7.org/fhir/us/core/2017Jan/ValueSet-detailed-ethnicity.html
Patient:goal [Patient goal information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/goal.html
Patient:healthConcern [Patient health concern information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/riskassessment.html
Patient:immunization [Patient immunization information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/immunization.html
Patient:medication [Patient medication information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/medicationstatement.html
Patient:preferredLanguage [Patient preferred language will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/valueset-languages.html
Patient:problem [Patient problem information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/problem.html
Patient:procedure [Patient procedure information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/procedure.html
Patient:race [Patient race information will be returned if it is available]
Info on this data structure is available at https://hl7.org/fhir/us/core/2017Jan/ValueSet-omb-race.html
Patient:result [Patient lab result information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
Patient:smokingStatus [Patient smoking status will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
Patient:treatmentPlan [Patient treatment plan information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careplan.html
Patient:vitalSign [Patient vital sign information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?identifier=1125&_include=Patient:allergy&_include=Patient:medication&date=gt2015-12-31&date=le2016-03-31&_format=json
TITLE: Get All Data for All Patients in the Organization of the Staff member
DESCRIPTION: Retrieves all Data for all Patients in the Organization of the Staff member.
URL: /fhir/Patient
METHOD: Get
OPTIONAL URL PARAMETERS:
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The matching Patient Resources will be returned with all available data points.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Staff member known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patient Resources are found or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?_format=json
TITLE: Get Specific Data for All Patients in the Organization of the Staff member
DESCRIPTION: Retrieves Specific Data for all Patients in the Organization of the Staff member.
URL: /fhir/Patient
METHOD: Get
OPTIONAL URL PARAMETERS:
_include [Send a separate _include parameter for each desired section. See the NOTES below for a detail on each _include parameter]
date [Send a maximum of 2 date parameters to indicate a date range. Data for each included section for Patients will be returned if it satisfies the date range. See the NOTES below for a further explanation of valid date parameter formats.]
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The matching Patient Resources will be returned with the requested data points. Also included will be the Patient given name, family name, birthdate and gender.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Staff member known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patient Resources are found or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
NOTES:
Valid date parameter values are as follows:
eqyyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
ltyyyy-MM-dd [date is less than the yyyy-MM-dd formatted date]
leyyyy-MM-dd [date is less than or equal to the yyyy-MM-dd formatted date]
gtyyyy-MM-dd [date is greater than the yyyy-MM-dd formatted date]
geyyyy-MM-dd [date is greater than or equal to the yyyy-MM-dd formatted date]
Valid _include parameter values are as follows:
Patient:allergy [Patient allergy information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/allergyintolerance.html
Patient:assessment [Patient assessment information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careplan.html
Patient:careTeam [Patient care team information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careteam.html
Patient:device [Patient medical device information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/device.html
Patient:ethnicGroup [Patient ethnic group information will be returned if it is available]
Info on this data structure is available at https://hl7.org/fhir/us/core/2017Jan/ValueSet-detailed-ethnicity.html
Patient:goal [Patient goal information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/goal.html
Patient:healthConcern [Patient health concern information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/riskassessment.html
Patient:immunization [Patient immunization information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/immunization.html
Patient:medication [Patient medication information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/medicationstatement.html
Patient:preferredLanguage [Patient preferred language will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/valueset-languages.html
Patient:problem [Patient problem information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/problem.html
Patient:procedure [Patient procedure information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/procedure.html
Patient:race [Patient race information will be returned if it is available]
Info on this data structure is available at https://hl7.org/fhir/us/core/2017Jan/ValueSet-omb-race.html
Patient:result [Patient lab result information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
Patient:smokingStatus [Patient smoking status will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
Patient:treatmentPlan [Patient treatment plan information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careplan.html
Patient:vitalSign [Patient vital sign information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?_include=Patient:allergy&_include=Patient:medication&date=gt2015-12-31&date=le2016-03-31&_format=json
ENDPOINTS FOR PATIENTS
The following endpoints are meant to be accessed with valid credentials for a Patient:
TITLE: Get All Data for Authenticated Patient
DESCRIPTION: Retrieves All Data for the Authenticated Patient.
URL: /fhir/Patient
METHOD: Get
OPTIONAL URL PARAMETERS:
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The Patient Resource corresponding to the Authentication credentials will be returned with all available data points.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Patient known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patient matches the requested Authentication credentials or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?_format=json
TITLE: Get Specific Data for Authenticated Patient
DESCRIPTION: Retrieves Specific Data for the Authenticated Patient.
URL: /fhir/Patient
METHOD: Get
OPTIONAL URL PARAMETERS:
_include [Send a separate _include parameter for each desired section. See the NOTES below for a detail on each _include parameter]
date [Send a maximum of 2 date parameters to indicate a date range. Data for each included section for the Patient will be returned if it satisfies the date range. See the NOTES below for a further explanation of valid date parameter formats.]
_format [By default data will be returned as application/fhir+xml. Pass this optional parameter and set the value to json if you would like data returned as application/fhir+json.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The matching Patient Resource will be returned with the requested data points. Also included will be the Patient given name, family name, birthdate and gender.]
ERROR HTTP RESPONSE CODES:
401 [Unauthenticated User detected. To remedy, ensure that you use HTTP Basic Authentication with a valid username and password for a Patient known on this server.]
403 [Forbidden access. This will occur if the authenticated user is attempting to access Patient information that they do not have access to.]
404 [Resource Not Found. This will occur if no Patient matches the requested Authentication credentials or if the Web Service Url was typed in error.]
500 [A general server error has occurred.]
NOTES:
Valid date parameter values are as follows:
eqyyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
ltyyyy-MM-dd [date is less than the yyyy-MM-dd formatted date]
leyyyy-MM-dd [date is less than or equal to the yyyy-MM-dd formatted date]
gtyyyy-MM-dd [date is greater than the yyyy-MM-dd formatted date]
geyyyy-MM-dd [date is greater than or equal to the yyyy-MM-dd formatted date]
Valid _include parameter values are as follows:
Patient:allergy [Patient allergy information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/allergyintolerance.html
Patient:assessment [Patient assessment information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careplan.html
Patient:careTeam [Patient care team information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careteam.html
Patient:device [Patient medical device information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/device.html
Patient:ethnicGroup [Patient ethnic group information will be returned if it is available]
Info on this data structure is available at https://hl7.org/fhir/us/core/2017Jan/ValueSet-detailed-ethnicity.html
Patient:goal [Patient goal information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/goal.html
Patient:healthConcern [Patient health concern information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/riskassessment.html
Patient:immunization [Patient immunization information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/immunization.html
Patient:medication [Patient medication information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/medicationstatement.html
Patient:preferredLanguage [Patient preferred language will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/valueset-languages.html
Patient:problem [Patient problem information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/problem.html
Patient:procedure [Patient procedure information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/procedure.html
Patient:race [Patient race information will be returned if it is available]
Info on this data structure is available at https://hl7.org/fhir/us/core/2017Jan/ValueSet-omb-race.html
Patient:result [Patient lab result information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
Patient:smokingStatus [Patient smoking status will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
Patient:treatmentPlan [Patient treatment plan information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/careplan.html
Patient:vitalSign [Patient vital sign information will be returned if it is available]
Info on this data structure is available at https://www.hl7.org/fhir/observation.html
EXAMPLE REQUEST: https://SERVER_ROOT/fhir/Patient?_include=Patient:allergy&_include=Patient:medication&date=gt2015-12-31&date=le2016-03-31&_format=json
Title: Retrieve Patient CCDA
Description: This Endpoint may be used to retrieve a full CCDA for the requested Patient
Method: Get
URL: https://SERVER_ROOT/ema/ws/v3/patient/ccd/{ID}
Required Parameter: ID [This is the identifier for the requested Patient]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The requested Patient CCDA will be returned]
Example Request: https://SERVER_ROOT/ema/ws/v3/patient/ccd/12345
Title: Retrieve Patient CCDA for a Date Range
Description: This Endpoint may be used to retrieve a full CCDA for the requested Patient for a specific Date or a Date Range
Method: Get
URL: https://SERVER_ROOT/ema/ws/v3/patient/ccd/{ID}
Required Parameter: ID [This is the identifier for the requested Patient]
OPTIONAL URL PARAMETERS:
lowerBound [Indicates the lower bound of a date range. Data for each included section for the Patient will be returned if it satisfies the date range. See the NOTES below for a further explanation of valid date parameter formats.]
upperBound [Indicates the upper bound of a date range. Data for each included section for the Patient will be returned if it satisfies the date range. See the NOTES below for a further explanation of valid date parameter formats.]
exactDate [Use this parameter if data for a specific date is being requested. If using this parameter, do not pass any other parameters for a date range. Data for each included section for the Patient will be returned if it satisfies the date requested. See the NOTES below for a further explanation of valid date parameter formats.]
SUCCESSFUL HTTP RESPONSE CODE: 200 [The requested Patient CCDA will be returned]
NOTES:
Valid lowerBound date parameter values are as follows:
yyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
eqyyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
gtyyyy-MM-dd [date is greater than the yyyy-MM-dd formatted date]
geyyyy-MM-dd [date is greater than or equal to the yyyy-MM-dd formatted date]
Valid upperBound date parameter values are as follows:
yyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
eqyyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
ltyyyy-MM-dd [date is less than the yyyy-MM-dd formatted date]
leyyyy-MM-dd [date is less than or equal to the yyyy-MM-dd formatted date]
Valid exactDate date parameter value is as follows:
yyyy-MM-dd [date equals the yyyy-MM-dd formatted date]
Example Requests:
https://SERVER_ROOT/ema/ws/v3/patient/ccd/12345
https://SERVER_ROOT/ema/ws/v3/patient/ccd/12345?lowerBound=ge2017-01-01&upperBound=le2017-12-31
https://SERVER_ROOT/ema/ws/v3/patient/ccd/12345?exactDate=2017-10-01