# HG changeset patch # User Feng Shu # Date 1687680701 -28800 # Sun Jun 25 16:11:41 2023 +0800 # Node ID f887725a4a44a644dec6c88745879e97c2c16278 # Parent 0af01c850d03872006fc170592d20de3378a08cf gnuhealth-setup: Using wget arguments. Set wget --timeout, --waitretry and --tries arguments. for https://downloads.tryton.org is very slowly and unstable in some countries. diff -r 0af01c850d03 -r f887725a4a44 tryton/gnuhealth-setup --- a/tryton/gnuhealth-setup Wed Jun 28 09:40:52 2023 +0100 +++ b/tryton/gnuhealth-setup Sun Jun 25 16:11:41 2023 +0800 @@ -42,6 +42,7 @@ UPDATE_DOWNLOAD_DIR="/tmp/gnuhealth_update" TRYTON_PATCHES="" +WGET_ARGS="--timeout=20 --waitretry=0 --tries=50" #----------------------------------------------------------------------------- # Functions @@ -287,7 +288,7 @@ get_url() { # $1 : Module name # return : URL to download - echo ${TRYTON_BASE_URL}/${TRYTON_VERSION}/$(wget --quiet -O- ${TRYTON_BASE_URL}/${TRYTON_VERSION} | egrep -o "${1}-${TRYTON_VERSION}.[0-9\.]+.tar.gz" | sort -V | tail -1) + echo ${TRYTON_BASE_URL}/${TRYTON_VERSION}/$(wget ${WGET_ARGS} --quiet -O- ${TRYTON_BASE_URL}/${TRYTON_VERSION} | egrep -o "${1}-${TRYTON_VERSION}.[0-9\.]+.tar.gz" | sort -V | tail -1) } @@ -321,13 +322,13 @@ cd ${TMP_DIR} || bailout message "INFO" "Downloading the Tryton server..." - wget ${TRYTOND_URL} || bailout + wget ${WGET_ARGS} ${TRYTOND_URL} || bailout message "INFO" "OK." message "INFO" "Downloading Tryton modules..." local URL="" for URL in ${TRYTON_MODULES_URL}; do - wget ${URL} || bailout + wget ${WGET_ARGS} ${URL} || bailout done message "INFO" "OK." # HG changeset patch # User Feng Shu # Date 1687320801 -28800 # Wed Jun 21 12:13:21 2023 +0800 # Node ID a70b52226cb7283f65eee5eaa79067c4b34d9f46 # Parent f887725a4a44a644dec6c88745879e97c2c16278 Add scope_str to ImmunizationScheduleLine diff -r f887725a4a44 -r a70b52226cb7 tryton/health/health.py --- a/tryton/health/health.py Sun Jun 25 16:11:41 2023 +0800 +++ b/tryton/health/health.py Wed Jun 21 12:13:21 2023 +0800 @@ -2199,6 +2199,8 @@ ('highrisk', 'Risk groups'), ], 'Scope', sort=False) + scope_str = scope.translated('scope') + remarks = fields.Char('Remarks') doses = fields.One2Many('gnuhealth.immunization_schedule_dose', # HG changeset patch # User Feng Shu # Date 1687321163 -28800 # Wed Jun 21 12:19:23 2023 +0800 # Node ID 59e656db4c4ca2a9c076777c6754ada430e49e48 # Parent a70b52226cb7283f65eee5eaa79067c4b34d9f46 Add age_unit_str to ImmunizationScheduleDose diff -r a70b52226cb7 -r 59e656db4c4c tryton/health/health.py --- a/tryton/health/health.py Wed Jun 21 12:13:21 2023 +0800 +++ b/tryton/health/health.py Wed Jun 21 12:19:23 2023 +0800 @@ -2151,6 +2151,8 @@ ('years', 'years'), ], 'Time Unit', required=True) + age_unit_str = age_unit.translated('age_unit') + remarks = fields.Char('Remarks') sched = fields.Function( diff -r a70b52226cb7 -r 59e656db4c4c tryton/health/report/immunization_status_report.py --- a/tryton/health/report/immunization_status_report.py Wed Jun 21 12:13:21 2023 +0800 +++ b/tryton/health/report/immunization_status_report.py Wed Jun 21 12:19:23 2023 +0800 @@ -53,8 +53,8 @@ for vaccine in immunization_schedule.vaccines: for dose in vaccine.doses: - dose_number, dose_age, age_unit = dose.dose_number, \ - dose.age_dose, dose.age_unit + dose_number, dose_age, age_unit, age_unit_str = dose.dose_number, \ + dose.age_dose, dose.age_unit, dose.age_unit_str p_age = [patient.age.split(' ')[0][:-1], patient.age.split(' ')[1][:-1], @@ -73,6 +73,7 @@ 'dose': dose_number, 'dose_age': dose_age, 'age_unit': age_unit, + 'age_unit_str': age_unit_str, 'status': None} # Add to the list of this person immunization check # HG changeset patch # User Feng Shu # Date 1687657266 -28800 # Sun Jun 25 09:41:06 2023 +0800 # Node ID 0acc3e6a51951c981a5b3e3587c1ced6d79cb808 # Parent 59e656db4c4ca2a9c076777c6754ada430e49e48 Handle days and weeks in get_immunizations_for_age. diff -r 59e656db4c4c -r 0acc3e6a5195 tryton/health/report/immunization_status_report.py --- a/tryton/health/report/immunization_status_report.py Wed Jun 21 12:19:23 2023 +0800 +++ b/tryton/health/report/immunization_status_report.py Sun Jun 25 09:41:06 2023 +0800 @@ -60,13 +60,17 @@ patient.age.split(' ')[1][:-1], patient.age.split(' ')[2][:-1]] - # Age of the person in years and months - pyears, pmonths = int(p_age[0]), int(p_age[1]) + # Age of the person in years, months, weeks and days. + y, m, d = int(p_age[0]), int(p_age[1]), int(p_age[2]) + pdays = (y*365) + (m*365/12) + d + pyears = pdays/365 + pmonths = pdays/(365/12) + pweeks = pdays/7 - pmonths = (pyears*12)+pmonths - - if ((age_unit == 'months' and pmonths >= dose_age) or - (age_unit == 'years' and pyears >= dose_age)): + if ((age_unit == 'days' and pdays >= dose_age) or + (age_unit == 'weeks' and pweeks >= dose_age) or + (age_unit == 'months' and pmonths >= dose_age) or + (age_unit == 'years' and pyears >= dose_age)): immunization_info = { 'patient': patient, 'vaccine': vaccine, # HG changeset patch # User Feng Shu # Date 1687925854 -28800 # Wed Jun 28 12:17:34 2023 +0800 # Node ID 4cf9f563cb3f5ef360946c52fb5e625a0f41668e # Parent 0acc3e6a51951c981a5b3e3587c1ced6d79cb808 Update immunization_status_report.fodt diff -r 0acc3e6a5195 -r 4cf9f563cb3f tryton/health/report/immunization_status_report.fodt --- a/tryton/health/report/immunization_status_report.fodt Sun Jun 25 09:41:06 2023 +0800 +++ b/tryton/health/report/immunization_status_report.fodt Wed Jun 28 12:17:34 2023 +0800 @@ -1,24 +1,24 @@ - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 - 26458 + 24977 0 - 38896 - 23629 + 40245 + 22571 true false view2 - 18124 - 33325 + 13534 + 40263 0 - 26458 - 38894 - 50086 + 24977 + 40243 + 47546 0 0 false @@ -85,7 +85,7 @@ true true - 3970345 + 3983311 true false @@ -152,7 +152,7 @@ - + @@ -1362,12 +1362,12 @@ - + Important notice: - + This automatically generated report is a tool to assist, but never to replace the criteria of the health professional. Always verify the person vaccination cards. @@ -1401,7 +1401,7 @@ - + Patient: @@ -1415,7 +1415,7 @@ <patient.name.ref> - + Age: @@ -1429,7 +1429,7 @@ <patient.name.gender_str> - + Schedule: @@ -1443,7 +1443,7 @@ <immunization_schedule.desc> - + Print Date: @@ -1462,7 +1462,7 @@ - + Showing only the immunization status corresponding to the person age and the selected schedule @@ -1470,7 +1470,7 @@ - + Vaccine @@ -1484,7 +1484,7 @@ Status - + <for each="immunization in immunization_status"> @@ -1498,7 +1498,7 @@ - + <if test="immunization['status'] == 'missing'"> @@ -1520,7 +1520,7 @@ <immunization['dose']> - <immunization['dose_age']><immunization['age_unit']> + <immunization['dose_age']><immunization['age_unit_str']> @@ -1703,7 +1703,7 @@ - + </if> @@ -1717,7 +1717,7 @@ - + <if test="immunization['status'] == 'ok'"> @@ -1739,7 +1739,7 @@ <immunization['dose']> - <immunization['dose_age']><immunization['age_unit']> + <immunization['dose_age']><immunization['age_unit_str']> @@ -1924,7 +1924,7 @@ - + </if> @@ -1938,7 +1938,7 @@ - + </for> @@ -2000,13 +2000,13 @@ <vaccine.rec_name> - <vaccine.scope> + <vaccine.scope_str> <dose.dose_number> - <dose.age_dose><dose.age_unit> + <dose.age_dose><dose.age_unit_str> <dose.remarks> # HG changeset patch # User Feng Shu # Date 1687737044 -28800 # Mon Jun 26 07:50:44 2023 +0800 # Node ID ef40ad0b2ae2ee338678f3ec5419f252dd433ba3 # Parent 4cf9f563cb3f5ef360946c52fb5e625a0f41668e Odontogram_report: Support dental schema primary. diff -r 4cf9f563cb3f -r ef40ad0b2ae2 tryton/health_dentistry/report/odontogram_report.py --- a/tryton/health_dentistry/report/odontogram_report.py Wed Jun 28 12:17:34 2023 +0800 +++ b/tryton/health_dentistry/report/odontogram_report.py Mon Jun 26 07:50:44 2023 +0800 @@ -93,7 +93,6 @@ # Set the section of the filling / decay # Maxillar / upper region if (tooth in range(11, 28) or tooth in range(51, 65)): - print(tooth, tregions) for key in tregions.keys(): if (key in ['o', 'i']): # Occlusal or Incisal position = (x, y) # Center of the tooth @@ -127,14 +126,16 @@ return (im) @classmethod - def plot_odontogram(cls, dental_schema): + def plot_odontogram(cls, dental_schema, dental_schema_primary): # Get the template file from current module dir report_dir = os.path.dirname(os.path.abspath(__file__)) filename = os.path.join(report_dir, 'odontogram_template.png') im = Image.open(filename) - dschema = json.loads(dental_schema) + dschema1 = json.loads(dental_schema) + dschema2 = json.loads(dental_schema_primary) + dschema = {**dschema1, **dschema2} for tooth, values in dschema.items(): # Decayed or filled tooth @@ -163,6 +164,9 @@ dental_schema = \ Pool().get('gnuhealth.patient')(data['id']).dental_schema - context['patient_odontogram'] = cls.plot_odontogram(dental_schema) + dental_schema_primary = \ + Pool().get('gnuhealth.patient')(data['id']).dental_schema_primary + + context['patient_odontogram'] = cls.plot_odontogram(dental_schema, dental_schema_primary) return context # HG changeset patch # User Feng Shu # Date 1687827400 -28800 # Tue Jun 27 08:56:40 2023 +0800 # Node ID 6b56028fa7e026d2331105b1ee546e05bf5fa0d4 # Parent ef40ad0b2ae2ee338678f3ec5419f252dd433ba3 odontogram_report: do not use odontogram_template.png. Use plot_teeth function to draw instead of use odontogram_template.png file. diff -r ef40ad0b2ae2 -r 6b56028fa7e0 tryton/health_dentistry/report/odontogram_report.fodt --- a/tryton/health_dentistry/report/odontogram_report.fodt Mon Jun 26 07:50:44 2023 +0800 +++ b/tryton/health_dentistry/report/odontogram_report.fodt Tue Jun 27 08:56:40 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 24977 + 30268 0 - 40245 - 23629 + 40192 + 21512 true false view2 - 13534 - 41009 + 14702 + 34844 0 - 24977 - 40243 - 48604 + 30268 + 40190 + 51779 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 4060769 + 4204820 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,17 +147,15 @@ - - + - - + + - - - + + @@ -157,11 +165,11 @@ - + - + @@ -173,11 +181,11 @@ - + - + @@ -801,113 +809,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -915,61 +923,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -977,61 +985,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1072,86 +1080,86 @@ - + - + - + - + + + + + - + + + + - + - + + + + + - + - + + + + + - + + + + + - + - + - + + + + - + + + + - - - - + - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - @@ -1195,7 +1203,7 @@ - + @@ -1222,12 +1230,12 @@ - + - + @@ -1235,69 +1243,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1315,7 +1326,7 @@ - + Patient: @@ -1329,7 +1340,7 @@ <patient.name.ref> - + Age: @@ -1343,10 +1354,10 @@ <format_date(datetime.date.today(), user.language)>, <datetime.datetime.now().strftime('%H:%M:%S')> - + - - + + diff -r ef40ad0b2ae2 -r 6b56028fa7e0 tryton/health_dentistry/report/odontogram_report.py --- a/tryton/health_dentistry/report/odontogram_report.py Mon Jun 26 07:50:44 2023 +0800 +++ b/tryton/health_dentistry/report/odontogram_report.py Tue Jun 27 08:56:40 2023 +0800 @@ -17,7 +17,7 @@ import io import os import json -from PIL import Image, ImageDraw +from PIL import Image, ImageDraw, ImageFont from trytond.report import Report from trytond.pool import Pool @@ -29,25 +29,56 @@ __name__ = 'health_dentistry.odontogram.report' radius = 37 - pieces = { - '18': (37, 37), '17': (119, 37), '16': (201, 37), '15': (282, 37), - '14': (362, 37), '13': (443, 37), '12': (524, 37), '11': (605, 37), - '21': (744, 37), '22': (825, 37), '23': (906, 37), '24': (987, 37), - '25': (1069, 37), '26': (1153, 37), '27': (1235, 37), '28': (1316, 37), - '48': (37, 360), '47': (119, 360), '46': (201, 360), '45': (283, 360), - '44': (365, 360), '43': (447, 360), '42': (529, 360), '41': (611, 360), - '31': (744, 360), '32': (825, 360), '33': (907, 360), '34': (988, 360), - '35': (1069, 360), '36': (1150, 360), '37': (1231, 360), - '38': (1316, 360), - '55': (283, 145), '54': (364, 145), '53': (445, 145), '52': (526, 145), - '51': (607, 145), - '61': (744, 145), '62': (825, 145), '63': (906, 145), '64': (987, 145), - '65': (1068, 145), - '85': (283, 253), '84': (364, 253), '83': (445, 253), '82': (526, 253), - '81': (607, 253), - '71': (744, 253), '72': (825, 253), '73': (906, 253), '74': (987, 253), - '75': (1068, 253), - } + __pieces = { + '18': ( 1, 1), '17': ( 2, 1), '16': ( 3, 1), '15': ( 4, 1), + '14': ( 5, 1), '13': ( 6, 1), '12': ( 7, 1), '11': ( 8, 1), + '21': (10, 1), '22': (11, 1), '23': (12, 1), '24': (13, 1), + '25': (14, 1), '26': (15, 1), '27': (16, 1), '28': (17, 1), + '48': ( 1, 4), '47': ( 2, 4), '46': ( 3, 4), '45': ( 4, 4), + '44': ( 5, 4), '43': ( 6, 4), '42': ( 7, 4), '41': ( 8, 4), + '31': (10, 4), '32': (11, 4), '33': (12, 4), '34': (13, 4), + '35': (14, 4), '36': (15, 4), '37': (16, 4), '38': (17, 4), + '55': ( 4, 2), '54': ( 5, 2), '53': ( 6, 2), '52': ( 7, 2), '51': ( 8, 2), + '61': (10, 2), '62': (11, 2), '63': (12, 2), '64': (13, 2), '65': (14, 2), + '85': ( 4, 3), '84': ( 5, 3), '83': ( 6, 3), '82': ( 7, 3), '81': ( 8, 3), + '71': (10, 3), '72': (11, 3), '73': (12, 3), '74': (13, 3), '75': (14, 3), + } + + x_distance = 86 + y_distance = 110 + + pieces = {} + for key, value in __pieces.items(): + pieces[key] = (x_distance/2 + x_distance*(value[0]-1), + x_distance/2 + y_distance*(value[1]-1)) + + image_size = (x_distance * 17, y_distance * 4) + + @classmethod + def plot_teeth(cls, im): + draw = ImageDraw.Draw(im) + + for tooth, values in cls.pieces.items(): + width = 3 + color = (0, 0, 0) + + x = values[0] + y = values[1] + d1 = cls.x_distance/2 * 0.9 + d2 = d1/2 + d3 = d1/1.414 + d4 = d2/1.414 + + draw.ellipse((x - d1, y - d1, x + d1, y + d1), outline=color, width = width) + draw.ellipse((x - d2, y - d2, x + d2, y + d2), outline=color, width = width) + draw.line((x - d3, y - d3, x - d4, y - d4), fill=color, width=width) + draw.line((x + d3, y + d3, x + d4, y + d4), fill=color, width=width) + draw.line((x - d3, y + d3, x - d4, y + d4), fill=color, width=width) + draw.line((x + d3, y - d3, x + d4, y - d4), fill=color, width=width) + + fontsize = cls.x_distance//4 + font = ImageFont.truetype("FreeSans", fontsize) + draw.multiline_text((x - fontsize/2 , y + d1 * 1.1), tooth, fill=color, font=font) @classmethod def plot_extraction(cls, piece_center, status, im): @@ -59,10 +90,11 @@ color = for_extraction_color xcenter, ycenter = piece_center - llc = {'x': xcenter - 30, 'y': ycenter + 30} - urc = {'x': xcenter + 30, 'y': ycenter - 30} - ulc = {'x': xcenter - 30, 'y': ycenter - 30} - lrc = {'x': xcenter + 30, 'y': ycenter + 30} + num = cls.x_distance/(2*1.414) + llc = {'x': xcenter - num, 'y': ycenter + num} + urc = {'x': xcenter + num, 'y': ycenter - num} + ulc = {'x': xcenter - num, 'y': ycenter - num} + lrc = {'x': xcenter + num, 'y': ycenter + num} draw = ImageDraw.Draw(im) draw.line((llc['x'], llc['y'], urc['x'], urc['y']), fill=color, width=10) @@ -92,18 +124,20 @@ # Set the section of the filling / decay # Maxillar / upper region + num = cls.x_distance/(2*1.414) + if (tooth in range(11, 28) or tooth in range(51, 65)): for key in tregions.keys(): if (key in ['o', 'i']): # Occlusal or Incisal position = (x, y) # Center of the tooth if (key == 'v'): # Vestibular - position = (x, y - 25) + position = (x, y - num) if (key == 'p'): # Palatine - position = (x, y + 25) + position = (x, y + num) if (key == 'd'): # Distal - position = (x - 25, y) + position = (x - num, y) if (key == 'm'): # Mesial - position = (x + 25, y) + position = (x + num, y) ImageDraw.floodfill(im, xy=position, value=color, thresh=200) @@ -113,29 +147,29 @@ if (key in ['o', 'i']): # Occlusal or Incisal position = (x, y) # Center of the tooth if (key == 'l'): # Lingual - position = (x, y - 25) + position = (x, y - num) if (key == 'v'): # Vestibular - position = (x, y + 25) + position = (x, y + num) if (key == 'm'): # Mesial - position = (x - 25, y) + position = (x - num, y) if (key == 'd'): # Distal - position = (x + 25, y) + position = (x + num, y) ImageDraw.floodfill(im, xy=position, value=color, thresh=200) return (im) @classmethod - def plot_odontogram(cls, dental_schema, dental_schema_primary): + def plot_odontogram(cls, patient): + + im = Image.new('RGB', cls.image_size, (255, 255, 255)) - # Get the template file from current module dir - report_dir = os.path.dirname(os.path.abspath(__file__)) - filename = os.path.join(report_dir, 'odontogram_template.png') - im = Image.open(filename) + dschema1 = json.loads(patient.dental_schema or "{}") + dschema2 = json.loads(patient.dental_schema_primary or "{}") + dschema = {**dschema1, **dschema2} - dschema1 = json.loads(dental_schema) - dschema2 = json.loads(dental_schema_primary) - dschema = {**dschema1, **dschema2} + if dschema: + cls.plot_teeth(im) for tooth, values in dschema.items(): # Decayed or filled tooth @@ -161,12 +195,6 @@ context = super(Odontogram, cls).get_context( records, header, data) - dental_schema = \ - Pool().get('gnuhealth.patient')(data['id']).dental_schema - - dental_schema_primary = \ - Pool().get('gnuhealth.patient')(data['id']).dental_schema_primary - - context['patient_odontogram'] = cls.plot_odontogram(dental_schema, dental_schema_primary) + context['get_patient_odontogram'] = cls.plot_odontogram return context diff -r ef40ad0b2ae2 -r 6b56028fa7e0 tryton/health_dentistry/report/odontogram_template.png Binary file tryton/health_dentistry/report/odontogram_template.png has changed # HG changeset patch # User Feng Shu # Date 1687945809 -28800 # Wed Jun 28 17:50:09 2023 +0800 # Node ID d1459c6f5ef9dfc0ff3ce3b4b7040ee6195eeaea # Parent 6b56028fa7e026d2331105b1ee546e05bf5fa0d4 Slightly improve tryton/health/report/prescription_orders.fodt diff -r 6b56028fa7e0 -r d1459c6f5ef9 tryton/health/report/prescription_orders.fodt --- a/tryton/health/report/prescription_orders.fodt Tue Jun 27 08:56:40 2023 +0800 +++ b/tryton/health/report/prescription_orders.fodt Wed Jun 28 17:50:09 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 60960 0 - 40245 + 40192 22571 true false view2 - 11622 + 11596 76403 0 60960 - 40243 + 40190 83529 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 4555132 + 4569351 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,29 +147,29 @@ + + + + + + - - + - - - - - - + - + - + @@ -171,11 +181,11 @@ - + - + @@ -803,113 +813,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -917,61 +927,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -979,61 +989,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1370,27 +1380,27 @@ - + - + - + - + - + + + + + - - - - @@ -1398,11 +1408,11 @@ - - + + - - + + @@ -1426,13 +1436,13 @@ - + - + @@ -1440,69 +1450,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1570,7 +1583,7 @@ <if test="prescription.patient.name.du"> - <prescription.patient.name.du.address_street or ''>// <prescription.patient.name.du.address_city or ''> + <prescription.patient.name.du.address_street or ''><prescription.patient.name.du.address_city and '//'><prescription.patient.name.du.address_city or ''> </if> @@ -1613,7 +1626,7 @@ - + @@ -1770,7 +1783,7 @@ - + <if test="lines.form"> @@ -1778,7 +1791,7 @@ - + Form: @@ -1786,7 +1799,7 @@ <lines.form.name> - + </if> @@ -1794,7 +1807,7 @@ - + <if test="lines.route"> @@ -1802,7 +1815,7 @@ - + Route: @@ -1810,7 +1823,7 @@ <lines.route.name> - + </if> @@ -1818,7 +1831,7 @@ - + <if test="lines.indication"> @@ -1826,7 +1839,7 @@ - + Indication: @@ -1834,7 +1847,7 @@ <lines.indication.name> - + </if> @@ -1842,7 +1855,7 @@ - + <if test="lines.short_comment"> @@ -1850,7 +1863,7 @@ - + Remarks: @@ -1858,7 +1871,7 @@ <lines.short_comment or ''> - + </if> @@ -1871,13 +1884,13 @@ - + Duration: <if test="lines.duration_period != 'indefinite'"> - <lines.duration or ''><lines.duration_period_str> + <lines.duration or ''><lines.duration and lines.duration_period_str> </if> <if test="lines.duration_period == 'indefinite'"> <lines.duration_period_str> @@ -1890,14 +1903,14 @@ - + Directions - + Qty @@ -1908,13 +1921,15 @@ Specific Usage - + <lines.qty or ''> <if test="lines.common_dosage"> <lines.common_dosage.name> + </if> + <if test="lines.admin_times"> (<lines.admin_times>) </if> @@ -1940,7 +1955,7 @@ - + Notes @@ -1948,7 +1963,7 @@ Health Professional Signature - + <prescription.notes or ''> # HG changeset patch # User Feng Shu # Date 1687996509 -28800 # Thu Jun 29 07:55:09 2023 +0800 # Node ID 69bba6ef6d5e2220132c2ea69a2c19c0bb29eea6 # Parent d1459c6f5ef9dfc0ff3ce3b4b7040ee6195eeaea Update title of health_history/report/patient_evaluation.fodt diff -r d1459c6f5ef9 -r 69bba6ef6d5e tryton/health_history/report/patient_evaluation.fodt --- a/tryton/health_history/report/patient_evaluation.fodt Wed Jun 28 17:50:09 2023 +0800 +++ b/tryton/health_history/report/patient_evaluation.fodt Thu Jun 29 07:55:09 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 1482 + 147532 0 - 40245 - 21512 + 40192 + 22571 true false view2 - 18030 - 157519 + 13781 + 163013 0 - 1482 - 40243 - 22992 + 147532 + 40190 + 170101 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3989510 + 4019286 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,27 +147,27 @@ - + - - + + - + - + - + @@ -810,113 +820,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -924,61 +934,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -986,61 +996,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1698,33 +1708,33 @@ - - - - + - + + + + + + + - - - - - + + + + + + + + - + - - - - - - @@ -1770,8 +1780,11 @@ + + + - + @@ -1779,69 +1792,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1853,13 +1869,13 @@ <for each="evaluation in records"> - Patient Evaluation Report + Patient Evaluation Detail Report - + Patient: @@ -1873,7 +1889,7 @@ <evaluation.patient.name.ref> - + DoB: @@ -1889,7 +1905,7 @@ <evaluation.patient.name.gender_str> - + Marital Status: @@ -1905,7 +1921,7 @@ </if> - + Occupation: @@ -1921,7 +1937,7 @@ - + Code: @@ -1935,7 +1951,7 @@ <format_date(evaluation.report_evaluation_date, user.language)>, <evaluation.report_evaluation_time.strftime('%H:%M:%S')> - + Initiated by: @@ -1949,7 +1965,7 @@ <format_date(datetime.date.today(), user.language)>, <datetime.datetime.now().strftime('%H:%M:%S')> - + Information Source: @@ -1967,12 +1983,12 @@ - + Chief Complaint - + <evaluation.chief_complaint or ""> @@ -1981,12 +1997,12 @@ - + History of Present Illness - + <for each="line in evaluation.present_illness.split('\n')"> <line> @@ -1997,12 +2013,12 @@ - + Clinical and Physical examination - + <for each="line in (evaluation.evaluation_summary or "").split('\n')"> <line> @@ -2014,7 +2030,7 @@ - + Vital Signs @@ -2024,7 +2040,7 @@ - + Temperature @@ -2042,7 +2058,7 @@ OSAT - + <evaluation.temperature> @@ -2068,7 +2084,7 @@ - + Anthropometry @@ -2078,7 +2094,7 @@ - + Height: @@ -2098,7 +2114,7 @@ <evaluation.bmi> - + Weight: @@ -2125,7 +2141,7 @@ - + Level of Conciousness / Glasgow Scale @@ -2133,7 +2149,7 @@ - + Eyes @@ -2147,7 +2163,7 @@ Total Glasgow - + <evaluation.loc_eyes>/ 4 @@ -2167,14 +2183,14 @@ - + Signs and Symptoms - + Type @@ -2185,7 +2201,7 @@ Comments - + <for each="clinical in evaluation.signs_and_symptoms"> @@ -2196,7 +2212,7 @@ - + <clinical.sign_or_symptom_str> @@ -2207,7 +2223,7 @@ <clinical.comments> - + </for> @@ -2222,22 +2238,22 @@ - + <if test="evaluation.diagnosis"> - + Presumptive Diagnosis - + <evaluation.diagnosis.name> - + </if> @@ -2247,19 +2263,19 @@ - + Other Hypotheses / DDx - + <for each="ddx in evaluation.diagnostic_hypothesis"> - + <ddx.pathology.name> @@ -2267,7 +2283,7 @@ <ddx.comments> - + </for> @@ -2279,7 +2295,7 @@ - + Information about the Diagnosis @@ -2295,7 +2311,7 @@ - + Care Plan @@ -2311,12 +2327,12 @@ - + Discharge Reason - + <evaluation.discharge_reason_str> @@ -2329,7 +2345,7 @@ - + Medication History @@ -2338,7 +2354,7 @@ - + Medicament @@ -2355,7 +2371,7 @@ Active - + <for each="medication in evaluation.patient.medications"> @@ -2372,7 +2388,7 @@ - + <medication.medicament.name.name or ''> @@ -2395,7 +2411,7 @@ <medication.is_active and '*' or ''> - + </for> @@ -2418,13 +2434,13 @@ - + Personal History - + Automated report about patient important conditions @@ -2432,7 +2448,7 @@ Annotations about the patient conditions & history - + <for each="line in (evaluation.patient.critical_summary or "").split('\n')"> <line> @@ -2568,13 +2584,13 @@ - + Surgeries - + <for each="surgery in evaluation.patient.surgery"> @@ -2582,7 +2598,7 @@ - + <if test="surgery.surgery_date"> <format_date(surgery.surgery_date, user.language)> @@ -2592,7 +2608,7 @@ <surgery.description> - + </for> @@ -2696,14 +2712,14 @@ - + Family Information - + <for each="family_member in evaluation.patient.family_history"> @@ -2725,7 +2741,7 @@ <family_member.name.name or ''> - + </for> @@ -2741,13 +2757,13 @@ - + Patient Genetic Information - + <for each="gene in evaluation.patient.genetic_risks"> @@ -2763,7 +2779,7 @@ <gene.disease_gene.long_name or ''> - + </for> @@ -2821,7 +2837,7 @@ - + Date @@ -2835,7 +2851,7 @@ Family APGAR Functionality - + <for each="assessment in evaluation.patient.ses_assessments"> @@ -2849,7 +2865,7 @@ - + <if test="assessment.assessment_date"> <format_date(assessment.assessment_date, user.language) or ''> @@ -2867,7 +2883,7 @@ <assessment.fam_apgar_score> - + </for> @@ -2888,14 +2904,14 @@ - + Lifestyle - + <for each="line in (evaluation.patient.lifestyle_info or '').split('\n')"> <line> @@ -2904,7 +2920,7 @@ - + Sexuality: @@ -2915,7 +2931,7 @@ <evaluation.patient.sexual_partners_str> - + Sexual practices: @@ -2931,7 +2947,7 @@ - + Evaluation Digital Signature # HG changeset patch # User Feng Shu # Date 1687997206 -28800 # Thu Jun 29 08:06:46 2023 +0800 # Node ID 67bc54f03276e5587a4d537956e763e69ce09ba1 # Parent 69bba6ef6d5e2220132c2ea69a2c19c0bb29eea6 Update tryton/health/report/patient_evaluation.fodt diff -r 69bba6ef6d5e -r 67bc54f03276 tryton/health/report/patient_evaluation.fodt --- a/tryton/health/report/patient_evaluation.fodt Thu Jun 29 07:55:09 2023 +0800 +++ b/tryton/health/report/patient_evaluation.fodt Thu Jun 29 08:06:46 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 160020 + 79832 0 - 40245 + 40192 21512 true false view2 - 11792 - 100981 + 13901 + 81227 0 - 160020 - 40243 - 181531 + 79832 + 40190 + 101342 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3970809 + 3973445 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,29 +147,29 @@ + + + + + + - - + - - - - - - + - + - + @@ -171,11 +181,11 @@ - + - + @@ -799,113 +809,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -913,61 +923,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -975,61 +985,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1204,16 +1214,16 @@ + + + + + + - + - - - - - - @@ -1302,22 +1312,22 @@ - + - + - + - + - + @@ -1329,33 +1339,33 @@ - + - + - + - + - + + + + + - - - - - + @@ -1367,56 +1377,59 @@ - + - + - + - + - + - + - + - + + + + @@ -1449,15 +1462,15 @@ </if> - - - - - - - - - + + + + + + + + + @@ -1475,7 +1488,7 @@ - + Patient: @@ -1489,7 +1502,7 @@ <evaluation.patient.name.ref> - + DoB: @@ -1505,7 +1518,7 @@ <evaluation.patient.name.gender_str> - + Marital Status: @@ -1521,7 +1534,7 @@ </if> - + Occupation: @@ -1537,7 +1550,7 @@ - + Code: @@ -1551,7 +1564,7 @@ <format_date(evaluation.report_evaluation_date, user.language)>, <evaluation.report_evaluation_time.strftime('%H:%M:%S')> - + Initiated by: @@ -1565,7 +1578,7 @@ <format_date(datetime.date.today(), user.language)>, <datetime.datetime.now().strftime('%H:%M:%S')> - + Information Source: @@ -1584,13 +1597,13 @@ - + Allergies and other relevant information - + <for each="line in (evaluation.patient.critical_summary or "").split('\n')"> <line> @@ -1606,13 +1619,12 @@ - - + Chief Complaint - + <evaluation.chief_complaint or ""> @@ -1621,12 +1633,12 @@ - + History of Present Illness - + <for each="line in evaluation.present_illness.split('\n')"> <line> @@ -1637,12 +1649,12 @@ - + Clinical and Physical examination - + <for each="line in (evaluation.evaluation_summary or "").split('\n')"> <line> @@ -1660,7 +1672,7 @@ - + Temperature @@ -1685,7 +1697,7 @@ - + <evaluation.temperature> @@ -1714,74 +1726,74 @@ - + <if test="evaluation.signs_and_symptoms"> - + Signs and Symptoms - + - Type + Type - Clinical finding + Clinical finding - Comments + Comments - + - <for each="clinical in evaluation.signs_and_symptoms"> + <for each="clinical in evaluation.signs_and_symptoms"> - + - + + + + + + <clinical.sign_or_symptom_str> + + + <clinical.clinical.name> + + + <clinical.comments> - - - <clinical.sign_or_symptom_str> - - - <clinical.clinical.name> - - - <clinical.comments> - - - + - </for> + </for> - + - + - + - </if> + </if> - + - + @@ -1804,42 +1816,42 @@ - + + Procedures + + + Comments + + + + <for each="procedure in evaluation.actions"> - + + + + + + + <procedure.procedure.rec_name> + + + <procedure.comments> + + + + + </for> + + - Procedures + </if> - Comments - - - - - <procedure.procedure.rec_name> - - - <procedure.comments> - - - - - </for> - - - - - - - - </if> - - @@ -1847,22 +1859,22 @@ - + <if test="evaluation.diagnosis"> - + Main Condition - + <evaluation.diagnosis.rec_name> - + </if> @@ -1871,66 +1883,67 @@ - + <if test="evaluation.secondary_conditions"> - + Other Conditions - + <for each="condition in evaluation.secondary_conditions"> - + <condition.pathology.rec_name> - + </for> - + - </if> + </if> - + + <if test="evaluation.diagnostic_hypothesis"> - + Differential Diagnoses - + <for each="ddx in evaluation.diagnostic_hypothesis"> - + <ddx.pathology.rec_name> - + </for> - + </if> @@ -1939,12 +1952,12 @@ - + Treatment Plan - + <for each=" line in (evaluation.directions or '').split('\n')"> <line> @@ -1955,12 +1968,12 @@ - + Discharge Reason - + <evaluation.discharge_reason_str> @@ -1969,33 +1982,32 @@ - + <if test="evaluation.digital_signature"> - + Evaluation Digital Signature - + <for each=" line in (evaluation.digital_signature or '').split('\n')"> - + <line> - + </for> - - + </if> # HG changeset patch # User Feng Shu # Date 1687997738 -28800 # Thu Jun 29 08:15:38 2023 +0800 # Node ID d84e5347ae702fe5afe9cbaf4987a91a53b366c0 # Parent 67bc54f03276e5587a4d537956e763e69ce09ba1 Slightly update tryton/health/report/patient_evaluation_brief.fodt diff -r 67bc54f03276 -r d84e5347ae70 tryton/health/report/patient_evaluation_brief.fodt --- a/tryton/health/report/patient_evaluation_brief.fodt Thu Jun 29 08:06:46 2023 +0800 +++ b/tryton/health/report/patient_evaluation_brief.fodt Thu Jun 29 08:15:38 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 26670 + 49107 0 - 39927 + 40192 22571 true false view2 - 16755 - 36678 + 13508 + 63375 0 - 26670 - 39926 - 49239 + 49107 + 40190 + 71676 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3943251 + 3994839 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,29 +147,29 @@ + + + + + + - - + - - - - - - + - + - + @@ -171,11 +181,11 @@ - + - + @@ -799,113 +809,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -913,61 +923,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -975,61 +985,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1152,35 +1162,35 @@ + + + - - - - + - + - + - + - + + + + + - - - - @@ -1194,21 +1204,21 @@ - + + + + - + + + + - - - - + - - - @@ -1255,7 +1265,7 @@ - + @@ -1264,7 +1274,7 @@ - + @@ -1272,69 +1282,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1352,7 +1365,7 @@ - + Patient: @@ -1366,7 +1379,7 @@ <evaluation.patient.name.ref> - + DoB: @@ -1382,7 +1395,7 @@ <evaluation.patient.name.gender_str> - + Code: @@ -1396,7 +1409,7 @@ <format_date(evaluation.report_evaluation_date, user.language)>, <evaluation.report_evaluation_time.strftime('%H:%M:%S')> - + Initiated by: @@ -1414,12 +1427,12 @@ - + Chief Complaint - + <evaluation.chief_complaint or ""> @@ -1428,12 +1441,12 @@ - + History of Present Illness - + <for each="line in evaluation.present_illness.split('\n')"> <line> @@ -1444,12 +1457,12 @@ - + Clinical and Physical examination - + <for each="line in (evaluation.evaluation_summary or "").split('\n')"> <line> @@ -1460,22 +1473,22 @@ - + <if test="evaluation.diagnosis"> - + Main Condition - + <evaluation.diagnosis.rec_name> - + </if> @@ -1484,12 +1497,12 @@ - + Treatment Plan - + <for each=" line in (evaluation.directions or '').split('\n')"> <line> @@ -1500,12 +1513,12 @@ - + Discharge Reason - + <evaluation.discharge_reason_str> @@ -1514,29 +1527,18 @@ - + Sign by - - - <if test="evaluation.signed_by"> - - - + - <evaluation.signed_by.rec_name> - - - - - - </if> + <evaluation.signed_by and evaluation.signed_by.rec_name or ''> - + </for> # HG changeset patch # User Feng Shu # Date 1688002489 -28800 # Thu Jun 29 09:34:49 2023 +0800 # Node ID 02c1af3410c8b03c3d8fca0e42202921aff61333 # Parent d84e5347ae702fe5afe9cbaf4987a91a53b366c0 Fix surgery_report.fodt error Fix surgery_report.fodt error: 'NoneType' object has no attribute 'rec_name'. diff -r d84e5347ae70 -r 02c1af3410c8 tryton/health_surgery/report/surgery_report.fodt --- a/tryton/health_surgery/report/surgery_report.fodt Thu Jun 29 08:15:38 2023 +0800 +++ b/tryton/health_surgery/report/surgery_report.fodt Thu Jun 29 09:34:49 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 98637 + 93768 0 - 40245 - 21512 + 40192 + 22571 true false view2 - 25883 - 42603 + 13781 + 109098 0 - 98637 - 40243 - 120147 + 93768 + 40190 + 116337 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3967909 + 4042720 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,28 +147,28 @@ + + + + + - - + - - - - - + - + - + @@ -170,11 +180,11 @@ - + - + @@ -807,113 +817,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -921,61 +931,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -983,61 +993,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1318,75 +1328,81 @@ - + - + - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + - + + + + - + + + + - + - + - - - @@ -1430,10 +1446,10 @@ - + - + @@ -1448,7 +1464,7 @@ - + @@ -1457,7 +1473,7 @@ - + @@ -1467,56 +1483,59 @@ - + - + - + - + - + - + - + - + + + + @@ -1528,25 +1547,25 @@ - Printed Date: + Printed Date: - <format_date(datetime.date.today(), user.language)>, <datetime.datetime.now().strftime('%H:%M:%S')> + <format_date(datetime.date.today(), user.language)>, <datetime.datetime.now().strftime('%H:%M:%S')> - + - - - - - - - - - + + + + + + + + + @@ -1566,7 +1585,7 @@ - + Date: @@ -1580,7 +1599,7 @@ <surgery.patient.rec_name> - + Institution: @@ -1596,7 +1615,7 @@ <surgery.patient.puid> - + Operating Room: @@ -1612,7 +1631,7 @@ <surgery.patient.gender_str> - + Main Surgeon: @@ -1628,7 +1647,7 @@ <surgery.computed_age> - + Anesthetist: @@ -1651,7 +1670,7 @@ - + Description: @@ -1661,17 +1680,17 @@ - + Intervention: - <surgery.surgical_intervention.rec_name or ''> + <surgery.surgical_intervention and surgery.surgical_intervention.rec_name or ''> - + Classification: @@ -1681,7 +1700,7 @@ - + Surgery Time: @@ -1697,7 +1716,7 @@ </if> - + Base Condition: @@ -1709,13 +1728,13 @@ - + Post-Op. Dx: <if test="surgery.postoperative_dx"> - <surgery.postoperative_dx.rec_name> + <surgery.postoperative_dx and surgery.postoperative_dx.rec_name> </if> @@ -1726,12 +1745,12 @@ - + History of present illness - + <if test="surgery.preop_assessment"> <for each="line in surgery.preop_assessment.evaluation.present_illness.split('\n')"> @@ -1744,12 +1763,12 @@ - + Surgery Details - + <for each="line in surgery.extra_info.split('\n')"> <line> @@ -1760,12 +1779,12 @@ - + Discharge instructions - + <for each="line in surgery.discharge_instructions.split('\n')"> <line> @@ -1835,14 +1854,14 @@ - + Procedure - + Procedure Code @@ -1853,7 +1872,7 @@ Notes - + <for each="procedure in surgery.procedures"> @@ -1864,7 +1883,7 @@ - + <procedure.procedure.name> @@ -1875,7 +1894,7 @@ <procedure.notes> - + </for> @@ -1894,7 +1913,7 @@ - + Supply @@ -1902,7 +1921,7 @@ - + Qty @@ -1916,7 +1935,7 @@ Notes - + <for each="supply in surgery.supplies"> @@ -1930,7 +1949,7 @@ - + <supply.qty> @@ -1944,7 +1963,7 @@ <supply.notes> - + </for> @@ -1980,14 +1999,14 @@ - + Surgery Team - + Member @@ -1998,7 +2017,7 @@ Notes - + <for each="member in surgery.surgery_team"> @@ -2009,7 +2028,7 @@ - + <member.team_member.rec_name> @@ -2022,7 +2041,7 @@ <member.notes> - + </for> # HG changeset patch # User Feng Shu # Date 1688005384 -28800 # Thu Jun 29 10:23:04 2023 +0800 # Node ID 1dafe76e36c56b720ccd4516833f9bdb237e365c # Parent 02c1af3410c8b03c3d8fca0e42202921aff61333 Update health_qrcodes/report/newborn_card.fodt diff -r 02c1af3410c8 -r 1dafe76e36c5 tryton/health_qrcodes/report/newborn_card.fodt --- a/tryton/health_qrcodes/report/newborn_card.fodt Thu Jun 29 09:34:49 2023 +0800 +++ b/tryton/health_qrcodes/report/newborn_card.fodt Thu Jun 29 10:23:04 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 28998 + 26458 0 - 40245 - 21512 + 40192 + 22571 true false view2 - 18413 - 43064 + 13781 + 47771 0 - 28998 - 40243 - 50509 + 26458 + 40190 + 49027 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 4717029 + 4730137 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,28 +147,28 @@ + + + + + - - + - - - - - + - + - + @@ -170,11 +180,11 @@ - + - + @@ -811,113 +821,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -925,61 +935,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -987,61 +997,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1065,10 +1075,10 @@ - + - + @@ -1148,10 +1158,10 @@ - + - + @@ -1228,17 +1238,17 @@ - + + + + - - + + - - - - - + + @@ -1251,15 +1261,15 @@ - + - + - + @@ -1307,10 +1317,10 @@ - + - + @@ -1354,7 +1364,7 @@ - + @@ -1362,69 +1372,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1490,11 +1503,11 @@ - + - - + + Name: @@ -1504,11 +1517,11 @@ - + - - + + Sex: @@ -1518,11 +1531,11 @@ - + - - + + DoB: @@ -1532,11 +1545,11 @@ - + - - + + Mother: @@ -1548,11 +1561,11 @@ - + - - + + Mother’s PUID: @@ -1562,11 +1575,11 @@ - + - - + + Ht / Wt: @@ -1576,7 +1589,7 @@ - + @@ -1594,7 +1607,7 @@ - + </if> @@ -1647,11 +1660,11 @@ - + - - + + Name: @@ -1661,11 +1674,11 @@ - + - - + + Sex: @@ -1675,11 +1688,11 @@ - + - - + + DoB: @@ -1689,11 +1702,11 @@ - + - - + + Mother: @@ -1705,11 +1718,11 @@ - + - - + + Mother’s PUID: @@ -1719,11 +1732,11 @@ - + - - + + Ht / Wt: @@ -1733,7 +1746,7 @@ - + @@ -1751,7 +1764,7 @@ - + </if> # HG changeset patch # User Feng Shu # Date 1688007826 -28800 # Thu Jun 29 11:03:46 2023 +0800 # Node ID 1b5626a9f9950acb12e601170fd3e83b28613072 # Parent 1dafe76e36c56b720ccd4516833f9bdb237e365c health_crypto_lab: get_serial conside units.name. diff -r 1dafe76e36c5 -r 1b5626a9f995 tryton/health_crypto_lab/health_crypto_lab.py --- a/tryton/health_crypto_lab/health_crypto_lab.py Thu Jun 29 10:23:04 2023 +0800 +++ b/tryton/health_crypto_lab/health_crypto_lab.py Thu Jun 29 11:03:46 2023 +0800 @@ -189,6 +189,7 @@ line_elements = [ line.name or '', line.result or '', + line.units.name or '', line.result_text or '', line.remarks or ''] # HG changeset patch # User Feng Shu # Date 1688012633 -28800 # Thu Jun 29 12:23:53 2023 +0800 # Node ID 8fd76583f9bdec691f0b785b8b2475cc289c32cf # Parent 1b5626a9f9950acb12e601170fd3e83b28613072 Let less errors of some fodt files 1. Let no errors when some fields is not enterd. 2. prefer 'var and var.rec_name' to /if = 'test var' var.rec_name /if diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health/report/birth_certificate.fodt --- a/tryton/health/report/birth_certificate.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health/report/birth_certificate.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 30268 + 24977 0 - 40245 - 23629 + 40192 + 21512 true false view2 - 11622 - 33990 + 23253 + 48024 0 - 30268 - 40243 - 53896 + 24977 + 40190 + 46487 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3882782 + 4069215 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,14 +147,14 @@ - - + - - + + + @@ -154,11 +164,11 @@ - + - + @@ -807,113 +817,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -921,61 +931,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -983,61 +993,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1068,16 +1078,35 @@ + + + + + + + + + + + + + + + + + + + - + - + @@ -1111,16 +1140,16 @@ - + - + - + - + @@ -1132,22 +1161,22 @@ - + - + - + - + - + - + @@ -1159,35 +1188,16 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - + @@ -1204,57 +1214,49 @@ + + + + + + + + + - + - + - + - + - - - - - - - + - + - + + + + + + + - + - - - - - - - - - - - - - - - - - @@ -1289,68 +1291,71 @@ - + - + - + - + - + - + - + - + - + - + + + + @@ -1379,15 +1384,15 @@ </if> - - - - - - - - - + + + + + + + + + @@ -1406,18 +1411,18 @@ - Name of Birth + Name of Birth - Certificate number + Certificate number - <birth_cert.name.rec_name> + <birth_cert.name and birth_cert.name.rec_name or ''> - <birth_cert.code> + <birth_cert.code> @@ -1426,7 +1431,7 @@ - + Mother @@ -1434,16 +1439,12 @@ Father - + - <if test="birth_cert.name.mother"> - <birth_cert.mother.rec_name> - </if> + <birth_cert.mother and birth_cert.mother.rec_name or ''> - <if test="birth_cert.name.father"> - <birth_cert.father.rec_name> - </if> + <birth_cert.father and birth_cert.father.rec_name or ''> @@ -1452,7 +1453,7 @@ - + Sex @@ -1460,7 +1461,7 @@ Date of Birth - + <birth_cert.name.gender_str> @@ -1468,7 +1469,7 @@ <format_date(birth_cert.dob, user.language)> - + Place of Birth @@ -1476,14 +1477,12 @@ Institution - + - <if test="birth_cert.country_subdivision"><birth_cert.country_subdivision.rec_name></if><if test="birth_cert.country_subdivision"><if test="birth_cert.country">, </if></if><if test="birth_cert.country"><birth_cert.country.rec_name></if> + <birth_cert.country_subdivision and birth_cert.country_subdivision.rec_name or ''><birth_cert.country_subdivision and birth_cert.country and ', '><birth_cert.country and birth_cert.country.rec_name or ''> - <if test="birth_cert.institution"> - <birth_cert.institution.rec_name> - </if> + <birth_cert.institution and birth_cert.institution.rec_name or ''> @@ -1492,7 +1491,7 @@ - + Medical officer @@ -1500,12 +1499,12 @@ Issued on - + - <birth_cert.signed_by.rec_name> + <birth_cert.signed_by and birth_cert.signed_by.rec_name or ''> - <format_date(birth_cert.certification_date, user.language)> + <birth_cert.certification_date and format_date(birth_cert.certification_date, user.language)> diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health/report/death_certificate.fodt --- a/tryton/health/report/death_certificate.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health/report/death_certificate.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 34502 + 32597 0 - 40245 - 23629 + 40192 + 22571 true false view2 - 11622 - 38516 + 13781 + 53349 0 - 34502 - 40243 - 58129 + 32597 + 40190 + 55166 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3991066 + 4009769 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,29 +147,28 @@ - + + - + + + + - - - - - - + - + - + @@ -808,113 +817,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -922,61 +931,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -984,61 +993,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1163,7 +1172,6 @@ - @@ -1174,7 +1182,6 @@ - @@ -1190,20 +1197,9 @@ - - - - - - - - - - - @@ -1224,16 +1220,16 @@ - + - + - + - + @@ -1273,47 +1269,47 @@ - + + + + + + + - - - - + - + - + - + - - + + - - - - - + + - + + + + - + - - - @@ -1351,7 +1347,7 @@ - + @@ -1363,56 +1359,59 @@ - + - + - + - + - + - + - + - + + + + @@ -1441,15 +1440,15 @@ </if> - - - - - - - - - + + + + + + + + + @@ -1467,18 +1466,18 @@ - Name of decedent + Name of decedent - Certificate number + Certificate number - <death_cert.name.rec_name> + <death_cert.name and death_cert.name.rec_name> - <death_cert.code> + <death_cert.code> @@ -1504,9 +1503,7 @@ - <if test="death_cert.name.dob"> - <format_date(death_cert.name.dob, user.language)> - </if> + <death_cert.name.dob and format_date(death_cert.name.dob, user.language)> <death_cert.age> @@ -1530,19 +1527,15 @@ - <if test="death_cert.name.mother"> - <death_cert.name.mother.rec_name> - </if> + <death_cert.name.mother and death_cert.name.mother.rec_name> - <if test="death_cert.name.father"> - <death_cert.name.father.rec_name> - </if> + <death_cert.name.father and death_cert.name.father.rec_name> - + Usual Address @@ -1556,24 +1549,18 @@ Occupation - + <death_cert.name.du_address> - <if test="death_cert.name.citizenship"> - <death_cert.name.citizenship.rec_name> - </if> + <death_cert.name.citizenship and death_cert.name.citizenship.rec_name> - <if test="death_cert.name.residence"> - <death_cert.name.residence.rec_name> - </if> + <death_cert.name.residence and death_cert.name.residence.rec_name> - <if test="death_cert.name.occupation"> - <death_cert.name.occupation.rec_name> - </if> + <death_cert.name.occupation and death_cert.name.occupation.rec_name> @@ -1590,15 +1577,11 @@ - <if test="death_cert.du"> - <death_cert.du.rec_name> - </if> + <death_cert.du and death_cert.du.rec_name> - <if test="death_cert.institution"> - <death_cert.institution.rec_name> - </if> + <death_cert.institution and death_cert.institution.rec_name> <death_cert.place_of_death_str> @@ -1625,17 +1608,13 @@ - + - <if test="death_cert.country"> - <death_cert.country.rec_name> - </if> + <death_cert.country and death_cert.country.rec_name> - <if test="death_cert.country_subdivision"> - <death_cert.country_subdivision.rec_name> - </if> + <death_cert.country_subdivision and death_cert.country_subdivision.rec_name> @@ -1658,16 +1637,16 @@ <death_cert.type_of_death_str> - <death_cert.cod.rec_name> + <death_cert.cod and death_cert.cod.rec_name> - - + + Autopsy: <death_cert.autopsy and "YES" or "NO"> - + @@ -1677,7 +1656,6 @@ - <for each="condition in death_cert.underlying_conditions"> @@ -1727,7 +1705,7 @@ - + Medical officer @@ -1735,12 +1713,12 @@ Certification Date - + - <death_cert.signed_by.rec_name> + <death_cert.signed_by and death_cert.signed_by.rec_name> - <format_date(death_cert.certification_date, user.language)> + <death_cert.certification_date and format_date(death_cert.certification_date, user.language)> diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health/report/patient_card.fodt --- a/tryton/health/report/patient_card.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health/report/patient_card.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 26035 + 30903 0 - 40245 + 40192 22571 true false view2 - 13808 - 47426 + 13781 + 46244 0 - 26035 - 40243 - 48604 + 30903 + 40190 + 53472 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 4462366 + 4489574 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,28 +147,28 @@ + + + + + - - + - - - - - + - + - + @@ -170,11 +180,11 @@ - + - + @@ -811,113 +821,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -925,61 +935,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -987,61 +997,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1232,17 +1242,17 @@ - + + + + - - + + - - - - - + + @@ -1257,31 +1267,31 @@ - - + - - - + + - - - + + - + + - - - - + + - - + + + - - + + + + + @@ -1317,10 +1327,10 @@ - + - + @@ -1346,7 +1356,7 @@ - + @@ -1354,69 +1364,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1478,7 +1491,7 @@ - + PUID: @@ -1493,7 +1506,7 @@ - + Gender: @@ -1508,14 +1521,12 @@ - + DoB: - <if test="patient.dob"> - <format_date(patient.dob, user.language)> - </if> + <patient.dob and format_date(patient.dob, user.language)> @@ -1525,7 +1536,7 @@ - + Blood Type: @@ -1600,7 +1611,7 @@ - + PUID: @@ -1615,7 +1626,7 @@ - + Gender: @@ -1630,14 +1641,12 @@ - + DoB: - <if test="patient.dob"> - <format_date(patient.dob, user.language)> - </if> + <patient.dob and format_date(patient.dob, user.language)> @@ -1647,7 +1656,7 @@ - + Blood Type: diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health/report/patient_conditions_history.fodt --- a/tryton/health/report/patient_conditions_history.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health/report/patient_conditions_history.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 39393 + 33443 0 - 40245 - 21512 + 40192 + 22571 true false view2 - 18154 - 46498 + 13781 + 48909 0 - 39393 - 40243 - 60904 + 33443 + 40190 + 56012 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 3846868 + 3928121 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,27 +147,27 @@ - + - - + + - + - + - + @@ -800,113 +810,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -914,61 +924,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -976,61 +986,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1152,17 +1162,17 @@ - + + + + - - + + - - - - - + + @@ -1173,15 +1183,15 @@ - - - - + - + + + + @@ -1216,7 +1226,7 @@ - + @@ -1224,69 +1234,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1354,12 +1367,12 @@ - + Automated info about this patient relevant conditions - + <for each="line in patient.critical_summary.split('\n')"> <line> @@ -1370,12 +1383,12 @@ - + Annotations about the patient - + <for each="line in patient.critical_info.split('\n')"> <line> @@ -1459,9 +1472,7 @@ </if> - <if test="disease.diagnosed_date"> - <format_date(disease.diagnosed_date, user.language)> - </if> + <disease.diagnosed_date and format_date(disease.diagnosed_date, user.language)> <disease.short_comment> diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health_pediatrics/report/newborn_card.fodt --- a/tryton/health_pediatrics/report/newborn_card.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health_pediatrics/report/newborn_card.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 27728 + 26458 0 - 40245 - 21512 + 40192 + 22571 true false view2 - 18524 - 42833 + 13781 + 46597 0 - 27728 - 40243 - 49239 + 26458 + 40190 + 49027 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 4717304 + 4806717 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,28 +147,28 @@ + + + + + - - + - - - - - + - + - + @@ -170,11 +180,11 @@ - + - + @@ -811,113 +821,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -925,61 +935,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -987,61 +997,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1232,17 +1242,17 @@ - + + + + - - + + - - - - - + + @@ -1255,15 +1265,15 @@ - + - + - + @@ -1308,10 +1318,10 @@ - + - + @@ -1352,7 +1362,7 @@ - + @@ -1360,69 +1370,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1481,8 +1494,8 @@ - - + + Name: @@ -1494,8 +1507,8 @@ - - + + Sex: @@ -1507,8 +1520,8 @@ - - + + DoB: @@ -1520,36 +1533,34 @@ - - + + Mother: - <if test="newborn.mother"> - <newborn.mother.name.rec_name> - </if> + <newborn.mother and newborn.mother.name.rec_name> - - + + Mother’s PUID: - <newborn.mother.puid> + <newborn.mother and newborn.mother.puid> - - + + Ht / Wt: @@ -1621,8 +1632,8 @@ - - + + Name: @@ -1634,8 +1645,8 @@ - - + + Sex: @@ -1647,8 +1658,8 @@ - - + + DoB: @@ -1660,36 +1671,34 @@ - - + + Mother: - <if test="newborn.mother"> - <newborn.mother.name.rec_name> - </if> + <newborn.mother and newborn.mother.name.rec_name> - - + + Mother’s PUID: - <newborn.mother.puid> + <newborn.mother and newborn.mother.puid> - - + + Ht / Wt: diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health_qrcodes/report/newborn_card.fodt --- a/tryton/health_qrcodes/report/newborn_card.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health_qrcodes/report/newborn_card.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,10 +1,10 @@ - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 26458 + 30268 0 40192 22571 @@ -14,11 +14,11 @@ view2 13781 - 47771 + 46597 0 - 26458 + 30268 40190 - 49027 + 52837 0 0 false @@ -91,7 +91,7 @@ true true - 4730137 + 4769348 true false @@ -161,7 +161,7 @@ - + @@ -1554,9 +1554,7 @@ Mother: - <if test="newborn.mother"> - <newborn.mother.name.rec_name> - </if> + <newborn.mother and newborn.mother.name.rec_name> @@ -1570,7 +1568,7 @@ Mother’s PUID: - <newborn.mother.puid> + <newborn.mother and newborn.mother.puid> @@ -1711,9 +1709,7 @@ Mother: - <if test="newborn.mother"> - <newborn.mother.name.rec_name> - </if> + <newborn.mother and newborn.mother.name.rec_name> @@ -1727,7 +1723,7 @@ Mother’s PUID: - <newborn.mother.puid> + <newborn.mother and newborn.mother.puid> diff -r 1b5626a9f995 -r 8fd76583f9bd tryton/health_qrcodes/report/patient_card.fodt --- a/tryton/health_qrcodes/report/patient_card.fodt Thu Jun 29 11:03:46 2023 +0800 +++ b/tryton/health_qrcodes/report/patient_card.fodt Thu Jun 29 12:23:53 2023 +0800 @@ -1,29 +1,31 @@ - - 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + + 2023-06-05T22:10:09.100073222P0D1LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1 - 31327 + 27728 0 - 40245 + 40192 22571 true false view2 - 13808 - 47821 + 13781 + 46441 0 - 31327 - 40243 - 53896 + 27728 + 40190 + 50297 0 0 false 100 false + false + false false @@ -47,12 +49,14 @@ false true false + false false false true true true false + false false false false @@ -70,6 +74,7 @@ 0 1 true + false high-resolution false @@ -79,16 +84,18 @@ false false false + false true true false true true - 4500957 + 4515813 true false + true true 0 @@ -98,12 +105,15 @@ true false true + 0 false false false false true + false false + false true false @@ -137,28 +147,28 @@ + + + + + - - + - - - - - + - + - + @@ -170,11 +180,11 @@ - + - + @@ -811,113 +821,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -925,61 +935,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -987,61 +997,61 @@ - + - + - + - + - + - + - + - + - + - + @@ -1116,12 +1126,7 @@ - - - - - - + @@ -1141,11 +1146,6 @@ - - - - - @@ -1209,12 +1209,7 @@ - - - - - - + @@ -1234,11 +1229,6 @@ - - - - - @@ -1248,17 +1238,17 @@ - + + + + - - + + - - - - - + + @@ -1273,31 +1263,31 @@ - - + - - - + + - - - + + - + + - - - - + + - - + + + - - + + + + + @@ -1336,10 +1326,10 @@ - + - + @@ -1368,7 +1358,7 @@ - + @@ -1376,69 +1366,72 @@ - + - + - + - + - + - + - + - + + + + - - - - - - - - - + + + + + + + + + @@ -1504,14 +1497,14 @@ - + - - + + PUID: @@ -1520,14 +1513,14 @@ - + - - + + Gender: @@ -1536,32 +1529,30 @@ - + - - + + DoB: - <if test="patient.dob"> - <format_date(patient.dob, user.language)> - </if> + <patient.dob and format_date(patient.dob, user.language)> - + - - + + Blood Type: @@ -1570,7 +1561,7 @@ - + @@ -1588,7 +1579,7 @@ - + </if> @@ -1641,14 +1632,14 @@ - + - - + + PUID: @@ -1657,14 +1648,14 @@ - + - - + + Gender: @@ -1673,32 +1664,30 @@ - + - - + + DoB: - <if test="patient.dob"> - <format_date(patient.dob, user.language)> - </if> + <patient.dob and format_date(patient.dob, user.language)> - + - - + + Blood Type: @@ -1707,7 +1696,7 @@ - + @@ -1725,7 +1714,7 @@ - + </if>