notebookvb
This commit is contained in:
+45
-6
@@ -736,6 +736,8 @@ def get_pacient(patient_id: str) -> dict:
|
||||
RECEPT_SID = "ERECEPT_SIMPLEST_BEZ_DAVKOVANI"
|
||||
RECEPT_STEP_ID = "erecept-gp-request"
|
||||
RECEPT_USER_ECRF_ID = "79488e86-e9e5-47e3-8b19-7e5229427f23" # šablona kliniky
|
||||
CLAUDE_TAG_ID = "c136aeca-0625-4c43-b81f-fc3949ec6ba6" # štítek "CLAUDE"
|
||||
OVERIT_TAG_ID = "9d3271b3-309d-4d20-93ee-285f3e56ba42" # štítek "OVĚŘIT PACIENTA"
|
||||
|
||||
_FILL_MUTATION = """
|
||||
mutation Step_FillECRFForm($input: FillECRFFormInput!) {
|
||||
@@ -751,18 +753,41 @@ mutation PatientRequestSubmission_CreatePatientRequestWithoutReservation(
|
||||
) { id }
|
||||
}"""
|
||||
|
||||
_ASSIGN_TAG_MUTATION = """
|
||||
mutation TagRequestEditModal_AssignTagToRequest(
|
||||
$clinicSlug: String!, $requestId: UUID!, $tagId: UUID!
|
||||
) {
|
||||
tagRequest: assignTagToPatientRequest(
|
||||
clinicSlug: $clinicSlug, patientRequestId: $requestId, tagId: $tagId
|
||||
) { id }
|
||||
}"""
|
||||
|
||||
|
||||
def prirad_stitek(request_id: str, tag_id: str) -> None:
|
||||
"""Přiřadí požadavku štítek (tag) podle jeho UUID."""
|
||||
_gql("TagRequestEditModal_AssignTagToRequest", _ASSIGN_TAG_MUTATION, {
|
||||
"clinicSlug": CLINIC_SLUG,
|
||||
"requestId": request_id,
|
||||
"tagId": tag_id,
|
||||
})
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def zaloz_pozadavek_recept(patient_id: str, leky: str, poznamka: str = "") -> dict:
|
||||
def zaloz_pozadavek_recept(patient_id: str, leky: str, poznamka: str = "",
|
||||
stitek: bool = True, extra_stitky: list = None) -> dict:
|
||||
"""Založí v Medeviu požadavek "Recept na léky" za pacienta.
|
||||
|
||||
Požadavek se objeví v aktivní frontě ordinace stejně, jako by ho pacient
|
||||
založil sám v aplikaci.
|
||||
založil sám v aplikaci — vyplní oba fieldy dotazníku: "Název léků" (leky)
|
||||
a "Poznámka" (poznamka). Volitelně přiřadí štítek CLAUDE pro odlišení
|
||||
automaticky založených požadavků.
|
||||
|
||||
Args:
|
||||
patient_id: UUID pacienta (z hledej_pacienta / get_pacient).
|
||||
leky: Volný text názvů léků (obsah pole "Název léků:").
|
||||
poznamka: Volitelná uživatelská poznámka k požadavku (userNote).
|
||||
patient_id: UUID pacienta (z hledej_pacienta / get_pacient).
|
||||
leky: Volný text názvů léků (pole dotazníku "Název léků:").
|
||||
poznamka: Text do pole dotazníku "Poznámka" (jde přes userNote).
|
||||
stitek: True = přiřadí štítek CLAUDE (default).
|
||||
extra_stitky: Volitelný seznam UUID dalších štítků (např. OVĚŘIT PACIENTA).
|
||||
"""
|
||||
try:
|
||||
fill = _gql("Step_FillECRFForm", _FILL_MUTATION, {
|
||||
@@ -796,12 +821,26 @@ def zaloz_pozadavek_recept(patient_id: str, leky: str, poznamka: str = "") -> di
|
||||
},
|
||||
},
|
||||
)
|
||||
request_id = req["patientRequest"]["id"]
|
||||
|
||||
# Štítek CLAUDE — označení automaticky založených požadavků.
|
||||
tag_ok = False
|
||||
if stitek:
|
||||
prirad_stitek(request_id, CLAUDE_TAG_ID)
|
||||
tag_ok = True
|
||||
|
||||
# Další volitelné štítky (např. OVĚŘIT PACIENTA u nižší jistoty).
|
||||
for tid in (extra_stitky or []):
|
||||
prirad_stitek(request_id, tid)
|
||||
|
||||
return {
|
||||
"ok": True,
|
||||
"request_id": req["patientRequest"]["id"],
|
||||
"request_id": request_id,
|
||||
"fill_id": fill_id,
|
||||
"patient_id": patient_id,
|
||||
"leky": leky,
|
||||
"stitek_claude": tag_ok,
|
||||
"extra_stitky": list(extra_stitky or []),
|
||||
}
|
||||
except Exception:
|
||||
log(f"zaloz_pozadavek_recept chyba: {traceback.format_exc()}")
|
||||
|
||||
Reference in New Issue
Block a user