diff --git a/.gitignore b/.gitignore index 62c89355..15b778d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -.idea/ \ No newline at end of file +.idea/ +.venv +.venv/* \ No newline at end of file diff --git a/api-reference/general-tools/medical/voice/end-transcribe.mdx b/api-reference/general-tools/medical/voice/end-transcribe.mdx new file mode 100644 index 00000000..127747a1 --- /dev/null +++ b/api-reference/general-tools/medical/voice/end-transcribe.mdx @@ -0,0 +1,4 @@ +--- +title: End Transcribe +openapi: POST /api/v1/transaction/commit/{session_id} +--- \ No newline at end of file diff --git a/api-reference/general-tools/medical/voice/retrieve-transcribe.mdx b/api-reference/general-tools/medical/voice/retrieve-transcribe.mdx index 165847e6..7c11d34a 100644 --- a/api-reference/general-tools/medical/voice/retrieve-transcribe.mdx +++ b/api-reference/general-tools/medical/voice/retrieve-transcribe.mdx @@ -1,4 +1,4 @@ --- -title: Retrive Transcribe -openapi: GET /health/api/v1/fhir/retrieve +title: Retrieve Result +openapi: GET /voice-record/api/status/{session_id} --- \ No newline at end of file diff --git a/api-reference/general-tools/medical/voice/voice.yaml b/api-reference/general-tools/medical/voice/voice.yaml index 2c6d7fc1..743f38ff 100644 --- a/api-reference/general-tools/medical/voice/voice.yaml +++ b/api-reference/general-tools/medical/voice/voice.yaml @@ -218,6 +218,70 @@ paths: $ref: "#/components/schemas/Unauthorized" security: - auth: [] + /api/v1/transaction/commit/{session_id}: + post: + description: |- + This API is used to end all audio transmissions for the given session ID. It commits the transaction and finalizes the session. + + parameters: + - name: session_id + in: path + required: true + schema: + type: string + responses: + "200": + description: Successful transaction commit. + content: + application/json: + schema: + type: object + properties: + status: + type: string + example: success + message: + type: string + example: Transaction committed successfully + data: + type: object + example: + { + "c_id": "12345678910111213", + "b_id": "12345678910111213", + "mode": "consultation", + "meta_data": "{'client_version': '2.1.0', 'device_type': 'iPhone 13', 'language': 'en-US', 'priority': 'high', 'message': {'hello': 'there'}}", + "status": "COMMIT", + "c_at": "2025-03-07T10:23:25Z", + "actor": "430b579b-e979-4c90-aa73-02af8fe9rfdad", + "sqs_files": ['1.m4a', '2.m4a'], + "transfer": "Stream", + "files": ['1.m4a', '2.m4a'], + "txn_id": "R-S3-195D5131-D014-56A8-ACCF-2F8F2D230DEC", + "u_at": "2025-03-07T10:23:25Z", + "user_status": "COMMIT" + } + "404": + description: Transaction not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + example: failed + error: + type: string + example: Transaction not found + "401": + description: Unauthorized. Invalid or missing authentication. + content: + application/json: + schema: + $ref: "#/components/schemas/Unauthorized" + security: + - auth: [] components: schemas: diff --git a/api-reference/user-app/records/records.yaml b/api-reference/user-app/records/records.yaml index 7eaa7b0a..b4a23fff 100644 --- a/api-reference/user-app/records/records.yaml +++ b/api-reference/user-app/records/records.yaml @@ -737,6 +737,71 @@ paths: description: Something went wrong security: - auth: [] + + /voice-record/api/status/{session_id}: + get: + summary: Retrieve voice records result + description: Retrieve a voice record result based on the given session id. + parameters: + - name: session_id + in: query + required: true + description: The unique identifier for the voice record is session id. + schema: + type: string + responses: + "200": + description: Successful response + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - queued + - inprogress + - completed + - deleted + - error + - partial_completed + example: "completed" + error: + type: object + example: {} + data: + type: object + properties: + output: + type: object + properties: + fhir: + type: string + example: "eyJlbnRyeSI6W3sicmVxdWVzdCI6eyJtZXRob2QiOiJQVVQiLCJ1cmwiOiJDb25kaXRpb24vMjMxZWIwMGQtNzNkNC01MmM2LTg1OTgtZTMxYjU5YzVmOTRiIn0sInJlc291cmNlIjp7ImlkIjoiMjMxZWIwMGQtNzNkNC01MmM2LTg1OTgtZTMxYjU5YzVmOTRiIiwiZXh0ZW5zaW9uIjpbeyJ1cmwiOiJodHRwczovL2VrYS5jYXJlL2NhcmVfY29udGV4dF9pZCIsInZhbHVlU3RyaW5nIjoiMzBFNzE2RjQtQTlFMS00OUU5LUI2REYtM0FGN0QyN0EwMUU5In1dLCJhc3NlcnRlciI6eyJkaXNwbGF5IjoiZHVtbXkgZG9jdG9yIiwicmVmZXJlbmNlIjoiUHJhY3RpdGlvbmVyLzE2MTQ5MjU4NjY1MzI4NyJ9LCJjYXRlZ29yeSI6W3siY29kaW5nIjpbeyJjb2RlIjoicHJvYmxlbS1saXN0LWl0ZW0iLCJkaXNwbGF5IjoiUHJvYmxlbSBMaXN0IEl0ZW0iLCJzeXN0ZW0iOiJodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL2NvbmRpdGlvbi1jYXRlZ29yeSJ9XX1dLCJjbGluaWNhbFN0YXR1cyI6eyJjb2RpbmciOlt7ImNvZGUiOiJhY3RpdmUiLCJkaXNwbGF5IjoiYWN0aXZlIiwic3lzdGVtIjoiaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9jb25kaXRpb24tY2xpbmljYWwifV19LCJjb2RlIjp7ImNvZGluZyI6W3siY29kZSI6ImxvY2FsZS0zOGE3OTQ1NjU0M2U1YjhiMmExYmI3NzNkM2I1NDllNCIsImRpc3BsYXkiOiJoeXBlcnRlbnNpb24iLCJzeXN0ZW0iOiJodHRwczovL3BhcmNoaS5la2EuY2FyZSJ9XX0sImVuY291bnRlciI6eyJyZWZlcmVuY2UiOiJFbmNvdW50ZXIvMDFhMzNjMmYtMDNiMC01NzI3LWEwNmYtNjYwYjUzYjllYjliIn0sImV2aWRlbmNlIjpbeyJjb2RlIjpbeyJjb2RpbmciOlt7ImNvZGUiOiIzMEU3MTZGNC1BOUUxLTQ5RTktQjZERi0zQUY3RDI3QTAxRTkiLCJzeXN0ZW0iOiJodHRwOi8vZWthLmNhcmUvcHJlc2NyaXB0aW9ucyJ9XX1dfV0sImlkZW50aWZpZXIiOlt7InN5c3RlbSI6Imh0dHBzOi8vcGFyY2hpLmVrYS5jYXJlIiwidmFsdWUiOiIzMEU3MTZGNC1BOUUxLTQ5RTktQjZERi0zQUY3RDI3QTAxRTkjbG9jYWxlLTM4YTc5NDU2NTQzZTViOGIyYTFiYjc3M2QzYjU0OWU0In1dLCJvbnNldERhdGVUaW1lIjoiMjAxOS0wMi0yMlQwNTo0MTozNi4wODgwMDArMDA6MDAiLCJyZWNvcmRlZERhdGUiOiIyMDI1LTAyLTIyVDA1OjQxOjM2LjA4ODAwMCswMDowMCIsInN1YmplY3QiOnsiZGlzcGxheSI6ImR1bW15X3BhdGllbnQiLCJyZWZlcmVuY2UiOiJQYXRpZW50L2R1bW15X3BhdGllbnRfb2lkIn0sInZlcmlmaWNhdGlvblN0YXR1cyI6eyJjb2RpbmciOlt7ImNvZGUiOiJjb25maXJtZWQiLCJkaXNwbGF5IjoiY29uZmlybWVkIiwic3lzdGVtIjoiaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9jb25kaXRpb24tY2xpbmljYWwifV19LCJyZXNvdXJjZVR5cGUiOiJDb25kaXRpb24ifX0seyJyZXF1ZXN0Ijp7Im1ldGhvZCI6IlBVVCIsInVybCI6Ik9ic2VydmF0aW9uLzQ5N2MyOTY3LThiNWUtNThjYS05ZTBkLTM5YTZiNGIxZGI4YSJ9LCJyZXNvdXJjZSI6eyJpZCI6IjQ5N2MyOTY3LThiNWUtNThjYS05ZTBkLTM5YTZiNGIxZGI4YSIsImV4dGVuc2lvbiI6W3sidXJsIjoiaHR0cHM6Ly9la2EuY2FyZS9jYXJlX2NvbnRleHRfaWQiLCJ2YWx1ZVN0cmluZyI6IjMwRTcxNkY0LUE5RTEtNDlFOS1CNkRGLTNBRjdEMjdBMDFFOSJ9XSwiY2F0ZWdvcnkiOlt7ImNvZGluZyI6W3siY29kZSI6InN5bXB0b20iLCJkaXNwbGF5Ijoic3ltcHRvbSIsInN5c3RlbSI6Imh0dHA6Ly9tZGIuZWthLmNhcmUifV19XSwiY29kZSI6eyJjb2RpbmciOlt7ImNvZGUiOiJsb2NhbGUtMWQ2ZTc2YmZlZmNkYmQ1NTg0ZWM1MmZiYjAwNDEwZTYiLCJkaXNwbGF5Ijoic3RvbWFjaCBwYWluIiwic3lzdGVtIjoiaHR0cHM6Ly9wYXJjaGkuZWthLmNhcmUifV19LCJlbmNvdW50ZXIiOnsicmVmZXJlbmNlIjoiRW5jb3VudGVyLzAxYTMzYzJmLTAzYjAtNTcyNy1hMDZmLTY2MGI1M2I5ZWI5YiJ9LCJpZGVudGlmaWVyIjpbeyJzeXN0ZW0iOiJodHRwczovL3BhcmNoaS5la2EuY2FyZSIsInZhbHVlIjoiMzBFNzE2RjQtQTlFMS00OUU5LUI2REYtM0FGN0QyN0EwMUU5I2xvY2FsZS0xZDZlNzZiZmVmY2RiZDU1ODRlYzUyZmJiMDA0MTBlNiJ9XSwicGVyZm9ybWVyIjpbeyJkaXNwbGF5IjoiZHVtbXkgZG9jdG9yIiwicmVmZXJlbmNlIjoiUHJhY3RpdGlvbmVyLzE2MTQ5MjU4NjY1MzI4NyJ9XSwic3RhdHVzIjoicHJlbGltaW5hcnkiLCJzdWJqZWN0Ijp7ImRpc3BsYXkiOiJkdW1teV9wYXRpZW50IiwicmVmZXJlbmNlIjoiUGF0aWVudC9kdW1teV9wYXRpZW50X29pZCJ9LCJyZXNvdXJjZVR5cGUiOiJPYnNlcnZhdGlvbiJ9fSx7InJlcXVlc3QiOnsibWV0aG9kIjoiUFVUIiwidXJsIjoiT2JzZXJ2YXRpb24vYzdkZmU5MzQtOTlmMy01ZjlkLTg0YmUtMjU5ZGI0MTFmYzMxIn0sInJlc291cmNlIjp7ImlkIjoiYzdkZmU5MzQtOTlmMy01ZjlkLTg0YmUtMjU5ZGI0MTFmYzMxIiwiZXh0ZW5zaW9uIjpbeyJ1cmwiOiJodHRwczovL2VrYS5jYXJlL2NhcmVfY29udGV4dF9pZCIsInZhbHVlU3RyaW5nIjoiMzBFNzE2RjQtQTlFMS00OUU5LUI2REYtM0FGN0QyN0EwMUU5In1dLCJjYXRlZ29yeSI6W3siY29kaW5nIjpbeyJjb2RlIjoic3ltcHRvbSIsImRpc3BsYXkiOiJzeW1wdG9tIiwic3lzdGVtIjoiaHR0cDovL21kYi5la2EuY2FyZSJ9XX1dLCJjb2RlIjp7ImNvZGluZyI6W3siY29kZSI6ImxvY2FsZS03ZmU4NDViMmU2MmNmYTkwNzUwOTg4ZGNkM2JjNGNjYiIsImRpc3BsYXkiOiJuYXVzZWEiLCJzeXN0ZW0iOiJodHRwczovL3BhcmNoaS5la2EuY2FyZSJ9XX0sImVuY291bnRlciI6eyJyZWZlcmVuY2UiOiJFbmNvdW50ZXIvMDFhMzNjMmYtMDNiMC01NzI3LWEwNmYtNjYwYjUzYjllYjliIn0sImlkZW50aWZpZXIiOlt7InN5c3RlbSI6Imh0dHBzOi8vcGFyY2hpLmVrYS5jYXJlIiwidmFsdWUiOiIzMEU3MTZGNC1BOUUxLTQ5RTktQjZERi0zQUY3RDI3QTAxRTkjbG9jYWxlLTdmZTg0NWIyZTYyY2ZhOTA3NTA5ODhkY2QzYmM0Y2NiIn1dLCJwZXJmb3JtZXIiOlt7ImRpc3BsYXkiOiJkdW1teSBkb2N0b3IiLCJyZWZlcmVuY2UiOiJQcmFjdGl0aW9uZXIvMTYxNDkyNTg2NjUzMjg3In1dLCJzdGF0dXMiOiJwcmVsaW1pbmFyeSIsInN1YmplY3QiOnsiZGlzcGxheSI6ImR1bW15X3BhdGllbnQiLCJyZWZlcmVuY2UiOiJQYXRpZW50L2R1bW15X3BhdGllbnRfb2lkIn0sInJlc291cmNlVHlwZSI6Ik9ic2VydmF0aW9uIn19LHsicmVxdWVzdCI6eyJtZXRob2QiOiJQVVQiLCJ1cmwiOiJNZWRpY2F0aW9uUmVxdWVzdC81YTA3ZjM3MS1iOGNhLTViNmEtOWExOC1mMmMzYTZlN2Y1NDMifSwicmVzb3VyY2UiOnsiaWQiOiI1YTA3ZjM3MS1iOGNhLTViNmEtOWExOC1mMmMzYTZlN2Y1NDMiLCJleHRlbnNpb24iOlt7InVybCI6Imh0dHBzOi8vZWthLmNhcmUvY2FyZV9jb250ZXh0X2lkIiwidmFsdWVTdHJpbmciOiIzMEU3MTZGNC1BOUUxLTQ5RTktQjZERi0zQUY3RDI3QTAxRTkifV0sImF1dGhvcmVkT24iOiIyMDI1LTAyLTIyVDA1OjQxOjM2LjA4ODAwMCswMDowMCIsImRvc2FnZUluc3RydWN0aW9uIjpbeyJhZGRpdGlvbmFsSW5zdHJ1Y3Rpb24iOlt7ImNvZGluZyI6W3siZGlzcGxheSI6IjYtMC0wIiwic3lzdGVtIjoiaHR0cHM6Ly9wYXJjaGkuZWthLmNhcmUvIn1dfV0sImRvc2VBbmRSYXRlIjpbeyJ0eXBlIjp7ImNvZGluZyI6W3siY29kZSI6Im9yZGVyZWQiLCJkaXNwbGF5IjoiT3JkZXJlZCIsInN5c3RlbSI6Imh0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vZG9zZS1yYXRlLXR5cGUifV19fV0sInRleHQiOiJyZWZyYWluIGZyb20gZWF0aW5nIG9pbHkgZm9vZHMiLCJ0aW1pbmciOnsiY29kZSI6eyJjb2RpbmciOlt7InN5c3RlbSI6Imh0dHBzOi8vcGFyY2hpLmVrYS5jYXJlLyJ9XX0sInJlcGVhdCI6eyJmcmVxdWVuY3kiOjMsInBlcmlvZCI6MSwicGVyaW9kVW5pdCI6ImQiLCJ3aGVuIjpbIk1PUk4iXX19fV0sImVuY291bnRlciI6eyJyZWZlcmVuY2UiOiJFbmNvdW50ZXIvMDFhMzNjMmYtMDNiMC01NzI3LWEwNmYtNjYwYjUzYjllYjliIn0sImlkZW50aWZpZXIiOlt7InN5c3RlbSI6Imh0dHBzOi8vcGFyY2hpLmVrYS5jYXJlIiwidXNlIjoib2ZmaWNpYWwiLCJ2YWx1ZSI6IjMwRTcxNkY0LUE5RTEtNDlFOS1CNkRGLTNBRjdEMjdBMDFFOSNsb2NhbGUtODc0MzU1YmFlY2EyN2JjNGZmMTc3MTNlZTg4ZTgzZDMifV0sImludGVudCI6Im9yZGVyIiwibWVkaWNhdGlvbkNvZGVhYmxlQ29uY2VwdCI6eyJjb2RpbmciOlt7ImNvZGUiOiJsb2NhbGUtODc0MzU1YmFlY2EyN2JjNGZmMTc3MTNlZTg4ZTgzZDMiLCJkaXNwbGF5Ijoibm9yZmxveCA0MG1nIHRhYmxldCIsInN5c3RlbSI6Imh0dHA6Ly9la2EuY2FyZS9tZGIifV19LCJyZXF1ZXN0ZXIiOnsiZGlzcGxheSI6ImR1bW15IGRvY3RvciIsInJlZmVyZW5jZSI6IlByYWN0aXRpb25lci8xNjE0OTI1ODY2NTMyODcifSwic3RhdHVzIjoiYWN0aXZlIiwic3ViamVjdCI6eyJkaXNwbGF5IjoiZHVtbXlfcGF0aWVudCIsInJlZmVyZW5jZSI6IlBhdGllbnQvZHVtbXlfcGF0aWVudF9vaWQifSwicmVzb3VyY2VUeXBlIjoiTWVkaWNhdGlvblJlcXVlc3QifX0seyJyZXF1ZXN0Ijp7Im1ldGhvZCI6IlBPU1QiLCJ1cmwiOiJDb21wb3NpdGlvbiJ9LCJyZXNvdXJjZSI6eyJleHRlbnNpb24iOlt7InVybCI6Imh0dHBzOi8vZWthLmNhcmUvY2FyZV9jb250ZXh0X2lkIiwidmFsdWVTdHJpbmciOiIzMEU3MTZGNC1BOUUxLTQ5RTktQjZERi0zQUY3RDI3QTAxRTkifV0sImF1dGhvciI6W3siZGlzcGxheSI6ImR1bW15IGRvY3RvciIsInJlZmVyZW5jZSI6IlByYWN0aXRpb25lci8xNjE0OTI1ODY2NTMyODcifV0sImRhdGUiOiIyMDI1LTAyLTIyVDA1OjQxOjM2LjA4ODAwMCswMDowMCIsImlkZW50aWZpZXIiOnsic3lzdGVtIjoiaHR0cHM6Ly9wYXJjaGkuZWthLmNhcmUiLCJ2YWx1ZSI6IjMwRTcxNkY0LUE5RTEtNDlFOS1CNkRGLTNBRjdEMjdBMDFFOSJ9LCJzZWN0aW9uIjpbeyJlbnRyeSI6W3sicmVmZXJlbmNlIjoiQ29uZGl0aW9uLzIzMWViMDBkLTczZDQtNTJjNi04NTk4LWUzMWI1OWM1Zjk0YiJ9XSwidGl0bGUiOiJDb25kaXRpb24ifSx7ImVudHJ5IjpbeyJyZWZlcmVuY2UiOiJPYnNlcnZhdGlvbi80OTdjMjk2Ny04YjVlLTU4Y2EtOWUwZC0zOWE2YjRiMWRiOGEifSx7InJlZmVyZW5jZSI6Ik9ic2VydmF0aW9uL2M3ZGZlOTM0LTk5ZjMtNWY5ZC04NGJlLTI1OWRiNDExZmMzMSJ9XSwidGl0bGUiOiJPYnNlcnZhdGlvbiJ9LHsiZW50cnkiOlt7InJlZmVyZW5jZSI6Ik1lZGljYXRpb25SZXF1ZXN0LzVhMDdmMzcxLWI4Y2EtNWI2YS05YTE4LWYyYzNhNmU3ZjU0MyJ9XSwidGl0bGUiOiJNZWRpY2F0aW9uUmVxdWVzdCJ9XSwic3RhdHVzIjoicHJlbGltaW5hcnkiLCJzdWJqZWN0Ijp7ImRpc3BsYXkiOiJkdW1teV9wYXRpZW50IiwicmVmZXJlbmNlIjoiUGF0aWVudC9kdW1teV9wYXRpZW50X29pZCJ9LCJ0aXRsZSI6IlByZXNjcmlwdGlvbiIsInR5cGUiOnsiY29kaW5nIjpbeyJjb2RlIjoiNDQwNTQ1MDA2IiwiZGlzcGxheSI6IlByZXNjcmlwdGlvbiByZWNvcmQiLCJzeXN0ZW0iOiJodHRwOi8vc25vbWVkLmluZm8vc2N0In1dfSwicmVzb3VyY2VUeXBlIjoiQ29tcG9zaXRpb24ifX1dLCJ0eXBlIjoiYmF0Y2giLCJyZXNvdXJjZVR5cGUiOiJCdW5kbGUifQ==" + + "404": + description: when request session id has no data + content: + application/json: + schema: + type: object + properties: + message: + type: string + example: Not Found + "401": + description: Unauthorized. Invalid or missing authentication. + content: + application/json: + schema: + type: object + properties: + message: + type: string + example: Unauthorized + security: + - auth: [] components: schemas: DocumentTypeQueryParam: diff --git a/docs.json b/docs.json index 26cbd9ae..3fc19ff6 100644 --- a/docs.json +++ b/docs.json @@ -101,7 +101,9 @@ "icon": "microphone-lines", "pages": [ "api-reference/general-tools/medical/voice/upload-voice", - "api-reference/general-tools/medical/voice/retrieve-transcribe" + "api-reference/general-tools/medical/voice/retrieve-transcribe", + "api-reference/general-tools/medical/voice/end-transcribe" + ] } ] diff --git a/mint.json b/mint.json index 58032803..25d798c4 100644 --- a/mint.json +++ b/mint.json @@ -190,7 +190,8 @@ "icon": "microphone-lines", "pages": [ "api-reference/general-tools/medical/voice/upload-voice", - "api-reference/general-tools/medical/voice/retrieve-transcribe" + "api-reference/general-tools/medical/voice/retrieve-transcribe", + "api-reference/general-tools/medical/voice/end-transcribe" ] } ]