Patient Profile and Vital Signs

development_mirza
mirza.shafique 3 years ago
parent c1245da605
commit a76be6640a

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.123" height="26.245" viewBox="0 0 28.123 26.245">
<path id="XMLID_219_" d="M28.984,15.637A2.077,2.077,0,0,1,27.025,17h-.716V27.309a.938.938,0,0,1-.937.937H19.748V21.685a4.687,4.687,0,0,0-9.374,0v6.562H4.749a.938.938,0,0,1-.937-.937V17H3.095a2.1,2.1,0,0,1-1.378-3.675L12.665,2.955a3.486,3.486,0,0,1,4.792,0L28.431,13.347A2.066,2.066,0,0,1,28.984,15.637Z" transform="translate(-0.999 -2.001)" fill="#2e303a"/>
</svg>

After

Width:  |  Height:  |  Size: 467 B

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24.899" height="24.899" viewBox="0 0 24.899 24.899">
<g id="Layer_76" data-name="Layer 76" transform="translate(-2 -2)">
<path id="Path_4380" data-name="Path 4380" d="M3.245,11.96A1.245,1.245,0,0,0,4.49,10.715V5.735A1.245,1.245,0,0,1,5.735,4.49h4.98a1.245,1.245,0,1,0,0-2.49H5.735A3.735,3.735,0,0,0,2,5.735v4.98A1.245,1.245,0,0,0,3.245,11.96Z" transform="translate(0 0)" fill="#2e303a"/>
<path id="Path_4381" data-name="Path 4381" d="M20.225,2h-4.98a1.245,1.245,0,0,0,0,2.49h4.98A1.245,1.245,0,0,1,21.47,5.735v4.98a1.245,1.245,0,1,0,2.49,0V5.735A3.735,3.735,0,0,0,20.225,2Z" transform="translate(2.94 0)" fill="#2e303a"/>
<path id="Path_4382" data-name="Path 4382" d="M22.715,14a1.245,1.245,0,0,0-1.245,1.245v4.98a1.245,1.245,0,0,1-1.245,1.245h-4.98a1.245,1.245,0,0,0,0,2.49h4.98a3.735,3.735,0,0,0,3.735-3.735v-4.98A1.245,1.245,0,0,0,22.715,14Z" transform="translate(2.94 2.94)" fill="#2e303a"/>
<path id="Path_4383" data-name="Path 4383" d="M10.715,21.47H5.735A1.245,1.245,0,0,1,4.49,20.225v-4.98a1.245,1.245,0,0,0-2.49,0v4.98A3.735,3.735,0,0,0,5.735,23.96h4.98a1.245,1.245,0,1,0,0-2.49Z" transform="translate(0 2.94)" fill="#2e303a"/>
<rect id="Rectangle_17370" data-name="Rectangle 17370" width="15" height="15" rx="2" transform="translate(7 6.899)" fill="#2e303a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="26.552" height="20.755" viewBox="0 0 26.552 20.755">
<g id="mail-reply" transform="translate(0 -40.338)">
<path id="Path_4384" data-name="Path 4384" d="M21.236,51.705h.129a1.8,1.8,0,0,1,2.761-2.272l.788.788V42.437a2.1,2.1,0,0,0-2.1-2.1H2.1a2.1,2.1,0,0,0-2.1,2.1V56.921a2.1,2.1,0,0,0,2.1,2.1H16.575a5.14,5.14,0,0,1,4.66-7.314ZM5.213,43.167H19.7l-7.244,5.312Z" fill="#2e303a"/>
<path id="Path_4385" data-name="Path 4385" d="M245.767,175.159l-2.8-2.8a.9.9,0,1,0-1.27,1.27l1.265,1.265h-2.25a4.245,4.245,0,0,0,0,8.489.9.9,0,1,0,0-1.8,2.448,2.448,0,0,1,0-4.9h2.25l-1.265,1.265a.9.9,0,0,0,1.27,1.27l2.8-2.8a.9.9,0,0,0,0-1.27Z" transform="translate(-219.478 -122.292)" fill="#2e303a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 749 B

@ -0,0 +1,3 @@
<svg id="weekly-calendar-page-symbol" xmlns="http://www.w3.org/2000/svg" width="25.034" height="25.034" viewBox="0 0 25.034 25.034">
<path id="Path_4379" data-name="Path 4379" d="M22.53,0H2.5A2.511,2.511,0,0,0,0,2.5V22.53a2.512,2.512,0,0,0,2.5,2.5H22.53a2.512,2.512,0,0,0,2.5-2.5V2.5A2.511,2.511,0,0,0,22.53,0ZM6.756,22.031H2.921V18.62H6.756v3.411Zm0-4.555H2.921v-3.41H6.756v3.41ZM6.467,3.794A1.063,1.063,0,1,1,7.529,2.731,1.062,1.062,0,0,1,6.467,3.794Zm5.406,18.237H8.039V18.62h3.834Zm0-4.555H8.039v-3.41h3.834Zm0-4.552H8.039V9.514h3.834ZM11.455,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,11.455,2.731Zm5.54,14.745H13.159v-3.41H17v3.41Zm0-4.552H13.159V9.514H17v3.41ZM17.5,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,17.5,2.731Zm4.609,14.745H18.278v-3.41h3.835Zm0-4.552H18.278V9.514h3.835Z" fill="#2e303a"/>
</svg>

After

Width:  |  Height:  |  Size: 838 B

@ -0,0 +1,57 @@
<svg id="woman_2_" data-name="woman (2)" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<g id="Group_7145" data-name="Group 7145">
<g id="Group_7144" data-name="Group 7144">
<g id="Group_7143" data-name="Group 7143">
<g id="Group_7142" data-name="Group 7142">
<g id="XMLID_2114_">
<g id="XMLID_2115_">
<g id="XMLID_2116_">
<g id="XMLID_2117_">
<g id="XMLID_2118_">
<g id="XMLID_2119_">
<g id="XMLID_2120_">
<g id="XMLID_2121_">
<g id="XMLID_2122_">
<g id="XMLID_2123_">
<g id="XMLID_2124_">
<g id="XMLID_2125_">
<g id="XMLID_2126_">
<g id="XMLID_2127_">
<g id="Group_7141" data-name="Group 7141">
<path id="Path_4450" data-name="Path 4450" d="M48,24a23.928,23.928,0,0,1-6.947,16.887C36.7,45.279,30.669,42.776,24,42.776s-12.7,2.5-17.053-1.889A24,24,0,1,1,48,24Z" fill="#e2e2e2"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="Path_4451" data-name="Path 4451" d="M48,24q0-1.087-.1-2.151L33.541,7.485,14.75,23.632,31.62,40.5l1.688,2.974c2.921.089,5.548-.37,7.745-2.589A23.928,23.928,0,0,0,48,24Z" fill="#c4c4c4"/>
<path id="Path_4452" data-name="Path 4452" d="M24,3.287C20.723,2.9,8.986,6.052,12.5,19.837c.924,3.622,4.646,5.913,6.284,6.51,2.5.913,2.742-.517,5.214-2.007,2.472,1.49,2.71,2.919,5.214,2.007,1.638-.6,5.36-2.888,6.284-6.51C39.014,6.052,27.277,2.9,24,3.287Z" fill="#515151"/>
<path id="Path_4453" data-name="Path 4453" d="M35.5,19.838c-.924,3.622-4.646,5.913-6.284,6.51-2.5.913-2.742-.517-5.213-2.007V3.287C27.277,2.9,39.014,6.052,35.5,19.837Z" fill="#3d3d3d"/>
<path id="Path_4454" data-name="Path 4454" d="M18.747,23.459H29.253V34.6H18.747Z" fill="#eaa678"/>
<path id="Path_4455" data-name="Path 4455" d="M24,23.46h5.253V34.6H24Z" fill="#d38c5b"/>
<path id="Path_4456" data-name="Path 4456" d="M18.747,30.452H29.253V41.593H18.747Z" fill="#ffc397"/>
<path id="Path_4457" data-name="Path 4457" d="M24,30.452h5.253V41.593H24Z" fill="#eaa678"/>
<path id="Path_4458" data-name="Path 4458" d="M41.053,35.918v4.969a24,24,0,0,1-34.106,0V35.918a5.466,5.466,0,0,1,5.466-5.467h6.335L24,37.18l5.253-6.728h6.335A5.466,5.466,0,0,1,41.053,35.918Z" fill="#d02127"/>
<path id="Path_4459" data-name="Path 4459" d="M41.053,35.918v4.969A23.925,23.925,0,0,1,24,48V37.18l5.253-6.728h6.335A5.466,5.466,0,0,1,41.053,35.918Z" fill="#aa191e"/>
<path id="Path_4460" data-name="Path 4460" d="M28.256,39.447a2.908,2.908,0,0,0-1.3,2.649c.172,1.751,2.3,3.292,2.3,3.292s3.4-3.062,2.069-5.94l-1.446-.556Z" fill="#3d3d3d"/>
<path id="Path_4461" data-name="Path 4461" d="M32.274,14.271C31.924,8.965,27.632,7,24,7s-7.924,1.961-8.274,7.267a2.285,2.285,0,0,0-1.5,2.409l.161,2.267a1.875,1.875,0,0,0,2.043,1.7l.175-.019c2.076,5.573,5.33,6.154,7.4,6.48,2.066-.326,5.321-.907,7.4-6.48l.175.019a1.875,1.875,0,0,0,2.043-1.7l.161-2.267A2.285,2.285,0,0,0,32.274,14.271Z" fill="#ffc397"/>
<path id="Path_4462" data-name="Path 4462" d="M33.775,16.681l-.161,2.267a1.875,1.875,0,0,1-2.043,1.7l-.175-.019a11.863,11.863,0,0,1-2.445,4.151A7.942,7.942,0,0,1,24,27.1V7c3.632,0,7.924,1.961,8.274,7.267a2.285,2.285,0,0,1,1.5,2.409Z" fill="#eaa678"/>
<path id="Path_4463" data-name="Path 4463" d="M24,4.977c-5.521-1.2-9.452,2.277-9.539,6.282a10.3,10.3,0,0,0,3.027,6.969c-.053-3.326,1-4.7,3.062-5.438A8.7,8.7,0,0,0,24,9.96a8.7,8.7,0,0,0,3.45,2.83c2.059.739,3.115,2.112,3.062,5.438a10.3,10.3,0,0,0,3.027-6.969C33.452,7.253,29.521,3.772,24,4.977Z" fill="#515151"/>
<path id="Path_4464" data-name="Path 4464" d="M33.539,11.259a10.305,10.305,0,0,1-3.027,6.968c.052-3.326-1-4.7-3.062-5.437A8.7,8.7,0,0,1,24,9.96V4.976C29.521,3.772,33.452,7.253,33.539,11.259Z" fill="#3d3d3d"/>
<path id="Path_4465" data-name="Path 4465" d="M33.389,27.8a6.76,6.76,0,0,0-.026-5.35l-3.618,2.514a2.626,2.626,0,0,0-.524.48,2.882,2.882,0,0,0-.2,3.919,3.365,3.365,0,0,0-.367.422,2.833,2.833,0,0,0,.006,3.69c-.043.042-.085.086-.124.132-2.549,2.97.917,5.083.917,5.083a5.421,5.421,0,0,0,3.554-6.78A6.03,6.03,0,0,0,33.389,27.8Z" fill="#3d3d3d"/>
<path id="Path_4466" data-name="Path 4466" d="M31.27,39.657H28.377a.7.7,0,0,1-.7-.7V37.87a.7.7,0,0,1,.7-.7H31.27a.7.7,0,0,1,.7.7v1.087A.7.7,0,0,1,31.27,39.657Z" fill="#d02127"/>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.179" height="12.188" viewBox="0 0 12.179 12.188">
<path id="Path_4406" data-name="Path 4406" d="M12.039,10.586c1.24-1.24,1.644-1.48,1.348-1.776L12.38,7.8a.3.3,0,0,0-.427,0L10.6,9.152l-.976-.976A4.378,4.378,0,1,0,8.2,9.615l.973.972c-1.24,1.24-1.644,1.48-1.348,1.776L8.828,13.37a.3.3,0,0,0,.427,0L10.6,12.022c1.457,1.457,1.679,1.847,1.977,1.55.97-.97,1.1-1.02,1.1-1.222s-.058-.183-1.638-1.764ZM5.892,8.77a2.9,2.9,0,1,1,2.9-2.9A2.9,2.9,0,0,1,5.892,8.77Z" transform="translate(-1.498 -1.476)" fill="#f0448d"/>
</svg>

After

Width:  |  Height:  |  Size: 565 B

@ -0,0 +1,4 @@
<svg id="hospital_3_" data-name="hospital (3)" xmlns="http://www.w3.org/2000/svg" width="20.5" height="20.5" viewBox="0 0 20.5 20.5">
<path id="Path_4585" data-name="Path 4585" d="M19.9,182.442a.6.6,0,0,0-.6.6v3H18a2.982,2.982,0,0,0-2.921-2.4H8.648v.578L7.413,184.2a3.059,3.059,0,0,0-2.577-.643,1.8,1.8,0,1,0-3.512-.652l-.123-.077V180.6a.6.6,0,0,0-1.2,0v12.092a.6.6,0,0,0,1.2,0v-3H19.3v3a.6.6,0,0,0,1.2,0v-9.649A.6.6,0,0,0,19.9,182.442Zm-18.7,3.6v-1.8l2.853,1.8Z" transform="translate(0 -172.793)" fill="#28323a"/>
<path id="Path_4586" data-name="Path 4586" d="M136.6,1.842h1.2v1.2h-.6a.6.6,0,0,0-.6.6v1.2a1.8,1.8,0,0,0,3.6,0v-1.2a.6.6,0,0,0-.6-.6H139v-1.2h2.4V9.649h1.2V.6a.6.6,0,1,0-1.2.04h-4.8a.6.6,0,0,0,0,1.2Z" transform="translate(-130.555)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 776 B

@ -0,0 +1,56 @@
<svg id="man_5_" data-name="man (5)" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<g id="Group_7139" data-name="Group 7139">
<g id="Group_7138" data-name="Group 7138">
<g id="Group_7137" data-name="Group 7137">
<g id="Group_7136" data-name="Group 7136">
<g id="XMLID_2211_">
<g id="XMLID_2212_">
<g id="XMLID_2213_">
<g id="XMLID_2214_">
<g id="XMLID_2215_">
<g id="XMLID_2216_">
<g id="XMLID_2217_">
<g id="XMLID_2218_">
<g id="XMLID_2219_">
<g id="XMLID_2220_">
<g id="XMLID_2221_">
<g id="XMLID_2222_">
<g id="XMLID_2223_">
<g id="XMLID_2224_">
<g id="XMLID_2225_">
<path id="Path_4436" data-name="Path 4436" d="M0,24A24,24,0,1,1,42.887,38.81c-4.394,5.6-11.221,3.983-18.887,3.983S9.507,44.405,5.113,38.81A23.9,23.9,0,0,1,0,24Z" fill="#e2e2e2"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="Path_4437" data-name="Path 4437" d="M42.887,38.81A23.9,23.9,0,0,0,48,24q0-.493-.02-.982L34.651,9.689C26.856,6.362,15.212,20.337,15.212,20.337l9.778,9.778,4.217,12.829C34.718,43.153,39.518,43.1,42.887,38.81Z" fill="#c4c4c4"/>
<g id="Group_7140" data-name="Group 7140">
<path id="Path_4438" data-name="Path 4438" d="M18.747,23.459H29.253V34.6H18.747Z" fill="#eaa678"/>
<path id="Path_4439" data-name="Path 4439" d="M24,23.46h5.253V34.6H24Z" fill="#d38c5b"/>
<path id="Path_4440" data-name="Path 4440" d="M32.43,46.477a23.683,23.683,0,0,1-3.177.946,24.178,24.178,0,0,1-10.506,0,23.683,23.683,0,0,1-3.177-.946l3.177-16.024L24,33.857l5.253-3.4Z" fill="#d02127"/>
<path id="Path_4441" data-name="Path 4441" d="M32.43,46.477a23.683,23.683,0,0,1-3.177.946A24,24,0,0,1,24,48V33.857l5.253-3.4Z" fill="#aa191e"/>
<path id="Path_4442" data-name="Path 4442" d="M18.747,30.452V47.423A24,24,0,0,1,5.113,38.81V35.741A5.289,5.289,0,0,1,10.4,30.452Z" fill="#2b353e"/>
<path id="Path_4443" data-name="Path 4443" d="M42.887,35.741V38.81a24,24,0,0,1-13.634,8.613V30.452H37.6A5.289,5.289,0,0,1,42.887,35.741Z" fill="#2b353e"/>
<path id="Path_4444" data-name="Path 4444" d="M13.7,39.923v5.761a23.726,23.726,0,0,1-3.023-1.717V39.923Z" fill="#989898"/>
<path id="Path_4445" data-name="Path 4445" d="M37.362,39.923v4.016a23.888,23.888,0,0,1-3.023,1.725V39.923Z" fill="#989898"/>
<path id="Path_4446" data-name="Path 4446" d="M32.274,14.271C31.924,8.965,27.632,7,24,7s-7.924,1.961-8.274,7.267a2.285,2.285,0,0,0-1.5,2.409l.161,2.267a1.875,1.875,0,0,0,2.043,1.7l.175-.019c2.075,5.573,5.33,6.154,7.4,6.48,2.066-.326,5.321-.907,7.4-6.48l.175.019a1.875,1.875,0,0,0,2.043-1.7l.161-2.267A2.285,2.285,0,0,0,32.274,14.271Z" fill="#ffc397"/>
<path id="Path_4447" data-name="Path 4447" d="M33.775,16.681l-.161,2.267a1.875,1.875,0,0,1-2.043,1.7l-.175-.019a11.863,11.863,0,0,1-2.445,4.151A7.942,7.942,0,0,1,24,27.1V7c3.632,0,7.924,1.961,8.274,7.267a2.285,2.285,0,0,1,1.5,2.409Z" fill="#eaa678"/>
<path id="Path_4448" data-name="Path 4448" d="M34.651,9.689A13.957,13.957,0,0,0,24,4.41a8.424,8.424,0,0,0-4.772,1.436c-.026,0-3.178-.265-4.44,1.943s-.107,6.613,1.16,8.619L17.426,17.7l.68-4.473a17.48,17.48,0,0,0,11.514-.762l.8,5.234,1.478-1.294A12.875,12.875,0,0,0,33.6,10.422C34.277,9.986,34.651,9.689,34.651,9.689Z" fill="#515151"/>
<path id="Path_4449" data-name="Path 4449" d="M29.619,12.467l.8,5.234,1.478-1.294A12.875,12.875,0,0,0,33.6,10.422c.677-.436,1.051-.733,1.051-.733A13.956,13.956,0,0,0,24,4.41v9.415A19.77,19.77,0,0,0,29.619,12.467Z" fill="#3d3d3d"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,3 @@
<svg id="_14._Men_sign" data-name="14. Men sign" xmlns="http://www.w3.org/2000/svg" width="12.739" height="12.739" viewBox="0 0 12.739 12.739">
<path id="Path_4403" data-name="Path 4403" d="M13.928,1.5H8.757a.313.313,0,0,0-.313.313V3.2a.313.313,0,0,0,.313.313h1.988l-2.3,2.3A4.553,4.553,0,1,0,9.93,7.3l2.3-2.3V6.984a.313.313,0,0,0,.313.313h1.383a.313.313,0,0,0,.313-.313V1.813a.313.313,0,0,0-.313-.313ZM6.057,12.687a3,3,0,1,1,3-3,3,3,0,0,1-3,3Z" transform="translate(-1.502 -1.5)" fill="#1474d5"/>
</svg>

After

Width:  |  Height:  |  Size: 507 B

@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22.631" height="6.466" viewBox="0 0 22.631 6.466">
<g id="more_1_" data-name="more (1)" transform="translate(0 -170.666)">
<g id="Group_7031" data-name="Group 7031" transform="translate(0 170.666)">
<g id="Group_7030" data-name="Group 7030" transform="translate(0 0)">
<circle id="Ellipse_145" data-name="Ellipse 145" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
<g id="Group_7033" data-name="Group 7033" transform="translate(8.082 170.666)">
<g id="Group_7032" data-name="Group 7032" transform="translate(0 0)">
<circle id="Ellipse_146" data-name="Ellipse 146" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
<g id="Group_7035" data-name="Group 7035" transform="translate(16.165 170.666)">
<g id="Group_7034" data-name="Group 7034" transform="translate(0 0)">
<circle id="Ellipse_147" data-name="Ellipse 147" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 996 B

