Search FHIR

FR Document Core (FHIR)
0.1.0 - ci-build France (la) flag

FR Document Core (FHIR), published by Agence du Numérique en Santé (ANS) - 2-10 Rue d'Oradour-sur-Glane, 75015 Paris. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/ansforge/interop-IG-fhir-document-core/ and changes regularly. See the Directory of published versions

Resource Profile: DeviceRequest - FR Device request Document

Official URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-device-request-document Version: 0.1.0
Draft as of 2026-08-07 Computable Name: FRDeviceRequestDocument

FRDeviceRequestDocument représente une demande de dispositif médical (DM) qui n’a pas encore été dispensé.

Usages:

  • This Profile is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest(4.0.1) Medical device request
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:notCovered 0..1 boolean DM prescrit n'est remboursable / remboursable
URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-not-covered-extension
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... status ?!Σ 0..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of diagnostic request.
... Slices for code[x] Σ 1..1 Device requested
Slice: Unordered, Open by type:$this
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(Device)
.... codeCodeableConcept CodeableConcept
.... code[x]:codeReference SΣ 0..1 Reference(Device) Dispositif médical
... parameter S 0..1 BackboneElement Device details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... Slices for value[x] 0..1 Value of detail
Slice: Unordered, Open by type:$this
..... valueCodeableConcept CodeableConcept
..... valueQuantity Quantity
..... valueRange Range
..... valueBoolean boolean
..... value[x]:valueQuantity S 0..1 Quantity Quantité
... subject Σ 1..1 Reference(Patient | Group | Location | Device) Focus of request
... Slices for occurrence[x] SΣ 0..1 Desired time or schedule for use
Slice: Unordered, Open by type:$this
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
.... occurrence[x]:occurrenceTiming SΣ 0..1 Timing Date d'utilisation ou de présence chez le patient
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... repeat ΣC 0..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
...... count SΣ 0..1 positiveInt Nombre de renouvellement(s) possible(s)
.... occurrence[x]:occurrencePeriod SΣ 0..1 Period Durée d'utilisation
... requester SΣ 0..1 Reference(FR PractitionerRole Document(0.1.0)) Prescripteur
... reasonReference SΣ 0..* Reference(Observation | Condition - FR Condition Document(0.1.0) | Observation - FR Observation Prevention Document(0.1.0) | Observation - FR Observation ALD Document(0.1.0) | Observation - FR Observation Work Related Accident Document(0.1.0)) Raisons liées à l'utilisation du dispositif médical

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.status Base required RequestStatus 📍4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📍4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest A resource should have narrative for robust management text.`div`.exists()
ele-1 error DeviceRequest.implicitRules, DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.identifier, DeviceRequest.status, DeviceRequest.intent, DeviceRequest.code[x], DeviceRequest.code[x]:codeReference, DeviceRequest.parameter, DeviceRequest.parameter.modifierExtension, DeviceRequest.parameter.value[x], DeviceRequest.parameter.value[x]:valueQuantity, DeviceRequest.subject, DeviceRequest.occurrence[x], DeviceRequest.occurrence[x]:occurrenceTiming, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.repeat, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.count, DeviceRequest.occurrence[x]:occurrencePeriod, DeviceRequest.requester, DeviceRequest.reasonReference All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.parameter.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
tim-1 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's an offset, there must be a when (and not C, CM, CD, CV) offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest(4.0.1) Medical device request
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:notCovered 0..1 boolean DM prescrit n'est remboursable / remboursable
URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-not-covered-extension
... identifier 0..* Identifier Identifiant de la fourniture du DM - Sous la forme UID (UUID ou OID)
... Slices for code[x] 1..1 Reference(Device), CodeableConcept Device requested
Slice: Unordered, Open by type:$this
.... code[x]:codeReference S 0..1 Reference(Device) Dispositif médical
.... Slices for value[x] 0..1 CodeableConcept, Quantity, Range, boolean Value of detail
Slice: Unordered, Open by type:$this
..... value[x]:valueQuantity S 0..1 Quantity Quantité
... Slices for occurrence[x] S 0..1 dateTime, Period, Timing Desired time or schedule for use
Slice: Unordered, Open by type:$this
.... occurrence[x]:occurrenceTiming S 0..1 Timing Date d'utilisation ou de présence chez le patient
..... repeat
...... count S 0..1 positiveInt Nombre de renouvellement(s) possible(s)
.... occurrence[x]:occurrencePeriod S 0..1 Period Durée d'utilisation
... requester S 0..1 Reference(FR PractitionerRole Document(0.1.0)) Prescripteur
... reasonReference S 0..* Reference(Observation | Condition - FR Condition Document(0.1.0) | Observation - FR Observation Prevention Document(0.1.0) | Observation - FR Observation ALD Document(0.1.0) | Observation - FR Observation Work Related Accident Document(0.1.0)) Raisons liées à l'utilisation du dispositif médical

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest(4.0.1) Medical device request
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:notCovered 0..1 boolean DM prescrit n'est remboursable / remboursable
URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-not-covered-extension
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier Σ 0..* Identifier Identifiant de la fourniture du DM - Sous la forme UID (UUID ou OID)
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(Resource) What request fulfills
... priorRequest Σ 0..* Reference(Resource) What request replaces
... groupIdentifier Σ 0..1 Identifier Identifier of composite request
... status ?!Σ 0..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of diagnostic request.
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... Slices for code[x] Σ 1..1 Device requested
Slice: Unordered, Open by type:$this
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(Device)
.... codeCodeableConcept CodeableConcept
.... code[x]:codeReference SΣ 0..1 Reference(Device) Dispositif médical
... parameter S 0..1 BackboneElement Device details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... code 0..1 CodeableConcept Device detail
Binding Description: (example): A code that identifies the device detail.
.... Slices for value[x] 0..1 Value of detail
Slice: Unordered, Open by type:$this
..... valueCodeableConcept CodeableConcept
..... valueQuantity Quantity
..... valueRange Range
..... valueBoolean boolean
..... value[x]:valueQuantity S 0..1 Quantity Quantité
... subject Σ 1..1 Reference(Patient | Group | Location | Device) Focus of request
... encounter Σ 0..1 Reference(Encounter) Encounter motivating request
... Slices for occurrence[x] SΣ 0..1 Desired time or schedule for use
Slice: Unordered, Open by type:$this
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
.... occurrence[x]:occurrenceTiming SΣ 0..1 Timing Date d'utilisation ou de présence chez le patient
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... event Σ 0..* dateTime When the event occurs
..... repeat ΣC 0..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... bounds[x] Σ 0..1 Length/Range of lengths, or (Start and/or end) limits
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... count SΣ 0..1 positiveInt Nombre de renouvellement(s) possible(s)
...... countMax Σ 0..1 positiveInt Maximum number of times to repeat
...... duration Σ 0..1 decimal How long when it happens
...... durationMax Σ 0..1 decimal How long when it happens (Max)
...... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
...... frequency Σ 0..1 positiveInt Event occurs frequency times per period
...... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
...... period Σ 0..1 decimal Event occurs frequency times per period
...... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
...... periodUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
...... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ 0..* time Time of day for action
...... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.
...... offset Σ 0..1 unsignedInt Minutes from event (before or after)
..... code Σ 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
.... occurrence[x]:occurrencePeriod SΣ 0..1 Period Durée d'utilisation
... authoredOn Σ 0..1 dateTime When recorded
... requester SΣ 0..1 Reference(FR PractitionerRole Document(0.1.0)) Prescripteur
... performerType Σ 0..1 CodeableConcept Filler role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
... performer Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) Requested Filler
... reasonCode Σ 0..* CodeableConcept Coded Reason for request
Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device.
... reasonReference SΣ 0..* Reference(Observation | Condition - FR Condition Document(0.1.0) | Observation - FR Observation Prevention Document(0.1.0) | Observation - FR Observation ALD Document(0.1.0) | Observation - FR Observation Work Related Accident Document(0.1.0)) Raisons liées à l'utilisation du dispositif médical
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... note 0..* Annotation Notes or comments
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DeviceRequest.status Base required RequestStatus 📍4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📍4.0.1 FHIR Std.
DeviceRequest.priority Base required Request priority 📍4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.
DeviceRequest.parameter.​code Base example Not State Unknown
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.when Base required EventTiming 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​code Base preferred TimingAbbreviation 📍4.0.1 FHIR Std.
DeviceRequest.performerType Base example Participant Roles 📍4.0.1 FHIR Std.
DeviceRequest.reasonCode Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest A resource should have narrative for robust management text.`div`.exists()
ele-1 error DeviceRequest.meta, DeviceRequest.implicitRules, DeviceRequest.language, DeviceRequest.text, DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.identifier, DeviceRequest.instantiatesCanonical, DeviceRequest.instantiatesUri, DeviceRequest.basedOn, DeviceRequest.priorRequest, DeviceRequest.groupIdentifier, DeviceRequest.status, DeviceRequest.intent, DeviceRequest.priority, DeviceRequest.code[x], DeviceRequest.code[x]:codeReference, DeviceRequest.parameter, DeviceRequest.parameter.extension, DeviceRequest.parameter.modifierExtension, DeviceRequest.parameter.code, DeviceRequest.parameter.value[x], DeviceRequest.parameter.value[x]:valueQuantity, DeviceRequest.subject, DeviceRequest.encounter, DeviceRequest.occurrence[x], DeviceRequest.occurrence[x]:occurrenceTiming, DeviceRequest.occurrence[x]:occurrenceTiming.extension, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.event, DeviceRequest.occurrence[x]:occurrenceTiming.repeat, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.extension, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.bounds[x], DeviceRequest.occurrence[x]:occurrenceTiming.repeat.count, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.countMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.duration, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.durationMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.durationUnit, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.frequency, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.frequencyMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.period, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.periodMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.periodUnit, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.dayOfWeek, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.timeOfDay, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.when, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.offset, DeviceRequest.occurrence[x]:occurrenceTiming.code, DeviceRequest.occurrence[x]:occurrencePeriod, DeviceRequest.authoredOn, DeviceRequest.requester, DeviceRequest.performerType, DeviceRequest.performer, DeviceRequest.reasonCode, DeviceRequest.reasonReference, DeviceRequest.insurance, DeviceRequest.supportingInfo, DeviceRequest.note, DeviceRequest.relevantHistory All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.parameter.extension, DeviceRequest.parameter.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.extension, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.extension Must have either extensions or value[x], not both extension.exists() != value.exists()
tim-1 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's an offset, there must be a when (and not C, CM, CD, CV) offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest(4.0.1) Medical device request
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:notCovered 0..1 boolean DM prescrit n'est remboursable / remboursable
URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-not-covered-extension
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... status ?!Σ 0..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of diagnostic request.
... Slices for code[x] Σ 1..1 Device requested
Slice: Unordered, Open by type:$this
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(Device)
.... codeCodeableConcept CodeableConcept
.... code[x]:codeReference SΣ 0..1 Reference(Device) Dispositif médical
... parameter S 0..1 BackboneElement Device details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... Slices for value[x] 0..1 Value of detail
Slice: Unordered, Open by type:$this
..... valueCodeableConcept CodeableConcept
..... valueQuantity Quantity
..... valueRange Range
..... valueBoolean boolean
..... value[x]:valueQuantity S 0..1 Quantity Quantité
... subject Σ 1..1 Reference(Patient | Group | Location | Device) Focus of request
... Slices for occurrence[x] SΣ 0..1 Desired time or schedule for use
Slice: Unordered, Open by type:$this
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
.... occurrence[x]:occurrenceTiming SΣ 0..1 Timing Date d'utilisation ou de présence chez le patient
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... repeat ΣC 0..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
...... count SΣ 0..1 positiveInt Nombre de renouvellement(s) possible(s)
.... occurrence[x]:occurrencePeriod SΣ 0..1 Period Durée d'utilisation
... requester SΣ 0..1 Reference(FR PractitionerRole Document(0.1.0)) Prescripteur
... reasonReference SΣ 0..* Reference(Observation | Condition - FR Condition Document(0.1.0) | Observation - FR Observation Prevention Document(0.1.0) | Observation - FR Observation ALD Document(0.1.0) | Observation - FR Observation Work Related Accident Document(0.1.0)) Raisons liées à l'utilisation du dispositif médical

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.status Base required RequestStatus 📍4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📍4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest A resource should have narrative for robust management text.`div`.exists()
ele-1 error DeviceRequest.implicitRules, DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.identifier, DeviceRequest.status, DeviceRequest.intent, DeviceRequest.code[x], DeviceRequest.code[x]:codeReference, DeviceRequest.parameter, DeviceRequest.parameter.modifierExtension, DeviceRequest.parameter.value[x], DeviceRequest.parameter.value[x]:valueQuantity, DeviceRequest.subject, DeviceRequest.occurrence[x], DeviceRequest.occurrence[x]:occurrenceTiming, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.repeat, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.count, DeviceRequest.occurrence[x]:occurrencePeriod, DeviceRequest.requester, DeviceRequest.reasonReference All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.parameter.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
tim-1 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's an offset, there must be a when (and not C, CM, CD, CV) offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest(4.0.1) Medical device request
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:notCovered 0..1 boolean DM prescrit n'est remboursable / remboursable
URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-not-covered-extension
... identifier 0..* Identifier Identifiant de la fourniture du DM - Sous la forme UID (UUID ou OID)
... Slices for code[x] 1..1 Reference(Device), CodeableConcept Device requested
Slice: Unordered, Open by type:$this
.... code[x]:codeReference S 0..1 Reference(Device) Dispositif médical
.... Slices for value[x] 0..1 CodeableConcept, Quantity, Range, boolean Value of detail
Slice: Unordered, Open by type:$this
..... value[x]:valueQuantity S 0..1 Quantity Quantité
... Slices for occurrence[x] S 0..1 dateTime, Period, Timing Desired time or schedule for use
Slice: Unordered, Open by type:$this
.... occurrence[x]:occurrenceTiming S 0..1 Timing Date d'utilisation ou de présence chez le patient
..... repeat
...... count S 0..1 positiveInt Nombre de renouvellement(s) possible(s)
.... occurrence[x]:occurrencePeriod S 0..1 Period Durée d'utilisation
... requester S 0..1 Reference(FR PractitionerRole Document(0.1.0)) Prescripteur
... reasonReference S 0..* Reference(Observation | Condition - FR Condition Document(0.1.0) | Observation - FR Observation Prevention Document(0.1.0) | Observation - FR Observation ALD Document(0.1.0) | Observation - FR Observation Work Related Accident Document(0.1.0)) Raisons liées à l'utilisation du dispositif médical

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest(4.0.1) Medical device request
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:notCovered 0..1 boolean DM prescrit n'est remboursable / remboursable
URL: https://interop.esante.gouv.fr/ig/fhir/document-core/StructureDefinition/fr-not-covered-extension
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier Σ 0..* Identifier Identifiant de la fourniture du DM - Sous la forme UID (UUID ou OID)
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(Resource) What request fulfills
... priorRequest Σ 0..* Reference(Resource) What request replaces
... groupIdentifier Σ 0..1 Identifier Identifier of composite request
... status ?!Σ 0..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.
... intent ?!Σ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of diagnostic request.
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... Slices for code[x] Σ 1..1 Device requested
Slice: Unordered, Open by type:$this
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(Device)
.... codeCodeableConcept CodeableConcept
.... code[x]:codeReference SΣ 0..1 Reference(Device) Dispositif médical
... parameter S 0..1 BackboneElement Device details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... code 0..1 CodeableConcept Device detail
Binding Description: (example): A code that identifies the device detail.
.... Slices for value[x] 0..1 Value of detail
Slice: Unordered, Open by type:$this
..... valueCodeableConcept CodeableConcept
..... valueQuantity Quantity
..... valueRange Range
..... valueBoolean boolean
..... value[x]:valueQuantity S 0..1 Quantity Quantité
... subject Σ 1..1 Reference(Patient | Group | Location | Device) Focus of request
... encounter Σ 0..1 Reference(Encounter) Encounter motivating request
... Slices for occurrence[x] SΣ 0..1 Desired time or schedule for use
Slice: Unordered, Open by type:$this
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
.... occurrence[x]:occurrenceTiming SΣ 0..1 Timing Date d'utilisation ou de présence chez le patient
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... event Σ 0..* dateTime When the event occurs
..... repeat ΣC 0..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... bounds[x] Σ 0..1 Length/Range of lengths, or (Start and/or end) limits
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... count SΣ 0..1 positiveInt Nombre de renouvellement(s) possible(s)
...... countMax Σ 0..1 positiveInt Maximum number of times to repeat
...... duration Σ 0..1 decimal How long when it happens
...... durationMax Σ 0..1 decimal How long when it happens (Max)
...... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
...... frequency Σ 0..1 positiveInt Event occurs frequency times per period
...... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
...... period Σ 0..1 decimal Event occurs frequency times per period
...... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
...... periodUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
...... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ 0..* time Time of day for action
...... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.
...... offset Σ 0..1 unsignedInt Minutes from event (before or after)
..... code Σ 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
.... occurrence[x]:occurrencePeriod SΣ 0..1 Period Durée d'utilisation
... authoredOn Σ 0..1 dateTime When recorded
... requester SΣ 0..1 Reference(FR PractitionerRole Document(0.1.0)) Prescripteur
... performerType Σ 0..1 CodeableConcept Filler role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
... performer Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) Requested Filler
... reasonCode Σ 0..* CodeableConcept Coded Reason for request
Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device.
... reasonReference SΣ 0..* Reference(Observation | Condition - FR Condition Document(0.1.0) | Observation - FR Observation Prevention Document(0.1.0) | Observation - FR Observation ALD Document(0.1.0) | Observation - FR Observation Work Related Accident Document(0.1.0)) Raisons liées à l'utilisation du dispositif médical
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... note 0..* Annotation Notes or comments
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DeviceRequest.status Base required RequestStatus 📍4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📍4.0.1 FHIR Std.
DeviceRequest.priority Base required Request priority 📍4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.
DeviceRequest.parameter.​code Base example Not State Unknown
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​repeat.when Base required EventTiming 📍4.0.1 FHIR Std.
DeviceRequest.occurrence[x]:occurrenceTiming.​code Base preferred TimingAbbreviation 📍4.0.1 FHIR Std.
DeviceRequest.performerType Base example Participant Roles 📍4.0.1 FHIR Std.
DeviceRequest.reasonCode Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest A resource should have narrative for robust management text.`div`.exists()
ele-1 error DeviceRequest.meta, DeviceRequest.implicitRules, DeviceRequest.language, DeviceRequest.text, DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.identifier, DeviceRequest.instantiatesCanonical, DeviceRequest.instantiatesUri, DeviceRequest.basedOn, DeviceRequest.priorRequest, DeviceRequest.groupIdentifier, DeviceRequest.status, DeviceRequest.intent, DeviceRequest.priority, DeviceRequest.code[x], DeviceRequest.code[x]:codeReference, DeviceRequest.parameter, DeviceRequest.parameter.extension, DeviceRequest.parameter.modifierExtension, DeviceRequest.parameter.code, DeviceRequest.parameter.value[x], DeviceRequest.parameter.value[x]:valueQuantity, DeviceRequest.subject, DeviceRequest.encounter, DeviceRequest.occurrence[x], DeviceRequest.occurrence[x]:occurrenceTiming, DeviceRequest.occurrence[x]:occurrenceTiming.extension, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.event, DeviceRequest.occurrence[x]:occurrenceTiming.repeat, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.extension, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.bounds[x], DeviceRequest.occurrence[x]:occurrenceTiming.repeat.count, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.countMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.duration, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.durationMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.durationUnit, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.frequency, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.frequencyMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.period, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.periodMax, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.periodUnit, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.dayOfWeek, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.timeOfDay, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.when, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.offset, DeviceRequest.occurrence[x]:occurrenceTiming.code, DeviceRequest.occurrence[x]:occurrencePeriod, DeviceRequest.authoredOn, DeviceRequest.requester, DeviceRequest.performerType, DeviceRequest.performer, DeviceRequest.reasonCode, DeviceRequest.reasonReference, DeviceRequest.insurance, DeviceRequest.supportingInfo, DeviceRequest.note, DeviceRequest.relevantHistory All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error DeviceRequest.extension, DeviceRequest.extension:notCovered, DeviceRequest.modifierExtension, DeviceRequest.parameter.extension, DeviceRequest.parameter.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.extension, DeviceRequest.occurrence[x]:occurrenceTiming.modifierExtension, DeviceRequest.occurrence[x]:occurrenceTiming.repeat.extension Must have either extensions or value[x], not both extension.exists() != value.exists()
tim-1 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's an offset, there must be a when (and not C, CM, CD, CV) offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10 error DeviceRequest.occurrence[x]:occurrenceTiming.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

 

Other representations of profile: CSV, Excel, Schematron