-
Notifications
You must be signed in to change notification settings - Fork 0
/
referral_request.spec.yaml
250 lines (243 loc) · 7.79 KB
/
referral_request.spec.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
openapi: 3.0.3
info:
title: |
OptionCare CSI integration specifications - OpenAPI 3.0
description: |-
This document contains technical specifications for the integration
between Supply Agencies using AlayaCare and OptionCare CSI using CPR+.
version: 0.0.1
servers:
# TODO: confirm test servers once CSI provides an endpoint
- url: https://optioncarecsi.testing.com
- url: https://optioncarecsi.com
paths:
# TODO: confirm path once CSI provides an endpoint
/referral_request:
post:
tags:
- Agency Request
description: Receive a new authorization request from the supply agency.
operationId: new_auth_request
requestBody:
content:
application/json:
schema:
# TODO: confirm schema format
$ref: '#/components/schemas/ReferralRequest'
required: true
responses:
'200':
description: Successful operation
'400':
description: Invalid data
# TODO: confirm security
# security: ...
components:
schemas:
BaseRequest:
type: object
properties:
request_id:
type: string
format: uuid
example: 9b072ac4-0e84-4b0a-b75b-977579af07fe
agency:
$ref: '#/components/schemas/AgencyMetadata'
client:
$ref: '#/components/schemas/ClientMetadata'
required:
- agency
- client
ReferralRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
properties:
files:
type: array
items:
$ref: '#/components/schemas/FormFile'
form_data:
$ref: '#/components/schemas/FormData'
required:
- form_data
ClientMetadata:
type: object
properties:
id:
type: integer
example: 1
description: Primary key for the client in the ACCloud supply system.
first_name:
type: string
example: Jane
description: First name of the client in the ACCloud supply system.
last_name:
type: string
example: Smith
description: Last name of the client in the ACCloud supply system.
email:
type: string
example: user@email.com
description: Email of the client in the ACCloud supply system.
phone_main:
type: string
example: 514-555-5555
description: Phone number of the client in the ACCloud supply system.
birthday:
type: string
format: date
example: 2000-01-31
description: Birthday of the client in the ACCloud supply system.
gender:
type: string
example: female
description: Gender of the client in the ACCloud supply system.
address:
type: string
example: 4200 boul Saint Laurent suite 800
description: Address of the client in the ACCloud supply system.
city:
type: string
example: Montreal
description: City of the client in the ACCloud supply system.
state:
type: string
example: Quebec
description: City of the client in the ACCloud supply system.
zip:
type: string
example: H2W 2R2
description: Zip code of the client in the ACCloud supply system.
country:
type: string
example: Canada
description: Country of the client in the ACCloud supply system.
timezone:
type: string
example: America/Chicago
description: Timezone of the client in the ACCloud supply system.
required:
- id
- first_name
- last_name
- timezone
AgencyMetadata:
type: object
properties:
name:
type: integer
example: 1
description: Name of the agency.
host:
type: string
example: https://optioncaresupply.alayacare.com
description: Domain name of the ACCloud supply system.
branch_id:
type: integer
example: 1005
description: ID of the ACCloud supply branch used by the agency.
alayamarket_org_id:
type: string
format: uuid
example: a0ae850c-8c39-47fa-9f62-9a31cc15cc3f
description: ID of the agency in AlayaMarket linked to the ACCloud supply branch.
timezone:
type: string
example: America/Chicago
description: Timezone of the agency.
required:
- name
- host
- branch_id
- alayamarket_org_id
- timezone
FormFile:
type: object
properties:
file_name:
type: string
description: The name of the file submitted by the ACCloud supply coordinator.
example: physician_order_form.pdf
file_value:
type: string
description: The base64-encoded value of the file submitted by the ACCloud supply coordinator.
example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
FormData:
type: object
properties:
form_id:
type: integer
description: |
The ID of the form in the ACCloud supply system.
This will change if a new form version is published.
example: 1
form_name:
type: string
description: |
The name of the form in the ACCloud supply system.
example: CSI New Referral Request
form_schema_id:
type: string
format: uuid
description: |
The ID of the form in the ACCloud supply system.
This will not change if a new form version is published.
example: 7ca2b01e-d521-4a7b-be1d-14718a15b81b
created_at:
type: string
format: date-time
description: The date that the form was submitted by ACCloud supply coordinator.
example: '2023-01-24T16:03:52+00:00'
created_by:
type: string
description: The name of the ACCloud supply coordinator that submitted the form.
example: Harry Monroe
fields:
type: array
items:
$ref: '#/components/schemas/FormFieldData'
FormFieldData:
type: object
properties:
field_id:
type: integer
description: |
The ID of the form field in the ACCloud supply system.
This will change if a new form version is published.
example: 123
# field_tag:
# type: string
# description: |
# The tag of the form field in the ACCloud supply system.
# This will not change if a new form version is published.
# We recommend using this to identify fields.
# example: field_patient_first_name
field_label:
type: string
description: The name of the form field in the ACCloud supply system.
example: First Name
field_type:
type: string
description: The type of form field in the ACCloud supply system.
example: demographics
enum:
- section
- text
- textarea
- number
- list
- picture
- demographics
- medical_history
field_value:
type: string
description: |
The value entered by the user when filling the form field
in the ACCloud supply system.
example: Jane
required:
- field_id
# - field_tag
- field_label
- field_type