xCaliber healthCare Data Mesh

Media

Overview

The Media API enables developers to build applications for storing, managing and accessing medical images, videos, illustrations and other multimedia content. It provides RESTful endpoints to securely upload, retrieve, update and delete files, allowing seamless integration of multimedia into healthcare workflows.

Use Cases

  • Medical Image - Management Manage medical images like x-rays, MRI, CT scans in electronic health records
  • Telemedicine Consultations - Enable video telemedicine consultations between patients and providers
  • Wound Care Management - Allow uploading patient photos to track wound healing over time
  • Patient Education - Build anatomy illustration libraries for patient education
  • Visual Treatment Tracking - Attach photos/videos to patient charts to visually track treatment
  • Clinical Image Analysis - Develop tools for providers to annotate and analyze medical images

EHR Data Model

EHRSupported?Mapped Source Object
AthenaInsurance Card, Prescription Card
Elation
Epic

Object Definition

{
  "resourceType": "Media",
  "id": "example",
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p><b>Generated Narrative with Details</b></p><p><b>id</b>: example</p><p><b>status</b>: completed</p><p><b>type</b>: Image <span>(Details : {http://terminology.hl7.org/CodeSystem/media-type code 'image' = 'Image', given as 'Image'})</span></p><p><b>modality</b>: Diagram <span>(Details : {http://terminology.hl7.org/CodeSystem/media-modality code 'diagram' = 'Diagram)</span></p><p><b>subject</b>: <a>Patient/xcda</a></p><p><b>created</b>: 17/12/2017</p><p><b>issued</b>: 17/12/2017 2:56:18 PM</p><p><b>operator</b>: <a>Practitioner/xcda-author</a></p><p><b>device</b>: Acme Camera</p><p><b>height</b>: 145</p><p><b>width</b>: 126</p><p><b>frames</b>: 1</p><p><b>content</b>: </p></div>"
  },
  "status": "completed",
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/media-type",
        "code": "image",
        "display": "Image"
      }
    ]
  },
  "modality": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/media-modality",
        "code": "diagram"
      }
    ]
  },
  "subject": {
    "reference": "Patient/xcda"
  },
  "createdDateTime": "2017-12-17",
  "issued": "2017-12-17T14:56:18Z",
  "operator": {
    "reference": "Practitioner/xcda-author"
  },
  "device": {
    "display": "Acme Camera"
  },
  "height": 145,
  "width": 126,
  "frames": 1,
  "content": {
    "id": "a1",
    "contentType": "image/gif",
    "data": "R0lGODlhfgCRAPcAAAAAAIAAAACAAICAAAAAgIAA    gACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/////    /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA    AAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA    /wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBm    mQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADM    MwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD/    /zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMz    mTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZ    MzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM    /zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYA    mWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZm    M2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ    /2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/    mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkz    M5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm    /5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnM    mZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA    M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz    /8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZ    mcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/    M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A    //8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9m    mf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/M    M//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP//    /yH5BAEAABAALAAAAAB+AJEAQAj/AP8JHEiwoMGD    CBMqXMiwocOHECNKnEixosWLGFHAckaN2jRnsKZh    HEmy5EMU0+L5EseNG654KEzKnGkShbN4uFq2xOWR    ps+fE5nEy6Wz5a+XQJMqTeisGdGiLuNRi7m0qlJn    06iF7LhxKoqvX2FpnRYSq1eBX62qRYhCKzWzZDeK    3bqR7NSsb99uddZ2r1ZnINuanbrWp82tb8ly/Bjy    a1aOKOu+5ZgXZFa7sARzBMl5a9rCJDl29ejxMuDK    eb3mJYsSa93GIOW61QgWbEjQGStbrru7o2K3dkXj    BUz242WUbj0u9vj1b2KquCn27Rq7I1+9nBkn7gyS    K/HBnFd3/y8bUizf6CM76s0qduxp0pvN23UrOnF7    zB7nWiaMXuZhvGJNoxhjpr3G3WMfJfdbgtD1p1Rb    xgkHX3uUbeYbdli5dp6DHHbo4YcghijiiCSWeJJG    rJloIkoqPeXLNA2q+GFHm+yUSzzxiCQjiG3hVFQu    N+74IQry4JSTTjfCImSHyE1TyS9I+iJPZkv21ySE    +bE31VTjhZfZfhm2V+VJXLH3WH70MfZVeKfF9Z1i    nv3mXldjEiTYmX9tpVhkXrW1JpfX6bVdnosh19xG    INVpk3JydafYZjC6RhqMNlHa11u0aQbjl/mVJaB1    McrY16eSSeYle2AmqGp5wIl1KVxj+f8WIDV1/iOY    Vote5lt4eZUn6WsI+kZgp6iVxV+tAs064aqUebdr    aW55GqZ2AiIWKrIHQahfo3bBeaZ5zq1q17XYMoQl    eQt+Jxt56jXrarnwxivvvPTWa++9TJYlGrn4+kdN    PJv4kksz92zY709ExqPJkbncw+/BI9mEDy4Mx+MM    xD/9+xQ3m+RIK8Yz2STPkS11s8nFIMvEhDw1FoVL    xynLdI9KR+bUMMoxR+yML1BxIyWMOY+0kTxQuizV    w0E3hOJjBTe9UYO1fZZ0Qlga59hYvgLX3W7GWo20    vLWV5uqjlHZUaVcDbukuZVTe29poqNYnZ2ZzrdbV    0hRmdZh9dX3/raKv5MknG19YVojmVPIJmtlwhBpX    bq4V6trd1VhV6t5jfM6XWWVzaRmZ3yO+3WaAi3XG    FZfP2vRnYogLp+tec4Ee4qLZ3dfV3XXpHanZMHJV    d6WsucprXJiOyaZ+iaH60aJ1JxirRoCF5Wdmfnql    J9uUVdma1m7CvTe74mHWLSyNgft6nmaDNSZy5o1m    HvPWadW+aN9luVxglpnVeXF6Kxr/88MhX3wcJZsB    uS81uDpc+5KDM0VBr3SlAQx1LBSSy1AHT2iSS1u2    E6DYwUtbGTQOacj3mPGg6TeSEZBrWAUnyMzrbVk6    XVyKsxgCwW0/62GMhVKErw12S1D5S0185RQnn8XQ    xYUx45NyNOe87gCRPubZj+xeaB+smIl+yllirCho    xKmhxExoK1Cv0BSftAVmamhMoxrXyMY2uvGNcIyj    HOeoxkXBh44OOZdn8Ggu+DiPjwtJ2CZyUomCTRGO    KJFHLljiEnkc8o0Sy0U3WpILoAGSLf9qmc86ckmE    /MtHOfEFVjp5EGfc40jieAlgSFmQL27sF/GQx8dY    iRaP8EwnL9ERLW1lS5L5whfxyMcubaWworVEHIX0    xzBRcI9NMBJJ9xgmMTW5E19QQ5m0tAlOjOkzeeiS    lcwcJFSAeSxSomRjuDT/2y6ncQ9fkMwozMkmVhRW    lFTGk5T5sAlgaCawjjWjnJcEYoYWRJU/CUdqbQSX    bNYEGRQZjj630qAXO7MmRJ3pOq65DOOiBaqghaVy    a4sUcrKYn+ugay+PXFJzgiOesGWISx3sFfRoaEHC    qY9ePmzUpCoTnN5JyobF8lx9zJJSEZlqWNK6D0ar    taDWsY4zOV2NVj5olq2VVIvCQ1GsjKURBSnnbCJk    FbzihxdSqYc1MAyhZZBDPwZ1sKygKiqTHsOqPGFO    L8JrX7cgxBmiYk2LagKo9uQ3LKv2zjGcMlbsVLUv    I2YRUf+Z5fq2GqzRqO04Z2POlyo4m7KGB3oXsmSd    /2Llps7Mh6mVK84FtQW9qllnccLJkFythBgUyo2F    AlzTgMIyqECVDkZltSgSB6unZ8Vwc9jZHKUIJ8Ll    8YkvkmLUa3koJPaFdoGeK2Ln9KI6S4GFVMsDV31e    M1vQqPZT+uMpcJYY2/V89y9+0tuoKuqp8mhvfKnx    7NNI95fiCIpx1Nmchrj1VbaWtzAOdSLr6MLX+5VH    Px+BVIVQdLuXKk8v2pMg69wzFodez0x/Fa+37tQ4    CcbnwAge6Icbg9Ww6gpAALLrXer20mKhuDDGoWlg    /Aveq8InizQsjwq7GkQEEVVRsWHQYYIYQ+cFK00G    4o1webxWZEEIsVAEznmH6N1Y4eiUNJaLaRex9UVf    wWlSJCRhr+AiZElZsYZoi5xg12eqp3buNEJm3LRQ    BcTeSZUx8/pLdk53w9p6CYKE/p+J83NjJuUPeemq    71bbqrjTkTEvjfaQDyFFnXbJr1lshqIKnaja4uHr    tWEa4beqRZpJpXcvy3kaxhxD6U/NqaQ0xCr6jJhp    FUlYPVl01HrsI8JYPSdpoCXhEG2YUVzrqT2mzpkS    KVRAG955u3SJdhITZ766KosyNjQOnZAt6F3d7oQJ    +inaJNPrHUXt3fCOt7ylSe962/ve+M63vvkYEAA7",
    "creation": "2009-09-03"
  },
  "meta": {
    "tag": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason",
        "code": "HTEST",
        "display": "test health data"
      }
    ]
  }
}