@ -0,0 +1,69 @@
<svg xmlns="http://www.w3.org/2000/svg" width="118.141" height="107.644" viewBox="0 0 118.141 107.644">
<g id="content" transform="translate(0 -22.748)">
<g id="Group_7442" data-name="Group 7442" transform="translate(1.731 28.436)">
<g id="Group_7439" data-name="Group 7439" transform="translate(0 8.932)">
<g id="Group_7438" data-name="Group 7438">
<g id="Group_7434" data-name="Group 7434" transform="translate(0 21.014)">
<g id="Group_7430" data-name="Group 7430" transform="translate(63.164)">
<g id="Group_7429" data-name="Group 7429">
<path id="Path_4552" data-name="Path 4552" d="M332.756,179.321v66a2.139,2.139,0,0,1-2.141,2.139H283.381a2.141,2.141,0,0,1-2.141-2.139v-66a2.143,2.143,0,0,1,2.141-2.141h47.233a2.141,2.141,0,0,1,2.141,2.141Z" transform="translate(-281.24 -177.18)" fill="#fff"/>
<g id="Group_7428" data-name="Group 7428">
<path id="Path_4553" data-name="Path 4553" d="M304.644,177.18v63.254a2.475,2.475,0,0,1-2.476,2.476H281.24V179.321a2.143,2.143,0,0,1,2.141-2.141Z" transform="translate(-281.24 -177.18)" fill="#dbdbdb"/>
<path id="Path_4554" data-name="Path 4554" d="M332.758,195.96V179.322a2.141,2.141,0,0,0-2.141-2.141H283.384a2.141,2.141,0,0,0-2.141,2.141V195.96Z" transform="translate(-281.242 -177.18)" fill="#dbdbdb"/>
<path id="Path_4555" data-name="Path 4555" d="M473.157,179.319v66a2.14,2.14,0,0,1-2.141,2.141h-7.26a2.14,2.14,0,0,0,2.141-2.141v-66a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,473.157,179.319Z" transform="translate(-421.642 -177.178)" fill="#dbdbdb"/>
</g>
<path id="Path_4556" data-name="Path 4556" d="M332.756,179.321V189.4H281.24V179.321a2.143,2.143,0,0,1,2.141-2.141h47.233A2.141,2.141,0,0,1,332.756,179.321Z" transform="translate(-281.24 -177.18)" fill="#d02127"/>
<path id="Path_4557" data-name="Path 4557" d="M371.453,179.57a6.171,6.171,0,1,1-11.863-2.391h11.383A6.141,6.141,0,0,1,371.453,179.57Z" transform="translate(-341.142 -177.18)" fill="#d02127"/>
<path id="Path_4558" data-name="Path 4558" d="M473.157,179.319v10.075H465.9V179.319a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,473.157,179.319Z" transform="translate(-421.642 -177.178)" fill="#d02127"/>
</g>
</g>
<g id="Group_7433" data-name="Group 7433">
<g id="Group_7432" data-name="Group 7432">
<path id="Path_4559" data-name="Path 4559" d="M59.016,179.321v66a2.141,2.141,0,0,1-2.141,2.139H9.641A2.139,2.139,0,0,1,7.5,245.319v-66a2.141,2.141,0,0,1,2.141-2.141H56.875a2.143,2.143,0,0,1,2.141,2.141Z" transform="translate(-7.5 -177.18)" fill="#fff"/>
<g id="Group_7431" data-name="Group 7431" transform="translate(0)">
<path id="Path_4560" data-name="Path 4560" d="M148.988,179.321V242.91H126.936a2.476,2.476,0,0,1-2.476-2.476V177.18h22.387a2.143,2.143,0,0,1,2.141,2.141Z" transform="translate(-97.472 -177.18)" fill="#dbdbdb"/>
<path id="Path_4561" data-name="Path 4561" d="M59.015,195.96V179.322a2.141,2.141,0,0,0-2.141-2.141H9.641A2.141,2.141,0,0,0,7.5,179.322V195.96Z" transform="translate(-7.5 -177.18)" fill="#dbdbdb"/>
<path id="Path_4562" data-name="Path 4562" d="M199.413,179.319v66a2.14,2.14,0,0,1-2.141,2.141h-7.26a2.14,2.14,0,0,0,2.141-2.141v-66a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,199.413,179.319Z" transform="translate(-147.898 -177.178)" fill="#dbdbdb"/>
</g>
<path id="Path_4563" data-name="Path 4563" d="M59.015,189.4H7.5V179.323a2.141,2.141,0,0,1,2.141-2.141H56.875a2.141,2.141,0,0,1,2.141,2.141Z" transform="translate(-7.5 -177.181)" fill="#d02127"/>
<path id="Path_4564" data-name="Path 4564" d="M199.413,179.319v10.075h-7.26V179.319a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,199.413,179.319Z" transform="translate(-147.898 -177.178)" fill="#20bfd5"/>
</g>
</g>
</g>
<g id="Group_7437" data-name="Group 7437" transform="translate(26.988)">
<g id="Group_7436" data-name="Group 7436">
<path id="Path_4565" data-name="Path 4565" d="M181.569,167.391H126.94a2.476,2.476,0,0,1-2.476-2.476V88.586a2.476,2.476,0,0,1,2.476-2.476h54.629a2.476,2.476,0,0,1,2.476,2.476v76.329A2.476,2.476,0,0,1,181.569,167.391Z" transform="translate(-124.463 -86.109)" fill="#fff"/>
<path id="Path_4566" data-name="Path 4566" d="M184.044,106.725V88.586a2.476,2.476,0,0,0-2.476-2.476H126.94a2.476,2.476,0,0,0-2.476,2.476v18.14Z" transform="translate(-124.463 -86.109)" fill="#dbdbdb"/>
<path id="Path_4567" data-name="Path 4567" d="M346.423,88.582v76.33a2.475,2.475,0,0,1-2.476,2.476h-8.4a2.475,2.475,0,0,0,2.476-2.476V88.582a2.476,2.476,0,0,0-2.476-2.476h8.4A2.476,2.476,0,0,1,346.423,88.582Z" transform="translate(-286.842 -86.106)" fill="#dbdbdb"/>
<path id="Path_4568" data-name="Path 4568" d="M184.041,88.586v11.653H124.46V88.586a2.476,2.476,0,0,1,2.476-2.476h54.629A2.475,2.475,0,0,1,184.041,88.586Z" transform="translate(-124.46 -86.109)" fill="#d02127"/>
<g id="Group_7435" data-name="Group 7435" transform="translate(37.747)">
<path id="Path_4569" data-name="Path 4569" d="M299.01,88.138a5.48,5.48,0,1,1-10.57-2.028h10.18A5.435,5.435,0,0,1,299.01,88.138Z" transform="translate(-288.05 -86.109)" fill="#d02127"/>
<path id="Path_4570" data-name="Path 4570" d="M346.423,88.582v11.653h-8.4V88.582a2.476,2.476,0,0,0-2.476-2.476h8.4A2.476,2.476,0,0,1,346.423,88.582Z" transform="translate(-324.59 -86.106)" fill="#d02127"/>
</g>
</g>
</g>
</g>
</g>
<g id="Group_7440" data-name="Group 7440" transform="translate(81.132 21.147)">
<path id="Path_4571" data-name="Path 4571" d="M359.11,145.215a6.171,6.171,0,1,1,6.171,6.171,6.171,6.171,0,0,1-6.171-6.171" transform="translate(-359.11 -139.044)" fill="#d02127"/>
<path id="Path_4572" data-name="Path 4572" d="M372.29,150.533a5.46,5.46,0,0,0,0-10.638,6.173,6.173,0,1,1,0,10.638" transform="translate(-369.249 -139.044)" fill="#d02127"/>
</g>
<g id="Group_7441" data-name="Group 7441" transform="translate(64.735)">
<path id="Path_4573" data-name="Path 4573" d="M288.05,52.878a5.48,5.48,0,1,1,5.48,5.48,5.48,5.48,0,0,1-5.48-5.48" transform="translate(-288.05 -47.398)" fill="#d02127"/>
<path id="Path_4574" data-name="Path 4574" d="M299.754,57.6a4.849,4.849,0,0,0,0-9.446,5.481,5.481,0,1,1,0,9.446" transform="translate(-297.053 -47.397)" fill="#d02127"/>
</g>
</g>
<g id="Group_7443" data-name="Group 7443" transform="translate(0 22.748)">
<path id="Path_4575" data-name="Path 4575" d="M114.27,69.844H96.883a7.887,7.887,0,0,0-6.853-8.735V53.036a4.211,4.211,0,0,0-4.206-4.206H78.948a7.211,7.211,0,1,0-14,0H31.2a4.211,4.211,0,0,0-4.206,4.206V69.844H21.93a1.731,1.731,0,0,0,0,3.461h5.058V82.06H3.461V73.716a.411.411,0,0,1,.41-.41h9.515a1.731,1.731,0,0,0,0-3.461H3.871A3.876,3.876,0,0,0,0,73.716v66a3.876,3.876,0,0,0,3.871,3.871H51.105a3.876,3.876,0,0,0,3.871-3.871v-6.14h8.188v6.14a3.876,3.876,0,0,0,3.871,3.871H81.123a1.731,1.731,0,0,0,0-3.461H67.036a.41.41,0,0,1-.41-.41v-6.14h19.2a4.211,4.211,0,0,0,4.206-4.206V85.521h24.65v54.191a.41.41,0,0,1-.41.41h-24.6a1.731,1.731,0,0,0,0,3.461h24.6a3.876,3.876,0,0,0,3.871-3.871v-66a3.876,3.876,0,0,0-3.871-3.871Zm-20.8-.9a4.441,4.441,0,1,1-4.441-4.441A4.446,4.446,0,0,1,93.475,68.946ZM71.946,43.358a3.75,3.75,0,1,1-3.75,3.75A3.754,3.754,0,0,1,71.946,43.358ZM31.2,52.291H66.941a7.192,7.192,0,0,0,10.011,0h8.873a.746.746,0,0,1,.745.745v8.4a7.9,7.9,0,0,0-2.683,1.519H30.45V53.036a.746.746,0,0,1,.745-.745Zm54.629,77.82H31.2a.746.746,0,0,1-.745-.745V109.979a1.731,1.731,0,0,0-3.461,0v19.386a4.211,4.211,0,0,0,4.206,4.206h20.32v6.14a.41.41,0,0,1-.41.41H3.871a.41.41,0,0,1-.41-.41V85.521H26.989v15.915a1.731,1.731,0,1,0,3.461,0V66.419h51.1a7.895,7.895,0,0,0,5.021,10.033v52.913A.746.746,0,0,1,85.824,130.111ZM90.03,82.06V76.783a7.909,7.909,0,0,0,5.59-3.478h18.65a.41.41,0,0,1,.41.41V82.06H90.03Z" transform="translate(0 -35.94)" fill="#2e303a"/>
<path id="Path_4576" data-name="Path 4576" d="M238.224,296.64a8.143,8.143,0,0,0-5.276-1.877h-.027a8.138,8.138,0,0,0-5.261,1.846,1.73,1.73,0,1,0,2.231,2.646,4.746,4.746,0,0,1,3.03-1.03h.015a4.75,4.75,0,0,1,3.04,1.048,1.731,1.731,0,0,0,2.247-2.633Z" transform="translate(-174.656 -231.997)"/>
<path id="Path_4577" data-name="Path 4577" d="M288.664,267.015l-.045,0h-.03a1.73,1.73,0,0,0-.156,3.452l.039,0c.042,0,.085.007.128.007h.01a1.73,1.73,0,0,0,.054-3.459Z" transform="translate(-220.675 -210.65)"/>
<path id="Path_4578" data-name="Path 4578" d="M207.009,267.012h-.03a1.731,1.731,0,0,0,.011,3.461H207a1.731,1.731,0,0,0,.009-3.461Z" transform="translate(-157.897 -210.65)"/>
<path id="Path_4579" data-name="Path 4579" d="M156.674,112.612h.009c.038,0,.077,0,.115.006l.062,0h.009a1.73,1.73,0,0,0,.346-3.426h-.007c-.053-.011-.108-.019-.162-.025-.02,0-.04,0-.06,0-.036,0-.072-.006-.109-.006h-.031a1.721,1.721,0,0,0-1.722,1.731,1.738,1.738,0,0,0,1.549,1.719Z" transform="translate(-119.331 -89.223)"/>
<path id="Path_4580" data-name="Path 4580" d="M179.553,112.623a1.731,1.731,0,0,0,0-3.461h-.021a1.722,1.722,0,0,0-1.72,1.731A1.74,1.74,0,0,0,179.553,112.623Z" transform="translate(-136.783 -89.223)"/>
<path id="Path_4581" data-name="Path 4581" d="M202.243,112.623a1.731,1.731,0,0,0,0-3.461h-.021a1.722,1.722,0,0,0-1.72,1.731A1.74,1.74,0,0,0,202.243,112.623Z" transform="translate(-154.237 -89.223)"/>
<path id="Path_4582" data-name="Path 4582" d="M53.4,116.408a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922A1.73,1.73,0,0,0,57.7,109.67l-.922.922-.922-.922a1.73,1.73,0,0,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,53.4,116.408Z" transform="translate(-40.692 -89.223)"/>
<path id="Path_4583" data-name="Path 4583" d="M428.867,107.109a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922a1.73,1.73,0,0,0-2.447-2.447l-.922.922-.922-.922a1.73,1.73,0,1,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,428.867,107.109Z" transform="translate(-329.518 -82.07)"/>
<path id="Path_4584" data-name="Path 4584" d="M237.941,29.993a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922a1.73,1.73,0,0,0-2.447-2.447l-.922.922-.922-.922a1.73,1.73,0,1,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,237.941,29.993Z" transform="translate(-182.648 -22.748)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.347" height="25.347" viewBox="0 0 25.347 25.347">
<path id="ekg-monitor" d="M.878,0H24.471a.878.878,0,0,1,.877.877V11.77l-7.647,0a.906.906,0,0,0-.845.582l-1.678,4.393L10.98,5.741a.9.9,0,0,0-.846-.583h0a.9.9,0,0,0-.846.582L6.982,11.774,0,11.77V.878A.878.878,0,0,1,.878,0ZM24.471,25.348a.878.878,0,0,0,.877-.877V13.58l-7.023,0-2.3,6.026a.905.905,0,0,1-1.692,0L10.133,8.6,8.451,13a.906.906,0,0,1-.846.582h0l-7.6,0V24.471a.878.878,0,0,0,.877.877H24.471Z" transform="translate(-0.001 -0.001)" fill="#28323a" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 584 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="33.043" height="27.106" viewBox="0 0 33.043 27.106">
<path id="process" d="M28.2,19.555,27.042,21.1l1.549,1.162H25.1a3.868,3.868,0,0,0-3.735-2.9H11.681a3.868,3.868,0,0,0-3.735,2.9H5.808a3.872,3.872,0,0,1,0-7.744H7.946a3.868,3.868,0,0,0,3.735,2.9h9.681a3.868,3.868,0,0,0,3.735-2.9h2.138a5.808,5.808,0,1,0,0-11.617H25.1A3.868,3.868,0,0,0,21.362,0H11.681A3.868,3.868,0,0,0,7.946,2.9H7.1L3.485.194,2.324,1.742,3.872,2.9H0V4.84H3.872L2.324,6,3.485,7.551,7.1,4.84h.847a3.868,3.868,0,0,0,3.735,2.9h9.681A3.868,3.868,0,0,0,25.1,4.84h2.138a3.872,3.872,0,1,1,0,7.744H25.1a3.868,3.868,0,0,0-3.735-2.9H11.681a3.868,3.868,0,0,0-3.735,2.9H5.808a5.808,5.808,0,1,0,0,11.617H7.946a3.868,3.868,0,0,0,3.735,2.9h9.681A3.868,3.868,0,0,0,25.1,24.2h3.494l-1.549,1.162L28.2,26.912l4.84-3.678Zm0,0" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 847 B

