Patient Registration v3.0
RESTful Service for provisioning MaxMD Direct Hosted addresses for patients. This page includes description about service actions and data types.
Functions
Login
HTTP POST Request
https://evalapi.max.md:8445/DirectRegistrationRESTful/rest/Patient/login
Headers
Content-Type: application/json
Request Body
JSON Object: LoginRequest
Response
JSON Object: LoginResponseType
Description
Login using your Reseller or T-User username and password, and received a new sessionId in response. Each sessionId will expire in 10 minutes.
ProvisionIDProofedPatient
HTTP POST Request
https://evalapi.max.md:8445/DirectRegistrationRESTful/rest/Patient/ProvisionIDProofedPatient/{sessionId}/{directDomain}
Headers
Content-Type: application/json
Request Body
JSON Object: IDProofedIndividualRESTful
Response
JSON Object: AddUsersResponseV2Type
Description
Provision a patient Direct address for the identity proofed patient.
GetPatientAddressByMeta
HTTP POST Request
https://evalapi.max.md:8445/DirectRegistrationRESTful/rest/Patient/GetPatientAddressByMeta/{sessionId}/{directDomain}
Headers
Content-Type: application/json
Request Body
JSON Object: IDProofedIndividual
Response
JSON Object: GetPatientAddressesResponseType
Description
Get provisioned Direct address(es) for the patient searching by patient name, date of birth and last four digits of SSN.
GetPatientAddressByUsername
HTTP GET Request
https://evalapi.max.md:8445/DirectRegistrationRESTful/rest/Patient/GetPatientAddressByUsername/{sessionId}/{directDomain}/{directUsername}
Headers
Content-Type: application/json
Request Body
N/A
Response
JSON Object: GetPatientAddressesResponseType
Description
Get provisioned Direct address for the patient searching by submitted DirectUsername.
SetPatientsPasswords
HTTP POST Request
https://evalapi.max.md:8445/DirectRegistrationRESTful/rest/Patient/SetPatientsPasswords/{sessionId}/{directDomain}
Headers
Content-Type: application/json
Request Body
JSON Object: ArrayList<UserPassword>
Response
JSON Object: ResellerAPIResponseType
Description
Reset passwords for the patients.
Patient Registration Service Data types
ResellerAPIResponseType
| Parameter | Description | |
|---|---|---|
| String code | Response code: 000 - success 002 - invalid user when provisioning new Direct mdEmail account 003 - registrar offer error 010 - invalid api argument or argument missing 011 - authentication failed 012 - organization missing 013 - organization permission denied 014 - direct user account error 021 - debit account authorize failed 022 - debit account capture failed 099 - other error 201 - Direct domain $domain has been used. 202 - No verified organization record is found $info 203 - The organization is not verified as healthcare provider. $info 204 - Invalid state name $info 205 - Failed to validate ID proofed individuals $info 206 - Invalid organization type $info 207 - Unsupported address type $info 208 - No organization is found for domain($domain). 209 - Direct Organization object is empty $info 210 - Direct addresso ($address) is not found. 999 - other error |
Required |
| Boolean success | Required | |
| String errorMessage | Error message |
IDProofedIndividualRESTful ( extends IDProofedIndividual )
| Parameter | Description | |
|---|---|---|
| String directUsername | directUsername | |
| String directPassword | directPassword |
LoginRequest
| Parameter | Description | |
|---|---|---|
| String username | Username | |
| String password | Password |
LoginResponseType ( extends ResellerAPIResponse )
| Parameter | Description | |
|---|---|---|
| String sessionId | Session Id which expires in 10 minutes. |
AddUsersResponse ( extends ResellerAPIResponse )
| Parameter | Description | |
|---|---|---|
| DirectUserDetail[ ] users | The details of the new added users |
GetPatientAddressesResponseType ( extends ResellerAPIResponse )
| Parameter | Description | |
|---|---|---|
| DirectUserDetail[ ] patient | A list of matched patient Direct addresses |
DirectUserDetail ( extends DirectUser )
| Parameter | Description | |
|---|---|---|
| UserStateType UserStateType |
User's state:
|
Required |
UserPassword
| Parameter | Description | |
|---|---|---|
| String username | Username | Required |
| String password | Password | Required |
IDProofedIndividual
| Parameter | Description | |
|---|---|---|
| long id | Unique id of the Identity Proofing record. If this parameter is not provided, the other parameters (firstName, lastName, email, ssn, dob) are required. | |
| String firstName | First name. Required if id is not provided | |
| String lastName | Last name. Required if id is not provided | |
| String ssn4 | Last four digits of SSN. Required if id is not provided | |
| String dob | Date of birth. Required if id is not provided |
BaseUser
| Parameter | Description | |
|---|---|---|
| String firstName | First name | Required |
| String lastName | Last name | Required |
| String email | Regular email address | Required |
| String phone | Phone | Required (for AdminUser) |
| String dea | DEA Number | |
| String npi | NPI Number | |
| Boolean sameAsOrganizationAddress | Use Organization address as user's address | |
| String address | Street of user | |
| String city | City | |
| String state | Full state name | |
| String country | Two letters Country code (Ex: US) | |
| String zipcode | zipcode information |
AdminUser ( extends BaseUser )
| Parameter | Description |
|---|
DirectUser ( extends BaseUser )
| Parameter | Description | |
|---|---|---|
| String username |
Direct username. For example, organization domain(FQDN) is direct.myorg.com, username is user1, direct address will be: user1@direct.myorg.com |
Required |
| DirectUserType userType | Direct user type: XD - XDR endpoint user SMTP - MaxMD Hosted SMTP user FTP - FTP endpoint user FTPS - FTP endpoint user over FTPS connection SFTP - FTP endpoint user over SFTP connection |
Required |
| String endpoint | Endpoint URL for XD, FTP* users | |
| String endpointDirectory | Endpoint directory of FTP* users | |
| String endpointUsername | Endpoint username of FTP* users | |
| String endpointPassword | Endpoint password of FTP* users |
GetMessageStatusReportResponse ( extends ResellerAPIResponse )
| Parameter | Description | |
|---|---|---|
| boolean hasCvData |
true: csvData is responsed, messageLogs is empty false: messageLogs is responsed, csvData is empty |
|
| byte[ ] csvData | csv formatted message status report data with below columns:
This variable is empty if hasCvData==false or no message was found in the certain date range. |
|
| DirectMessageLog[ ] messageLogs | And list of message log object. This variable is empty if hasCvData==true or no message was found in the certain date range. |
DirectMessageLog
| Parameter | Description | |
|---|---|---|
| String from | Sender direct address of the message | |
| String to | Recipient direct address of the message | |
| String messageId | SMTP Message ID of the message | |
| long messageSize | size of the message | |
| String status | Status of the message:
|
|
| Date ts | Sent time | |
| String xdrId | XDR Message ID | |
| String uniqueId | XDR Unique ID | |
| String sourceId | XDR Source ID | |
| String patientId | XDR Patient ID |
GetAuditFileResponseType (extends ResellerAPIResponse )
| Parameter | Description |
|---|---|
| ArchivedAuditFile archivedAuditedMessages | Archived audited messages |
ArchivedAuditFile
| Parameter | Description |
|---|---|
| byte[ ] content | Content in the audit file in byte[ ] type |
| String name | File name |
| long size | Size of the file |
| boolean isCompressed | Whether the archived audited file is compresses. If so, the file type is application/x-gzip, otherwise, file type is text/plain |
ResellerDomainsResponse ( extends ResellerAPIResponse )
| Parameter | Description | |
|---|---|---|
| String[ ] domains | Credit cards |
ResellerCreditCardsResponse ( extends ResellerAPIResponse )
| Parameter | Description | |
|---|---|---|
| CreditCard[ ] cards | Domains |
AddUsersResponseV2Type ( extends AddUsersResponse )
| Parameter | Description | |
|---|---|---|
| PaymentConfirmationpaymentConfirmation | Payment confirmation. |
PaymentConfirmation
| Parameter | Description | |
|---|---|---|
| int orderId | Order number | |
| float amount | Total amount of the order | |
| Date orderTime | Order time | |
| Product[ ] products | Purchased products | |
| String detail | Order details |
Product
| Parameter | Description | |
|---|---|---|
| String name | Product name | |
| String description | Product description | |
| int quantity | Product quantity | |
| float offerPrice | Offer price | |
| float salePrice | Calculated sale price. When purchasing Direct addresses, the expire date of the new address will be same as purchased Direct certificate product. The sale price will be offeerPrice * (expireDate - today) / (one year). | |
| float amount | Amount = salePrice * quantity | |
| String startDate | Product start date | |
| String expireDate | Product expire date |