Base profile: https://www.hl7.org/fhir/task.html
- Value Set: ValueSet/recall-action
- Value Set: ValueSet/task-type
- Value Set: ValueSet/recall-type
- Value Set: ValueSet/task-name
This endpoint covers two kinds of Task, distinguished by code:
TASK(default) — a general EMA task. Supports Create, Read, Update, and Search.PMRECALL— a PM Recall from ModMed Practice Management. Read and Search only; PM Recalls cannot be created or updated through this endpoint.
Passing an unrecognized code value returns an OperationOutcome error listing the valid values.
The following attributes are supported:
| Field Name | Applies to | Notes |
|---|---|---|
| id | Both | Unique identifier for the specific Task, in the form TASK|<integer> or PMRECALL|<integer>. |
| lastModified | Both | Datetime the resource was last updated. (Note: this is a top-level lastModified field, not meta.lastUpdated.) |
| status | Both (different value sets) | For TASK: ready | received | completed | cancelled.For PMRECALL, these map to ModMed Practice Management as follows:ready → Open in-progress → Scheduled completed → Closed (overdue remains in 'ready' status) |
| statusReason | PMRECALL only | ValueSet: {base_url}/fhir/v2/ValueSet/recall-action |
| intent | Both | order for TASK; unknown for PMRECALL. |
| code | Both | ValueSet: {base_url}/fhir/v2/ValueSet/task-typeTASK (general EMA task) or PMRECALL (PM Recall). |
| description | Both (different formats) | For PMRECALL: free-text 'Reason' for the recall.For TASK, required on create/update and must be in the form <TaskType>: <reason> — the prefix must be one of the values returned by GET fhir/v2/ValueSet/task-name for the authenticated firm (e.g. AUTHORIZATION: Procedure). Immutable after creation. |
| for | Both | Reference to Patient. For TASK, immutable after creation once set. |
| encounter | TASK only | Reference to Encounter (the visit associated with the task). |
| authoredOn | Both | Datetime the task was created. For TASK, immutable after creation. |
| requester | Both | Reference to Practitioner. For TASK create, defaults to the practitioner associated with the API credentials used if not supplied. |
| location | TASK only | Reference to Location (facility). Required on create. Immutable after creation. |
| priority | TASK only | routine | urgent | stat. Required on create. |
| input | TASK only | Assignee(s). At least one is required on create/update. Each entry has a type.text label (e.g. "Performer with Role: DOCTOR") and a valueReference — a Practitioner/ reference for an individual, or a CareTeam/ reference for a staff group. Also used for attached documents (DocumentReference/ references). |
| basedOn | TASK only | Reference(s) to the ServiceRequest (lab order) this task is based on. Must resolve to a lab request/order belonging to the authenticated firm, or the search/create returns no match. |
| reasonCode | PMRECALL only | ValueSet: {base_url}/fhir/v2/ValueSet/recall-type |
| note | Both | For PMRECALL: free-text Appointment Notes on the recall.For TASK: an array of notes. If including a time on any note, every note must have one (or none may); note times must be non-decreasing. |
| period | PMRECALL only | Datetime — due date for the Recall. (This param name is unrelated to the Task search parameter period, which is a due-date match for TASK — see the Search page for the full parameter list.) |
Immutable-on-update fields (TASK only): authoredOn, description, location, for, and status are locked once the task is created — an update that tries to change any of these is rejected. Only priority, assignees (input), notes, and the optional reference fields (encounter, requester, basedOn) can be changed via PUT.