@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" width="31.83" height="27.976" viewBox="0 0 31.83 27.976">
<g id="sticky-note" transform="translate(0 -31.001)">
<g id="Group_7171" data-name="Group 7171" transform="translate(11.19 31.001)">
<path id="Path_4476" data-name="Path 4476" d="M180,38.461V31.934a.933.933,0,0,1,1.865,0v6.528Z" transform="translate(-180 -31.001)" fill="#28323a"/>
</g>
<g id="Group_7172" data-name="Group 7172" transform="translate(0 46.403)">
<path id="Path_4477" data-name="Path 4477" d="M8.393,289.46a2.779,2.779,0,0,1-1.978-.819A28.3,28.3,0,0,1,0,278.751v11.641a.933.933,0,0,0,.933.933H23.313a.933.933,0,0,0,.933-.933v-.933Z" transform="translate(0 -278.751)" fill="#28323a"/>
</g>
<g id="Group_7173" data-name="Group 7173" transform="translate(0 34.731)">
<path id="Path_4478" data-name="Path 4478" d="M31.557,109.924a24.777,24.777,0,0,1-7.312-17.351v-.64A.933.933,0,0,0,23.313,91H14.92v4.663a.933.933,0,0,1-.933.933h-3.73a.933.933,0,0,1-.933-.933V91H.933A.933.933,0,0,0,0,91.934v.64a26.393,26.393,0,0,0,7.733,18.67.934.934,0,0,0,.66.273H30.9a.933.933,0,0,0,.66-1.592ZM12.123,98.461h7.46a.933.933,0,0,1,0,1.865h-7.46a.933.933,0,0,1,0-1.865Zm7.46,9.325H10.258a.933.933,0,0,1,0-1.865h9.325a.933.933,0,0,1,0,1.865Zm1.865-3.73H8.393a.933.933,0,1,1,0-1.865H21.448a.933.933,0,1,1,0,1.865Z" transform="translate(0 -91.001)" fill="#28323a"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="35.842" height="28.675" viewBox="0 0 35.842 28.675">
<path id="Path_4336" data-name="Path 4336" d="M38.948,34.883H29.987V31.3c5.825,0,5.771.134,6.12-.4l1.559-2.285A2.688,2.688,0,0,0,38,23.422a5.377,5.377,0,0,0-5.323-4.669H28.956A12.545,12.545,0,0,0,16.545,8C4.3,8-.668,23.843,9.377,30.823v4.059H6.688a.9.9,0,1,0,0,1.792H38.948a.9.9,0,1,0,0-1.792ZM8.561,21.656a8.065,8.065,0,0,1,14.92-5.224,7.832,7.832,0,0,1,.9,2.321c-2.1,0-1.577.806-1.792.054.161.484.09.224-.367.627a3.584,3.584,0,0,0-6.066,3.8,2.689,2.689,0,0,0,.134,5.377,8.065,8.065,0,0,1-7.724-6.954Zm28.594,3.369a.9.9,0,0,1,.618,1.532c-.367.385,1.174.26-21.228.26a.9.9,0,0,1-.618-1.532C16.286,24.9,14.825,25.026,37.155,25.026Zm-16.542,4.48-.6-.9h4.749a2.841,2.841,0,0,0-.152.9Zm-3.172-8.065a1.792,1.792,0,1,1,1.792,1.792A1.792,1.792,0,0,1,17.442,21.441ZM23.714,31.3h.9v3.584h-.9Zm11.165-1.792H29.987a2.688,2.688,0,0,0-.152-.9H35.48Zm1.263-6.273c-12.993,0-12.249.09-12.706-.215a1.335,1.335,0,0,1-.224-2.079c.5-.565.547-.394,9.463-.394a3.584,3.584,0,0,1,3.468,2.688ZM15.649,32.194h1.792v2.688H15.649Z" transform="translate(-4.002 -8)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30">
<path id="Path_4487" data-name="Path 4487" d="M15.879,1.8V0H14.121V1.8C6.047,2.2,0,8.143,0,15.879V17.3l1.27-.629a8.69,8.69,0,0,1,3.182-.787,5.156,5.156,0,0,1,2.9,1.5l.621.615.62-.615a5.156,5.156,0,0,1,2.9-1.5,4.774,4.774,0,0,1,2.637,1.267V27.363a2.637,2.637,0,0,0,5.273,0V25.605H17.637v1.758a.879.879,0,0,1-1.758,0V17.146a4.774,4.774,0,0,1,2.637-1.267,5.156,5.156,0,0,1,2.9,1.5l.621.615.62-.615a5.344,5.344,0,0,1,2.954-1.5,8.222,8.222,0,0,1,3.123.787L30,17.3V15.879C30,8.143,23.953,2.2,15.879,1.8Z" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 609 B

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="33.112" height="30.051" viewBox="0 0 33.112 30.051">
<g id="reception" transform="translate(0 -23.667)">
<path id="Path_4479" data-name="Path 4479" d="M0,313.745H33.112V301.673H0Zm15.586-9.318h1.94v2.183h2.183v1.94H17.526v2.183h-1.94V308.55H13.4v-1.94h2.183Z" transform="translate(0 -260.027)" fill="#28323a"/>
<path id="Path_4480" data-name="Path 4480" d="M30,236.668H59.234v2.264H30Z" transform="translate(-28.062 -199.226)" fill="#28323a"/>
<path id="Path_4481" data-name="Path 4481" d="M108.058,103.919c0-.057,0-.113-.005-.169h-6.1c0,.056-.005.112-.005.169a3.057,3.057,0,0,0,2.717,3.034h.672A3.057,3.057,0,0,0,108.058,103.919Z" transform="translate(-95.358 -74.904)" fill="#28323a"/>
<path id="Path_4482" data-name="Path 4482" d="M65.158,153.293h-.911a3.888,3.888,0,0,0-3.86,3.452h4.771v-3.452Z" transform="translate(-56.482 -121.243)" fill="#28323a"/>
<path id="Path_4483" data-name="Path 4483" d="M165.076,153.293h-.911v3.452h4.771a3.888,3.888,0,0,0-3.86-3.452Z" transform="translate(-153.548 -121.243)" fill="#28323a"/>
<path id="Path_4484" data-name="Path 4484" d="M98.828,26.906,99.4,24.35a10.351,10.351,0,0,0-7.394,0l.569,2.556Z" transform="translate(-86.054)" fill="#28323a"/>
<path id="Path_4485" data-name="Path 4485" d="M296.991,135.98h10.025v4.572H296.991Z" transform="translate(-277.784 -105.049)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="17.016" height="15.893" viewBox="0 0 17.016 15.893">
<g id="Layer_2" data-name="Layer 2" transform="translate(-1 -1.98)">
<path id="Path_4511" data-name="Path 4511" d="M15.429,21.777H3.586A2.592,2.592,0,0,1,1,19.2V11H18.016v8.2a2.592,2.592,0,0,1-2.586,2.581ZM2.134,12.134V19.2a1.458,1.458,0,0,0,1.452,1.446H15.429A1.458,1.458,0,0,0,16.881,19.2V12.134Z" transform="translate(0 -3.904)" fill="#28323a"/>
<path id="Path_4512" data-name="Path 4512" d="M18.016,9.1H1V6.6A2.592,2.592,0,0,1,3.586,4H15.429a2.592,2.592,0,0,1,2.586,2.6ZM2.134,7.97H16.881V6.6a1.458,1.458,0,0,0-1.452-1.463H3.586A1.458,1.458,0,0,0,2.134,6.6Z" transform="translate(0 -0.874)" fill="#28323a"/>
<rect id="Rectangle_17397" data-name="Rectangle 17397" width="1.134" height="3.437" rx="0.567" transform="translate(4.369 1.98)" fill="#28323a"/>
<rect id="Rectangle_17398" data-name="Rectangle 17398" width="1.134" height="3.437" rx="0.567" transform="translate(13.512 1.98)" fill="#28323a"/>
<rect id="Rectangle_17399" data-name="Rectangle 17399" width="1.134" height="3.437" rx="0.567" transform="translate(8.941 1.98)" fill="#28323a"/>
<path id="Path_4513" data-name="Path 4513" d="M2.31,12v9.217H17.732V12Zm4.929,5.717a.567.567,0,1,1,.567-.567A.567.567,0,0,1,7.239,17.717Zm2.836,0a.567.567,0,1,1,.567-.567A.567.567,0,0,1,10.075,17.717Zm2.836,0a.567.567,0,1,1,.567-.567A.567.567,0,0,1,12.911,17.717Z" transform="translate(-0.567 -4.337)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,4 @@
<svg id="add_3_" data-name="add (3)" xmlns="http://www.w3.org/2000/svg" width="25.027" height="25.027" viewBox="0 0 25.027 25.027">
<path id="Path_4468" data-name="Path 4468" d="M20.668,2.086A3.128,3.128,0,0,0,17.728,0H3.128A3.138,3.138,0,0,0,0,3.128v14.6a3.128,3.128,0,0,0,2.086,2.941V7.3A5.214,5.214,0,0,1,7.3,2.086Z" fill="#fff"/>
<path id="Path_4469" data-name="Path 4469" d="M21.728,4H7.128A3.138,3.138,0,0,0,4,7.128v14.6a3.138,3.138,0,0,0,3.128,3.128h14.6a3.138,3.138,0,0,0,3.128-3.128V7.128A3.138,3.138,0,0,0,21.728,4ZM18.6,15.471H15.471V18.6a1.043,1.043,0,0,1-2.086,0V15.471H10.257a1.043,1.043,0,1,1,0-2.086h3.128V10.257a1.043,1.043,0,1,1,2.086,0v3.128H18.6a1.043,1.043,0,0,1,0,2.086Z" transform="translate(0.171 0.171)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 754 B

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="18.824" height="29.092" viewBox="0 0 18.824 29.092">
<g id="sugar-blood-level_1_" data-name="sugar-blood-level (1)" transform="translate(-90)">
<path id="Path_4645" data-name="Path 4645" d="M106.257,0H92.567A2.57,2.57,0,0,0,90,2.567V12.835h18.824V2.567A2.57,2.57,0,0,0,106.257,0ZM99.412,11.123a2.57,2.57,0,0,1-2.567-2.567,5.241,5.241,0,0,1,.971-2.5c.44-.758.873-1.387.892-1.414l.7-1.019.7,1.019c.018.026.452.656.892,1.414a5.241,5.241,0,0,1,.971,2.5,2.57,2.57,0,0,1-2.567,2.567Z" fill="#28323a"/>
<path id="Path_4646" data-name="Path 4646" d="M240,119.644a.856.856,0,0,0,1.711,0,6.4,6.4,0,0,0-.856-1.837,6.393,6.393,0,0,0-.856,1.837Z" transform="translate(-141.444 -111.087)" fill="#28323a"/>
<path id="Path_4647" data-name="Path 4647" d="M195,315h6.845v2.567H195Z" transform="translate(-99.01 -297.031)" fill="#28323a"/>
<path id="Path_4648" data-name="Path 4648" d="M223,390h3.537v1.711H223Z" transform="translate(-125.413 -367.753)" fill="#28323a"/>
<path id="Path_4649" data-name="Path 4649" d="M90,256.711a5.142,5.142,0,0,0,4.278,5.062v-5.062h10.268v5.062a5.142,5.142,0,0,0,4.278-5.062V255H90Z" transform="translate(0 -240.454)" fill="#28323a"/>
<path id="Path_4650" data-name="Path 4650" d="M223,450h3.537v3.423H223Z" transform="translate(-125.413 -424.331)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.47" height="29.309" viewBox="0 0 25.47 29.309">
<path id="diagnose" d="M59.073,10.053a.6.6,0,0,1,.174.123L63.268,14.2a.6.6,0,0,1,.123.174H59.669a.6.6,0,0,1-.6-.6V10.053ZM55.566,20.885A6.3,6.3,0,0,1,60.6,30.972l1.51,1.51a.811.811,0,0,1,.976.128l4.371,4.371a.81.81,0,0,1,0,1.143l-.951.951a.81.81,0,0,1-1.143,0L60.992,34.7a.811.811,0,0,1-.128-.976l-1.51-1.51a6.3,6.3,0,1,1-3.788-11.332Zm0,1.749a4.55,4.55,0,1,0,4.55,4.55A4.55,4.55,0,0,0,55.566,22.634Zm5.91,14.239-1.327-1.327a1.993,1.993,0,0,1-.584-1.433l-.373-.373a7.487,7.487,0,1,1,2.93-2.93l.373.373a2,2,0,0,1,.948.227V15.562H59.669a1.789,1.789,0,0,1-1.787-1.787V10H42.818a.6.6,0,0,0-.6.6v25.68a.6.6,0,0,0,.6.6H61.476ZM49.529,13.8a.3.3,0,0,1,.3.3v1.67H51.5a.3.3,0,0,1,.3.3V18.09a.3.3,0,0,1-.3.3h-1.67v1.67a.3.3,0,0,1-.3.3H47.508a.3.3,0,0,1-.3-.3v-1.67H45.54a.3.3,0,0,1-.3-.3V16.069a.3.3,0,0,1,.3-.3h1.67V14.1a.3.3,0,0,1,.3-.3Z" transform="translate(-42.222 -10.001)" fill="#28323a" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 1013 B

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27" height="27.001" viewBox="0 0 27 27.001">
<g id="direction_1_" data-name="direction (1)" transform="translate(-0.007 0)">
<g id="Group_7454" data-name="Group 7454" transform="translate(0.007 0)">
<path id="Path_4587" data-name="Path 4587" d="M26.606,12.545h0L14.456.395a1.344,1.344,0,0,0-1.9,0L.4,12.545a1.353,1.353,0,0,0,0,1.91L12.552,26.6v.007a1.353,1.353,0,0,0,1.91,0l12.15-12.15A1.347,1.347,0,0,0,26.606,12.545ZM16.2,16.872V13.5H10.8v4.05H8.1v-5.4a1.345,1.345,0,0,1,1.35-1.35H16.2V7.422l4.725,4.725Z" transform="translate(-0.007 0)" fill="#28323a"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 639 B

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="26.278" height="28.04" viewBox="0 0 26.278 28.04">
<g id="report_4_" data-name="report (4)" transform="translate(0.918)">
<path id="Path_4470" data-name="Path 4470" d="M19.105,70.875H3.19A2.721,2.721,0,0,1,.412,68.217V46.281A1.766,1.766,0,0,0-.918,47.911V70.394A1.753,1.753,0,0,0,.895,72.084H17.363A1.774,1.774,0,0,0,19.105,70.875Zm0,0" transform="translate(0 -44.044)" fill="#28323a"/>
<path id="Path_4471" data-name="Path 4471" d="M66.516,24.173V12.207H52.852l-.007.748c0,.007,0-.023,0,.038h5.816a.483.483,0,1,1,0,.967h-5.87a.9.9,0,0,1-.626-.282,1.066,1.066,0,0,1-.289-.745l.007-.725H50.863a.473.473,0,0,1-.483-.473v-.071H48.927a.483.483,0,0,1-.483-.479l-.015-2.1a.5.5,0,0,1,.483-.5h0l1.464.029V8.548a.506.506,0,0,1,.482-.511H66.516V5.862H62.423a1.577,1.577,0,0,1-1.588-1.586V0H48.2a1.769,1.769,0,0,0-1.821,1.629.471.471,0,0,1,.013.063c0,.025,0,.05,0,.075V24.173A1.754,1.754,0,0,0,48.2,25.864H64.672A1.783,1.783,0,0,0,66.516,24.173ZM48.933,15.228h7.948a.483.483,0,1,1,0,.967H48.933a.483.483,0,0,1,0-.967Zm13.833,8.037H48.933a.483.483,0,0,1,0-.967H62.766a.483.483,0,0,1,0,.967Zm0-2.357H48.933a.483.483,0,0,1,0-.967H62.766a.483.483,0,1,1,0,.967Zm0-2.357H48.933a.483.483,0,0,1,0-.967H62.766a.483.483,0,1,1,0,.967Zm0,0" transform="translate(-45.014)" fill="#28323a"/>
<path id="Path_4472" data-name="Path 4472" d="M369.314,20.14l-3.983-4.12v3.5a.61.61,0,0,0,.621.619Zm0,0" transform="translate(-348.543 -15.245)" fill="#28323a"/>
<path id="Path_4473" data-name="Path 4473" d="M520.332,195.25v1.4l1.079-.7Zm0,0" transform="translate(-496.051 -185.811)" fill="#28323a"/>
<path id="Path_4474" data-name="Path 4474" d="M149.082,186.25h16.981v2.236H149.082Zm0,0" transform="translate(-142.748 -177.246)" fill="#28323a"/>
<path id="Path_4475" data-name="Path 4475" d="M109.77,198.986v-1.12l-.981-.011.008,1.131Zm0,0" transform="translate(-104.403 -188.29)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.812" height="29.735" viewBox="0 0 23.812 29.735">
<g id="insurance_4_" data-name="insurance (4)" transform="translate(-51)">
<path id="Path_4536" data-name="Path 4536" d="M64.94,5.227H60.871a11.918,11.918,0,0,1-4.644,3.251v5.33a11.389,11.389,0,0,0,6.679,10.4,11.389,11.389,0,0,0,6.679-10.4V8.479A11.909,11.909,0,0,1,64.94,5.227Zm2.647,7.494-5.421,5.42a.87.87,0,0,1-1.232,0l-2.71-2.71A.871.871,0,0,1,59.457,14.2l2.094,2.094,4.8-4.8a.871.871,0,0,1,1.232,1.232Zm6.348-8.655a6.734,6.734,0,0,1-5.97-3.6A.871.871,0,0,0,67.195,0H58.617a.872.872,0,0,0-.771.465,6.734,6.734,0,0,1-5.975,3.6A.871.871,0,0,0,51,4.937v8.871A16.66,16.66,0,0,0,62.643,29.695a.868.868,0,0,0,.525,0A16.66,16.66,0,0,0,74.812,13.808V4.937a.876.876,0,0,0-.876-.871Zm-2.608,9.7a13.128,13.128,0,0,1-8.086,12.154.874.874,0,0,1-.67,0,13.128,13.128,0,0,1-8.086-12.154V7.826a.871.871,0,0,1,.6-.828,10.18,10.18,0,0,0,4.709-3.233.871.871,0,0,1,.675-.32h4.876a1.072,1.072,0,0,1,.675.32A10.18,10.18,0,0,0,70.727,7a.869.869,0,0,1,.542.518l0,.008a.881.881,0,0,1,.047.187c0,.006,0,.013,0,.02a.855.855,0,0,1,.006.1Z" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27.217" height="28.675" viewBox="0 0 27.217 28.675">
<path id="path2299" d="M18.879,280.47l-2.477.665-.665,2.477,1.812,1.813,2.477-.665c.229-.823.444-1.649.665-2.474Zm-12.249.576v.968h.962c.012,2.559,0,5.112,0,7.667-.06.132-4.81,10.572-6.755,16.407a2.947,2.947,0,0,0,.057,1.826,2.166,2.166,0,0,0,.462.815,1.276,1.276,0,0,0,.912.415h16.46a1.276,1.276,0,0,0,.912-.415,2.165,2.165,0,0,0,.462-.815,2.947,2.947,0,0,0,.057-1.826c-1.945-5.835-6.7-16.274-6.755-16.407.01-2.556.007-5.111.007-7.667h.969v-.968Zm17.457.918-2.477.661-.662,2.478,1.813,1.816,2.477-.665c.217-.827.442-1.652.665-2.478Zm-11.65.05v4.844l-3.875.011,0-4.841Zm7.9,3.531-2.477.665-.665,2.477,1.816,1.813,2.477-.665q.331-1.239.661-2.478Zm.819,6.152v.968h.968v12.106a10.237,10.237,0,0,0,.183,2.884,2.009,2.009,0,0,0,.754,1.084,2.554,2.554,0,0,0,1.484.389,2.552,2.552,0,0,0,1.483-.389,2,2,0,0,0,.751-1.084,10.232,10.232,0,0,0,.185-2.884V292.666h.968V291.7Zm1.933.968H26v3.875H23.09Zm-9.053,5.342a1.321,1.321,0,0,1-.883,1.654,1.305,1.305,0,0,1-.484.05l-.532,1.228a1.877,1.877,0,0,1,.595,1.923l1.211.682a1.3,1.3,0,0,1,.43-.229,1.328,1.328,0,1,1-.886,1.655,1.3,1.3,0,0,1-.034-.591l-1.193-.672a1.908,1.908,0,0,1-.832.526,1.936,1.936,0,0,1-2.408-1.285,1.912,1.912,0,0,1-.009-1.072l-.831-.468a1.3,1.3,0,0,1-.5.29,1.326,1.326,0,1,1,.882-1.655,1.3,1.3,0,0,1,.049.5l.887.5a1.843,1.843,0,0,1,1.769-.531l.528-1.216a1.3,1.3,0,0,1-.3-.51,1.4,1.4,0,0,1,1.226-1.692,1.236,1.236,0,0,1,1.315.919Z" transform="translate(-0.716 -280.47)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,10 @@
<svg id="Group_765" data-name="Group 765" xmlns="http://www.w3.org/2000/svg" width="24.871" height="13.655" viewBox="0 0 24.871 13.655">
<g id="Group_767" data-name="Group 767">
<path id="Subtraction_64" data-name="Subtraction 64" d="M805.3,951.152h-2.162a2.708,2.708,0,0,1-1.066-.217,2.775,2.775,0,0,1-1.464-1.462,2.692,2.692,0,0,1-.217-1.063v-8.171a2.7,2.7,0,0,1,.217-1.065,2.772,2.772,0,0,1,1.462-1.46,2.7,2.7,0,0,1,1.063-.216h10.134a2.7,2.7,0,0,1,1.065.217,2.771,2.771,0,0,1,1.46,1.462A2.7,2.7,0,0,1,816,940.24v2.015a2.26,2.26,0,0,0,0,4.229v1.922a2.708,2.708,0,0,1-.213,1.066,2.762,2.762,0,0,1-1.459,1.464,2.7,2.7,0,0,1-1.064.217H810.9a7.147,7.147,0,0,0,.772-.766.713.713,0,0,0,.157-.564,10.413,10.413,0,0,0,1.47-2.765,10.044,10.044,0,0,0,.4-1.457,7.294,7.294,0,0,0,.139-1.367,4.83,4.83,0,0,0-.216-1.582,2.067,2.067,0,0,0-.623-.93,2.962,2.962,0,0,0-.991-.518c-.39-.132-.841-.235-1.318-.344h0l0,0a.737.737,0,0,0-.66-.419.749.749,0,1,0,0,1.5.72.72,0,0,0,.441-.165l.018.006h0l.012,0c.477.11.853.2,1.166.3a2.039,2.039,0,0,1,.743.379,1.27,1.27,0,0,1,.385.654,4.37,4.37,0,0,1,.11,1.126,6.294,6.294,0,0,1-.129,1.211,9.1,9.1,0,0,1-.365,1.3,10.147,10.147,0,0,1-.57,1.293,8.958,8.958,0,0,1-.743,1.183.716.716,0,0,0-.493.239,5.065,5.065,0,0,1-1.066.952,2.451,2.451,0,0,1-2.873,0,5.025,5.025,0,0,1-1.065-.947.715.715,0,0,0-.492-.239,9,9,0,0,1-.745-1.186,10.2,10.2,0,0,1-.571-1.3,9.07,9.07,0,0,1-.366-1.3,6.325,6.325,0,0,1-.129-1.213,4.42,4.42,0,0,1,.109-1.127,1.266,1.266,0,0,1,.384-.654,2.032,2.032,0,0,1,.743-.379c.316-.1.714-.193,1.174-.3l.01,0h0l.007-.006a.739.739,0,0,0,.45.166.748.748,0,1,0,0-1.5.725.725,0,0,0-.4.118.813.813,0,0,0-.272.3h0l-.009,0c-1.961.453-3.145.726-3.145,3.377a7.293,7.293,0,0,0,.14,1.369,10.075,10.075,0,0,0,.4,1.459,10.343,10.343,0,0,0,1.481,2.77.71.71,0,0,0,.158.563,7.234,7.234,0,0,0,.763.757h0Zm19.5-1.428h-1.109a.956.956,0,0,1-.5-.144l-4.614-2.912a.456.456,0,0,1-.213-.384V946a2.257,2.257,0,0,0,0-3.252v-.512a.456.456,0,0,1,.213-.384l4.614-2.912a.913.913,0,0,1,.5-.144h1.11a.457.457,0,0,1,.459.453v10.028a.449.449,0,0,1-.133.32.458.458,0,0,1-.325.132Z" transform="translate(-800.388 -937.498)" fill="#d02127"/>
<g id="Group_766" data-name="Group 766" transform="translate(5.809 5.879)">
<path id="Path_673" data-name="Path 673" d="M495.37,3.328h.237l.741,0c.088,0,.162-.094.166-.23V2.482c0-.132.059-.235.151-.241l.227,0c.092.006.155.11.155.241V3.1c0,.136.066.224.155.224l1,0,0-.766c0-.132-.063-.234-.155-.24l-.4,0c-.089,0-.158-.094-.162-.23l0-.207c0-.136.074-.229.163-.229h.4c.092-.006.151-.114.151-.245V.457a.407.407,0,0,1-.309.193h-.678c-.088,0-.162.1-.166.232V1.5c0,.136-.073.231-.162.231l-.2,0c-.089,0-.16-.093-.164-.228V.877c0-.136-.074-.227-.163-.227h-.984v.763c0,.132.062.237.154.244l.4,0c.091.006.156.115.156.246v.177c0,.132-.062.237-.154.243h-.4c-.092.006-.154.111-.154.242ZM498.758.4V3.595a.406.406,0,0,1-.41.386H495.2a.4.4,0,0,1-.408-.386V.4A.406.406,0,0,1,495.2.01h3.147A.413.413,0,0,1,498.758.4Z" transform="translate(-494.79 -0.01)" fill="#fff"/>
<path id="Path_929" data-name="Path 929" d="M502.5,8.838h.237l.741,0c.088,0,.162-.094.166-.23V7.992c0-.132.059-.235.151-.241l.227,0c.091.006.154.11.154.241v.623c0,.136.066.224.155.224l1,0,0-.766c0-.132-.063-.234-.155-.24l-.4,0c-.089,0-.158-.094-.162-.23l0-.207c0-.136.074-.229.163-.229h.4c.092-.006.151-.114.151-.245V5.967a.407.407,0,0,1-.309.193h-.678c-.088,0-.162.1-.166.232v.614c0,.136-.074.231-.162.231l-.205,0c-.089,0-.16-.093-.164-.228v-.62c0-.136-.074-.227-.163-.227H502.5v.763c0,.132.062.237.154.244l.4,0c.091.006.156.115.156.246v.177c0,.132-.062.237-.154.243h-.4c-.092.006-.154.111-.154.242Z" transform="translate(-501.917 -5.52)" fill="#d02127"/>
</g>
<path id="Path_663" data-name="Path 663" d="M969.6,998.3a1.313,1.313,0,1,1-1.312,1.313h0A1.313,1.313,0,0,1,969.6,998.3Z" transform="translate(-953.186 -992.832)" fill="#d02127"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.272" height="28.26" viewBox="0 0 23.272 28.26">
<path id="Subtraction_2" data-name="Subtraction 2" d="M20.261-4078.007H.314a1.665,1.665,0,0,1-1.662-1.663V-4104.6a1.664,1.664,0,0,1,1.662-1.663H20.261a1.664,1.664,0,0,1,1.662,1.663v24.934A1.665,1.665,0,0,1,20.261-4078.007ZM16.1-4086.74a3.183,3.183,0,0,0-3.179,3.179,3.183,3.183,0,0,0,3.179,3.179,3.183,3.183,0,0,0,3.179-3.179v-.212H16.309v-2.967Zm.665-.877v3.392h3.39v-.212a3.183,3.183,0,0,0-3.179-3.179Zm-13.123-6.857a.833.833,0,0,0-.832.832.833.833,0,0,0,.832.832h13.3a.832.832,0,0,0,.831-.832.832.832,0,0,0-.831-.832Zm0-3.986a.832.832,0,0,0-.832.831.833.833,0,0,0,.832.832h13.3a.832.832,0,0,0,.831-.832.832.832,0,0,0-.831-.831Zm0-3.649a.832.832,0,0,0-.832.831.833.833,0,0,0,.832.832H9.456a.833.833,0,0,0,.832-.832.832.832,0,0,0-.832-.831Z" transform="translate(1.348 4106.266)" fill="#2e303a"/>
</svg>

