merge-requests/114/head
hussam alhababieh 4 years ago
commit 097d8df8c0

@ -0,0 +1,37 @@
<svg id="discharge_patient" xmlns="http://www.w3.org/2000/svg" width="39.515" height="36.042" viewBox="0 0 39.515 36.042">
<g id="Group_339" data-name="Group 339" transform="translate(0 3.859)">
<g id="Group_338" data-name="Group 338">
<path id="Path_150" data-name="Path 150" d="M38.936,101.209H38.2V93.684a2.9,2.9,0,0,0-2.894-2.894H33.514a2.9,2.9,0,0,0-1.1-1.735V82.494a2.125,2.125,0,0,0-2.122-2.122H26.433a2.125,2.125,0,0,0-2.122,2.122v4.245a.579.579,0,1,0,1.158,0V82.494a.966.966,0,0,1,.965-.965h3.859a.966.966,0,0,1,.965.965v6.04a2.9,2.9,0,0,0-.579-.058H23.153V85.349a2.9,2.9,0,0,0-2.894-2.894H15.05V80.024A2.125,2.125,0,0,0,12.927,77.9H9.068a2.126,2.126,0,0,0-2.036,1.523,6.374,6.374,0,0,1-5.875-6.346.579.579,0,0,0-1.158,0,7.535,7.535,0,0,0,6.946,7.5v7.161A4.038,4.038,0,0,0,8.1,90.573v5.867l-3.375,5.025a.579.579,0,0,0-.1.323V104.1a.579.579,0,0,0,1.158,0v-2.139L9.163,96.94a.578.578,0,0,0,.1-.323V91.4a4.045,4.045,0,0,0,3.473,0v11.93a.579.579,0,0,0,.4.549l2.315.772a.579.579,0,1,0,.366-1.1l-1.919-.64V90.573a4.038,4.038,0,0,0,1.158-2.832V83.613h5.21A1.738,1.738,0,0,1,22,85.349V91.2a6.749,6.749,0,1,0,7.2,5.377h3.223v2.374a2.894,2.894,0,1,0,3.415,3.415h3.107a.579.579,0,0,0,0-1.158ZM11,90.636A2.9,2.9,0,0,1,8.162,88.32h5.672A2.9,2.9,0,0,1,11,90.636Zm2.894-3.473H8.1V80.024a.966.966,0,0,1,.965-.965h1.351V80.8a.579.579,0,0,0,1.158,0V79.059h1.351a.966.966,0,0,1,.965.965Zm11.577,2.47h5.21a1.738,1.738,0,0,1,1.737,1.737v1.737H28.363a2.9,2.9,0,0,1-2.894-2.894Zm-2.315,0h1.158v.579a4.035,4.035,0,0,0,.2,1.247,6.705,6.705,0,0,0-1.355-.258Zm-.579,13.892a5.6,5.6,0,1,1,5.6-5.6A5.6,5.6,0,0,1,22.575,103.525Zm6.27-8.1a6.741,6.741,0,0,0-.6-1.158h4.171v1.158Zm4.149,8.1a1.737,1.737,0,1,1,1.737-1.737A1.738,1.738,0,0,1,32.994,103.525Zm4.052-2.315H35.83a2.9,2.9,0,0,0-2.257-2.257v-7h1.737a1.738,1.738,0,0,1,1.737,1.736Z" transform="translate(0 -72.499)"/>
</g>
</g>
<g id="Group_341" data-name="Group 341" transform="translate(21.996 2.47)">
<g id="Group_340" data-name="Group 340">
<path id="Path_151" data-name="Path 151" d="M291.367,54.5a4.058,4.058,0,0,0-3.935,3.089,2.508,2.508,0,1,0,1.751,4.373,4.051,4.051,0,1,0,2.184-7.462Zm0,1.158A2.9,2.9,0,0,1,294.2,57.94a6.3,6.3,0,0,1-4.036-2.018A2.875,2.875,0,0,1,291.367,55.657Zm-3.859,5.788a1.35,1.35,0,0,1-.188-2.687,4.033,4.033,0,0,0,.976,2.432A1.349,1.349,0,0,1,287.508,61.445Zm3.859,0a2.893,2.893,0,0,1-2.146-4.834,7.445,7.445,0,0,0,4.986,2.493A2.9,2.9,0,0,1,291.367,61.445Z" transform="translate(-285 -54.499)"/>
</g>
</g>
<g id="Group_343" data-name="Group 343" transform="translate(22.162 29.069)">
<g id="Group_342" data-name="Group 342" transform="translate(0 0)">
<ellipse id="Ellipse_143" data-name="Ellipse 143" cx="0.869" rx="0.869"/>
</g>
</g>
<g id="Group_345" data-name="Group 345" transform="translate(18.137 24.851)">
<g id="Group_344" data-name="Group 344">
<path id="Path_152" data-name="Path 152" d="M239.438,344.5a4.438,4.438,0,1,0,4.438,4.438A4.443,4.443,0,0,0,239.438,344.5Zm0,7.718a3.28,3.28,0,1,1,3.28-3.28A3.284,3.284,0,0,1,239.438,352.217Z" transform="translate(-235 -344.499)"/>
</g>
</g>
<g id="Group_347" data-name="Group 347" transform="translate(32.589 32.545)">
<g id="Group_346" data-name="Group 346" transform="translate(0 0)">
<circle id="Ellipse_144" data-name="Ellipse 144" cx="0.869" cy="0.869" r="0.869"/>
</g>
</g>
<g id="Group_349" data-name="Group 349" transform="translate(9.261 3.473)">
<g id="Group_348" data-name="Group 348">
<path id="Path_153" data-name="Path 153" d="M122.894,68.1a.838.838,0,0,1-.684-.356.579.579,0,0,0-.947,0,.838.838,0,0,1-.684.356.579.579,0,1,0,0,1.158,2,2,0,0,0,1.158-.371,2,2,0,0,0,1.158.371.579.579,0,1,0,0-1.158Z" transform="translate(-120 -67.499)"/>
</g>
</g>
<g id="Group_351" data-name="Group 351" transform="translate(6.946)">
<g id="Group_350" data-name="Group 350">
<path id="Path_154" data-name="Path 154" d="M94.052,22.5A4.052,4.052,0,1,0,98.1,26.551,4.056,4.056,0,0,0,94.052,22.5Zm0,6.946a2.894,2.894,0,1,1,2.894-2.894A2.9,2.9,0,0,1,94.052,29.445Z" transform="translate(-90 -22.499)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.959" height="29.962" viewBox="0 0 29.959 29.962">
<path id="home_icon" d="M29.654,13.032l0,0L17.429.808a2.758,2.758,0,0,0-3.9,0L1.313,13.023l-.012.013a2.757,2.757,0,0,0,1.835,4.7c.028,0,.057,0,.085,0h.487v8.994a3.232,3.232,0,0,0,3.228,3.228h4.782a.878.878,0,0,0,.878-.878V22.032a1.475,1.475,0,0,1,1.473-1.473h2.82a1.474,1.474,0,0,1,1.473,1.473v7.052a.878.878,0,0,0,.878.878h4.782a3.232,3.232,0,0,0,3.228-3.228V17.739H27.7a2.759,2.759,0,0,0,1.952-4.708ZM28.411,15.69a1,1,0,0,1-.709.294H26.372a.878.878,0,0,0-.878.878v9.872a1.474,1.474,0,0,1-1.473,1.473h-3.9V22.032A3.232,3.232,0,0,0,16.889,18.8h-2.82a3.232,3.232,0,0,0-3.229,3.228v6.174h-3.9a1.474,1.474,0,0,1-1.473-1.473V16.862a.878.878,0,0,0-.878-.878H3.279l-.041,0a1,1,0,0,1-.691-1.711h0L14.77,2.049a1,1,0,0,1,1.418,0L28.407,14.268l.006.005A1,1,0,0,1,28.411,15.69Zm0,0" transform="translate(-0.499)"/>
</svg>

After

Width:  |  Height:  |  Size: 913 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.959" height="29.961" viewBox="0 0 29.959 29.961">
<path id="home_icon_active" d="M29.654,13.032l0,0L17.429.808a2.758,2.758,0,0,0-3.9,0L1.313,13.023l-.012.013a2.757,2.757,0,0,0,1.835,4.7c.028,0,.057,0,.085,0h.487v8.994a3.232,3.232,0,0,0,3.228,3.228h4.782a.878.878,0,0,0,.878-.878V22.032a1.475,1.475,0,0,1,1.473-1.473h2.82a1.474,1.474,0,0,1,1.473,1.473v7.052a.878.878,0,0,0,.878.878h4.782a3.232,3.232,0,0,0,3.228-3.228V17.739H27.7a2.759,2.759,0,0,0,1.952-4.708ZM28.411,15.69a1,1,0,0,1-.709.294H26.372a.878.878,0,0,0-.878.878v9.872a1.474,1.474,0,0,1-1.473,1.473h-3.9V22.032A3.232,3.232,0,0,0,16.889,18.8h-2.82a3.232,3.232,0,0,0-3.229,3.228v6.174h-3.9a1.474,1.474,0,0,1-1.473-1.473V16.862a.878.878,0,0,0-.878-.878H3.279l-.041,0a1,1,0,0,1-.691-1.711h0L14.77,2.049a1,1,0,0,1,1.418,0L28.407,14.268l.006.005A1,1,0,0,1,28.411,15.69Zm0,0" transform="translate(-0.5)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 930 B

@ -0,0 +1,6 @@
<svg id="in_patient_white" xmlns="http://www.w3.org/2000/svg" width="37.21" height="30.421" viewBox="0 0 37.21 30.421">
<circle id="Ellipse_138" data-name="Ellipse 138" cx="0.659" cy="0.659" r="0.659" transform="translate(12.182 9.632) rotate(-5.682)"/>
<circle id="Ellipse_139" data-name="Ellipse 139" cx="0.659" cy="0.659" r="0.659" transform="translate(16.665 9.63) rotate(-5.682)"/>
<path id="Path_67" data-name="Path 67" d="M188.5,219.565H186.52a.55.55,0,1,0,0,1.1H188.5a.55.55,0,0,0,0-1.1Z" transform="translate(-172.455 -207.002)"/>
<path id="Path_68" data-name="Path 68" d="M36.175,49.19h-1.66V47.8h2.145a.55.55,0,0,0,0-1.1H8.408a.55.55,0,0,0,0,1.1H33.415V49.19h-1.66a1.035,1.035,0,0,0-1.034,1.034v4.783a3.246,3.246,0,0,0,1.69,2.847l-.359.577a2.948,2.948,0,0,0-.13,2.864l1.493,2.97a1.842,1.842,0,0,1-.38,2.155L30.3,68.891v-10.6a1.537,1.537,0,0,0-1.535-1.535H27.178a5.358,5.358,0,0,0-.184-.794,1.373,1.373,0,0,1-.032-.7l.405-1.88a1.072,1.072,0,0,0-1.274-1.273c-.57.075-1.964.569-2.545.356a5.392,5.392,0,0,0-.664-.174.55.55,0,0,0-.21,1.079,4.277,4.277,0,0,1,.527.138,2.465,2.465,0,0,0,1.3.069l1.786-.385-.4,1.838c-.206.788.27,1.637.254,2.548v5.685a4.283,4.283,0,0,1-.2,1.3,2.453,2.453,0,0,0-.091.408A6.988,6.988,0,0,0,21.2,63.208H18.846v-.54a5.31,5.31,0,0,0,1.526-2.8,3.008,3.008,0,0,0,1.719-1.849A2.109,2.109,0,0,0,20.9,55.3h0a1.337,1.337,0,0,0-.428-.067V52.613a2.9,2.9,0,0,0-2.895-2.895H12.7a2.9,2.9,0,0,0-2.864,2.476H8.425c-.777-.079-1.563.392-2.412.311l-1.828-.394a1.072,1.072,0,0,0-1.273,1.274l.405,1.88a1.372,1.372,0,0,1-.032.7,5.355,5.355,0,0,0-.184.794H1.707V48.989A1.186,1.186,0,0,1,2.891,47.8H5.88a.55.55,0,0,0,0-1.1H2.891A2.286,2.286,0,0,0,.607,48.989v8.084A1.532,1.532,0,0,0,0,58.293L.014,76.165a.962.962,0,0,0,.961.961H29.332a.962.962,0,0,0,.961-.961l.008-5.791,3.474-3.143.007-.007A2.947,2.947,0,0,0,34.4,63.77L32.9,60.8a1.842,1.842,0,0,1,.081-1.789l.5-.8a3.255,3.255,0,0,0,.484.036h0a3.245,3.245,0,0,0,2.774-1.563,3.4,3.4,0,0,0,.47-1.681V50.224A1.035,1.035,0,0,0,36.175,49.19Zm-6.972,9.1V69.886l-.6.544q-.188-.17-.382-.331A6.973,6.973,0,0,0,27.151,66.5a3.551,3.551,0,0,1-.162-1.609,5.379,5.379,0,0,0,.252-1.63V57.857h1.526a.436.436,0,0,1,.436.436Zm-16.67,5.192a5.328,5.328,0,0,0,5.213,0v1a.452.452,0,0,1-.451.451H12.984a.452.452,0,0,1-.451-.451Zm8.028-7.142a1.02,1.02,0,0,1,.485,1.334c-.187.575-.774,1.159-1.185,1.18a.55.55,0,0,0-.518.484,4.233,4.233,0,0,1-8.406,0,.55.55,0,0,0-.518-.484c-.411-.021-1-.605-1.185-1.18a1.02,1.02,0,0,1,.485-1.334.2.2,0,0,1,.058-.013c.036,0,.068.026.132.116a.549.549,0,0,0,.615.2c.284-.081.436-.481.382-.863a2.114,2.114,0,0,1,2.112-2.112h4.245a2.114,2.114,0,0,1,2.112,2.112c-.012.293-.034.683.382.863a.549.549,0,0,0,.615-.2c.095-.133.119-.125.19-.1Zm-9.656-3.731a1.8,1.8,0,0,1,1.8-1.8h4.878a1.8,1.8,0,0,1,1.8,1.8v.759a3.2,3.2,0,0,0-2.112-.795H13.017a3.2,3.2,0,0,0-2.112.795Zm-5.123.967a2.469,2.469,0,0,0,1.3-.069,4.271,4.271,0,0,1,1.348-.217H9.806v1.938a1.33,1.33,0,0,0-.428.067,2.109,2.109,0,0,0-1.19,2.719,3.006,3.006,0,0,0,1.719,1.849,5.31,5.31,0,0,0,1.526,2.8v.54H9.075a6.988,6.988,0,0,0-4.646,1.763,2.458,2.458,0,0,0-.091-.408,4.283,4.283,0,0,1-.2-1.3V57.58c-.047-.786.458-1.643.254-2.548L4,53.195ZM1.1,58.293a.436.436,0,0,1,.436-.436h1.5v5.409A5.379,5.379,0,0,0,3.29,64.9,3.7,3.7,0,0,1,3.128,66.5a6.973,6.973,0,0,0-1.069,3.6q-.329.274-.641.572a4.505,4.505,0,0,0-.319.339V58.293ZM29.194,76.027H1.113V73.968a3.477,3.477,0,0,1,1.065-2.5,10.937,10.937,0,0,1,5.46-2.843.55.55,0,1,0-.212-1.079,12,12,0,0,0-4.185,1.69,5.927,5.927,0,0,1,5.834-4.931h2.359v.176a1.552,1.552,0,0,0,1.55,1.55H17.3a1.552,1.552,0,0,0,1.55-1.55v-.176H21.2a5.927,5.927,0,0,1,5.833,4.924,12.017,12.017,0,0,0-6.524-1.911H10.1a.55.55,0,1,0,0,1.1H20.513a10.918,10.918,0,0,1,6.807,2.363l.016.012q.414.329.8.7a3.482,3.482,0,0,1,1.059,2.493v2.037ZM36.11,50.289v1.516H31.82V50.289Zm-.169,5.551a2.237,2.237,0,0,1-1.976,1.311,2.147,2.147,0,0,1-2.145-2.145V52.9h4.29v2.1A2.138,2.138,0,0,1,35.941,55.841Z" transform="translate(0 -46.705)"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

