|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object jcuda.utils.KernelLauncher
public class KernelLauncher
This is a utility class that simplifies the setup and launching
of CUDA kernels using the JCuda Driver API.
Instances of this class may be created using one of the following
methods:
compile(String, String, String...)
will
compile a kernel from a String containing the CUDA source code
create(String, String, String...)
will
create a kernel for a function that is contained in a CUDA
source file
load(String, String)
will load a kernel from
a PTX or CUBIN (CUDA binary) file.
load(InputStream, String)
will load a kernel
from PTX- or CUBIN data which is provided via an InputStream
(useful for packaging PTX- or CUBIN files into JAR archives)call(Object...)
method. The actual
kernel function arguments which are passed to this method
will be set up automatically, and aligned appropriately for
their respective size.
kernel<<<gridDim, blockDim,
sharedMemorySize, stream>>>(...);
setup(dim3, dim3, int, CUstream)
method:
kernelLauncher.setup(gridDim,
blockDim, sharedMemorySize, stream).call(...);
kernelLauncher.setup(gridDim,
blockDim).call(kernel);
kernelLauncher.setGridSize(gridSize);
kernelLauncher.setBlockSize(blockSize);
kernelLauncher.call(...);
| Method Summary | |
|---|---|
void |
call(java.lang.Object... args)
Call the function of this KernelLauncher with the current grid size, block size, shared memory size and stream, and with the given arguments. |
static KernelLauncher |
compile(java.lang.String sourceCode,
java.lang.String functionName,
java.lang.String... nvccArguments)
Create a new KernelLauncher for the function with the given name, that is defined in the given source code. |
static KernelLauncher |
create(java.lang.String cuFileName,
java.lang.String functionName,
boolean forceRebuild,
java.lang.String... nvccArguments)
Create a new KernelLauncher for the function with the given name, that is contained in the .CU CUDA source file with the given name. |
static KernelLauncher |
create(java.lang.String cuFileName,
java.lang.String functionName,
java.lang.String... nvccArguments)
Create a new KernelLauncher for the function with the given name, that is contained in the .CU CUDA source file with the given name. |
KernelLauncher |
forFunction(java.lang.String functionName)
Create a new KernelLauncher which uses the same module as this KernelLauncher, but may be used to execute a different function. |
jcuda.driver.CUmodule |
getModule()
Returns the module that was created from the PTX- or CUBIN file, and which contains the function that should be executed. |
static KernelLauncher |
load(java.io.InputStream moduleInputStream,
java.lang.String functionName)
Create a new KernelLauncher which may be used to execute the specified function which is loaded from the PTX- or CUBIN data that is read from the given input stream. |
static KernelLauncher |
load(java.lang.String moduleFileName,
java.lang.String functionName)
Create a new KernelLauncher which may be used to execute the specified function which is loaded from the PTX- or CUBIN (CUDA binary) file with the given name. |
KernelLauncher |
setBlockSize(int x,
int y,
int z)
Set the block size (number of threads per block) for the function call. |
static void |
setCompilerPath(java.lang.String path)
Set the path to the NVCC compiler. |
static void |
setDeviceNumber(int number)
Set the number (index) of the device which should be used by the KernelLauncher |
KernelLauncher |
setGridSize(int x,
int y)
Set the grid size (number of blocks per grid) for the function call. |
KernelLauncher |
setGridSize(int x,
int y,
int z)
Set the grid size (number of blocks per grid) for the function call. |
KernelLauncher |
setSharedMemSize(int sharedMemSize)
Set the size of the shared memory for the function call. |
KernelLauncher |
setStream(jcuda.driver.CUstream stream)
Set the stream for the function call. |
KernelLauncher |
setup(jcuda.runtime.dim3 gridSize,
jcuda.runtime.dim3 blockSize)
Set the given grid size and block size for this KernelLauncher. |
KernelLauncher |
setup(jcuda.runtime.dim3 gridSize,
jcuda.runtime.dim3 blockSize,
int sharedMemSize)
Set the given grid size and block size and shared memory size for this KernelLauncher. |
KernelLauncher |
setup(jcuda.runtime.dim3 gridSize,
jcuda.runtime.dim3 blockSize,
int sharedMemSize,
jcuda.driver.CUstream stream)
Set the given grid size and block size, shared memory size and stream for this KernelLauncher. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static void setCompilerPath(java.lang.String path)
setCompilerPath("C:/CUDA/bin");
path
- The path to the NVCC compiler.public static void setDeviceNumber(int number)
number
- The number of the device to use
jcuda.CudaException
- If number<0 or number>=deviceCountpublic static KernelLauncher compile(java.lang.String sourceCode, java.lang.String functionName, java.lang.String... nvccArguments)
setCompilerPath(String)
with the respective path. extern "C"
function:
extern "C"
__global__ void functionName(...)
{
...
}
sourceCode
- The source code containing the functionfunctionName
- The name of the function.nvccArguments
- Optional arguments for the NVCC
jcuda.CudaException
- If the creation of the CU- or PTX file
fails, or the PTX may not be loaded, or the specified
function can not be obtained.create(String, String, String...)
,
create(String, String, boolean, String...)
,
load(String, String)
public static KernelLauncher create(java.lang.String cuFileName, java.lang.String functionName, java.lang.String... nvccArguments)
extern "C"
function:
extern "C"
__global__ void functionName(...)
{
...
}
setCompilerPath(String)
with the respective path.
cuFileName
- The name of the source file.functionName
- The name of the function.nvccArguments
- Optional arguments for the NVCC
jcuda.CudaException
- If the creation of the PTX file fails,
or the PTX may not be loaded, or the specified function can
not be obtained.compile(String, String, String...)
,
create(String, String, boolean, String...)
,
load(String, String)
,
load(InputStream, String)
public static KernelLauncher create(java.lang.String cuFileName, java.lang.String functionName, boolean forceRebuild, java.lang.String... nvccArguments)
extern "C"
function:
extern "C"
__global__ void functionName(...)
{
...
}
forceRebuild
flag is 'true', then the
PTX file will be recompiled from the given source file,
even if it already existed or was newer than the source
file, and the already existing PTX file will be
overwritten.setCompilerPath(String)
with the respective path.
cuFileName
- The name of the source file.functionName
- The name of the function.forceRebuild
- Whether the PTX file should be recompiled
and overwritten if it already exists.nvccArguments
- Optional arguments for the NVCC
jcuda.CudaException
- If the creation of the PTX file fails,
or the PTX may not be loaded, or the specified function can
not be obtained.compile(String, String, String...)
,
create(String, String, String...)
,
load(String, String)
,
load(InputStream, String)
public static KernelLauncher load(java.lang.String moduleFileName, java.lang.String functionName)
moduleFileName
- The name of the PTX- or CUBIN filefunctionName
- The name of the function
jcuda.CudaException
- If the PTX- or CUBIN may not be loaded,
or the specified function can not be obtained.compile(String, String, String...)
,
create(String, String, boolean, String...)
,
load(String, String)
,
load(InputStream, String)
public static KernelLauncher load(java.io.InputStream moduleInputStream, java.lang.String functionName)
moduleInputStream
- The stream for the PTX- or CUBIN datafunctionName
- The name of the function
jcuda.CudaException
- If the PTX- or CUBIN may not be loaded,
or the specified function can not be obtained.compile(String, String, String...)
,
create(String, String, boolean, String...)
,
load(String, String)
,
load(InputStream, String)
public KernelLauncher forFunction(java.lang.String functionName)
functionName
- The name of the function
jcuda.CudaException
- If the specified function can not
be obtained from the module of this KernelLauncher.public jcuda.driver.CUmodule getModule()
public KernelLauncher setGridSize(int x, int y)
kernel<<<gridSize, blockSize,
sharedMemSize, stream>>>(...);
x
- The number of blocks per grid in x-directiony
- The number of blocks per grid in y-direction
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setGridSize(int x, int y, int z)
kernel<<<gridSize, blockSize,
sharedMemSize, stream>>>(...);
x
- The number of blocks per grid in x-directiony
- The number of blocks per grid in y-directionz
- The number of blocks per grid in z-direction
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setBlockSize(int x, int y, int z)
kernel<<<gridSize, blockSize,
sharedMemSize, stream>>>(...);
x
- The number of threads per block in x-directiony
- The number of threads per block in y-directionz
- The number of threads per block in z-direction
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setSharedMemSize(int sharedMemSize)
kernel<<<gridSize, blockSize,
sharedMemSize, stream>>>(...);
sharedMemSize
- The size of the shared memory, in bytes
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setStream(jcuda.driver.CUstream stream)
kernel<<<gridSize, blockSize,
sharedMemSize, stream>>>(...);
stream
- The stream for the function call
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setup(jcuda.runtime.dim3 gridSize, jcuda.runtime.dim3 blockSize)
gridSize
- The grid size (number of blocks per grid)blockSize
- The block size (number of threads per block)
call(Object...)
,
setup(dim3, dim3, int)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setup(jcuda.runtime.dim3 gridSize, jcuda.runtime.dim3 blockSize, int sharedMemSize)
gridSize
- The grid size (number of blocks per grid)blockSize
- The block size (number of threads per block)sharedMemSize
- The size of the shared memory
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int, CUstream)
public KernelLauncher setup(jcuda.runtime.dim3 gridSize, jcuda.runtime.dim3 blockSize, int sharedMemSize, jcuda.driver.CUstream stream)
gridSize
- The grid size (number of blocks per grid)blockSize
- The block size (number of threads per block)sharedMemSize
- The size of the shared memorystream
- The stream for the kernel invocation
call(Object...)
,
setup(dim3, dim3)
,
setup(dim3, dim3, int)
public void call(java.lang.Object... args)
Pointer
, or of a primitive type except boolean.
Otherwise, a CudaException will be thrown.
args
- The arguments for the function call
jcuda.CudaException
- if an argument with an invalid type
was given, or one of the internal functions for setting
up and executing the kernel failed.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