After

Width:  |  Height:  |  Size: 905 B

@ -0,0 +1,4 @@
<svg id="add_3_" data-name="add (3)" xmlns="http://www.w3.org/2000/svg" width="25.029" height="25.028" viewBox="0 0 25.029 25.028">
<path id="Path_4468" data-name="Path 4468" d="M20.668,2.086A3.128,3.128,0,0,0,17.728,0H3.128A3.138,3.138,0,0,0,0,3.128v14.6a3.128,3.128,0,0,0,2.086,2.941V7.3A5.214,5.214,0,0,1,7.3,2.086Z" fill="#fff"/>
<path id="Subtraction_1" data-name="Subtraction 1" d="M-11473.738-3740.409h-14.6a3.148,3.148,0,0,1-3.129-3.129v-14.6a3.147,3.147,0,0,1,3.129-3.129h14.6a3.146,3.146,0,0,1,3.129,3.129v14.6A3.146,3.146,0,0,1-11473.738-3740.409Zm-5.609-14.3h0l-7.017,7.017a.549.549,0,0,0-.136.219l-.8,2.385a.558.558,0,0,0,.136.574.566.566,0,0,0,.4.164.536.536,0,0,0,.179-.029l2.382-.793a.563.563,0,0,0,.219-.135l7.018-7.02-2.383-2.382Zm2.384-1.994a.935.935,0,0,0-.662.273l-.926.928,2.383,2.382.926-.926a.929.929,0,0,0,.274-.665.921.921,0,0,0-.274-.659l-1.059-1.061A.935.935,0,0,0-11476.964-3756.7Z" transform="translate(11495.638 3765.437)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 979 B

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.561" height="28.306" viewBox="0 0 21.561 28.306">
<g id="medical-report" transform="translate(-61)">
<path id="Path_4648" data-name="Path 4648" d="M325,12.236a.277.277,0,0,0,.276.276h6.32a3.033,3.033,0,0,0-.581-.759L325.684,6.71A3.047,3.047,0,0,0,325,6.222Z" transform="translate(-249.405 -5.878)" fill="#28323a"/>
<path id="Path_4649" data-name="Path 4649" d="M75.872,8.293a1.937,1.937,0,0,1-1.935-1.935V0h-9.9A3.044,3.044,0,0,0,61,3.041V25.265a3.044,3.044,0,0,0,3.041,3.041h15.48a3.044,3.044,0,0,0,3.041-3.041V8.293ZM70.122,5.8a.829.829,0,1,1,0,1.659H68.464V9.122a.829.829,0,1,1-1.659,0V7.464H65.146a.829.829,0,1,1,0-1.659H66.8V4.146a.829.829,0,1,1,1.659,0V5.8ZM65.533,18.8a.829.829,0,1,1,0-1.659H77.7a.829.829,0,0,1,0,1.659Zm4.85,3.594a.829.829,0,0,1-.829.829h-4.02a.829.829,0,1,1,0-1.659h4.02A.829.829,0,0,1,70.383,22.391ZM77.7,12.716a.829.829,0,0,1,0,1.659H65.533a.829.829,0,1,1,0-1.659Z" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 985 B

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.92" height="35.546" viewBox="0 0 23.92 35.546">
<g id="prescription_4_" data-name="prescription (4)" transform="translate(0 0)">
<path id="Path_4337" data-name="Path 4337" d="M213.666,6.838a1.025,1.025,0,0,0-.279-.7L207.917.323A1.027,1.027,0,0,0,207.17,0h-.342V7.18h6.838Zm0,0" transform="translate(-192.469)" fill="#28323a"/>
<path id="Path_4338" data-name="Path 4338" d="M20.161,20.171a5.859,5.859,0,0,1,1.036.093V9.231H13.334a1.026,1.026,0,0,1-1.026-1.026V0H1.026A1.026,1.026,0,0,0,0,1.026V27.351a1.026,1.026,0,0,0,1.026,1.026H9.652a5.817,5.817,0,0,1,.6-.7l5.8-5.8A5.774,5.774,0,0,1,20.161,20.171ZM8.547,11.966H9.573V10.94a1.026,1.026,0,1,1,2.051,0v1.026H12.65a1.026,1.026,0,1,1,0,2.051H11.624v1.026a1.026,1.026,0,0,1-2.051,0V14.017H8.547a1.026,1.026,0,0,1,0-2.051ZM5.128,18.12h10.94a1.026,1.026,0,1,1,0,2.051H5.128a1.026,1.026,0,0,1,0-2.051Zm6.838,6.154H5.128a1.026,1.026,0,1,1,0-2.051h6.838a1.026,1.026,0,1,1,0,2.051Zm0,0" transform="translate(0 0)" fill="#28323a"/>
<path id="Path_4339" data-name="Path 4339" d="M153.782,390.363a3.761,3.761,0,1,0,5.319,5.318l2.176-2.176-5.318-5.319Zm0,0" transform="translate(-142.083 -361.237)" fill="#28323a"/>
<path id="Path_4340" data-name="Path 4340" d="M228.252,321.191a3.76,3.76,0,0,0-5.318,0l-2.176,2.176,5.318,5.318,2.176-2.176A3.765,3.765,0,0,0,228.252,321.191Zm0,0" transform="translate(-205.432 -297.867)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.098" height="29.309" viewBox="0 0 21.098 29.309">
<path id="google-sheets" d="M49.083,29.309a.645.645,0,0,0,.645-.645V8.8H42.307a1.954,1.954,0,0,1-1.951-1.952V0H29.275a.645.645,0,0,0-.645.645V28.664a.645.645,0,0,0,.645.645ZM32.109,12.566h14.3V24.039h-14.3Zm7.724,8.079h5.429v2.247H39.833Zm-6.576-3.537h5.429V19.5H33.257Zm0,3.537h5.429v2.247H33.257Zm6.576-6.931h5.429v2.247H39.833Zm0,3.394h5.429V19.5H39.833Zm-6.576-3.394h5.429v2.247H33.257ZM41.79,6.846V1.491l6.282,5.873H42.307A.518.518,0,0,1,41.79,6.846Z" transform="translate(-28.63)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 613 B

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.879" height="28.906" viewBox="0 0 21.879 28.906">
<g id="medical-report_9_" data-name="medical-report (9)" transform="translate(-5.834 0)">
<path id="Path_4486" data-name="Path 4486" d="M25.038,0H8.511A2.68,2.68,0,0,0,5.834,2.677V26.23a2.679,2.679,0,0,0,2.677,2.676H25.037a2.679,2.679,0,0,0,2.676-2.676V2.677A2.679,2.679,0,0,0,25.038,0ZM9.266,4.849l1.666-2.868a.6.6,0,1,1,1.042.6l-1.14,1.964H22.827l-.911-2.019a.6.6,0,1,1,1.1-.5L24.308,4.9a.6.6,0,0,1-.548.85H9.787a.6.6,0,0,1-.521-.9Zm15.2,12.742h-4.4a.6.6,0,0,1-.568-.4l-.416-1.174-1,7.5a.6.6,0,0,1-.58.522h-.017a.6.6,0,0,1-.59-.488L14.866,13.068l-1.328,4.451a.6.6,0,0,1-.576.431H9.081a.6.6,0,1,1,0-1.2h3.432l1.9-6.377a.6.6,0,0,1,1.168.058l1.79,9.276.845-6.317a.6.6,0,0,1,.534-.519.615.615,0,0,1,.631.4l1.108,3.122h3.976a.6.6,0,1,1,0,1.2Z" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 878 B

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.196" height="28.306" viewBox="0 0 28.196 28.306">
<g id="file_1_" data-name="file (1)" transform="translate(-1)">
<path id="Path_4645" data-name="Path 4645" d="M411,8.782v5.043h5.043Z" transform="translate(-387.333 -8.296)" fill="#28323a"/>
<path id="Path_4646" data-name="Path 4646" d="M136.2,7.187a.829.829,0,0,1-.829-.829V0H123.488A2.491,2.491,0,0,0,121,2.488v9.271c.273-.025.55-.038.829-.038a9.107,9.107,0,0,1,7.032,3.317h9a.829.829,0,0,1,0,1.659h-7.909a9.053,9.053,0,0,1,.96,3.317h6.949a.829.829,0,0,1,0,1.659h-6.949a9.125,9.125,0,0,1-3.845,6.634h13.005a2.491,2.491,0,0,0,2.488-2.488V7.187Zm1.659,4.533H125.7a.829.829,0,1,1,0-1.659h12.163a.829.829,0,0,1,0,1.659Z" transform="translate(-113.366)" fill="#28323a"/>
<path id="Path_4647" data-name="Path 4647" d="M8.464,242a7.464,7.464,0,1,0,7.464,7.464A7.472,7.472,0,0,0,8.464,242Zm2.211,8.293H8.464a.829.829,0,0,1-.829-.829v-3.317a.829.829,0,0,1,1.659,0v2.488h1.382a.829.829,0,1,1,0,1.659Z" transform="translate(0 -228.621)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="27.838" height="27.821" viewBox="0 0 27.838 27.821">
<g id="referral_4_" data-name="referral (4)" transform="translate(-3 -3)">
<path id="Path_4361" data-name="Path 4361" d="M10.356,21.547l2.427,3.034L10.43,26.935,9.358,21.577c.2-.017.4-.03.6-.03Zm4.946,0L13.819,23.4l-1.483-1.854Zm1.98,0h.4c.2,0,.4.013.6.03l-1.072,5.358-2.354-2.354Zm3.492-6.182h-.046a6.9,6.9,0,0,0,.046-.773V12.274a1.546,1.546,0,0,1,0,3.091ZM6.864,7.637A4.641,4.641,0,0,1,11.5,3h4.637a4.641,4.641,0,0,1,4.637,4.637v3.091H17.683a1.547,1.547,0,0,1-1.546-1.546V6.091H14.592v.773a3.868,3.868,0,0,1-3.864,3.864H6.864Zm0,7.728a1.546,1.546,0,1,1,0-3.091v2.318a6.9,6.9,0,0,0,.046.773Zm1.546-.773V12.274h2.318a5.4,5.4,0,0,0,4.105-1.9,3.1,3.1,0,0,0,2.85,1.9h1.546v2.318a5.41,5.41,0,0,1-10.819,0ZM24.638,30.821H3V28.5a6.966,6.966,0,0,1,4.842-6.624L9.2,28.654a.773.773,0,0,0,.534.588.789.789,0,0,0,.223.032.774.774,0,0,0,.546-.226l3.318-3.318,3.318,3.318a.773.773,0,0,0,1.3-.395L19.8,21.877A6.968,6.968,0,0,1,24.638,28.5Z" fill="#2e303a"/>
<path id="Path_4362" data-name="Path 4362" d="M16.135,48.835a.612.612,0,0,1,.612-.612h.971L14.91,45.414,12.1,48.223h.971a.612.612,0,0,1,.613.612,7.35,7.35,0,0,1-3.271,6.112A6.133,6.133,0,0,0,16.135,48.835Z" transform="translate(13.119 -42.414)" fill="#2e303a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.425" height="28.306" viewBox="0 0 21.425 28.306">
<g id="medical-report_1_" data-name="medical-report (1)" transform="translate(-5.834)">
<path id="Path_4650" data-name="Path 4650" d="M24.639,0H8.455A2.624,2.624,0,0,0,5.834,2.621V25.685a2.624,2.624,0,0,0,2.621,2.621H24.639a2.623,2.623,0,0,0,2.62-2.621V2.621A2.623,2.623,0,0,0,24.639,0ZM9.195,4.748,10.826,1.94a.59.59,0,0,1,1.02.592L10.73,4.455H22.474l-.892-1.977a.589.589,0,1,1,1.074-.485L23.924,4.8a.589.589,0,0,1-.537.833H9.7a.591.591,0,0,1-.51-.886ZM24.08,17.225H19.771a.59.59,0,0,1-.556-.392l-.407-1.15-.984,7.347a.59.59,0,0,1-.568.511h-.017a.588.588,0,0,1-.578-.478L14.678,12.8l-1.3,4.359a.589.589,0,0,1-.564.422h-3.8a.59.59,0,1,1,0-1.179h3.361l1.863-6.244a.59.59,0,0,1,1.144.057l1.753,9.083.827-6.185a.589.589,0,0,1,.523-.508.6.6,0,0,1,.617.389l1.085,3.057h3.893a.59.59,0,1,1,0,1.179Z" transform="translate(0)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 955 B

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32.909" height="25.379" viewBox="0 0 32.909 25.379">
<g id="heart-beat_1_" data-name="heart-beat (1)" transform="translate(0 -58.573)">
<path id="Path_4341" data-name="Path 4341" d="M0,268.681v1.928H5.221A17.508,17.508,0,0,1,3.7,268.681Z" transform="translate(0 -196.604)" fill="#28323a"/>
<path id="Path_4342" data-name="Path 4342" d="M432.3,268.681a17.515,17.515,0,0,1-1.522,1.928H436v-1.928Z" transform="translate(-403.09 -196.604)" fill="#28323a"/>
<path id="Path_4343" data-name="Path 4343" d="M39.677,64.208l3.184,9.551,1.12-1.682h2.766L49.365,65.8l2.826,6.281h6.026A9.29,9.29,0,0,0,59.924,66.8a8.075,8.075,0,0,0-6.254-8.1c-3.246-.636-6.216,1.044-8.208,4.54-1.989-3.484-4.945-5.153-8.186-4.526A8.178,8.178,0,0,0,31,66.8a9.29,9.29,0,0,0,1.706,5.274h4.348Z" transform="translate(-29.007 0)" fill="#28323a"/>
<path id="Path_4344" data-name="Path 4344" d="M96.427,241.453l-1.4,3.36H92.008l-2.736,4.1-2.6-7.8-1.233,3.7H81.222a69.042,69.042,0,0,0,7.116,6.47c1.1.915,4.118,3.476,4.118,3.476s3.02-2.561,4.118-3.476a69.048,69.048,0,0,0,7.116-6.47h-5.75Z" transform="translate(-76.001 -170.808)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.288" height="25" viewBox="0 0 12.288 25">
<g id="walking_1_" data-name="walking (1)" transform="translate(-17 -3)">
<path id="Path_4507" data-name="Path 4507" d="M28.966,5.966h.847a1.26,1.26,0,0,0,.729,1.144,2.541,2.541,0,1,0-2,.975,2.5,2.5,0,0,0,1.331-.377A2.129,2.129,0,0,1,28.966,5.966Z" transform="translate(-5.186)" fill="#28323a"/>
<path id="Path_4508" data-name="Path 4508" d="M22.353,40.722l-.811,3.508L19,48.043l2.119,1.695,3.39-4.661.507-1.685-2.585-2.585c-.028-.027-.051-.057-.078-.085Z" transform="translate(-1.153 -21.738)" fill="#28323a"/>
<path id="Path_4509" data-name="Path 4509" d="M19.707,29.337a5.951,5.951,0,0,1-.164-1.369V25.717L17,28.8,18.695,30.5Z" transform="translate(0 -13.091)" fill="#28323a"/>
<path id="Path_4510" data-name="Path 4510" d="M31.2,24.513l-3.894-2.127L25.5,18.309l.775-.343,1.695,3.814L30.932,23.4l1.695.924L33.9,22.2l-2.966-1.78V16.695A1.694,1.694,0,0,0,29.237,15H26.695A1.694,1.694,0,0,0,25,16.695v5.1a5.08,5.08,0,0,0,1.487,3.593l3.6,3.6,1.271,5.508H33.9l-1.271-6.78Z" transform="translate(-4.61 -6.915)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,7 @@
<svg id="Group_7426" data-name="Group 7426" xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<path id="Path_4539" data-name="Path 4539" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32)" fill="#28323a"/>
<path id="Path_4540" data-name="Path 4540" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32 -165.003)" fill="#28323a"/>
<path id="Path_4541" data-name="Path 4541" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-353.676)" fill="#28323a"/>
<path id="Path_4542" data-name="Path 4542" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-353.676 -165.003)" fill="#28323a"/>
<path id="Path_4551" data-name="Path 4551" d="M13.343,0A13.343,13.343,0,1,0,26.686,13.343,13.343,13.343,0,0,0,13.343,0Zm4.924,8.9a1.911,1.911,0,1,1-1.911,1.911A1.912,1.912,0,0,1,18.267,8.9Zm-9.849,0a1.911,1.911,0,1,1-1.911,1.911A1.912,1.912,0,0,1,8.418,8.9Zm12.124,9.083a8.733,8.733,0,0,1-14.4,0A1.169,1.169,0,1,1,8.07,16.657a6.4,6.4,0,0,0,10.55,0,1.168,1.168,0,1,1,1.923,1.325Z" transform="translate(5.954 5.509)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<g id="fingerprint-scan" transform="translate(0.342 0.655)">
<path id="Path_4535" data-name="Path 4535" d="M24,0H2.909A2.913,2.913,0,0,0,0,2.909V24a2.913,2.913,0,0,0,2.909,2.909H24A2.913,2.913,0,0,0,26.913,24V2.909A2.913,2.913,0,0,0,24,0ZM5,5.182c5.592-4.061,11.49-4.018,17,.072a.789.789,0,0,1-.47,1.422c-.894,0-6.986-6.478-15.607-.218A.788.788,0,0,1,5,5.182Zm7.349,20.277a.788.788,0,0,1-1.1-.2c-1.111-1.606-3.634-3.4-3.634-6.757a6.063,6.063,0,0,1,5.835-6.255A6.063,6.063,0,0,1,19.291,18.5v.841a.788.788,0,0,1-1.577,0V18.5a4.488,4.488,0,0,0-4.258-4.678A4.488,4.488,0,0,0,9.2,18.5C9.2,22.3,14.037,24.294,12.353,25.459Zm9.8-4.08a4.132,4.132,0,0,1-7.8-2.035c0-3.4-2.327-2.255-1.811-.191a.788.788,0,0,1-1.53.383c-1.074-4.295,4.917-6.037,4.917-.191A2.544,2.544,0,0,0,17.9,21.971c3.65.861,4.733-5.161,1.093-9.037-5.033-5.363-13.16-1.227-13.16,5.148A6.378,6.378,0,0,0,6.95,22.25a.788.788,0,0,1-1.284.916,8.033,8.033,0,0,1-1.408-5.084,9.351,9.351,0,0,1,9.2-9.2c6.8,0,11.128,7.628,8.7,12.5Zm.527-9.761a.788.788,0,0,1-1.075-.293C20.033,8.578,16.234,7.1,13.457,7.1a11.282,11.282,0,0,0-8.175,4.275A.788.788,0,0,1,3.97,10.5a12.781,12.781,0,0,1,9.487-4.977c5.841,0,11.056,5.05,9.222,6.1Z" transform="translate(5.793 4.943)" fill="#28323a"/>
<path id="Path_4539" data-name="Path 4539" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.342 -0.655)" fill="#28323a"/>
<path id="Path_4540" data-name="Path 4540" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.342 -165.658)" fill="#28323a"/>
<path id="Path_4541" data-name="Path 4541" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-354.018 -0.655)" fill="#28323a"/>
<path id="Path_4542" data-name="Path 4542" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-354.018 -165.658)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<g id="sms-speech-bubble" transform="translate(-1 1.645)">
<g id="textsms">
<path id="Path_4529" data-name="Path 4529" d="M21.992,0H2.444A2.451,2.451,0,0,0,0,2.444V24.436l4.887-4.887h17.1A2.451,2.451,0,0,0,24.436,17.1V2.444A2.451,2.451,0,0,0,21.992,0ZM8.552,11H6.109V8.552H8.552Zm4.887,0H11V8.552H13.44Zm4.887,0H15.883V8.552h2.444Z" transform="translate(8.144 5.013)" fill="#28323a"/>
<path id="Path_4543" data-name="Path 4543" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-31 -1.645)" fill="#28323a"/>
<path id="Path_4544" data-name="Path 4544" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-31 -166.648)" fill="#28323a"/>
<path id="Path_4545" data-name="Path 4545" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-352.676 -1.645)" fill="#28323a"/>
<path id="Path_4546" data-name="Path 4546" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-352.676 -166.648)" fill="#28323a"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.595" height="38.024" viewBox="0 0 38.595 38.024">
<g id="whatsapp_1_" data-name="whatsapp (1)" transform="translate(0.233 -4.309)">
<g id="Group_7424" data-name="Group 7424" transform="translate(4.808 8.729)">
<path id="Path_4537" data-name="Path 4537" d="M0,28.186l2.424-7.271a13.848,13.848,0,1,1,5.468,5.195Z" fill="#2cb742"/>
<path id="Path_4538" data-name="Path 4538" d="M29.341,23.6c-.64-1.209-3-2.591-3-2.591-.534-.3-1.177-.338-1.482.2a12.215,12.215,0,0,1-.961,1.051,1.791,1.791,0,0,1-2.547-.253l-1.935-1.935-1.935-1.935A1.791,1.791,0,0,1,17.23,15.6a12.216,12.216,0,0,1,1.051-.961c.542-.3.508-.948.2-1.482,0,0-1.382-2.358-2.591-3a1.325,1.325,0,0,0-1.557.234l-.854.854c-2.71,2.71-1.376,5.77,1.334,8.48L17.3,22.2l2.477,2.477c2.71,2.71,5.77,4.045,8.48,1.334l.854-.854A1.326,1.326,0,0,0,29.341,23.6Z" transform="translate(-6.169 -5.141)" fill="#fff"/>
</g>
<path id="Path_4547" data-name="Path 4547" d="M38.892,0H33.378A1.379,1.379,0,0,0,32,1.378v8.27a1.378,1.378,0,0,0,2.757,0V2.757h4.135a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.233 4.309)" fill="#28323a"/>
<path id="Path_4548" data-name="Path 4548" d="M38.892,200.27H34.757v-6.892a1.378,1.378,0,1,0-2.757,0v8.27a1.379,1.379,0,0,0,1.378,1.378h5.514a1.378,1.378,0,1,0,0-2.757Z" transform="translate(-32.233 -160.693)" fill="#28323a"/>
<path id="Path_4549" data-name="Path 4549" d="M390.892,0h-5.514a1.378,1.378,0,0,0,0,2.757h4.135V9.649a1.378,1.378,0,0,0,2.757,0V1.378A1.379,1.379,0,0,0,390.892,0Z" transform="translate(-353.909 4.309)" fill="#28323a"/>
<path id="Path_4550" data-name="Path 4550" d="M390.892,192a1.379,1.379,0,0,0-1.378,1.378v6.892h-4.135a1.378,1.378,0,0,0,0,2.757h5.514a1.379,1.379,0,0,0,1.378-1.378v-8.27A1.379,1.379,0,0,0,390.892,192Z" transform="translate(-353.909 -160.693)" fill="#28323a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -9,7 +9,7 @@ class MyColors {
static const Color gradiantStartColor = Color(0xff33c0a5);
static const Color gradiantEndColor = Color(0xff259db7);
static const Color textMixColor = Color(0xff2BB8A6);
static const Color backgroundColor = Color(0xffF8F8F8);
static const Color backgroundColor = Color(0xffEDEDED);
static const Color grey41Color = Color(0xff414141);
static const Color grey57Color = Color(0xff575757);
static const Color grey67Color = Color(0xff676767);
@ -40,6 +40,7 @@ class MyColors {
static const Color borderColor = Color(0xffE8E8E8);
static const Color borderE3Color = Color(0xffE3E3E3);
static const Color borderCEColor = Color(0xffCECECE);
//static const Color grey67Color = Color(0xff676767);
static const Color whiteColor = Color(0xFFEEEEEE);
static const Color greenColor = Color(0xff1FA269);
@ -54,7 +55,7 @@ class MyColors {
static const Color lightGreyColor = Color(0xffC7C7C7);
static const Color green69Color = Color(0xff1FA169);
static const Color redA3Color = Color(0xffCA3332);
static const Color green9CColor = Color(0xff259CB8);
static const Color green9CColor = Color(0xff259CB8);
static const Color green2DColor = Color(0xff32D892);
static const Color greyC4Color = Color(0xffC4C4C4);
static const Color grey35Color = Color(0xff535353);

@ -5,7 +5,7 @@ class ApiConsts {
static String baseUrl = 'https://hmgwebservices.com/';
// static String baseUrl = 'https://uat.hmgwebservices.com/';
static String baseUrlServices = baseUrl + "/Services/"; // server
static String baseUrlServices = baseUrl + "Services/"; // server
// static String baseUrlServices = "https://api.cssynapses.com/tangheem/"; // Live server
static String utilitiesRest = baseUrlServices + "Utilities.svc/REST/";
static String erpRest = baseUrlServices + "ERP.svc/REST/";

@ -117,6 +117,14 @@ class Utils {
return await prefs.setInt(key, value);
}
static String capitalize(str) {
if (str != "") {
return "${str[0].toUpperCase()}${str.substring(1).toLowerCase()}";
} else {
return str;
}
}
static void handleException(dynamic exception, cxt, Function(String)? onErrorMessage) {
String errorMessage;
if (exception is APIException) {

@ -1,6 +1,7 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:hmg_nurses/main.dart';
import 'package:hmg_nurses/model/base/generic_response_model2.dart';
import 'package:hmg_nurses/model/base/post_params_model.dart';
import 'package:hmg_nurses/model/login/imei_details_model.dart';
@ -23,12 +24,14 @@ class AppState {
//TODO: Must be -1 before login or logout
int lastLoginTyp = -1;
int? doctorUserId;
int? employeeId;
String? password;
String? doctorIdFromDB;
String? lastLoginDate;
GetIMEIDetailsModel? lastLoginImeiDate;
List<ListDoctorsClinicModel>? listDoctorsClinic;
int setupId=91877;
GenericResponseModel2? doctorProfile;
bool isAuthenticated = false;
@ -37,22 +40,6 @@ class AppState {
bool isLogged = false;
set setLogged(v) => isLogged = v;
bool? get getIsLogged => isLogged;
bool businessCardPrivilege = false;
set setBusinessCardPrivilege(bool v) => businessCardPrivilege = v;
bool? get getBusinessCardPrivilege => businessCardPrivilege;
String? forgetPasswordTokenID;
set setForgetPasswordTokenID(token) => forgetPasswordTokenID = token;
String? get getForgetPasswordTokenID => forgetPasswordTokenID;
PostParamsModel _postParamsInitConfig = PostParamsModel(
tokenID: "",
languageID: 2,
@ -85,26 +72,18 @@ class AppState {
_postParams?.vidaAuthTokenID = vidaAuthTokenID;
_postParams?.vidaRefreshTokenID = vidaRefreshTokenID;
_postParams?.imei = imei;
return _postParams?.toJson() ?? {};
if(isLogged)
_postParams?.tokenID=authenticationTokenID;
return isLogged ? _postParams?.toJsonLogged() ?? {} : _postParams?.toJson() ?? {};
}
void setPostParamsModel(PostParamsModel _postParams) {
this._postParams = _postParams;
}
bool isArabic(context) => EasyLocalization.of(context)?.locale.languageCode == "ar";
bool isArabic() => EasyLocalization.of(navigatorKey.currentContext!)?.locale.languageCode == "ar";
int getLanguageID(context) => EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2;
String? _username;
set setUserName(v) => _username = v;
String? get getUserName => _username;
MemberLoginModel? _memberBeforeLogin;
MemberLoginModel? get memberBeforeLogin => _memberBeforeLogin;
set setMemberBeforeLogin(MemberLoginModel? _memberBeforeLogin) => this._memberBeforeLogin = _memberBeforeLogin;
MemberLoginModel? memberBeforeLogin;
}

@ -4,6 +4,7 @@ import 'package:hmg_nurses/config/app_state.dart';
import 'package:hmg_nurses/services/api_client.dart';
import 'package:hmg_nurses/services/api_repo/dashboard_api_repo.dart';
import 'package:hmg_nurses/services/api_repo/login_api_repo.dart';
import 'package:hmg_nurses/services/api_repo/patient_api_repo.dart';
import 'package:hmg_nurses/services/firebase_service.dart';
import 'package:injector/injector.dart';
@ -21,5 +22,6 @@ class AppDependencies {
//repos
injector.registerSingleton<ILoginApiRepo>(() => LoginApiRepo());
injector.registerSingleton<IDashboardApiRepo>(() => DashboardApiRepo());
injector.registerSingleton<IPatientApiRepo>(() => PatientApiRepo());
}
}

@ -3,6 +3,10 @@ import 'package:hmg_nurses/ui/dashboard/dashbaord_page.dart';
import 'package:hmg_nurses/ui/login/login_method_page.dart';
import 'package:hmg_nurses/ui/login/login_page.dart';
import 'package:hmg_nurses/ui/login/splash_page.dart';
import 'package:hmg_nurses/ui/patient/profile/patient_profile_page.dart';
import 'package:hmg_nurses/ui/patient/profile/vital/vital_signs_page.dart';
import 'package:hmg_nurses/ui/patient/search_patient_page.dart';
import 'package:hmg_nurses/ui/patient/searched_patient_list_page.dart';
class AppRoutes {
static const String initialPage = login;
@ -15,6 +19,10 @@ class AppRoutes {
//Dashboard
static const String dashboard = "/dashboard";
static const String searchPatient = "/searchPatient";
static const String searchedFor = "/searchedFor";
static const String patientProfile = "/patientProfile";
static const String vitalSigns = "/vitalSigns";
static final Map<String, WidgetBuilder> routes = {
//Login
@ -24,5 +32,9 @@ class AppRoutes {
//Dashboard
dashboard: (BuildContext context) => DashboardPage(),
searchPatient: (BuildContext context) => SearchPatientPage(),
searchedFor: (BuildContext context) => SearchedPatientListPage(),
patientProfile: (BuildContext context) => PatientProfilePage(),
vitalSigns: (BuildContext context) => VitalSignsPage(),
};
}

@ -17,10 +17,17 @@ extension CapExtension on String {
extension EmailValidator on String {
Widget get toWidget => Text(this);
Widget toText10({Color? color, bool isBold = false, int? maxlines, FontStyle? fontStyle}) => Text(
Widget toText10({Color? color, bool isBold = false, int? maxlines, FontStyle? fontStyle, TextOverflow? textOverflow}) => Text(
this,
maxLines: maxlines,
style: TextStyle(fontSize: 10.sp, fontStyle: fontStyle ?? FontStyle.normal, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4),
overflow: textOverflow,
style: TextStyle(
fontSize: 10.sp,
fontStyle: fontStyle ?? FontStyle.normal,
fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
color: color ?? MyColors.darkTextColor,
letterSpacing: -0.4,
),
);
Widget toText11({Color? color, FontWeight? weight, bool isUnderLine = false, bool isBold = false}) => Text(
@ -70,15 +77,20 @@ extension EmailValidator on String {
double fontSize = 12,
double letterSpacing = -0.72,
double height = 1,
TextOverflow? textOverflow,
FontWeight? fontWeight,
}) =>
AutoSizeText(
this,
textAlign: isCenter ? TextAlign.center : null,
maxLines: (maxLine > 0) ? maxLine : null,
minFontSize: 5,
overflow: textOverflow,
style: TextStyle(
fontSize: fontSize,
fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
fontWeight: fontWeight ?? (isBold
? FontWeight.bold
: FontWeight.w600),
color: color ?? MyColors.darkTextColor,
letterSpacing: letterSpacing,
decoration: isUnderLine ? TextDecoration.underline : null,
@ -101,9 +113,17 @@ extension EmailValidator on String {
decoration: isUnderLine ? TextDecoration.underline : null),
);
Widget toText16({Color? color, bool isUnderLine = false, bool isBold = false, int? maxlines}) => Text(
Widget toText16({
Color? color,
bool isUnderLine = false,
bool isBold = false,
int? maxlines,
TextAlign? textAlign,
}) =>
Text(
this,
maxLines: maxlines,
textAlign: textAlign,
style: TextStyle(
color: color ?? MyColors.darkTextColor,
fontSize: 16.sp,
@ -232,4 +252,12 @@ extension EmailValidator on String {
return "";
}
}
String truncate(int max, {String suffix = ''}) {
try {
return length <= max ? this : '${substring(0, max - suffix.length)}$suffix';
} catch (e) {
return this;
}
}
}

@ -15,6 +15,7 @@ extension WidgetExtensions on Widget {
Widget circle(double _value) => ClipRRect(borderRadius: BorderRadius.circular(_value), child: this);
Widget paddingAll(double _value) => Padding(padding: EdgeInsets.all(_value), child: this);
Widget paddingSymmetrical(double horizontal, double vertical) => Padding(padding: EdgeInsets.symmetric(horizontal: horizontal, vertical: vertical), child: this);

@ -17,6 +17,7 @@ import 'package:provider/single_child_widget.dart';
import 'package:sizer/sizer.dart';
import 'generated/codegen_loader.g.dart';
import 'provider/patient_provider_model.dart';
late AppState appState;
@ -61,6 +62,9 @@ Future<void> main() async {
),
ChangeNotifierProvider<DashboardProviderModel>(
create: (_) => DashboardProviderModel(),
),
ChangeNotifierProvider<PatientProviderModel>(
create: (_) => PatientProviderModel(),
)
],
child: MyApp(),

@ -7,6 +7,8 @@ import 'dart:convert';
import 'package:hmg_nurses/model/login/imei_details_model.dart';
import 'package:hmg_nurses/model/login/list_doctors_clinic_model.dart';
import 'package:hmg_nurses/model/login/member_information_model.dart';
import 'package:hmg_nurses/model/patient/list_doctor_patient_vital_sign.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import '../login/project_info_model.dart';
@ -196,6 +198,8 @@ class GenericResponseModel {
this.requisitionStatusList,
this.resultValue,
this.specialAuthenticate,
this.getPatientFileInformationPrmList,
this.listDoctorPatientVitalSign,
});
final dynamic date;
@ -378,6 +382,8 @@ class GenericResponseModel {
final dynamic requisitionStatusList;
final int? resultValue;
final bool? specialAuthenticate;
final List<GetPatientFileInformationPrmList>? getPatientFileInformationPrmList;
final List<ListDoctorPatientVitalSign>? listDoctorPatientVitalSign;
factory GenericResponseModel.fromJson(Map<String, dynamic> json) => GenericResponseModel(
date: json["Date"],
@ -560,6 +566,11 @@ class GenericResponseModel {
requisitionStatusList: json["requisitionStatusList"],
resultValue: json["resultValue"] == null ? null : json["resultValue"],
specialAuthenticate: json["specialAuthenticate"] == null ? null : json["specialAuthenticate"],
getPatientFileInformationPrmList: json["GetPatientFileInformation_PRMList"] == null
? null
: List<GetPatientFileInformationPrmList>.from(json["GetPatientFileInformation_PRMList"].map((x) => GetPatientFileInformationPrmList.fromJson(x))),
listDoctorPatientVitalSign:
json["List_DoctorPatientVitalSign"] == null ? null : List<ListDoctorPatientVitalSign>.from(json["List_DoctorPatientVitalSign"].map((x) => ListDoctorPatientVitalSign.fromJson(x))),
);
Map<String, dynamic> toJson() => {

@ -14,6 +14,12 @@ class PostParamsModel {
int? deviceTypeID;
String? generalID;
//After Login
int? doctorId;
int? editedBy;
int? projectId;
int? clinicId;
PostParamsModel({
this.imei,
this.tokenID,
@ -29,6 +35,10 @@ class PostParamsModel {
this.vidaRefreshTokenID,
this.deviceTypeID,
this.generalID,
this.doctorId,
this.editedBy,
this.projectId,
this.clinicId,
});
PostParamsModel.fromJson(Map<String, dynamic> json) {
@ -66,6 +76,28 @@ class PostParamsModel {
return data;
}
Map<String, dynamic> toJsonLogged() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['TokenID'] = this.tokenID;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
data['DeviceTypeID'] = this.deviceTypeID;
data['generalid'] = this.generalID;
data['DoctorID'] = this.doctorId;
data['EditedBy'] = this.editedBy;
data['ProjectID'] = this.projectId;
data['ClinicID'] = this.clinicId;
return data;
}
// Map<String, dynamic> toJsonAfterLogin() {
// Map<String, dynamic> data = new Map<String, dynamic>();
// data['VersionID'] = this.versionID;

@ -0,0 +1,191 @@
class ListDoctorPatientVitalSign {
ListDoctorPatientVitalSign({
this.transNo,
this.projectId,
this.weightKg,
this.heightCm,
this.temperatureCelcius,
this.pulseBeatPerMinute,
this.respirationBeatPerMinute,
this.bloodPressureLower,
this.bloodPressureHigher,
this.sao2,
this.fio2,
this.painScore,
this.bodyMassIndex,
this.headCircumCm,
this.leanBodyWeightLbs,
this.idealBodyWeightLbs,
this.temperatureCelciusMethod,
this.pulseRhythm,
this.respirationPattern,
this.bloodPressureCuffLocation,
this.bloodPressureCuffSize,
this.bloodPressurePatientPosition,
this.painLocation,
this.painDuration,
this.painCharacter,
this.painFrequency,
this.isPainManagementDone,
this.status,
this.isVitalsRequired,
this.patientId,
this.createdOn,
this.doctorId,
this.clinicId,
this.triageCategory,
this.gcScore,
this.lineItemNo,
this.vitalSignDate,
this.actualTimeTaken,
this.sugarLevel,
this.fbs,
this.rbs,
this.observationType,
this.heartRate,
this.muscleTone,
this.reflexIrritability,
this.bodyColor,
this.isFirstAssessment,
this.dateofBirth,
this.timeOfBirth,
this.bloodPressure,
this.bloodPressureCuffLocationDesc,
this.bloodPressureCuffSizeDesc,
this.bloodPressurePatientPositionDesc,
this.clinicName,
this.doctorImageUrl,
this.doctorName,
this.painScoreDesc,
this.pulseRhythmDesc,
this.respirationPatternDesc,
this.temperatureCelciusMethodDesc,
this.time,
});
final int? transNo;
final dynamic projectId;
final double? weightKg;
final double? heightCm;
final double? temperatureCelcius;
final int? pulseBeatPerMinute;
final int? respirationBeatPerMinute;
final int? bloodPressureLower;
final int? bloodPressureHigher;
final int? sao2;
final int? fio2;
final dynamic painScore;
final double? bodyMassIndex;
final int? headCircumCm;
final int? leanBodyWeightLbs;
final int? idealBodyWeightLbs;
final int? temperatureCelciusMethod;
final int? pulseRhythm;
final int? respirationPattern;
final dynamic bloodPressureCuffLocation;
final dynamic bloodPressureCuffSize;
final dynamic bloodPressurePatientPosition;
final String? painLocation;
final String? painDuration;
final String? painCharacter;
final String? painFrequency;
final bool? isPainManagementDone;
final int? status;
final bool? isVitalsRequired;
final int? patientId;
final String? createdOn;
final int? doctorId;
final int? clinicId;
final dynamic triageCategory;
final dynamic gcScore;
final dynamic lineItemNo;
final dynamic vitalSignDate;
final dynamic actualTimeTaken;
final dynamic sugarLevel;
final dynamic fbs;
final dynamic rbs;
final dynamic observationType;
final dynamic heartRate;
final dynamic muscleTone;
final dynamic reflexIrritability;
final dynamic bodyColor;
final dynamic isFirstAssessment;
final dynamic dateofBirth;
final dynamic timeOfBirth;
final String? bloodPressure;
final String? bloodPressureCuffLocationDesc;
final String? bloodPressureCuffSizeDesc;
final String? bloodPressurePatientPositionDesc;
final String? clinicName;
final String? doctorImageUrl;
final String? doctorName;
final String? painScoreDesc;
final String? pulseRhythmDesc;
final String? respirationPatternDesc;
final String? temperatureCelciusMethodDesc;
final dynamic time;
factory ListDoctorPatientVitalSign.fromJson(Map<String, dynamic> json) => ListDoctorPatientVitalSign(
transNo: json["TransNo"] == null ? null : json["TransNo"],
projectId: json["ProjectID"],
weightKg: json["WeightKg"] == null ? null : json["WeightKg"].toDouble(),
heightCm: json["HeightCm"] == null ? null : json["HeightCm"].toDouble(),
temperatureCelcius: json["TemperatureCelcius"] == null ? null : json["TemperatureCelcius"].toDouble(),
pulseBeatPerMinute: json["PulseBeatPerMinute"] == null ? null : json["PulseBeatPerMinute"],
respirationBeatPerMinute: json["RespirationBeatPerMinute"] == null ? null : json["RespirationBeatPerMinute"],
bloodPressureLower: json["BloodPressureLower"] == null ? null : json["BloodPressureLower"],
bloodPressureHigher: json["BloodPressureHigher"] == null ? null : json["BloodPressureHigher"],
sao2: json["SAO2"] == null ? null : json["SAO2"],
fio2: json["FIO2"] == null ? null : json["FIO2"],
painScore: json["PainScore"],
bodyMassIndex: json["BodyMassIndex"] == null ? null : json["BodyMassIndex"].toDouble(),
headCircumCm: json["HeadCircumCm"] == null ? null : json["HeadCircumCm"],
leanBodyWeightLbs: json["LeanBodyWeightLbs"] == null ? null : json["LeanBodyWeightLbs"],
idealBodyWeightLbs: json["IdealBodyWeightLbs"] == null ? null : json["IdealBodyWeightLbs"],
temperatureCelciusMethod: json["TemperatureCelciusMethod"] == null ? null : json["TemperatureCelciusMethod"],
pulseRhythm: json["PulseRhythm"] == null ? null : json["PulseRhythm"],
respirationPattern: json["RespirationPattern"] == null ? null : json["RespirationPattern"],
bloodPressureCuffLocation: json["BloodPressureCuffLocation"],
bloodPressureCuffSize: json["BloodPressureCuffSize"],
bloodPressurePatientPosition: json["BloodPressurePatientPosition"],
painLocation: json["PainLocation"] == null ? null : json["PainLocation"],
painDuration: json["PainDuration"] == null ? null : json["PainDuration"],
painCharacter: json["PainCharacter"] == null ? null : json["PainCharacter"],
painFrequency: json["PainFrequency"] == null ? null : json["PainFrequency"],
isPainManagementDone: json["IsPainManagementDone"] == null ? null : json["IsPainManagementDone"],
status: json["Status"] == null ? null : json["Status"],
isVitalsRequired: json["IsVitalsRequired"] == null ? null : json["IsVitalsRequired"],
patientId: json["PatientID"] == null ? null : json["PatientID"],
createdOn: json["CreatedOn"] == null ? null : json["CreatedOn"],
doctorId: json["DoctorID"] == null ? null : json["DoctorID"],
clinicId: json["ClinicID"] == null ? null : json["ClinicID"],
triageCategory: json["TriageCategory"],
gcScore: json["GCScore"],
lineItemNo: json["LineItemNo"],
vitalSignDate: json["VitalSignDate"],
actualTimeTaken: json["ActualTimeTaken"],
sugarLevel: json["SugarLevel"],
fbs: json["FBS"],
rbs: json["RBS"],
observationType: json["ObservationType"],
heartRate: json["HeartRate"],
muscleTone: json["MuscleTone"],
reflexIrritability: json["ReflexIrritability"],
bodyColor: json["BodyColor"],
isFirstAssessment: json["IsFirstAssessment"],
dateofBirth: json["DateofBirth"],
timeOfBirth: json["TimeOfBirth"],
bloodPressure: json["BloodPressure"] == null ? null : json["BloodPressure"],
bloodPressureCuffLocationDesc: json["BloodPressureCuffLocationDesc"] == null ? null : json["BloodPressureCuffLocationDesc"],
bloodPressureCuffSizeDesc: json["BloodPressureCuffSizeDesc"] == null ? null : json["BloodPressureCuffSizeDesc"],
bloodPressurePatientPositionDesc: json["BloodPressurePatientPositionDesc"] == null ? null : json["BloodPressurePatientPositionDesc"],
clinicName: json["ClinicName"] == null ? null : json["ClinicName"],
doctorImageUrl: json["DoctorImageURL"] == null ? null : json["DoctorImageURL"],
doctorName: json["DoctorName"] == null ? null : json["DoctorName"],
painScoreDesc: json["PainScoreDesc"] == null ? null : json["PainScoreDesc"],
pulseRhythmDesc: json["PulseRhythmDesc"] == null ? null : json["PulseRhythmDesc"],
respirationPatternDesc: json["RespirationPatternDesc"] == null ? null : json["RespirationPatternDesc"],
temperatureCelciusMethodDesc: json["TemperatureCelciusMethodDesc"] == null ? null : json["TemperatureCelciusMethodDesc"],
time: json["Time"],
);
}

@ -0,0 +1,242 @@
class GetPatientFileInformationPrmList {
GetPatientFileInformationPrmList({
this.patientId,
this.setupId,
this.patientType,
this.firstName,
this.middleName,
this.lastName,
this.firstNameN,
this.middleNameN,
this.lastNameN,
this.gender,
this.dateofBirth,
this.dateofBirthN,
this.nationalityId,
this.phoneResi,
this.phoneOffice,
this.mobileNumber,
this.faxNumber,
this.emailAddress,
this.isEmailAlertRequired,
this.isSmsAlertRequired,
this.preferredLanguage,
this.emergencyContactName,
this.emergencyContactNo,
this.patientIdentificationType,
this.patientIdentificationNo,
this.projectId,
this.receiveHealthSummaryReport,
this.noShowCount,
this.isPatientHasMobileDeviceToken,
this.editedBy,
this.isIvrStopped,
this.crsClientIdentifierId,
this.crsVerificationStatus,
this.crsVerifiedBy,
this.crsVerificationStatusDesc,
this.crsVerificationStatusDescN,
this.numberPosition,
this.status,
this.isPrivilegedMember,
this.address,
this.age,
this.emaiLAddress,
this.genderDescription,
this.genderImage,
this.isPatientDataVerified,
this.isPatientPrivilegedMember,
this.nationalityDescription,
this.nationalityFlagUrl,
this.poBox,
this.patientDataVerified,
this.patientName,
this.patientTypeDescription,
this.patientTypeDescriptionN,
this.statusDscription,
this.tempAddress,
this.upcomingAppointmentsNumber,
this.zipCode,
this.patientStatusType,
});
final int? patientId;
final String? setupId;
final int? patientType;
final String? firstName;
final String? middleName;
final String? lastName;
final String? firstNameN;
final String? middleNameN;
final String? lastNameN;
final int? gender;
final String? dateofBirth;
final String? dateofBirthN;
final String? nationalityId;
final String? phoneResi;
final String? phoneOffice;
final String? mobileNumber;
final String? faxNumber;
final String? emailAddress;
final bool? isEmailAlertRequired;
final bool? isSmsAlertRequired;
final String? preferredLanguage;
final String? emergencyContactName;
final String? emergencyContactNo;
final int? patientIdentificationType;
final String? patientIdentificationNo;
final int? projectId;
final bool? receiveHealthSummaryReport;
final int? noShowCount;
final bool? isPatientHasMobileDeviceToken;
final int? editedBy;
final dynamic isIvrStopped;
final dynamic crsClientIdentifierId;
final dynamic crsVerificationStatus;
final dynamic crsVerifiedBy;
final dynamic crsVerificationStatusDesc;
final dynamic crsVerificationStatusDescN;
final int? numberPosition;
final int? status;
final dynamic isPrivilegedMember;
final dynamic address;
final int? age;
final String? emaiLAddress;
final String? genderDescription;
final String? genderImage;
final bool? isPatientDataVerified;
final bool? isPatientPrivilegedMember;
final String? nationalityDescription;
final String? nationalityFlagUrl;
final dynamic poBox;
final int? patientDataVerified;
final String? patientName;
final String? patientTypeDescription;
final dynamic patientTypeDescriptionN;
final String? statusDscription;
final dynamic tempAddress;
final int? upcomingAppointmentsNumber;
final String? zipCode;
final int? patientStatusType;
factory GetPatientFileInformationPrmList.fromJson(Map<String, dynamic> json) => GetPatientFileInformationPrmList(
patientId: json["PatientID"] == null ? null : json["PatientID"],
setupId: json["SetupID"] == null ? null : json["SetupID"],
patientType: json["PatientType"] == null ? null : json["PatientType"],
firstName: json["FirstName"] == null ? null : json["FirstName"],
middleName: json["MiddleName"] == null ? null : json["MiddleName"],
lastName: json["LastName"] == null ? null : json["LastName"],
firstNameN: json["FirstNameN"] == null ? null : json["FirstNameN"],
middleNameN: json["MiddleNameN"] == null ? null : json["MiddleNameN"],
lastNameN: json["LastNameN"] == null ? null : json["LastNameN"],
gender: json["Gender"] == null ? null : json["Gender"],
dateofBirth: json["DateofBirth"] == null ? null : json["DateofBirth"],
dateofBirthN: json["DateofBirthN"] == null ? null : json["DateofBirthN"],
nationalityId: json["NationalityID"] == null ? null : json["NationalityID"],
phoneResi: json["PhoneResi"] == null ? null : json["PhoneResi"],
phoneOffice: json["PhoneOffice"] == null ? null : json["PhoneOffice"],
mobileNumber: json["MobileNumber"] == null ? null : json["MobileNumber"],
faxNumber: json["FaxNumber"] == null ? null : json["FaxNumber"],
emailAddress: json["EmailAddress"] == null ? null : json["EmailAddress"],
isEmailAlertRequired: json["IsEmailAlertRequired"] == null ? null : json["IsEmailAlertRequired"],
isSmsAlertRequired: json["IsSMSAlertRequired"] == null ? null : json["IsSMSAlertRequired"],
preferredLanguage: json["PreferredLanguage"] == null ? null : json["PreferredLanguage"],
emergencyContactName: json["EmergencyContactName"] == null ? null : json["EmergencyContactName"],
emergencyContactNo: json["EmergencyContactNo"] == null ? null : json["EmergencyContactNo"],
patientIdentificationType: json["PatientIdentificationType"] == null ? null : json["PatientIdentificationType"],
patientIdentificationNo: json["PatientIdentificationNo"] == null ? null : json["PatientIdentificationNo"],
projectId: json["ProjectID"] == null ? null : json["ProjectID"],
receiveHealthSummaryReport: json["ReceiveHealthSummaryReport"] == null ? null : json["ReceiveHealthSummaryReport"],
noShowCount: json["NoShowCount"] == null ? null : json["NoShowCount"],
isPatientHasMobileDeviceToken: json["IsPatientHasMobileDeviceToken"] == null ? null : json["IsPatientHasMobileDeviceToken"],
editedBy: json["EditedBy"] == null ? null : json["EditedBy"],
isIvrStopped: json["IsIVRStopped"],
crsClientIdentifierId: json["CRSClientIdentifierID"],
crsVerificationStatus: json["CRSVerificationStatus"],
crsVerifiedBy: json["CRSVerifiedBy"],
crsVerificationStatusDesc: json["CRSVerificationStatusDesc"],
crsVerificationStatusDescN: json["CRSVerificationStatusDescN"],
numberPosition: json["NumberPosition"] == null ? null : json["NumberPosition"],
status: json["Status"] == null ? null : json["Status"],
isPrivilegedMember: json["IsPrivilegedMember"],
address: json["Address"],
age: json["Age"] == null ? null : json["Age"],
emaiLAddress: json["EmaiLAddress"] == null ? null : json["EmaiLAddress"],
genderDescription: json["GenderDescription"] == null ? null : json["GenderDescription"],
genderImage: json["GenderImage"] == null ? null : json["GenderImage"],
isPatientDataVerified: json["IsPatientDataVerified"] == null ? null : json["IsPatientDataVerified"],
isPatientPrivilegedMember: json["IsPatientPrivilegedMember"] == null ? null : json["IsPatientPrivilegedMember"],
nationalityDescription: json["NationalityDescription"] == null ? null : json["NationalityDescription"],
nationalityFlagUrl: json["NationalityFlagURL"] == null ? null : json["NationalityFlagURL"],
poBox: json["POBox"],
patientDataVerified: json["PatientDataVerified"] == null ? null : json["PatientDataVerified"],
patientName: json["PatientName"] == null ? null : json["PatientName"],
patientTypeDescription: json["PatientTypeDescription"] == null ? null : json["PatientTypeDescription"],
patientTypeDescriptionN: json["PatientTypeDescriptionN"],
statusDscription: json["StatusDscription"] == null ? null : json["StatusDscription"],
tempAddress: json["TempAddress"],
upcomingAppointmentsNumber: json["UpcomingAppointmentsNumber"] == null ? null : json["UpcomingAppointmentsNumber"],
zipCode: json["ZipCode"] == null ? null : json["ZipCode"],
patientStatusType: json["patientStatusType"] ?? json["PatientStatusType"],
);
Map<String, dynamic> toJson() => {
"PatientID": patientId == null ? null : patientId,
"SetupID": setupId == null ? null : setupId,
"PatientType": patientType == null ? null : patientType,
"FirstName": firstName == null ? null : firstName,
"MiddleName": middleName == null ? null : middleName,
"LastName": lastName == null ? null : lastName,
"FirstNameN": firstNameN == null ? null : firstNameN,
"MiddleNameN": middleNameN == null ? null : middleNameN,
"LastNameN": lastNameN == null ? null : lastNameN,
"Gender": gender == null ? null : gender,
"DateofBirth": dateofBirth == null ? null : dateofBirth,
"DateofBirthN": dateofBirthN == null ? null : dateofBirthN,
"NationalityID": nationalityId == null ? null : nationalityId,
"PhoneResi": phoneResi == null ? null : phoneResi,
"PhoneOffice": phoneOffice == null ? null : phoneOffice,
"MobileNumber": mobileNumber == null ? null : mobileNumber,
"FaxNumber": faxNumber == null ? null : faxNumber,
"EmailAddress": emailAddress == null ? null : emailAddress,
"IsEmailAlertRequired": isEmailAlertRequired == null ? null : isEmailAlertRequired,
"IsSMSAlertRequired": isSmsAlertRequired == null ? null : isSmsAlertRequired,
"PreferredLanguage": preferredLanguage == null ? null : preferredLanguage,
"EmergencyContactName": emergencyContactName == null ? null : emergencyContactName,
"EmergencyContactNo": emergencyContactNo == null ? null : emergencyContactNo,
"PatientIdentificationType": patientIdentificationType == null ? null : patientIdentificationType,
"PatientIdentificationNo": patientIdentificationNo == null ? null : patientIdentificationNo,
"ProjectID": projectId == null ? null : projectId,
"ReceiveHealthSummaryReport": receiveHealthSummaryReport == null ? null : receiveHealthSummaryReport,
"NoShowCount": noShowCount == null ? null : noShowCount,
"IsPatientHasMobileDeviceToken": isPatientHasMobileDeviceToken == null ? null : isPatientHasMobileDeviceToken,
"EditedBy": editedBy == null ? null : editedBy,
"IsIVRStopped": isIvrStopped,
"CRSClientIdentifierID": crsClientIdentifierId,
"CRSVerificationStatus": crsVerificationStatus,
"CRSVerifiedBy": crsVerifiedBy,
"CRSVerificationStatusDesc": crsVerificationStatusDesc,
"CRSVerificationStatusDescN": crsVerificationStatusDescN,
"NumberPosition": numberPosition == null ? null : numberPosition,
"Status": status == null ? null : status,
"IsPrivilegedMember": isPrivilegedMember,
"Address": address,
"Age": age == null ? null : age,
"EmaiLAddress": emaiLAddress == null ? null : emaiLAddress,
"GenderDescription": genderDescription == null ? null : genderDescription,
"GenderImage": genderImage == null ? null : genderImage,
"IsPatientDataVerified": isPatientDataVerified == null ? null : isPatientDataVerified,
"IsPatientPrivilegedMember": isPatientPrivilegedMember == null ? null : isPatientPrivilegedMember,
"NationalityDescription": nationalityDescription == null ? null : nationalityDescription,
"NationalityFlagURL": nationalityFlagUrl == null ? null : nationalityFlagUrl,
"POBox": poBox,
"PatientDataVerified": patientDataVerified == null ? null : patientDataVerified,
"PatientName": patientName == null ? null : patientName,
"PatientTypeDescription": patientTypeDescription == null ? null : patientTypeDescription,
"PatientTypeDescriptionN": patientTypeDescriptionN,
"StatusDscription": statusDscription == null ? null : statusDscription,
"TempAddress": tempAddress,
"UpcomingAppointmentsNumber": upcomingAppointmentsNumber == null ? null : upcomingAppointmentsNumber,
"ZipCode": zipCode == null ? null : zipCode,
};
}

@ -0,0 +1,33 @@
import 'package:flutter/material.dart';
class PatientProfileCardModel {
final String nameLine1;
final String nameLine2;
final dynamic route;
final String icon;
final bool isInPatient;
final bool isDisable;
final bool isLoading;
final Function? onTap;
final bool isDischargedPatient;
final bool isSelectInpatient;
final bool isDartIcon;
final IconData? dartIcon;
final Color? color;
PatientProfileCardModel(
this.nameLine1,
this.nameLine2,
this.route,
this.icon, {
this.isInPatient = false,
this.isDisable = false,
this.isLoading = false,
this.onTap,
this.isDischargedPatient = false,
this.isSelectInpatient = false,
this.isDartIcon = false,
this.dartIcon,
this.color,
});
}

@ -12,6 +12,7 @@ import 'package:hmg_nurses/generated/locale_keys.g.dart';
import 'package:hmg_nurses/main.dart';
import 'package:hmg_nurses/model/base/generic_response_model.dart';
import 'package:hmg_nurses/model/base/generic_response_model2.dart';
import 'package:hmg_nurses/model/base/post_params_model.dart';
import 'package:hmg_nurses/model/login/imei_details_model.dart';
import 'package:hmg_nurses/model/login/member_login_model.dart';
import 'package:hmg_nurses/model/login/project_info_model.dart';
@ -152,10 +153,10 @@ class LoginProviderModel extends BaseViewModel {
Utils.showLoading();
MemberLoginModel memberLogin = await _loginApiRepo.memberLogin(userID, password, branchId);
// Utils.showToast(deviceInfo.length.toString());
appState.setMemberBeforeLogin = memberLogin;
appState.memberBeforeLogin = memberLogin;
appState.projectID = branchId;
appState.logInTokenID = memberLogin.logInTokenId;
appState.lastLoginTyp=-1;
appState.lastLoginTyp = -1;
Utils.hideLoading();
Navigator.pushReplacementNamed(navigatorKey.currentContext!, AppRoutes.loginMethodsPage, arguments: LoginType.FROM_LOGIN);
return true;
@ -240,6 +241,13 @@ class LoginProviderModel extends BaseViewModel {
appState.listDoctorsClinic = response.listDoctorsClinic;
appState.projectID = response.listDoctorsClinic!.first.projectId!;
appState.clinicId = response.listDoctorsClinic!.first.clinicId!;
appState.employeeId = response.memberInformation!.employeeId;
appState.isLogged = true;
PostParamsModel? paramsModel = appState.postParamsObject;
paramsModel!.doctorId = appState.employeeId;
paramsModel.editedBy = appState.employeeId;
paramsModel.projectId = appState.projectID;
paramsModel.clinicId = appState.clinicId;
MemberLoginModel.saveToPrefs(jsonEncode(appState.memberBeforeLogin!.toJson()));
Utils.saveIntFromPrefs(SharedPrefsConsts.username, appState.doctorUserId ?? 0);
Utils.saveStringFromPrefs(SharedPrefsConsts.password, appState.password ?? "");
@ -260,10 +268,12 @@ class LoginProviderModel extends BaseViewModel {
String authenticationTokenID = await Utils.getStringFromPrefs(SharedPrefsConsts.authenticationTokenID);
int clinicId = await Utils.getIntFromPrefs(SharedPrefsConsts.clinicId);
String lastLoginDate = await Utils.getStringFromPrefs(SharedPrefsConsts.lastLoginDate);
appState.setMemberBeforeLogin = await MemberLoginModel.getFromPrefs();
appState.memberBeforeLogin = await MemberLoginModel.getFromPrefs();
// print(appState.memberBeforeLogin!.toJson());
appState.lastLoginTyp = -1;
appState.doctorUserId = doctorUserId;
appState.employeeId = appState.memberBeforeLogin!.listMemberInformation!.first.employeeId;
appState.password = password;
appState.logInTokenID = logInTokenID;
appState.vidaAuthTokenID = model.vidaAuthTokenID;

@ -0,0 +1,80 @@
import 'package:flutter/material.dart';
import 'package:hmg_nurses/classes/utils.dart';
import 'package:hmg_nurses/config/app_state.dart';
import 'package:hmg_nurses/config/routes.dart';
import 'package:hmg_nurses/main.dart';
import 'package:hmg_nurses/model/base/generic_response_model.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import 'package:hmg_nurses/provider/base_vm.dart';
import 'package:hmg_nurses/services/api_repo/patient_api_repo.dart';
import 'package:injector/injector.dart';
class PatientProviderModel extends BaseViewModel {
final IPatientApiRepo _patientApiRepo = Injector.appInstance.get<IPatientApiRepo>();
late GenericResponseModel searchedPatient;
late GenericResponseModel vitalSignHistory;
List<GetPatientFileInformationPrmList> filteredPatientsList = [];
searchPatient(int patientId) async {
try {
Utils.showLoading();
searchedPatient = await _patientApiRepo.getPatientInfo(patientId);
Utils.showToast(searchedPatient.getPatientFileInformationPrmList!.length.toString());
filteredPatientsList.addAll(searchedPatient.getPatientFileInformationPrmList!);
Utils.hideLoading();
Navigator.pushNamed(navigatorKey.currentContext!, AppRoutes.searchedFor, arguments: patientId);
return true;
} catch (e) {
Utils.hideLoading();
Utils.handleException(e, navigatorKey.currentContext!, (msg) {
Utils.confirmDialog(navigatorKey.currentContext!, msg);
});
return false;
}
}
filterPatient(String str) {
var strExist = str.length > 0 ? true : false;
if (strExist) {
filteredPatientsList = [];
for (var i = 0; i < searchedPatient.getPatientFileInformationPrmList!.length; i++) {
String firstName = searchedPatient.getPatientFileInformationPrmList![i].firstName!.toUpperCase();
String lastName = searchedPatient.getPatientFileInformationPrmList![i].lastName!.toUpperCase();
String mobile = searchedPatient.getPatientFileInformationPrmList![i].mobileNumber!.toUpperCase();
String patientID = searchedPatient.getPatientFileInformationPrmList![i].patientId.toString();
if (firstName.contains(str.toUpperCase()) || lastName.contains(str.toUpperCase()) || mobile.contains(str) || patientID.contains(str)) {
filteredPatientsList.add(searchedPatient.getPatientFileInformationPrmList![i]);
}
}
notifyListeners();
} else {
filteredPatientsList = searchedPatient.getPatientFileInformationPrmList!;
notifyListeners();
}
}
fetchVitalSignsHistory(GetPatientFileInformationPrmList patient) async {
try {
Utils.showLoading();
vitalSignHistory = await _patientApiRepo.getVitalSigns(
patientID: patient.patientId,
patientTypeID: patient.patientType,
inOutPatientType: 0,
isDentalAllowedBackend: false,
doctorID: appState.employeeId,
setupID: appState.setupId,
patientType: patient.patientType);
Utils.showToast(vitalSignHistory.listDoctorPatientVitalSign!.length.toString());
Utils.hideLoading();
// Navigator.pushNamed(navigatorKey.currentContext!, AppRoutes.searchedFor, arguments: patientId);
return true;
} catch (e) {
Utils.hideLoading();
Utils.handleException(e, navigatorKey.currentContext!, (msg) {
Utils.confirmDialog(navigatorKey.currentContext!, msg);
});
return false;
}
}
}

@ -0,0 +1,80 @@
import 'dart:convert';
import 'package:hmg_nurses/classes/consts.dart';
import 'package:hmg_nurses/main.dart';
import 'package:hmg_nurses/model/base/generic_response_model.dart';
import 'package:hmg_nurses/services/api_client.dart';
import 'package:injector/injector.dart';
abstract class IPatientApiRepo {
Future<GenericResponseModel> getPatientInfo(int patientID);
Future<GenericResponseModel> getVitalSigns({int? patientID, int? patientTypeID, int? inOutPatientType, bool isDentalAllowedBackend, int? doctorID, int setupID, int? patientType});
}
class PatientApiRepo implements IPatientApiRepo {
@override
Future<GenericResponseModel> getPatientInfo(int patientID) async {
String url = "${ApiConsts.baseUrlServices}Patients.svc/REST/GetPatientInformation_PRM";
Map<String, dynamic> postParams = {};
postParams.addAll(appState.postParamsJson);
postParams["FirstName"] = "0";
postParams["MiddleName"] = "0";
postParams["LastName"] = "0";
postParams["PatientMobileNumber"] = "0";
postParams["PatientIdentificationID"] = "0";
postParams["PatientID"] = patientID;
postParams["From"] = "0";
postParams["To"] = "0";
postParams["SearchType"] = 1;
postParams["MobileNo"] = "";
postParams["IdentificationNo"] = "0";
postParams["NursingStationID"] = "0";
GenericResponseModel response;
print(jsonEncode(postParams));
// return GenericResponseModel();
try {
response = await Injector.appInstance.get<IApiClient>().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams);
} catch (e) {
rethrow;
}
return response;
}
@override
Future<GenericResponseModel> getVitalSigns({int? patientID, int? patientTypeID, int? inOutPatientType, bool? isDentalAllowedBackend, int? doctorID, int? setupID, int? patientType}) async {
String url = "${ApiConsts.baseUrlServices}Doctors.svc/REST/Doctor_GetPatientVitalSign";
Map<String, dynamic> postParams = {};
// {
// "PatientID": 12,
// "PatientTypeID": 1,
// "InOutPatientType": 0,
// "isDentalAllowedBackend": false,
// "DoctorID": 2477,
// "SetupID": "91877",
// "PatientType": 1,
// }
postParams.addAll(appState.postParamsJson);
postParams["PatientID"] = patientID;
postParams["PatientTypeID"] = patientTypeID;
postParams["InOutPatientType"] = inOutPatientType;
postParams["isDentalAllowedBackend"] = isDentalAllowedBackend;
postParams["DoctorID"] = doctorID;
postParams["SetupID"] = setupID;
postParams["PatientType"] = patientType;
postParams.remove("ProjectID");
postParams.remove("ClinicID");
GenericResponseModel response;
// return GenericResponseModel();
try {
response = await Injector.appInstance.get<IApiClient>().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams);
} catch (e) {
rethrow;
}
return response;
}
}

@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
import 'package:hmg_nurses/config/routes.dart';
import 'package:hmg_nurses/main.dart';
import 'package:hmg_nurses/provider/dashboard_provider_model.dart';
import 'package:hmg_nurses/ui/dashboard/widgets/home_patient_card.dart';
import 'package:hmg_nurses/widgets/icons_app/doctor_app_icons.dart';
import 'package:provider/provider.dart';
class DashboardPage extends StatefulWidget {
@ -27,6 +29,7 @@ class _DashboardPageState extends State<DashboardPage> {
actions: [
IconButton(
onPressed: () {
appState.isLogged = false;
Navigator.pushReplacementNamed(context, AppRoutes.login, arguments: false);
},
icon: const Icon(
@ -36,6 +39,41 @@ class _DashboardPageState extends State<DashboardPage> {
)
],
),
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
showHomeButton(),
],
),
),
);
}
Widget showHomeButton() {
return Container(
width: 120,
height: 120,
child: HomePatientCard(
gradient: const LinearGradient(
begin: Alignment(-1.0, -2.0),
end: Alignment(1.0, 2.0),
colors: [
Colors.red,
Color(0xFFAD3B3B),
],
),
backgroundIconColor: Colors.white12,
cardIcon: DoctorApp.search,
textColor: Colors.white,
text: "Search Patient",
onTap: () {
Navigator.pushNamed(context, AppRoutes.searchPatient);
},
),
);
}
}

@ -0,0 +1,48 @@
import 'package:flutter/material.dart';
class HomePageCard extends StatelessWidget {
const HomePageCard(
{this.hasBorder = false,
required this.imageName,
required this.child,
required this.onTap,
required this.color,
this.opacity = 0.4,
required this.margin,
required this.width,
required this.gradient});
final bool hasBorder;
final String imageName;
final Widget child;
final GestureTapCallback onTap;
final Color color;
final double opacity;
final double width;
final EdgeInsets margin;
final LinearGradient gradient;
@override
Widget build(BuildContext context) {
return InkWell(
onTap: onTap,
child: Container(
width: width,
margin: this.margin,
decoration: BoxDecoration(
gradient: gradient,
borderRadius: BorderRadius.circular(20.0),
border: hasBorder ? Border.all(width: 1.0, color: const Color(0xffcccccc)) : Border.all(width: 0.0, color: Colors.transparent),
image: imageName != null
? DecorationImage(
image: AssetImage('assets/images/patient/ucaf.png'),
fit: BoxFit.cover,
colorFilter: new ColorFilter.mode(Colors.black.withOpacity(0.2), BlendMode.dstIn),
)
: null,
),
child: child,
),
);
}
}

@ -0,0 +1,118 @@
import 'package:flutter/material.dart';
import 'package:hmg_nurses/classes/size_config.dart';
import 'package:hmg_nurses/ui/dashboard/widgets/home_page_card.dart';
class HomePatientCard extends StatelessWidget {
final Color? backgroundColor;
final IconData? cardIcon;
final String? cardIconImage;
final Color? backgroundIconColor;
final String? text;
final Color? textColor;
final VoidCallback? onTap;
final double iconSize;
final LinearGradient? gradient;
HomePatientCard({
this.backgroundColor,
this.backgroundIconColor,
this.cardIcon,
this.cardIconImage,
this.text,
this.textColor,
this.onTap,
this.iconSize = 30,
this.gradient,
});
@override
Widget build(BuildContext context) {
double width = SizeConfig.heightMultiplier! *
(SizeConfig.isHeightVeryShort
? 16
: SizeConfig.isHeightLarge
? 15
: 13);
return HomePageCard(
color: backgroundColor??Colors.black,
width: width,
gradient: gradient??LinearGradient(colors: []),
margin: EdgeInsets.all(SizeConfig.widthMultiplier! * 1.121),
child: Container(
padding: EdgeInsets.all(8),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Stack(
children: [
Container(
margin: EdgeInsets.only(top: 18, left: 10),
color: Colors.transparent,
child: cardIcon != null
? Icon(
cardIcon,
size: iconSize * 2,
color: backgroundIconColor,
)
: IconButton(
icon: Image.asset(
'assets/images/patient/ucaf.png',
width: iconSize * 2,
height: iconSize * 2,
fit: BoxFit.fill,
),
iconSize: iconSize * 2,
color: backgroundIconColor,
onPressed: () => null,
),
),
Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
cardIcon != null
? Icon(
cardIcon,
size: SizeConfig.getWidthMultiplier(width: width) * 30,
color: textColor,
)
: Image.asset(
cardIconImage!,
height: iconSize,
width: iconSize,
),
SizedBox(
height: 4,
),
],
),
),
],
),
),
Expanded(
child: Container(
child: Text(
text!,
textAlign: TextAlign.start,
style: TextStyle(
color: textColor,
letterSpacing: -0.33,
fontWeight: FontWeight.w600,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth(width: width) * (SizeConfig.isHeightVeryShort ? 11 : 10),
),
),
),
),
],
),
),
hasBorder: false,
onTap: onTap!,
imageName: '',
);
}
}

@ -0,0 +1,56 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hmg_nurses/classes/date-utils.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import 'package:hmg_nurses/ui/patient/widgets/grid/profile_gird_for_search.dart';
import 'package:hmg_nurses/ui/patient/widgets/patient_profile_header.dart';
import 'package:hmg_nurses/widgets/app_bar_widget.dart';
import 'package:hmg_nurses/widgets/circular_avatar.dart';
import 'package:hmg_nurses/widgets/commen/cusom_row.dart';
import 'package:url_launcher/url_launcher.dart';
class PatientProfilePage extends StatelessWidget {
late GetPatientFileInformationPrmList patientProfile;
@override
Widget build(BuildContext context) {
patientProfile = ModalRoute.of(context)!.settings.arguments as GetPatientFileInformationPrmList;
return Scaffold(
appBar: AppBarWidget(
context,
title: "${patientProfile.firstName!} ${patientProfile.lastName!}",
actions: [
SvgPicture.asset(
patientProfile.gender == 1 ? "assets/images/svgs/male.svg" : "assets/images/svgs/female.svg",
),
IconButton(
onPressed: () async {
String url = "tel://${patientProfile.mobileNumber}";
if (!await launchUrl(Uri.parse(url))) {
throw 'Could not launch $url';
}
},
icon: const Icon(Icons.call),
),
],
),
body: SingleChildScrollView(
child: Column(
children: [
PatientProfileHeader(patientProfile),
Container(
width: double.infinity,
margin: const EdgeInsets.all(21),
child: ProfileGridForSearch(
patient: patientProfile,
),
)
],
),
),
);
}
}

@ -0,0 +1,47 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import 'package:hmg_nurses/provider/patient_provider_model.dart';
import 'package:hmg_nurses/ui/patient/widgets/patient_profile_header.dart';
import 'package:hmg_nurses/widgets/app_bar_widget.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class VitalSignsPage extends StatelessWidget {
late GetPatientFileInformationPrmList patientProfile;
late PatientProviderModel provider;
@override
Widget build(BuildContext context) {
patientProfile = ModalRoute.of(context)!.settings.arguments as GetPatientFileInformationPrmList;
provider = context.read<PatientProviderModel>();
provider.fetchVitalSignsHistory(patientProfile);
return Scaffold(
appBar: AppBarWidget(
context,
title: "${patientProfile.firstName!} ${patientProfile.lastName!}",
actions: [
SvgPicture.asset(
patientProfile.gender == 1 ? "assets/images/svgs/male.svg" : "assets/images/svgs/female.svg",
),
IconButton(
onPressed: () async {
String url = "tel://${patientProfile.mobileNumber}";
if (!await launchUrl(Uri.parse(url))) {
throw 'Could not launch $url';
}
},
icon: const Icon(Icons.call),
),
],
),
body: SingleChildScrollView(
child: Column(
children: [
PatientProfileHeader(patientProfile),
],
),
),
);
}
}

@ -0,0 +1,55 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:hmg_nurses/classes/colors.dart';
import 'package:hmg_nurses/provider/patient_provider_model.dart';
import 'package:hmg_nurses/widgets/app_bar_widget.dart';
import 'package:hmg_nurses/widgets/button/default_button.dart';
import 'package:hmg_nurses/widgets/input_widget.dart';
import 'package:provider/provider.dart';
class SearchPatientPage extends StatelessWidget {
var searchController = TextEditingController();
PatientProviderModel? provider;
@override
Widget build(BuildContext context) {
provider = context.read<PatientProviderModel>();
return Scaffold(
appBar: AppBarWidget(context, title: "Search Patients", isNeedLeading: false, actions: [
IconButton(
onPressed: () {
Navigator.pop(context);
},
icon: const Icon(Icons.close),
),
]),
body: Container(
padding: const EdgeInsets.all(21),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CustomTextField(
"Search By Patient Id",
searchController,
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp("[0-9]"),
),
],
),
DefaultButton(
"Search",
() async {
// provider.checkLastSession();
if (searchController.text.length > 0) {
provider?.searchPatient(int.parse(searchController.text));
}
},
),
],
),
),
);
}
}

@ -0,0 +1,96 @@
import 'package:flutter/material.dart';
import 'package:hmg_nurses/config/routes.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/provider/patient_provider_model.dart';
import 'package:hmg_nurses/ui/patient/widgets/patient_card.dart';
import 'package:hmg_nurses/widgets/app_bar_widget.dart';
import 'package:hmg_nurses/widgets/errors/error_message.dart';
import 'package:hmg_nurses/widgets/input_widget.dart';
import 'package:provider/provider.dart';
class SearchedPatientListPage extends StatelessWidget {
int? patientId;
late PatientProviderModel provider;
var searchController = TextEditingController();
@override
Widget build(BuildContext context) {
patientId ??= ModalRoute.of(context)!.settings.arguments as int;
provider = context.read<PatientProviderModel>();
return Scaffold(
appBar: AppBarWidget(
context,
title: "Search For $patientId",
),
body: Container(
width: double.infinity,
height: double.infinity,
padding: EdgeInsets.all(21),
child: Column(
children: [
CustomTextField(
"Search Name, Medical File, Phone Number",
searchController,
suffixIcon: Icons.filter_alt,
onChange: (v) {
provider.filterPatient(v);
},
),
21.height,
Expanded(
child: Consumer<PatientProviderModel>(
builder: (_, model, widget) {
return model.searchedPatient.getPatientFileInformationPrmList!.isEmpty
? ErrorMessage(errorMessage: "No Data Found")
: Column(
children: [
model.filteredPatientsList.isEmpty
? ErrorMessage(errorMessage: "No Data")
: Expanded(
child: SizedBox(
width: double.infinity,
height: double.infinity,
child: ListView.separated(
itemBuilder: (context, index) {
// String nationalityName = model.filteredPatientsList[index].nationalityName != null
// ? model.filteredPatientsList[index].nationalityName.trim()
// : model.filteredPatientsList[index].nationality != null
// ? model.filteredPatientsList[index].nationality.trim()
// : model.filteredPatientsList[index].nationalityId != null
// ? model.filteredPatientsList[index].nationalityId
// : "";
return PatientCard(
name: "${model.filteredPatientsList[index].firstName!} ${model.filteredPatientsList[index].lastName!}",
gender: model.filteredPatientsList[index].gender??1 ,
nationalityName: (model.filteredPatientsList[index].nationalityId != null) ? model.filteredPatientsList[index].nationalityId! : "",
nationalityFlagURL: (model.filteredPatientsList[index].nationalityId != null) ? model.filteredPatientsList[index].nationalityFlagUrl! : "",
fileNumber: model.filteredPatientsList[index].patientId.toString(),
dateofBirth: model.filteredPatientsList[index].dateofBirth!,
// arrivedOn: "",
// appointmentDate: "",
// admissionDate: "",
// clinicDescription: "",
// roomId: "",
onTap: () {
Navigator.pushNamed(context, AppRoutes.patientProfile, arguments: model.filteredPatientsList[index]);
},
);
},
separatorBuilder: (context, index) {
return 12.height;
},
itemCount: model.filteredPatientsList.length,
),
),
),
],
);
},
),
),
],
),
),
);
}
}

@ -0,0 +1,74 @@
import 'package:flutter/material.dart';
import 'package:hmg_nurses/config/routes.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import 'package:hmg_nurses/model/patient_profile_card_model.dart';
import 'package:hmg_nurses/ui/patient/widgets/patient_profile_button.dart';
class ProfileGridForSearch extends StatelessWidget {
final GetPatientFileInformationPrmList patient;
final String? patientType;
final String? arrivalType;
final double? height;
final bool isInpatient;
String? from;
String? to;
ProfileGridForSearch({required this.patient, this.patientType, this.arrivalType, this.height, this.isInpatient = false, this.from, this.to});
@override
Widget build(BuildContext context) {
final List<PatientProfileCardModel> cardsList = [
PatientProfileCardModel("Vital", "Signs", AppRoutes.vitalSigns, 'assets/images/svgs/profile_screen/vital signs.svg', isInPatient: isInpatient),
PatientProfileCardModel("Lab", "Result", "LAB_RESULT", 'assets/images/svgs/profile_screen/lab results.svg', isInPatient: isInpatient),
PatientProfileCardModel("Lab", "Special", "ALL_SPECIAL_LAB_RESULT", 'assets/images/svgs/profile_screen/lab results.svg', isInPatient: isInpatient),
PatientProfileCardModel("Radiology", "Service", "RADIOLOGY_PATIENT", 'assets/images/svgs/profile_screen/health summary.svg', isInPatient: isInpatient),
PatientProfileCardModel("Orders", "Prescription" + ' (old)', "ORDER_PRESCRIPTION_OLD", 'assets/images/svgs/profile_screen/order prescription.svg', isInPatient: isInpatient),
PatientProfileCardModel("Patient", "Prescription", "ORDER_PRESCRIPTION_NEW", 'assets/images/svgs/profile_screen/order prescription.svg', isInPatient: isInpatient),
PatientProfileCardModel("Health", "Summary", "HEALTH_SUMMARY", 'assets/images/svgs/profile_screen/health summary.svg', isInPatient: isInpatient),
PatientProfileCardModel("Patient", "ECG", "PATIENT_ECG", 'assets/images/svgs/profile_screen/ECG.svg', isInPatient: isInpatient),
PatientProfileCardModel("Orders", "Procedures", "ORDER_PROCEDURE", 'assets/images/svgs/profile_screen/Order Procedures.svg', isInPatient: isInpatient),
PatientProfileCardModel("Insurance", "Service", "PATIENT_INSURANCE_APPROVALS_NEW", 'assets/images/svgs/profile_screen/vital signs.svg', isInPatient: isInpatient),
PatientProfileCardModel("PatientSick", "Leave", "ADD_SICKLEAVE", 'assets/images/svgs/profile_screen/patient sick leave.svg', isInPatient: isInpatient),
// if (patient.appointmentNo != null && patient.appointmentNo != 0)
// PatientProfileCardModel(
// TranslationBase.of(context).patient,
// TranslationBase.of(context).ucaf,
// PATIENT_UCAF_REQUEST,
// 'assets/images/svgs/profile_screen/UCAF.svg',
// isInPatient: isInpatient,
// isDisable: patient.patientStatusType != 43 ? true : false),
// if (patient.appointmentNo != null && patient.appointmentNo != 0)
// PatientProfileCardModel(
// TranslationBase.of(context).referral,
// TranslationBase.of(context).patient,
// REFER_PATIENT_TO_DOCTOR,
// 'assets/images/svgs/profile_screen/refer patient.svg',
// isInPatient: isInpatient,
// isDisable: patient.patientStatusType != 43 ? true : false),
// if (patient.appointmentNo != null && patient.appointmentNo != 0)
// PatientProfileCardModel(
// TranslationBase.of(context).admission,
// TranslationBase.of(context).request,
// PATIENT_ADMISSION_REQUEST,
// 'assets/images/svgs/profile_screen/admission req.svg',
// isInPatient: isInpatient,
// isDisable: patient.patientStatusType != 43 ? true : false),
];
return GridView(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisSpacing: 10,
mainAxisSpacing: 8,
crossAxisCount: 3,
),
children: cardsList.map((item) {
return PatientProfileButton(
patient: patient,
model: item,
);
}).toList(),
);
}
}

@ -0,0 +1,218 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hmg_nurses/classes/date-utils.dart';
import 'package:hmg_nurses/classes/utils.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
import 'package:hmg_nurses/main.dart';
import 'package:hmg_nurses/widgets/commen/cusom_row.dart';
import 'package:sizer/sizer.dart';
import '../../../widgets/circular_avatar.dart';
class PatientCard extends StatelessWidget {
final String name;
final int gender;
final String nationalityName;
final String nationalityFlagURL;
final String fileNumber;
final String dateofBirth;
final String? arrivedOn;
final String? appointmentDate;
final String? admissionDate;
final String? clinicDescription;
final String? roomId;
final GestureTapCallback? onTap;
const PatientCard({
super.key,
required this.name,
required this.gender,
required this.nationalityName,
required this.nationalityFlagURL,
required this.fileNumber,
required this.dateofBirth,
this.arrivedOn,
this.appointmentDate,
this.admissionDate,
this.clinicDescription,
this.roomId,
this.onTap,
});
@override
Widget build(BuildContext context) {
return Container(
height: 120,
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(
Radius.circular(10.0),
),
border: Border.all(width: 1, color: const Color(0xffEFEFEF)),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
//spreadRadius: 5,
blurRadius: 27,
offset: const Offset(0, -3),
),
],
color: Colors.white,
),
child: InkWell(
onTap: onTap,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
height: double.infinity,
alignment: Alignment.center,
padding: const EdgeInsets.only(left: 2, right: 2),
decoration: BoxDecoration(
color: const Color(0xffD02127),
// isFromLiveCare
// ? Colors.white
// : (isMyPatient && !isFromSearch)
// ? AppGlobal.appGreenColor
// : patientInfo.patientStatusType == 43
// ? AppGlobal.appGreenColor
// : isMyPatient
// ? AppGlobal.appGreenColor
// : isInpatient
// ? Colors.white
// : !isFromSearch
// ? Colors.red[800]
// : Colors.white,
borderRadius: BorderRadius.only(
topLeft: appState.isArabic() ? const Radius.circular(0) : const Radius.circular(10),
bottomLeft: appState.isArabic() ? const Radius.circular(0) : const Radius.circular(10),
topRight: appState.isArabic() ? const Radius.circular(10) : const Radius.circular(0),
bottomRight: appState.isArabic() ? const Radius.circular(10) : const Radius.circular(0),
),
),
),
Expanded(
child: Container(
width: double.infinity,
height: double.infinity,
padding: const EdgeInsets.all(8),
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Utils.capitalize(name).toText12(),
Container(
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 2),
child: SvgPicture.asset(
gender == 1 ? "assets/images/svgs/male.svg" : "assets/images/svgs/female.svg",
),
)
// if (isFromLiveCare)
// ShowTimer(
// patientInfo: patientInfo,
// ),
],
),
if (nationalityName.isNotEmpty)
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
nationalityName.truncate(14).toTextAuto(
fontSize: 9,
color: const Color(0xFF2E303A),
textOverflow: TextOverflow.ellipsis,
),
nationalityFlagURL.isNotEmpty
? ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: CachedNetworkImage(
imageUrl: nationalityFlagURL ?? "",
height: 16,
width: 22,
errorWidget: (context, url, error) => "No Image".toText10(),
),
)
: const SizedBox()
],
),
],
),
12.height,
Row(
children: [
showGenderAvator(gender),
12.width,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CustomRow(
label: "File Number:",
value: fileNumber.toString(),
),
CustomRow(
label: "Age : ",
value: "${AppDateUtils.getAgeByBirthday(dateofBirth, context, isServerFormat: true)}",
),
arrivedOn != null
? CustomRow(
label: "Arrived On : ",
value: AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(
arrivedOn!,
),
isMonthShort: true,
),
)
: (appointmentDate != null && appointmentDate!.isNotEmpty)
? Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start,
children: [
CustomRow(
label: "Appointment Date : ",
value: AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(
appointmentDate!,
),
isMonthShort: true),
),
],
)
: const SizedBox(),
if (admissionDate != null)
CustomRow(
label: "Num Of Days : ",
value: "${DateTime.now().difference(AppDateUtils.getDateTimeFromServerFormat(admissionDate!)).inDays + 1}",
),
if (admissionDate != null)
CustomRow(
label: "Clinic Name : ",
value: "$clinicDescription",
),
if (admissionDate != null)
CustomRow(
label: "Room No : ",
value: "$roomId",
),
],
)
],
)
],
),
),
),
],
),
),
);
}
}

