The code to support a custom Send Message API can be written to run on epic-interconnect and epic IRIS servers.
To help implement, example code will be shared with customers. The API can then be developed or co-developed with Caché developers.
The API contracts expected by Message Assist are documented below.

Method: Post
| Input Parameter | Required (Y/N) | Type | Description |
|---|---|---|---|
| MyChartAccount | Y | MyChartAccountType | The MyChartAccount id should be set to an object providing information about what patient is sending the message. Either MyChart login or WPR ids (External) can be accepted. |
| RecvUser | Y | string | Inbasket ID for the recipient provider. This value can be fetched from Epic's GetMedicalAdviceRecipients API |
| Topic | N | TopicType | Describes what type of message is being sent and routes message to the proper inbasket. Defaults to 4 |
| Subject | Y | string | Free text string that will appear in the message's subject line. |
| Body | Y | string[] | Free text strings that will appear in the message's body. |
| Attachments | N | AttachmentType[] | Media attachments that will be included with the user's message. Size limitations and supported types can be found in the GetMedicalAdviceRecipients response. |
| Type | Definition |
|---|---|
| MyChartAccountType | { "Type": "External" or "MYCHARTLOGIN"; "ID": string;} |
| RecvUserType | { "ID": string;} |
| TopicType | { "ID" : TopicID (see table below) } |
| AttachmentType | { "Base64Data": string; "FileExtension": string; "Label" : string } |
| Topic ID | Description |
|---|---|
| 4 | Non-Urgent Medical |
| 10 | Prescription Refill |
| 11 | Referrals and Authorizations |
| 12 | Appointment or Scheduling |
| Name | Type | Description |
|---|---|---|
| Status | string[] | Returns status code and description (ex, "200", "OK") |
| Error | string[] | May contain a number of descriptions specify what went wrong |
| Warnings | string[] | TODO |
| PatAccMessage | { "ID": string, "TYPE": string} | The .1 ID of the WMG (Patient Access Message) in Epic |
| Inbasket | { "ID": string, "TYPE": string} | TODO |
| PatCSN | { "ID": string, "TYPE": string} | TODO |
| Documents | { "ID": string, "TYPE": string}[] | TODO |
| Conversation | { "ID": string, "TYPE": string} | TODO |
| WebBlob | { "ID": string, "TYPE": string} | TODO |
| Pool | { "ID": string, "TYPE": string} | TODO |
| Error | Description |
|---|---|
| NO-MYCHART-FOUND | provided Mychart ID is not found or invalid. |
| INVALID-MESSAGE-RECIPIENT | specified provider is not associated with patient |
| MISSING-{PAREMETER} | a required input parameter is missing from the request |
| TODO - ATTACHMENT ERRORS | TODO |