From a71bed1e18f4a69b32b7f253e0d8ffe33ba3c612 Mon Sep 17 00:00:00 2001 From: Miwory Date: Thu, 13 Nov 2025 10:10:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B0=D1=82=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apps/remd/v1/router.py | 7 ++++++- src/apps/users/v1/router.py | 11 +++++++++-- src/clients/tdn/api.py | 39 ++++++++++++++++++++++++++----------- 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/apps/remd/v1/router.py b/src/apps/remd/v1/router.py index 9b0d31c..8f8f04e 100644 --- a/src/apps/remd/v1/router.py +++ b/src/apps/remd/v1/router.py @@ -1,3 +1,4 @@ +from datetime import UTC from logging import getLogger from fastapi import APIRouter @@ -12,4 +13,8 @@ router = APIRouter( @router.get('/callback') -async def callback(): ... +async def callback(): + from datetime import datetime + + msg = f'CALLBCACK Current datetime: {datetime.now(UTC).isoformat()}' + logger.info(msg) diff --git a/src/apps/users/v1/router.py b/src/apps/users/v1/router.py index aa23c72..1a64bcc 100644 --- a/src/apps/users/v1/router.py +++ b/src/apps/users/v1/router.py @@ -178,6 +178,11 @@ async def aemd(user: Annotated[User, Depends(login)]): docs = await c.aemd_api.searchRegistryItem(patient_snils=snils) doc = docs['items'][0] + from datetime import datetime + + msg = f'AEMD Current datetime: {datetime.now(UTC).isoformat()}' + logger.info(msg) + return await c.aemd_api.demandContent( messageId='test123', emdrId=doc['emdrId'] ) @@ -195,8 +200,10 @@ async def measurement( serial_number: Annotated[str, Body()], ekg: UploadFile, ): + # patient = await c.tdn_api.patient_search(tdn_access_token, user.vita_id) + patientUid = 'e5708e5a-62e0-4318-a510-7860a31d92d9' observations = await c.tdn_api.observations_search( - tdn_access_token, user.vita_id + tdn_access_token, patientUid ) if observations.total == 0: @@ -336,7 +343,7 @@ async def measurement( # EKG await c.tdn_api.ekg( tdn_access_token, - user.vita_id, + patientUid, serial_number, ekg, ) diff --git a/src/clients/tdn/api.py b/src/clients/tdn/api.py index 542c369..adc3e50 100644 --- a/src/clients/tdn/api.py +++ b/src/clients/tdn/api.py @@ -40,20 +40,28 @@ class TDN_API(AsyncClient): raise e.UnknownException async def patient_search(self, access_token: str, vitaId: str): - data = quote(dumps({'vitaId': vitaId})) + query = ( + quote(dumps({'where': {'vitaId': vitaId}})) + .replace('%7B', '{') + .replace('%7D', '}') + ) - _ = await self.get( - '/ddn/patient/search', - params={'query': data}, + req = await self.get( + f'/ddn/patients/search?query={query}', headers={'Authorization': f'Bearer {access_token}'}, ) + return req.json() + async def observations_search(self, access_token: str, patientUid: str): - data = quote(dumps({'where': {'patientUid': patientUid}})) + query = ( + quote(dumps({'where': {'patientUid': patientUid}})) + .replace('%7B', '{') + .replace('%7D', '}') + ) res = await self.get( - '/ddn/observations/search', - params={'query': data}, + f'/ddn/observations/search?query={query}', headers={'Authorization': f'Bearer {access_token}'}, ) @@ -167,16 +175,25 @@ class TDN_API(AsyncClient): access_token: str, patientUid: str, serial_number: str, - file: UploadFile, + ecg_file: UploadFile, ): req = await self.post( '/ddn/observation/series-values/ecg/krb02', - headers={'Authorization': f'Bearer {access_token}'}, - files={'ekg': (file.filename, file.file, file.content_type)}, - json={ + headers={ + 'Authorization': f'Bearer {access_token}', + 'Content-Type': 'multipart/form-data; boundary=+++', + }, + data={ 'patientUid': patientUid, 'serialNumber': serial_number, }, + files={ + 'ecg': ( + ecg_file.filename, + ecg_file.file, + ecg_file.content_type or 'application/octet-stream', + ) + }, ) match req.status_code: