Skip to content

Commit 345b3db

Browse files
authored
Merge branch 'master' into AMB-2144-mesh-integration
2 parents 304c3e3 + 8324e54 commit 345b3db

39 files changed

+5333
-318
lines changed

azure/templates/post-deploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ steps:
179179
180180
- bash: |
181181
set -e
182-
if ! [[ "$APIGEE_ENVIRONMENT" == "ref" || "$APIGEE_ENVIRONMENT" == "prod" || "$APIGEE_ENVIRONMENT" == "int" || "$APIGEE_ENVIRONMENT" == *"sandbox" ]]; then
182+
if ! [[ "$APIGEE_ENVIRONMENT" == "prod" || "$APIGEE_ENVIRONMENT" == "int" || "$APIGEE_ENVIRONMENT" == *"sandbox" ]]; then
183183
echo "Running E2E batch folder test cases"
184184
185185
export AWS_PROFILE="apim-dev"
@@ -201,7 +201,7 @@ steps:
201201

202202
echo "E2E batch folder test cases executed successfully"
203203
else
204-
echo "Skipping E2E batch folder test cases as the environment is ref-prod-int-sandbox"
204+
echo "Skipping E2E batch folder test cases as the environment is prod-int-sandbox"
205205
fi
206206

207207
displayName: Run full batch test suite

delta_backend/poetry.lock

Lines changed: 545 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

delta_backend/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ readme = "README.md"
99
python = "~3.10"
1010
boto3 = "~1.26.90"
1111
mypy-boto3-dynamodb = "^1.26.164"
12-
12+
moto = "~4.2.11"
1313

1414
[build-system]
1515
requires = ["poetry-core"]
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# Root and base type expression checker functions
2+
import ExceptionMessages
3+
import datetime
4+
import uuid
5+
import re
6+
from LookUpData import LookUpData
7+
8+
9+
# --------------------------------------------------------------------------------------------------------
10+
# record exception capture
11+
class RecordError(Exception):
12+
13+
def __init__(self, code=None, message=None, details=None):
14+
self.code = code
15+
self.message = message
16+
self.details = details
17+
18+
def __str__(self):
19+
return repr((self.code, self.message, self.details))
20+
21+
def __repr__(self):
22+
return repr((self.code, self.message, self.details))
23+
24+
25+
# ---------------------------------------------------------------------------------------------------------
26+
# main conversion checker
27+
class ConversionChecker:
28+
# checker settings
29+
summarise = False
30+
report_unexpected_exception = True
31+
dataParser = any
32+
dataLookUp = any
33+
34+
def __init__(self, dataParser, summarise, report_unexpected_exception):
35+
self.dataParser = dataParser # FHIR data parser for additional functions
36+
self.dataLookUp = LookUpData() # used for generic look up
37+
self.summarise = summarise # instance attribute
38+
self.report_unexpected_exception = report_unexpected_exception # instance attribute
39+
40+
# exposed functions
41+
def convertData(self, expressionType, expressionRule, fieldName, fieldValue):
42+
match expressionType:
43+
case "DATECONVERT":
44+
return self._convertToDate(
45+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
46+
)
47+
case "NOTEMPTY":
48+
return self._convertToNotEmpty(
49+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
50+
)
51+
case "GENDER":
52+
return self._convertToGender(
53+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
54+
)
55+
case "NHSNUMBER":
56+
return self._convertToNHSNumber(
57+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
58+
)
59+
case "CHANGETO":
60+
return self._convertToChangeTo(
61+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
62+
)
63+
case "LOOKUP":
64+
return self._convertToLookUp(
65+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
66+
)
67+
case "DEFAULT":
68+
return self._convertToDefaultTo(
69+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
70+
)
71+
case "ONLYIF":
72+
return self._convertToOnlyIfTo(
73+
expressionRule, fieldName, fieldValue, self.summarise, self.report_unexpected_exception
74+
)
75+
case _:
76+
return "Schema expression not found! Check your expression type : " + expressionType
77+
78+
# iso8086 date time validate
79+
def _convertToDate(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
80+
try:
81+
convertDate = datetime.datetime.fromisoformat(fieldValue)
82+
return convertDate.strftime(expressionRule)
83+
except Exception as e:
84+
if report_unexpected_exception:
85+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
86+
return message
87+
88+
# Not Empty Validate
89+
def _convertToNotEmpty(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
90+
try:
91+
if len(str(fieldValue)) > 0:
92+
return fieldValue
93+
return ""
94+
except Exception as e:
95+
if report_unexpected_exception:
96+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
97+
return message
98+
99+
# NHSNumber Validate
100+
def _convertToNHSNumber(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
101+
try:
102+
regexRule = "^6[0-9]{10}$"
103+
result = re.search(regexRule, fieldValue)
104+
if not result:
105+
raise RecordError(
106+
ExceptionMessages.RECORD_CHECK_FAILED,
107+
"NHS Number check failed",
108+
"NHS Number does not meet regex rules, data- " + fieldValue,
109+
)
110+
except Exception as e:
111+
if report_unexpected_exception:
112+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
113+
return message
114+
115+
# Gender Validate
116+
def _convertToGender(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
117+
try:
118+
genderlist = {"male": "1", "female": "2", "other": "9", "unknown": "0"}
119+
genderNumber = genderlist[fieldValue]
120+
return genderNumber
121+
except Exception as e:
122+
if report_unexpected_exception:
123+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
124+
return message
125+
126+
# Change to Validate
127+
def _convertToChangeTo(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
128+
try:
129+
return expressionRule
130+
except Exception as e:
131+
if report_unexpected_exception:
132+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
133+
return message
134+
135+
# Change to Lookup
136+
def _convertToLookUp(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
137+
try:
138+
if fieldValue != "":
139+
return fieldValue
140+
try:
141+
lookUpValue = self.dataParser.getKeyValue(expressionRule)
142+
IdentifiedLookup = self.dataLookUp.findLookUp(lookUpValue[0])
143+
return IdentifiedLookup
144+
except:
145+
return ""
146+
except Exception as e:
147+
if report_unexpected_exception:
148+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
149+
return message
150+
151+
# Default to Validate
152+
def _convertToDefaultTo(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
153+
try:
154+
if fieldValue == "":
155+
return expressionRule
156+
return fieldValue
157+
except Exception as e:
158+
if report_unexpected_exception:
159+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
160+
return message
161+
162+
# Default to Validate
163+
def _convertToOnlyIfTo(self, expressionRule, fieldName, fieldValue, summarise, report_unexpected_exception):
164+
try:
165+
conversionList = expressionRule.split("|")
166+
location = conversionList[0]
167+
valueCheck = conversionList[1]
168+
dataValue = self.dataParser.getKeyValue(location)
169+
170+
if dataValue[0] != valueCheck:
171+
return ""
172+
173+
return fieldValue
174+
except Exception as e:
175+
if report_unexpected_exception:
176+
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
177+
return message

0 commit comments

Comments
 (0)