Skip to content

Commit d07af06

Browse files
committed
feat: working responses
1 parent a9608fc commit d07af06

File tree

3 files changed

+70
-68
lines changed

3 files changed

+70
-68
lines changed

sandbox/api/app.py

Lines changed: 42 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
generate_response_from_example,
3939
load_json_file,
4040
remove_system,
41+
check_for_consent_include_params
4142
)
4243

4344
app = Flask(__name__)
@@ -137,90 +138,64 @@ def get_consent() -> Union[dict, tuple]:
137138
Union[dict, tuple]: Response for GET /Consent
138139
"""
139140
try:
140-
# Check headers
141-
if errors := check_for_errors(request):
142-
return errors
143-
144141
performer_identifier = remove_system(request.args.get("performer:identifier"))
145142
status = request.args.get("status")
146143
_include = request.args.get("_include")
147144

145+
print(performer_identifier);
146+
148147
# Invalid status params
149-
if (status != "active" or status != None):
148+
if (status != "active" and status != None):
150149
return generate_response(load_json_file(CONSENT__STATUS_PARAM_INVALID), 400)
150+
151151
# Invalid include params
152152
if (
153153
_include != CONSENT_PERFORMER
154-
or _include != CONSENT_PATIENT
155-
or _include != f"{CONSENT_PATIENT},{CONSENT_PERFORMER}"
156-
or _include != f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"
157-
or _include != None
154+
and _include != CONSENT_PATIENT
155+
and _include != f"{CONSENT_PATIENT},{CONSENT_PERFORMER}"
156+
and _include != f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"
157+
and _include != None
158158
):
159159
return generate_response(load_json_file(BAD_REQUEST_INCLUDE_PARAM_INVALID), 400)
160+
160161
# Single consenting adult relationship
161-
if (performer_identifier == 9000000010):
162-
if (_include == CONSENT_PERFORMER):
163-
return generate_response(
164-
load_json_file(CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP_INCLUDE_PERFORMER), 200
165-
)
166-
elif (_include == CONSENT_PATIENT):
167-
return generate_response(
168-
load_json_file(CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP_INCLUDE_PATIENT), 200
169-
)
170-
if (_include == f"{CONSENT_PATIENT},{CONSENT_PERFORMER}" or f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"):
171-
return generate_response(
172-
load_json_file(CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP_INCLUDE_BOTH), 200
173-
)
174-
else :
175-
return generate_response(load_json_file(CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP), 200)
162+
if (performer_identifier == "9000000010"):
163+
return check_for_consent_include_params(
164+
_include,
165+
CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP_INCLUDE_PATIENT,
166+
CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP_INCLUDE_PERFORMER,
167+
CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP_INCLUDE_BOTH,
168+
CONSENT__SINGLE_CONSENTING_ADULT_RELATIONSHIP
169+
)
176170
# Single mother child relationship
177-
if (performer_identifier == 9000000019):
178-
if (_include == CONSENT_PERFORMER):
179-
return generate_response(
180-
load_json_file(CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_PERFORMER), 200
181-
)
182-
elif (_include == CONSENT_PATIENT):
183-
return generate_response(
184-
load_json_file(CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_PATIENT), 200
185-
)
186-
elif (_include == f"{CONSENT_PATIENT},{CONSENT_PERFORMER}" or f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"):
187-
return generate_response(
188-
load_json_file(CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_BOTH), 200
189-
)
190-
else :
191-
return generate_response(load_json_file(CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP), 200)
171+
elif (performer_identifier == "9000000019"):
172+
return check_for_consent_include_params(
173+
_include,
174+
CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_PATIENT,
175+
CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_PERFORMER,
176+
CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_BOTH,
177+
CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP
178+
)
192179
# multiple relationships
193-
if (performer_identifier == 9000000017):
180+
elif (performer_identifier == "9000000017"):
194181
if (status == "active"):
195-
if (_include == CONSENT_PERFORMER):
196-
return generate_response(
197-
load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE_INCLUDE_PERFORMER), 200
198-
)
199-
if (_include == CONSENT_PATIENT):
200-
return generate_response(
201-
load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE_INCLUDE_PATIENT), 200
202-
)
203-
if (_include == f"{CONSENT_PATIENT},{CONSENT_PERFORMER}" or f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"):
204-
return generate_response(
205-
load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE_INCLUDE_BOTH), 200
206-
)
207-
else:
208-
return generate_response(load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE), 200)
182+
return check_for_consent_include_params(
183+
_include,
184+
CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE_INCLUDE_PATIENT,
185+
CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE_INCLUDE_PERFORMER,
186+
CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE_INCLUDE_BOTH,
187+
CONSENT__MULTIPLE_RELATIONSHIPS_STATUS_ACTIVE
188+
)
209189
else:
210-
if (_include == CONSENT_PERFORMER):
211-
return generate_response(
212-
load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_INCLUDE_PERFORMER), 200
213-
)
214-
if (_include == CONSENT_PATIENT):
215-
return generate_response(
216-
load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_INCLUDE_PATIENT), 200
217-
)
218-
if (_include == f"{CONSENT_PATIENT},{CONSENT_PERFORMER}" or f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"):
219-
return generate_response(load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS_INCLUDE_BOTH), 200)
220-
else:
221-
return generate_response(load_json_file(CONSENT__MULTIPLE_RELATIONSHIPS), 200)
190+
return check_for_consent_include_params(
191+
_include,
192+
CONSENT__MULTIPLE_RELATIONSHIPS_INCLUDE_PATIENT,
193+
CONSENT__MULTIPLE_RELATIONSHIPS_INCLUDE_PERFORMER,
194+
CONSENT__MULTIPLE_RELATIONSHIPS_INCLUDE_BOTH,
195+
CONSENT__MULTIPLE_RELATIONSHIPS
196+
)
222197
# No relationships
223-
if (performer_identifier == 9000000025):
198+
elif (performer_identifier == "9000000025"):
224199
return generate_response(load_json_file(CONSENT__NO_RELATIONSHIPS), 200)
225200
else:
226201
return generate_response(load_json_file(NOT_FOUND), 400)

sandbox/api/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
RELATED_IDENTIFIERS = ["9000000009", "9000000025"]
7171

7272
CONSENT_PERFORMER = "Consent:performer"
73-
CONSENT_PATIENT = "Consent:performer"
73+
CONSENT_PATIENT = "Consent:patient"
7474

7575
# Example files
7676

sandbox/api/utils.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
NOT_FOUND,
1111
INCLUDE_FLAG,
1212
RELATED_IDENTIFIERS,
13+
CONSENT_PERFORMER,
14+
CONSENT_PATIENT
1315
)
1416

1517

@@ -181,3 +183,28 @@ def generate_response_from_example(example_path: str, status_code: int) -> Respo
181183
# Value of response is always in the first key, then within value
182184
content = content[list(content.keys())[0]]["value"]
183185
return Response(dumps(content), status=status_code, mimetype=FHIR_MIMETYPE)
186+
187+
188+
def check_for_consent_include_params(
189+
_include : str,
190+
include_patient_response_json : str,
191+
include_performer_response_json : str,
192+
include_both_response_json : str,
193+
include_none_response_json : str
194+
) -> Response:
195+
"""Checks the GET consent request include params and provides the related response"""
196+
197+
if (_include == CONSENT_PERFORMER):
198+
return generate_response(
199+
load_json_file(include_performer_response_json), 200
200+
)
201+
elif (_include == CONSENT_PATIENT):
202+
return generate_response(
203+
load_json_file(include_patient_response_json), 200
204+
)
205+
if (_include == f"{CONSENT_PATIENT},{CONSENT_PERFORMER}" or f"{CONSENT_PERFORMER},{CONSENT_PATIENT}"):
206+
return generate_response(
207+
load_json_file(include_both_response_json), 200
208+
)
209+
else:
210+
return generate_response(load_json_file(include_none_response_json), 200)

0 commit comments

Comments
 (0)