Tasks/Recalls

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 NameApplies toNotes
idBothUnique identifier for the specific Task, in the form TASK|<integer> or PMRECALL|<integer>.
lastModifiedBothDatetime the resource was last updated. (Note: this is a top-level lastModified field, not meta.lastUpdated.)
statusBoth (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)
statusReasonPMRECALL onlyValueSet: {base_url}/fhir/v2/ValueSet/recall-action
intentBothorder for TASK; unknown for PMRECALL.
codeBothValueSet: {base_url}/fhir/v2/ValueSet/task-type
TASK (general EMA task) or PMRECALL (PM Recall).
descriptionBoth (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.
forBothReference to Patient. For TASK, immutable after creation once set.
encounterTASK onlyReference to Encounter (the visit associated with the task).
authoredOnBothDatetime the task was created. For TASK, immutable after creation.
requesterBothReference to Practitioner. For TASK create, defaults to the practitioner associated with the API credentials used if not supplied.
locationTASK onlyReference to Location (facility). Required on create. Immutable after creation.
priorityTASK onlyroutine | urgent | stat. Required on create.
inputTASK onlyAssignee(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).
basedOnTASK onlyReference(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.
reasonCodePMRECALL onlyValueSet: {base_url}/fhir/v2/ValueSet/recall-type
noteBothFor 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.
periodPMRECALL onlyDatetime — 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.