Data Fields

Data FieldTypeDescription
resourceTypeMediaThis is a Media resource
ididThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
metaMetaThe metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
implicitRulesuriA reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
languagecodeThe base language in which the resource is written.
textNarrativeA human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
containedBackboneElementThese resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
extensionExtensionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
modifierExtensionExtensionMay be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
identifierIdentifierIdentifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.
basedOnReferenceA procedure that is fulfilled in whole or in part by the creation of this media.
partOfReferenceA larger event of which this particular event is a component or step.
statuscodeThe current state of the {{title}}.
typeCodeableConceptA code that classifies whether the media is an image, video or audio recording or some other media category.
modalityCodeableConceptDetails of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.
viewCodeableConceptThe name of the imaging view e.g. Lateral or Antero-posterior (AP).
subjectReferenceWho/What this Media is a record of.
encounterReferenceThe encounter that establishes the context for this media.
createdDateTimestringThe date and time(s) at which the media was collected.
createdPeriodPeriodThe date and time(s) at which the media was collected.
issuedinstantThe date and time this version of the media was made available to providers, typically after having been reviewed.
operatorReferenceThe person who administered the collection of the image.
reasonCodeCodeableConceptDescribes why the event occurred in coded or textual form.
bodySiteCodeableConceptIndicates the site on the subject's body where the observation was made (i.e. the target site).
deviceNamestringThe name of the device / manufacturer of the device that was used to make the recording.
deviceReferenceThe device used to collect the media.
heightpositiveIntHeight of the image in pixels (photo/video).
widthpositiveIntWidth of the image in pixels (photo/video).
framespositiveIntThe number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.
durationdecimalThe duration of the recording in seconds - for audio and video.
contentAttachmentThe actual content of the media - inline or by direct reference to the media source file.
noteAnnotationComments made about the media by the performer, subject or other participants.