@ -0,0 +1,20 @@
<svg id="lab_results" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
<path id="Path_132" data-name="Path 132" d="M112.9,288H112a1.357,1.357,0,0,0,1.355,1.355v-.9A.452.452,0,0,1,112.9,288Zm0,0" transform="translate(-105.677 -271.742)" fill="#fff"/>
<path id="Path_133" data-name="Path 133" d="M208,376h.9v.9H208Zm0,0" transform="translate(-196.258 -354.774)" fill="#fff"/>
<path id="Path_134" data-name="Path 134" d="M144,408h.9v.9H144Zm0,0" transform="translate(-135.871 -384.968)" fill="#fff"/>
<path id="Path_135" data-name="Path 135" d="M88,448h.9v.9H88Zm0,0" transform="translate(-83.032 -422.71)" fill="#fff"/>
<path id="Path_136" data-name="Path 136" d="M200,440h.9v.9H200Zm0,0" transform="translate(-188.71 -415.161)" fill="#fff"/>
<path id="Path_137" data-name="Path 137" d="M120,360h.9v.9H120Zm0,0" transform="translate(-113.226 -339.677)" fill="#fff"/>
<path id="Path_138" data-name="Path 138" d="M8.129,0V6.323H3.613a.9.9,0,0,0-.9.9v.9a.9.9,0,0,0,.9.9v3.2a2.285,2.285,0,0,1-.1.676L.141,23.859A3.2,3.2,0,0,0,3.2,28H28V0ZM3.613,7.226h8.129v.9H3.613Zm8.129,1.806a.9.9,0,0,0,.9-.9v-.9a.9.9,0,0,0-.9-.9h-.9V2.71h7.226V9.935H11.742ZM4.375,13.173a3.2,3.2,0,0,0,.141-.941v-3.2h6.323v3.2a3.2,3.2,0,0,0,.141.941l1.227,3.988h-1.5a3.157,3.157,0,0,0,.133-.9v-.153a3.163,3.163,0,0,0-.451-1.627L7.677,9.961,4.967,14.479a3.161,3.161,0,0,0-.451,1.626v.153a3.142,3.142,0,0,0,.133.9h-1.5Zm3.3,5.343a2.261,2.261,0,0,1-2.258-2.258v-.153a2.257,2.257,0,0,1,.322-1.162l1.936-3.228,1.936,3.227a2.26,2.26,0,0,1,.322,1.162v.153A2.261,2.261,0,0,1,7.677,18.516ZM3.2,27.1a2.275,2.275,0,0,1-2.255-2.71H4.065v-.9H1.2l.278-.9H5.419v-.9H1.758l.278-.9H4.065v-.9H2.314l.556-1.806H5.087a3.154,3.154,0,0,0,5.181,0h2.217l1.865,6.06A2.3,2.3,0,0,1,12.155,27.1Zm23.9,0H14.378a3.192,3.192,0,0,0,.836-3.238L11.844,12.908a2.285,2.285,0,0,1-.1-.676V10.839h7.226V1.806H9.935V6.323h-.9V.9H27.1Zm0,0" fill="#fff"/>
<path id="Path_139" data-name="Path 139" d="M292.968,288a4.968,4.968,0,1,0,4.968,4.968A4.974,4.974,0,0,0,292.968,288Zm0,9.032a4.065,4.065,0,1,1,4.064-4.064A4.069,4.069,0,0,1,292.968,297.032Zm0,0" transform="translate(-271.742 -271.742)" fill="#fff"/>
<path id="Path_140" data-name="Path 140" d="M332.065,328h-2.71v1.355H328v2.71h1.355v1.355h2.71v-1.355h1.355v-2.71h-1.355Zm.452,2.258v.9h-1.355v1.355h-.9v-1.355H328.9v-.9h1.355V328.9h.9v1.355Zm0,0" transform="translate(-309.484 -309.484)" fill="#fff"/>
<path id="Path_141" data-name="Path 141" d="M352,40h.9v.9H352Zm0,0" transform="translate(-332.129 -37.742)" fill="#fff"/>
<path id="Path_142" data-name="Path 142" d="M384,40h4.516v.9H384Zm0,0" transform="translate(-362.323 -37.742)" fill="#fff"/>
<path id="Path_143" data-name="Path 143" d="M352,104h.9v.9H352Zm0,0" transform="translate(-332.129 -98.129)" fill="#fff"/>
<path id="Path_144" data-name="Path 144" d="M384,104h4.516v.9H384Zm0,0" transform="translate(-362.323 -98.129)" fill="#fff"/>
<path id="Path_145" data-name="Path 145" d="M352,72h6.323v.9H352Zm0,0" transform="translate(-332.129 -67.935)" fill="#fff"/>
<path id="Path_146" data-name="Path 146" d="M352,136h6.323v.9H352Zm0,0" transform="translate(-332.129 -128.323)" fill="#fff"/>
<path id="Path_147" data-name="Path 147" d="M352,168h6.323v.9H352Zm0,0" transform="translate(-332.129 -158.516)" fill="#fff"/>
<path id="Path_148" data-name="Path 148" d="M240,224h12.645v.9H240Zm0,0" transform="translate(-226.452 -211.355)" fill="#fff"/>
<path id="Path_149" data-name="Path 149" d="M240,256h12.645v.9H240Zm0,0" transform="translate(-226.452 -241.548)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -0,0 +1,22 @@
<svg id="menu_icon" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
<g id="Group_375" data-name="Group 375">
<g id="Group_374" data-name="Group 374">
<path id="Path_181" data-name="Path 181" d="M11.387,0H2.329A2.332,2.332,0,0,0,0,2.329v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329V2.329A2.332,2.332,0,0,0,11.387,0Zm0,12.574H2.329a1.187,1.187,0,0,1-1.186-1.186V2.329A1.187,1.187,0,0,1,2.329,1.143h9.058a1.187,1.187,0,0,1,1.186,1.186v9.059h0A1.187,1.187,0,0,1,11.387,12.574Z"/>
</g>
</g>
<g id="Group_377" data-name="Group 377" transform="translate(14.283)">
<g id="Group_376" data-name="Group 376">
<path id="Path_182" data-name="Path 182" d="M120.614,0h-9.058a2.332,2.332,0,0,0-2.329,2.329v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329V2.329A2.332,2.332,0,0,0,120.614,0ZM121.8,11.388a1.187,1.187,0,0,1-1.186,1.186h-9.058a1.187,1.187,0,0,1-1.186-1.186V2.329a1.187,1.187,0,0,1,1.186-1.186h9.058A1.187,1.187,0,0,1,121.8,2.329Z" transform="translate(-109.227)"/>
</g>
</g>
<g id="Group_379" data-name="Group 379" transform="translate(0 14.283)">
<g id="Group_378" data-name="Group 378">
<path id="Path_183" data-name="Path 183" d="M11.387,109.227H2.329A2.332,2.332,0,0,0,0,111.556v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329v-9.059A2.332,2.332,0,0,0,11.387,109.227Zm0,12.574H2.329a1.187,1.187,0,0,1-1.186-1.186v-9.059a1.187,1.187,0,0,1,1.186-1.186h9.058a1.187,1.187,0,0,1,1.186,1.186v9.059h0A1.187,1.187,0,0,1,11.387,121.8Z" transform="translate(0 -109.227)"/>
</g>
</g>
<g id="Group_381" data-name="Group 381" transform="translate(14.283 14.283)">
<g id="Group_380" data-name="Group 380">
<path id="Path_184" data-name="Path 184" d="M120.614,109.227h-9.058a2.332,2.332,0,0,0-2.329,2.329v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329v-9.059A2.332,2.332,0,0,0,120.614,109.227Zm1.186,11.388a1.187,1.187,0,0,1-1.186,1.186h-9.058a1.187,1.187,0,0,1-1.186-1.186v-9.059a1.187,1.187,0,0,1,1.186-1.186h9.058a1.187,1.187,0,0,1,1.186,1.186Z" transform="translate(-109.227 -109.227)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,22 @@
<svg id="menu_icon_active" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
<g id="Group_375" data-name="Group 375">
<g id="Group_374" data-name="Group 374">
<path id="Path_181" data-name="Path 181" d="M11.387,0H2.329A2.332,2.332,0,0,0,0,2.329v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329V2.329A2.332,2.332,0,0,0,11.387,0Zm0,12.574H2.329a1.187,1.187,0,0,1-1.186-1.186V2.329A1.187,1.187,0,0,1,2.329,1.143h9.058a1.187,1.187,0,0,1,1.186,1.186v9.059h0A1.187,1.187,0,0,1,11.387,12.574Z" fill="#fff"/>
</g>
</g>
<g id="Group_377" data-name="Group 377" transform="translate(14.283)">
<g id="Group_376" data-name="Group 376">
<path id="Path_182" data-name="Path 182" d="M120.614,0h-9.058a2.332,2.332,0,0,0-2.329,2.329v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329V2.329A2.332,2.332,0,0,0,120.614,0ZM121.8,11.388a1.187,1.187,0,0,1-1.186,1.186h-9.058a1.187,1.187,0,0,1-1.186-1.186V2.329a1.187,1.187,0,0,1,1.186-1.186h9.058A1.187,1.187,0,0,1,121.8,2.329Z" transform="translate(-109.227)" fill="#fff"/>
</g>
</g>
<g id="Group_379" data-name="Group 379" transform="translate(0 14.283)">
<g id="Group_378" data-name="Group 378">
<path id="Path_183" data-name="Path 183" d="M11.387,109.227H2.329A2.332,2.332,0,0,0,0,111.556v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329v-9.059A2.332,2.332,0,0,0,11.387,109.227Zm0,12.574H2.329a1.187,1.187,0,0,1-1.186-1.186v-9.059a1.187,1.187,0,0,1,1.186-1.186h9.058a1.187,1.187,0,0,1,1.186,1.186v9.059h0A1.187,1.187,0,0,1,11.387,121.8Z" transform="translate(0 -109.227)" fill="#fff"/>
</g>
</g>
<g id="Group_381" data-name="Group 381" transform="translate(14.283 14.283)">
<g id="Group_380" data-name="Group 380">
<path id="Path_184" data-name="Path 184" d="M120.614,109.227h-9.058a2.332,2.332,0,0,0-2.329,2.329v9.059a2.332,2.332,0,0,0,2.329,2.329h9.058a2.332,2.332,0,0,0,2.329-2.329v-9.059A2.332,2.332,0,0,0,120.614,109.227Zm1.186,11.388a1.187,1.187,0,0,1-1.186,1.186h-9.058a1.187,1.187,0,0,1-1.186-1.186v-9.059a1.187,1.187,0,0,1,1.186-1.186h9.058a1.187,1.187,0,0,1,1.186,1.186Z" transform="translate(-109.227 -109.227)" fill="#fff"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="23.333" viewBox="0 0 28 23.333">
<g id="message_icon" transform="translate(0 -42.667)">
<g id="Group_368" data-name="Group 368" transform="translate(0 42.667)">
<path id="Path_161" data-name="Path 161" d="M27.6,43.7a2.333,2.333,0,0,0-1.937-1.031H2.333A2.333,2.333,0,0,0,0,45V63.667A2.333,2.333,0,0,0,2.333,66H25.909A2.333,2.333,0,0,0,28,63.667V45A2.333,2.333,0,0,0,27.6,43.7Zm-25.27-.1H25.667a1.4,1.4,0,0,1,.905.331l-1.811,1.727-7.635,7.275-2.828,2.7a.467.467,0,0,1-.555,0l-2.87-2.7-9.473-9A1.4,1.4,0,0,1,2.333,43.6Zm-1.4,1.176L9.875,53.26.933,61.8V45A1.393,1.393,0,0,1,.933,44.776ZM27.067,63.667a1.4,1.4,0,0,1-1.223,1.4H2.333a1.4,1.4,0,0,1-1.4-1.4v-.593l9.618-9.17,2.571,2.445a1.4,1.4,0,0,0,.2.135,1.363,1.363,0,0,0,.677.182,1.47,1.47,0,0,0,.933-.327l2.539-2.417,9.595,9.142Zm0-18.667V61.777l-8.941-8.5,8.941-8.507A1.433,1.433,0,0,1,27.067,45Z" transform="translate(0 -42.667)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 975 B

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="23.333" viewBox="0 0 28 23.333">
<g id="message_icon_active" transform="translate(0 -42.667)">
<g id="Group_368" data-name="Group 368" transform="translate(0 42.667)">
<path id="Path_161" data-name="Path 161" d="M27.6,43.7a2.333,2.333,0,0,0-1.937-1.031H2.333A2.333,2.333,0,0,0,0,45V63.667A2.333,2.333,0,0,0,2.333,66H25.909A2.333,2.333,0,0,0,28,63.667V45A2.333,2.333,0,0,0,27.6,43.7Zm-25.27-.1H25.667a1.4,1.4,0,0,1,.905.331l-1.811,1.727-7.635,7.275-2.828,2.7a.467.467,0,0,1-.555,0l-2.87-2.7-9.473-9A1.4,1.4,0,0,1,2.333,43.6Zm-1.4,1.176L9.875,53.26.933,61.8V45A1.393,1.393,0,0,1,.933,44.776ZM27.067,63.667a1.4,1.4,0,0,1-1.223,1.4H2.333a1.4,1.4,0,0,1-1.4-1.4v-.593l9.618-9.17,2.571,2.445a1.4,1.4,0,0,0,.2.135,1.363,1.363,0,0,0,.677.182,1.47,1.47,0,0,0,.933-.327l2.539-2.417,9.595,9.142Zm0-18.667V61.777l-8.941-8.5,8.941-8.507A1.433,1.433,0,0,1,27.067,45Z" transform="translate(0 -42.667)" fill="#fff"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 994 B

@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.934" height="37.964" viewBox="0 0 38.934 37.964">
<g id="operations" transform="translate(0 -6.332)">
<g id="Group_385" data-name="Group 385" transform="translate(2.911 24.24)">
<path id="Path_185" data-name="Path 185" d="M82.448,419.768h26.3a17.161,17.161,0,0,0-26.3,0Z" transform="translate(-79.04 -400.326)" fill="#b8382c"/>
<path id="Path_186" data-name="Path 186" d="M45.522,239.98l-1.66,1.66h-.031a5.847,5.847,0,0,0-5.847,5.847V251.7l9.631-9.631Z" transform="translate(-37.984 -239.98)" fill="#b8382c"/>
</g>
<path id="Path_187" data-name="Path 187" d="M125.992,27.381l.7-.7a1.9,1.9,0,0,0,1.213.447,1.927,1.927,0,0,0,1.353-.56l.579-.579a1.911,1.911,0,0,0,3.1.579l2.193-2.193,6.058,2.753h5.652v1.84h4.905V17.929H146.84v1.84h-.972l-5.339-5.339-1-.588,3.5-3.5a2.347,2.347,0,0,0-3.32-3.32L134.936,11.8h-2.093a2.448,2.448,0,0,0-1.664.651l-7.031,6.49a1.891,1.891,0,0,0,.525,3.122l-2,2Zm-1.586-3.32,1.649-1.649A2.145,2.145,0,0,0,127.641,24l-1.649,1.649Zm3.986,1.638a.708.708,0,0,1-.818.1l1.738-1.738h.719Zm3.679,0a.688.688,0,0,1-1.174-.486.682.682,0,0,1,.2-.486l.666-.666h1.945Zm16-6.544h2.453V27.74h-2.453V19.155Zm-8.347-3.8,5.64,5.64h1.48V25.9h-5.386l-6.745-3.066h-6.571a.92.92,0,1,1,0-1.84h4.6l1.561-.3a2.619,2.619,0,0,0,1.928-3.549l2.41-2.41Zm-4.537,2.835a1.409,1.409,0,0,1-1.125,1.3l-.221.044Zm5.4-10.3a1.121,1.121,0,0,1,1.914.793,1.114,1.114,0,0,1-.328.793l-10.3,10.3H128.7ZM125.5,20.995h-.069a.666.666,0,0,1-.452-1.155l7.031-6.49a1.22,1.22,0,0,1,.832-.326h.866l-7.86,7.86A.657.657,0,0,1,125.5,20.995Z" transform="translate(-113.27 0)" fill="#fff"/>
<path id="Path_188" data-name="Path 188" d="M38.391,360.362c-.063-.107-6.454-10.726-18.924-10.726S.606,360.255.543,360.362L0,361.286H38.934Zm-36.162-.3c1.828-2.5,7.627-9.2,17.238-9.2s15.409,6.7,17.238,9.2Z" transform="translate(0 -316.991)" fill="#fff"/>
<rect id="Rectangle_177" data-name="Rectangle 177" width="2.453" height="1.226" transform="translate(18.241 35.098)" fill="#fff"/>
<rect id="Rectangle_178" data-name="Rectangle 178" width="2.453" height="1.226" transform="translate(14.33 37.014) rotate(160.007)" fill="#fff"/>
<rect id="Rectangle_179" data-name="Rectangle 179" width="2.453" height="1.226" transform="matrix(-0.766, 0.643, -0.643, -0.766, 8.578, 39.839)" fill="#fff"/>
<rect id="Rectangle_180" data-name="Rectangle 180" width="1.226" height="2.453" transform="matrix(-0.643, 0.766, -0.766, -0.643, 33.018, 40.476)" fill="#fff"/>
<rect id="Rectangle_181" data-name="Rectangle 181" width="1.226" height="2.453" transform="translate(27.33 36.698) rotate(109.999)" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@ -0,0 +1,5 @@
<svg id="out_patient" xmlns="http://www.w3.org/2000/svg" width="33.545" height="33.544" viewBox="0 0 33.545 33.544">
<path id="Path_55" data-name="Path 55" d="M32.921,17.231H24.432a3.234,3.234,0,0,0,.832-4.611,10.233,10.233,0,0,0,.624-3.5V7.771a6.771,6.771,0,0,0-10.28-5.79,6.771,6.771,0,0,0-10.28,5.79v.12l-.541-.947L2.435,11.06a2.705,2.705,0,0,0,2.933,3.949A3.249,3.249,0,0,0,8.207,17.75a7.593,7.593,0,0,0,4.7,5.466v1.138l-4.538.826A8.965,8.965,0,0,0,1,34v.541H30.216V34a8.965,8.965,0,0,0-7.365-8.824l-4.538-.826V23.217A7.537,7.537,0,0,0,21.235,21.2c.027.012.056.017.082.03a3.113,3.113,0,0,0,1.388.328H32.921a1.625,1.625,0,0,0,1.623-1.623V18.854A1.625,1.625,0,0,0,32.921,17.231Zm-9.766-.609c.01-.158.028-.315.028-.473v-3.71a2.155,2.155,0,0,1-.028,4.183ZM6.41,9.116V7.771a5.688,5.688,0,0,1,8.844-4.733l.354.236.354-.236a5.688,5.688,0,0,1,8.844,4.733V9.116a9.166,9.166,0,0,1-.4,2.687,3.228,3.228,0,0,0-1.22-.474v-.86L21.018,8.845V7.492A1.083,1.083,0,0,0,19.936,6.41H11.28A1.083,1.083,0,0,0,10.2,7.492V8.845L8.034,10.468v.858a3.2,3.2,0,0,0-.688.205,2.642,2.642,0,0,0-.206-.471l-.7-1.219c-.018-.24-.032-.482-.032-.725Zm13.527,1.623H11.28V7.492h8.657ZM4.761,13.985A1.6,1.6,0,0,1,3.375,11.6L4.787,9.124,6.2,11.6a1.6,1.6,0,0,1-1.439,2.389Zm1.65.542a2.664,2.664,0,0,0,1.053-1.851,2.119,2.119,0,0,1,.57-.239v3.713c0,.159.014.315.024.472A2.164,2.164,0,0,1,6.41,14.527Zm2.705,1.623v-5.14L10.2,10.2v.541a1.083,1.083,0,0,0,1.082,1.082h8.657a1.083,1.083,0,0,0,1.082-1.082V10.2l1.082.812v5.14a6.546,6.546,0,0,1-.116,1.168,3.114,3.114,0,0,0-.667.242,2.034,2.034,0,0,1-.9.213H16.69a1.623,1.623,0,1,0,0,3.246h3.2A6.482,6.482,0,0,1,9.116,16.149Zm7.575,3.787a.541.541,0,1,1,0-1.082h.541v1.082Zm-3.525,5.47a2.707,2.707,0,0,0,1.8,1.479A2.165,2.165,0,0,1,12.9,28.052c-1.194,0-2.164-.728-2.164-1.623a1.22,1.22,0,0,1,.174-.613Zm15.951,8.056H2.1a7.884,7.884,0,0,1,6.458-7.219l1.136-.207a2.173,2.173,0,0,0-.037.392A3.016,3.016,0,0,0,12.9,29.134a3.453,3.453,0,0,0,2.705-1.213,3.453,3.453,0,0,0,2.705,1.213,3.016,3.016,0,0,0,3.246-2.705,2.212,2.212,0,0,0-.037-.391l1.136.207A7.882,7.882,0,0,1,29.116,33.462ZM20.3,25.816a1.22,1.22,0,0,1,.174.613c0,.895-.971,1.623-2.164,1.623a2.165,2.165,0,0,1-2.066-1.166,2.7,2.7,0,0,0,1.8-1.479Zm-3.072-2.092v.541a1.623,1.623,0,1,1-3.246,0v-.721a7.467,7.467,0,0,0,3.246,0Zm4.57-3.46a3.115,3.115,0,0,0-1.388-.327h-2.1V18.854h2.1a3.122,3.122,0,0,0,1.388-.327,2.034,2.034,0,0,1,.9-.214h7.511v2.164H22.705A2.033,2.033,0,0,1,21.8,20.264Zm11.661-.327a.542.542,0,0,1-.541.541H31.3V18.313h1.623a.542.542,0,0,1,.541.541Z" transform="translate(-1 -1)"/>
<path id="Path_56" data-name="Path 56" d="M0,0H1.082V3.9H0Z" transform="matrix(0.555, -0.832, 0.832, 0.555, 15.936, 12.357)"/>
<path id="Path_57" data-name="Path 57" d="M0,0H3.9V1.082H0Z" transform="matrix(0.832, -0.555, 0.555, 0.832, 9.442, 13.613)"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="45.999" height="37.607" viewBox="0 0 45.999 37.607">
<g id="patient" transform="translate(0 -46.705)">
<circle id="Ellipse_155" data-name="Ellipse 155" cx="0.814" cy="0.814" r="0.814" transform="translate(15.059 58.613) rotate(-5.682)" fill="#fff"/>
<circle id="Ellipse_156" data-name="Ellipse 156" cx="0.814" cy="0.814" r="0.814" transform="translate(20.602 58.61) rotate(-5.682)" fill="#fff"/>
<path id="Path_221" data-name="Path 221" d="M189.1,219.565h-2.446a.679.679,0,1,0,0,1.359H189.1a.679.679,0,1,0,0-1.359Z" transform="translate(-169.262 -157.33)" fill="#fff"/>
<path id="Path_222" data-name="Path 222" d="M44.72,49.777H42.667V48.064h2.652a.679.679,0,0,0,0-1.359H10.394a.679.679,0,1,0,0,1.359H41.308v1.713H39.256a1.28,1.28,0,0,0-1.278,1.278v5.912a4.013,4.013,0,0,0,2.089,3.519l-.444.714a3.645,3.645,0,0,0-.161,3.54l1.846,3.671a2.277,2.277,0,0,1-.47,2.664L37.46,74.132V61.03a1.9,1.9,0,0,0-1.9-1.9H33.6a6.623,6.623,0,0,0-.228-.981,1.7,1.7,0,0,1-.04-.865l.5-2.324a1.325,1.325,0,0,0-1.574-1.574c-.7.093-2.428.7-3.146.44a6.666,6.666,0,0,0-.82-.215.68.68,0,0,0-.26,1.334,5.288,5.288,0,0,1,.652.171,3.048,3.048,0,0,0,1.6.085l2.208-.476L32,57c-.255.974.334,2.024.314,3.15v7.028a5.294,5.294,0,0,1-.247,1.6,3.034,3.034,0,0,0-.112.5,8.639,8.639,0,0,0-5.744-2.18H23.3v-.668a6.565,6.565,0,0,0,1.887-3.463,3.718,3.718,0,0,0,2.126-2.286,2.607,2.607,0,0,0-1.471-3.362h0a1.652,1.652,0,0,0-.529-.082V54.008a3.583,3.583,0,0,0-3.579-3.579H15.7a3.584,3.584,0,0,0-3.541,3.061H10.415c-.961-.1-1.932.484-2.981.384l-2.259-.487A1.325,1.325,0,0,0,3.6,54.962l.5,2.324a1.7,1.7,0,0,1-.04.865,6.619,6.619,0,0,0-.228.981H2.11v-9.6a1.466,1.466,0,0,1,1.464-1.464H7.268a.679.679,0,1,0,0-1.359H3.574A2.826,2.826,0,0,0,.751,49.528v9.993A1.894,1.894,0,0,0,0,61.03L.017,83.124a1.19,1.19,0,0,0,1.188,1.188H36.261a1.19,1.19,0,0,0,1.188-1.188l.01-7.159,4.294-3.885.009-.008a3.644,3.644,0,0,0,.759-4.27L40.676,64.13a2.277,2.277,0,0,1,.1-2.212l.613-.985a4.024,4.024,0,0,0,.6.045h0a4.012,4.012,0,0,0,3.429-1.932A4.2,4.2,0,0,0,46,56.968V51.055A1.28,1.28,0,0,0,44.72,49.777ZM36.1,61.03V75.362l-.743.672q-.232-.21-.472-.41a8.62,8.62,0,0,0-1.321-4.443,4.39,4.39,0,0,1-.2-1.988,6.65,6.65,0,0,0,.311-2.015V60.491h1.887a.539.539,0,0,1,.539.539ZM15.493,67.449a6.586,6.586,0,0,0,6.445,0v1.234a.558.558,0,0,1-.558.558h-5.33a.558.558,0,0,1-.558-.558Zm9.925-8.829a1.261,1.261,0,0,1,.6,1.649c-.231.71-.957,1.433-1.465,1.458a.679.679,0,0,0-.641.6,5.233,5.233,0,0,1-10.391,0,.679.679,0,0,0-.641-.6c-.508-.026-1.234-.748-1.465-1.458a1.261,1.261,0,0,1,.6-1.649.246.246,0,0,1,.072-.017c.044,0,.083.032.163.143a.679.679,0,0,0,.76.253c.351-.1.54-.594.473-1.067a2.614,2.614,0,0,1,2.611-2.611H21.34a2.614,2.614,0,0,1,2.611,2.611c-.015.362-.042.845.473,1.067a.679.679,0,0,0,.76-.253c.117-.164.147-.155.235-.126ZM13.481,54.008a2.222,2.222,0,0,1,2.22-2.22h6.03a2.222,2.222,0,0,1,2.22,2.22v.938a3.953,3.953,0,0,0-2.611-.983H16.092a3.953,3.953,0,0,0-2.611.983ZM7.148,55.2a3.052,3.052,0,0,0,1.6-.085,5.28,5.28,0,0,1,1.666-.268h1.707v2.4a1.644,1.644,0,0,0-.529.082,2.607,2.607,0,0,0-1.471,3.362,3.717,3.717,0,0,0,2.126,2.286,6.565,6.565,0,0,0,1.887,3.463v.668H11.219a8.639,8.639,0,0,0-5.744,2.18,3.039,3.039,0,0,0-.112-.5,5.3,5.3,0,0,1-.247-1.6V60.149c-.058-.972.566-2.032.314-3.15l-.49-2.272ZM1.359,61.03a.539.539,0,0,1,.539-.539H3.756v6.686a6.65,6.65,0,0,0,.311,2.015,4.578,4.578,0,0,1-.2,1.988A8.62,8.62,0,0,0,2.546,75.63q-.407.339-.793.707a5.567,5.567,0,0,0-.394.419V61.03ZM36.09,82.953H1.376V80.408a4.3,4.3,0,0,1,1.317-3.09A13.521,13.521,0,0,1,9.443,73.8a.679.679,0,1,0-.263-1.333,14.835,14.835,0,0,0-5.174,2.089,7.327,7.327,0,0,1,7.212-6.1h2.916v.218A1.919,1.919,0,0,0,16.051,70.6h5.33A1.919,1.919,0,0,0,23.3,68.683v-.218h2.916a7.326,7.326,0,0,1,7.211,6.087,14.856,14.856,0,0,0-8.066-2.362H12.481a.679.679,0,1,0,0,1.359H25.358a13.5,13.5,0,0,1,8.415,2.922l.019.015q.512.407.989.867a4.3,4.3,0,0,1,1.31,3.082v2.518Zm8.549-31.817V53.01h-5.3V51.136ZM44.431,58a2.765,2.765,0,0,1-2.443,1.62,2.654,2.654,0,0,1-2.651-2.651v-2.6h5.3v2.6A2.644,2.644,0,0,1,44.431,58Z" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

