notebookvb

This commit is contained in:
Vladimir Buzalka
2026-06-14 08:22:25 +02:00
parent 2346ad7739
commit 9133fe9497
9 changed files with 355 additions and 295 deletions
+45 -6
View File
@@ -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()}")