Extensions

NameURL
PRIORITYhttp://xcaliber-fhir/structureDefinition/priority
APPOINTMENTIDhttp://xcaliber-fhir/structureDefinition/appointment-id
ASSIGNEDTOhttp://xcaliber-fhir/structureDefinition/assigned-to
CLINICALPROVIDERIDhttp://xcaliber-fhir/structureDefinition/clinical-provider-id
CREATEDDATEhttp://xcaliber-fhir/structureDefinition/created-date
DELETEDDATETIMEhttp://xcaliber-fhir/structureDefinition/deleted-date-time
DOCUMENTCLASShttp://xcaliber-fhir/structureDefinition/document-class
DOCUMENTSOURCEhttp://xcaliber-fhir/structureDefinition/document-source
EXTERNALACCESSIONIDhttp://xcaliber-fhir/structureDefinition/external-accession-id
EXTERNALNOTEhttp://xcaliber-fhir/structureDefinition/external-note
FILESIZEhttp://xcaliber-fhir/structureDefinition/file-size
INTERNALACCESSIONIDhttp://xcaliber-fhir/structureDefinition/internal-accession-id
INTERNALNOTEhttp://xcaliber-fhir/structureDefinition/internal-note
LASTMODIFIEDDATEhttp://xcaliber-fhir/structureDefinition/last-modified-date
LASTMODIFIEDDATETIMEhttp://xcaliber-fhir/structureDefinition/last-modified-date-time
PROVIDERIDhttp://xcaliber-fhir/structureDefinition/provider-id
PROVIDERUSERNAMEhttp://xcaliber-fhir/structureDefinition/provider-user-name
TIETOORDERIDhttp://xcaliber-fhir/structureDefinition/tie-to-order-id
TIETOPROCEDUREORSURGERYhttp://xcaliber-fhir/structureDefinition/tie-to-procedure-or-surgery
ACTIONNOTEhttp://xcaliber-fhir/structureDefinition/action-note
SUBJECThttp://xcaliber-fhir/structureDefinition/subject
PAGEORDERINGhttp://xcaliber-fhir/structureDefinition/page-ordering

Operations & APIs

Media-GET

Media-POST

Media ID-GET

Media ID-PUT

Media ID-DELETE