@ -0,0 +1,50 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import 'package:hmg_nurses/model/patient_profile_card_model.dart';
import 'package:sizer/sizer.dart';
class PatientProfileButton extends StatelessWidget {
GetPatientFileInformationPrmList patient;
PatientProfileCardModel model;
PatientProfileButton({super.key, required this.patient, required this.model});
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
Navigator.pushNamed(context, model.route, arguments: patient);
},
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.all(Radius.circular(15)),
border: Border.fromBorderSide(
BorderSide(
color: Colors.grey.withOpacity(0.4),
width: 1,
),
),
),
padding: const EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset(
model.icon,
width: 30,
height: 30,
),
12.height,
model.nameLine1.toTextAuto(fontSize: 10),
model.nameLine2.toTextAuto(fontSize: 10),
],
),
),
);
}
}

@ -0,0 +1,73 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:hmg_nurses/classes/date-utils.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart';
import 'package:hmg_nurses/widgets/circular_avatar.dart';
import 'package:hmg_nurses/widgets/commen/cusom_row.dart';
class PatientProfileHeader extends StatelessWidget {
GetPatientFileInformationPrmList patientProfile;
PatientProfileHeader(this.patientProfile);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
color: Colors.white,
padding: const EdgeInsets.only(top: 12, right: 21, left: 21, bottom: 21),
child: Row(
children: [
Expanded(
child: Row(
children: [
showGenderAvator(patientProfile.gender ?? 1),
12.width,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
(patientProfile.patientStatusType != null && patientProfile.patientStatusType == 43)
? "Arrived P".toText10(isBold: true)
: "Not Arrived".toText10(isBold: true, color: Colors.red[800]),
CustomRow(
label: "File Number:",
value: patientProfile.patientId.toString(),
),
CustomRow(
label: "Age : ",
value: AppDateUtils.getAgeByBirthday(patientProfile.dateofBirth ?? "", context, isServerFormat: true),
),
],
)
],
),
),
if (patientProfile.nationalityId != null)
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
(patientProfile.nationalityId ?? "").toTextAuto(
fontSize: 9,
color: const Color(0xFF2E303A),
textOverflow: TextOverflow.ellipsis,
),
if (patientProfile.nationalityFlagUrl != null && patientProfile.nationalityFlagUrl!.isNotEmpty)
ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: CachedNetworkImage(
imageUrl: patientProfile.nationalityFlagUrl ?? "",
height: 16,
width: 22,
errorWidget: (context, url, error) => "No Image".toText10(),
),
)
],
),
],
),
);
}
}