@ -0,0 +1 @@
<svg id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m496 144c-8.837 0-16-7.164-16-16v-82c0-7.72-6.28-14-14-14h-82c-8.837 0-16-7.164-16-16s7.163-16 16-16h82c25.364 0 46 20.636 46 46v82c0 8.836-7.163 16-16 16z"/><path d="m16 144c-8.837 0-16-7.164-16-16v-82c0-25.364 20.636-46 46-46h82c8.837 0 16 7.164 16 16s-7.163 16-16 16h-82c-7.72 0-14 6.28-14 14v82c0 8.836-7.163 16-16 16z"/><path d="m128 512h-82c-25.364 0-46-20.636-46-46v-82c0-8.836 7.163-16 16-16s16 7.164 16 16v82c0 7.72 6.28 14 14 14h82c8.837 0 16 7.164 16 16s-7.163 16-16 16z"/><path d="m466 512h-82c-8.837 0-16-7.164-16-16s7.163-16 16-16h82c7.72 0 14-6.28 14-14v-82c0-8.836 7.163-16 16-16s16 7.164 16 16v82c0 25.364-20.636 46-46 46z"/><path d="m194 240h-84c-25.364 0-46-20.636-46-46v-84c0-25.364 20.636-46 46-46h84c25.364 0 46 20.636 46 46v84c0 25.364-20.636 46-46 46zm-84-144c-7.72 0-14 6.28-14 14v84c0 7.72 6.28 14 14 14h84c7.72 0 14-6.28 14-14v-84c0-7.72-6.28-14-14-14z"/><path d="m194 448h-84c-25.364 0-46-20.636-46-46v-84c0-25.364 20.636-46 46-46h84c25.364 0 46 20.636 46 46v84c0 25.364-20.636 46-46 46zm-84-144c-7.72 0-14 6.28-14 14v84c0 7.72 6.28 14 14 14h84c7.72 0 14-6.28 14-14v-84c0-7.72-6.28-14-14-14z"/><path d="m402 240h-84c-25.364 0-46-20.636-46-46v-84c0-25.364 20.636-46 46-46h84c25.364 0 46 20.636 46 46v84c0 25.364-20.636 46-46 46zm-84-144c-7.72 0-14 6.28-14 14v84c0 7.72 6.28 14 14 14h84c7.72 0 14-6.28 14-14v-84c0-7.72-6.28-14-14-14z"/><path d="m422 352h-38v-54c0-14.336-11.663-26-26-26h-60c-14.337 0-26 11.664-26 26v60c0 14.336 11.663 26 26 26h54v38c0 14.336 11.663 26 26 26h44c14.337 0 26-11.664 26-26v-44c0-14.336-11.663-26-26-26zm-118-48h48v48h-48zm112 112h-32v-32h32z"/><path d="m160 176h-16c-8.837 0-16-7.164-16-16v-16c0-8.836 7.163-16 16-16h16c8.837 0 16 7.164 16 16v16c0 8.836-7.163 16-16 16z"/><path d="m368 176h-16c-8.837 0-16-7.164-16-16v-16c0-8.836 7.163-16 16-16h16c8.837 0 16 7.164 16 16v16c0 8.836-7.163 16-16 16z"/><path d="m160 384h-16c-8.837 0-16-7.164-16-16v-16c0-8.836 7.163-16 16-16h16c8.837 0 16 7.164 16 16v16c0 8.836-7.163 16-16 16z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,27 @@
<svg xmlns="http://www.w3.org/2000/svg" width="30.516" height="28.567" viewBox="0 0 30.516 28.567">
<g id="radiology" transform="translate(-8.242 -10.661)">
<path id="Path_112" data-name="Path 112" d="M8.513,22.676a.271.271,0,0,1-.211-.44c4.153-5.2,7.237-6.412,10.219-7.582l.186-.073c1.181-.465,1.841-1.7,1.966-3.66a.274.274,0,0,1,.287-.253.271.271,0,0,1,.253.287c-.138,2.192-.915,3.582-2.308,4.13l-.186.073C15.8,16.3,12.788,17.489,8.726,22.575a.271.271,0,0,1-.213.1Z" transform="translate(0 -0.005)" fill="#fff"/>
<path id="Path_113" data-name="Path 113" d="M17.123,74.542l-.033,0a.271.271,0,0,1-.236-.3c.006-.048.588-4.831.586-6.746,0-1.649-.5-6.035-.684-7.564-.708.668-2.181,2.043-2.833,2.546a13.085,13.085,0,0,1-1.2.773l-.357.214a.271.271,0,1,1-.28-.464l.359-.217a12.736,12.736,0,0,0,1.151-.736c.834-.643,3.159-2.857,3.182-2.879a.271.271,0,0,1,.456.162c.031.249.751,6.129.752,8.163,0,1.95-.566,6.614-.59,6.812a.271.271,0,0,1-.268.239Z" transform="translate(-2.701 -35.315)" fill="#fff"/>
<path id="Path_114" data-name="Path 114" d="M85.727,22.671a.271.271,0,0,1-.212-.1c-4.062-5.086-7.078-6.272-9.994-7.418l-.186-.073c-1.394-.549-2.17-1.938-2.308-4.13a.271.271,0,0,1,.542-.034c.124,1.964.785,3.2,1.966,3.66l.185.073C78.7,15.82,81.787,17.031,85.94,22.23a.271.271,0,0,1-.212.44Z" transform="translate(-47.241 0)" fill="#fff"/>
<path id="Path_115" data-name="Path 115" d="M95.8,74.544a.271.271,0,0,1-.268-.237c-.024-.2-.6-4.864-.6-6.813,0-2.035.722-7.914.752-8.163a.271.271,0,0,1,.456-.162c.023.022,2.348,2.236,3.182,2.879a12.8,12.8,0,0,0,1.151.737l.358.215a.271.271,0,0,1-.28.464l-.357-.214a13.11,13.11,0,0,1-1.2-.773c-.652-.5-2.125-1.878-2.833-2.546-.181,1.529-.683,5.915-.684,7.564,0,1.915.59,6.7.6,6.745a.271.271,0,0,1-.235.3l-.034,0Z" transform="translate(-63.215 -35.317)" fill="#fff"/>
<path id="Path_116" data-name="Path 116" d="M43.1,71.94a2.753,2.753,0,0,1-2.63-1.192.542.542,0,0,1,.977-.468c.278.581,1.915.9,3.95.107a.542.542,0,1,1,.395,1.009A7.515,7.515,0,0,1,43.1,71.94Z" transform="translate(-23.459 -43.25)" fill="#fff"/>
<path id="Path_117" data-name="Path 117" d="M40.742,79.181a4.787,4.787,0,0,1-1.557-.247,2.562,2.562,0,0,1-1.522-1.18.542.542,0,1,1,.977-.468,1.529,1.529,0,0,0,.9.623,4.889,4.889,0,0,0,3.768-.463.542.542,0,0,1,.483.969A6.909,6.909,0,0,1,40.742,79.181Z" transform="translate(-21.415 -48.358)" fill="#fff"/>
<path id="Path_118" data-name="Path 118" d="M39.275,87.528a2.189,2.189,0,0,1-1.1-.272,2.481,2.481,0,0,1-.962-2.766.542.542,0,0,1,1.067.186c-.14.805.017,1.4.432,1.64.584.334,1.916.09,3.9-1.6a.542.542,0,0,1,.7.826c-1.836,1.559-3.15,1.986-4.041,1.986Z" transform="translate(-21.076 -53.509)" fill="#fff"/>
<path id="Path_119" data-name="Path 119" d="M68.31,60.346q-.325,0-.666-.014a.542.542,0,0,1,.044-1.083c3.907.159,5.554-1.153,5.675-1.551a.542.542,0,0,1,.99-.437,1.063,1.063,0,0,1-.12,1.1C73.578,59.376,71.512,60.346,68.31,60.346Z" transform="translate(-42.935 -33.766)" fill="#fff"/>
<path id="Path_120" data-name="Path 120" d="M68,53.587H67.91a.542.542,0,1,1,0-1.083c.027,0,.054,0,.081,0,3.116,0,3.665-.645,3.744-.775.023-.038.077-.129-.019-.31a.542.542,0,1,1,.957-.508,1.369,1.369,0,0,1-.011,1.378C72.138,53.163,70.61,53.587,68,53.587Z" transform="translate(-43.115 -29.141)" fill="#fff"/>
<path id="Path_121" data-name="Path 121" d="M60.957,32.12a.542.542,0,0,0-1.076-.089,1.915,1.915,0,0,1-.542.272V30.9a.542.542,0,1,0-1.083,0v1.4a1.9,1.9,0,0,1-.542-.273.542.542,0,0,0-1.076.089c0,.717.881,1.119,1.618,1.329V42a.542.542,0,1,0,1.083,0V33.449C60.076,33.238,60.957,32.836,60.957,32.12Z" transform="translate(-35.291 -14.363)" fill="#fff"/>
<path id="Path_122" data-name="Path 122" d="M50.32,40.445h.028a.542.542,0,1,0,.027-1.083c-1.909-.1-2.479-.576-2.541-.718a.542.542,0,0,0-.967-.487,1.052,1.052,0,0,0,.029,1.029C47.185,39.694,48.013,40.325,50.32,40.445Z" transform="translate(-28.078 -19.841)" fill="#fff"/>
<path id="Path_123" data-name="Path 123" d="M41.749,59.25c-3.91.159-5.554-1.153-5.675-1.551a.542.542,0,0,0-.99-.437,1.063,1.063,0,0,0,.12,1.1c.653,1.018,2.719,1.988,5.922,1.988q.325,0,.666-.014a.542.542,0,0,0-.044-1.083Z" transform="translate(-19.501 -33.766)" fill="#fff"/>
<path id="Path_124" data-name="Path 124" d="M46.395,53.587h.086a.542.542,0,0,0,0-1.083h0c-3.2.008-3.744-.643-3.824-.774-.023-.038-.078-.129.018-.31a.542.542,0,0,0-.957-.508,1.369,1.369,0,0,0,.011,1.377C42.254,53.163,43.781,53.587,46.395,53.587Z" transform="translate(-24.276 -29.141)" fill="#fff"/>
<path id="Path_125" data-name="Path 125" d="M67.623,40.45h.027c2.307-.12,3.135-.751,3.423-1.259a1.051,1.051,0,0,0,.029-1.029.542.542,0,0,0-.967.487c-.062.141-.632.619-2.541.718a.542.542,0,0,0,.027,1.083Z" transform="translate(-42.894 -19.844)" fill="#fff"/>
<path id="Path_126" data-name="Path 126" d="M47.365,44.825h0c-3.014.011-3.528-.6-3.6-.721-.019-.032-.065-.108.018-.266a.542.542,0,1,0-.957-.508,1.327,1.327,0,0,0,.011,1.334c.505.837,1.961,1.246,4.451,1.246h.081a.542.542,0,0,0,0-1.083Z" transform="translate(-25.089 -23.613)" fill="#fff"/>
<path id="Path_127" data-name="Path 127" d="M72.226,43.33a.542.542,0,1,0-.957.508c.084.158.038.234.018.266-.073.121-.585.721-3.524.721-.027,0-.051,0-.079,0a.542.542,0,0,0,0,1.083h.081c2.489,0,3.945-.406,4.451-1.246A1.327,1.327,0,0,0,72.226,43.33Z" transform="translate(-42.949 -23.612)" fill="#fff"/>
<path id="Path_128" data-name="Path 128" d="M70.671,71.945A7.514,7.514,0,0,1,67.98,71.4a.542.542,0,1,1,.395-1.009c2.034.8,3.671.474,3.95-.107a.542.542,0,1,1,.977.468A2.757,2.757,0,0,1,70.671,71.945Z" transform="translate(-43.309 -43.256)" fill="#fff"/>
<path id="Path_129" data-name="Path 129" d="M70.982,79.184a6.909,6.909,0,0,1-3.046-.765.542.542,0,0,1,.483-.969,4.886,4.886,0,0,0,3.768.463,1.529,1.529,0,0,0,.9-.623.542.542,0,1,1,.977.468,2.562,2.562,0,0,1-1.522,1.179,4.788,4.788,0,0,1-1.557.248Z" transform="translate(-43.31 -48.361)" fill="#fff"/>
<path id="Path_130" data-name="Path 130" d="M72.762,87.529c-.89,0-2.205-.427-4.041-1.986a.542.542,0,0,1,.7-.826c1.988,1.689,3.32,1.933,3.9,1.6.415-.237.572-.835.432-1.64a.542.542,0,1,1,1.067-.186,2.481,2.481,0,0,1-.961,2.766A2.191,2.191,0,0,1,72.762,87.529Z" transform="translate(-43.961 -53.509)" fill="#fff"/>
<rect id="Rectangle_157" data-name="Rectangle 157" width="1.361" height="1" rx="0.5" transform="translate(22.841 28.722)" fill="#fff"/>
<rect id="Rectangle_158" data-name="Rectangle 158" width="1.361" height="1" rx="0.5" transform="translate(22.819 30.463)" fill="#fff"/>
<rect id="Rectangle_159" data-name="Rectangle 159" width="1.361" height="1" rx="0.5" transform="translate(22.797 32.205)" fill="#fff"/>
<path id="Path_131" data-name="Path 131" d="M41.306,44.015H23.053a2.938,2.938,0,0,1-2.935-2.935V22.827a2.938,2.938,0,0,1,2.935-2.935H41.306a2.938,2.938,0,0,1,2.935,2.935V41.08A2.938,2.938,0,0,1,41.306,44.015ZM23.053,20.434a2.4,2.4,0,0,0-2.393,2.393V41.08a2.4,2.4,0,0,0,2.393,2.393H41.306A2.4,2.4,0,0,0,43.7,41.08V22.827a2.4,2.4,0,0,0-2.393-2.393Z" transform="translate(-8.66 -6.732)" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

@ -0,0 +1,6 @@
<svg id="referral" xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30">
<path id="Path_212" data-name="Path 212" d="M46.689,39.083a3.221,3.221,0,0,0,1.692-2.815,3.316,3.316,0,0,0-6.63,0,3.221,3.221,0,0,0,1.692,2.815,4.983,4.983,0,0,0-3.355,4.7v2.234a.5.5,0,0,0,.5.5h8.956a.5.5,0,0,0,.5-.5V43.783a4.982,4.982,0,0,0-3.354-4.7Zm-3.938-2.815A2.316,2.316,0,1,1,45.066,38.5,2.277,2.277,0,0,1,42.751,36.268Zm6.293,9.25H41.087V43.783a3.978,3.978,0,0,1,7.956,0Z" transform="translate(-20.044 -16.518)" fill="#fff"/>
<path id="Path_213" data-name="Path 213" d="M46.691,6.046a3.22,3.22,0,0,0,1.69-2.814,3.316,3.316,0,0,0-6.63,0,3.22,3.22,0,0,0,1.69,2.814,4.983,4.983,0,0,0-3.353,4.7V12.98a.5.5,0,0,0,.5.5h8.956a.5.5,0,0,0,.5-.5V10.746a4.982,4.982,0,0,0-3.353-4.7Zm-3.94-2.814a2.316,2.316,0,0,1,4.629,0,2.316,2.316,0,0,1-4.629,0Zm6.293,9.248H41.087V10.746a3.978,3.978,0,0,1,7.956,0Z" transform="translate(-20.044 0)" fill="#fff"/>
<path id="Path_214" data-name="Path 214" d="M27.26,26.256l2.812-2.423a.5.5,0,0,0-.653-.757L26.3,25.766H22.779a.5.5,0,1,0,0,1H26.3l3.124,2.561a.558.558,0,0,0,.7-.07.487.487,0,0,0-.07-.7Z" transform="translate(-11.14 -11.477)" fill="#fff"/>
<path id="Path_215" data-name="Path 215" d="M8.772,20.858A3.778,3.778,0,0,0,9.7,18.376a3.859,3.859,0,0,0-7.718,0,3.776,3.776,0,0,0,.931,2.482A5.515,5.515,0,0,0,0,25.674v2.941a.5.5,0,0,0,.5.5H11.188a.5.5,0,0,0,.5-.5V25.674A5.516,5.516,0,0,0,8.772,20.858Zm-2.929-5.3a2.821,2.821,0,1,1-2.859,2.82A2.843,2.843,0,0,1,5.844,15.556Zm-.539,6.6a3.92,3.92,0,0,0,.539.042,3.843,3.843,0,0,0,.54-.042v2.339l-.54.691L5.3,24.493Zm5.383,5.96H9.116V25.664a.5.5,0,0,0-1,0v2.451H3.572V25.664a.5.5,0,0,0-1,0v2.451H1V25.674a4.514,4.514,0,0,1,2.744-4.1,3.866,3.866,0,0,0,.561.3v2.961L5.45,26.3a.5.5,0,0,0,.787,0l1.145-1.466V21.877a3.893,3.893,0,0,0,.561-.3,4.516,4.516,0,0,1,2.744,4.1v2.441Z" transform="translate(0 -7.278)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="26.003" height="26.615" viewBox="0 0 26.003 26.615">
<g id="scdedule_icon_active" transform="translate(0.333 0.341)">
<path id="Path_216" data-name="Path 216" d="M194.569,281.767a.766.766,0,0,0,1.083,0l2.734-2.734a.766.766,0,1,0-1.083-1.083l-2.192,2.192-1-1a.766.766,0,1,0-1.083,1.083Zm0,0" transform="translate(-183.038 -263.659)" fill="#fff"/>
<path id="Path_217" data-name="Path 217" d="M136.184,211.974a6.079,6.079,0,1,0-6.079-6.079A6.086,6.086,0,0,0,136.184,211.974Zm0-10.626a4.547,4.547,0,1,1-4.548,4.547A4.552,4.552,0,0,1,136.184,201.348Zm0,0" transform="translate(-123.516 -189.696)" fill="#fff"/>
<path id="Path_218" data-name="Path 218" d="M23.462,1.673H22.028V.786a.786.786,0,0,0-1.572,0v.888H18.912V.786a.786.786,0,0,0-1.572,0v.888H8.663V.786a.786.786,0,0,0-1.572,0v.888H5.547V.786a.786.786,0,0,0-1.572,0v.888H2.541A2.544,2.544,0,0,0,0,4.215V24.073a2.544,2.544,0,0,0,2.541,2.541h20.92A2.544,2.544,0,0,0,26,24.073V4.215A2.544,2.544,0,0,0,23.462,1.673Zm.97,22.4a.971.971,0,0,1-.97.97H2.541a.971.971,0,0,1-.97-.97V8.208h22.86ZM1.572,4.215a.971.971,0,0,1,.97-.97H3.975v.888a.786.786,0,0,0,1.572,0V3.245H7.091v.888a.786.786,0,0,0,1.572,0V3.245h8.678v.888a.786.786,0,0,0,1.572,0V3.245h1.544v.888a.786.786,0,0,0,1.572,0V3.245h1.433a.971.971,0,0,1,.97.97V6.636H1.572Zm0,0" transform="translate(-0.333 -0.341)" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,5 @@
<svg id="schedule_icon" xmlns="http://www.w3.org/2000/svg" width="26.004" height="26.615" viewBox="0 0 26.004 26.615">
<path id="Path_216" data-name="Path 216" d="M194.615,281.873a.786.786,0,0,0,1.111,0l2.806-2.806a.786.786,0,0,0-1.111-1.112l-2.25,2.25-1.026-1.026a.786.786,0,0,0-1.112,1.112Zm0,0" transform="translate(-182.781 -263.289)"/>
<path id="Path_217" data-name="Path 217" d="M136.344,212.294a6.239,6.239,0,1,0-6.239-6.239A6.246,6.246,0,0,0,136.344,212.294Zm0-10.906a4.667,4.667,0,1,1-4.667,4.667A4.672,4.672,0,0,1,136.344,201.388Zm0,0" transform="translate(-123.342 -189.429)"/>
<path id="Path_218" data-name="Path 218" d="M23.462,1.673H22.029V.786a.786.786,0,1,0-1.572,0v.888H18.913V.786a.786.786,0,0,0-1.572,0v.888H8.663V.786a.786.786,0,0,0-1.572,0v.888H5.547V.786a.786.786,0,0,0-1.572,0v.888H2.541A2.544,2.544,0,0,0,0,4.215V24.074a2.544,2.544,0,0,0,2.541,2.541H23.462A2.544,2.544,0,0,0,26,24.074V4.215A2.544,2.544,0,0,0,23.462,1.673Zm.97,22.4a.971.971,0,0,1-.97.97H2.541a.971.971,0,0,1-.97-.97V8.208h22.86ZM1.572,4.215a.971.971,0,0,1,.97-.97H3.975v.888a.786.786,0,0,0,1.572,0V3.245H7.091v.888a.786.786,0,0,0,1.572,0V3.245h8.678v.888a.786.786,0,0,0,1.572,0V3.245h1.544v.888a.786.786,0,0,0,1.572,0V3.245h1.433a.971.971,0,0,1,.97.97V6.636H1.572Zm0,0" transform="translate(0 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,32 @@
<svg id="search_patient" xmlns="http://www.w3.org/2000/svg" width="35.865" height="35.865" viewBox="0 0 35.865 35.865">
<g id="Group_321" data-name="Group 321" transform="translate(3.488 3.481)">
<g id="Group_320" data-name="Group 320">
<path id="Path_83" data-name="Path 83" d="M59.849,49.3A10.449,10.449,0,1,0,70.3,59.749,10.461,10.461,0,0,0,59.849,49.3Zm0,19.74a9.291,9.291,0,1,1,9.291-9.291A9.3,9.3,0,0,1,59.849,69.04Z" transform="translate(-49.4 -49.3)"/>
</g>
</g>
<g id="Group_323" data-name="Group 323" transform="translate(6.389 6.389)">
<g id="Group_322" data-name="Group 322">
<path id="Path_84" data-name="Path 84" d="M90.5,98.626h1.158a6.978,6.978,0,0,1,6.968-6.968V90.5A8.132,8.132,0,0,0,90.5,98.626Z" transform="translate(-90.5 -90.5)"/>
</g>
</g>
<g id="Group_325" data-name="Group 325">
<g id="Group_324" data-name="Group 324">
<path id="Path_85" data-name="Path 85" d="M35.046,31.763l.819-.819-8.31-8.317-.819.819-1.454-1.454A13.907,13.907,0,1,0,22,25.289l1.454,1.454-.819.819,8.3,8.3.819-.819-7.484-7.491,3.283-3.283ZM13.93,26.708A12.772,12.772,0,1,1,26.7,13.937,12.791,12.791,0,0,1,13.93,26.708Zm10.343-.8-1.348-1.341a13.923,13.923,0,0,0,1.645-1.645l1.348,1.348Z"/>
</g>
</g>
<g id="Group_327" data-name="Group 327" transform="translate(26.993 26.992)">
<g id="Group_326" data-name="Group 326" transform="translate(0 0)">
<rect id="Rectangle_143" data-name="Rectangle 143" width="1.158" height="1.158" transform="translate(0 0.819) rotate(-45)"/>
</g>
</g>
<g id="Group_329" data-name="Group 329" transform="translate(28.634 28.642)">
<g id="Group_328" data-name="Group 328" transform="translate(0 0)">
<rect id="Rectangle_144" data-name="Rectangle 144" width="1.158" height="1.158" transform="translate(0 0.819) rotate(-45)"/>
</g>
</g>
<g id="Group_331" data-name="Group 331" transform="translate(30.274 30.273)">
<g id="Group_330" data-name="Group 330" transform="translate(0 0)">
<rect id="Rectangle_145" data-name="Rectangle 145" width="1.158" height="1.158" transform="matrix(0.707, -0.707, 0.707, 0.707, 0, 0.819)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

