<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=References%2FService_Request</id>
	<title>References/Service Request - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=References%2FService_Request"/>
	<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=References/Service_Request&amp;action=history"/>
	<updated>2026-07-06T05:19:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.4</generator>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=References/Service_Request&amp;diff=422&amp;oldid=prev</id>
		<title>Admin: Automated edit (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=References/Service_Request&amp;diff=422&amp;oldid=prev"/>
		<updated>2026-07-06T04:05:41Z</updated>

		<summary type="html">&lt;p&gt;Automated edit (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:35, 6 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 353:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 353:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[References/Location]] — facility locations the request applies to&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[References/Location]] — facility locations the request applies to&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[References/User &amp;amp;amp; Skills|User]] — requester / audit users&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[References/User &amp;amp;amp; Skills|User]] — requester / audit users&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Navbox clinical}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wiki: ohcnwiki.tellmey.fyi&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=References/Service_Request&amp;diff=146&amp;oldid=prev</id>
		<title>Admin: OHC identity seed</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=References/Service_Request&amp;diff=146&amp;oldid=prev"/>
		<updated>2026-07-04T22:44:32Z</updated>

		<summary type="html">&lt;p&gt;OHC identity seed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Doc header&lt;br /&gt;
|type=reference&lt;br /&gt;
|domain=clinical&lt;br /&gt;
|title=Service Request&lt;br /&gt;
|order=12&lt;br /&gt;
|introduced=3.0&lt;br /&gt;
|fhir=ServiceRequest&lt;br /&gt;
|model=ServiceRequest&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;code&amp;gt;ServiceRequest&amp;lt;/code&amp;gt; is an order or proposal to perform an action — clinical or otherwise — for a patient (FHIR &amp;lt;code&amp;gt;ServiceRequest&amp;lt;/code&amp;gt;). It drives the creation of specimens, diagnostic reports, observations, and procedures, each of which links back to the originating request. Care implements a minimal subset of the FHIR spec.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Source:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Model: [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/care/emr/models/service_request.py &amp;lt;code&amp;gt;care/emr/models/service_request.py&amp;lt;/code&amp;gt;]&lt;br /&gt;
* Resource spec: [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/care/emr/resources/service_request/spec.py &amp;lt;code&amp;gt;care/emr/resources/service_request/spec.py&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
The Django model is only storage: several columns are opaque &amp;lt;code&amp;gt;JSONField&amp;lt;/code&amp;gt;s and free-text &amp;lt;code&amp;gt;CharField&amp;lt;/code&amp;gt;s. Their real structure, enums, bound value sets, and read/write API schemas live in the Pydantic resource specs (&amp;lt;code&amp;gt;care/emr/resources/service_request/spec.py&amp;lt;/code&amp;gt;). Both layers are covered below.&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequest&amp;lt;/code&amp;gt;&lt;br /&gt;
| An order or proposal to perform an action for a patient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ServiceRequest&amp;lt;/code&amp;gt; extends &amp;lt;code&amp;gt;EMRBaseModel&amp;lt;/code&amp;gt;, the shared Care EMR base that supplies &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;, audit fields &amp;lt;code&amp;gt;created_by&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;updated_by&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;created_date&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;modified_date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt;, and soft-delete semantics — see [[References/Base models &amp;amp;amp; conventions|Base model]].&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;ServiceRequest&amp;lt;/code&amp;gt; fields ==&lt;br /&gt;
&lt;br /&gt;
=== Request definition ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Model type&lt;br /&gt;
! Spec type / shape&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;CharField(1024)&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;&lt;br /&gt;
| Human-readable summary. Required on create, optional on update.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;CharField(255)&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ActivityDefinitionCategoryOptions&amp;lt;/code&amp;gt; enum&lt;br /&gt;
| Coded category. Required on create. See [[#category-values&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;CharField(255)&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestStatusChoices&amp;lt;/code&amp;gt; enum&lt;br /&gt;
| Lifecycle status. Required on create. See [[#status-values&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intent&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;CharField(255)&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestIntentChoices&amp;lt;/code&amp;gt; enum&lt;br /&gt;
| Required on create. See [[#intent-values&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;priority&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;CharField(255)&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestPriorityChoices&amp;lt;/code&amp;gt; enum&lt;br /&gt;
| Required on create. See [[#priority-values&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;do_not_perform&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;BooleanField&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;bool | None&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; flags the service/procedure as explicitly not to be performed. Model default &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;; spec default &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;, so it&amp;#039;s omitted from writes unless set.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;JSONField&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt; bound to &amp;lt;code&amp;gt;activity-definition-procedure-code&amp;lt;/code&amp;gt;&lt;br /&gt;
| The requested service/procedure. Required on create. A single &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt;, not a &amp;lt;code&amp;gt;CodeableConcept&amp;lt;/code&amp;gt;, validated against the bound value set.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;body_site&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;JSONField&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt; bound to &amp;lt;code&amp;gt;system-body-site-observation&amp;lt;/code&amp;gt;, optional&lt;br /&gt;
| Coded location on the body. A single &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt;, validated against the bound value set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A bound &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;ValueSetBoundCoding&amp;lt;/code&amp;gt;) has the shape:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;system&amp;quot;: &amp;quot;&amp;lt;uri | null&amp;gt;&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;&amp;lt;str | null&amp;gt;&amp;quot;,&lt;br /&gt;
  &amp;quot;code&amp;quot;: &amp;quot;&amp;lt;str&amp;gt;&amp;quot;,          // required; must resolve in the bound value set&lt;br /&gt;
  &amp;quot;display&amp;quot;: &amp;quot;&amp;lt;str | null&amp;gt;&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Clinical detail ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Model type&lt;br /&gt;
! Spec type&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;TextField&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;str | None&amp;lt;/code&amp;gt;&lt;br /&gt;
| Free-text comments.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;patient_instruction&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;TextField&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;str | None&amp;lt;/code&amp;gt;&lt;br /&gt;
| Instructions surfaced to the patient.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;occurance&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;DateTimeField&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;datetime | None&amp;lt;/code&amp;gt;&lt;br /&gt;
| When the request should take place. Spelled &amp;lt;code&amp;gt;occurance&amp;lt;/code&amp;gt; in both model and spec — the typo is intentional, match it.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Relationships ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Model type&lt;br /&gt;
! Spec type&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;facility&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;FK → facility.Facility&amp;lt;/code&amp;gt;&lt;br /&gt;
| (not in write spec)&lt;br /&gt;
| Owning facility. &amp;lt;code&amp;gt;PROTECT&amp;lt;/code&amp;gt;. Set server-side from request context.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;patient&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;FK → emr.Patient&amp;lt;/code&amp;gt;&lt;br /&gt;
| (derived)&lt;br /&gt;
| Subject of the request. &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;. Not accepted from clients — set server-side from &amp;lt;code&amp;gt;encounter.patient&amp;lt;/code&amp;gt; on create.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;encounter&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;FK → emr.Encounter&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;UUID4&amp;lt;/code&amp;gt; (create only)&lt;br /&gt;
| Encounter the request was created in. &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;. Required as a UUID on &amp;lt;code&amp;gt;Create&amp;lt;/code&amp;gt;; resolved via &amp;lt;code&amp;gt;get_object_or_404&amp;lt;/code&amp;gt;. Read back as a serialized encounter dict.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;healthcare_service&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;FK → emr.HealthcareService&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;UUID4 | None&amp;lt;/code&amp;gt;&lt;br /&gt;
| Service fulfilling the request. &amp;lt;code&amp;gt;PROTECT&amp;lt;/code&amp;gt;. Write accepts &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;; resolved server-side. Excluded from base serialize; returned only on &amp;lt;code&amp;gt;Retrieve&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;activity_definition&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;FK → emr.ActivityDefinition&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| (read only)&lt;br /&gt;
| Template the request was created from. &amp;lt;code&amp;gt;PROTECT&amp;lt;/code&amp;gt;. Serialized only on &amp;lt;code&amp;gt;Retrieve&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;requester&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;FK → users.User&amp;lt;/code&amp;gt; (nullable)&lt;br /&gt;
| &amp;lt;code&amp;gt;UUID4 | None&amp;lt;/code&amp;gt; (write) / &amp;lt;code&amp;gt;dict | None&amp;lt;/code&amp;gt; (read)&lt;br /&gt;
| User who placed the request. &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;. Write accepts &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;; read returns a cached &amp;lt;code&amp;gt;UserSpec&amp;lt;/code&amp;gt; dict.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ArrayField[int]&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;list[UUID4]&amp;lt;/code&amp;gt; (write) / &amp;lt;code&amp;gt;list[dict]&amp;lt;/code&amp;gt; (read)&lt;br /&gt;
| Facility-location IDs the request applies to. Model default &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;. Write accepts location &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;s, stored on &amp;lt;code&amp;gt;obj._locations&amp;lt;/code&amp;gt; for the manager to persist; serialized as &amp;lt;code&amp;gt;FacilityLocationListSpec&amp;lt;/code&amp;gt; dicts only on &amp;lt;code&amp;gt;Retrieve&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;ArrayField[int]&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;list[dict]&amp;lt;/code&amp;gt; (read)&lt;br /&gt;
| Tag IDs. Model default &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;. Rendered via &amp;lt;code&amp;gt;SingleFacilityTagManager().render_tags(obj)&amp;lt;/code&amp;gt; on read; not set directly from the write spec.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Enums ==&lt;br /&gt;
&lt;br /&gt;
=== Status values ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ServiceRequestStatusChoices&amp;lt;/code&amp;gt; values are snake_case, not the hyphenated FHIR codes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;draft&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request is being drafted, not yet actionable&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;active&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request is active&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;on_hold&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request is paused&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;entered_in_error&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request was entered in error&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ended&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request has ended&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;completed&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request has been fulfilled&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;revoked&amp;lt;/code&amp;gt;&lt;br /&gt;
| Request was revoked/cancelled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;spec.py&amp;lt;/code&amp;gt; derives two groupings from these:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;SERVICE_REQUEST_COMPLETED_CHOICES&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;completed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;revoked&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ended&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;entered_in_error&amp;lt;/code&amp;gt; (terminal states).&lt;br /&gt;
* &amp;lt;code&amp;gt;SERVICE_REQUEST_CANCELLED_CHOICES&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;revoked&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;entered_in_error&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There is no &amp;lt;code&amp;gt;unknown&amp;lt;/code&amp;gt; status.&lt;br /&gt;
&lt;br /&gt;
=== Intent values ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ServiceRequestIntentChoices&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;proposal&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;plan&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directive&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;order&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Priority values ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ServiceRequestPriorityChoices&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;routine&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;urgent&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;asap&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stat&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Category values ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt; reuses &amp;lt;code&amp;gt;ActivityDefinitionCategoryOptions&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;care/emr/resources/activity_definition/spec.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;laboratory&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imaging&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;counselling&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;surgical_procedure&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;education&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bound value sets ==&lt;br /&gt;
&lt;br /&gt;
Each coded &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt; field validates its &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; against a registered Care value set (&amp;lt;code&amp;gt;ValueSetBoundCoding[...]&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Value set slug&lt;br /&gt;
! Composition&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;activity-definition-procedure-code&amp;lt;/code&amp;gt;&lt;br /&gt;
| SNOMED CT &amp;lt;code&amp;gt;is-a 71388002&amp;lt;/code&amp;gt; (Procedure). See [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/care/emr/resources/activity_definition/valueset.py &amp;lt;code&amp;gt;activity_definition/valueset.py&amp;lt;/code&amp;gt;].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;body_site&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;system-body-site-observation&amp;lt;/code&amp;gt;&lt;br /&gt;
| SNOMED CT — explicit limb/joint concepts plus &amp;lt;code&amp;gt;is-a 442083009&amp;lt;/code&amp;gt;. See [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care/blob/develop/care/emr/resources/observation/valueset.py &amp;lt;code&amp;gt;observation/valueset.py&amp;lt;/code&amp;gt;].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Resource specs (API schema) ==&lt;br /&gt;
&lt;br /&gt;
Every spec subclasses &amp;lt;code&amp;gt;EMRResource&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;serialize&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;de_serialize&amp;lt;/code&amp;gt;, with &amp;lt;code&amp;gt;perform_extra_serialization&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;perform_extra_deserialization&amp;lt;/code&amp;gt; hooks — see [[References/Base models &amp;amp;amp; conventions|Base model]]). The base sets &amp;lt;code&amp;gt;__model__ = ServiceRequest&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;__exclude__ = [&amp;amp;quot;encounter&amp;amp;quot;, &amp;amp;quot;healthcare_service&amp;amp;quot;, &amp;amp;quot;locations&amp;amp;quot;]&amp;lt;/code&amp;gt;, so those three fields are handled only by the explicit per-spec hooks.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Spec class&lt;br /&gt;
! Role&lt;br /&gt;
! Adds / overrides&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BaseServiceRequestSpec&amp;lt;/code&amp;gt;&lt;br /&gt;
| shared&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;intent&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;priority&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;do_not_perform&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; (required), &amp;lt;code&amp;gt;body_site&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;occurance&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;patient_instruction&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestWriteSpec&amp;lt;/code&amp;gt;&lt;br /&gt;
| write · shared&lt;br /&gt;
| Adds &amp;lt;code&amp;gt;healthcare_service: UUID4?&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;locations: list[UUID4]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;requester: UUID4?&amp;lt;/code&amp;gt;. Resolves &amp;lt;code&amp;gt;healthcare_service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;requester&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;; stashes &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;obj._locations&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestCreateSpec&amp;lt;/code&amp;gt;&lt;br /&gt;
| write · create&lt;br /&gt;
| Adds required &amp;lt;code&amp;gt;encounter: UUID4&amp;lt;/code&amp;gt;. Resolves the encounter and sets &amp;lt;code&amp;gt;obj.patient = obj.encounter.patient&amp;lt;/code&amp;gt; server-side.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestUpdateSpec&amp;lt;/code&amp;gt;&lt;br /&gt;
| write · update&lt;br /&gt;
| Makes &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;intent&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;priority&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; all optional for partial update.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestReadSpec&amp;lt;/code&amp;gt;&lt;br /&gt;
| read · list&lt;br /&gt;
| Adds &amp;lt;code&amp;gt;created_date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;modified_date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;encounter&amp;lt;/code&amp;gt; (serialized via &amp;lt;code&amp;gt;EncounterListSpec&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; (rendered), &amp;lt;code&amp;gt;requester&amp;lt;/code&amp;gt; (cached &amp;lt;code&amp;gt;UserSpec&amp;lt;/code&amp;gt;). Sets &amp;lt;code&amp;gt;id = external_id&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ServiceRequestRetrieveSpec&amp;lt;/code&amp;gt;&lt;br /&gt;
| read · detail&lt;br /&gt;
| Extends Read with &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;FacilityLocationListSpec&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;healthcare_service&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;HealthcareServiceReadSpec&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;activity_definition&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;ActivityDefinitionReadSpec&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;specimens&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;SpecimenReadSpec&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;diagnostic_reports&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;DiagnosticReportListSpec&amp;lt;/code&amp;gt;), embedded &amp;lt;code&amp;gt;encounter.patient&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;PatientRetrieveSpec&amp;lt;/code&amp;gt;), and audit &amp;lt;code&amp;gt;created_by&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;updated_by&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Write-side behaviour (&amp;lt;code&amp;gt;perform_extra_deserialization&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;healthcare_service&amp;lt;/code&amp;gt;, when provided, is looked up by &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt; and assigned.&lt;br /&gt;
* &amp;lt;code&amp;gt;requester&amp;lt;/code&amp;gt;, when provided, is looked up by &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt; via &amp;lt;code&amp;gt;get_object_or_404(User, ...)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;: the list of UUIDs is stored on &amp;lt;code&amp;gt;obj._locations&amp;lt;/code&amp;gt;; the persisting view/manager translates them to integer IDs for the &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt; array.&lt;br /&gt;
* On create only, &amp;lt;code&amp;gt;encounter&amp;lt;/code&amp;gt; is required, fetched via &amp;lt;code&amp;gt;get_object_or_404(Encounter, ...)&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;obj.patient&amp;lt;/code&amp;gt; is forced to &amp;lt;code&amp;gt;encounter.patient&amp;lt;/code&amp;gt;. Clients cannot set &amp;lt;code&amp;gt;patient&amp;lt;/code&amp;gt; directly.&lt;br /&gt;
&lt;br /&gt;
=== Read-side behaviour (&amp;lt;code&amp;gt;perform_extra_serialization&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; is set to &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;encounter&amp;lt;/code&amp;gt; is serialized with &amp;lt;code&amp;gt;EncounterListSpec&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; come from &amp;lt;code&amp;gt;SingleFacilityTagManager().render_tags(obj)&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;requester&amp;lt;/code&amp;gt;, if set, is a cached &amp;lt;code&amp;gt;UserSpec&amp;lt;/code&amp;gt;.&lt;br /&gt;
* On retrieve only: queries &amp;lt;code&amp;gt;FacilityLocation&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;obj.locations&amp;lt;/code&amp;gt;; serializes &amp;lt;code&amp;gt;healthcare_service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;activity_definition&amp;lt;/code&amp;gt; when present; fetches the related &amp;lt;code&amp;gt;Specimen&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DiagnosticReport&amp;lt;/code&amp;gt; rows that reference this request; embeds the patient (&amp;lt;code&amp;gt;PatientRetrieveSpec&amp;lt;/code&amp;gt;, scoped to &amp;lt;code&amp;gt;obj.facility&amp;lt;/code&amp;gt;) under &amp;lt;code&amp;gt;encounter.patient&amp;lt;/code&amp;gt;; and attaches audit users.&lt;br /&gt;
&lt;br /&gt;
== Methods &amp;amp;amp; save behaviour ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ServiceRequest&amp;lt;/code&amp;gt; inherits &amp;lt;code&amp;gt;save&amp;lt;/code&amp;gt;, soft-delete, and audit behaviour from &amp;lt;code&amp;gt;EMRBaseModel&amp;lt;/code&amp;gt; (see [[References/Base models &amp;amp;amp; conventions|Base model]]). The model defines no custom &amp;lt;code&amp;gt;save&amp;lt;/code&amp;gt; override.&lt;br /&gt;
* The Pydantic write specs enforce all write validation — enums, required &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;, bound value sets, encounter requirement — during &amp;lt;code&amp;gt;de_serialize&amp;lt;/code&amp;gt;, not Django field choices. The DB columns are plain &amp;lt;code&amp;gt;CharField&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;JSONField&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;patient&amp;lt;/code&amp;gt; is never accepted from the client; it is derived from &amp;lt;code&amp;gt;encounter.patient&amp;lt;/code&amp;gt; on create.&lt;br /&gt;
* Related &amp;lt;code&amp;gt;Specimen&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DiagnosticReport&amp;lt;/code&amp;gt; records reference the request via their own &amp;lt;code&amp;gt;service_request&amp;lt;/code&amp;gt; FK. The detail view (&amp;lt;code&amp;gt;Retrieve&amp;lt;/code&amp;gt;) reads them back rather than storing them on the request.&lt;br /&gt;
&lt;br /&gt;
== API integration notes ==&lt;br /&gt;
&lt;br /&gt;
Things that trip up integrators:&lt;br /&gt;
&lt;br /&gt;
* Spellings follow Care conventions, not FHIR: status/intent/priority are snake_case enum values, and &amp;lt;code&amp;gt;occurance&amp;lt;/code&amp;gt; keeps its model typo.&lt;br /&gt;
* &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; is required and &amp;lt;code&amp;gt;body_site&amp;lt;/code&amp;gt; optional; both are single &amp;lt;code&amp;gt;Coding&amp;lt;/code&amp;gt; objects validated against their bound value sets — not &amp;lt;code&amp;gt;CodeableConcept&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;intent&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;priority&amp;lt;/code&amp;gt; are validated as enums by the spec even though the columns are free &amp;lt;code&amp;gt;CharField&amp;lt;/code&amp;gt;s.&lt;br /&gt;
* Write &amp;lt;code&amp;gt;healthcare_service&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;requester&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;external_id&amp;lt;/code&amp;gt;/UUIDs and let the server resolve them. &amp;lt;code&amp;gt;encounter&amp;lt;/code&amp;gt; (UUID) is required on create and determines the patient.&lt;br /&gt;
* &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; store ID arrays for fast filtering — drive them through the location/tag managers rather than setting the raw arrays from clients.&lt;br /&gt;
&lt;br /&gt;
== Related models ==&lt;br /&gt;
&lt;br /&gt;
* [[References/Activity Definition]] — template a request can be created from; supplies the &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt; enum and &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; value set&lt;br /&gt;
* [[References/Encounter]] — required context on create; supplies the patient&lt;br /&gt;
* [[References/Patient]] — subject, derived from the encounter&lt;br /&gt;
* [[References/Specimen]] — specimens collected for a request&lt;br /&gt;
* [[References/Diagnostic Report]] — reports produced for a request&lt;br /&gt;
* [[References/Observation]] — shares the body-site value set&lt;br /&gt;
* [[References/Healthcare Service]] — service fulfilling the request&lt;br /&gt;
* [[References/Location]] — facility locations the request applies to&lt;br /&gt;
* [[References/User &amp;amp;amp; Skills|User]] — requester / audit users&lt;br /&gt;
&lt;br /&gt;
{{Related}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>