@ -6,12 +6,13 @@ import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
import 'package:hmg_nurses/extensions/widget_extensions.dart';
AppBar AppBarWidget(BuildContext context,
{required String title,
bool showHomeButton = true,
bool showNotificationButton = false,
bool showMemberButton = false,
String? image}) {
AppBar AppBarWidget(
BuildContext context, {
required String title,
String? image,
bool isNeedLeading = true,
List<Widget>? actions,
}) {
return AppBar(
leadingWidth: 0,
// leading: GestureDetector(
@ -22,49 +23,26 @@ AppBar AppBarWidget(BuildContext context,
//titleSpacing: -1.44,
title: Row(
children: [
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap:
Feedback.wrapForTap(() => Navigator.maybePop(context), context),
child:
const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor),
),
if (isNeedLeading)
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: Feedback.wrapForTap(() => Navigator.maybePop(context), context),
child: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor),
),
4.width,
if (image != null) SvgPicture.asset(
image,
height: 40,
width: 40,
),
if (image != null)
SvgPicture.asset(
image,
height: 40,
width: 40,
),
if (image != null) 14.width,
title.toText24(color: MyColors.darkTextColor, isBold: true).expanded,
title.toText16(color: MyColors.darkTextColor, isBold: true).expanded,
],
),
centerTitle: false,
elevation: 0,
backgroundColor: Colors.white,
actions: [
if (showHomeButton)
IconButton(
onPressed: () {
// Navigator.popUntil(
// context, ModalRoute.withName(AppRoutes.dashboard));
},
icon: const Icon(Icons.home, color: MyColors.darkIconColor),
),
if (showNotificationButton)
IconButton(
onPressed: () {
// Navigator.pushNamed(context, AppRoutes.worklistSettings);
},
icon: const Icon(Icons.notifications, color: MyColors.textMixColor),
),
if (showMemberButton)
IconButton(
onPressed: () {
// Navigator.pushNamed(context, AppRoutes.subordinateLeave);
},
icon: const Icon(Icons.people, color: MyColors.textMixColor),
),
],
actions: actions,
);
}

