# title
VA PGHD Media Base Profile for Mobile App Data

# description
VA PGHD Media base profile defining the common constraints for all PGHD medias. It should have a meta tag with system = 'https://wiki.mobilehealth.va.gov/x/Onc1C', a code, and a display value.

# purpose
This is the PGHD media base profile defining the common constraints for all VA PGHD media profiles. Other PGHD media profiles should derive from this base profile.

# snapshot.element[].definition
A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.

# snapshot.element[].constraint[].human
If the resource is contained in another resource, it SHALL NOT contain nested Resources

# snapshot.element[].constraint[].human
If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource

# snapshot.element[].constraint[].human
If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated

# snapshot.element[].constraint[].human
If a resource is contained in another resource, it SHALL NOT have a security label

# snapshot.element[].constraint[].extension[].valueMarkdown
When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time.

# snapshot.element[].constraint[].human
A resource should have narrative for robust management

# snapshot.element[].constraint[].human
A Media must have at least one meta tag, one or more of which has system = 'https://wiki.mobilehealth.va.gov/x/Onc1C', a code, and a display value

# snapshot.element[].definition
The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

# snapshot.element[].comment
The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

# snapshot.element[].definition
The 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.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
A set of rules under which this content was created

# snapshot.element[].definition
A 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.

# snapshot.element[].comment
Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].isModifierReason
This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation

# snapshot.element[].definition
The base language in which the resource is written.

# snapshot.element[].comment
Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies  to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
Text summary of the resource, for human interpretation

# snapshot.element[].definition
A 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.

# snapshot.element[].comment
Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied).  This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
These 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.

# snapshot.element[].comment
This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

# snapshot.element[].short
Additional content defined by implementations

# snapshot.element[].definition
May 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.

# snapshot.element[].comment
There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].constraint[].human
Must have either extensions or value[x], not both

# snapshot.element[].definition
May 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).

# snapshot.element[].comment
There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

# snapshot.element[].requirements
Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].constraint[].human
Must have either extensions or value[x], not both

# snapshot.element[].isModifierReason
Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them

# snapshot.element[].definition
Identifiers 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.

# snapshot.element[].comment
The identifier label and use can be used to determine what kind of identifier it is.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
Procedure that caused this media to be created

# snapshot.element[].definition
A procedure that is fulfilled in whole or in part by the creation of this media.

# snapshot.element[].requirements
Allows tracing of authorization for the event and tracking whether proposals/recommendations were acted upon.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
A larger event of which this particular event is a component or step.

# snapshot.element[].comment
Not to be used to link an event to an Encounter - use Media.encounter for that.  [The allowed reference resources may be adjusted as appropriate for the event resource].

# snapshot.element[].requirements
E.g. Drug administration as part of a procedure, procedure as part of observation, etc.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown

# snapshot.element[].comment
A nominal state-transition diagram can be found in the [[event.html#statemachine | Event pattern]] documentation  Unknown does not represent "other" - one of the defined statuses must apply.  Unknown is used when the authoring system is not sure what the current status is.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].isModifierReason
This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid

# snapshot.element[].binding.description
Codes identifying the lifecycle stage of an event.

# snapshot.element[].short
Classification of media as image, video, or audio

# snapshot.element[].definition
A code that classifies whether the media is an image, video or audio recording or some other media category.

# snapshot.element[].requirements
Used for filtering what observations are retrieved and displayed.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
The type of acquisition equipment/process

# snapshot.element[].definition
Details 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.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].binding.description
Detailed information about the type of the image - its kind, purpose, or the kind of equipment used to generate it.

# snapshot.element[].short
Imaging view, e.g. Lateral or Antero-posterior

# snapshot.element[].definition
The name of the imaging view e.g. Lateral or Antero-posterior (AP).

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].binding.description
Imaging view (projection) used when collecting an image.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
The encounter that establishes the context for this media.

# snapshot.element[].comment
This will typically be the encounter the media occurred within.

# snapshot.element[].requirements
Links the Media to the Encounter context.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
The date and time(s) at which the media was collected.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
Date/Time this version was made available

# snapshot.element[].definition
The date and time this version of the media was made available to providers, typically after having been reviewed.

# snapshot.element[].comment
It may be the same as the [`lastUpdated` ](resource-definitions.html#Meta.lastUpdated) time of the resource itself.  For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that does not require the new version to be reviewed and verified again.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].mapping[].map
OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)

# snapshot.element[].definition
The person who administered the collection of the image.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
Describes why the event occurred in coded or textual form.

# snapshot.element[].comment
Textual reasons can be captured using reasonCode.text.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
Indicates the site on the subject's body where the observation was made (i.e. the target site).

# snapshot.element[].comment
Only used if not implicit in code found in Observation.code.  In many systems, this may be represented as a related observation instead of an inline component.     If the use case requires BodySite to be handled as a separate resource (e.g. to identify and track separately) then use the standard extension[ bodySite](extension-bodysite.html).

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].binding.description
Codes describing anatomical locations. May include laterality.

# snapshot.element[].definition
The name of the device / manufacturer of the device  that was used to make the recording.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].comment
An extension should be used if further typing of the device is needed.  Secondary devices used to support collecting a media can be represented using either extension or through the Observation.related element.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
Height of the image in pixels (photo/video)

# snapshot.element[].definition
Height of the image in pixels (photo/video).

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].short
Width of the image in pixels (photo/video)

# snapshot.element[].definition
Width of the image in pixels (photo/video).

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
The 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.

# snapshot.element[].comment
if the number of frames is not supplied, the value may be unknown. Applications should not assume that there is only one frame unless it is explicitly stated.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
The duration of the recording in seconds - for audio and video.

# snapshot.element[].comment
The duration might differ from occurrencePeriod if recording was paused.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
The actual content of the media - inline or by direct reference to the media source file.

# snapshot.element[].comment
Recommended content types: image/jpeg, image/png, image/tiff, video/mpeg, audio/mp4, application/dicom. Application/dicom can contain the transfer syntax as a parameter.  For media that covers a period of time (video/sound), the content.creationTime is the end time. Creation time is used for tracking, organizing versions and searching.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# snapshot.element[].definition
Comments made about the media by the performer, subject or other participants.

# snapshot.element[].comment
Not to be used for observations, conclusions, etc. Instead use an [Observation](observation.html) based on the Media/ImagingStudy resource.

# snapshot.element[].constraint[].human
All FHIR elements must have a @value or children

# snapshot.element[].constraint[].expression
hasValue() or (children().count() > id.count())

# differential.element[].constraint[].human
A Media must have at least one meta tag, one or more of which has system = 'https://wiki.mobilehealth.va.gov/x/Onc1C', a code, and a display value