U1.W1 Git Bloggin' Post
My first impressions of git, GitHub, and building a website!
January 16, 2015
Wow! I've built a website already in my first week of DBC. That's super cool. I once tried to follow a tutorial on building a Ruby on Rails based website, and although I learned a lot from the experience, it was much more difficult without all of the Dev Bootcamp material.
I can already imagine how git will be extremely useful in future projects. Git allows developers to save their progress at a moment in time--video game style. This is called version control. If developers later find that they have created a bug or made any kind of mistake, they can go "back in time." By simply using the "git log" command in UNIX (UNIX is the language that Terminal uses in Mac. Terminal allows you to control your computer through typing in commands, rather than using the Graphical User Interface that most people use.), one can see all commits made in the past, and choose to go back to any of them.
GitHub is simply a website that allows programmers to push their code, and all of the git saved changes that go with it, online. This way, not only can they access it from another computer, but other programmers can access the code as well. In group projects, this becomes extremely useful, because then multiple programmers can make changes to a project, all from different computers. Typically, programmers will make "pull requests" to an administrator. That way, all changes can be looked at by someone in charge before the change is made.
There's a lot of git I still don't completely understand, but I'm looking forwarding to working at it more!


Your browser doesn't support canvas element.
W: z-
S: z+
A: x+
D: x-
E: y+
Q: y-
↑: rotate x-
↓: rotate x+
←: rotate y+
→: rotate y-


Rowan IoT: Rowan Rooms
Welcome to the homepage for the Fall 2018 Rowan IoT
Rowan Rooms
project.
Room Information
Last updated
Your browser does not support JavaScript. Please update your browser or use a different one.


{% extends 'base_email.html' %} {% block content %}
This message confirms your enrollment in {{ register.program.name }} in the following timeslots:
{% endblock %} {% block footer %}If you no longer want to be enrolled, go to the Activity page to cancel your enrollment.
{% endblock %}


The Hanging Gardens of Babylon were supposedly built by Nebuchadnezzar around 600 B.C. to please his queen, Amuhia. They are also associated with the mythical Assyrian queen, Semiramis. Archeologists surmise that the gardens were laid out atop a vaulted building, with provisions for raising water. The terraces were said to rise from 75 to 300 ft.


