Skip to content

πŸ”₯ Backend для сСрвиса Β«ΠžΠ½Π»Π°ΠΈΜ†Π½ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈΒ»

License

Notifications You must be signed in to change notification settings

rovezuka/online-recommendations-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Backend для сСрвиса Β«ΠžΠ½Π»Π°ΠΈΜ†Π½ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈΒ»

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡ Π½Π° Ruby, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΈΜ† прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ (ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°ΠΌ) ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ с мСдицинскими спСциалистами ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π½Π° основС Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΡ… мСдицинских Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· внСшнСго API.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»

  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° запросов Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ
  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· мСдицинских Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· внСшнСго API 3. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈΜ† ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°ΠΌ

Π§Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ создано

МодСли

  • ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ (ЀИО, Π΄Π°Ρ‚Π° роТдСния, Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, email)

  • Запрос Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ (ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚, тСкст запроса, Π΄Π°Ρ‚Π° создания)

  • РСкомСндация (запрос Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ, тСкст Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ)

Endpoints

  • POST /consultation_requests - созданиС запроса Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ

  • POST /consultation_requests/:request_id/recommendations - созданиС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ запроса Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ

  • GET /patients/:patient_id/recommendations - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈΜ† для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°

API

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π²Π½Π΅ΡˆΠ½ΠΈΠΈΜ† API для Π°Π½Π°Π»ΠΈΠ·Π° мСдицинских Π΄Π°Π½Π½Ρ‹Ρ… (OpenFDA).

Database

PostgreSQL: 1.1

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

dry-rb: валидация Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ 'dry-validation'

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π­Ρ‚ΠΈ инструкции ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° вашСй локальной машинС.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

  • ruby "3.2.2"

  • rails "7.0.8"

  • PostgreSQL

  • dry-rb

Установка

Пошаговая инструкция ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ копию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° вашСй локальной машинС.

  1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:
git clone https://github.com/rovezuka/online-recommendations-service
  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
cd online-recommendations-service
  1. УстановитС зависимости:
bundle install
  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:
rails db:create
rails db:migrate
  1. ЗапуститС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр:
rails server

ИспользованиС

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°:

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ rails console
Patient.create(full_name: 'Иван Иванов', date_of_birth: '1990-01-01', phone_number: '123-456-7890', email: 'ivan@example.com')

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запросов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· эндпоинтов Π² Postman:

POST /consultation_requests - созданиС запроса Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ

Π’ΠΈΠΏ запроса: POST URL: http://localhost:3000/consultation_requests

Content-Type: application/json

Body (raw JSON):

{
  "patient_id": 1,
  "text": "ΠŸΡ€ΠΎΡˆΡƒ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ."
}

POST /consultation_requests/:request_id/recommendations - созданиС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ запроса Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ

Π’ΠΈΠΏ запроса: POST

URL: http://localhost:3000/consultation_requests/1/recommendations (Π³Π΄Π΅ 1 - ID запроса Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ)

Content-Type: application/json

GET /patients/:patient_id/recommendations - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°

Π’ΠΈΠΏ запроса: GET

URL: http://localhost:3000/patients/1/recommendations (Π³Π΄Π΅ 1 - ID ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ)

ЛицСнзия

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ Π² соотвСтствии с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT - подробности см. Π² Ρ„Π°ΠΉΠ»Π΅ LICENSE.md.

About

πŸ”₯ Backend для сСрвиса Β«ΠžΠ½Π»Π°ΠΈΜ†Π½ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈΒ»

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published