Sending a Prescription

A prescription is a resource of type Bundle containing a CarePlan for the prescription and several ServiceRequest as prescription lines. Additional resources may be added in the Bundle to provide more information.

A full example can be found here.

The prescription Bundle

The prescriber's software creates a transaction Bundle:

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
identifierΣ0..0Identifier
typeΣ1..1codeBindingFixed Value
timestampΣ0..0instant
totalΣ C0..0unsignedInt
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ0..1uri
resourceΣ0..1Resource
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
modeΣ0..1codeBinding
scoreΣ0..1decimal
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBinding
urlΣ1..1uri
ifNoneMatchΣ0..1string
ifModifiedSinceΣ0..1instant
ifMatchΣ0..1string
ifNoneExistΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
statusΣ1..1string
locationΣ0..1uri
etagΣ0..1string
lastModifiedΣ0..1instant
outcomeΣ0..1Resource
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPLabPrescription
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPLabPrescriptionLine
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPLabDocumentRef
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPCommunicationRequest
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPPractitionerUnk
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPPatient
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1SendLabResultSubContConsent
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
fullUrlΣ C1..1uri
resourceΣ C1..1EPPractitioner
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
methodΣ1..1codeBindingFixed Value
urlΣ1..1uriFixed Value
ifNoneMatchΣ0..0string
ifModifiedSinceΣ0..0instant
ifMatchΣ0..0string
ifNoneExistΣ0..0string
signatureΣ0..0Signature

The Bundle is a conatainer to provide all resources (in Bundle.entry) that are part of the prescriptipon, i.e.:

  • The prescription document
  • Each prescription line
  • The patient
  • The prescriber
  • The optional consent for subcontrators to send to the DSP
  • The PDF document of the prescription
  • Information about copies to send
  • Information about practitioners that shall receive the copies

The prescription document

A prescription document is represented by a CarePlan included in a Bundle :

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
PatientInstructionC0..*Extension(string)
OrderDetailC0..*Extension(string)
modifierExtension?! C0..*Extension
identifierΣ1..1EPSimpleIdentifier
instantiatesCanonicalΣ0..0canonical(ActivityDefinition | Measure | OperationDefinition | PlanDefinition | Questionnaire)
instantiatesUriΣ0..0uri
basedOnΣ C0..0Reference(CarePlan)
replacesΣ C0..0Reference(CarePlan)
partOfΣ C0..0Reference(CarePlan)
statusΣ ?! C1..1codeBinding
intentΣ ?!1..1codeBindingFixed Value
id0..0string
extensionC0..*Extension
id0..0string
extensionC0..*Extension
systemΣ1..1uriPattern
versionΣ0..0string
codeΣ1..1codePattern
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
titleΣ0..0string
descriptionΣ0..0string
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
encounterΣ C0..0Reference(Encounter)
id0..0string
extensionC0..*Extension
startΣ C1..1dateTime
endΣ C1..1dateTime
createdΣ C1..1dateTime
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
careTeamC0..0Reference(CareTeam)
addressesΣ C0..0Reference(Condition)
supportingInfoC0..0Reference(Resource)
goalC0..0Reference(Goal)
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
outcomeCodeableConcept0..0CodeableConcept
outcomeReferenceC0..0Reference(Resource)
progress0..0Annotation
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
note0..0Annotation

In the extensions, there are fields for the patient and fulfiller instructions, to give any indications or information about the patient, the analysis, ... that are valid for the whole prescription. Specifics for a line are given on the prescription line.

CarePlan.activity contains references to the prescription lines.

The prescription lines