@ -5,8 +5,7 @@ import 'package:hmg_nurses/classes/colors.dart';
extension WithContainer on Widget {
Widget get insideContainer => Container(
color: Colors.white,
padding:
const EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21),
padding: const EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21),
child: this,
);
}
@ -57,8 +56,8 @@ class DefaultButton extends StatelessWidget {
: color == MyColors.yellowColorII
? const LinearGradient(
colors: <Color>[
MyColors.yellowColorII,
MyColors.yellowColorII,
MyColors.redColor,
MyColors.redColor,
],
)
: LinearGradient(
@ -67,8 +66,8 @@ class DefaultButton extends StatelessWidget {
end: Alignment.bottomLeft,
colors: colors ??
<Color>[
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
MyColors.redColor,
MyColors.redColor,
],
),
),
@ -76,8 +75,7 @@ class DefaultButton extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
if (iconData != null) Icon(iconData, color: textColor),
if (svgIcon != null)
SvgPicture.asset(svgIcon ?? "", color: textColor),
if (svgIcon != null) SvgPicture.asset(svgIcon ?? "", color: textColor),
if (!isTextExpanded)
Padding(
padding: EdgeInsets.only(

@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
class CircularAvatar extends StatelessWidget {
final String? url;
@ -39,3 +40,15 @@ class CircularAvatar extends StatelessWidget {
);
}
}
Widget showGenderAvator(
int gender, {
double size = 60,
}) {
return SvgPicture.asset(
gender == 1 ? 'assets/images/svgs/male avatar.svg' : 'assets/images/svgs/female avatar.svg',
fit: BoxFit.cover,
height: size,
width: size,
);
}

@ -0,0 +1,52 @@
import 'package:flutter/material.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
class CustomRow extends StatelessWidget {
const CustomRow({super.key,
required this.label,
required this.value,
this.labelSize,
this.valueSize,
this.width,
this.isCopyable = true,
this.isExpanded = false,
this.labelColor,
this.valueColor,
});
final String label;
final String value;
final double? labelSize;
final double? valueSize;
final double? width;
final bool isCopyable;
final bool isExpanded;
final Color? labelColor;
final Color? valueColor;
@override
Widget build(BuildContext context) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
label.toTextAuto(
fontSize: labelSize ?? 10,
color: labelColor ?? const Color(0xFF575757),
letterSpacing: -0.4,
),
const SizedBox(
width: 1,
),
Expanded(
flex: isExpanded ? 1 : 0,
child: value.toTextAuto(
fontSize: valueSize ?? 10,
color: valueColor ?? const Color(0xFF2B353E),
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
),
),
],
);
}
}