Tasks
An interface that encapsulates asynchronous tasks, that can be started,
then take some time and finally succeed or fail.
Applications can use this interface as a base class for their tasks.
File information
Classes
ITask
class ITask {
protected:
class UTask * user;
public:
ITask();
virtual ~ITask() {}
virtual void Start() {};
virtual void Start(class UTask * user) = 0;
virtual void Stop() { stopped = true; };
virtual void Complete() { if (user) user->TaskComplete(this); };
virtual void Failed() { if (user) user->TaskFailed(this); };
virtual void Progress(dword progress) { if (user) user->TaskProgress(this, progress); };
virtual void Finished() {};
bool error;
bool stopped;
};
The ITask class is a base class for tasks which shall do asynchronous operations and callback later a result on a UTask user.
Public functions
ITask()
The constructor of the class.
Parameters
virtual void Start()
Start function of a task, not to be used.
Parameters
virtual void Start(class UTask * user)
Start function of a task. Override this function in your parent class.
Parameters
| class UTask * user | The UTask instance which will receive the callbacks. |
virtual void Stop()
Stop function of a task. The default implemenation just sets stopped to true.
You can override Stop and implement a logic to interrupt a task.
Parameters
virtual void Complete()
This function can be used as a shortcut instead of calling user->TaskComplete(this).
Parameters
virtual void Failed()
This function can be used as a shortcut instead of calling user->TaskFailed(this).
Parameters
virtual void Progress(dword progress)
This function can be used as a shortcut instead of calling user->TaskProgress(this, progress).
Parameters
| dword progress | A dword to differentiate between different progress states. |
virtual void Finished()
This function can be overwritten to implement a Finished function which e.g. handles success and failed together.
Parameters
Public members
| bool error | A boolean which can be set to true to indicate an error. |
| bool stopped | A boolean which can be set to true to indicate that the task has been stopped. |
UTask
class UTask {
public:
virtual ~UTask() {};
virtual void TaskComplete(class ITask * const task) = 0;
virtual void TaskFailed(class ITask * const task) = 0;
virtual void TaskProgress(class ITask * const task, dword progress = 0) {};
};
The UTask class is a base class for classes which handle the callbacks from ITask tasks.
Public virtual functions
virtual void TaskComplete(class ITask * const task)
Callback that is called if the task is completed successfully.
If the implementation needs to return data as a result of the task,
this is outside the scope of the ITask interface.
Instead implementations should provid getter functions for result data.
Parameters
| class ITask * const task | The ITask instance of the task itself. |
virtual void TaskFailed(class ITask * const task)
Callback that is called if the task failed.
Parameters
| class ITask * const task | The ITask instance of the task itself. |
virtual void TaskProgress(class ITask * const task, dword progress)
Callback that is called if there was some progress to the task.
Parameters
| class ITask * const task | The ITask instance of the task itself. |
| dword progress | The nummeric value 'progress' can be used to indicate additional information the type of the progress. |
UTaskTemplate
template class UTaskTemplate : public UTask {
public:
UTaskTemplate(B * base,
void (B::* taskComplete)(T * task),
void (B::* taskFailed)(T * task) = 0,
void (B::* taskProgress)(T * task, dword progress) = 0);
};
Just using UTask is fine for classes which handle one task, but if you have a class which handles many different tasks, you would need to dynamic cast inside TaskComplete/TaskFailed/TaskProgress.
UTaskTemplate helps to avoid this by handing a member which can be added to the class which used to be derived from UTask. Instead of handing this to the ITask::Start function, you hand a reference to the member, which itself has specific callback functions.
Public functions
UTaskTemplate(B * base,
void (B::* taskComplete)(T * task),
void (B::* taskFailed)(T * task) = 0,
void (B::* taskProgress)(T * task, dword progress) = 0)
The constructor of the class.
Parameters
| B * base | The class which has the member of UTaskTemplate. |
| void (B::* taskComplete)(T * task) | The specific TaskComplete function of the calling class. |
| void (B::* taskFailed)(T * task) | The specific TaskFailed function of the calling class. |
| void (B::* taskProgress)(T * task) | The specific TaskProgress function of the calling class. |
Remarks
The error property of the ITask instance is automatically set to true if TaskFailed is called.
Examples
Task
// a class which has UTask as base class and calls an ITask instance
class TaskHandler : public UTask {
class TaskExecutor * task;
public:
TaskHandler();
void TaskComplete(class ITask * task) override;
void TaskFailed(class ITask * task) override;
void TaskProgress(class ITask * task, dword progress = 0) override;
}
// a class which has ITask as base class which can be used by class TaskHandler
class TaskExecutor : public ITask {
public:
void Start(class UTask * user) override; // do some async processing and call TaskFailed/TaskComplete later (async!)
void Stop() override;
}
// implementation
TaskHandler::TaskHandler() {
this->task = new class TaskExecutor();
this->task->Start(this);
}
void TaskHandler::TaskComplete(class ITask * task) {
debug->printf("done");
this->task = nullptr;
delete task;
}
void TaskHandler::TaskFailed(class ITask * task) {
debug->printf("failed");
this->task = nullptr;
delete task;
}
void TaskHandler::TaskProgress(class ITask * task, dword progress = 0) {
debug->printf("progress");
}
UTaskTemplate
// instead of having a base class UTask, we have a member from UTaskTemplate
class TaskHandler {
UTaskTemplate taskExecutor;
class ITask * task;
void TaskExecutorFinished(class TaskExecutor * task);
void TaskExecutorFailed(class TaskExecutor * task);
void TaskExecutorProgress(class TaskExecutor * task, dword progress = 0);
}
// implementation
TaskHandler::TaskHandler() :
// hand all the callback functions of our class to the taskExecutor member
taskExecutor(this, &TaskHandler::TaskExecutorFinished, &TaskHandler::TaskExecutorFailed, &TaskHandler::TaskExecutorProgress)
{
this->task = new class TaskExecutor();
this->task->Start(&taskExecutor); // hand a reference to taskExecutor instead of this
}
void TaskHandler::TaskExecutorFinished(class TaskExecutor * task) {
debug->printf("done");
this->task = nullptr;
delete task;
}
void TaskHandler::TaskExecutorFailed(class TaskExecutor * task) {
debug->printf("failed");
this->task = nullptr;
delete task;
}
void TaskHandler::TaskExecutorProgress(class TaskExecutor * task, dword progress = 0) {
debug->printf("progress");
}