@ -34,20 +34,6 @@
"male" "male"
] ]
}, },
{
"uid": "0bbb324cc39e62b3a4e05639a4f4008f",
"css": "home_icon",
"code": 59394,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M973.1 435L973.1 435 565 27A92 92 0 0 0 434.9 27L27.2 434.7 26.8 435.1A92 92 0 0 0 88 591.9C88.9 591.9 89.9 591.9 90.8 591.9H107.1V892.1A107.9 107.9 0 0 0 214.8 999.9H374.4A29.3 29.3 0 0 0 403.7 970.6V735.3A49.2 49.2 0 0 1 452.9 686.2H547A49.2 49.2 0 0 1 596.2 735.3V970.7A29.3 29.3 0 0 0 625.5 1000H785.1A107.9 107.9 0 0 0 892.8 892.3V592H907.8A92.1 92.1 0 0 0 973 434.9ZM931.6 523.7A33.4 33.4 0 0 1 907.9 533.5H863.5A29.3 29.3 0 0 0 834.2 562.8V892.3A49.2 49.2 0 0 1 785.1 941.4H654.9V735.3A107.9 107.9 0 0 0 547 627.5H452.9A107.9 107.9 0 0 0 345.1 735.2V941.3H215A49.2 49.2 0 0 1 165.8 892.1V562.8A29.3 29.3 0 0 0 136.5 533.5H92.8L91.4 533.5A33.4 33.4 0 0 1 68.4 476.4H68.4L476.3 68.4A33.4 33.4 0 0 1 523.6 68.4L931.4 476.2 931.6 476.4A33.4 33.4 0 0 1 931.6 523.7ZM931.6 523.7",
"width": 1000
},
"search": [
"home_icon"
]
},
{ {
"uid": "06d6838cdcf6af812f2eb51e0269afc0", "uid": "06d6838cdcf6af812f2eb51e0269afc0",
"css": "home_icon_active", "css": "home_icon_active",
@ -145,6 +131,62 @@
"search": [ "search": [
"schedule_icon" "schedule_icon"
] ]
},
{
"uid": "5a324eddf382f5a1167d7d40325f82c8",
"css": "reject_icon",
"code": 59402,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M681 626.7L554.3 500 681 373.3A38.5 38.5 0 0 0 626.7 318.9L500 445.7 373.3 319A38.5 38.5 0 1 0 318.9 373.3L445.7 500 318.9 626.8A37.2 37.2 0 0 0 318.9 681.1 38.2 38.2 0 0 0 373.3 681.1L500 554.4 626.7 681.1A38.5 38.5 0 0 0 681.1 681.1 38.2 38.2 0 0 0 681 626.7ZM500 67.3A432.5 432.5 0 1 1 194 194 429.8 429.8 0 0 1 500 67.3M500 0A500 500 0 1 0 1000 500 500 500 0 0 0 500 0Z",
"width": 1000
},
"search": [
"reject_icon"
]
},
{
"uid": "2742f64b5e69cc4f39a2dcc5a081ad03",
"css": "approved_icon",
"code": 59403,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M756.3 348.3L714 304.8A9.1 9.1 0 0 0 707.2 302H707.2A8.7 8.7 0 0 0 700.5 304.8L407.2 600.3 300.5 493.5A9.3 9.3 0 0 0 287.1 493.5L244.2 536.3A9.6 9.6 0 0 0 244.2 550L378.8 684.5A42.6 42.6 0 0 0 406.9 698.2 44.6 44.6 0 0 0 434.8 685H435L756.5 362A10.3 10.3 0 0 0 756.3 348.3ZM500 67.3A432.5 432.5 0 1 1 194 194 429.8 429.8 0 0 1 500 67.3M500 0A499.9 499.9 0 1 0 999.9 500 499.9 499.9 0 0 0 500 0Z",
"width": 1000
},
"search": [
"approved_icon"
]
},
{
"uid": "148de09f7fd22c378cdfdbaacaa8e205",
"css": "pending_icon",
"code": 59404,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M809.8 932H797.3C781.5 932 768.2 929.8 766.5 914V913.7C731 583.9 523.3 577.6 523.3 499.9S731.1 415.9 766.5 86V85.9C768.2 70.1 781.5 68 797.3 68H809.8A34.8 34.8 0 0 0 844.7 35.7 34 34 0 0 0 810.7 0H35A34.8 34.8 0 0 0 0 32.3 34 34 0 0 0 34 68H47.2C63 68 76.3 70.2 78.1 85.9V86.2C113.7 416 321.5 422.3 321.5 500S113.7 584 78.3 913.8V914C76.6 929.8 63.3 932 47.5 932H35A34.8 34.8 0 0 0 0.1 964.3 34 34 0 0 0 34.1 1000H810.7A33.9 33.9 0 0 0 844.7 964.3 34.8 34.8 0 0 0 809.8 932ZM197.4 848.9C267 655.2 390.6 678.7 390.6 602.3V467.5C390.6 420.4 301.2 387.6 245.4 311.1A19 19 0 0 1 261.2 281H583.8A18.9 18.9 0 0 1 600 310.6C545.2 387.3 454.2 420.4 454.2 467.4V602.4C454.2 678.1 572.9 657.5 647.8 849 654.7 866.3 649.5 887.8 631.2 887.8H214.1C195.4 887.8 191.1 866.5 197.4 849Z",
"width": 845
},
"search": [
"pending_icon"
]
},
{
"uid": "0bbb324cc39e62b3a4e05639a4f4008f",
"css": "home_icon",
"code": 59394,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M973.1 435L973.1 435 565 27A92 92 0 0 0 434.9 27L27.2 434.7 26.8 435.1A92 92 0 0 0 88 591.9C88.9 591.9 89.9 591.9 90.8 591.9H107.1V892.1A107.9 107.9 0 0 0 214.8 999.9H374.4A29.3 29.3 0 0 0 403.7 970.6V735.3A49.2 49.2 0 0 1 452.9 686.2H547A49.2 49.2 0 0 1 596.2 735.3V970.7A29.3 29.3 0 0 0 625.5 1000H785.1A107.9 107.9 0 0 0 892.8 892.3V592H907.8A92.1 92.1 0 0 0 973 434.9ZM931.6 523.7A33.4 33.4 0 0 1 907.9 533.5H863.5A29.3 29.3 0 0 0 834.2 562.8V892.3A49.2 49.2 0 0 1 785.1 941.4H654.9V735.3A107.9 107.9 0 0 0 547 627.5H452.9A107.9 107.9 0 0 0 345.1 735.2V941.3H215A49.2 49.2 0 0 1 165.8 892.1V562.8A29.3 29.3 0 0 0 136.5 533.5H92.8L91.4 533.5A33.4 33.4 0 0 1 68.4 476.4H68.4L476.3 68.4A33.4 33.4 0 0 1 523.6 68.4L931.4 476.2 931.6 476.4A33.4 33.4 0 0 1 931.6 523.7ZM931.6 523.7",
"width": 1000
},
"search": [
"home_icon"
]
} }
] ]
} }

@ -1 +1,2 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig" #include "Generated.xcconfig"

@ -1 +1,2 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig" #include "Generated.xcconfig"

@ -0,0 +1,90 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def parse_KV_file(file, separator='=')
file_abs_path = File.expand_path(file)
if !File.exists? file_abs_path
return [];
end
generated_key_values = {}
skip_line_start_symbols = ["#", "/"]
File.foreach(file_abs_path) do |line|
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
plugin = line.split(pattern=separator)
if plugin.length == 2
podname = plugin[0].strip()
path = plugin[1].strip()
podpath = File.expand_path("#{path}", file_abs_path)
generated_key_values[podname] = podpath
else
puts "Invalid plugin specification: #{line}"
end
end
generated_key_values
end
target 'Runner' do
use_frameworks!
use_modular_headers!
# Flutter Pod
copied_flutter_dir = File.join(__dir__, 'Flutter')
copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
# Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
# That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
# CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
unless File.exist?(generated_xcode_build_settings_path)
raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
unless File.exist?(copied_framework_path)
FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
end
unless File.exist?(copied_podspec_path)
FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
end
end
# Keep pod path relative so it can be checked into Podfile.lock.
pod 'Flutter', :path => 'Flutter'
# Plugin Pods
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
# referring to absolute paths on developers' machines.
system('rm -rf .symlinks')
system('mkdir -p .symlinks/plugins')
plugin_pods = parse_KV_file('../.flutter-plugins')
plugin_pods.each do |name, path|
symlink = File.join('.symlinks', 'plugins', name)
File.symlink(path, symlink)
pod name, :path => File.join(symlink, 'ios')
end
end
# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
install! 'cocoapods', :disable_input_output_paths => true
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end