@ -0,0 +1,38 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
class ErrorMessage extends StatelessWidget {
String? errorMessage;
ErrorMessage({this.errorMessage});
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 100,
),
SvgPicture.asset('assets/images/svgs/no_data.svg'),
Center(
child: Center(
child: Padding(
padding: const EdgeInsets.only(top: 12, bottom: 12, right: 20, left: 30),
child: Center(
child: (errorMessage ?? "").toText16(
textAlign: TextAlign.center,
),
),
),
),
)
],
),
),
);
}
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,407 @@
/// Flutter icons DoctorApp
/// Copyright (C) 2021 by original authors @ fluttericon.com, fontello.com
/// This font was generated by FlutterIcon.com, which is derived from Fontello.
///
/// To use this font, place it in your fonts/ directory and include the
/// following in your pubspec.yaml
///
/// flutter:
/// fonts:
/// - family: DoctorApp
/// fonts:
/// - asset: fonts/DoctorApp.ttf
///
///
/// * MFG Labs, Copyright (C) 2012 by Daniel Bruce
/// Author: MFG Labs
/// License: SIL (http://scripts.sil.org/OFL)
/// Homepage: http://www.mfglabs.com/
///
import 'package:flutter/widgets.dart';
class DoctorApp {
DoctorApp._();
static const _kFontFam = 'DoctorApp';
static const String _kFontPkg = "";
static const IconData female_icon =
IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male =
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reject_icon =
IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon_active =
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon =
IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon_active =
IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon =
IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon_active =
IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData scdedule_icon_active =
IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_icon =
IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData discharge_patient =
IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData approved_icon =
IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData pending_icon =
IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData in_patient_white =
IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData lab_results =
IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon =
IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral_1 =
IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData progress_notes =
IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon_1 =
IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData operations =
IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData out_patient =
IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData patient =
IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code =
IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData radiology =
IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral =
IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male_2 =
IconData(0xe819, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_patient =
IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData female_1 =
IconData(0xe81b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_icon_active_1 =
IconData(0xe81c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon_1 =
IconData(0xe81d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData mail =
IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData medicine_search =
IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code_1 =
IconData(0xe820, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_1 =
IconData(0xe821, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referred =
IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData send =
IconData(0xe823, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData sync_icon =
IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData drawer_icon =
IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData view =
IconData(0xe826, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData warning =
IconData(0xe827, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData add =
IconData(0xe828, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData close =
IconData(0xe829, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData back =
IconData(0xe82a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_summary =
IconData(0xe82b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData powered_by_cs =
IconData(0xe82c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code_2 =
IconData(0xe82d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ecg =
IconData(0xe82e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData create_episode =
IconData(0xe82f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData booked =
IconData(0xe830, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData admission_req =
IconData(0xe831, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData walkin =
IconData(0xe832, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reschedule_ =
IconData(0xe833, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData edit =
IconData(0xe834, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData leaves =
IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData logout =
IconData(0xe837, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi =
IconData(0xe838, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData livecare =
IconData(0xe839, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi =
IconData(0xe83a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi_r =
IconData(0xe83b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData modify_episode =
IconData(0xe83c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height =
IconData(0xe83d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi_r =
IconData(0xe83e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi =
IconData(0xe83f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_prescription =
IconData(0xe840, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_procedures =
IconData(0xe841, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi_r =
IconData(0xe842, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData respiration_rate =
IconData(0xe843, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData patient_sick_leave =
IconData(0xe844, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData progress_notes_1 =
IconData(0xe845, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData temperature =
IconData(0xe846, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi =
IconData(0xe847, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData radiology_1 =
IconData(0xe848, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_patient_1 =
IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral_bg =
IconData(0xe84a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search =
IconData(0xe84b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_bg =
IconData(0xe84c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrival_patients =
IconData(0xe84d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrival_patients_bg =
IconData(0xe84e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData refer_patient =
IconData(0xe84f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi_r =
IconData(0xe850, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight =
IconData(0xe851, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_pressure =
IconData(0xe852, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_signs =
IconData(0xe853, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ucaf =
IconData(0xe854, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData filter =
IconData(0xe855, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male_1 =
IconData(0xe856, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData female =
IconData(0xe857, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData external_link =
IconData(0xe858, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face_2 =
IconData(0xe859, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms_2 =
IconData(0xe85a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home =
IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger_2 =
IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_active =
IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply =
IconData(0xe85e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_active =
IconData(0xe85f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule =
IconData(0xe860, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader_active =
IconData(0xe861, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader =
IconData(0xe862, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_active =
IconData(0xe863, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrow_forward =
IconData(0xe864, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData heart_rate =
IconData(0xe865, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData menu_icon_active_1 =
IconData(0xe866, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon_1 =
IconData(0xe867, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message_icon_active_1 =
IconData(0xe868, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData scdedule_icon_active_1 =
IconData(0xe869, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi_r_1 =
IconData(0xe86a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi_1 =
IconData(0xe86b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData temperature_1 =
IconData(0xe86c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData underweight_bmi_r_1 =
IconData(0xe86d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_1 =
IconData(0xe86e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_pressure_1 =
IconData(0xe86f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi_r_1 =
IconData(0xe870, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_bmi_1 =
IconData(0xe871, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData heart_rate_1 =
IconData(0xe872, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height_1 =
IconData(0xe873, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi_1 =
IconData(0xe874, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ovrweight_bmi_1 =
IconData(0xe875, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData respiration_rate_1 =
IconData(0xe876, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_code_3 =
IconData(0xe877, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reschedule__1 =
IconData(0xe878, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData logout_1 =
IconData(0xe879, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData livecare_1 =
IconData(0xe87a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData modify_episode_1 =
IconData(0xe87b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_prescription_1 =
IconData(0xe87c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_procedures_1 =
IconData(0xe87d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData patient_sick_leave_1 =
IconData(0xe87e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData progress_notes_2 =
IconData(0xe87f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData radiology_2 =
IconData(0xe880, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData refer_patient_1 =
IconData(0xe881, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ucaf_1 =
IconData(0xe882, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_signs_1 =
IconData(0xe883, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData walkin_1 =
IconData(0xe884, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData admission_req_1 =
IconData(0xe885, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData booked_1 =
IconData(0xe886, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData create_episode_1 =
IconData(0xe887, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData ecg_1 =
IconData(0xe888, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData health_summary_1 =
IconData(0xe889, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData lab_results_1 =
IconData(0xe88a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData female_2 =
IconData(0xe88b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData filter_1 =
IconData(0xe88c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData male_3 =
IconData(0xe88d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_2 =
IconData(0xe88e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData send_1 =
IconData(0xe88f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData view_1 =
IconData(0xe890, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData warning_1 =
IconData(0xe891, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData add_1 =
IconData(0xe892, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData arrow_forward_1 =
IconData(0xe893, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData back_1 =
IconData(0xe894, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData close_1 =
IconData(0xe895, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData edit_1 =
IconData(0xe896, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData external_link_1 =
IconData(0xe897, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger_1 =
IconData(0xe898, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms_1 =
IconData(0xe899, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face_1 =
IconData(0xe89a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader_1 =
IconData(0xe89b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr_reader_active_1 =
IconData(0xe89c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_1 =
IconData(0xe89d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_active_1 =
IconData(0xe89e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_1 =
IconData(0xe89f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_active_1 =
IconData(0xe8a0, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_1 =
IconData(0xe8a1, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_active_1 =
IconData(0xe8a2, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face =
IconData(0xe8a3, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger =
IconData(0xe8a4, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_whtsapp =
IconData(0xe8a5, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms =
IconData(0xe8a6, fontFamily: _kFontFam, fontPackage: _kFontPkg);
/// static const IconData 124 = IconData(0xe8a7, fontFamily: _kFontFam, fontPackage: _kFontPkg);
///static const IconData 123 = IconData(0xe8a8, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData obese_bmi_r_1 =
IconData(0xe8a9, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData end_call =
IconData(0xe8d4, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData end_consultaion =
IconData(0xe8d5, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData folder_open =
IconData(0xe8d6, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData folder =
IconData(0xe8d7, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData link_in =
IconData(0xe8d8, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData link_out =
IconData(0xe8d9, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData mute_microphone =
IconData(0xe8da, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData no_video =
IconData(0xe8db, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData send_instruction =
IconData(0xe8dc, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData transfer_to_admin =
IconData(0xe8dd, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData inpatient =
IconData(0xe959, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData discharge =
IconData(0xe95a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData order_sheets =
IconData(0xe95b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData call =
IconData(0xe95c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData medical_report =
IconData(0xe95d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData painscale =
IconData(0xe95e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData oxygenation =
IconData(0xe95f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData speechtotext =
IconData(0xe960, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_medicines =
IconData(0xe964, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData discharge_patients =
IconData(0xe965, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData referral_discharge =
IconData(0xe966, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:hmg_nurses/classes/colors.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/widget_extensions.dart';
@ -9,6 +10,7 @@ class CustomTextField extends StatefulWidget {
final String? hintText;
final TextEditingController controller;
final VoidCallback? suffixTap;
final IconData? suffixIcon;
final bool isEnable;
final bool hasSelection;
final int? lines;
@ -23,13 +25,15 @@ class CustomTextField extends StatefulWidget {
final Function(String)? onSubmit;
final Function? onClick;
final FocusNode? focusNode;
List<TextInputFormatter>? inputFormatters;
const CustomTextField(
CustomTextField(
this.labelText,
this.controller, {
Key? key,
this.isTextIsPassword = false,
this.suffixTap,
this.suffixIcon,
this.hintText,
this.isEnable = true,
this.hasSelection = false,
@ -44,6 +48,7 @@ class CustomTextField extends StatefulWidget {
this.focusNode,
this.verticalPadding = 15,
this.horizontalPadding = 16,
this.inputFormatters,
}) : super(key: key);
@override
@ -71,8 +76,7 @@ class CustomTextFieldState extends State<CustomTextField> {
return InkWell(
onTap: () {
focusNode.requestFocus();
if(widget.hasSelection)
widget.onClick!();
if (widget.hasSelection) widget.onClick!();
},
child: Container(
padding: EdgeInsets.only(left: widget.horizontalPadding, right: widget.horizontalPadding, bottom: widget.verticalPadding, top: widget.verticalPadding),
@ -112,6 +116,7 @@ class CustomTextFieldState extends State<CustomTextField> {
onChanged: widget.onChange,
onEditingComplete: widget.onEditComplete,
onSubmitted: widget.onSubmit,
inputFormatters: widget.inputFormatters,
style: const TextStyle(
fontSize: 14,
height: 21 / 14,
@ -130,7 +135,7 @@ class CustomTextFieldState extends State<CustomTextField> {
letterSpacing: -0.56,
),
suffixIconConstraints: const BoxConstraints(minWidth: 50),
suffixIcon: widget.suffixTap == null ? null : IconButton(icon: const Icon(Icons.mic, color: MyColors.darkTextColor), onPressed: widget.suffixTap),
suffixIcon: widget.suffixTap == null ? null : IconButton(icon: Icon(Icons.mic, color: MyColors.darkTextColor), onPressed: widget.suffixTap),
contentPadding: EdgeInsets.zero,
border: InputBorder.none,
focusedBorder: InputBorder.none,
@ -149,6 +154,7 @@ class CustomTextFieldState extends State<CustomTextField> {
})
],
if (widget.hasSelection) const Icon(Icons.keyboard_arrow_down_outlined),
if (widget.suffixIcon != null && widget.suffixTap == null) Icon(widget.suffixIcon!),
],
),
),

@ -36,6 +36,27 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
url: "https://pub.dartlang.org"
source: hosted
version: "3.2.3"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
characters:
dependency: transitive
description:
@ -167,6 +188,20 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_blurhash:
dependency: transitive
description:
name: flutter_blurhash
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
url: "https://pub.dartlang.org"
source: hosted
version: "3.3.0"
flutter_lints:
dependency: "direct dev"
description:
@ -301,6 +336,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
octo_image:
dependency: transitive
description:
name: octo_image
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
path:
dependency: transitive
description:
@ -371,6 +413,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.3"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
permission_handler:
dependency: "direct main"
description:
@ -441,6 +490,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.4"
rxdart:
dependency: transitive
description:
name: rxdart
url: "https://pub.dartlang.org"
source: hosted
version: "0.27.7"
shared_preferences:
dependency: "direct main"
description:
@ -523,6 +579,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.0"
sqflite:
dependency: transitive
description:
name: sqflite
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0+3"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0+2"
stack_trace:
dependency: transitive
description:
@ -544,6 +614,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
synchronized:
dependency: transitive
description:
name: synchronized
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0+3"
term_glyph:
dependency: transitive
description:
@ -572,6 +649,69 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.4"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.7"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.22"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.17"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.13"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
uuid:
dependency: transitive
description:
name: uuid
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.7"
vector_math:
dependency: transitive
description:
@ -602,4 +742,4 @@ packages:
version: "6.1.0"
sdks:
dart: ">=2.18.2 <3.0.0"
flutter: ">=3.0.0"
flutter: ">=3.3.0"

@ -52,6 +52,8 @@ dependencies:
local_auth: ^1.1.9
# get_it: ^7.2.0
hexcolor: ^2.0.4
cached_network_image: ^3.2.3
url_launcher: ^6.1.7
@ -85,6 +87,10 @@ flutter:
assets:
- assets/
- assets/langs/
- assets/images/svgs/
- assets/images/svgs/profile_screen/
- assets/images/svgs/bottom_nav/
- assets/images/svgs/verification/
- assets/images/login/
- assets/images/patient/
- assets/images/

Loading…
Cancel
Save