Send result (Transaction ERESULT-20)

General

This service a for distributing laboratory results to some predefined Practitioner/Prescriber.

Input

For Security reason, URL (Base and Query parameter), Authentification mechanism are supplied privately documentation supplied by Agence eSanté to each integrator

A result is sent as a resource of type Bundle containing a DiagnosticReport as the core entity. Communication is used to defined which Practitioner must received the result via eResult service.

A full example can be found here.

The result Bundle

The laboratory'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..1FTResPDF
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..1FTCommunication
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..1FTDiagReport
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..1FTPractitioner
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 container to provide all resources (in Bundle.entry) that are part of the result, i.e.:

  • The result envelope which is respresented through a DiagnosticReport
  • Communication(s) that indicates recipient of this result
  • Each recipient is described through an Practitioner entity
  • A PDF document may be included for recipient who benefit from specific document format agreed with laboratory

The DiagnosticReport - Result envelope

A result document is represented by a DiagnosticReport 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..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifierΣ1..1EPSimpleIdentifier
basedOnC0..0Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
statusΣ ?! C1..1codeBinding
categoryΣ0..0CodeableConcept
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ1..1codeFixed Value
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
subjectΣ C0..0Reference(Device | Group | Location | Patient)
encounterΣ C0..0Reference(Encounter)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedΣ0..1instant
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
resultsInterpreterΣ C0..0Reference(CareTeam | Organization | Practitioner | PractitionerRole)
specimenC0..0Reference(Specimen)
resultC0..0Reference(Observation)
imagingStudyC0..0Reference(ImagingStudy)
conclusion0..0string
conclusionCode0..0CodeableConcept
id0..0string
extensionC0..*Extension
contentTypeΣ1..1codeBindingFixed Value
languageΣ0..0codeBinding
data1..1base64Binary
urlΣ0..0url
sizeΣ0..0unsignedInt
hashΣ0..0base64Binary
titleΣ0..0string
creationΣ0..0dateTime
id0..0string
extensionC0..*Extension
contentTypeΣ1..1codeBindingFixed Value
languageΣ0..0codeBinding
data1..1base64Binary
urlΣ0..0url
sizeΣ0..0unsignedInt
hashΣ0..0base64Binary
titleΣ0..0string
creationΣ0..0dateTime

Remarks:

  • Some fields has been given constant value (ie. status, code).
  • TODO DSP in identifier
  • presentedForm will contain the XML form and eventually a generic PDF format

Recipient

A recipient must be first described as a Practitioner entity (https://simplifier.net/eprescriptionlux/ftpractitioner) represents a 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)
activeΣ0..0boolean
nameΣ0..0HumanName
telecomΣ C0..0ContactPoint
addressΣ0..0Address
genderΣ0..0codeBinding
birthDateΣ0..0date
photoC0..0Attachment
communication0..0CodeableConceptBinding

A Communication entity referenced previously described Practitioner and the DiagnosticReport (https://simplifier.net/eprescriptionlux/ftcommunication) represents a 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
CDAReferenceC0..1Extension(Complex)
modifierExtension?! C0..*Extension
identifierΣ1..1EPSimpleIdentifier
instantiatesCanonicalΣ0..0canonical(ActivityDefinition | Measure | OperationDefinition | PlanDefinition | Questionnaire)
instantiatesUriΣ0..0uri
id0..0string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
partOfΣ C0..0Reference(Resource)
inResponseToC0..0Reference(Communication)
statusΣ ?! C1..1codeBinding
statusReasonΣ0..0CodeableConcept
id0..0string
extensionC0..*Extension
id0..0string
extensionC0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ1..1codeFixed Value
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
priorityΣ0..0codeBinding
medium0..0CodeableConcept
subjectΣ C0..0Reference(Group | Patient)
topic0..0CodeableConcept
aboutC0..0Reference(Resource)
encounterΣ C0..0Reference(Encounter)
sent1..1dateTime
received0..1dateTime
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
senderC0..1Reference(Device | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
reasonCodeΣ0..0CodeableConcept
reasonReferenceΣ C1..1Reference(FTDiagReport)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
contentAttachmentAttachment
contentReferenceReference(Resource)
contentStringstring
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ0..0Identifier
displayΣ0..0string
note0..0Annotation

In some case, a practitioner may received specific PDF document as a result, in that case the PDF document, a dedicated entry is added to the Bundle. See below.

Specific PDF Document

This specific PDF is described as a DocumentReference entity

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..0Identifier
statusΣ ?!1..1codeBindingFixed Value
docStatusΣ0..0codeBinding
typeΣ0..0CodeableConceptBinding
categoryΣ0..0CodeableConcept
subjectΣ C0..0Reference(Device | Group | Patient | Practitioner)
dateΣ0..0instant
authorΣ C0..0Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
authenticatorC0..0Reference(Organization | Practitioner | PractitionerRole)
custodianC0..0Reference(Organization)
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..0string
creationΣ0..0dateTime
formatΣ0..0CodingBinding
It contains the PDF document encoded as base64 document.

Output

Success

In case of success, the API will returned:

  • A HTTP Code 200
  • a Bundle with type transaction-response.

Each entry of the Bundle contain a 'response' containing itself a:

  • A status which is "201 Created"
  • Location (Id of the Created ressource. ie: "Communication/1f148a7e-f9c7-4178-8541-bab379087181/_history/1"
  • An OperationOutcome indicating that this is successfull

Full example can be found [here] (https://simplifier.net/eprescriptionlux/62df724d-d2d1-41f6-a569-27095e41e428)

Error

In case of error, an OperationOutcome will be returned. See Error Handling for more information.

Main error related to this service are:

HTTP Code eResult error code Description
404 ERESULT_0101 The prescriber has not registered in eResult - Message "Prescriber not found: urn:oid:1.3.182.4.6 "
422 ERESULT_0301 One of the Communication in the Bundle is not state "In Progress"
422 ERESULT_0302 One of the Communication in the Bundle has a received date which is not allowed.
422 HTTP_422 or The Bundle submitted does not respect FHIR profile described here: FTBundle - Text in the details node contains more detail