## Business data The following tables summarizes the referral business data used to send electronic referrals from one system to another. The information in the request and response from a referral systems depends on the operations used. Refer to the profiles and operations section for further guidance. **ServiceRequest** | Name | Card | Type | Comments | |---|---|---|---| | identifier | 0..* | Identifier | Any number of identifiers can be included in the ServiceRequest. When ServiceRequest updates are send back to the sender, all submitted Identifiers should be included, even if not used by the receiving system (e.g., an Identifier generated by the sending system). | status | 1..1 | code | should always be submitted as "active". The eReferral server is responsible for updating the status as the eReferral progresses. The /Task resource is used for more detailed status tracking. | intent | 1..1 | code | always set to = "proposal" | priority | 0..1 | code | Submit = routine \ urgent \ asap \ stat (routine default & most common value) | authoredOn | 0..1 | dateTime | This is the date the request was "signed". If submitted blank, the eReferral server will assign this as the time of submission. A different (earlier) time can be submitted if the request was "signed" at a time before the online submission. To track the time that the eReferral was submitted, see Task.authoredOn. | reasonCode.text | 0..* | CodeableConcept | used to communicate the "Reason for Referral" as a narrative. |note | 0..* | Annotation | used to include additional information in the referral that is not captured by an existing resource or in a DocumentReference. This is often used when the sending application has a custom data capture form with fields are not mapped to a resource (e.g., Food preference, home visit risk factors, etc...). On submission of the ServiceRequest, if .authorx and .time are not included, they are assumed to be the requester and received time of the ServiceRequest respectively (this is expected to be the normal use case). | patientInstruction | 0..1 | string | is used to provide patient instructions. Note that this should NOT BEe SUBMITTED with a new referral, it is updated by the eReferral server and provided in the response.

**MessageHeader** | Name | Card | Type | Comments | |---|---|---|---| | eventCoding | 1..1 | Coding | Code for the event this message represents | eventCoding.code | 0..1 | code | add-service-request / cds-service-request / update-service-request / update-status / add-appointment / update-appointment / request-for-information / send-message | destination | 0..* | BackboneElement | Message destination application(s) | destination.name | 0..1 | string | Name of System | destination.endpoint | 1..1 | url | Actual destination address or id | source | 1..1 | BackboneElement | Message source application | source.name | 0..1 | string | Name of system | source.software | 0..1 | string | Name of software running the system | source.version | 0..1 | string | Version of software running | source.contact | 0..1 | ContactPoint | Human contact for problems. | source.endpoint | 1..1 | url | Actual message source address or id | focus | 0..* | Reference (Any) | The actual content of the message

**Patient** | Name | Card | Type | Comments |---|---|---|---| |identifier| 0..* | Identifier | All identifiers sent with the ServiceRequest will be stored by the receiving system, and included in any subsequent updates. This allows sending systems to inject their own identifiers that can be used for tracking + any type of official identifier to be used such as HCN, passport, band #, etc... Always use identifer.type.text (e.g., Ontario HCN, Band #, CHRIS #, Caredove #, etc...) and identifier.value. For Health Information System assigned and similar Identifier values record the organization that issued the identifier in identifier.assigner.display. | | name | 0..* | HumanName | will use name.family and name.given only. Middle name is supported by using subsequent given names. | telecom | 0..* | ContactPoint | see notes on [Common Resource Elements](https://simplifier.net/guide/eReferraldraftiGuide/CommonResourceElements) | gender | 0..1 | code | "male \ female \ other \ unknown" (valueset [Administrative Gender](http://hl7.org/fhir/2018Jan/valueset-administrative-gender.html)) | birthDate | 0..1 | date | e.g., 1928-06-29 | address | 0..* | Address | see notes on [Common Resource Elements](https://simplifier.net/guide/eReferraldraftiGuide/CommonResourceElements) | maritalStatus | 0..1 | CodeableConcept | For the .codeset use [FHIR marital status codeset](http://hl7.org/fhir/2018Jan/valueset-marital-status.html). Always fill the .text for plaintext representation. | contact | 0..* | BackboneElement | Represents various types of alternate contacts for the patient | contact.relationship | 0..* | CodeableConcept | Use **.text** for relationship of the contact to the patient, with values such as such as "Parent \ Mother \ Father \ Child \ Sibling \ Friend \ Legal Guardian \ Power of Attorney \ Substitute Decision Maker \ Emergency Contact". `Future use: consider using .coding extended code set for (Contact Role)[http://hl7.org/fhir/2018Jan/v2/0131/index.html]` | contact.name | 0..1 | HumanName | see notes on [Common Resource Elements](https://simplifier.net/guide/eReferraldraftiGuide/CommonResourceElements) | contact.telecom | 0..* | ContactPoint | see notes on [Common Resource Elements](https://simplifier.net/guide/eReferraldraftiGuide/CommonResourceElements) | contact.address | 0..1 | Address | see notes on [Common Resource Elements](https://simplifier.net/guide/eReferraldraftiGuide/CommonResourceElements) | contact.gender | 0..1 | code | "male \ female \ other \ unknown" (valueset [Administrative Gender](http://hl7.org/fhir/2018Jan/valueset-administrative-gender.html)) | communication | 0..* | BackboneElement | | communication.language | 1..1 | CodeableConcept | Use [Languages Valueset](https://hl7.org/fhir/2018May/valueset-languages.html). Always fill the .text for plaintext representation | | communication.preferred | 0..1 | boolean | true for primary language