@ -0,0 +1,127 @@
PODS:
- barcode_scan (0.0.1):
- Flutter
- MTBBarcodeScanner
- SwiftProtobuf
- connectivity (0.0.1):
- Flutter
- Reachability
- connectivity_macos (0.0.1):
- Flutter
- device_info (0.0.1):
- Flutter
- Flutter (1.0.0)
- flutter_flexible_toast (0.0.1):
- Flutter
- flutter_plugin_android_lifecycle (0.0.1):
- Flutter
- hexcolor (0.0.1):
- Flutter
- imei_plugin (0.0.1):
- Flutter
- local_auth (0.0.1):
- Flutter
- MTBBarcodeScanner (5.0.11)
- "permission_handler (5.0.0+hotfix.5)":
- Flutter
- Reachability (3.2)
- shared_preferences (0.0.1):
- Flutter
- shared_preferences_macos (0.0.1):
- Flutter
- shared_preferences_web (0.0.1):
- Flutter
- SwiftProtobuf (1.9.0)
- url_launcher (0.0.1):
- Flutter
- url_launcher_macos (0.0.1):
- Flutter
- url_launcher_web (0.0.1):
- Flutter
DEPENDENCIES:
- barcode_scan (from `.symlinks/plugins/barcode_scan/ios`)
- connectivity (from `.symlinks/plugins/connectivity/ios`)
- connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`)
- device_info (from `.symlinks/plugins/device_info/ios`)
- Flutter (from `Flutter`)
- flutter_flexible_toast (from `.symlinks/plugins/flutter_flexible_toast/ios`)
- flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
- hexcolor (from `.symlinks/plugins/hexcolor/ios`)
- imei_plugin (from `.symlinks/plugins/imei_plugin/ios`)
- local_auth (from `.symlinks/plugins/local_auth/ios`)
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`)
- shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`)
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
- url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
- url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
SPEC REPOS:
https://cdn.cocoapods.org/:
- MTBBarcodeScanner
- Reachability
- SwiftProtobuf
EXTERNAL SOURCES:
barcode_scan:
:path: ".symlinks/plugins/barcode_scan/ios"
connectivity:
:path: ".symlinks/plugins/connectivity/ios"
connectivity_macos:
:path: ".symlinks/plugins/connectivity_macos/ios"
device_info:
:path: ".symlinks/plugins/device_info/ios"
Flutter:
:path: Flutter
flutter_flexible_toast:
:path: ".symlinks/plugins/flutter_flexible_toast/ios"
flutter_plugin_android_lifecycle:
:path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
hexcolor:
:path: ".symlinks/plugins/hexcolor/ios"
imei_plugin:
:path: ".symlinks/plugins/imei_plugin/ios"
local_auth:
:path: ".symlinks/plugins/local_auth/ios"
permission_handler:
:path: ".symlinks/plugins/permission_handler/ios"
shared_preferences:
:path: ".symlinks/plugins/shared_preferences/ios"
shared_preferences_macos:
:path: ".symlinks/plugins/shared_preferences_macos/ios"
shared_preferences_web:
:path: ".symlinks/plugins/shared_preferences_web/ios"
url_launcher:
:path: ".symlinks/plugins/url_launcher/ios"
url_launcher_macos:
:path: ".symlinks/plugins/url_launcher_macos/ios"
url_launcher_web:
:path: ".symlinks/plugins/url_launcher_web/ios"
SPEC CHECKSUMS:
barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479
connectivity: 6e94255659cc86dcbef1d452ad3e0491bb1b3e75
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
flutter_flexible_toast: 0547e740cae0c33bb7c51bcd931233f4584e1143
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89
imei_plugin: cb1af7c223ac2d82dcd1457a7137d93d65d2a3cd
local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
permission_handler: 6226fcb78b97c7c7458a95c7346a11d5184fec12
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087
shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9
SwiftProtobuf: ecbec1be9036d15655f6b3443a1c4ea693c97932
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
PODFILE CHECKSUM: 1b66dae606f75376c5f2135a8290850eeb09ae83
COCOAPODS: 1.9.3

@ -9,14 +9,11 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
B650DC3076E9D70CB188286A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93A5F83B23AB032D1E096663 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
@ -26,8 +23,6 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 10; dstSubfolderSpec = 10;
files = ( files = (
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
); );
name = "Embed Frameworks"; name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -38,18 +33,20 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
75DD06875D42C7903A76DF9F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
93A5F83B23AB032D1E096663 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9D4B7DB43C6A6C849D2387CE /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
E698D7B14B12DF768FE47A1A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -57,20 +54,27 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, B650DC3076E9D70CB188286A /* Pods_Runner.framework in Frameworks */,
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
7D66D387293CE5376A07EC5F /* Pods */ = {
isa = PBXGroup;
children = (
E698D7B14B12DF768FE47A1A /* Pods-Runner.debug.xcconfig */,
75DD06875D42C7903A76DF9F /* Pods-Runner.release.xcconfig */,
9D4B7DB43C6A6C849D2387CE /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = { 9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEBA1CF902C7004384FC /* Flutter.framework */,
9740EEB21CF90195004384FC /* Debug.xcconfig */, 9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */,
@ -84,6 +88,8 @@
9740EEB11CF90186004384FC /* Flutter */, 9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */, 97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */, 97C146EF1CF9000F007C117D /* Products */,
7D66D387293CE5376A07EC5F /* Pods */,
F984EB986238F1809678CD84 /* Frameworks */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -118,6 +124,14 @@
name = "Supporting Files"; name = "Supporting Files";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
F984EB986238F1809678CD84 /* Frameworks */ = {
isa = PBXGroup;
children = (
93A5F83B23AB032D1E096663 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
@ -125,12 +139,14 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = ( buildPhases = (
986D76F6694E0D6D8C5CDAAB /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */, 9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */, 97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */, 97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */, 97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
08568E6EE9BA48E55B7C3865 /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -152,6 +168,7 @@
TargetAttributes = { TargetAttributes = {
97C146ED1CF9000F007C117D = { 97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1; CreatedOnToolsVersion = 7.3.1;
DevelopmentTeam = 3A359E86ZF;
LastSwiftMigration = 1100; LastSwiftMigration = 1100;
}; };
}; };
@ -189,6 +206,21 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
08568E6EE9BA48E55B7C3865 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -201,7 +233,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
}; };
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -217,6 +249,28 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
}; };
986D76F6694E0D6D8C5CDAAB /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@ -309,6 +363,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
@ -320,8 +375,8 @@
"$(inherited)", "$(inherited)",
"$(PROJECT_DIR)/Flutter", "$(PROJECT_DIR)/Flutter",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.example.doctorAppFlutter; PRODUCT_BUNDLE_IDENTIFIER = com.hmg.doctorApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = Runner;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
@ -443,6 +498,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
@ -454,8 +510,8 @@
"$(inherited)", "$(inherited)",
"$(PROJECT_DIR)/Flutter", "$(PROJECT_DIR)/Flutter",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.example.doctorAppFlutter; PRODUCT_BUNDLE_IDENTIFIER = com.hmg.doctorApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = Runner;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -470,6 +526,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
@ -481,8 +538,8 @@
"$(inherited)", "$(inherited)",
"$(PROJECT_DIR)/Flutter", "$(PROJECT_DIR)/Flutter",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.example.doctorAppFlutter; PRODUCT_BUNDLE_IDENTIFIER = com.hmg.doctorApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = Runner;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
@ -38,8 +36,8 @@
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <Testables>
</AdditionalOptions> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Debug"
@ -61,8 +59,6 @@
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction
buildConfiguration = "Profile" buildConfiguration = "Profile"

@ -4,4 +4,7 @@
<FileRef <FileRef
location = "group:Runner.xcodeproj"> location = "group:Runner.xcodeproj">
</FileRef> </FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace> </Workspace>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

@ -11,7 +11,7 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>doctor_app_flutter</string> <string>Doctor App</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
@ -22,12 +22,14 @@
<string>$(FLUTTER_BUILD_NUMBER)</string> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>NSCameraUsageDescription</key>
<string>Camera permission is required for barcode scanning.</string>
<key>NSFaceIDUsageDescription</key>
<string>Why is my app authenticating using face id?</string>
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <key>UIMainStoryboardFile</key>
<string>Main</string> <string>Main</string>
<key>NSFaceIDUsageDescription</key>
<string>Why is my app authenticating using face id?</string>
<key>UISupportedInterfaceOrientations</key> <key>UISupportedInterfaceOrientations</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
@ -43,7 +45,5 @@
</array> </array>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<false/> <false/>
<key>NSCameraUsageDescription</key>
<string>Camera permission is required for barcode scanning.</string>
</dict> </dict>
</plist> </plist>

@ -0,0 +1,18 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/interceptor/http_interceptor.dart';
import 'package:http/http.dart';
// OWNER : Ibrahim albitar
// DATE : 22-04-2020
// DESCRIPTION : Custom App client to pin base url for all srvices
class AppClient {
static Client client = HttpInterceptor().getClient();
static Future<Response> post(dynamic path, {dynamic body}) async {
String _fullUrl = BASE_URL + path;
final response = await client.post(_fullUrl, body: body);
return response;
}
}

@ -3,11 +3,8 @@ import 'dart:convert';
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/doctor_profile_model.dart'; import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -44,7 +41,7 @@ class BaseAppClient {
body['DoctorID'] = doctorProfile?.doctorID; body['DoctorID'] = doctorProfile?.doctorID;
body['EditedBy'] = doctorProfile?.doctorID; body['EditedBy'] = doctorProfile?.doctorID;
body['ProjectID'] = doctorProfile?.projectID; body['ProjectID'] = doctorProfile?.projectID;
if (!body.containsKey('ClinicID')) // if (!body.containsKey('ClinicID'))
body['ClinicID'] = doctorProfile?.clinicID; body['ClinicID'] = doctorProfile?.clinicID;
} }
body['TokenID'] = token ?? ''; body['TokenID'] = token ?? '';
@ -56,6 +53,8 @@ class BaseAppClient {
body['SessionID'] = SESSION_ID; body['SessionID'] = SESSION_ID;
body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP; body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP;
body['PatientOutSA'] = PATIENT_OUT_SA; body['PatientOutSA'] = PATIENT_OUT_SA;
print("URL : $url");
print("Body : ${json.encode(body)}");
if (await Helpers.checkConnection()) { if (await Helpers.checkConnection()) {
final response = await http.post(url, final response = await http.post(url,
@ -70,7 +69,8 @@ class BaseAppClient {
} else { } else {
var parsed = json.decode(response.body.toString()); var parsed = json.decode(response.body.toString());
if (!parsed['IsAuthenticated']) { if (!parsed['IsAuthenticated']) {
Navigator.of(AppGlobal.CONTEX).pushNamed(LOGIN); await helpers.logout();
helpers.showErrorToast('Your session expired Please login agian'); helpers.showErrorToast('Your session expired Please login agian');
} else if (parsed['MessageStatus'] == 1) { } else if (parsed['MessageStatus'] == 1) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);

@ -1,14 +1,17 @@
const MAX_SMALL_SCREEN = 660; const MAX_SMALL_SCREEN = 660;
const ONLY_NUMBERS = "[0-9]"; const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z]"; const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]"; const ONLY_DATE = "[0-9/]";
const BASE_URL = 'https://hmgwebservices.com/Services/'; const BASE_URL = 'https://hmgwebservices.com/Services/';
//const BASE_URL = 'https://uat.hmgwebservices.com/Services/'; //const BASE_URL = 'https://uat.hmgwebservices.com/Services/';
const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems_Region"; const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems_Region";
const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList"; const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL = "DoctorApplication.svc/REST/GetProgressNoteForInPatient"; const PATIENT_PROGRESS_NOTE_URL =
const PATIENT_INSURANCE_APPROVALS_URL = "DoctorApplication.svc/REST/GetApprovalStatusForInpatient"; "DoctorApplication.svc/REST/GetProgressNoteForInPatient";
const PATIENT_ORDERS_URL = "DoctorApplication.svc/REST/GetProgressNoteForInPatient"; const PATIENT_INSURANCE_APPROVALS_URL =
"DoctorApplication.svc/REST/GetApprovalStatusForInpatient";
const PATIENT_ORDERS_URL =
"DoctorApplication.svc/REST/GetProgressNoteForInPatient";
const PATIENT_REFER_TO_DOCTOR_URL = "DoctorApplication.svc/REST/ReferToDoctor"; const PATIENT_REFER_TO_DOCTOR_URL = "DoctorApplication.svc/REST/ReferToDoctor";
const PATIENT_GET_DOCTOR_BY_CLINIC_URL = "DoctorApplication.svc/REST/GetDoctorsByClinicID"; const PATIENT_GET_DOCTOR_BY_CLINIC_URL = "DoctorApplication.svc/REST/GetDoctorsByClinicID";
const PATIENT_GET_LIST_REFERAL_URL = "Lists.svc/REST/GetList_STPReferralFrequency"; const PATIENT_GET_LIST_REFERAL_URL = "Lists.svc/REST/GetList_STPReferralFrequency";
@ -71,4 +74,3 @@ const TIMER_MIN =10;
class AppGlobal{ class AppGlobal{
static var CONTEX; static var CONTEX;
} }

@ -50,4 +50,5 @@ const Map<String, Map<String, String>> localizedValues = {
'phoneNumber': {'en': 'Phone Number ', 'ar': 'رقم الجوال'}, 'phoneNumber': {'en': 'Phone Number ', 'ar': 'رقم الجوال'},
'patientID': {'en': 'Patient ID', 'ar': 'رقم المريض'}, 'patientID': {'en': 'Patient ID', 'ar': 'رقم المريض'},
'patientFile ': {'en': 'Patient File', 'ar': 'ملف المريض'}, 'patientFile ': {'en': 'Patient File', 'ar': 'ملف المريض'},
'familyMedicine': {'en': 'Family Medicine Clinic', 'ar': 'عيادة طب الأسرة'}
}; };

@ -0,0 +1,65 @@
import 'dart:convert';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/providers/auth_provider.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:http/http.dart';
import 'package:http_interceptor/http_interceptor.dart';
import '../providers/auth_provider.dart';
import '../util/dr_app_shared_pref.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
List<String> publicUrls = [
LOGIN_URL,
SELECT_DEVICE_IMEI,
MEMBER_CHECK_ACTIVATION_CODE_NEW,
SEND_ACTIVATION_CODE_BY_OTP_NOTIFICATION_TYPE
];
class HttpInterceptor extends InterceptorContract {
Client getClient(){
return HttpClientWithInterceptor.build(interceptors: [this]);
}
Future<RequestData> interceptRequest({RequestData data}) async {
print('RequestData ${data.body}');
print('RequestData ${data.url}');
try {
data.headers["Content-Type"] = "application/json";
data.headers["Accept"] = "application/json";
// if (publicUrls.contains(data.url)) {
// var loggedUserInfo = await sharedPref.getObj('loggedUser');
// var token = await sharedPref.getString(TOKEN);
// // print("token"+token);
// // print('loggedUserInfo${loggedUserInfo["LogInTokenID"]}');
// // // the sevices handel the token in differat name so I ask to be change
// // // we must change the imple
// var body = json.decode(data.body);
// body['LogInTokenID']=token;
// data.body = json.encode(body);
// // data.body['LogInTokenID'] = '';
// } else {
// if (data.body['LogInTokenID']) {
// data.body['LogInTokenID'] = '';
// }
// if (data.body['TokenID']) {
// data.body['TokenID'] = '';
// }
// }
} catch (e) {
print(e);
}
// print('data.body${data.body}');
return data;
}
@override
Future<ResponseData> interceptResponse({ResponseData data}) async {
// print('ResponseData ${data.body}');
return data;
}
}

@ -51,14 +51,7 @@ class _LandingPageState extends State<LandingPage> {
}, },
), ),
centerTitle: true, centerTitle: true,
actions: <Widget>[
ProfileImageWidget(
height: 50,
width: 50,
url:
"https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png",
)
],
), ),
drawer: Theme( drawer: Theme(
data: Theme.of(context).copyWith( data: Theme.of(context).copyWith(

@ -75,8 +75,10 @@
"Desciption": "Ajaji Dental Clinic (AMS)", "Desciption": "Ajaji Dental Clinic (AMS)",
"DesciptionN": null, "DesciptionN": null,
"ID": 99, "ID": 99,
"LegalName": "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company", "LegalName":
"LegalNameN": "شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان", "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company",
"LegalNameN":
"شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان",
"Name": "Ajaji Dental Clinic (AMS)", "Name": "Ajaji Dental Clinic (AMS)",
"NameN": null, "NameN": null,
"PhoneNumber": "+966115259999", "PhoneNumber": "+966115259999",
@ -93,8 +95,10 @@
"Desciption": "Ajaji Dental Clinic (AMS)", "Desciption": "Ajaji Dental Clinic (AMS)",
"DesciptionN": null, "DesciptionN": null,
"ID": 100, "ID": 100,
"LegalName": "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company", "LegalName":
"LegalNameN": "شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان", "from Dr. Abdulaziz A. Al - Ajaji Dental Clinics Complex Company",
"LegalNameN":
"شركة مجمع عيادات الدكتور عبدالعزيز ابرهيم العجاجي لطب الاسنان",
"Name": "Ajaji Dental Clinic (AMS) Malaz", "Name": "Ajaji Dental Clinic (AMS) Malaz",
"NameN": null, "NameN": null,
"PhoneNumber": "+966115259999", "PhoneNumber": "+966115259999",

@ -1,4 +1,3 @@
const PATIENT_TYPE = const [ const PATIENT_TYPE = const [
{"text": "outPatiant", "val": "0"}, {"text": "outPatiant", "val": "0"},
{"text": "InPatiant", "val": "1"}, {"text": "InPatiant", "val": "1"},
@ -7,21 +6,13 @@
{"text": "Referral Discharge", "val": "4"}, {"text": "Referral Discharge", "val": "4"},
{"text": "Tomorrow Patient", "val": "5"}, {"text": "Tomorrow Patient", "val": "5"},
{"text": "Referral", "val": "6"}, {"text": "Referral", "val": "6"},
]; ];
const LOCATIONS = const [ const LOCATIONS = const [
{"text": "In Sudia Arabia", "val": "1"}, {"text": "In Sudia Arabia", "val": "1"},
{"text": "Out Sudia Arabia", "val": "2"}, {"text": "Out Sudia Arabia", "val": "2"},
]; ];
enum vitalSignDetails { enum vitalSignDetails {
bodyMeasurements, bodyMeasurements,
temperature, temperature,

@ -1,3 +1,5 @@
import 'package:flutter/cupertino.dart';
class ReferToDoctorRequest { class ReferToDoctorRequest {
/* /*
@ -64,27 +66,27 @@ class ReferToDoctorRequest {
*/ */
ReferToDoctorRequest( ReferToDoctorRequest(
{this.projectID, {@required this.projectID,
this.admissionNo, @required this.admissionNo,
this.roomID = "ISO-6", @required this.roomID ,
this.referralClinic, @required this.referralClinic,
this.referralDoctor , @required this.referralDoctor ,
this.createdBy, @required this.createdBy,
this.editedBy , @required this.editedBy ,
this.patientID, @required this.patientID,
this.patientTypeID = 1, @required this.patientTypeID,
this.referringClinic, @required this.referringClinic,
this.referringDoctor, @required this.referringDoctor,
this.referringDoctorRemarks, @required this.referringDoctorRemarks,
this.priority , @required this.priority ,
this.frequency, @required this.frequency,
this.extension, @required this.extension,
this.languageID = 2, this.languageID = 2,
this.stamp = "2020-06-03T11:26:42.358Z", this.stamp = "2020-06-03T11:26:42.358Z",
this.iPAdress = "11.11.11.11", this.iPAdress = "11.11.11.11",
this.versionID = 1.2, this.versionID = 1.2,
this.channel = 9, this.channel = 9,
this.tokenID, @required this.tokenID,
this.sessionID = "JBXRsDl37L", this.sessionID = "JBXRsDl37L",
this.isLoginForDoctorApp = true, this.isLoginForDoctorApp = true,
this.patientOutSA = false}); this.patientOutSA = false});

@ -31,4 +31,7 @@ class DoctorApp {
static const IconData message_icon_active = IconData(0xe807, 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 scdedule_icon_active = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData schedule_icon = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData schedule_icon = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData reject_icon = 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);
} }

@ -1,11 +1,14 @@
import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'dart:convert';
import 'package:doctor_app_flutter/client/app_client.dart';
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart'; import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart';
import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart'; import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import '.../../../util/dr_app_shared_pref.dart';
class MedicineProvider with ChangeNotifier { class MedicineProvider with ChangeNotifier {
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
@ -15,25 +18,40 @@ class MedicineProvider with ChangeNotifier {
bool hasError = false; bool hasError = false;
String errorMsg = ''; String errorMsg = '';
PharmaciesItemsRequestModel _itemsRequestModel = PharmaciesItemsRequestModel _itemsRequestModel =PharmaciesItemsRequestModel();
PharmaciesItemsRequestModel();
PharmaciesListRequestModel _listRequestModel = PharmaciesListRequestModel(); PharmaciesListRequestModel _listRequestModel = PharmaciesListRequestModel();
Future<String> getMedicineItem(String itemName) async { Future<String> getMedicineItem(String itemName) async {
resetDefaultValues(); resetDefaultValues();
try { try {
if (await Helpers.checkConnection()) {
_itemsRequestModel.pHRItemName = itemName; _itemsRequestModel.pHRItemName = itemName;
await BaseAppClient.post(PHARMACY_ITEMS_URL,
onSuccess: (dynamic response, int statusCode) { final response = await AppClient.post(PHARMACY_ITEMS_URL,
pharmacyItemsList = response['ListPharmcy_Region']; body: json.encode(_itemsRequestModel.toJson()));
final int statusCode = response.statusCode;
isFinished = true;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isFinished = true;
hasError = true;
errorMsg = 'Error While Fetching data';
} else {
var parsed = json.decode(response.body.toString());
if (parsed['MessageStatus'] == 1) {
pharmacyItemsList = parsed['ListPharmcy_Region'];
hasError = false; hasError = false;
isFinished = true; isFinished = true;
errorMsg = "Done"; errorMsg = "Done";
}, onFailure: (String error, int statusCode) { } else {
hasError = true;
errorMsg = parsed['ErrorMessage'] ?? parsed['ErrorEndUserMessage'];
}
}
} else {
isFinished = true; isFinished = true;
hasError = true; hasError = true;
errorMsg = error; errorMsg = 'Please Check The Internet Connection';
}, body: _itemsRequestModel.toJson()); }
notifyListeners(); notifyListeners();
} catch (error) { } catch (error) {
throw error; throw error;
@ -43,20 +61,37 @@ class MedicineProvider with ChangeNotifier {
} }
Future<String> getPharmaciesList(int itemId) async { Future<String> getPharmaciesList(int itemId) async {
String token = await sharedPref.getString(TOKEN);
resetDefaultValues(); resetDefaultValues();
try { try {
if (await Helpers.checkConnection()) {
_listRequestModel.itemID = itemId; _listRequestModel.itemID = itemId;
await BaseAppClient.post(PHARMACY_LIST_URL, _listRequestModel.tokenID = token;
onSuccess: (dynamic response, int statusCode) { final response = await AppClient.post(PHARMACY_LIST_URL,
pharmaciesList = response['PharmList']; body: json.encode(_listRequestModel.toJson()));
final int statusCode = response.statusCode;
isFinished = true;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isFinished = true;
hasError = true;
errorMsg = 'Error While Fetching data';
} else {
var parsed = json.decode(response.body.toString());
if (parsed['MessageStatus'] == 1) {
pharmaciesList = parsed['PharmList'];
hasError = false; hasError = false;
isFinished = true; isFinished = true;
errorMsg = "Done"; errorMsg = "Done";
}, onFailure: (String error, int statusCode) { } else {
hasError = true;
errorMsg = parsed['ErrorMessage'] ?? parsed['ErrorEndUserMessage'];
}
}
} else {
isFinished = true; isFinished = true;
hasError = true; hasError = true;
errorMsg = error; errorMsg = 'Please Check The Internet Connection';
}, body: _listRequestModel.toJson()); }
notifyListeners(); notifyListeners();
} catch (error) { } catch (error) {
throw error; throw error;

@ -1,3 +1,6 @@
import 'dart:convert';
import 'package:doctor_app_flutter/client/app_client.dart';
import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/doctor_profile_model.dart'; import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
@ -13,6 +16,7 @@ import 'package:doctor_app_flutter/models/patient/prescription_res_model.dart';
import 'package:doctor_app_flutter/models/patient/radiology_res_model.dart'; import 'package:doctor_app_flutter/models/patient/radiology_res_model.dart';
import 'package:doctor_app_flutter/models/patient/refer_to_doctor_request.dart'; import 'package:doctor_app_flutter/models/patient/refer_to_doctor_request.dart';
import 'package:doctor_app_flutter/models/prescription_report.dart'; import 'package:doctor_app_flutter/models/prescription_report.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import '../config/config.dart'; import '../config/config.dart';
@ -25,6 +29,7 @@ import '../models/patient/vital_sign_res_model.dart';
import '../util/helpers.dart'; import '../util/helpers.dart';
Helpers helpers = Helpers(); Helpers helpers = Helpers();
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
class PatientsProvider with ChangeNotifier { class PatientsProvider with ChangeNotifier {
bool isLoading = false; bool isLoading = false;
@ -62,16 +67,15 @@ class PatientsProvider with ChangeNotifier {
PatiantInformtion _selectedPatient; PatiantInformtion _selectedPatient;
getPatientList(PatientModel patient, patientType) async { Future<dynamic> getPatientList(PatientModel patient, patientType) async {
int val = int.parse(patientType); int val = int.parse(patientType);
try { try {
var localResponse; dynamic localRes;
await BaseAppClient.post( await BaseAppClient.post('DoctorApplication.svc/REST/' + SERVICES_PATIANT[val],
'DoctorApplication.svc/REST/' + SERVICES_PATIANT[val], onSuccess: (dynamic response, int statusCode) {
onSuccess: (dynamic response, int statusCode) async { localRes = response;
localResponse = response; }, onFailure: (String error, int statusCode) {
}, onFailure: (String error, int statusCode) async {
throw error; throw error;
}, body: { }, body: {
"ProjectID": patient.ProjectID, "ProjectID": patient.ProjectID,
@ -96,9 +100,10 @@ class PatientsProvider with ChangeNotifier {
"PatientOutSA": patient.PatientOutSA "PatientOutSA": patient.PatientOutSA
}); });
return localResponse; return Future.value(localRes);
} catch (err) { } catch (error) {
handelCatchErrorCase(error); print(error);
throw error;
} }
} }
@ -481,48 +486,69 @@ class PatientsProvider with ChangeNotifier {
*@Date:3/6/2020 *@Date:3/6/2020
*@desc: referToDoctor *@desc: referToDoctor
*/ */
referToDoctor( referToDoctor(context,
int selectedDoctorID, {String selectedDoctorID,
int selectedClinicID, String selectedClinicID,
String selectedReferralFrequancyID,
int admissionNo, int admissionNo,
String extension, String extension,
String doctorRemark) async { String priority,
String frequency,
String referringDoctorRemarks,
int patientID,
int patientTypeID,
String roomID,
int projectID}) async {
setBasicData();
try {
if (await Helpers.checkConnection()) {
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
int projectID = await sharedPref.getInt(PROJECT_ID);
Map profile = await sharedPref.getObj(DOCTOR_PROFILE); Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = new DoctorProfileModel.fromJson(profile); DoctorProfileModel doctorProfile =
new DoctorProfileModel.fromJson(profile);
int doctorID = doctorProfile.doctorID; int doctorID = doctorProfile.doctorID;
int clinicId = doctorProfile.clinicID; int clinicId = doctorProfile.clinicID;
setBasicData(); _referToDoctorRequest = ReferToDoctorRequest(
try { projectID: projectID,
// _referToDoctorRequest.tokenID = token; admissionNo: admissionNo,
// _referToDoctorRequest.admissionNo = admissionNo; roomID: roomID,
// _referToDoctorRequest.projectID = projectID; referralClinic: selectedClinicID.toString(),
// _referToDoctorRequest.tokenID = token; referralDoctor: selectedDoctorID.toString(),
// _referToDoctorRequest.extension = extension; createdBy: doctorID,
// _referToDoctorRequest.frequency = selectedReferralFrequancyID; editedBy: doctorID,
// _referToDoctorRequest.patientID = patientID: patientID,
// _referToDoctorRequest.priority = patientTypeID: patientTypeID,
// _referToDoctorRequest.referralClinic = referringClinic: clinicId,
// _referToDoctorRequest.referralDoctor = referringDoctor: doctorID,
// _referToDoctorRequest.referringDoctorRemarks = referringDoctorRemarks: referringDoctorRemarks,
// _referToDoctorRequest.roomID = priority: priority,
// _referToDoctorRequest.referringClinic = frequency: frequency,
// _referToDoctorRequest.referringDoctor = extension: extension,
tokenID: token);
await BaseAppClient.post(PATIENT_REFER_TO_DOCTOR_URL,
onSuccess: (dynamic response, int statusCode) { final response = await AppClient.post(PATIENT_REFER_TO_DOCTOR_URL,
patientProgressNoteList = response['List_GetPregressNoteForInPatient']; body: json.encode(_referToDoctorRequest));
final int statusCode = response.statusCode;
isLoading = false; isLoading = false;
isError = false;
this.error = ''; if (statusCode < 200 || statusCode >= 400 || json == null) {
}, onFailure: (String error, int statusCode) { isError = true;
error = 'Error While Fetching data';
} else {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
print('Done : \n $res');
Navigator.pop(context);
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
}
} else {
isLoading = false; isLoading = false;
isError = true; isError = true;
this.error = error; error = 'Please Check The Internet Connection';
}, body: _referralFrequencyRequest.toJson()); }
notifyListeners(); notifyListeners();
} catch (err) { } catch (err) {
handelCatchErrorCase(err); handelCatchErrorCase(err);

@ -7,6 +7,7 @@ import 'package:doctor_app_flutter/models/patient/patient_model.dart';
import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart'; import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart';
import 'package:doctor_app_flutter/providers/patients_provider.dart'; import 'package:doctor_app_flutter/providers/patients_provider.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/widgets/shared/app_button.dart'; import 'package:doctor_app_flutter/widgets/shared/app_button.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
@ -159,9 +160,9 @@ DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
} else { } else {
setState(() { setState(() {
isError = true; isError = true;
error = 'No patient';
isLoading = false; isLoading = false;
}); });
DrAppToastMsg.showErrorToast('No patient');
} }
break; break;
case "1": case "1":
@ -176,20 +177,27 @@ DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
}); });
} else { } else {
setState(() { setState(() {
error = 'No patient';
isError = true; isError = true;
isLoading = false; isLoading = false;
}); });
DrAppToastMsg.showErrorToast('No patient');
break; break;
} }
} }
} else { } else {
setState(() { setState(() {
error = response['ErrorEndUserMessage'] ?? response['ErrorMessage'] ;
isLoading = false; isLoading = false;
isError = true; isError = true;
}); });
DrAppToastMsg.showErrorToast(response['ErrorEndUserMessage'] ?? response['ErrorMessage']);
} }
}).catchError((error){
setState(() {
isLoading = false;
});
helpers.showErrorToast(error);
//DrAppToastMsg.showErrorToast(error);
}); });
} }
// } // }

@ -56,7 +56,7 @@ class _LoginsreenState extends State<Loginsreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
AppGlobal.CONTEX = context;
getSharedPref(); getSharedPref();
return AppScaffold( return AppScaffold(
isLoading: _isLoading, isLoading: _isLoading,

@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/providers/medicine_provider.dart';
import 'package:doctor_app_flutter/providers/hospital_provider.dart'; import 'package:doctor_app_flutter/providers/hospital_provider.dart';
import 'package:doctor_app_flutter/providers/referral_patient_provider.dart'; import 'package:doctor_app_flutter/providers/referral_patient_provider.dart';
import 'package:doctor_app_flutter/providers/referred_patient_provider.dart'; import 'package:doctor_app_flutter/providers/referred_patient_provider.dart';
import 'package:doctor_app_flutter/screens/QR_reader_screen.dart';
import 'package:doctor_app_flutter/screens/medicine/medicine_search_screen.dart'; import 'package:doctor_app_flutter/screens/medicine/medicine_search_screen.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
@ -26,7 +27,7 @@ class DashboardScreen extends StatefulWidget {
DashboardScreen({Key key, this.title}) : super(key: key); DashboardScreen({Key key, this.title}) : super(key: key);
final String title; final String title;
final String iconURL = 'assets/images/dashboard_icon/';
@override @override
_DashboardScreenState createState() => _DashboardScreenState(); _DashboardScreenState createState() => _DashboardScreenState();
} }
@ -36,6 +37,11 @@ class _DashboardScreenState extends State<DashboardScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
projectsProvider = Provider.of(context); projectsProvider = Provider.of(context);
return SafeArea( return SafeArea(
bottom: true, bottom: true,
@ -43,20 +49,36 @@ class _DashboardScreenState extends State<DashboardScreen> {
body: SingleChildScrollView( body: SingleChildScrollView(
child: SizedBox( child: SizedBox(
height: MediaQuery.of(context).size.height * 1.09, height: MediaQuery.of(context).size.height * 1.09,
// height: MediaQuery.of(context).size.height * 0.2,
// width: SizeConfig.screenWidth * 0.9,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Row(
flex: 1, mainAxisAlignment: MainAxisAlignment.spaceBetween,
child: Container( mainAxisSize: MainAxisSize.max,
margin: EdgeInsets.all(10), crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 10, top: 10),
child: AppText( child: AppText(
TranslationBase.of(context).todayStatistics, TranslationBase.of(context).familyMedicine,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 2.5,
), ),
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
), ),
Container(
margin: EdgeInsets.only(left: 10, top: 10, right: 10),
child: Icon(
Icons.settings,
size: SizeConfig.textMultiplier * 2.5,
))
]),
Container(
margin: EdgeInsets.only(left: 10, top: 5),
child: AppText(
TranslationBase.of(context).todayStatistics,
fontWeight: FontWeight.bold,
),
alignment: Alignment.centerLeft,
), ),
Expanded( Expanded(
flex: 3, flex: 3,
@ -67,7 +89,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
flex: 2, flex: 2,
child: RoundedContainer( child: RoundedContainer(
child: CircularPercentIndicator( child: CircularPercentIndicator(
radius: 115.0, radius: 100,
animation: true, animation: true,
animationDuration: 1200, animationDuration: 1200,
lineWidth: 7.0, lineWidth: 7.0,
@ -80,7 +102,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
fontSize: SizeConfig.textMultiplier * 4), fontSize: SizeConfig.textMultiplier * 4),
AppText(TranslationBase.of(context).outPatients, AppText(TranslationBase.of(context).outPatients,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
fontSize: SizeConfig.textMultiplier * 1.2, fontSize: SizeConfig.textMultiplier * 1.1,
color: Colors.grey[800]), color: Colors.grey[800]),
], ],
), ),
@ -149,7 +171,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
flex: 2, flex: 2,
child: new DashboardItemIconText( child: new DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'lab_results.svg',
"08", "08",
TranslationBase.of(context).labResult, TranslationBase.of(context).labResult,
backgroundColor: Colors.black45, backgroundColor: Colors.black45,
@ -161,7 +183,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
flex: 2, flex: 2,
child: new DashboardItemIconText( child: new DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'radiology.svg',
"10", "10",
TranslationBase.of(context).radiology, TranslationBase.of(context).radiology,
backgroundColor: Colors.black45, backgroundColor: Colors.black45,
@ -172,7 +194,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
flex: 2, flex: 2,
child: new DashboardItemIconText( child: new DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'referral.svg',
"05", "05",
TranslationBase.of(context).referral, TranslationBase.of(context).referral,
backgroundColor: Colors.black45, backgroundColor: Colors.black45,
@ -191,17 +213,17 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
flex: 2, flex: 2,
child: new DashboardItemIconText( child: new DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'in_patient_white.svg',
"23", "23",
TranslationBase.of(context).inPatient, "In-Patient",
showBorder: true, showBorder: true,
backgroundColor: Colors.red[900], backgroundColor: Colors.red[900],
), iconColor: Colors.white),
), ),
Expanded( Expanded(
flex: 2, flex: 2,
child: new DashboardItemIconText( child: new DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'operations.svg',
"23", "23",
TranslationBase.of(context).operations, TranslationBase.of(context).operations,
showBorder: true, showBorder: true,
@ -224,13 +246,12 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
flex: 2, flex: 2,
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
flex: 2, flex: 2,
child: InkWell( child: InkWell(
child: DashboardItemIconText( child: DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'search_patient.svg',
"", "",
TranslationBase.of(context).searchPatient, TranslationBase.of(context).searchPatient,
showBorder: true, showBorder: true,
@ -238,7 +259,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
valueFontColor: Colors.black, valueFontColor: Colors.black,
titleFontColor: Colors.black, titleFontColor: Colors.black,
iconColor: Colors.black, iconColor: Colors.black,
titleFontSize: 16, titleFontSize: SizeConfig.textMultiplier * 2,
), ),
onTap: () { onTap: () {
Navigator.of(context).pushNamed(PATIENT_SEARCH); Navigator.of(context).pushNamed(PATIENT_SEARCH);
@ -260,7 +281,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
); );
}, },
child: DashboardItemIconText( child: DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'message_icon.svg',
"", "",
TranslationBase.of(context).doctorReply, TranslationBase.of(context).doctorReply,
showBorder: true, showBorder: true,
@ -268,7 +289,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
valueFontColor: Colors.black, valueFontColor: Colors.black,
titleFontColor: Colors.black, titleFontColor: Colors.black,
iconColor: Colors.black, iconColor: Colors.black,
titleFontSize: 16, titleFontSize: SizeConfig.textMultiplier * 2,
), ),
), ),
), ),
@ -284,7 +305,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
flex: 1, flex: 1,
child: InkWell( child: InkWell(
child: DashboardItemIconText( child: DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'search_patient.svg',
"", "",
TranslationBase.of(context).searchMedicine, TranslationBase.of(context).searchMedicine,
showBorder: true, showBorder: true,
@ -292,7 +313,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
valueFontColor: Colors.black, valueFontColor: Colors.black,
titleFontColor: Colors.black, titleFontColor: Colors.black,
iconColor: Colors.black, iconColor: Colors.black,
titleFontSize: 14, titleFontSize: SizeConfig.textMultiplier * 2,
), ),
onTap: () { onTap: () {
Navigator.push( Navigator.push(
@ -322,7 +343,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
); );
}, },
child: DashboardItemIconText( child: DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'referral.svg',
"", "",
TranslationBase.of(context).myReferralPatient, TranslationBase.of(context).myReferralPatient,
showBorder: true, showBorder: true,
@ -330,7 +351,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
valueFontColor: Colors.black, valueFontColor: Colors.black,
titleFontColor: Colors.black, titleFontColor: Colors.black,
iconColor: Colors.black, iconColor: Colors.black,
titleFontSize: 14, titleFontSize: SizeConfig.textMultiplier * 2,
), ),
), ),
), ),
@ -357,7 +378,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
); );
}, },
child: DashboardItemIconText( child: DashboardItemIconText(
DoctorApp.home_icon, widget.iconURL + 'referral.svg',
"", "",
TranslationBase.of(context).myReferredPatient, TranslationBase.of(context).myReferredPatient,
showBorder: true, showBorder: true,
@ -365,11 +386,29 @@ class _DashboardScreenState extends State<DashboardScreen> {
valueFontColor: Colors.black, valueFontColor: Colors.black,
titleFontColor: Colors.black, titleFontColor: Colors.black,
iconColor: Colors.black, iconColor: Colors.black,
titleFontSize: 14, titleFontSize: SizeConfig.textMultiplier * 2,
),
),
),
Expanded(
flex: 1,
child: InkWell(
onTap: () {
Navigator.of(context).pushNamed(QR_READER);
},
child: DashboardItemIconText(
widget.iconURL + 'qr-code.svg',
"",
"QR Reader",
showBorder: true,
backgroundColor: Colors.white,
valueFontColor: Colors.black,
titleFontColor: Colors.black,
iconColor: Colors.black,
titleFontSize: SizeConfig.textMultiplier * 2,
), ),
), ),
), ),
Expanded(flex: 1, child: Container())
], ],
)), )),
], ],

@ -6,8 +6,6 @@ import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indei
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../config/size_config.dart';
import '../../widgets/shared/app_scaffold_widget.dart';
class MyScheduleScreen extends StatelessWidget { class MyScheduleScreen extends StatelessWidget {
ScheduleProvider scheduleProvider; ScheduleProvider scheduleProvider;

@ -11,7 +11,6 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart'; import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart'; import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../util/extenstions.dart'; import '../../util/extenstions.dart';
@ -46,7 +45,6 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
appBarTitle: "Search Medicine", appBarTitle: "Search Medicine",
body: Column( body: Column(
@ -61,17 +59,15 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
hintText: 'Search Medicine Name Here..', hintText: 'Search Medicine Name Here..',
controller: myController, controller: myController,
onSaved: (value) {}, onSaved: (value) {},
// validator: (value) {
// return TextValidator().validateName(value);
// },
inputFormatter: ONLY_LETTERS), inputFormatter: ONLY_LETTERS),
), ),
Container( Container(
margin: EdgeInsets.only(bottom: 5, margin: EdgeInsets.only(
left: 10, bottom: SizeConfig.heightMultiplier * 1,
right: 10, right: SizeConfig.heightMultiplier * 2,
top: 0), left: SizeConfig.heightMultiplier * 2,
top: SizeConfig.heightMultiplier * 1),
child: Wrap( child: Wrap(
alignment: WrapAlignment.center, alignment: WrapAlignment.center,
children: <Widget>[ children: <Widget>[
@ -91,15 +87,18 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText( AppText(
"You find " + (data == null ? "0": data.length.toString())+" items in search", "You find " +
(data == null ? "0" : data.length.toString()) +
" items in search",
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
margin: 5,), margin: 5,
),
], ],
), ),
), ),
Expanded( Expanded(
child: Container( child: Container(
width: SizeConfig.screenWidth * 0.80, width: SizeConfig.screenWidth * 0.90,
child: !_medicineProvider.isFinished child: !_medicineProvider.isFinished
? DrAppCircularProgressIndeicator() ? DrAppCircularProgressIndeicator()
: _medicineProvider.hasError : _medicineProvider.hasError
@ -109,12 +108,12 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
style: TextStyle( style: TextStyle(
color: Theme.of(context).errorColor), color: Theme.of(context).errorColor),
), ),
):ListView.builder( )
: ListView.builder(
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
shrinkWrap: true, shrinkWrap: true,
itemCount: data == null ? 0 : data.length, itemCount: data == null ? 0 : data.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return InkWell( return InkWell(
child: MedicineItemWidget( child: MedicineItemWidget(
label: data[index]["ItemDescription"], label: data[index]["ItemDescription"],
@ -124,10 +123,11 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => ChangeNotifierProvider( builder: (context) =>
ChangeNotifierProvider(
create: (_) => MedicineProvider(), create: (_) => MedicineProvider(),
child: PharmaciesListScreen( child: PharmaciesListScreen(
itemID: data[index]["ItemID"]), itemID: data[index]["ItemID"], url: data[index]["ProductImageBase64"]),
), ),
), ),
); );

@ -1,11 +1,10 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'dart:convert';
import 'dart:typed_data';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart';
import 'package:doctor_app_flutter/providers/medicine_provider.dart'; import 'package:doctor_app_flutter/providers/medicine_provider.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/widgets/medicine/medicine_item_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart'; import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
@ -20,8 +19,11 @@ DrAppSharedPreferances sharedPref = DrAppSharedPreferances();
class PharmaciesListScreen extends StatefulWidget { class PharmaciesListScreen extends StatefulWidget {
final int itemID; final int itemID;
final String url;
// In the constructor, require a item id. // In the constructor, require a item id.
PharmaciesListScreen({Key key, @required this.itemID}) : super(key: key); PharmaciesListScreen({Key key, @required this.itemID, this.url})
: super(key: key);
@override @override
_PharmaciesListState createState() => _PharmaciesListState(); _PharmaciesListState createState() => _PharmaciesListState();
@ -61,13 +63,37 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
TextStyle(color: Theme.of(context).errorColor), TextStyle(color: Theme.of(context).errorColor),
), ),
) )
: Column( : StreamBuilder<Object>(
stream: null,
builder: (context, snapshot) {
return Row(
children: <Widget>[
Expanded(
flex: 1,
child: ClipRRect(
borderRadius:
BorderRadius.all(Radius.circular(7)),
child: Image.memory(
dataFromBase64String(widget.url),
height: SizeConfig.imageSizeMultiplier * 21,
width: SizeConfig.imageSizeMultiplier * 20,
fit: BoxFit.cover,
),
),
),
Expanded(
flex: 3,
child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment:
CrossAxisAlignment.stretch,
children: <Widget>[ children: <Widget>[
AppText( AppText(
"Description", "Description",
margin: 10, marginLeft: 10,
marginTop: 0,
marginRight: 10,
marginBottom: 2,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
AppText( AppText(
@ -79,7 +105,10 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
), ),
AppText( AppText(
"Price", "Price",
margin: 10, marginLeft: 10,
marginTop: 0,
marginRight: 10,
marginBottom: 2,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
AppText( AppText(
@ -90,15 +119,21 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
marginBottom: 10, marginBottom: 10,
), ),
], ],
)), ),
)
],
);
})),
Container( Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5), margin: EdgeInsets.only(top:SizeConfig.widthMultiplier * 2,
bottom: SizeConfig.widthMultiplier * 2,
right: SizeConfig.widthMultiplier * 4,
left: SizeConfig.widthMultiplier * 4,),
child: Align( child: Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: AppText( child: AppText(
"You can Find it in", "You can Find it in",
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: SizeConfig.textMultiplier * 3,
))), ))),
Expanded( Expanded(
child: Container( child: Container(
@ -114,7 +149,8 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
Expanded( Expanded(
flex: 1, flex: 1,
child: ClipRRect( child: ClipRRect(
borderRadius:BorderRadius.all(Radius.circular(7)), borderRadius:
BorderRadius.all(Radius.circular(7)),
child: Image.network( child: Image.network(
_data[index]["ProjectImageURL"], _data[index]["ProjectImageURL"],
height: SizeConfig.imageSizeMultiplier * 15, height: SizeConfig.imageSizeMultiplier * 15,
@ -139,24 +175,35 @@ class _PharmaciesListState extends State<PharmaciesListScreen> {
children: <Widget>[ children: <Widget>[
Padding( Padding(
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: InkWell(child: Icon(Icons.call, color: Colors.red,),onTap: ()=>launch( child: InkWell(
"tel://" + _data[index]["PhoneNumber"]),), child: Icon(
Icons.call,
color: Colors.red,
),
onTap: () => launch(
"tel://" + _data[index]["PhoneNumber"]),
),
), ),
Padding( Padding(
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: InkWell(child: Icon(Icons.pin_drop, color: Colors.red,),onTap: () { child: InkWell(
child: Icon(
Icons.pin_drop,
color: Colors.red,
),
onTap: () {
MapsLauncher.launchCoordinates( MapsLauncher.launchCoordinates(
double.parse(_data[index]["Latitude"]), double.parse(
double.parse(_data[index]["Longitude"]), _data[index]["Latitude"]),
double.parse(
_data[index]["Longitude"]),
_data[index]["LocationDescription"]); _data[index]["LocationDescription"]);
},), },
),
), ),
], ],
), ),
), ),
], ],
), ),
); );
@ -170,9 +217,20 @@ Padding(
_medicineProvider.getPharmaciesList(widget.itemID).then((result) { _medicineProvider.getPharmaciesList(widget.itemID).then((result) {
this.setState(() { this.setState(() {
_data = _medicineProvider.pharmaciesList; _data = _medicineProvider.pharmaciesList;
//if(_data == null || _data.length == 0)
}); });
}); });
return true; return true;
} }
Image imageFromBase64String(String base64String) {
return Image.memory(base64Decode(base64String));
}
Uint8List dataFromBase64String(String base64String) {
return base64Decode(base64String);
}
String base64String(Uint8List data) {
return base64Encode(data);
}
} }

@ -135,11 +135,21 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
SizedBox( SizedBox(
height: 5, height: 5,
), ),
RoundedContainer( Container(
margin: 0, decoration: ShapeDecoration(
showBorder: true, shape: RoundedRectangleBorder(
raduis: 30, side: BorderSide(
borderColor: Color(0xff707070), width: 1.0,
style: BorderStyle.solid,
color: Color(0xff707070)),
borderRadius:
BorderRadius.all(Radius.circular(5.0)),
),
),
// margin: 0,
// showBorder: true,
// raduis: 30,
// borderColor: Color(0xff707070),
width: double.infinity, width: double.infinity,
child: Padding( child: Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
@ -314,11 +324,21 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
SizedBox( SizedBox(
height: 10, height: 10,
), ),
RoundedContainer( Container(
margin: 0, // margin: 0,
showBorder: true, // showBorder: true,
raduis: 30, // raduis: 30,
borderColor: Color(0xff707070), // borderColor: Color(0xff707070),
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1.0,
style: BorderStyle.solid,
color: Color(0xff707070)),
borderRadius:
BorderRadius.all(Radius.circular(5.0)),
),
),
width: double.infinity, width: double.infinity,
child: Padding( child: Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(

@ -386,27 +386,18 @@ class _PatientsScreenState extends State<PatientsScreen> {
"Male" "Male"
? [ ? [
SvgPicture.asset( SvgPicture.asset(
url + url + avatarMale,
avatarMale, height: 80.0,
height: width: 80.0,
80.0, semanticsLabel: 'Male Logo')
width:
80.0,
semanticsLabel:
'Male Logo')
] ]
: [ : [
SvgPicture.asset( SvgPicture.asset(
url + url + avatarFemale,
avatarFemale, height: 80.0,
height: width: 80.0,
80.0, semanticsLabel: 'Female Logo')
width:
80.0,
semanticsLabel:
'Female Logo')
], ],
), ),
SizedBox( SizedBox(
width: 10, width: 10,
@ -415,7 +406,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment CrossAxisAlignment
.start, .start,
children: <Widget>[ children: <
Widget>[
AppText( AppText(
item.firstName + item.firstName +
" " + " " +
@ -427,7 +419,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
FontWeight FontWeight
.bold, .bold,
backGroundcolor: backGroundcolor:
Colors.white, Colors
.white,
), ),
SizedBox( SizedBox(
height: 8, height: 8,
@ -443,7 +436,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
FontWeight FontWeight
.bold, .bold,
backGroundcolor: backGroundcolor:
Colors.white, Colors
.white,
), ),
// SizedBox( // SizedBox(
@ -460,19 +454,18 @@ class _PatientsScreenState extends State<PatientsScreen> {
FontWeight FontWeight
.bold, .bold,
backGroundcolor: backGroundcolor:
Colors.white, Colors
.white,
), ),
SizedBox( SizedBox(
height: 8, height: 8,
), ),
SERVICES_PATIANT2[int SERVICES_PATIANT2[
.parse( int.parse(patientType)] ==
patientType)] ==
"List_MyOutPatient" "List_MyOutPatient"
? Row( ? Row(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment MainAxisAlignment.spaceBetween,
.spaceBetween,
children: < children: <
Widget>[ Widget>[
Container( Container(
@ -482,22 +475,16 @@ class _PatientsScreenState extends State<PatientsScreen> {
80, 80,
decoration: decoration:
BoxDecoration( BoxDecoration(
borderRadius: borderRadius: BorderRadius.circular(50),
BorderRadius.circular(50), color: Hexcolor("#20A169"),
color:
Hexcolor("#20A169"),
), ),
child: child:
AppText( AppText(
item.startTime, item.startTime,
color: color: Colors.white,
Colors.white, fontSize: 2 * SizeConfig.textMultiplier,
fontSize: textAlign: TextAlign.center,
2 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold,
textAlign:
TextAlign.center,
fontWeight:
FontWeight.bold,
), ),
), ),
SizedBox( SizedBox(
@ -507,22 +494,18 @@ class _PatientsScreenState extends State<PatientsScreen> {
Container( Container(
child: child:
AppText( AppText(
convertDateFormat2(item convertDateFormat2(item.appointmentDate.toString()),
.appointmentDate fontSize: 2.0 * SizeConfig.textMultiplier,
.toString()), fontWeight: FontWeight.bold,
fontSize:
2.0 * SizeConfig.textMultiplier,
fontWeight:
FontWeight.bold,
), ),
) )
], ],
) )
: AppText( : AppText(
item.nationalityName, item.nationalityName,
fontSize: 2.5 * fontSize:
SizeConfig 2.5 *
.textMultiplier, SizeConfig.textMultiplier,
), ),
], ],
), ),
@ -535,7 +518,8 @@ class _PatientsScreenState extends State<PatientsScreen> {
), ),
), ),
onTap: () { onTap: () {
Navigator.of(context).pushNamed( Navigator.of(context)
.pushNamed(
PATIENTS_PROFILE, PATIENTS_PROFILE,
arguments: { arguments: {
"patient": item "patient": item
@ -543,14 +527,11 @@ class _PatientsScreenState extends State<PatientsScreen> {
}, },
), ),
); );
}).toList(), }).toList(),
), ),
), ),
], ],
), ),
) )
], ],
), ),
@ -587,8 +568,7 @@ class _PatientsScreenState extends State<PatientsScreen> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: _locations.map((item) { children: _locations.map((item) {
bool _isActive = _locations[_activeLocation] == item ? true : false; bool _isActive = _locations[_activeLocation] == item ? true : false;
return Column(mainAxisSize: MainAxisSize.min, return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
children: <Widget>[
InkWell( InkWell(
child: Center( child: Center(
child: Container( child: Container(
@ -601,7 +581,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
child: Center( child: Center(
child: Text( child: Text(
item, item,
style: TextStyle( style: TextStyle(
fontSize: 12, fontSize: 12,
color: _isActive color: _isActive
@ -623,7 +602,6 @@ class _PatientsScreenState extends State<PatientsScreen> {
setState(() { setState(() {
_activeLocation = _locations.indexOf(item); _activeLocation = _locations.indexOf(item);
}); });
}), }),
_isActive _isActive
@ -643,17 +621,14 @@ class _PatientsScreenState extends State<PatientsScreen> {
} }
myBoxDecoration() { myBoxDecoration() {
return BoxDecoration( return BoxDecoration(
border: Border( border: Border(
bottom: BorderSide(
// <--- top side
bottom: BorderSide( // <--- top side
color: Colors.grey, color: Colors.grey,
width: 1.0, width: 1.0,
), ),
), ),
); );
} }
} }

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/models/patient/insurance_aprovals_request.dart'; import 'package:doctor_app_flutter/models/patient/insurance_aprovals_request.dart';
import 'package:doctor_app_flutter/presentation/doctor_app_icons.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -115,19 +116,21 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
children: <Widget>[ children: <Widget>[
ExpansionTile( ExpansionTile(
title: Row( title: Row(
children: <Widget>[
Column(
children: <Widget>[ children: <Widget>[
Icon( Icon(
approvalsList[index][ approvalsList[index][
"ApprovalStatusDescption"] "ApprovalStatusDescption"]
.toString() .toString()
.contains("Approved") .contains("Approved")
? Icons.check_circle_outline ? DoctorApp.approved_icon
: approvalsList[index][ : approvalsList[index][
"ApprovalStatusDescption"] "ApprovalStatusDescption"]
.toString() .toString()
.contains("Cancelled") .contains("Cancelled")
? Icons.highlight_off ? DoctorApp.reject_icon
: Icons.history, : DoctorApp.pending_icon,
color: approvalsList[index][ color: approvalsList[index][
"ApprovalStatusDescption"] "ApprovalStatusDescption"]
.toString() .toString()
@ -140,6 +143,21 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
? Colors.red ? Colors.red
: Colors.yellow, : Colors.yellow,
), ),
AppText(approvalsList[index]["ApprovalStatusDescption"],
fontSize: SizeConfig.textMultiplier * 1.5,
color: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
.contains("Approved")
? Colors.green
: approvalsList[index][
"ApprovalStatusDescption"]
.toString()
.contains("Cancelled")
? Colors.red
: Colors.yellow,)
],
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: mainAxisAlignment:
@ -186,15 +204,8 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
backgroundColor: backgroundColor:
Color(PRIMARY_COLOR), Color(PRIMARY_COLOR),
child: Column( child: Column(
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.start,
Row(
children: <Widget>[ children: <Widget>[
AppText(
"Approval No:",
color: Colors.white,
fontSize: 16,
margin: 10,
),
AppText( AppText(
approvalsList[index] approvalsList[index]
["ApprovalNo"] ["ApprovalNo"]
@ -203,9 +214,20 @@ class _InsuranceApprovalsState extends State<InsuranceApprovalsScreen> {
fontSize: 19, fontSize: 19,
fontWeight: fontWeight:
FontWeight.bold, FontWeight.bold,
margin: 5, marginTop: 10,
marginLeft: 10,
marginRight: 10,
marginBottom: 2,
), ),
],
AppText(
"Approval No:",
color: Colors.white,
fontSize: 16,
marginTop: 2,
marginLeft: 10,
marginBottom: 15,
marginRight: 10,
), ),
Row( Row(
children: <Widget>[ children: <Widget>[

@ -20,7 +20,7 @@ DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
/* /*
*@author: ibrahim albitar *@author: ibrahim albitar
*@Date:15/5/2020 *@Date:15/5/2020
*@param: *@param: '
*@return: *@return:
*@desc: *@desc:
*/ */
@ -182,7 +182,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
if (strExist) { if (strExist) {
filteredNotesList = null; filteredNotesList = null;
filteredNotesList = notesList filteredNotesList = patientsProv.patientProgressNoteList
.where((note) => .where((note) =>
note["DoctorName"].toString().contains(str.toUpperCase())) note["DoctorName"].toString().contains(str.toUpperCase()))
.toList(); .toList();

@ -132,10 +132,6 @@ class _RadiologyScreenState extends State<RadiologyScreen> {
url: patientsProv url: patientsProv
.patientRadiologyList[index] .patientRadiologyList[index]
.doctorImageURL, .doctorImageURL,
name: patientsProv
.patientLabResultOrdersList[
index]
.doctorName,
), ),
Expanded( Expanded(
child: Padding( child: Padding(

@ -1,6 +1,13 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../config/size_config.dart'; import '../../../config/size_config.dart';
import '../../../providers/patients_provider.dart'; import '../../../providers/patients_provider.dart';
@ -27,26 +34,29 @@ class ReferPatientScreen extends StatefulWidget {
class _ReferPatientState extends State<ReferPatientScreen> { class _ReferPatientState extends State<ReferPatientScreen> {
PatientsProvider patientsProv; PatientsProvider patientsProv;
var doctorsList; var doctorsList;
var clinicsList; final _remarksController = TextEditingController();
var referralFrequancyList; final _extController = TextEditingController();
final _controller = TextEditingController();
var _isInit = true; var _isInit = true;
var clinicId;
var doctorId;
var freqId;
String _selectedClinic; String _selectedClinic;
String _selectedDoctor; String _selectedDoctor;
String _selectedReferralFrequancy; String _selectedReferralFrequancy;
List<String> _priorities = ['Very Urgent', 'Urgent', 'Routine'];
int _activePriority = 2;
@override @override
void didChangeDependencies() { void didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();
if (_isInit) { if (_isInit) {
doctorsList = null;
patientsProv = Provider.of<PatientsProvider>(context); patientsProv = Provider.of<PatientsProvider>(context);
patientsProv.getClinicsList(); patientsProv.getClinicsList();
patientsProv.getReferralFrequancyList(); patientsProv.getReferralFrequancyList();
setState(() {
clinicsList = patientsProv.clinicsList;
referralFrequancyList = patientsProv.referalFrequancyList;
});
} }
_isInit = false; _isInit = false;
} }
@ -54,18 +64,28 @@ class _ReferPatientState extends State<ReferPatientScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
appBarTitle: "Progress Note", appBarTitle: "Refer Patient",
body: patientsProv.isLoading body: patientsProv.isLoading
? DrAppCircularProgressIndeicator() ? DrAppCircularProgressIndeicator()
: patientsProv.isError : patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error) ? DrAppEmbeddedError(error: patientsProv.error)
: clinicsList == null : patientsProv.clinicsList == null
? DrAppEmbeddedError( ? DrAppEmbeddedError(
error: 'You don\'t have any Progress Note') error: 'Something Wrong!')
: Column( : SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText(
"Clinic",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
RoundedContainer( RoundedContainer(
margin: 0, margin: 10,
showBorder: true, showBorder: true,
raduis: 30, raduis: 30,
borderColor: Color(0xff707070), borderColor: Color(0xff707070),
@ -108,13 +128,14 @@ class _ReferPatientState extends State<ReferPatientScreen> {
setState(() { setState(() {
_selectedDoctor = null; _selectedDoctor = null;
_selectedClinic = newValue; _selectedClinic = newValue;
var clinicInfo = var clinicInfo = patientsProv.clinicsList.where((i) =>
clinicsList.singleWhere((i) =>
i['ClinicDescription'] i['ClinicDescription']
.toString() .toString()
.contains(_selectedClinic)); .contains(_selectedClinic)).toList();
var clinicId =
clinicInfo['ClinicID'].toString(); clinicId =
clinicInfo[0]['ClinicID'].toString();
patientsProv.getDoctorsList(clinicId); patientsProv.getDoctorsList(clinicId);
}) })
}, },
@ -136,8 +157,16 @@ class _ReferPatientState extends State<ReferPatientScreen> {
), ),
), ),
//--------------------------------------------------------------------// //--------------------------------------------------------------------//
AppText(
"Doctor",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
RoundedContainer( RoundedContainer(
margin: 0, margin: 10,
showBorder: true, showBorder: true,
raduis: 30, raduis: 30,
borderColor: Color(0xff707070), borderColor: Color(0xff707070),
@ -179,6 +208,15 @@ class _ReferPatientState extends State<ReferPatientScreen> {
onChanged: (newValue) => { onChanged: (newValue) => {
setState(() { setState(() {
_selectedDoctor = newValue; _selectedDoctor = newValue;
doctorsList = patientsProv.doctorsList;
var doctorInfo =
doctorsList.where((i) =>
i['DoctorName']
.toString()
.contains(_selectedDoctor)).toList();
doctorId = doctorInfo[0]['DoctorID'].toString();
}) })
}, },
items: patientsProv items: patientsProv
@ -198,8 +236,49 @@ class _ReferPatientState extends State<ReferPatientScreen> {
), ),
), ),
), //-----------------------------/// ), //-----------------------------///
AppText(
"Ext#",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
Padding(
padding: const EdgeInsets.all(10.0),
child: AppTextFormField(
hintText: "Ext#",
controller: _extController,
inputFormatter: ONLY_NUMBERS,
textInputType: TextInputType.number,
onChanged: (value) => {},
),
),
AppText(
"Priority",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
priorityBar(context),
AppText(
"Replay Before: " + getPriority(),
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
AppText(
"Referral Frequency",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
RoundedContainer( RoundedContainer(
margin: 0, margin: 10,
showBorder: true, showBorder: true,
raduis: 30, raduis: 30,
borderColor: Color(0xff707070), borderColor: Color(0xff707070),
@ -241,6 +320,13 @@ class _ReferPatientState extends State<ReferPatientScreen> {
onChanged: (newValue) => { onChanged: (newValue) => {
setState(() { setState(() {
_selectedReferralFrequancy = newValue; _selectedReferralFrequancy = newValue;
var freqInfo =
patientsProv.referalFrequancyList.singleWhere((i) =>
i['Description']
.toString()
.contains(_selectedReferralFrequancy));
freqId =
freqInfo['ParameterCode'].toString();
}) })
}, },
items: patientsProv items: patientsProv
@ -260,8 +346,131 @@ class _ReferPatientState extends State<ReferPatientScreen> {
), ),
), ),
), ),
AppText(
"Clinical Details and Remarks",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
Padding(
padding: const EdgeInsets.all(10.0),
child: AppTextFormField(
hintText: "Remarks",
controller: _remarksController,
inputFormatter: ONLY_LETTERS,
textInputType: TextInputType.text,
onChanged: (value) => {},
),
),
Padding(
padding: const EdgeInsets.all(20.0),
child: AppButton(title: "Send", color: Color(PRIMARY_COLOR),onPressed: ()=>{
referToDoctor(context)
},),
)
], ],
), ),
),
);
}
Widget priorityBar(BuildContext _context) {
return Container(
height: MediaQuery.of(context).size.height * 0.065,
width: SizeConfig.screenWidth * 0.9,
margin: EdgeInsets.only(top: 10),
decoration: BoxDecoration(
color: Color(0Xffffffff), borderRadius: BorderRadius.circular(20)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
children: _priorities.map((item) {
bool _isActive = _priorities[_activePriority] == item ? true : false;
return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
InkWell(
child: Center(
child: Container(
height: 40,
width: 90,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(50),
color: _isActive ? Hexcolor("#B8382B") : Colors.white,
),
child: Center(
child: Text(
item,
style: TextStyle(
fontSize: 12,
color: _isActive
? Colors.white
: Colors.black, //Colors.black,
// backgroundColor:_isActive
// ? Hexcolor("#B8382B")
// : Colors.white,//sideColor,
fontWeight: FontWeight.bold,
),
),
)),
),
onTap: () {
print(_priorities.indexOf(item));
setState(() {
_activePriority = _priorities.indexOf(item);
});
}),
_isActive
? Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white),
alignment: Alignment.center,
height: 3,
width: 90,
)
: Container()
]);
}).toList(),
),
);
}
String getPriority() {
DateTime date = DateTime.now();
switch (_activePriority) {
case 0:
date = date.add(new Duration(hours: 3));
break;
case 1:
date = date.add(new Duration(hours: 6));
break;
case 2:
date = date.add(new Duration(days: 1));
break;
}
var format = DateFormat('yyyy/mm/dd HH:mm a');
var time = format.format(date);
print(time);
return time;
}
void referToDoctor(context){
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
patientsProv.referToDoctor(context,
extension: _extController.value.text,
admissionNo:int.parse( patient.admissionNo),
referringDoctorRemarks: _remarksController.value.text,
frequency: freqId,
patientID: patient.patientId,
patientTypeID: patient.patientType,
priority: (_activePriority + 1).toString(),
roomID: patient.roomId,
selectedClinicID: clinicId.toString(),
selectedDoctorID: doctorId.toString(),
projectID: patient.projectId
); );
} }
} }

@ -99,7 +99,7 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
vitalSignDetails.bodyMeasurements vitalSignDetails.bodyMeasurements
}); });
}, },
child: Expanded( child: Container(
child: VitalSignItem( child: VitalSignItem(
des: 'Body Measurements', des: 'Body Measurements',
url: url + 'heartbeat.png', url: url + 'heartbeat.png',
@ -118,7 +118,7 @@ class _VitalSignDetailsScreenState extends State<VitalSignDetailsScreen> {
}); });
}, },
child: Expanded( child: Container(
child: VitalSignItem( child: VitalSignItem(
des: 'Temperature', des: 'Temperature',
url: url + 'heartbeat.png', url: url + 'heartbeat.png',

@ -82,4 +82,14 @@ class DrAppSharedPreferances {
} }
return json.decode(string); return json.decode(string);
} }
clear() async {
final SharedPreferences prefs = await _prefs;
prefs.clear();
}
remove(String key) async {
final SharedPreferences prefs = await _prefs;
prefs.remove(key);
}
} }

@ -1,12 +1,16 @@
import 'package:doctor_app_flutter/models/list_doctor_working_hours_table_model.dart'; import 'package:doctor_app_flutter/models/list_doctor_working_hours_table_model.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:doctor_app_flutter/config/config.dart';
import '../config/size_config.dart'; import '../config/size_config.dart';
import '../util/dr_app_toast_msg.dart'; import '../util/dr_app_toast_msg.dart';
import 'package:connectivity/connectivity.dart'; import 'package:connectivity/connectivity.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
/* /*
*@author: Elham Rababah *@author: Elham Rababah
@ -48,10 +52,6 @@ class Helpers {
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
// padding: const EdgeInsets.symmetric(
// horizontal: 16.0,
// vertical: 5.0,
// ),
), ),
CupertinoButton( CupertinoButton(
child: Text( child: Text(
@ -97,7 +97,7 @@ class Helpers {
children: items.map((item) { children: items.map((item) {
return Text( return Text(
'${item["$decKey"]}', '${item["$decKey"]}',
style: TextStyle(fontSize: SizeConfig.textMultiplier * 3), style: TextStyle(fontSize: SizeConfig.textMultiplier * 2),
); );
}).toList(), }).toList(),
@ -164,6 +164,7 @@ class Helpers {
), ),
); );
} }
/* /*
*@author: Amjad Amireh *@author: Amjad Amireh
*@Date:5/5/2020 *@Date:5/5/2020
@ -257,6 +258,7 @@ static String checkDate(String dateString) {
return "Sunday"; return "Sunday";
} }
} }
/* /*
*@author: Mohammad Aljammal *@author: Mohammad Aljammal
*@Date:26/5/2020 *@Date:26/5/2020
@ -275,6 +277,7 @@ static String checkDate(String dateString) {
else else
return ""; return "";
} }
/* /*
*@author: Mohammad Aljammal *@author: Mohammad Aljammal
*@Date:26/5/2020 *@Date:26/5/2020
@ -307,7 +310,8 @@ static String checkDate(String dateString) {
listOfHours.forEach((element) { listOfHours.forEach((element) {
WorkingHours workingHours = WorkingHours(); WorkingHours workingHours = WorkingHours();
var from = element.substring(element.indexOf('m ') + 2 , element.indexOf('To')-2); var from = element.substring(
element.indexOf('m ') + 2, element.indexOf('To') - 2);
workingHours.from = from.trim(); workingHours.from = from.trim();
var to = element.substring(element.indexOf('To') + 2); var to = element.substring(element.indexOf('To') + 2);
workingHours.to = to.trim(); workingHours.to = to.trim();
@ -316,9 +320,6 @@ static String checkDate(String dateString) {
return myWorkingHours; return myWorkingHours;
} }
/* /*
*@author: Elham Rababah *@author: Elham Rababah
*@Date:12/5/2020 *@Date:12/5/2020
@ -333,4 +334,13 @@ static String checkDate(String dateString) {
} }
return localMsg; return localMsg;
} }
clearSharedPref() async {
await sharedPref.clear();
}
logout() async {
await clearSharedPref();
Navigator.of(AppGlobal.CONTEX).pushReplacementNamed(LOGIN);
}
} }

@ -59,6 +59,8 @@ class TranslationBase {
String get labResult => localizedValues['labResult'][locale.languageCode]; String get labResult => localizedValues['labResult'][locale.languageCode];
String get todayStatistics => String get todayStatistics =>
localizedValues['todayStatistics'][locale.languageCode]; localizedValues['todayStatistics'][locale.languageCode];
String get familyMedicine =>
localizedValues['familyMedicine'][locale.languageCode];
String get arrived => localizedValues['arrived'][locale.languageCode]; String get arrived => localizedValues['arrived'][locale.languageCode];
String get er => localizedValues['er'][locale.languageCode]; String get er => localizedValues['er'][locale.languageCode];
String get walkIn => localizedValues['walkIn'][locale.languageCode]; String get walkIn => localizedValues['walkIn'][locale.languageCode];

@ -69,6 +69,7 @@ class _LoginFormState extends State<LoginForm> {
_isInit = false; _isInit = false;
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final focusPass = FocusNode(); final focusPass = FocusNode();
@ -99,8 +100,9 @@ class _LoginFormState extends State<LoginForm> {
userInfo.UserID = value.trim(); userInfo.UserID = value.trim();
}, },
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context).requestFocus(focusPass); FocusScope.of(context).nextFocus();
}, },
autofocus: false,
), ),
buildSizedBox(), buildSizedBox(),
TextFormField( TextFormField(
@ -119,7 +121,7 @@ class _LoginFormState extends State<LoginForm> {
userInfo.Password = value; userInfo.Password = value;
}, },
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context).requestFocus(focusProject); FocusScope.of(context).nextFocus();
helpers.showCupertinoPicker( helpers.showCupertinoPicker(
context, projectsList, 'Name', onSelectProject); context, projectsList, 'Name', onSelectProject);
}, },
@ -144,22 +146,8 @@ class _LoginFormState extends State<LoginForm> {
}), }),
buildSizedBox(), buildSizedBox(),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Checkbox(
value: true,
activeColor: Theme.of(context).primaryColor,
onChanged: (bool newValue) {}),
Text("Remember me",
style: TextStyle(
fontSize: 2 * SizeConfig.textMultiplier)),
],
),
),
RaisedButton( RaisedButton(
onPressed: () { onPressed: () {
login(context, authProv, widget.changeLoadingStata); login(context, authProv, widget.changeLoadingStata);
@ -214,7 +202,16 @@ class _LoginFormState extends State<LoginForm> {
focusedBorder: OutlineInputBorder( focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).primaryColor), borderSide: BorderSide(color: Theme.of(context).primaryColor),
)); ),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor),
),
);
} }
SizedBox buildSizedBox() { SizedBox buildSizedBox() {
@ -224,6 +221,11 @@ class _LoginFormState extends State<LoginForm> {
} }
login(context, AuthProvider authProv, Function changeLoadingStata) { login(context, AuthProvider authProv, Function changeLoadingStata) {
FocusScopeNode currentFocus = FocusScope.of(context);
// if (!currentFocus.hasPrimaryFocus) {
// currentFocus.unfocus();
// }
changeLoadingStata(true); changeLoadingStata(true);
if (loginFormKey.currentState.validate()) { if (loginFormKey.currentState.validate()) {
loginFormKey.currentState.save(); loginFormKey.currentState.save();
@ -237,7 +239,7 @@ class _LoginFormState extends State<LoginForm> {
sharedPref.setString(TOKEN, res['LogInTokenID']); sharedPref.setString(TOKEN, res['LogInTokenID']);
print("token" + res['LogInTokenID']); print("token" + res['LogInTokenID']);
Navigator.of(context).pushNamed(VERIFICATION_METHODS); Navigator.of(context).pushReplacementNamed(VERIFICATION_METHODS);
} else { } else {
// handel error // handel error
// widget.showCenterShortLoadingToast("watting"); // widget.showCenterShortLoadingToast("watting");
@ -247,7 +249,7 @@ class _LoginFormState extends State<LoginForm> {
}).catchError((err) { }).catchError((err) {
print('$err'); print('$err');
changeLoadingStata(false); changeLoadingStata(false);
helpers.showErrorToast(); helpers.showErrorToast(err);
}); });
} else { } else {
changeLoadingStata(false); changeLoadingStata(false);

@ -191,20 +191,13 @@ class _VerifyAccountState extends State<VerifyAccount> {
validator: validateCodeDigit)) validator: validateCodeDigit))
], ],
), ),
// buildSizedBox(40),
buildSizedBox(20), buildSizedBox(20),
buildText(), buildText(),
// buildSizedBox(10.0),
// Text()
buildSizedBox(40), buildSizedBox(40),
// buildSizedBox(),
RaisedButton( RaisedButton(
onPressed: () { onPressed: () {
verifyAccount( verifyAccount(
authProv, widget.changeLoadingStata); authProv, widget.changeLoadingStata);
// Navigator.of(context).pushNamed(HOME);
}, },
elevation: 0.0, elevation: 0.0,
child: Container( child: Container(
@ -273,7 +266,16 @@ class _VerifyAccountState extends State<VerifyAccount> {
focusedBorder: OutlineInputBorder( focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).primaryColor), borderSide: BorderSide(color: Theme.of(context).primaryColor),
)); ),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor),
),
);
} }
/* /*
@ -284,6 +286,16 @@ class _VerifyAccountState extends State<VerifyAccount> {
*@desc: buildText *@desc: buildText
*/ */
RichText buildText() { RichText buildText() {
String medthodName;
switch (model['OTP_SendType']) {
case 1:
medthodName = 'SMS';
break;
case 2:
medthodName = 'WhatsApp';
break;
default:
}
var text = RichText( var text = RichText(
text: new TextSpan( text: new TextSpan(
style: new TextStyle( style: new TextStyle(
@ -293,7 +305,7 @@ class _VerifyAccountState extends State<VerifyAccount> {
new TextSpan( new TextSpan(
text: 'Login Code ', text: 'Login Code ',
style: TextStyle(fontWeight: FontWeight.w700)), style: TextStyle(fontWeight: FontWeight.w700)),
new TextSpan(text: 'By SMS, Please enter the code') new TextSpan(text: 'By ${medthodName}, Please enter the code')
])); ]));
return text; return text;
} }
@ -381,7 +393,7 @@ class _VerifyAccountState extends State<VerifyAccount> {
Map<String, dynamic> profile, Function changeLoadingStata) { Map<String, dynamic> profile, Function changeLoadingStata) {
changeLoadingStata(false); changeLoadingStata(false);
sharedPref.setObj(DOCTOR_PROFILE, profile); sharedPref.setObj(DOCTOR_PROFILE, profile);
Navigator.of(context).pushNamed(HOME); Navigator.of(context).pushReplacementNamed(HOME);
} }
Future<dynamic> _asyncSimpleDialog( Future<dynamic> _asyncSimpleDialog(

@ -251,6 +251,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
*@desc: send Activation Code By Otp Notification Type *@desc: send Activation Code By Otp Notification Type
*/ */
sendActivationCodeByOtpNotificationType(oTPSendType, AuthProvider authProv) { sendActivationCodeByOtpNotificationType(oTPSendType, AuthProvider authProv) {
// TODO : build enum for verfication method // TODO : build enum for verfication method
if (oTPSendType == 1 || oTPSendType == 2) { if (oTPSendType == 1 || oTPSendType == 2) {
widget.changeLoadingStata(true); widget.changeLoadingStata(true);
@ -270,7 +271,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
widget.changeLoadingStata(false); widget.changeLoadingStata(false);
if (res['MessageStatus'] == 1) { if (res['MessageStatus'] == 1) {
Navigator.of(context).pushNamed(VERIFY_ACCOUNT, arguments: {'model':model}); Navigator.of(context).pushReplacementNamed(VERIFY_ACCOUNT, arguments: {'model':model});
} else { } else {
print(res['ErrorEndUserMessage']); print(res['ErrorEndUserMessage']);
helpers.showErrorToast(res['ErrorEndUserMessage']); helpers.showErrorToast(res['ErrorEndUserMessage']);

@ -1,11 +1,14 @@
import 'dart:ffi'; import 'dart:ffi';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:flutter_svg/svg.dart';
import '../shared/rounded_container_widget.dart'; import '../shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../shared/app_texts_widget.dart'; import '../shared/app_texts_widget.dart';
class DashboardItemIconText extends StatefulWidget { class DashboardItemIconText extends StatefulWidget {
final IconData icon; final String icon;
final String value; final String value;
final String label; final String label;
final Color backgroundColor; final Color backgroundColor;
@ -43,16 +46,16 @@ class _DashboardItemTextsState extends State<DashboardItemIconText> {
Align( Align(
alignment: FractionalOffset.topLeft, alignment: FractionalOffset.topLeft,
child: Container( child: Container(
margin: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Icon( child: SvgPicture.asset(
widget.icon, widget.icon,
color: widget.iconColor, color: widget.iconColor,
), width: SizeConfig.widthMultiplier * 7,
)), ))),
Align( Align(
alignment: FractionalOffset.bottomRight, alignment: FractionalOffset.bottomRight,
child: Container( child: Container(
margin: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/list_gt_my_pationents_question_model.dart'; import 'package:doctor_app_flutter/models/list_gt_my_pationents_question_model.dart';
import 'package:doctor_app_flutter/presentation/doctor_app_icons.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart';
@ -42,7 +43,28 @@ class _DoctorReplyWidgetState extends State<DoctorReplyWidget> {
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
SizedBox(width: 5,), SizedBox(width: 5,),
LargeAvatar(name: widget.reply.patientName,url: '',), //LargeAvatar(icon: widget.reply.gender == 0 ? DoctorApp.male : DoctorApp.femaleicon ,),
Container(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment(-1, -1),
end: Alignment(1, 1),
colors: [
Colors.grey[100],
Colors.grey[200],
]),
boxShadow: [
BoxShadow(
color: Color.fromRGBO(0, 0, 0, 0.08),
offset: Offset(0.0, 5.0),
blurRadius: 16.0)
],
borderRadius: BorderRadius.all(Radius.circular(50.0)),
),
width: 80,
height: 80,
child: Icon(widget.reply.gender == 1 ? DoctorApp.male : DoctorApp.femaleicon,size: 80,)),
SizedBox(width: 15,), SizedBox(width: 15,),
Expanded( Expanded(
child: Container( child: Container(

@ -42,7 +42,13 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Row( InkWell(
onTap: () {
setState(() {
_showDetails = !_showDetails;
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
AppText( AppText(
@ -50,17 +56,13 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
fontSize: 2.5 * SizeConfig.textMultiplier, fontSize: 2.5 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
InkWell( Icon(_showDetails
onTap: () {
setState(() {
_showDetails = !_showDetails;
});
},
child: Icon(_showDetails
? Icons.keyboard_arrow_up ? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down)), : Icons.keyboard_arrow_down),
], ],
), ),
),
!_showDetails !_showDetails
? Container() ? Container()
: AnimatedContainer( : AnimatedContainer(
@ -87,6 +89,7 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
1.7 * SizeConfig.textMultiplier, 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox(height: 5,),
AppText( AppText(
'${widget.myReferralPatientModel.referringDoctor}', '${widget.myReferralPatientModel.referringDoctor}',
fontSize: fontSize:
@ -108,6 +111,7 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
1.7 * SizeConfig.textMultiplier, 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox(height: 5,),
AppText( AppText(
widget.myReferralPatientModel widget.myReferralPatientModel
.referringClinicDescription, .referringClinicDescription,
@ -135,6 +139,7 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
1.7 * SizeConfig.textMultiplier, 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox(height: 5,),
AppText( AppText(
'${widget.myReferralPatientModel.referringClinicDescription}', '${widget.myReferralPatientModel.referringClinicDescription}',
fontSize: fontSize:
@ -157,6 +162,7 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
1.7 * SizeConfig.textMultiplier, 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox(height: 5,),
AppText( AppText(
widget.myReferralPatientModel widget.myReferralPatientModel
.frequencyDescription, .frequencyDescription,
@ -184,6 +190,7 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
1.7 * SizeConfig.textMultiplier, 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox(height: 5,),
AppText( AppText(
'${widget.myReferralPatientModel.priorityDescription}', '${widget.myReferralPatientModel.priorityDescription}',
fontSize: fontSize:
@ -206,6 +213,7 @@ class _MyReferralPatientWidgetState extends State<MyReferralPatientWidget> {
1.7 * SizeConfig.textMultiplier, 1.7 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
SizedBox(height: 5,),
AppText( AppText(
Helpers.getDateFormatted(widget Helpers.getDateFormatted(widget
.myReferralPatientModel .myReferralPatientModel

@ -45,6 +45,7 @@ class MyScheduleWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText('From',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,), AppText('From',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,),
SizedBox(height: 5,),
AppText(work.from,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,) AppText(work.from,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,)
], ],
), ),
@ -56,6 +57,7 @@ class MyScheduleWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText('To',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,), AppText('To',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,),
SizedBox(height: 5,),
AppText(work.to,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,) AppText(work.to,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,)
], ],
), ),

@ -1,10 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/widgets/shared/profile_image_widget.dart';
import '../shared/rounded_container_widget.dart'; import '../shared/rounded_container_widget.dart';
import '../shared/app_texts_widget.dart'; import '../shared/app_texts_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -18,14 +14,18 @@ import 'package:flutter/material.dart';
*/ */
class MedicineItemWidget extends StatefulWidget { class MedicineItemWidget extends StatefulWidget {
final String label; final String label;
final Color backgroundColor; final Color backgroundColor;
final bool showBorder; final bool showBorder;
final Color borderColor; final Color borderColor;
final String url; final String url;
MedicineItemWidget({ @required this.label, this.backgroundColor = Colors.white, this.showBorder = false, this.borderColor = Colors.white, this.url}); MedicineItemWidget(
{@required this.label,
this.backgroundColor = Colors.white,
this.showBorder = false,
this.borderColor = Colors.white,
this.url});
@override @override
_MedicineItemWidgetState createState() => _MedicineItemWidgetState(); _MedicineItemWidgetState createState() => _MedicineItemWidgetState();
} }
@ -41,7 +41,8 @@ class _MedicineItemWidgetState extends State<MedicineItemWidget> {
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
if(widget.url != null) Container( if (widget.url != null)
Container(
height: 39, height: 39,
width: 39, width: 39,
child: ClipRRect( child: ClipRRect(
@ -54,10 +55,21 @@ class _MedicineItemWidgetState extends State<MedicineItemWidget> {
), ),
), ),
), ),
Expanded(child: Padding( padding: EdgeInsets.all(5), child: Align( alignment: Alignment.centerLeft, child: AppText(widget.label)))) Expanded(
],), child: Padding(
padding: EdgeInsets.all(5),
child: Align(
alignment: Alignment.centerLeft,
child: AppText(widget.label))))
],
),
), ),
backgroundColor: widget.backgroundColor, showBorder: widget.showBorder, borderColor: widget.borderColor, margin: 4, raduis: 10,); backgroundColor: widget.backgroundColor,
showBorder: widget.showBorder,
borderColor: widget.borderColor,
margin: 4,
raduis: 10,
);
} }
Image imageFromBase64String(String base64String) { Image imageFromBase64String(String base64String) {
@ -71,5 +83,4 @@ Uint8List dataFromBase64String(String base64String) {
String base64String(Uint8List data) { String base64String(Uint8List data) {
return base64Encode(data); return base64Encode(data);
} }
} }

@ -50,7 +50,7 @@ class _DynamicElementsState extends State<DynamicElements> {
AppTextFormField( AppTextFormField(
textInputType: TextInputType.number, textInputType: TextInputType.number,
hintText: 'From', hintText: 'From',
controller: _fromDateController, //_fromDateController, controller: _fromDateController,
inputFormatter: ONLY_DATE, inputFormatter: ONLY_DATE,
onTap: () { onTap: () {
@ -83,7 +83,7 @@ class _DynamicElementsState extends State<DynamicElements> {
AppTextFormField( AppTextFormField(
textInputType: TextInputType.number, textInputType: TextInputType.number,
hintText: 'TO', hintText: 'TO',
controller: _fromDateController, //_toDateController, controller: _toDateController,
onTap: () { onTap: () {
_presentDatePicker('_selectedToDate'); _presentDatePicker('_selectedToDate');
}, },

@ -54,6 +54,8 @@ class LargeAvatar extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var vlr = name;
var asd;
return InkWell( return InkWell(
onTap: disableProfileView onTap: disableProfileView
? null ? null

@ -32,12 +32,14 @@ class PatientProfileWidget extends StatelessWidget {
// ProfileStatusInfoWidget() // ProfileStatusInfoWidget()
// ]); // ]);
return Container( return CustomScrollView(primary: false, slivers: <Widget>[
child: Column(children: <Widget>[ SliverList(
Expanded( delegate: SliverChildListDelegate(
flex: 1, [
child: Container(
Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Column(children: <Widget>[ Column(children: <Widget>[
Container( Container(
padding: EdgeInsets.only(top: 20), padding: EdgeInsets.only(top: 20),
@ -58,7 +60,9 @@ class PatientProfileWidget extends StatelessWidget {
fontSize: 16, fontSize: 16,
), ),
AppText( AppText(
patient.genderDescription.toString() + ', ' + patient.age, patient.genderDescription.toString() +
', ' +
patient.age,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
fontSize: 16, fontSize: 16,
) )
@ -68,10 +72,20 @@ class PatientProfileWidget extends StatelessWidget {
]), ]),
]), ]),
), ),
Expanded( ],
flex: 2, ),
child: ProfileMedicalInfoWidget(patient: patient), ),
) SliverPadding(
])); padding: const EdgeInsets.fromLTRB(20, 30, 15, 10),
sliver: ProfileMedicalInfoWidget(patient: patient,))
]);
// Container(
// child: Column(children: <Widget>[
// Expanded(
// flex: 2,
// child: ,
// )
// ]));
} }
} }

@ -23,10 +23,7 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
// final double contWidth = SizeConfig.realScreenWidth * 0.70; // final double contWidth = SizeConfig.realScreenWidth * 0.70;
// final double contHeight = SizeConfig.screenHeight * 0.30; // final double contHeight = SizeConfig.screenHeight * 0.30;
return CustomScrollView(primary: false, slivers: <Widget>[ return SliverGrid.count(
SliverPadding(
padding: const EdgeInsets.fromLTRB(20, 30, 15, 10),
sliver: SliverGrid.count(
crossAxisSpacing: 10, crossAxisSpacing: 10,
mainAxisSpacing: 20, mainAxisSpacing: 20,
crossAxisCount: 2, crossAxisCount: 2,
@ -56,31 +53,38 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
route: RADIOLOGY, route: RADIOLOGY,
name: 'Radiology', name: 'Radiology',
icon: 'radiology-1.png'), icon: 'radiology-1.png'),
PatientProfileButton( Visibility(
visible: selectedPatientType != 0 && selectedPatientType != 5,
child: PatientProfileButton(
key: key, key: key,
patient: patient, patient: patient,
route: PROGRESS_NOTE, route: PROGRESS_NOTE,
name: 'Progress Notes', name: 'Progress Notes',
icon: 'heartbeat.png'), icon: 'heartbeat.png')),
PatientProfileButton( PatientProfileButton(
key: key, key: key,
patient: patient, patient: patient,
route: PATIENT_INSURANCE_APPROVALS, route: PATIENT_INSURANCE_APPROVALS,
name: 'Insurance Aprovals', name: 'Insurance Aprovals',
icon: 'lab.png'), icon: 'lab.png'),
PatientProfileButton( Visibility(
visible: selectedPatientType != 0 &&
selectedPatientType != 5 &&
selectedPatientType != 2,
child: PatientProfileButton(
key: key, key: key,
patient: patient, patient: patient,
route: REFER_PATIENT, route: REFER_PATIENT,
name: 'Refer Patient', name: 'Refer Patient',
icon: 'note.png'), icon: 'note.png')),
PatientProfileButton( Visibility(
visible: selectedPatientType != 0 && selectedPatientType != 5,
child: PatientProfileButton(
key: key, key: key,
patient: patient, patient: patient,
route: PATIENT_ORDERS, route: PATIENT_ORDERS,
name: 'Orders', name: 'Orders',
icon: 'radiology-1.png'), icon: 'radiology-1.png')),
]))
]); ]);
// child: ListView( // child: ListView(
// children: <Widget>[ // children: <Widget>[
@ -287,26 +291,18 @@ class PatientProfileButton extends StatelessWidget {
navigator(context, this.route); navigator(context, this.route);
}, },
child: Column(children: <Widget>[ child: Column(children: <Widget>[
Expanded(
flex: 1,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container( Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: new AppText( child: new AppText(
this.name, this.name,
color: Colors.red, color: Colors.red,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
textAlign: TextAlign.left, textAlign: TextAlign.left,
fontSize: 16, fontSize: SizeConfig.textMultiplier * 2,
),
)
],
), ),
), ),
Expanded( Container(
flex: 1,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[

@ -89,35 +89,24 @@ class _AppDrawerState extends State<AppDrawer> {
}, },
), ),
), ),
InkWell(
child: DrawerItem("My Schedule", Icons.table_chart),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (_) => ScheduleProvider(),
child: MyScheduleScreen(),
),
),
);
},
),
InkWell( InkWell(
child: DrawerItem("Settings", Icons.settings), child: DrawerItem("Settings", Icons.settings),
onTap: () { onTap: () {
Navigator.pop(context);
Navigator.of(context).pushNamed(SETTINGS); Navigator.of(context).pushNamed(SETTINGS);
}, },
), ),
InkWell( InkWell(
child: DrawerItem("QR Reader", Icons.search), child: DrawerItem("QR Reader", Icons.search),
onTap: () { onTap: () {
Navigator.pop(context);
Navigator.of(context).pushNamed(QR_READER); Navigator.of(context).pushNamed(QR_READER);
}, },
), ),
InkWell( InkWell(
child: DrawerItem("lOGOUT", Icons.exit_to_app), child: DrawerItem("lOGOUT", Icons.exit_to_app),
onTap: () { onTap: () {
Navigator.pop(context);
Navigator.of(context).pushNamed(LOGIN); Navigator.of(context).pushNamed(LOGIN);
}, },
), ),

@ -30,6 +30,7 @@ class AppExpandableNotifier extends StatelessWidget {
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Text( child: Text(
"See Graph Details", "See Graph Details",
style: TextStyle(fontWeight: FontWeight.bold),
)), )),
collapsed: Text(''), collapsed: Text(''),
expanded: bodyWid, expanded: bodyWid,

@ -1,13 +1,8 @@
import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/widgets/shared/profile_image_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import '../../config/size_config.dart';
import '../../presentation/doctor_app_icons.dart'; import '../../presentation/doctor_app_icons.dart';
import '../../widgets/shared/app_drawer_widget.dart';
import '../../widgets/shared/app_loader_widget.dart'; import '../../widgets/shared/app_loader_widget.dart';
import '../../widgets/shared/custom_shape_clipper.dart';
class AppScaffold extends StatelessWidget { class AppScaffold extends StatelessWidget {
String appBarTitle; String appBarTitle;
@ -37,12 +32,11 @@ class AppScaffold extends StatelessWidget {
}), }),
centerTitle: true, centerTitle: true,
actions: <Widget>[ actions: <Widget>[
ProfileImageWidget( IconButton(
height: 50, icon: Icon(DoctorApp.home_icon_active),
width: 50, color: Colors.white, //Colors.black,
url: onPressed: () => Navigator.pushReplacementNamed(context, HOME),
"https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png", ),
)
], ],
) )
: null, : null,

@ -33,8 +33,7 @@ class AppText extends StatefulWidget {
this.marginLeft = 0, this.marginLeft = 0,
this.visibility = true, this.visibility = true,
this.textAlign, this.textAlign,
this.backGroundcolor=Colors.white this.backGroundcolor = Colors.white});
});
@override @override
_AppTextState createState() => _AppTextState(); _AppTextState createState() => _AppTextState();
@ -56,11 +55,13 @@ class _AppTextState extends State<AppText> {
child: Text( child: Text(
widget.data, widget.data,
textAlign: widget.textAlign, textAlign: widget.textAlign,
overflow: TextOverflow.clip,
style: TextStyle( style: TextStyle(
color: widget.color, color: widget.color,
fontWeight: widget.fontWeight, fontWeight: widget.fontWeight,
fontSize: widget.fontSize ?? (SizeConfig.textMultiplier * 2), fontSize: widget.fontSize ?? (SizeConfig.textMultiplier * 2),
fontFamily: widget.fontFamily, fontFamily: widget.fontFamily,
// backgroundColor:widget.backGroundcolor // backgroundColor:widget.backGroundcolor
), ),
), ),

@ -1,5 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../app_texts_widget.dart';
/* /*
*@author: Elham Rababah *@author: Elham Rababah
*@Date:12/5/2020 *@Date:12/5/2020
@ -18,10 +20,11 @@ class DrAppEmbeddedError extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Center( return Center(
child: Text( child: AppText(
error, error,
style: TextStyle(color: Theme.of(context).errorColor), color: Theme.of(context).errorColor,
textAlign: TextAlign.center, textAlign: TextAlign.center,
margin: 10,
), ),
); );
} }

@ -23,7 +23,7 @@ dependencies:
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
flutter_device_type: ^0.2.0 flutter_device_type: ^0.2.0
intl: ^0.16.1 intl: ^0.16.0
http: ^0.12.0+4 http: ^0.12.0+4
provider: ^4.0.5+1 provider: ^4.0.5+1
shared_preferences: ^0.5.6+3 shared_preferences: ^0.5.6+3
@ -39,15 +39,12 @@ dependencies:
eva_icons_flutter: ^2.0.0 eva_icons_flutter: ^2.0.0
expandable: ^4.1.4 expandable: ^4.1.4
# Qr code Scanner # Qr code Scanner
barcode_scan: ^3.0.1 barcode_scan: ^3.0.1
# permissions # permissions
permission_handler: ^5.0.0+hotfix.3 permission_handler: ^5.0.0+hotfix.3
device_info: ^0.4.2+4 device_info: ^0.4.2+4
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2 cupertino_icons: ^0.1.2
@ -61,23 +58,20 @@ dev_dependencies:
build_runner: any build_runner: any
build_web_compilers: any build_web_compilers: any
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter. # The following section is specific to Flutter.
flutter: flutter:
# The following line ensures that the Material Icons font is # The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in # included with your application, so that you can use the icons in
# the material Icons class. # the material Icons class.
uses-material-design: true uses-material-design: true
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
assets: assets:
- assets/images/ - assets/images/
- assets/images/dashboard_icon/
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see # An image asset can refer to one or more resolution-specific "variants", see

@ -0,0 +1,8 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDdAHzw+C
qTVdRkviTeVAj7AAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIGnX/M1OFtZvGTEI
h5/B9u+eQwjzRJpanfljungMbc+VAAAAkPGJXHVNFeKLXK+aQFiTKx8EU48dQGLBQVIq4G
1SOgNvOaK2UfnQwSbZzhMAOmA1RCUbpQH9cGr9B/uSI88sdghcTEkNgVAtVF/NHNeKMahf
3hdVQ7ER6Au4FEIhpvUTzF+0G+8QBTabpNQx3UdLUxFAOulX6nIYG2phQIS08V/DdS70IG
luo6vY2w/qnXDsWQ==
-----END OPENSSH PRIVATE KEY-----

@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGnX/M1OFtZvGTEIh5/B9u+eQwjzRJpanfljungMbc+V sultan
Loading…
Cancel
Save