Each ServiceRequest represents a prescription line:

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ1..1EPSimpleIdentifier
instantiatesCanonicalΣ0..0canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..0uri
basedOnΣ C0..0Reference(CarePlan | MedicationRequest | ServiceRequest)
replacesΣ C0..0Reference(ServiceRequest)
requisitionΣ0..0Identifier
statusΣ ?! C1..1codeBinding
intentΣ ?!1..1codeBindingFixed Value
id0..0string
extensionC0..*Extension
id0..0string
extensionC0..*Extension
systemΣ1..1uriPattern
versionΣ0..0string
codeΣ1..1codePattern
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
priorityΣ C1..1codeBinding
doNotPerformΣ ?!0..0boolean
id0..0string
extensionC0..*Extension
id0..0string
extensionC0..*Extension
systemΣ1..1uri
versionΣ0..0string
codeΣ1..1code
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..1string
id0..1string
extensionC0..*Extension
codingΣ0..0Coding
textΣ1..1string
id0..0string
extensionC0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..0string
systemΣ C0..0uri
codeΣ0..0code
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
encounterΣ C0..0Reference(Encounter)
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
eventΣ0..0dateTime
id0..0string
extensionC0..*Extension
codingΣ0..0Coding
textΣ1..1string
authoredOnΣ C1..1dateTime
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
performerTypeΣ0..0CodeableConcept
performerΣ C0..0Reference(CareTeam | Device | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
locationCodeΣ0..0CodeableConcept
locationReferenceΣ C0..0Reference(Location)
reasonCodeΣ0..0CodeableConcept
reasonReferenceΣ C0..0Reference(Condition | DiagnosticReport | DocumentReference | Observation)
insuranceC0..0Reference(ClaimResponse | Coverage)
supportingInfoC0..0Reference(Resource)
specimenΣ C0..0Reference(Specimen)
bodySiteΣ0..0CodeableConcept
note0..0Annotation
patientInstructionΣ0..1string
relevantHistoryC0..0Reference(Provenance)

ServiceRequest.orderDetil is used to give information for tha lab specific to this line. ServiceRequest.patientInstruction has the same purpose but for the patient.

The patient

The patient is a resource of type Patient:

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
IdentityQualityC1..1Extension(code)
modifierExtension?! C0..*Extension
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ1..1CodeableConceptBindingPattern
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ1..1CodeableConceptBindingFixed Value
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
activeΣ ?!0..0boolean
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
textΣ0..0string
familyΣ1..1string
givenΣ1..1string
prefixΣ0..0string
suffixΣ0..0string
periodΣ C0..0Period
telecomΣ C0..0ContactPoint
genderΣ1..1codeBinding
birthDateΣ1..1date
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0codeBinding
textΣ0..0string
lineΣ0..2string
cityΣ0..1string
districtΣ0..0string
stateΣ0..0string
postalCodeΣ0..1string
countryΣ C0..1string
periodΣ C0..0Period
maritalStatus0..0CodeableConceptBinding
photoC0..0Attachment
generalPractitionerC0..0Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ C0..0Reference(Organization)
It contains the patient information as known by the prescriber.

The prescriber

The prescriber is a resource of type Practitioner:

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
activeΣ0..0boolean
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
textΣ0..0string
familyΣ1..1string
givenΣ1..1string
prefixΣ0..0string
suffixΣ0..0string
periodΣ C0..0Period
id0..0string
extensionC0..*Extension
systemΣ C1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ0..0positiveInt
periodΣ C0..0Period
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0codeBinding
textΣ0..0string
lineΣ0..1string
cityΣ0..1string
districtΣ0..0string
stateΣ0..0string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ C0..0Period
genderΣ0..0codeBinding
birthDateΣ0..0date
photoC0..0Attachment
communication0..0CodeableConceptBinding
. It contains the prescriber information as provided by its own system.

The health professionals recipients of the result

Each health professional is represent by a specific type of Practitioner :

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
activeΣ0..0boolean
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
textΣ0..0string
familyΣ1..1string
givenΣ1..1string
prefixΣ0..0string
suffixΣ0..0string
periodΣ C0..0Period
id0..0string
extensionC0..*Extension
systemΣ C1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ0..0positiveInt
periodΣ C0..0Period
id0..0string
extensionC0..*Extension
systemΣ C1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ0..0positiveInt
periodΣ C0..0Period
id0..0string
extensionC0..*Extension
systemΣ C1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ0..0positiveInt
periodΣ C0..0Period
id0..0string
extensionC0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0codeBinding
textΣ0..0string
lineΣ0..1string
cityΣ0..1string
districtΣ0..0string
stateΣ0..0string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ C0..0Period
genderΣ0..0codeBinding
birthDateΣ0..0date
photoC0..0Attachment
communication0..0CodeableConceptBinding
This is not to confuse with the prescriber that SHALL be represented as specified before.

The consents

For the moment, only one type of consent is used : whether or not the subcontractor shall send the document to the DSP. See Consents for details. It is represented using a TODO

The PDF document

This is simply the base64 of the prescription, transmitted using a DocumentReference:

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
masterIdentifierΣ0..0Identifier
identifierΣ0..0EPSimpleIdentifier
statusΣ ?!1..1codeBindingFixed Value
docStatusΣ0..0codeBinding
id0..0string
extensionC0..*Extension
id0..0string
extensionC0..*Extension
systemΣ1..1uriPattern
versionΣ0..0string
codeΣ1..1codePattern
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
categoryΣ0..0CodeableConcept
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
dateΣ1..1instant
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
authenticatorC0..0Reference(Organization | Practitioner | PractitionerRole)
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
descriptionΣ0..0string
securityLabelΣ0..0CodeableConceptBinding
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..0string
extensionC0..*Extension
contentTypeΣ1..1codeBindingFixed Value
languageΣ0..0codeBinding
data1..1base64Binary
urlΣ0..0url
sizeΣ0..0unsignedInt
hashΣ0..0base64Binary
titleΣ0..1string
creationΣ0..0dateTime
formatΣ0..0CodingBinding
id0..0string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
encounterC0..0Reference(Encounter | EpisodeOfCare)
event0..0CodeableConcept
periodΣ C0..0Period
facilityType0..0CodeableConcept
practiceSetting0..0CodeableConcept
sourcePatientInfoC0..0Reference(Patient)
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string

The copies to send

Using an optional CommunicationRequest, it is possible to mention the patient, and many health professional as recipients of the result. The prescriber SHALL NOT be present as he will always receive the result.

idΣ0..1id
id0..0string
extensionC0..*Extension
versionIdΣ0..0id
lastUpdatedΣ0..0instant
sourceΣ0..0uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..0CodingBinding
tagΣ0..0Coding
implicitRulesΣ ?!0..0uri
language0..0codeBinding
text0..0Narrative
contained0..0Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ1..1EPSimpleIdentifier
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
replacesΣ C0..0Reference(CommunicationRequest)
groupIdentifierΣ0..0Identifier
statusΣ ?!1..1codeBindingFixed Value
statusReason0..0CodeableConcept
id0..0string
extensionC0..*Extension
id0..0string
extensionC0..*Extension
systemΣ1..1uriPattern
versionΣ0..0string
codeΣ1..1codePattern
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
priorityΣ0..0codeBinding
doNotPerformΣ ?!0..0boolean
medium0..0CodeableConcept
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
aboutC0..0Reference(Resource)
encounterΣ C0..0Reference(Encounter)
authoredOnΣ C1..1dateTime
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
senderΣ C0..0Reference(Device | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
reasonCodeΣ0..0CodeableConcept
reasonReferenceΣ C0..0Reference(Condition | DiagnosticReport | DocumentReference | Observation)
note0..0Annotation
For the patient, you SHALL reuse the Patient resource used anyway in the prescription. For health professional, take care to used the right form of the resource: EPPractitionerUnk