**Communication** | Name | Card | Type | Comments | |---|---|---|---| | basedOn | 0..1 | Reference | | inResponseTo | 0..* | Reference(Communication) | status | 1..1 | code | | category | 0..* | CodeableConcept | | priority | 0..1 | code | | medium | 0..* | CodeableConcept | | recipient | 0..* | Reference(Device \ Organization \ Patient \ Practitioner \ PractitionerRole \ RelatedPerson \ Group \ CareTeam) | sent | 0..1 | dateTime | | received | 0..1 | dateTime | | sender | 0..1 | Reference(Patient \ PractitionerRole \ RelatedPerson) | payload | 0..* | BackboneElement | | payload.content[x] | 1..1 | | payload.content[x].contentString | | string | | payload.content[x].contentAttachment | | Attachment | | payload.content[x].contentReference | | Reference(Any) |

**Appointment** | Name | Card | Type | Comments | |---|---|---|---| | text | 0..1 | Narrative | Human readable text | text.div | 1..1 | xhtml | Full text summary of the appointment, human readable that can be pasted into other systems with complete information about the appointment. | text.status | 1..1 | code | ="generated" | status | 1..1 | code | proposed / pending / booked / arrived / fulfilled / cancelled / noshow / entered-in-error [AppointmentStatus](http://hl7.org/fhir/2018Jan/valueset-appointmentstatus.html) (Required). Value will be **status="booked"** in most cases. | description | 0..1 | string | Title of the appointment (SUBJECT in MS Outlook) | start | 0..1 | instant | Start time of the appointment (STARTS in MS Outlook) | end | 0..1 | instant | End time of the appointment (ENDS in MS Outlook) | minutesDuration | 0..1 | positiveInt | Duration of the appointment (DURATION in MS Outlook) | created | 0..1 | dateTime | The date that this appointment was initially created (note: NOT the time of the appointment itself) | comment | 0..1 | string | additional comments and details about the appointment (BODY MS Outlook). | basedOn | 0..* | Reference (ServiceRequest) | The ServiceRequest provided as information to allocate to the appointment | participant | 1..* | BackboneElement | | participant.actor | 0..1 | Reference(Patient) | References the same Patient as in basedOn.ServiceRequest | participant.actor | 0..1 | Reference(Practitioner) | References the Practitioner who is providing the appointment | participant.actor | 0..1 | Reference(HealthcareService) | References the same HealthcareService as in basedOn.ServiceRequest. Note thate this will be an external reference (like in the ServiceRequest) | participant.actor | 0..1 | Reference(Location) | Reference the Location where the appointment is provided. May be the same or different as the Location in basedOn.HealthcareService. | participant.status | 1..1 | code | accepted / decline / tentative / needs action. For any booked appointment, it is expected that the **status=accepted**