I built and emonGLCD this weekend and downloaded the solar sketch. Being from the other side of the pond I wanted to see the temperature in degrees F so I made a few change to the code to allow selecting C or F and voila I had units I can understand. Then I realized that I needed to add L1 and L2 of my power together and divide by 2 on my incoming feeds to get the right consumption. So I added a constant for choosing a US setup. Then I decided that I like to see watts not KW when the readings are over 1000 watts, so I made a change to choose that. Then i thought, you know i need to be able to turn the backlight and leds on and off manually so that got added.
Needless to say.....this is addictive. Three days into it and I have a whole host of changes I have made.
Now to my question...where to I push the files if I want to contribute to the project. I have never contributed to open source before so I am not sure how to go about it. If I push back to git will I overwrite what is already there?
Ken
Re: How to post new code
Most people tend to attach the file, or a zipped set of files, to a post in which they explain why it is changed/better.
Re: How to post new code
That works! Here are my changes to the emonGLCD solar sketch.
The changes include....
Ken
Re: How to post new code
The workflow on Github (and more generally) is the following.
Assuming you already used git to pull the code.
- Log into Github (yes, this means create an account...)
- Fork the project in Github (you can't miss the Fork button)
- Clone you fork (easy but you'll need to more your modifications to this new fork) or (more elegant but a bit more tricky) modify the config of your local clone to point to your new Github clone (http://blog.csanchez.org/2011/01/06/github-forking-after-cloning/).
- Commit your modifs in a new development branch on your local clone.
- Push the modifs from your local clone to your Github clone (all branches, or at least the dev branch your created).
- Log into Github Web interface, pick the dev branch and click "Pull request'. Add an explanation message.
The people following the project will be notified.
This is a bit more of a pain for you at first, but it's a time saver when you get used to it, and it allows the devs to integrate your work in one click. Plus the gain in terms of traceability.


MedicationDispenseRequestedStatementProfile
{
"resourceType" : "StructureDefinition",
"id" : "cimi-medication-MedicationDispenseRequestedStatement",
"text" : {
"status" : "generated",
"div" : "

SHR MedicationDispenseRequestedStatement Profile

An order for a medication to be dispensed and instructions for use.

SHR Mapping Summary

cimi.medication.MedicationDispenseRequestedStatement maps to http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest:
MedicationDispenseTopic.Medication maps to medication[x]
MedicationDispenseTopic.NumberOfRefillsAllowed maps to dispenseRequest.numberOfRepeatsAllowed
MedicationDispenseTopic.QuantityPerDispense maps to dispenseRequest.quantity
MedicationDispenseTopic.SupplyDuration maps to dispenseRequest.expectedSupplyDuration
constrain dosageInstruction to 0..1
MedicationDispenseTopic.Dosage maps to dosageInstruction
RequestedContext.Reason maps to reasonCode
RequestedContext.Status maps to status
RequestedContext.ExpectedPerformanceTime maps to dispenseRequest.validityPeriod
RequestedContext.PriorityRank maps to priority
RequestedContext.PerformerInstructions maps to note.text
RequestedContext.ExpectedPerformer.Organization maps to dispenseRequest.performer
constrain note to 0..1

"
},
"url" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-medication-MedicationDispenseRequestedStatement",
"identifier" : [
{
"system" : "http://standardhealthrecord.org",
"value" : "cimi.medication.MedicationDispenseRequestedStatement"
}
],
"version" : "0.1.0",
"name" : "MedicationDispenseRequestedStatementProfile",
"title" : "SHR MedicationDispenseRequestedStatement Profile",
"status" : "draft",
"date" : "2018-08-22T00:00:00-04:00",
"publisher" : "The MITRE Corporation: Standard Health Record Collaborative",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://standardhealthrecord.org"
}
]
}
],
"description" : "An order for a medication to be dispensed and instructions for use.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"fhirVersion" : "3.0.1",
"mapping" : [
{
"identity" : "argonaut-dq-dstu2",
"uri" : "http://unknown.org/Argonaut%20DQ%20DSTU2",
"name" : "Argonaut DQ DSTU2"
},
{
"identity" : "workflow",
"uri" : "http://hl7.org/fhir/workflow",
"name" : "Workflow Mapping"
},
{
"identity" : "script10.6",
"uri" : "http://ncpdp.org/SCRIPT10_6",
"name" : "Mapping to NCPDP SCRIPT 10.6"
},
{
"identity" : "rim",
"uri" : "http://hl7.org/v3",
"name" : "RIM Mapping"
},
{
"identity" : "w5",
"uri" : "http://hl7.org/fhir/w5",
"name" : "W5 Mapping"
},
{
"identity" : "v2",
"uri" : "http://hl7.org/v2",
"name" : "HL7 v2 Mapping"
}
],
"kind" : "resource",
"abstract" : false,
"type" : "MedicationRequest",
"baseDefinition" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest",
"derivation" : "constraint",
"snapshot" : {
"element" : [
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement",
"path" : "MedicationRequest",
"short" : "SHR MedicationDispenseRequestedStatement Profile",
"definition" : "An order for a medication to be dispensed and instructions for use.",
"alias" : [
"Prescription",
"Order"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest",
"min" : 0,
"max" : "*"
},
"constraint" : [
{
"key" : "dom-2",
"severity" : "error",
"human" : "If the resource is contained in another resource, it SHALL NOT contain nested Resources",
"expression" : "contained.contained.empty()",
"xpath" : "not(parent::f:contained and f:contained)",
"source" : "DomainResource"
},
{
"key" : "dom-1",
"severity" : "error",
"human" : "If the resource is contained in another resource, it SHALL NOT contain any narrative",
"expression" : "contained.text.empty()",
"xpath" : "not(parent::f:contained and f:text)",
"source" : "DomainResource"
},
{
"key" : "dom-4",
"severity" : "error",
"human" : "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated",
"expression" : "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()",
"xpath" : "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))",
"source" : "DomainResource"
},
{
"key" : "dom-3",
"severity" : "error",
"human" : "If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource",
"expression" : "contained.where(('#'+id in %resource.descendants().reference).not()).empty()",
"xpath" : "not(exists(for $id in f:contained/*/@id return $id[not(ancestor::f:contained/parent::*/descendant::f:reference/@value=concat('#', $id))]))",
"source" : "DomainResource"
}
],
"mustSupport" : false,
"mapping" : [
{
"identity" : "rim",
"map" : "Entity. Role, or Act"
},
{
"identity" : "workflow",
"map" : "..Request"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx"
},
{
"identity" : "rim",
"map" : "CombinedMedicationRequest"
},
{
"identity" : "w5",
"map" : "clinical.medication"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "MedicationOrder"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.id",
"path" : "MedicationRequest.id",
"short" : "Logical id of this artifact",
"definition" : "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.",
"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.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Resource.id",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "id"
}
],
"isSummary" : true
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.meta",
"path" : "MedicationRequest.meta",
"short" : "Metadata about the resource",
"definition" : "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Resource.meta",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Meta"
}
],
"isSummary" : true
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.implicitRules",
"path" : "MedicationRequest.implicitRules",
"short" : "A set of rules under which this content was created",
"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.",
"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.
This element is labelled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Resource.implicitRules",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "uri"
}
],
"isModifier" : true,
"isSummary" : true
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.language",
"path" : "MedicationRequest.language",
"short" : "Language of the resource content",
"definition" : "The base language in which the resource is written.",
"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).",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Resource.language",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "code"
}
],
"binding" : {
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet",
"valueReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/all-languages"
}
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString" : "Language"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
"valueBoolean" : true
}
],
"strength" : "extensible",
"description" : "A human language.",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/languages"
}
}
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.text",
"path" : "MedicationRequest.text",
"short" : "Text summary of the resource, for human interpretation",
"definition" : "A human-readable narrative that contains a summary of the resource, and may 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.",
"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 in formation is added later.",
"alias" : [
"narrative",
"html",
"xhtml",
"display"
],
"min" : 0,
"max" : "1",
"base" : {
"path" : "DomainResource.text",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Narrative"
}
],
"condition" : [
"dom-1"
],
"mapping" : [
{
"identity" : "rim",
"map" : "Act.text?"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.contained",
"path" : "MedicationRequest.contained",
"short" : "Contained, inline Resources",
"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.",
"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.",
"alias" : [
"inline resources",
"anonymous resources",
"contained resources"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "DomainResource.contained",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Resource"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "N/A"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension",
"path" : "MedicationRequest.extension",
"slicing" : {
"id" : "1",
"discriminator" : [
{
"type" : "value",
"path" : "url"
}
],
"ordered" : false,
"rules" : "open"
},
"short" : "Additional Content defined by implementations",
"definition" : "May be used to represent additional information that is not part of the basic definition of the resource. In order 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.",
"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.",
"alias" : [
"extensions",
"user content"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "DomainResource.extension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "N/A"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:subjectofinformation",
"path" : "MedicationRequest.extension",
"sliceName" : "subjectofinformation",
"definition" : "The person or thing that this entry relates to, usually the Person of Record (see Entry). However, not all entries have health information specifically about the patient, but in different contexts, could refer to a fetus, family member (living or dead), device, location, organization, behavior, finding, condition, wound, or intervention.
CIMI alignment: SubjectOfInformation is not a Participation -- unlike CIMI. There's no action to participate in. Participant has extra unnecessary attributes, such as 'onBehalfOf'.",
"min" : 1,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-SubjectOfInformation-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:sourceofinformation",
"path" : "MedicationRequest.extension",
"sliceName" : "sourceofinformation",
"definition" : "The person or entity that provided the information in the entry, e.g. the subject (patient), medical professional, family member, device or software program, as distinct from who recorded the entry.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-SourceOfInformation-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:annotation",
"path" : "MedicationRequest.extension",
"sliceName" : "annotation",
"definition" : "An added or follow-up note, often after the fact, that contains metadata about who made the statement and when.",
"min" : 0,
"max" : "*",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-element-Annotation-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:recordstatus",
"path" : "MedicationRequest.extension",
"sliceName" : "recordstatus",
"definition" : "Concept indicating the state of this record, e.g., 'entered in error'.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-RecordStatus-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:recorded",
"path" : "MedicationRequest.extension",
"sliceName" : "recorded",
"definition" : "The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Recorded-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:signed",
"path" : "MedicationRequest.extension",
"sliceName" : "signed",
"definition" : "Provenance information specific to the signing of the clinical statement.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Signed-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:cosigned",
"path" : "MedicationRequest.extension",
"sliceName" : "cosigned",
"definition" : "Provenance information specific to the cosigning of the clinical statement.",
"min" : 0,
"max" : "*",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Cosigned-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:verified",
"path" : "MedicationRequest.extension",
"sliceName" : "verified",
"definition" : "Provenance information specific to the verification process associated with this statement (e.g., verifier, when verified, etc.)",
"min" : 0,
"max" : "*",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Verified-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.modifierExtension",
"path" : "MedicationRequest.modifierExtension",
"short" : "Extensions that cannot be ignored",
"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. Usually modifier elements provide negation or qualification. In order 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.",
"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.",
"alias" : [
"extensions",
"user content"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "DomainResource.modifierExtension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"isModifier" : true,
"mapping" : [
{
"identity" : "rim",
"map" : "N/A"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.identifier",
"path" : "MedicationRequest.identifier",
"short" : "External ids for this request",
"definition" : "This records identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. For example a re-imbursement system might issue its own id for each prescription that is created. This is particularly important where FHIR only provides part of an entire workflow process where records must be tracked through an entire system.",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.identifier",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Identifier"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…identifer"
},
{
"identity" : "script10.6",
"map" : "Message/Header/PrescriberOrderNumber"
},
{
"identity" : "v2",
"map" : "ORC-2-Placer Order Number / ORC-3-Filler Order Number"
},
{
"identity" : "rim",
"map" : ".id"
},
{
"identity" : "w5",
"map" : "id"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.definition",
"path" : "MedicationRequest.definition",
"short" : "Protocol or definition",
"definition" : "Protocol or definition followed by this request.",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.definition",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/ActivityDefinition"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/PlanDefinition"
}
],
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "…definition"
},
{
"identity" : "rim",
"map" : ".outboundRelationship[typeCode=DEFN].target[classCode=unspecified]"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.basedOn",
"path" : "MedicationRequest.basedOn",
"short" : "What request fulfills",
"definition" : "A plan or request that is fulfilled in whole or in part by this medication request.",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.basedOn",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/CarePlan"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/MedicationRequest"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/ProcedureRequest"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/ReferralRequest"
}
],
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "…basedOn"
},
{
"identity" : "rim",
"map" : ".outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS, moodCode=RQO orPLAN or PRP]"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.groupIdentifier",
"path" : "MedicationRequest.groupIdentifier",
"short" : "Composite request this is part of",
"definition" : "A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition or prescription.",
"requirements" : "Requests are linked either by a "basedOn" relationship (i.e. one request is fulfilling another) or by having a common requisition. Requests that are part of the same requisition are generally treated independently from the perspective of changing their state or maintaining them after initial creation.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.groupIdentifier",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Identifier"
}
],
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "…groupIdentifier"
},
{
"identity" : "rim",
"map" : ".outboundRelationship(typeCode=COMP].target[classCode=SBADM, moodCode=INT].id"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.status",
"path" : "MedicationRequest.status",
"short" : "active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown",
"definition" : "A code specifying the current state of the order. Generally this will be active or completed state.",
"comment" : "This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.status",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "code"
}
],
"mustSupport" : true,
"isModifier" : true,
"isSummary" : true,
"binding" : {
"strength" : "required",
"description" : "A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/medication-request-status"
}
},
"mapping" : [
{
"identity" : "workflow",
"map" : "…status"
},
{
"identity" : "script10.6",
"map" : "no mapping"
},
{
"identity" : "rim",
"map" : ".statusCode"
},
{
"identity" : "w5",
"map" : "status"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "MedicationOrder.status"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.intent",
"path" : "MedicationRequest.intent",
"short" : "proposal | plan | order | instance-order",
"definition" : "Whether the request is a proposal, plan, or an original order.",
"comment" : "It is expected that the type of requester will be restricted for different stages of a MedicationRequest. For example, Proposals can be created by a patient, relatedPerson, Practitioner or Device. Plans can be created by Practitioners, Patients, RelatedPersons and Devices. Original orders can be created by a Practitioner only.
An instance-order is an instantiation of a request or order and may be used to populate Medication Administration Record.
This element is labeled as a modifier because the intent alters when and how the resource is actually applicable.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.intent",
"min" : 1,
"max" : "1"
},
"type" : [
{
"code" : "code"
}
],
"isModifier" : true,
"isSummary" : true,
"binding" : {
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString" : "MedicationRequestIntent"
}
],
"strength" : "required",
"description" : "The kind of medication order",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/medication-request-intent"
}
},
"mapping" : [
{
"identity" : "workflow",
"map" : "…intent"
},
{
"identity" : "rim",
"map" : ".moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)"
},
{
"identity" : "w5",
"map" : "class"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.category",
"path" : "MedicationRequest.category",
"short" : "Type of medication usage",
"definition" : "Indicates the type of medication order and where the medication is expected to be consumed or administered.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.category",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "CodeableConcept"
}
],
"binding" : {
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString" : "MedicationRequestCategory"
}
],
"strength" : "preferred",
"description" : "A coded concept identifying where the medication ordered is expected to be consumed or administered",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/medication-request-category"
}
},
"mapping" : [
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/Directions
or
Message/Body/NewRx/MedicationPrescribed/StructuredSIG"
},
{
"identity" : "rim",
"map" : ".inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication usage"].value"
},
{
"identity" : "w5",
"map" : "class"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.priority",
"path" : "MedicationRequest.priority",
"short" : "routine | urgent | stat | asap",
"definition" : "Indicates how quickly the Medication Request should be addressed with respect to other requests.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.priority",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "code"
}
],
"isSummary" : true,
"binding" : {
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString" : "MedicationRequestPriority"
}
],
"strength" : "required",
"description" : "Identifies the level of importance to be assigned to actioning the request",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/medication-request-priority"
}
},
"mapping" : [
{
"identity" : "workflow",
"map" : "…priority"
},
{
"identity" : "rim",
"map" : ".priorityCode"
},
{
"identity" : "w5",
"map" : "grade"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.medicationReference",
"path" : "MedicationRequest.medicationReference",
"short" : "Medication to be taken",
"definition" : "Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications.",
"comment" : "If only a code is specified, then it needs to be a code for a specific product. If more information is required, then the use of the medication resource is recommended. For example, if you require form or lot number or if the medication is compounded or extemporaneously prepared, then you must reference the Medication resource. .",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.medication[x]",
"min" : 1,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-entity-Medication"
}
],
"mustSupport" : true,
"isSummary" : true,
"binding" : {
"strength" : "extensible",
"description" : "Prescribable medications",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/us/core/ValueSet/us-core-medication-codes"
}
},
"mapping" : [
{
"identity" : "workflow",
"map" : "…code"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed
Medication.code.coding.code = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCode
Medication.code.coding.system = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCodeQualifier
Medication.code.coding.display = Message/Body/NewRx/MedicationPrescribed/DrugDescription"
},
{
"identity" : "v2",
"map" : "RXE-2-Give Code / RXO-1-Requested Give Code / RXC-2-Component Code"
},
{
"identity" : "rim",
"map" : "consumable.administrableMedication"
},
{
"identity" : "w5",
"map" : "what"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "MedicationOrder.medication[x]"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.subject",
"path" : "MedicationRequest.subject",
"short" : "Who or group medication request is for",
"definition" : "A link to a resource representing the person or set of individuals to whom the medication will be given.",
"comment" : "The subject on a medication request is mandatory. For the secondary use case where the actual subject is not provided, there still must be an anonymized subject specified.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.subject",
"min" : 1,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
}
],
"mustSupport" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "…subject"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/Patient
(need detail to link to specific patient … Patient.Identification in SCRIPT)"
},
{
"identity" : "v2",
"map" : "PID-3-Patient ID List"
},
{
"identity" : "rim",
"map" : ".participation[typeCode=AUT].role"
},
{
"identity" : "w5",
"map" : "who.focus"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "MedicationOrder.patient"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.context",
"path" : "MedicationRequest.context",
"short" : "Created during encounter/admission/stay",
"definition" : "A link to an encounter, or episode of care, that identifies the particular occurrence or set occurrences of contact between patient and health care provider.",
"comment" : "SubstanceAdministration->component->EncounterEvent.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.context",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Encounter"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…context"
},
{
"identity" : "script10.6",
"map" : "no mapping"
},
{
"identity" : "v2",
"map" : "PV1-19-Visit Number"
},
{
"identity" : "rim",
"map" : ".inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code="type of encounter or episode"]"
},
{
"identity" : "w5",
"map" : "context"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.supportingInformation",
"path" : "MedicationRequest.supportingInformation",
"short" : "Information to support ordering of the medication",
"definition" : "Include additional information (for example, patient height and weight) that supports the ordering of the medication.",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.supportingInformation",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Resource"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : ".outboundRelationship[typeCode=PERT].target[A_SupportingClinicalStatement CMET minimal with many different choices of classCodes(ORG, ENC, PROC, SPLY, SBADM, OBS) and each of the act class codes draws from one or more of the following moodCodes (EVN, DEF, INT PRMS, RQO, PRP, APT, ARQ, GOL)]"
},
{
"identity" : "w5",
"map" : "context"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.authoredOn",
"path" : "MedicationRequest.authoredOn",
"short" : "When request was initially authored",
"definition" : "The date (and perhaps time) when the prescription was initially written or authored on.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.authoredOn",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "dateTime"
}
],
"mustSupport" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "…authoredOn"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/WrittenDate"
},
{
"identity" : "v2",
"map" : "RXE-32-Original Order Date/Time / ORC-9-Date/Time of Transaction"
},
{
"identity" : "rim",
"map" : "author.time"
},
{
"identity" : "w5",
"map" : "when.recorded"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "MedicationOrder.dateWritten"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.requester",
"path" : "MedicationRequest.requester",
"short" : "Who/What requested the Request",
"definition" : "The individual, organization or device that initiated the request and has responsibility for its activation.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.requester",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "BackboneElement"
}
],
"constraint" : [
{
"key" : "ele-1",
"severity" : "error",
"human" : "All FHIR elements must have a @value or children",
"expression" : "hasValue() | (children().count() > id.count())",
"xpath" : "@value|f:*|h:div",
"source" : "Element"
},
{
"key" : "mps-1",
"severity" : "error",
"human" : "onBehalfOf can only be specified if agent is practitioner or device",
"expression" : "(agent.resolve().empty()) or (agent.resolve() is Device) or (agent.resolve() is Practitioner) or onBehalfOf.exists().not()",
"xpath" : "contains(f:agent/f:reference/@value, '/Practitioner/') or contains(f:agent/f:reference/@value, '/Device/') or not(exists(f:onBehalfOf))",
"source" : "MedicationRequest.requester"
}
],
"mustSupport" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "…requester"
},
{
"identity" : "rim",
"map" : ".participation[typeCode=AUT].role"
},
{
"identity" : "w5",
"map" : "who.author"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "NA (new element in STU3)"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.requester.id",
"path" : "MedicationRequest.requester.id",
"representation" : [
"xmlAttr"
],
"short" : "xml:id (or equivalent in JSON)",
"definition" : "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Element.id",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "string"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.requester.extension",
"path" : "MedicationRequest.requester.extension",
"short" : "Additional Content defined by implementations",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element. In order 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.",
"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.",
"alias" : [
"extensions",
"user content"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "Element.extension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.requester.modifierExtension",
"path" : "MedicationRequest.requester.modifierExtension",
"short" : "Extensions that cannot be ignored",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order 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.",
"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.",
"alias" : [
"extensions",
"user content",
"modifiers"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "BackboneElement.modifierExtension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"isModifier" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "rim",
"map" : "N/A"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.requester.agent",
"path" : "MedicationRequest.requester.agent",
"short" : "Who ordered the initial medication(s)",
"definition" : "The healthcare professional responsible for authorizing the initial prescription.",
"comment" : "It is expected that the type of requester will be restricted for different stages of a MedicationRequest. For example, Proposals can be created by a patient, relatedPerson, Practitioner or Device. Plans can be created by Practitioners, Patients, RelatedPersons and Devices. Original orders can be created by a Practitioner only.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.requester.agent",
"min" : 1,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"
}
],
"mustSupport" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "….agent"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/Prescriber
(need detail to link to specific prescriber … Prescriber.Identification in SCRIPT)"
},
{
"identity" : "v2",
"map" : "RXE-13-Ordering Provider's DEA Number / RXO-14-Ordering Provider's DEA Number / RXE-14-Pharmacist/Treatment Supplier's Verifier ID / RXO-15-Pharmacist/Treatment Supplier's Verifier ID / ORC-12-Ordering Provider / PRT-5-Participation Person: PRT-4-Participation='OP' (all but last deprecated)"
},
{
"identity" : "rim",
"map" : ".player"
},
{
"identity" : "argonaut-dq-dstu2",
"map" : "MedicationOrder.prescriber"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.requester.onBehalfOf",
"path" : "MedicationRequest.requester.onBehalfOf",
"short" : "Organization agent is acting for",
"definition" : "The organization the device or practitioner was acting on behalf of.",
"requirements" : "Practitioners and Devices can be associated with multiple organizations. This element indicates which organization they were acting on behalf of when authoring the request.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.requester.onBehalfOf",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Organization"
}
],
"condition" : [
"mps-1"
],
"isSummary" : true,
"mapping" : [
{
"identity" : "workflow",
"map" : "….onBehalfOf"
},
{
"identity" : "rim",
"map" : ".scoper"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.recorder",
"path" : "MedicationRequest.recorder",
"short" : "Person who entered the request",
"definition" : "The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.recorder",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Practitioner"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : ".participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType)"
},
{
"identity" : "w5",
"map" : "who"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.reasonCode",
"path" : "MedicationRequest.reasonCode",
"short" : "Reason or indication for writing the prescription",
"definition" : "The reason or the indication for ordering the medication.",
"comment" : "This could be a diagnosis code. If a full condition record exists or additional detail is needed, use reasonReference.",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.reasonCode",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "CodeableConcept",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-CodeableConcept"
}
],
"binding" : {
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString" : "MedicationRequestReason"
}
],
"strength" : "example",
"description" : "A coded concept indicating why the medication was ordered.",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/condition-code"
}
},
"mapping" : [
{
"identity" : "workflow",
"map" : "…reasonCode"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value"
},
{
"identity" : "v2",
"map" : "ORC-16-Order Control Code Reason /RXE-27-Give Indication/RXO-20-Indication / RXD-21-Indication / RXG-22-Indication / RXA-19-Indication"
},
{
"identity" : "rim",
"map" : "reason.observation.reasonCode"
},
{
"identity" : "w5",
"map" : "why"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.reasonReference",
"path" : "MedicationRequest.reasonReference",
"short" : "Condition or Observation that supports why the prescription is being written",
"definition" : "Condition or observation that supports why the medication was ordered.",
"comment" : "This is a reference to a condition or observation that is the reason for the medication order. If only a code exists, use reasonCode.",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.reasonReference",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Condition"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Observation"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…reasonReference"
},
{
"identity" : "script10.6",
"map" : "no mapping"
},
{
"identity" : "rim",
"map" : "reason.observation[code=ASSERTION].value"
},
{
"identity" : "w5",
"map" : "why"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note",
"path" : "MedicationRequest.note",
"short" : "Information about the prescription",
"definition" : "Extra information about the prescription that could not be conveyed by the other attributes.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.note",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Annotation"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…note"
},
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/Note"
},
{
"identity" : "rim",
"map" : ".inboundRelationship[typeCode=SUBJ]/source[classCode=OBS,moodCode=EVN,code="annotation"].value"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note.id",
"path" : "MedicationRequest.note.id",
"representation" : [
"xmlAttr"
],
"short" : "xml:id (or equivalent in JSON)",
"definition" : "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Element.id",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "string"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note.extension",
"path" : "MedicationRequest.note.extension",
"slicing" : {
"discriminator" : [
{
"type" : "value",
"path" : "url"
}
],
"description" : "Extensions are always sliced by (at least) url",
"rules" : "open"
},
"short" : "Additional Content defined by implementations",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element. In order 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.",
"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.",
"alias" : [
"extensions",
"user content"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "Element.extension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note.author[x]",
"path" : "MedicationRequest.note.author[x]",
"short" : "Individual responsible for the annotation",
"definition" : "The individual responsible for making the annotation.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Practitioner"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Patient"
},
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/RelatedPerson"
},
{
"code" : "string"
}
],
"isSummary" : true,
"mapping" : [
{
"identity" : "v2",
"map" : "N/A"
},
{
"identity" : "rim",
"map" : "Act.participant[typeCode=AUT].role"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note.time",
"path" : "MedicationRequest.note.time",
"short" : "When the annotation was made",
"definition" : "Indicates when this particular annotation was made.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "dateTime"
}
],
"isSummary" : true,
"mapping" : [
{
"identity" : "v2",
"map" : "N/A"
},
{
"identity" : "rim",
"map" : "Act.effectiveTime"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note.text",
"path" : "MedicationRequest.note.text",
"short" : "The annotation - text content",
"definition" : "The text of the annotation.",
"min" : 1,
"max" : "1",
"type" : [
{
"code" : "string"
}
],
"mapping" : [
{
"identity" : "v2",
"map" : "N/A"
},
{
"identity" : "rim",
"map" : "Act.text"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dosageInstruction",
"path" : "MedicationRequest.dosageInstruction",
"short" : "How the medication should be taken",
"definition" : "Indicates how the medication is to be used by the patient.",
"comment" : "There are examples where a medication request may include the option of an oral dose or an Intravenous or Intramuscular dose. For example, "Ondansetron 8mg orally or IV twice a day as needed for nausea" or "Compazine® (prochlorperazine) 5-10mg PO or 25mg PR bid prn nausea or vomiting". In these cases, two medication requests would be created that could be grouped together. The decision on which dose and route of administration to use is based on the patient's condition at the time the dose is needed.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dosageInstruction",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Dosage",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-medication-Dosage"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…occurrence[x]"
},
{
"identity" : "rim",
"map" : "see dosageInstruction mapping"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest",
"path" : "MedicationRequest.dispenseRequest",
"short" : "Medication supply authorization",
"definition" : "Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dispenseRequest",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "BackboneElement"
}
],
"constraint" : [
{
"key" : "ele-1",
"severity" : "error",
"human" : "All FHIR elements must have a @value or children",
"expression" : "hasValue() | (children().count() > id.count())",
"xpath" : "@value|f:*|h:div",
"source" : "Element"
}
],
"mapping" : [
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/ExpirationDate"
},
{
"identity" : "rim",
"map" : "component.supplyEvent"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.id",
"path" : "MedicationRequest.dispenseRequest.id",
"representation" : [
"xmlAttr"
],
"short" : "xml:id (or equivalent in JSON)",
"definition" : "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Element.id",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "string"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.extension",
"path" : "MedicationRequest.dispenseRequest.extension",
"short" : "Additional Content defined by implementations",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element. In order 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.",
"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.",
"alias" : [
"extensions",
"user content"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "Element.extension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.modifierExtension",
"path" : "MedicationRequest.dispenseRequest.modifierExtension",
"short" : "Extensions that cannot be ignored",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order 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.",
"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.",
"alias" : [
"extensions",
"user content",
"modifiers"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "BackboneElement.modifierExtension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"isModifier" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "rim",
"map" : "N/A"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.validityPeriod",
"path" : "MedicationRequest.dispenseRequest.validityPeriod",
"short" : "Time period supply is authorized for",
"definition" : "This indicates the validity period of a prescription (stale dating the Prescription).",
"comment" : "It reflects the prescribers' perspective for the validity of the prescription. Dispenses must not be made against the prescription outside of this period. The lower-bound of the Dispensing Window signifies the earliest date that the prescription can be filled for the first time. If an upper-bound is not specified then the Prescription is open-ended or will default to a stale-date based on regulations.",
"requirements" : "Indicates when the Prescription becomes valid, and when it ceases to be a dispensable Prescription.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dispenseRequest.validityPeriod",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Period"
}
],
"mapping" : [
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/Refills"
},
{
"identity" : "rim",
"map" : "effectiveTime"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.numberOfRepeatsAllowed",
"path" : "MedicationRequest.dispenseRequest.numberOfRepeatsAllowed",
"short" : "Number of refills authorized",
"definition" : "An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets.",
"comment" : "If displaying "number of authorized fills", add 1 to this number.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dispenseRequest.numberOfRepeatsAllowed",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "positiveInt"
}
],
"mapping" : [
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/Quantity"
},
{
"identity" : "v2",
"map" : "RXE-12-Number of Refills"
},
{
"identity" : "rim",
"map" : "repeatNumber"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.quantity",
"path" : "MedicationRequest.dispenseRequest.quantity",
"short" : "Amount of medication to supply per dispense",
"definition" : "The amount that is to be dispensed for one fill.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dispenseRequest.quantity",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Quantity",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-SimpleQuantity"
}
],
"mapping" : [
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/DaysSupply"
},
{
"identity" : "v2",
"map" : "RXD-4-Actual Dispense Amount / RXD-5.1-Actual Dispense Units.code / RXD-5.3-Actual Dispense Units.name of coding system"
},
{
"identity" : "rim",
"map" : "quantity"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.expectedSupplyDuration",
"path" : "MedicationRequest.dispenseRequest.expectedSupplyDuration",
"short" : "Number of days supply per dispense",
"definition" : "Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last.",
"comment" : "In some situations, this attribute may be used instead of quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued, e.g. 90 days supply of medication (based on an ordered dosage) When possible, it is always better to specify quantity, as this tends to be more precise. expectedSupplyDuration will always be an estimate that can be influenced by external factors.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dispenseRequest.expectedSupplyDuration",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Duration",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-Duration"
}
],
"mapping" : [
{
"identity" : "script10.6",
"map" : "Message/Body/NewRx/MedicationPrescribed/Substitutions"
},
{
"identity" : "rim",
"map" : "expectedUseTime"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.performer",
"path" : "MedicationRequest.dispenseRequest.performer",
"short" : "Intended dispenser",
"definition" : "Indicates the intended dispensing Organization specified by the prescriber.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.dispenseRequest.performer",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-entity-Organization"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : ".outboundRelationship[typeCode=COMP].target[classCode=SPLY, moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]"
},
{
"identity" : "w5",
"map" : "who"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.substitution",
"path" : "MedicationRequest.substitution",
"short" : "Any restrictions on medication substitution",
"definition" : "Indicates whether or not substitution can or should be part of the dispense. In some cases substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.substitution",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "BackboneElement"
}
],
"constraint" : [
{
"key" : "ele-1",
"severity" : "error",
"human" : "All FHIR elements must have a @value or children",
"expression" : "hasValue() | (children().count() > id.count())",
"xpath" : "@value|f:*|h:div",
"source" : "Element"
}
],
"mapping" : [
{
"identity" : "script10.6",
"map" : "specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions"
},
{
"identity" : "rim",
"map" : "subjectOf.substitutionPersmission"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.substitution.id",
"path" : "MedicationRequest.substitution.id",
"representation" : [
"xmlAttr"
],
"short" : "xml:id (or equivalent in JSON)",
"definition" : "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Element.id",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "string"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.substitution.extension",
"path" : "MedicationRequest.substitution.extension",
"short" : "Additional Content defined by implementations",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element. In order 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.",
"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.",
"alias" : [
"extensions",
"user content"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "Element.extension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : "n/a"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.substitution.modifierExtension",
"path" : "MedicationRequest.substitution.modifierExtension",
"short" : "Extensions that cannot be ignored",
"definition" : "May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order 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.",
"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.",
"alias" : [
"extensions",
"user content",
"modifiers"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "BackboneElement.modifierExtension",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Extension"
}
],
"isModifier" : true,
"isSummary" : true,
"mapping" : [
{
"identity" : "rim",
"map" : "N/A"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.substitution.allowed",
"path" : "MedicationRequest.substitution.allowed",
"short" : "Whether substitution is allowed or not",
"definition" : "True if the prescriber allows a different drug to be dispensed from what was prescribed.",
"comment" : "This element is labeled as a modifer because whether substitution is allow or not cannot be ignored.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "MedicationRequest.substitution.allowed",
"min" : 1,
"max" : "1"
},
"type" : [
{
"code" : "boolean"
}
],
"isModifier" : true,
"mapping" : [
{
"identity" : "script10.6",
"map" : "specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions"
},
{
"identity" : "v2",
"map" : "RXO-9-Allow Substitutions / RXE-9-Substitution Status"
},
{
"identity" : "rim",
"map" : "code"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.substitution.reason",
"path" : "MedicationRequest.substitution.reason",
"short" : "Why should (not) substitution be made",
"definition" : "Indicates the reason for the substitution, or why substitution must or must not be performed.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.substitution.reason",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "CodeableConcept"
}
],
"binding" : {
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString" : "MedicationIntendedSubstitutionReason"
}
],
"strength" : "example",
"description" : "A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.",
"valueSetReference" : {
"reference" : "http://hl7.org/fhir/ValueSet/v3-SubstanceAdminSubstitutionReason"
}
},
"mapping" : [
{
"identity" : "script10.6",
"map" : "not mapped"
},
{
"identity" : "v2",
"map" : "RXE-9 Substition status"
},
{
"identity" : "rim",
"map" : "reasonCode"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.priorPrescription",
"path" : "MedicationRequest.priorPrescription",
"short" : "An order/prescription that is being replaced",
"definition" : "A link to a resource representing an earlier order related order or prescription.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "MedicationRequest.priorPrescription",
"min" : 0,
"max" : "1"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/MedicationRequest"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…replaces"
},
{
"identity" : "script10.6",
"map" : "not mapped"
},
{
"identity" : "rim",
"map" : ".outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM,moodCode=RQO]"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.detectedIssue",
"path" : "MedicationRequest.detectedIssue",
"short" : "Clinical Issue with action",
"definition" : "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc.",
"alias" : [
"Contraindication",
"Drug Utilization Review (DUR)",
"Alert"
],
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.detectedIssue",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/DetectedIssue"
}
],
"mapping" : [
{
"identity" : "rim",
"map" : ".inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT,moodCode=EVN].value"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.eventHistory",
"path" : "MedicationRequest.eventHistory",
"short" : "A list of events of interest in the lifecycle",
"definition" : "Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.",
"comment" : "This may not include provenances for all versions of the request – only those deemed “relevant” or important. This SHALL NOT include the Provenance associated with this current version of the resource. (If that provenance is deemed to be a “relevant” change, it will need to be added as part of a later update. Until then, it can be queried directly as the Provenance that points to this version using _revinclude All Provenances should have some historical version of this Request as their subject.).",
"min" : 0,
"max" : "*",
"base" : {
"path" : "MedicationRequest.eventHistory",
"min" : 0,
"max" : "*"
},
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://hl7.org/fhir/StructureDefinition/Provenance"
}
],
"mapping" : [
{
"identity" : "workflow",
"map" : "…relevantHistory"
},
{
"identity" : "rim",
"map" : ".inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]"
}
]
}
]
},
"differential" : {
"element" : [
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement",
"path" : "MedicationRequest",
"short" : "SHR MedicationDispenseRequestedStatement Profile",
"definition" : "An order for a medication to be dispensed and instructions for use.",
"mustSupport" : false
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:subjectofinformation",
"path" : "MedicationRequest.extension",
"sliceName" : "subjectofinformation",
"definition" : "The person or thing that this entry relates to, usually the Person of Record (see Entry). However, not all entries have health information specifically about the patient, but in different contexts, could refer to a fetus, family member (living or dead), device, location, organization, behavior, finding, condition, wound, or intervention.
CIMI alignment: SubjectOfInformation is not a Participation -- unlike CIMI. There's no action to participate in. Participant has extra unnecessary attributes, such as 'onBehalfOf'.",
"min" : 1,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-SubjectOfInformation-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:sourceofinformation",
"path" : "MedicationRequest.extension",
"sliceName" : "sourceofinformation",
"definition" : "The person or entity that provided the information in the entry, e.g. the subject (patient), medical professional, family member, device or software program, as distinct from who recorded the entry.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-SourceOfInformation-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:annotation",
"path" : "MedicationRequest.extension",
"sliceName" : "annotation",
"definition" : "An added or follow-up note, often after the fact, that contains metadata about who made the statement and when.",
"min" : 0,
"max" : "*",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-element-Annotation-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:recordstatus",
"path" : "MedicationRequest.extension",
"sliceName" : "recordstatus",
"definition" : "Concept indicating the state of this record, e.g., 'entered in error'.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-RecordStatus-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:recorded",
"path" : "MedicationRequest.extension",
"sliceName" : "recorded",
"definition" : "The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Recorded-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:signed",
"path" : "MedicationRequest.extension",
"sliceName" : "signed",
"definition" : "Provenance information specific to the signing of the clinical statement.",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Signed-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:cosigned",
"path" : "MedicationRequest.extension",
"sliceName" : "cosigned",
"definition" : "Provenance information specific to the cosigning of the clinical statement.",
"min" : 0,
"max" : "*",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Cosigned-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.extension:verified",
"path" : "MedicationRequest.extension",
"sliceName" : "verified",
"definition" : "Provenance information specific to the verification process associated with this statement (e.g., verifier, when verified, etc.)",
"min" : 0,
"max" : "*",
"type" : [
{
"code" : "Extension",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-core-Verified-extension"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.medicationReference",
"path" : "MedicationRequest.medicationReference",
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-entity-Medication"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.reasonCode",
"path" : "MedicationRequest.reasonCode",
"type" : [
{
"code" : "CodeableConcept",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-CodeableConcept"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.note",
"path" : "MedicationRequest.note",
"min" : 0,
"max" : "1"
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dosageInstruction",
"path" : "MedicationRequest.dosageInstruction",
"min" : 0,
"max" : "1",
"type" : [
{
"code" : "Dosage",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-medication-Dosage"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest",
"path" : "MedicationRequest.dispenseRequest"
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.quantity",
"path" : "MedicationRequest.dispenseRequest.quantity",
"type" : [
{
"code" : "Quantity",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-SimpleQuantity"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.expectedSupplyDuration",
"path" : "MedicationRequest.dispenseRequest.expectedSupplyDuration",
"type" : [
{
"code" : "Duration",
"profile" : "http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-Duration"
}
]
},
{
"id" : "MedicationRequest:cimi-medication-MedicationDispenseRequestedStatement.dispenseRequest.performer",
"path" : "MedicationRequest.dispenseRequest.performer",
"type" : [
{
"code" : "Reference",
"targetProfile" : "http://standardhealthrecord.org/fhir/StructureDefinition/cimi-entity-Organization"
}
]
}
]
}
}


storage-form
ExamplesSee HTML souce.
Using all supported form components. You need to click [Save] to store values. These value are stored into localStorage
An autoload
attribute are a function that
An autosync
attribute are a function that store the bar
's value automatically, and load it's value when it is changed by another javascript. You can confirm that the bar
form value is changed when you change it from a developer console of your browser.
<area-select>
exampleYou can change the stored area for the ex4
's value using an area-select
element.


Use this feature to customize the default templates for the core of an EAD finding aid and its components. The prepackaged templates represent a bare-bones XML model with inputs required by the schema or for machine processing purposes (e. g., the id attribute in <ead>). The template editor enables a site administrator or archivist to add more elements or textual values. For example, the default EAD template only requires did/unititle in the Archival Description. An institution's best practices may require further detail in the archdesc, such as did/unitdate, did/container, access or use restriction statements, or an abstract. The template interface is nearly identical in functionality as the forms for editing EAD documents themselves.
In addition to EAD templating, this section offers forms for setting very restrictive controlled vocabulary (drop down menus in the EAD editor as opposed to open-ended autocomplete for subject terms or personal names) that are more likely to vary from institution to institution. This includes institution names/codes and container types.


Inputs can have sequence of numbers which can be hidden
Inputs can hide every character typed
Inputs can append specified number of masking char after blur