Единая платформа цифрового здравоохранения Узбекистана
0.11.1 - ci-build
Uzbekistan Digital Health Platform, опубликовано Ministry of Health of the Republic of Uzbekistan. Это руководство не является санкционированной публикацией; это непрерывная сборка для версии 0.11.1, созданной FHIR (HL7® FHIR® Standard) CI Build. Эта версия основана на нынешнем содержании https://github.com/uzinfocom-org/digital-health-ig/ и регулярно изменяется. Смотрите каталог опубликованных версий
| Draft по состоянию на 2026-10-19 |
{
"resourceType" : "OperationDefinition",
"id" : "patient-attach",
"language" : "ru",
"text" : {
"status" : "generated",
"div" : "<div xml:lang=\"ru\" lang=\"ru\"><hr/><p><b>Russian</b></p><hr/><p class=\"res-header-id\"><b>Сгенерированный нарратив: OperationDefinition patient-attach</b></p><a name=\"ru-patient-attach\"> </a><a name=\"ru-hcpatient-attach\"> </a><p>URL: [base]/Patient/$attach</p><p>URL: [base]/Patient/[id]/$attach</p><h3>Параметры</h3><table class=\"grid\"><tr><td><b>Использовать</b></td><td><b>Наименование</b></td><td><b>Сфера действия</b></td><td><b>Кардинальность</b></td><td><b>Тип</b></td><td><b>Привязка</b></td><td><b>Документация</b></td></tr><tr><td>IN</td><td>patientIdentifier</td><td>type</td><td>0..1</td><td><a href=\"http://hl7.org/fhir/R5/datatypes.html#Identifier\">Identifier</a></td><td/><td><div><p>PINFL (NI) of the patient to attach. Mandatory at type level, rejected with code <code>invalid</code> at instance level, where the patient is taken from the URL. <code>Identifier.value</code> is always treated as a PINFL and is checked for correctness; <code>Identifier.system</code> is ignored. Passed as valueIdentifier.</p>\n</div></td></tr><tr><td>IN</td><td>patientBirthDate</td><td>type</td><td>0..1</td><td><a href=\"http://hl7.org/fhir/R5/datatypes.html#date\">date</a></td><td/><td><div><p>Date of birth of the patient, used as an additional matching criterion when the patient is looked up in the state registries. It does not filter the local patient, which is matched by PINFL only. Accepted at type level only. Passed as valueDate.</p>\n</div></td></tr><tr><td>IN</td><td>organization</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R5/references.html#Reference\">Reference</a> | <a href=\"http://hl7.org/fhir/R5/datatypes.html#Identifier\">Identifier</a></td><td/><td><div><p>The healthcare organization the patient is attached to; written to Patient.managingOrganization. Passed either as valueReference with a relative literal reference <code>Organization/[id]</code>, or as valueIdentifier with a business identifier that must match exactly one Organization (<code>Identifier.system</code> is ignored). Absolute URLs, logical references and references to other resource types are rejected with code <code>value</code>; supplying both valueReference and valueIdentifier is rejected with code <code>structure</code>. An organization that does not exist results in HTTP 422 with code <code>not-found</code>.</p>\n</div></td></tr><tr><td>IN</td><td>practitioner</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R5/references.html#Reference\">Reference</a> | <a href=\"http://hl7.org/fhir/R5/datatypes.html#Identifier\">Identifier</a></td><td/><td><div><p>The practitioner the patient is attached to; replaces Patient.generalPractitioner as a whole. Passed either as valueReference with a relative literal reference <code>Practitioner/[id]</code>, or as valueIdentifier with a business identifier that must match exactly one Practitioner (<code>Identifier.system</code> is ignored). PractitionerRole is not accepted. The same reference and identifier rules as for <code>organization</code> apply.</p>\n</div></td></tr><tr><td>IN</td><td>attachmentDate</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R5/datatypes.html#date\">date</a></td><td/><td><div><p>Date of attachment to the organization in full YYYY-MM-DD format; partial dates are rejected. Defaults to the current server date. Accepted only together with <code>organization</code>; must not be later than the current server date and not earlier than the attachment date already stored on the patient. Passed as valueDate.</p>\n</div></td></tr><tr><td>OUT</td><td>return</td><td/><td>1..1</td><td><a href=\"http://hl7.org/fhir/R5/patient.html\">Patient</a></td><td/><td><div><p>The updated Patient resource. If the call changed nothing, the current version is returned and no new version is created.</p>\n</div></td></tr></table><div><p>At least one of <code>organization</code> and <code>practitioner</code> must be supplied, otherwise an OperationOutcome with code <code>required</code> is returned. Changing one side of the attachment detaches the other: when the organization changes and no <code>practitioner</code> is supplied, Patient.generalPractitioner is cleared; when the practitioner changes and no <code>organization</code> is supplied, Patient.managingOrganization is cleared and the attachment date is set to the current server date. When the supplied organization equals the current one, neither the reference nor the attachment date is changed. Repeated identical calls do not create a new version of the Patient. At type level the patient is resolved by PINFL in the same way as Patient/$populate and is created if it does not exist yet, so a single type-level call replaces the $populate + $attach pair. If the Patient was modified concurrently between read and write, the operation fails with HTTP 412 and does not overwrite the other change; the client should retry. The operation does not enforce the rule that a patient may change organization no more than once a year, does not check that the practitioner works in the given organization, and does not look at Patient.active or Patient.deceased. Detachment is done with Patient/$detach.</p>\n</div></div>"
},
"url" : "https://dhp.uz/fhir/core/OperationDefinition/patient-attach",
"version" : "0.11.1",
"name" : "PatientAttach",
"title" : "Attach a patient to a healthcare organization and/or a practitioner",
"status" : "draft",
"kind" : "operation",
"experimental" : false,
"date" : "2026-10-19",
"publisher" : "Ministry of Health of the Republic of Uzbekistan",
"contact" : [
{
"name" : "Ministry of Health of the Republic of Uzbekistan",
"telecom" : [
{
"system" : "url",
"value" : "https://gov.uz/en/ssv"
},
{
"system" : "email",
"value" : "info@ssv.uz"
}
]
}
],
"description" : "Attaches a patient to a healthcare organization (Patient.managingOrganization) and/or to a practitioner (Patient.generalPractitioner) in a single call, and records the date of attachment to the organization in the `https://dhp.uz/fhir/core/StructureDefinition/managing-organization-attachment` extension. The organization and the practitioner are checked for existence in the master data registry; each can be named either by a literal reference or by a business identifier, which the server resolves to a literal reference before writing. The operation is invoked with POST and a Parameters body at instance level (Patient/[id]/$attach), where the patient is named in the URL, or at type level (Patient/$attach), where the patient is named by the `patientIdentifier` parameter. The response is the updated Patient resource, not Parameters.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "UZ",
"display" : "Uzbekistan"
}
]
}
],
"purpose" : "A patient is served by the primary-care organization (polyclinic) and the practitioner (family doctor) they are attached to. This operation is the single entry point for recording that attachment on the Patient. Without it a client would have to read the Patient, edit managingOrganization, generalPractitioner and the attachment-date extension by hand and write the resource back with update, with no check that the organization and the practitioner exist. With the operation the client sends only what changes, and the server checks the organization and the practitioner against the master data registry, resolves business identifiers to references, keeps both sides of the attachment consistent and stores the attachment date that the client needs to enforce the once-a-year reattachment rule. The type-level call lets a client that knows only the patient's PINFL attach the patient without a prior Patient/$populate.",
"affectsState" : true,
"code" : "attach",
"comment" : "At least one of `organization` and `practitioner` must be supplied, otherwise an OperationOutcome with code `required` is returned. Changing one side of the attachment detaches the other: when the organization changes and no `practitioner` is supplied, Patient.generalPractitioner is cleared; when the practitioner changes and no `organization` is supplied, Patient.managingOrganization is cleared and the attachment date is set to the current server date. When the supplied organization equals the current one, neither the reference nor the attachment date is changed. Repeated identical calls do not create a new version of the Patient. At type level the patient is resolved by PINFL in the same way as Patient/$populate and is created if it does not exist yet, so a single type-level call replaces the $populate + $attach pair. If the Patient was modified concurrently between read and write, the operation fails with HTTP 412 and does not overwrite the other change; the client should retry. The operation does not enforce the rule that a patient may change organization no more than once a year, does not check that the practitioner works in the given organization, and does not look at Patient.active or Patient.deceased. Detachment is done with Patient/$detach.",
"resource" : [
"Patient"
],
"system" : false,
"type" : true,
"instance" : true,
"parameter" : [
{
"name" : "patientIdentifier",
"use" : "in",
"scope" : [
"type"
],
"min" : 0,
"max" : "1",
"documentation" : "PINFL (NI) of the patient to attach. Mandatory at type level, rejected with code `invalid` at instance level, where the patient is taken from the URL. `Identifier.value` is always treated as a PINFL and is checked for correctness; `Identifier.system` is ignored. Passed as valueIdentifier.",
"type" : "Identifier"
},
{
"name" : "patientBirthDate",
"use" : "in",
"scope" : [
"type"
],
"min" : 0,
"max" : "1",
"documentation" : "Date of birth of the patient, used as an additional matching criterion when the patient is looked up in the state registries. It does not filter the local patient, which is matched by PINFL only. Accepted at type level only. Passed as valueDate.",
"type" : "date"
},
{
"name" : "organization",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "The healthcare organization the patient is attached to; written to Patient.managingOrganization. Passed either as valueReference with a relative literal reference `Organization/[id]`, or as valueIdentifier with a business identifier that must match exactly one Organization (`Identifier.system` is ignored). Absolute URLs, logical references and references to other resource types are rejected with code `value`; supplying both valueReference and valueIdentifier is rejected with code `structure`. An organization that does not exist results in HTTP 422 with code `not-found`.",
"type" : "DataType",
"allowedType" : [
"Reference",
"Identifier"
]
},
{
"name" : "practitioner",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "The practitioner the patient is attached to; replaces Patient.generalPractitioner as a whole. Passed either as valueReference with a relative literal reference `Practitioner/[id]`, or as valueIdentifier with a business identifier that must match exactly one Practitioner (`Identifier.system` is ignored). PractitionerRole is not accepted. The same reference and identifier rules as for `organization` apply.",
"type" : "DataType",
"allowedType" : [
"Reference",
"Identifier"
]
},
{
"name" : "attachmentDate",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Date of attachment to the organization in full YYYY-MM-DD format; partial dates are rejected. Defaults to the current server date. Accepted only together with `organization`; must not be later than the current server date and not earlier than the attachment date already stored on the patient. Passed as valueDate.",
"type" : "date"
},
{
"name" : "return",
"use" : "out",
"min" : 1,
"max" : "1",
"documentation" : "The updated Patient resource. If the call changed nothing, the current version is returned and no new version is created.",
"type" : "Patient"
}
]
}