Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions libs/constants.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from re import ASCII
from typing import Final


Expand Down Expand Up @@ -95,6 +96,12 @@ class test_data_file_paths:
VACCS_HPV_NEGATIVE: Final[str] = (
f"test_data/hpv/i_negative.csv{escape_characters.SEPARATOR}test_data/hpv/o_negative.csv"
)
VACCS_HIST_HPV_POSITIVE: Final[str] = (
f"test_data/hpv/i_hist_positive.csv{escape_characters.SEPARATOR}test_data/hpv/o_hist_positive.csv"
)
VACCS_HIST_HPV_NEGATIVE: Final[str] = (
f"test_data/hpv/i_hist_negative.csv{escape_characters.SEPARATOR}test_data/hpv/o_hist_negative.csv"
)
VACCS_HPV_DUP_1: Final[str] = f"test_data/hpv/i_dup_1.csv{escape_characters.SEPARATOR}test_data/hpv/o_dup_1.csv"
VACCS_HPV_DUP_2: Final[str] = f"test_data/hpv/i_dup_2.csv{escape_characters.SEPARATOR}test_data/hpv/o_dup_2.csv"
VACCS_HPV_INVALID_STRUCTURE: Final[str] = (
Expand Down Expand Up @@ -151,3 +158,7 @@ class test_data_file_paths:
CLASS_HEADER_ONLY: Final[str] = (
f"test_data/class_list/i_header_only.csv{escape_characters.SEPARATOR}test_data/class_list/o_header_only.csv"
)


class file_encoding:
ASCII = "ascii"
2 changes: 2 additions & 0 deletions libs/testdata_ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ def create_file_from_template(self, template_path: str) -> str:
_file_text = []
_ctr = -1
_dt = get_new_datetime()
_hist_dt = get_offset_date(offset_days=-730)
for _ln in _template_text.split(escape_characters.NEW_LINE):
_ln = _ln.replace("<<NHS_NO>>", f"9{self.get_new_nhs_no(valid=True)[:9]}")
_ln = _ln.replace("<<INVALID_NHS_NO>>", self.get_new_nhs_no(valid=False))
_ln = _ln.replace("<<FNAME>>", f"F{_dt}{_ctr}")
_ln = _ln.replace("<<LNAME>>", f"L{_dt}{_ctr}")
_ln = _ln.replace("<<VACCS_DATE>>", _dt[:8])
_ln = _ln.replace("<<HIST_VACCS_DATE>>", _hist_dt)
_file_text.append(_ln)
_ctr += 1
return self.fo.create_file(content=escape_characters.NEW_LINE.join(_file_text))
Expand Down
37 changes: 28 additions & 9 deletions libs/wrappers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import base64
import os
import time
from datetime import datetime, timedelta

from libs.constants import escape_characters
from libs.constants import escape_characters, file_encoding


def convert_time_units_to_seconds(time_unit: str) -> int:
Expand Down Expand Up @@ -32,12 +34,12 @@ def wait(timeout: str):


def get_link_formatted_date_time():
_ampm = datetime.now().strftime(format="%p").lower()
_am_or_pm = datetime.now().strftime(format="%p").lower()
try:
_dt = datetime.now().strftime(format="%-d %B %Y at %-I:%M") # Linux (Github Action)
except:
_dt = datetime.now().strftime(format="%#d %B %Y at %#I:%M") # Windows (Dev PC)
return f"{_dt}{_ampm}"
_dt = datetime.now().strftime(format="%#d %B %Y at %#I:%M") # Windows (Dev VDI)
return f"{_dt}{_am_or_pm}"


def get_new_datetime() -> str:
Expand All @@ -56,9 +58,26 @@ def clean_file_name(file_name: str) -> str:
return file_name


def get_future_date(offset_days: int) -> str:
_future_date = datetime.now() + timedelta(days=offset_days)
def get_offset_date(offset_days: int) -> str:
_offset_date = datetime.now() + timedelta(days=offset_days)
if offset_days != 0:
while _future_date.weekday() >= 5:
_future_date = _future_date + timedelta(days=1)
return _future_date.strftime("%Y%m%d")
while _offset_date.weekday() >= 5:
_offset_date = _offset_date + timedelta(days=1)
return _offset_date.strftime("%Y%m%d")


def get_project_root() -> str:
_project_root = os.path.dirname(__file__)
while os.path.basename(_project_root.lower()) != "manage-vaccinations-in-schools-testing":
_project_root = os.path.dirname(_project_root)
return _project_root


def get_base64_encoded_string(text):
text_bytes = text.encode(file_encoding.ASCII)
return base64.b64encode(text_bytes).decode(file_encoding.ASCII)


def get_base64_decoded_string(encoded_string):
base64_bytes = encoded_string.encode(file_encoding.ASCII)
return base64.b64decode(base64_bytes).decode(file_encoding.ASCII)
2 changes: 1 addition & 1 deletion pages/pg_sessions.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ def update_triage_outcome_positive(self, file_paths):
self.verify_activity_log_entry()

def schedule_a_valid_session(self, for_today: bool = False):
_future_date = get_future_date(offset_days=0) if for_today else get_future_date(offset_days=10)
_future_date = get_offset_date(offset_days=0) if for_today else get_offset_date(offset_days=10)
_expected_message = f"Session dates {self.__get_display_formatted_date(date_to_format=_future_date)}"
self.click_unscheduled()
self.click_school1()
Expand Down
2 changes: 1 addition & 1 deletion test_data/hpv/i_dup_1.csv
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
TEST_DESC_IGNORED,ORGANISATION_CODE,SCHOOL_URN,SCHOOL_NAME,NHS_NUMBER,PERSON_FORENAME,PERSON_SURNAME,PERSON_DOB,PERSON_GENDER_CODE,PERSON_POSTCODE,DATE_OF_VACCINATION,VACCINE_GIVEN,BATCH_NUMBER,BATCH_EXPIRY_DATE,ANATOMICAL_SITE,DOSE_SEQUENCE,VACCINATED,CARE_SETTING,PERFORMING_PROFESSIONAL_FORENAME,PERFORMING_PROFESSIONAL_SURNAME,PERFORMING_PROFESSIONAL_EMAIL,CLINIC_NAME,TIME_OF_VACCINATION,REASON_NOT_VACCINATED
P_Gardasil9,R1L,142181,Bohunt School Wokingham,9000000000,ChildFirst1,ChildLast1,20100811,Male,DN9 1PB,<<VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,Left Thigh,1,Y,1,,,[email protected],Clinic,12:00,
P_Gardasil9,R1L,142181,Bohunt School Wokingham,9000000000,ChildFirst1,ChildLast1,20100811,Male,DN9 1PB,<<VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,Left Thigh,1,Y,1,,,[email protected],Clinic,00:01,
2 changes: 1 addition & 1 deletion test_data/hpv/i_dup_2.csv
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
TEST_DESC_IGNORED,ORGANISATION_CODE,SCHOOL_URN,SCHOOL_NAME,NHS_NUMBER,PERSON_FORENAME,PERSON_SURNAME,PERSON_DOB,PERSON_GENDER_CODE,PERSON_POSTCODE,DATE_OF_VACCINATION,VACCINE_GIVEN,BATCH_NUMBER,BATCH_EXPIRY_DATE,ANATOMICAL_SITE,DOSE_SEQUENCE,VACCINATED,CARE_SETTING,PERFORMING_PROFESSIONAL_FORENAME,PERFORMING_PROFESSIONAL_SURNAME,PERFORMING_PROFESSIONAL_EMAIL,CLINIC_NAME,TIME_OF_VACCINATION,REASON_NOT_VACCINATED
P_Gardasil9,R1L,142181,Bohunt School Wokingham,9000000000,ChildFirst1,ChildLast1,20100811,Male,DN9 1PB,<<VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,Left Thigh,1,Y,1,,,[email protected],Clinic,12:00,
P_Gardasil9,R1L,142181,Bohunt School Wokingham,9000000000,ChildFirst1,ChildLast1,20100811,Male,DN9 1PB,<<VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,Left Thigh,1,Y,1,,,[email protected],Clinic,00:01,
37 changes: 37 additions & 0 deletions test_data/hpv/i_hist_negative.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
TEST_DESC_IGNORED,ORGANISATION_CODE,SCHOOL_URN,SCHOOL_NAME,NHS_NUMBER,PERSON_FORENAME,PERSON_SURNAME,PERSON_DOB,PERSON_GENDER_CODE,PERSON_POSTCODE,DATE_OF_VACCINATION,VACCINE_GIVEN,BATCH_NUMBER,BATCH_EXPIRY_DATE,ANATOMICAL_SITE,DOSE_SEQUENCE,VACCINATED,CARE_SETTING,PERFORMING_PROFESSIONAL_FORENAME,PERFORMING_PROFESSIONAL_SURNAME,PERFORMING_PROFESSIONAL_EMAIL,CLINIC_NAME,TIME_OF_VACCINATION,REASON_NOT_VACCINATED
N_InvalidODSCode,MAVIS,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyOrgCode,,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptySchoolURN,R1L,,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_NotKnownSchoolEmpty,R1L,888888,,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_LongNHSNumber,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>1,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_ShortNHSNumber,R1L,142181,Bohunt School Wokingham,947310353,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyForename,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyLastname,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyDOB,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_InvalidFormatDOB,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20102608,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_FutureDOB,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20300628,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_NonLeapYearDOB,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100229,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyGender,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_InvalidGender,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Transgender,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyPostCode,R1L,142181,Bohunt School Wokingham,,<<FNAME>>,<<LNAME>>,20100228,Female,,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_InvalidPostCode,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,1AA AA1,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyVaccDate,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_FutureVaccDate,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,20301231,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyVaccGiven,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_FluVaccGiven,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,AstraZeneca Fluenz Tetra LAIV,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyBatchNumber,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyExpiryDate,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyAnatomicalSite,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,,1,Y,1,,,[email protected],Clinic,00:01,
N_InvalidAnatomicalSite,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,Nasal,1,Y,1,,,[email protected],Clinic,00:01,
N_EmptyDoseSeq,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,,Y,1,,,[email protected],Clinic,00:01,
N_InvalidDoseSeq,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,10,Y,1,,,[email protected],Clinic,00:01,
N_EmptyCareSetting,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,,,,[email protected],Clinic,00:01,
N_InvalidProfFName,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,ProfFName,,,Clinic,00:01,
N_InvalidProfSName,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,ProfSName,,Clinic,00:01,
N_InvalidProfEmail,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],Clinic,00:01,
N_InvalidClinic,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,2,,,[email protected],Invalid Clinic,00:01,
N_InvalidTime,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],,32:00,
N_InvalidReason,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],,00:01,Did not attend1
N_InvalidVaccinatedFlag,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,X,1,,,[email protected],,00:01,
N_InvalidCareSetting,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,10,,,[email protected],,00:01,
N_TimeInFuture,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100228,Female,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,Batch1,20301231,left thigh,1,Y,1,,,[email protected],,23:00,
10 changes: 10 additions & 0 deletions test_data/hpv/i_hist_positive.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
TEST_DESC_IGNORED,ORGANISATION_CODE,SCHOOL_URN,SCHOOL_NAME,NHS_NUMBER,PERSON_FORENAME,PERSON_SURNAME,PERSON_DOB,PERSON_GENDER_CODE,PERSON_POSTCODE,DATE_OF_VACCINATION,VACCINE_GIVEN,BATCH_NUMBER,BATCH_EXPIRY_DATE,ANATOMICAL_SITE,DOSE_SEQUENCE,VACCINATED,CARE_SETTING,PERFORMING_PROFESSIONAL_FORENAME,PERFORMING_PROFESSIONAL_SURNAME,PERFORMING_PROFESSIONAL_EMAIL,CLINIC_NAME,TIME_OF_VACCINATION,REASON_NOT_VACCINATED
P_Gardasil9,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,Left Thigh,1,Y,1,,,[email protected],Clinic,00:01,
P_Gardasil,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil,AutoBatch1,20301231,Right Thigh,1,Y,1,,,[email protected],Clinic,00:01,
P_Cervarix,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Cervarix,AutoBatch1,20301231,left upper arm,1,Y,1,,,[email protected],Clinic,00:01,
P_NFA,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,ZZ99 3VZ,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,left arm (upper position),1,Y,1,,,[email protected],Clinic,00:01,
P_Add_Not_Known,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,ZZ99 3WZ,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20301231,left arm (lower position),1,Y,1,,,[email protected],Clinic,00:01,
P_AllowPastExpiryDate,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20120730,right upper arm,1,Y,1,,,[email protected],Clinic,00:01,
P_SiteRAU,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20320730,right arm (upper position),1,Y,1,,,[email protected],Clinic,00:01,
P_SiteRAL,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,Gardasil9,AutoBatch1,20320730,right arm (lower position),1,Y,1,,,[email protected],Clinic,00:01,
P_NotVaccinated,R1L,142181,Bohunt School Wokingham,<<NHS_NO>>,<<FNAME>>,<<LNAME>>,20100811,Male,DN9 1PB,<<HIST_VACCS_DATE>>,,,,,1,N,1,,,[email protected],Clinic,00:01,Did not attend
Loading
Loading