{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACAA;AACA;AACE,SAJF;AAKA;;AACAC;AAA6C;AAAA,OAA7C;;AACAA;AACAA;AACAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCYaC;AAKX,uCAAmBC,MAAnB,EAA0CC,UAA1C,EAA4EC,UAA5E,EAA+GC,UAA/G,EAA8KC,IAA9K,EAAgMC,YAAhM,EAAmOC,KAAnO,EACSC,MADT,EACgCC,UADhC,EACgEC,qBADhE,EAESC,IAFT,EAEmCC,QAFnC,EAE+DC,WAF/D,EAEiGC,aAFjG,EAEmI;AAAA;;AAFhH;AAAuB;AAAkC;AAAmC;AAA+D;AAAkB;AAAmC;AAC1N;AAAuB;AAAgC;AACvD;AAA0B;AAA4B;AAAkC;AAL1F,yBAAmB,IAAIC,kEAAJ,EAAnB;AACA,yBAAoB,IAAIC,qEAAJ,EAApB;AACA,yBAAkB,IAAIC,+DAAJ,EAAlB;AAKL,eAAKC,KAAL,GAAa,KAAKR,qBAAL,CAA2BS,gBAAxC;AACA,eAAKC,cAAL;AACA,eAAKC,aAAL;AACA,eAAKC,eAAL;AACD;;;;iBAEM,0BAAc;AAAA;;AACnB,iBAAKnB,UAAL,CAAgBoB,UAAhB,CAA2B,KAAKL,KAAL,CAAWM,iBAAtC,EAAwD,KAAKN,KAAL,CAAWO,QAAnE,EAA6EC,SAA7E,CAAuF,aAAG,EAAG;AAC3F,mBAAI,CAACC,OAAL,GAAeC,GAAf;AACD,aAFD,EAGE,eAAK,EAAG;AACN,mBAAI,CAACtB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aALH;AAMD;;;iBACM,yBAAa;AAAA;;AAClB;AACA,iBAAK3B,UAAL,CAAgB4B,SAAhB,CAA0B,KAAKzB,IAAL,CAAU0B,QAApC,EAA8CL,SAA9C,CAAwD,aAAG,EAAG;AAC5D,oBAAI,CAACM,OAAL,GAAeJ,GAAf;AACD,aAFD,EAGE,eAAK,EAAG;AACN,oBAAI,CAACtB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aALH;AAOD;;;iBACM,2BAAe;AAAA;;AACpB;AACA,iBAAKzB,UAAL,CAAgB6B,WAAhB,CAA4B,KAAK5B,IAAL,CAAU6B,UAAtC,EAAkDR,SAAlD,CAA4D,aAAG,EAAG;AAChE,oBAAI,CAACS,OAAL,GAAeP,GAAf;AAED,aAHD,EAIE,eAAK,EAAG;AACN,oBAAI,CAACtB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aANH;AAQD;;;;;;;yBA3CU7B,uBAAoBoC,umBAKuHC,sEALvH,GAKsID;AAAA;;;cAL1JpC;AAAoBsC;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ACxBjCN;;AACOA;;AACCA;;AACEA;;AACEA;;AACEA;;AACFA;;AACFA;;AACFA;;AAEEA;;AACCA;;AAAgBA;;AAAiCA;;;;AAC2BA;;AAC5EA;;AACEA;;AACEA;;AAGFA;;AACAA;;AACEA;;AASFA;;AACAA;;AACEA;;AAMFA;;AACAA;;AACEA;;AAWFA;;AACAA;;AACEA;;AAKFA;;AACAA;;AACEA;;AAKFA;;AACAA;;AACEA;;AAKFA;;AACAA;;AACEA;;AAIFA;;AAEFA;;AACAA;;AAEIA;;AAEFA;;AACEA;;AACFA;;AACAA;;AACEA;;AAEFA;;AACAA;;AACEA;;AAEFA;;AACAA;;AACEA;;AAEFA;;AACAA;;AACEA;;AAGFA;;AACFA;;AAEAA;;AACEA;;AAA6EA;;AAAOA;;AACtFA;;AAEFA;;AACFA;;AAEPA;;;;AAtG4DA;;AAAAA;;AAI7CA;;AAAAA;;AAsEAA;;AAAAA;;AAeAA;;AAAAA;;AAOiBA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpGJO;;AAAiDA;;AAACA;;;;;;AAYzCA;;AAAyDA;;AAACA;;;;;;AAKjEA;;AAAmDA;;AAACA;;;;;;AAKpDA;;AAAmDA;;AAACA;;;;;;AA6BtEA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAaA;;AACjBA;;AAAIA;;AAAsBA;;AAC1BA;;AAAIA;;AAAcA;;AAClBA;;AAAIA;;AAAgBA;;AACpBA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAmBA;;AACxBA;;;;;;;AAPKA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;;;;;;UCnDLC;AAMX,qCAAmBC,OAAnB,EAA0ClC,IAA1C,EAAmEmC,gBAAnE,EAA+GhC,aAA/G,EAA2JR,YAA3J,EAAqL;AAAA;;AAAlK;AAAuB;AAAyB;AAA4C;AAA4C;AALpJ,yBAA0B,IAAIyC,6EAAJ,EAA1B;AAEA,kCAA+B,IAAIC,KAAJ,EAA/B;AACP,mBAAS,CAAT;AAIC,eAAKC,qBAAL;AACA;;;;iBAED,iCAAqB;AAAA;;AACnB,iBAAKH,gBAAL,CAAsBG,qBAAtB,GACCvB,SADD,CACW,aAAG;AAAA,qBAAI,MAAI,CAACwB,4BAAL,CAAkCtB,GAAlC,CAAJ;AAAA,aADd,EAEA,aAAG;AAAA,qBAAI,MAAI,CAACuB,0BAAL,CAAgCvB,GAAhC,CAAJ;AAAA,aAFH;AAGD;;;iBACD,sCAA6BA,GAA7B,EAAgC;AAC9B,iBAAKwB,gBAAL,GAAwBxB,GAAxB;;AACA,iBAAK,IAAIyB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKD,gBAAL,CAAsBE,MAA1C,EAAkDD,CAAC,EAAnD,EAAuD;AACrD,mBAAKD,gBAAL,CAAsBC,CAAtB,EAAyBE,SAAzB,GAAqCC,mCAAM,CAAC,KAAKJ,gBAAL,CAAsBC,CAAtB,EAAyBE,SAA1B,CAAN,CAA2CE,MAA3C,CAAkD,YAAlD,CAArC;AACD;;AACD,iBAAK3C,aAAL,CAAmB4C,WAAnB,CAA+B,SAA/B,EAA0C,yBAA1C;AACD;;;iBACD,oCAA2B9B,GAA3B,EAA8B;AAC5B,iBAAKd,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,kCAAtC;AACD;;;iBAED,6BAAoBC,IAApB,EAAgC;AAAA;;AAClC,gBAAG,KAAKC,OAAL,IAAgB,IAAnB,EAAwB;AACtB,kBAAID,IAAI,CAACE,OAAT,EAAkB;AAChB,qBAAKhD,aAAL,CAAmB6C,SAAnB,CAA6B,EAA7B,EAAiC,mCAAjC;AACA;AACD;;AACC,mBAAKb,gBAAL,CAAsBiB,mBAAtB,CAA0C,KAAKF,OAA/C,EACCnC,SADD,CACW,aAAG;AAAA,uBAAI,MAAI,CAACsC,0BAAL,CAAgCpC,GAAhC,CAAJ;AAAA,eADd,EAEA,aAAG;AAAA,uBAAI,MAAI,CAACqC,wBAAL,CAA8BrC,GAA9B,CAAJ;AAAA,eAFH;AAGH;AAEE;;;iBACD,oCAA2BA,GAA3B,EAA8B;AAC5B,iBAAKiC,OAAL,GAAe,IAAId,6EAAJ,EAAf;AACA,iBAAKjC,aAAL,CAAmB4C,WAAnB,CAA+B,SAA/B,EAA0C,6BAA1C;AACA,iBAAKT,qBAAL;AACD;;;iBACD,kCAAyBrB,GAAzB,EAA4B;AAC1B,iBAAKd,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,oCAAtC;AACD;;;;;;;yBA9CUf,qBAAkBD;AAAA;;;cAAlBC;AAAkBN;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;;;ADdzBC;;AACEA;;AACEA;;AAAmCA;;AAA6BA;;AAAiBA;;AAAMA;;AAAWA;;AAAOA;;AACzGA;;AAAwCA;;AAAiCA;;AAAGA;;AAA2BA;;AAAIA;;AAC3GA;;AAA8BA;AAAAA;;AAAA;;AAAA,qBAAYuB,4BAAZ;AAA8C,aAA9C;;AAC5BvB;;AACEA;;AACEA;;AAAOA;;AAAKA;;AAAyDA;;AACnEA;;AACOA;AAAA;AAAA;;AADPA;;AAKJA;;AACAA;;AACEA;;AAAQA;;AAAKA;;AACXA;;AAAiCA;AAAA;AAAA;;AAAjCA;;AACJA;;AACAA;;AACEA;;AAAQA;;AAAaA;;AAAiEA;;AAAQA;;AAC9FA;;AAAmDA;AAAA;AAAA;;AAAnDA;;AAEFA;;AACAA;;AACEA;;AAAOA;;AAAOA;;AAA2DA;;AAAQA;;AACjFA;;AAA2CA;AAAA;AAAA;;AAA3CA;;AAEFA;;AACAA;;AACEA;;AAAOA;;AAAOA;;AAA2DA;;AAAQA;;AACjFA;;AAA8CA;AAAA;AAAA;;AAAkDA;;AAElGA;;AACFA;;AAEAA;;AAAoDA;;AAAYA;;AAClEA;;AACFA;;AACFA;;AACAA;;AACAA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AAEAA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAWA;;AAC7BA;;AACFA;;AACAA;;AACEA;;;;AASFA;;AACFA;;AACAA;;AAA4CA;AAAA;AAAA;;AAA0BA;;AAExEA;;AACFA;;;;;;;;;;;;AAjE+BA;;AAAAA;;AAEVA;;AAAAA;;AAO0BA;;AAAAA;;AAGPA;;AAAAA;;AACuBA;;AAAAA;;AAI9BA;;AAAAA;;AACsBA;;AAAAA;;AAItBA;;AAAAA;;AACyBA;;AAAAA;;AA4B7BA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEMzBA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAgBA;;AACpBA;;AAAIA;;AAAqBA;;AACzBA;;AAAIA;;AAAaA;;AACjBA;;AAAIA;;AAAeA;;AACnBA;;AAAIA;;AAAcA;;AAClBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAkBA;;AACvBA;;;;;;;AARKA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;;;;;;;;;;;;UC3DDwB;AAMX,sCAAmBtB,OAAnB,EAA0ClC,IAA1C,EAAmEyD,iBAAnE,EAAiHtD,aAAjH,EAA6JR,YAA7J,EAAuL;AAAA;;AAApK;AAAuB;AAAyB;AAA8C;AAA4C;AALtJ,wBAA0B,IAAI+D,gFAAJ,EAA1B;AAEC,yBAAsB,IAAIrB,KAAJ,EAAtB;AACR,mBAAS,CAAT;AAGI,eAAKsB,iBAAL;AACH;;;;iBAED,6BAAiB;AAAA;;AACf,iBAAKF,iBAAL,CAAuBE,iBAAvB,GACC5C,SADD,CACW,aAAG;AAAA,qBAAI,MAAI,CAAC6C,wBAAL,CAA8B3C,GAA9B,CAAJ;AAAA,aADd,EAEA,aAAG;AAAA,qBAAI,MAAI,CAAC4C,sBAAL,CAA4B5C,GAA5B,CAAJ;AAAA,aAFH;AAID;;;iBAED,kCAAyBA,GAAzB,EAA4B;AAC1B,iBAAK6C,OAAL,GAAe7C,GAAf;;AACA,iBAAK,IAAIyB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKoB,OAAL,CAAanB,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5C,mBAAKoB,OAAL,CAAapB,CAAb,EAAgBE,SAAhB,GAA4BC,mCAAM,CAAC,KAAKiB,OAAL,CAAapB,CAAb,EAAgBE,SAAjB,CAAN,CAAkCE,MAAlC,CAAyC,YAAzC,CAA5B;AACD;;AACD,iBAAK3C,aAAL,CAAmB4C,WAAnB,CAA+B,SAA/B,EAA0C,iBAA1C;AACD;;;iBACD,gCAAuB9B,GAAvB,EAA0B;AACxB,iBAAKd,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,0BAAtC;AACD;;;iBAED,4BAAgB;AAAA;;AAClB,gBAAG,KAAKe,MAAL,IAAe,IAAlB,EAAuB;AACnB,mBAAKN,iBAAL,CAAuBO,gBAAvB,CAAwC,KAAKD,MAA7C,EACChD,SADD,CACW,aAAG;AAAA,uBAAI,MAAI,CAACkD,mBAAL,CAAyBhD,GAAzB,CAAJ;AAAA,eADd,EAEA,aAAG;AAAA,uBAAI,MAAI,CAACiD,iBAAL,CAAuBjD,GAAvB,CAAJ;AAAA,eAFH;AAGH;AAEE;;;iBACD,6BAAoBA,GAApB,EAAuB;AACrB,iBAAK8C,MAAL,GAAc,IAAIL,gFAAJ,EAAd;AACA,iBAAKC,iBAAL;AACA,iBAAKxD,aAAL,CAAmB4C,WAAnB,CAA+B,SAA/B,EAA0C,sBAA1C;AACD;;;iBACD,2BAAkB9B,GAAlB,EAAqB;AACnB,iBAAKd,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,oCAAtC;AACD;;;;;;;yBA3CUQ,sBAAmBxB;AAAA;;;cAAnBwB;AAAmB7B;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADbhCC;;AACEA;;AAAIA;;AAA6BA;;AACjCA;;AACEA;;AACEA;;AAA0DA;AAAA;AAAA;;AAA1DA;;AACFA;;AACAA;;AACEA;;AAA2DA;AAAA;AAAA;;AAA3DA;;AACFA;;AACAA;;AACEA;;AAA0DA;AAAA;AAAA;;AAA1DA;;AACFA;;AACAA;;AACEA;;AAAyDA;AAAA;AAAA;;AAAzDA;;AACFA;;AACAA;;AACEA;;AAA4DA;AAAA;AAAA;;AAA5DA;;AAEFA;;AACAA;;AACEA;;AAA0DA;AAAA;AAAA;;AAA1DA;;AAEFA;;AACAA;;AACEA;;AAA0DA;AAAA;AAAA;;AAA1DA;;AAEFA;;AACAA;;AACEA;;AAA0DA;AAAA;AAAA;;AAA1DA;;AAEFA;;AACAA;;AACEA;;AAA0DA;AAAA;AAAA;;AAA1DA;;AAEFA;;AACAA;;AACEA;;AACEA;;AACEA;;AAAQA;AAAA,qBAASuB,sBAAT;AAA2B,aAA3B;;AAAqDvB;;AAAQA;;AAASA;;AAASA;;AACzFA;;AACFA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AAEAA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAKA;;AACrBA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAYA;;AAC9BA;;AACFA;;AACAA;;AACEA;;;;AAUFA;;AACFA;;AACAA;;AAA4CA;AAAA;AAAA;;AAA0BA;;AAExEA;;AACFA;;;;AA3EyBA;;AAAAA,+JAAqC,SAArC,EAAqCuB,oBAArC;;AAGEvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,qBAArC;;AAGFvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,mBAArC;;AAGAvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,wBAArC;;AAGEvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,gBAArC;;AAIFvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,oBAArC;;AAIAvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,kBAArC;;AAIAvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,gBAArC;;AAIAvB;;AAAAA,+JAAqC,SAArC,EAAqCuB,0BAArC;;AAgCGvB;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE6CdmC;;AACEA;;AAAKA;;AAAOA;;AACZA;;AAAKA;;AAA+BA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AAAsFA;;AAC3FA;;AAAKA;;AAA+BA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AAAkFA;;AACvFA;;AAAKA;;AAA+BA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AAAuFA;;AAC5FA;;AAAKA;;AAA+BA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AAAqFA;;AAC1FA;;AACEA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA6DA;;AAACA;;AACjEA;;AAA6BA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA+DA;;AAACA;;AAC/FA;;AACFA;;;;;;;;AATOA;;AAAAA;;AAC+BA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;UClGrCC;AAcX,wCAA6C1E,IAA7C,EAA8DK,qBAA9D,EAAkHmC,OAAlH,EACO1C,UADP,EAC2CW,aAD3C,EAC6E;AAAA;;AADhC;AAAiB;AAAoD;AAC3G;AAAoC;AAdpC,2BAAqB,KAArB;AAEA,0BAAkB,IAAIkE,mEAAJ,EAAlB;AAIP,gCAAqC,IAAIhC,KAAJ,EAArC,CAQ6E,CAJ7E;;AAEA,4BAA0B,IAAIiC,oFAAJ,EAA1B;AAIE,eAAK/D,KAAL,GAAa,KAAKR,qBAAL,CAA2BS,gBAAxC;AACD,eAAK+D,KAAL,GAAa,KAAK/E,UAAL,CAAgBgF,SAA7B;AACA,eAAKC,OAAL,GAAe,KAAKjF,UAAL,CAAgBiF,OAA/B;AACA,eAAKC,MAAL,GAAc;AAAEF,qBAAS,EAAE,EAAb;AAAiBG,uBAAW,EAAE,EAA9B;AAAiCC,eAAG,EAAE,EAAtC;AAAyCC,kBAAM,EAAE,EAAjD;AAAoDC,mBAAO,EAAE,EAA7D;AAAiEC,yBAAa,EAAC,EAA/E;AAAmFC,qBAAS,EAAE,EAA9F;AAAkGC,uBAAW,EAAE,EAA/G;AAAmHC,0BAAc,EAAE,EAAnI;AAAuIC,sBAAU,EAAE,EAAnJ;AAAuJC,yBAAa,EAAE,EAAtK;AAAyKC,eAAG,EAAE;AAA9K,WAAd;AACA,eAAKC,UAAL,GAAkB;AAAEC,wBAAY,EAAE,EAAhB;AAAoBf,qBAAS,EAAE,EAA/B;AAAmCC,mBAAO,EAAE,EAA5C;AAAgDe,oBAAQ,EAAE,EAA1D;AAA8DC,gBAAI,EAAE,EAApE;AAAwEC,qBAAS,EAAE,EAAnF;AAAuFC,mBAAO,EAAE;AAAhG,WAAlB;AACA,eAAKC,cAAL,CAAoBC,IAApB,CAAyB,KAAKP,UAA9B;AAEA;;;;iBAED,oBAAQ;AACN,iBAAKQ,gBAAL;AACD,YAGD;AACA;AACA;AAEA;AACA;AAEA;AAGA;AAEA;;;;iBAEA,oBAAQ;AACN,gBAAIpG,IAAI,GAAGqG,QAAQ,CAACC,cAAT,CAAwB,cAAxB,CAAX;AACAC,+DAAYvG,IAAZ,EAAkBwG,IAAlB,CAAuB,gBAAM,EAAG;AAC9B,kBAAIC,QAAQ,GAAG,GAAf;AACA,kBAAIC,SAAS,GAAGC,MAAM,CAACC,MAAP,GAAgBH,QAAhB,GAA2BE,MAAM,CAACE,KAAlD;AAEA,kBAAMC,cAAc,GAAGH,MAAM,CAACI,SAAP,CAAiB,WAAjB,CAAvB;AACA,kBAAIC,GAAG,GAAG,IAAIC,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,IAArB,CAAV,CAL8B,CAKQ;;AACtC,kBAAIC,QAAQ,GAAG,EAAf;AACAF,iBAAG,CAACG,QAAJ,CAAaL,cAAb,EAA6B,KAA7B,EAAoC,EAApC,EAAwCI,QAAxC,EAAkDT,QAAlD,EAA4DC,SAA5D,EAP8B,CAQ9B;;AACAM,iBAAG,CAACI,IAAJ,CAAS,iBAAT,EAT8B,CASD;AAE9B,aAXD;AAYD;;;iBAED,gBAAOC,KAAP,EAAY;AACV,iBAAKzB,UAAL,GAAkB;AAAEC,0BAAY,EAAE,EAAhB;AAAoBf,uBAAS,EAAE,EAA/B;AAAmCC,qBAAO,EAAE,EAA5C;AAAgDe,sBAAQ,EAAE,EAA1D;AAA8DC,kBAAI,EAAE,EAApE;AAAwEC,uBAAS,EAAE,EAAnF;AAAuFC,qBAAO,EAAE;AAAhG,aAAlB;AACA,iBAAKC,cAAL,CAAoBC,IAApB,CAAyB,KAAKP,UAA9B;AACA,mBAAO,IAAP;AACD;;;iBAED,mBAAUyB,KAAV,EAAe;AACb,gBAAI,KAAKnB,cAAL,CAAoBjD,MAApB,IAA8B,CAAlC,EAAqC;AACnC,qBAAO,KAAP;AACD,aAFD,MAEO;AACL,mBAAKiD,cAAL,CAAoBoB,MAApB,CAA2BD,KAA3B,EAAkC,CAAlC;AACA,qBAAO,IAAP;AACD;AACF;;;iBAED,4BAAgB;AAAA;;AAEd,iBAAKvH,UAAL,CAAgByH,YAAhB,CAA6B,KAAK1C,KAAlC,EAA0C,KAAKE,OAA/C,EAAyD1D,SAAzD,CAAmE,aAAG;AAAA,qBAAI,MAAI,CAACmG,cAAL,CAAoBjG,GAApB,CAAJ;AAAA,aAAtE,EACA,aAAG;AAAA,qBAAI,MAAI,CAACkG,mBAAL,CAAyBlG,GAAzB,CAAJ;AAAA,aADH;AAED;;;iBAED,wBAAevB,IAAf,EAAmB;AACjB,gBAAGA,IAAI,IAAIA,IAAI,CAAC0H,SAAb,IAA0B1H,IAAI,CAAC2H,OAAlC,EAA0C;AACxC,mBAAKC,SAAL,GAAiB,IAAjB;AACA,mBAAK5C,MAAL,GAAahF,IAAI,CAAC2H,OAAlB;AACA,mBAAKE,QAAL,CAAc9C,OAAd,GAAwB,KAAKC,MAAL,CAAYD,OAApC;AACA,mBAAK8C,QAAL,CAAc/C,SAAd,GAA0B,KAAKE,MAAL,CAAYF,SAAtC;AACA,mBAAK+C,QAAL,CAAcC,OAAd,CAAsBC,SAAtB,GAAiC,KAAK/C,MAAL,CAAY+C,SAA7C;AACD;AACF;;;iBAED,6BAAoBxG,GAApB,EAAuB,CAEtB;;;iBAED,gBAAI;AACF,iBAAKqG,SAAL,GAAiB,KAAjB;AACA,iBAAKpF,OAAL,CAAawF,QAAb,CAAsB,CAAC,aAAD,CAAtB;AACD;;;iBAED,yBAAa;AAAA;;AACX,gBAAG,KAAKH,QAAL,CAAcC,OAAd,CAAsBG,OAAtB,IAAiC,IAApC,EAAyC;AACvC,mBAAI,IAAIjF,CAAC,GAAC,CAAV,EAAcA,CAAC,GAAG,KAAKkD,cAAL,CAAoBjD,MAAtC,EAA+CD,CAAC,EAAhD,EAAmD;AACjD,qBAAKkD,cAAL,CAAoBlD,CAApB,EAAuB+B,OAAvB,GAAiC,KAAK8C,QAAL,CAAc9C,OAA/C;AACA,qBAAK8C,QAAL,CAAcK,WAAd,CAA0B/B,IAA1B,CAA+B,KAAKD,cAAL,CAAoBlD,CAApB,CAA/B;AACD;;AACD,mBAAKlD,UAAL,CAAgBqI,YAAhB,CAA6B,KAAKN,QAAlC,EAA2C,KAAKA,QAAL,CAAc9C,OAAzD,EAAmE1D,SAAnE,CAA6E,aAAG;AAAA,uBAAI,MAAI,CAAC+G,iBAAL,CAAuB7G,GAAvB,CAAJ;AAAA,eAAhF,EACA,aAAG;AAAA,uBAAI,MAAI,CAAC8G,sBAAL,CAA4B9G,GAA5B,CAAJ;AAAA,eADH;AAED,aAPD,MAQI;AACF,mBAAKd,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAqC,6BAArC;AAED;AACF;;;iBAED,2BAAkBtD,IAAlB,EAAsB;AACtB,iBAAKF,UAAL,CAAgBgF,SAAhB,GAA2B,IAA3B;AACA,iBAAKhF,UAAL,CAAgBiF,OAAhB,GAA0B,IAA1B;AACA,iBAAKvC,OAAL,CAAawF,QAAb,CAAsB,CAAC,aAAD,CAAtB;AACC;;;iBAED,gCAAuBzG,GAAvB,EAA0B,CAEzB;;;;;;;yBA5HUmD,wBAAqBD,gEAcX6D,qEAdW,GAcI7D;AAAA;;;cAdzBC;AAAqBzC;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADSpCoC;;AACEA;;AACEA;;AACEA;;AACEA;;AAEEA;;AAA2DA;AAAA,qBAASZ,UAAT;AAAe,aAAf;;AAAiBY;;AAAOA;;AACrFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAAIA;;AAA2BA;;AAASA;;AAASA;;AACnDA;;AAEAA;;AACEA;;AACEA;;AACEA;;AAAIA;;AAAWA;;AACfA;;AAAIA;;AAAoBA;;AAC1BA;;AAEAA;;AACEA;;AAAIA;;AAAKA;;AACTA;;AAAIA;;AAAsBA;;AAC5BA;;AACAA;;AACEA;;AAAIA;;AAAQA;;AACZA;;AAAIA;;AAAgCA;;AACtCA;;AACAA;;AACEA;;AAAIA;;AAAQA;;AACZA;;AAAIA;;AAAkBA;;AACxBA;;AACAA;;AACEA;;AAAIA;;AAAeA;;AACnBA;;AAAIA;;AAAwBA;;AAC9BA;;AACFA;;AACAA;;AACEA;;AACEA;;AAAIA;;AAAoBA;;AACxBA;;AAAIA;;;;AAA+DA;;AACrEA;;AAEAA;;AACEA;;AAAIA;;AAAWA;;AACfA;;AAAIA;;AAAyBA;;AAC/BA;;AACAA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAqBA;;AAC3BA;;AACFA;;AACFA;;AAEAA;;AACEA;;AACEA;;AAAOA;;AAAQA;;AAA4BA;;AAACA;;AAAOA;;AACnDA;;AAAgEA;AAAA;AAAA;;AAA4DA;;AAC9HA;;AACAA;;AACEA;;AAAOA;;AAAiBA;;AACxBA;;AAAgEA;AAAA;AAAA;;AAA2DA;;AAC7HA;;AACFA;;AACAA;;AACEA;;AAAOA;;AAAeA;;AACtBA;;AAAgEA;AAAA;AAAA;;AAAyDA;;AAC3HA;;AACAA;;AACEA;;AAAOA;;AAAWA;;AAClBA;;AACEA;;AACEA;;AACEA;;AAAIA;;AAAGA;;AACPA;;AAAIA;;AAAaA;;AACjBA;;AAAIA;;AAAIA;;AACRA;;AAAIA;;AAASA;;AACbA;;AAAIA;;AAAOA;;AACXA;;AAEFA;;AACFA;;AACAA;;AACEA;;AAWFA;;AACFA;;AACFA;;AACAA;;AACEA;;AAAqEA;;AAAOA;;AAC5EA;;AAKEA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAAmFA;;AACzFA;;AAEAA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAAmFA;;AACzFA;;AACAA;;AACEA;;AAAIA;;AAAWA;;AACfA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAAwFA;;AAC9FA;;AAGFA;;AACAA;;AACEA;;AACEA;;AAAIA;;AAAIA;;AACRA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAAgFA;;AACtFA;;AACAA;;AACEA;;AAAIA;;AAAeA;;AACnBA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAA+EA;;AACrFA;;AAEAA;;AACEA;;AAAIA;;AAAUA;;AACdA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAAqFA;;AAC3FA;;AACAA;;AACEA;;AAAIA;;AAAWA;;AACfA;;AAAIA;;AAA+BA;AAAA;AAAA;;AAA/BA;;AAAsFA;;AAC5FA;;AACFA;;AACFA;;AAEAA;;AACEA;;AAAOA;;AAASA;;AAAkCA;AAAA;AAAA;;AAAmDA;;AAAWA;;AAClHA;;AACAA;;AACEA;;AAAOA;;AAAiBA;;AAAkCA;AAAA;AAAA;;AAA0DA;;AAAWA;;AACjIA;;AACAA;;AACEA;;AAEEA;;AAAwBA;;AAAkCA;;AAC1DA;;AAAwBA;;AAA0BA;;AAClDA;;AAAwBA;;AAAkBA;;AAC1CA;;AAAwBA;;AAAoCA;;AAC9DA;;AACFA;;AAIFA;;AACAA;;AAAqDA;AAAA,qBAASZ,mBAAT;AAAwB,aAAxB;;AAA0BY;;AAAMA;;AA2DvFA;;AACFA;;AACFA;;;;AA9N4DA;;AAkB1CA;;AAAAA;;AAKAA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;AAMAA;;AAAAA;;AAKAA;;AAAAA;;AAIAA;;AAAAA;;AAQ0DA;;AAAAA;;AAIAA;;AAAAA;;AAKFA;;AAAAA;;AAiBxCA;;AAAAA;;AAuBeA;;AAAAA;;AAKAA;;AAAAA;;AAIAA;;AAAAA;;AAQAA;;AAAAA;;AAIAA;;AAAAA;;AAKAA;;AAAAA;;AAIAA;;AAAAA;;AAMWA;;AAAAA;;AAGQA;;AAAAA;;AAKhCA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEjFtB8D;;AACEA;;AAAKA;;AAAOA;;AACZA;;AAAKA;;AAAgBA;;AACrBA;;AAAKA;;AAAYA;;AACjBA;;AAAKA;;AAAiBA;;AACtBA;;AAAKA;;AAAeA;;AACtBA;;;;;;;AALOA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;AAYLA;;AACIA;;AAAIA;;AAAOA;;AACTA;;AAAIA;;AAAeA;;AACzBA;;;;;;AADUA;;AAAAA;;;;;;AAEVA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAeA;;AACrBA;;;;;;AADMA;;AAAAA;;;;;;AAENA;;AACEA;;AAAIA;;AAAYA;;AAChBA;;AAAIA;;AAAoBA;;AAC1BA;;;;;;AADMA;;AAAAA;;;;;;AAKNA;;AACEA;;AAAIA;;AAAIA;;AACRA;;AAAIA;;AAAYA;;AAClBA;;;;;;AADMA;;AAAAA;;;;;;AAENA;;AACIA;;AAAIA;;AAAeA;;AACjBA;;AAAIA;;AAAWA;;AACrBA;;;;;;AADUA;;AAAAA;;;;;;AAGVA;;AACEA;;AAAIA;;AAAUA;;AACdA;;AAAIA;;AAAiBA;;AACvBA;;;;;;AADMA;;AAAAA;;;;;;AAENA;;AACEA;;AAAIA;;AAAWA;;AACfA;;AAAIA;;AAAkBA;;AACxBA;;;;;;AADMA;;AAAAA;;;;UCtIPC;AAIX,yCAA6CxI,IAA7C,EAA8DK,qBAA9D,EACOP,UADP,EACiC;AAAA;;AADY;AAAiB;AACvD;AAEL,eAAKe,KAAL,GAAa,KAAKR,qBAAL,CAA2BS,gBAAxC,CAF+B,CAGhC;AACA,UAED;AACA;AACA;AAEA;AACA;AAEA;AAGA;AAEA;;;;;iBAEA,oBAAQ;AACN,gBAAId,IAAI,GAAGqG,QAAQ,CAACC,cAAT,CAAwB,cAAxB,CAAX;AACAC,+DAAYvG,IAAZ,EAAkBwG,IAAlB,CAAuB,gBAAM,EAAG;AAC9B,kBAAIC,QAAQ,GAAG,GAAf;AACA,kBAAIC,SAAS,GAAGC,MAAM,CAACC,MAAP,GAAgBH,QAAhB,GAA2BE,MAAM,CAACE,KAAlD;AAEA,kBAAMC,cAAc,GAAGH,MAAM,CAACI,SAAP,CAAiB,WAAjB,CAAvB;AACA,kBAAIC,GAAG,GAAG,IAAIC,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,IAArB,CAAV,CAL8B,CAKQ;;AACtC,kBAAIC,QAAQ,GAAG,EAAf;AACAF,iBAAG,CAACG,QAAJ,CAAaL,cAAb,EAA6B,KAA7B,EAAoC,EAApC,EAAwCI,QAAxC,EAAkDT,QAAlD,EAA4DC,SAA5D,EAP8B,CAQ9B;;AACAM,iBAAG,CAACI,IAAJ,CAAS,iBAAT,EAT8B,CASD;AAE9B,aAXD;AAYD;;;;;;;yBAvCUoB,yBAAsBD,gEAIZE,qEAJY,GAIGF;AAAA;;;cAJzBC;AAAsBvG;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADarCkG;;AACIA;;AACiBA;;AAA2BA;;AAC9CA;;AACAA;;AACEA;;AACAA;;AAAIA;;AAA2BA;;AAASA;;AAASA;;AACjDA;;AAEAA;;AACIA;;AACEA;;AACIA;;AAAIA;;AAAWA;;AACbA;;AAAIA;;AAAkBA;;AAC5BA;;AAEAA;;AACEA;;AAAIA;;AAAKA;;AACTA;;AAAIA;;AAAoBA;;AAC1BA;;AACAA;;AACEA;;AAAIA;;AAAQA;;AACZA;;AAAIA;;AAA4BA;;AAClCA;;AACAA;;AACEA;;AAAIA;;AAAQA;;AACZA;;AAAIA;;AAAgBA;;AACtBA;;AACAA;;AACEA;;AAAIA;;AAAeA;;AACnBA;;AAAIA;;AAAsBA;;AAC5BA;;AACFA;;AACAA;;AACEA;;AACIA;;AAAIA;;AAAoBA;;AACtBA;;AAAIA;;;;AAA2DA;;AACrEA;;AAEAA;;AACEA;;AAAIA;;AAAWA;;AACfA;;AAAIA;;AAAuBA;;AAC7BA;;AACAA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAmBA;;AACzBA;;AACFA;;AACHA;;AAECA;;AACEA;;AACAA;;AAAOA;;AAAwBA;;AAC/BA;;AACAA;;AACEA;;AAAOA;;AAAyCA;;AAClDA;;AACAA;;AACAA;;AACEA;;AAAOA;;AAAqCA;;AAC5CA;;AACAA;;AACEA;;AAAOA;;AAAWA;;AAClBA;;AACEA;;AACAA;;AACEA;;AAAIA;;AAAGA;;AACPA;;AAAIA;;AAAaA;;AACjBA;;AAAIA;;AAAIA;;AACRA;;AAAIA;;AAASA;;AACbA;;AAAIA;;AAAOA;;AACbA;;AACAA;;AACAA;;AACAA;;AAOAA;;AACFA;;AACAA;;AACAA;;AACEA;;AAAqEA;;AAAOA;;AAC5EA;;AACEA;;AACEA;;AAAIA;;AAAYA;;AACdA;;AAAIA;;;;AAAwCA;;AAClDA;;AACEA;;AAIAA;;AAIAA;;AAKFA;;AACAA;;AACEA;;AAIAA;;AAKAA;;AAIAA;;AAIFA;;AACHA;;AAECA;;AACEA;;AAAOA;;AAAyBA;;AAChCA;;AACAA;;AACEA;;AAAOA;;AAAwCA;;AAC/CA;;AACAA;;AACEA;;AACAA;;AAAwBA;;AAAgCA;;AACxDA;;AAAwBA;;AAAwBA;;AAChDA;;AAAwBA;;AAAgBA;;AACxCA;;AAAwBA;;AAAkCA;;AAC1DA;;AACAA;;AAIhBA;;AACAA;;AAAQA;AAAA,qBAAS1E,cAAT;AAAmB,aAAnB;;AAAqB0E;;AAAQA;;;;AAnInBA;;AAAAA;;AAKJA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;AAMIA;;AAAAA;;AAKJA;;AAAAA;;AAIAA;;AAAAA;;AAODA;;AAAAA;;AAGEA;;AAAAA;;AAIAA;;AAAAA;;AAeiBA;;AAAAA;;AAeVA;;AAAAA;;AAEHA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;AAOAA;;AAAAA;;AAIAA;;AAAAA;;AAKAA;;AAAAA;;AAIAA;;AAAAA;;AAQAA;;AAAAA;;AAGEA;;AAAAA;;AAImBA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEpG5BG;;AACEA;;AACFA;;;;;;AADEA;;AAAAA;;;;;;AAEFA;;AACEA;;AACFA;;;;;;AADEA;;AAAAA;;;;;;AALJA;;AACEA;;AAGAA;;AAGFA;;;;;;AANwBA;;AAAAA;;AAGAA;;AAAAA;;;;;;;;AAIxBA;;AAAqDA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAwFA;;AAAyBA;;AAAIA;;;;;;;;AAC1KA;;AAAsDA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAuFA;;AAA0BA;;AAAcA;;;;;;;;;;;;;;AAxBzLA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAkBA;;AACtBA;;AAAIA;;AAAqBA;;AACzBA;;AAAIA;;AAAYA;;AAChBA;;AAAIA;;AAAgBA;;AACpBA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAoBA;;AACxBA;;AAAIA;;AAAiBA;;AACrBA;;AAAwCA;;AAAeA;;AACvDA;;AACEA;;AAAgHA;AAAA;;AAAA;;AAAA;;AAAA;;AAAAC;AAAA;AAAA,aAAmE,eAAnE,EAAmE;AAAAD;;AAAA;;AAAA;AAAA,WAAnE;;AAAhHA;;AACAA;;AAAuDA;AAAAA;;AAAA;;AAAA,mBAASE,WAAT;AAAqB,WAArB;;AAAgDF;;AAA4BA;;AAAmBA;;AACtJA;;AAQAA;;AACAA;;AACFA;;AACFA;;;;;;;;;AAzBMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACoCA;;AAAAA;;AAE8JA;;AAAAA,iHAAuC,gBAAvC,EAAuCA,uEAAvC;;AAEnKA;;AAAAA;;AAQVA;;AAAAA;;AACAA;;AAAAA;;;;;;AAK/BA;;AACEA;;AACEA;;AAAsFA;;AACxFA;;AACFA;;;;;;;;;;;;;;;AA3EJA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AACAA;;AACEA;;AAEEA;;AAAsCA;;AAAeA;;AACrDA;;AACEA;;AAAOA;AAAAA;;AAAA;;AAAA;AAAA,aAAuB,eAAvB,EAAuB;AAAAA;;AAAA;;AAAA;AAAA,WAAvB;;AAAPA;;AACFA;;AACAA;;AAA4CA;;AAAiBA;;AAC7DA;;AACEA;;AAAsCA;AAAAA;;AAAA;;AAAA;AAAA,aAAgC,iBAAhC,EAAgC;AAAAA;;AAAA;;AAAA;AAAA,WAAhC;;AACpCA;;AAAiCA;;AAAGA;;AACpCA;;AAAiCA;;AAAYA;;AAC7CA;;AAAuCA;;AAAkBA;;AAC3DA;;AACFA;;AACFA;;AACFA;;AAEAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAGA;;AACnBA;;AAAgBA;;AAAMA;;AACtBA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAMA;;AAExBA;;AACFA;;AACAA;;AACEA;;;;AA2BFA;;AACFA;;AACAA;;AAKFA;;AAEAA;;AAA4CA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0BA;;AACxEA;;;;;;AAtE+DA;;AAAAA;;AAIjBA;;AAAAA;;AA6BjBA;;AAAAA;;AA6BnBA;;AAAAA;;;;;;;;UCvDGG;AAiBX,sCAAmBrG,OAAnB,EAA2C3C,UAA3C,EAA6EiJ,WAA7E,EAAwHC,UAAxH,EAA2J9I,YAA3J,EACSL,MADT,EACgCoJ,MADhC,EACoE1I,IADpE,EAC6F2I,MAD7F,EAC8G;AAAA;;AAD3F;AAAwB;AAAkC;AAA2C;AAAmC;AAClJ;AAAuB;AAAoC;AAAyB;AAftF,4BAAaC,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAb;AAKP,4BAAa;AAAE+F,iBAAK,EAAE,EAAT;AAAanJ,gBAAI,EAAE;AAAnB,WAAb;AAGA,mBAAY,CAAZ;AACO,yBAAkB,IAAIoJ,qDAAJ,EAAlB;AACA,kCAA4C,IAAIC,gGAAJ,EAA5C;AACA,oCAA0B,EAA1B;AAEA,oCAA+B,KAA/B;AAGL,eAAKxI,KAAL,GAAa,KAAKiI,WAAL,CAAiBhI,gBAA9B;AACA,eAAKwI,kBAAL;AACA,eAAKC,UAAL;AAED;;;;iBACD,qBAAYC,KAAZ,EAAiB;AACf,iBAAKC,MAAL,CAAYC,WAAZ,GAA0BF,KAA1B;AACD;;;iBACM,sBAAU;AACf,iBAAK,IAAIxG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK2G,UAAL,CAAgBR,KAApC,EAA2CnG,CAAC,EAA5C,EAAgD;AAC9C,mBAAK2G,UAAL,CAAgB3J,IAAhB,CAAqBmG,IAArB,CACE;AACEyD,kBAAE,EAAE5G,CAAC,GAAG,CADV;AAEE6G,qBAAK,EAAE,mBAAmB7G,CAAC,GAAG,CAAvB;AAFT,eADF;AAMD;;AAED,iBAAKyG,MAAL,GAAc;AACZK,0BAAY,EAAE,CADF;AAEZJ,yBAAW,EAAE,CAFD;AAGZK,wBAAU,EAAE,KAAKJ,UAAL,CAAgBR;AAHhB,aAAd;AAKD;;;iBAEM,8BAAkB;AAAA;;AACvB,iBAAKa,UAAL,GAAkB,IAAlB;AACA,iBAAKnK,UAAL,CAAgBoK,0BAAhB,CAA2C,KAAKpJ,KAAL,CAAWqJ,gBAAtD,EAAwE7I,SAAxE,CAAkF,aAAG,EAAG;AACtF,kBAAGE,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAA/B,EAAuC;AACrC,uBAAI,CAACwC,cAAL,GAAsB5I,GAAG,CAACoG,OAA1B;AAEA,uBAAI,CAACwC,cAAL,GAAsB,OAAI,CAACA,cAAL,CAAoBC,GAApB,CAAwB,WAAC,EAAG;AAChDC,mBAAC,CAAC/E,SAAF,GAAc4D,mCAAM,CAACmB,CAAC,CAAC/E,SAAH,CAAN,CAAoBlC,MAApB,CAA2B,YAA3B,CAAd;AACA,yBAAOiH,CAAP;AACD,iBAHqB,CAAtB;AAKA,uBAAI,CAACV,UAAL,GAAkB;AAAER,uBAAK,EAAE,OAAI,CAACgB,cAAL,CAAoBlH,MAA7B;AAAqCjD,sBAAI,EAAE;AAA3C,iBAAlB;;AAEA,qBAAK,IAAIgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAAC2G,UAAL,CAAgBR,KAApC,EAA2CnG,CAAC,EAA5C,EAAgD;AAC9C,yBAAI,CAAC2G,UAAL,CAAgB3J,IAAhB,CAAqBmG,IAArB,CACE;AACEyD,sBAAE,EAAE5G,CAAC,GAAG,CADV;AAEEsC,6BAAS,EAAE,OAAI,CAAC6E,cAAL,CAAoBnH,CAApB,EAAuBsC,SAFpC;AAGEL,+BAAW,EAAE,OAAI,CAACkF,cAAL,CAAoBnH,CAApB,EAAuBiC,WAHtC;AAIEE,0BAAM,EAAE,OAAI,CAACgF,cAAL,CAAoBnH,CAApB,EAAuBmC,MAJjC;AAKEE,iCAAa,EAAE,OAAI,CAAC8E,cAAL,CAAoBnH,CAApB,EAAuBqC,aALxC;AAMEiF,mCAAe,EAAE,OAAI,CAACH,cAAL,CAAoBnH,CAApB,EAAuBsH,eAN1C;AAOEC,8BAAU,EAAE,OAAI,CAACJ,cAAL,CAAoBnH,CAApB,EAAuBuH,UAPrC;AAQEC,4BAAQ,EAAE,OAAI,CAACL,cAAL,CAAoBnH,CAApB,EAAuBwH,QARnC;AASEzF,2BAAO,EAAE,OAAI,CAACoF,cAAL,CAAoBnH,CAApB,EAAuB+B,OATlC;AAUED,6BAAS,EAAE,OAAI,CAACqF,cAAL,CAAoBnH,CAApB,EAAuB8B,SAVpC;AAWE2F,mCAAe,EAAE,OAAI,CAACN,cAAL,CAAoBnH,CAApB,EAAuByH,eAX1C;AAYEvF,uBAAG,EAAE,OAAI,CAACiF,cAAL,CAAoBnH,CAApB,EAAuBkC,GAZ9B;AAaEwF,qCAAiB,EAAE,OAAI,CAACP,cAAL,CAAoBnH,CAApB,EAAuB0H,iBAb5C;AAcEC,0BAAM,EAAE,OAAI,CAACR,cAAL,CAAoBnH,CAApB,EAAuB2H;AAdjC,mBADF;AAkBD;;AAED,uBAAI,CAACC,UAAL;AACD,eAhCD,MAgCK;AACH,uBAAI,CAAC5B,MAAL,CAAY1F,SAAZ,CAAsB,EAAtB,EAA0B,wBAA1B;AACD;AACF,aApCD,EAqCA,eAAK,EAAG;AACN,qBAAI,CAACrD,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aAvCD;AAyCD;;;iBACD,sBAAU;AAAA;;AACR,iBAAKqJ,sBAAL,GAA8B,IAAIlI,KAAJ,EAA9B;AACA,iBAAKkI,sBAAL,GAA8BC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrB,UAAL,CAAgB3J,IAA/B,CAAX,CAA9B,CAFQ,CAEuE;;AAC/E,iBAAK6K,sBAAL,GAA8B,KAAKA,sBAAL,CAA4BI,MAA5B,CAAmC,WAAC;AAAA,qBAAIZ,CAAC,CAAC/E,SAAF,IAAe,OAAI,CAAC4F,UAAxB;AAAA,aAApC,CAA9B;AACA,iBAAKC,yBAAL,GAAiC,KAAKN,sBAAtC;;AACA,gBAAG,KAAKM,yBAAL,CAA+BlI,MAA/B,GAAwC,CAA3C,EAA6C;AAC3C,mBAAKmI,kBAAL,GAA0B,KAA1B;AACD,aAFD,MAEK;AACH,mBAAKA,kBAAL,GAA0B,IAA1B;AACD;AACF;;;iBACD,mBAASC,OAAT,EAAkBC,SAAlB,EAA2B;AACzB,iBAAKC,gBAAL,CAAsBxG,OAAtB,GAAgCsG,OAAhC;AACA,iBAAKE,gBAAL,CAAsBzG,SAAtB,GAAkCwG,SAAlC;AAED;;;iBAED,gBAAOE,KAAP,EAAY;AAAA;;AACV,iBAAKC,OAAL,GAAe,IAAf;AACA,gBAAID,KAAK,CAACvI,MAAN,KAAiB,CAArB,EACE;AAEF,gBAAMyI,QAAQ,GAAG,IAAIC,QAAJ,EAAjB;;AALU,uDAOOH,KAPP;AAAA;;AAAA;AAOV,kEAAwB;AAAA,oBAAfI,IAAe;;AACtB,oBAAIA,IAAI,CAACC,IAAL,GAAY,gBAAZ,GAA+B,EAAnC,EAAuC;AACrC,uBAAK7C,MAAL,CAAY8C,WAAZ,CAAwB,OAAxB,EAAiC,sCAAjC;AACA;AACD;;AACD,oBAAIC,aAAa,GAAGH,IAAI,CAACI,IAAL,CAAUC,KAAV,CAAgB,GAAhB,EAAqBC,GAArB,GAA2BC,WAA3B,EAApB;AACA,oBAAIC,kBAAkB,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,MAAtB,EAA8B,KAA9B,CAAzB;;AACA,oBAAI,CAACA,kBAAkB,CAACC,QAAnB,CAA4BN,aAA5B,CAAL,EAAiD;AAC/C,uBAAK/C,MAAL,CAAY8C,WAAZ,CAAwB,yBAAxB,EAAmD,OAAnD;AACA;AACD;;AACDJ,wBAAQ,CAACY,MAAT,CAAgBV,IAAI,CAACI,IAArB,EAA2BJ,IAA3B;AAIA,oBAAMW,SAAS,GAAG,IAAIC,8DAAJ,CAAgB,MAAhB,4BAAkDd,QAAlD,EAA4D;AAC5Ee,gCAAc,EAAE;AAD4D,iBAA5D,CAAlB;AAIA,qBAAKnM,IAAL,CAAUoM,OAAV,CAAkBH,SAAlB,EAA6BlL,SAA7B,CAAuC,eAAK,EAAG;AAC7C,sBAAImI,KAAK,CAACmD,IAAN,KAAeH,+EAAnB,EACE,OAAI,CAACI,QAAL,GAAgBC,IAAI,CAACC,KAAL,CAAW,MAAMtD,KAAK,CAACuD,MAAZ,GAAqBvD,KAAK,CAACwD,KAAtC,CAAhB,CADF,KAEK,IAAIxD,KAAK,CAACmD,IAAN,KAAeH,yEAAnB,EACH,OAAI,CAACf,OAAL,GAAejC,KAAK,CAACyD,IAAN,CAAWC,QAAX,EAAf;;AACF,sBAAI,OAAI,CAACzB,OAAL,IAAgB,oBAApB,EAA0C;AACxC,2BAAI,CAAC5L,UAAL,CAAgBsN,kBAAhB,CAAmC,OAAI,CAAC5B,gBAAxC,EAA0DlK,SAA1D,CAAoE,aAAG;AAAA,6BAAI,OAAI,CAAC+L,OAAL,CAAa7L,GAAb,CAAJ;AAAA,qBAAvE,EACE,aAAG;AAAA,6BAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,qBADL;AAED;AACF,iBATD;AAUD;AApCS;AAAA;AAAA;AAAA;AAAA;AAqCX;;;iBACD,iBAAQA,GAAR,EAAW;AACT,iBAAKyH,MAAL,CAAY3F,WAAZ,CAAwB,QAAxB,EAAkC,qBAAlC;AAED;;;iBACD,eAAM9B,GAAN,EAAS,CAER;;;iBAED,+BAAsBiI,KAAtB,EAA4C;AAAA;;AAC1C,gBAAI,KAAK8D,kBAAL,IAA2B,EAA3B,IAAiC,KAAKA,kBAAL,IAA2B,KAAhE,EAAuE;AACrE,mBAAK,IAAItK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK6H,sBAAL,CAA4B5H,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;AAC3D,qBAAKmI,yBAAL,GAAiC,KAAKN,sBAAL,CAA4BI,MAA5B,CAAmC,WAAC;AAAA,yBAAIsC,CAAC,CAAC9C,eAAF,IAAqB,OAAI,CAAC6C,kBAA9B;AAAA,iBAApC,CAAjC;AACD;AACF,aAJD,MAKK;AACH,mBAAKnC,yBAAL,GAAiC,KAAKN,sBAAtC;AACD;AACF;;;iBACD,sBAAa7K,IAAb,EAAiB;AACf,iBAAK+I,UAAL,CAAgBjE,SAAhB,GAA4B9E,IAAI,CAAC8E,SAAjC;AACA,iBAAKiE,UAAL,CAAgBhE,OAAhB,GAA0B/E,IAAI,CAAC+E,OAA/B;AACA,iBAAKvC,OAAL,CAAawF,QAAb,CAAsB,CAAC,gBAAD,CAAtB;AACD;;;iBAED,uBAAchI,IAAd,EAAkB;AAAA;;AAChB,iBAAK+I,UAAL,CAAgBxB,YAAhB,CAA6BvH,IAAI,CAAC8E,SAAlC,EAA6C9E,IAAI,CAAC+E,OAAlD,EAA2D1D,SAA3D,CAAqE,aAAG;AAAA,qBAAI,OAAI,CAACmG,cAAL,CAAoBjG,GAApB,CAAJ;AAAA,aAAxE,EACE,aAAG;AAAA,qBAAI,OAAI,CAACkG,mBAAL,CAAyBlG,GAAzB,CAAJ;AAAA,aADL;AAED;;;iBAED,wBAAevB,IAAf,EAAmB;AACjB,gBAAGA,IAAI,IAAIA,IAAI,CAAC0H,SAAb,IAA0B1H,IAAI,CAAC2H,OAAlC,EAA0C;AACxC,kBAAI6F,WAAW,GAAGxN,IAAI,CAAC2H,OAAvB;AACA,kBAAM8F,SAAS,GAAG,KAAKxE,MAAL,CAAYyE,IAAZ,CAAiBC,mFAAjB,EAChB;AACE3N,oBAAI,EAAE;AACJ8E,2BAAS,EAAE0I,WAAW,CAAC1I,SADnB;AAEJG,6BAAW,EAAEuI,WAAW,CAACvI,WAFrB;AAGJC,qBAAG,EAAEsI,WAAW,CAACtI,GAHb;AAIJC,wBAAM,EAAEqI,WAAW,CAACrI,MAJhB;AAKJC,yBAAO,EAAEoI,WAAW,CAACpI,OALjB;AAMJC,+BAAa,EAAEmI,WAAW,CAACnI,aANvB;AAOJC,2BAAS,EAAEkI,WAAW,CAAClI,SAPnB;AAQJC,6BAAW,EAAEiI,WAAW,CAACjI,WARrB;AASJC,gCAAc,EAAEgI,WAAW,CAAChI,cATxB;AAUJC,4BAAU,EAAE+H,WAAW,CAAC/H,UAVpB;AAWJmI,6BAAW,EAAEJ,WAAW,CAACI,WAXrB;AAYJC,wBAAM,EAAEL,WAAW,CAACK,MAZhB;AAaJC,wBAAM,EAAEN,WAAW,CAACM,MAbhB;AAcJC,6BAAW,EAAEP,WAAW,CAACO,WAdrB;AAeJC,qBAAG,EAAER,WAAW,CAACQ,GAfb;AAgBJC,oBAAE,EAAET,WAAW,CAACS,EAhBZ;AAiBJC,0BAAQ,EAAEV,WAAW,CAACU,QAjBlB;AAkBJC,2BAAS,EAAEX,WAAW,CAACW,SAlBnB;AAmBJzI,+BAAa,EAAE8H,WAAW,CAAC9H,aAnBvB;AAoBJC,qBAAG,EAAE6H,WAAW,CAAC7H,GApBb;AAqBJ4E,4BAAU,EAAEiD,WAAW,CAACjD,UArBpB;AAsBJD,iCAAe,EAAEkD,WAAW,CAAClD,eAtBzB;AAuBJrC,yBAAO,EAAEuF,WAAW,CAACvF,OAvBjB;AAwBJmG,iCAAe,EAAEZ,WAAW,CAACY,eAxBzB;AAyBJC,+BAAa,EAAEb,WAAW,CAACa,aAzBvB;AA0BJC,gCAAc,EAAEd,WAAW,CAACc,cA1BxB;AA2BJrI,yBAAO,EAAEuH,WAAW,CAACvH,OA3BjB;AA4BJC,gCAAc,EAAEsH,WAAW,CAACtH,cA5BxB;AA6BJnB,yBAAO,EAAEyI,WAAW,CAACe;AA7BjB,iBADR;AA+BK1H,qBAAK,EAAE,QA/BZ;AA+BsBD,sBAAM,EAAE;AA/B9B,eADgB,CAAlB;AAmCA6G,uBAAS,CAACe,YAAV,GAAyB,IAAzB;AACAf,uBAAS,CAACgB,WAAV,GAAwBpN,SAAxB,CAAkC,gBAAM,EAAG;AACzCoM,yBAAS,CAACiB,KAAV;AACAC,uBAAO,CAACC,GAAR,0BAA8BC,MAA9B,GAFyC,CAGzC;AACD,eAJD;AAKD,aA3CD,MA2CK;AACH,mBAAK7F,MAAL,CAAY1F,SAAZ,CAAsB,EAAtB,EAA0B,qBAA1B;AACD;AACF;;;iBAED,6BAAoB/B,GAApB,EAAuB,CAEtB;;;;;;;yBA/NUsH,sBAAmBH;AAAA;;;cAAnBG;AAAmB5G;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADnBhCqG;;AACAA;;AAAmEA;;AAAKA;;AAAMA;;AAAYA;;AAAQA;;AAElGA;;AAiFAA;;;;AAnFQA;;AAAAA;;AAEFA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEDJoG;;AAA0BA;AAAAA;;AAAA;;AAAA;AAAA;;AAAsBA;;AAAkBA;;;;;;;;AAoBhCA;;AAA0BA;AAAAA;;AAAA;;AAAA;AAAA;;AAAsBA;;AAAkBA;;;;;;;;;;;;;;;;;;;;;;;;AAVhGA;;AAGEA;;AACEA;;AAA2BA;;AAAQA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0CA;;AAA4BA;;AAAgBA;;AAASA;;AAElIA;;AAA0BA;;AAAyDA;;AAA6BA;;AAAcA;;AAASA;;AACvIA;;AAA2BA;;AAAmDA;;AAAgCA;;AAAgBA;;AAASA;;AACvIA;;AAA2BA;;AAAuDA;;AAAmCA;;AAAeA;;AAASA;;AAC7IA;;AAA0BA;;AAAkDA;;AAA0BA;;AAAOA;;AAASA;;AACtHA;;AAA0BA;;AAA2EA;;AACvGA;;AACFA;;;;;;AANsCA;;AAAAA;;AACCA;;AAAAA;;AACAA;;AAAAA;;AACDA;;AAAAA;;AACCA;;AAAAA;;;;;;AAlB3CA;;AACEA;;AACEA;;AACEA;;AAAOA;;AAAkCA;;AAAQA;;AAAyBA;;AAASA;;AACnFA;;AAAiCA;;AAAgCA;;AACnEA;;AACFA;;AACAA;;AACEA;;AAcAA;;AACEA;;AACEA;;AACFA;;AACFA;;AACFA;;AAsCFA;;;;;;AA9DuDA;;AAAAA;;AAKzBA;;AAAAA;;;;;;AA0D9BA;;AACEA;;AACFA;;;;UCzDWC;AAQX,2CAAmBnP,MAAnB,EAA0C4C,OAA1C,EAAkEuG,UAAlE,EAAsG1I,qBAAtG,EACSR,UADT,EAC2CI,YAD3C,EAC8E+O,mBAD9E,EACwH9O,KADxH,EAC6I;AAAA;;AAD1H;AAAuB;AAAwB;AAAoC;AAC7F;AAAkC;AAAmC;AAA0C;AAPjH,yBAAiB,IAAI+O,+DAAJ,EAAjB;AAGA,8BAA2B,IAAItM,KAAJ,EAA3B;AACA,8BAA2B,IAAIA,KAAJ,EAA3B;AAKL,eAAK9B,KAAL,GAAa,KAAKR,qBAAL,CAA2BS,gBAAxC;AACA,eAAKjB,UAAL,CAAgB6B,QAAhB,GAA2B,KAAKb,KAAL,CAAWqJ,gBAAtC;AACA,eAAKgF,MAAL,GAAc,KAAKhP,KAAL,CAAWiP,QAAX,CAAoBC,aAApB,CAAkCC,GAAlC,CAAsC,aAAtC,CAAd;AAED;;;;iBACD,oBAAQ;AACN,iBAAKL,mBAAL,CAAyBM,OAAzB;AACA,iBAAKtO,aAAL;AACA,iBAAKuO,UAAL;AACD;;;iBAEQ,yBAAa;AAAA;;AAClB;AACA,iBAAK1P,UAAL,CAAgB4B,SAAhB,CAA0B,KAAKZ,KAAL,CAAWqJ,gBAArC,EAAuD7I,SAAvD,CAAiE,aAAG,EAAG;AAEnE,qBAAI,CAACM,OAAL,GAAeJ,GAAf;AACD,aAHH,EAIE,eAAK,EAAE;AACL,qBAAI,CAACtB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aANH;AAQD,YACH;AACA;AACA;AACA;;;;iBACO,qBAAS;AACd,iBAAKgO,SAAL,GAAiB,KAAjB;AACA,iBAAKhN,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB;AACD;;;iBAEM,sBAAU;AAAA;;AAEf,iBAAKe,UAAL,CAAgB0G,sBAAhB,CAAuC,KAAK5O,KAAL,CAAWqJ,gBAAlD,EAAoE7I,SAApE,CAA8E,aAAG,EAAG;AACjF;;AACF;AAEG;AACA;AACA;AACA;AACA;AACA;AACA;AACD,aAXH,EAYI,eAAK,EAAG;AACN,qBAAI,CAACpB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aAdL;AAgBC,YAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;;;;iBAEA,6BAAoBD,GAApB,EAAuB,CAEtB;;;iBAED,eAAMA,GAAN,EAAS,CAER;;;iBACD,sBAAU;AACR,iBAAK3B,MAAL,CAAY8P,QAAZ,GAAuB,IAAvB;AACA,iBAAK9P,MAAL,CAAY+P,SAAZ,CAAsBlK,UAAtB,GAAkC,KAAK9D,OAAL,CAAaiO,SAA/C;AACA,iBAAKpN,OAAL,CAAawF,QAAb,CAAsB,CAAC,aAAD,CAAtB;AACD;;;;;;;yBAlIU+G,2BAAwBD;AAAA;;;cAAxBC;AAAwB9M;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADfrCyM;;AACEA;;AACAA;;AAEAA;;AAkEAA;;AAGFA;;AAEAA;;;;AAzEWA;;AAAAA;;AAEUA;;AAAAA;;AAkEbA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SEnDR;;;;;;;AClBEe;;;;;;;;;;;;;;;;;;AACAA;;AAAQA;AAAAA;;AAAA;;AAAA,0CAAwB,QAAxB;AAAgC,WAAhC;;AAKNA;;AACFA;;;;AALQA,0JAAgC,aAAhC,EAAgCA,sEAAhC;;;;;;AAMRA;;AAGEA;;AAGkCA;;AAA4BA;;AAChEA;;;;;;AAFKA;;AAAAA;;;;;;AAWKA;;AAEEA;;AACEA;;AACyBA;;AAC3BA;;AACAA;;AACEA;;AACyBA;;AAC3BA;;AACAA;;AACEA;;AACyBA;;AAC3BA;;AACFA;;;;;;AAV6BA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;;;;;AAb9BA;;AACCA;;AAeFA;;;;;;AAdqBA;;AAAAA;;;;;;;;AA0BvBA;;AAGGA;AAAAA;;AAAA;;AAAA;AAAA;;AACDA;;AAC0BA;;AAC5BA;;;;;;AAUUA;;AAGEA;;AAA0BA;;AAAKA;;AACjCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAKA;;AACjCA;;;;;;AACAA;;AAGEA;;AACEA;;AACFA;;AACFA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAASA;;AACrCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAWA;;AACvCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAQA;;AACpCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAUA;;AACtCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAASA;;AACrCA;;;;;;AAEAA;;AAGEA;;AACEA;;AACFA;;AACFA;;;;;;AACAA;;AAGEA;;AACEA;;AACFA;;AACFA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAQA;;AACpCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAWA;;AACvCA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAUA;;AACtCA;;;;;;AACAA;;AAGEA;;AACEA;;AACFA;;AACFA;;;;;;AACAA;;AAGEA;;AAA0BA;;AAAMA;;AAClCA;;;;;;AACAA;;AAGEA;;AACEA;;AACFA;;AACFA;;;;;;;;AAaUA;;AACEA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAiEA;;AACxCA;;AAAiBA;;AAC/CA;;;;;;AAD8BA;;AAAAA;;;;;;AAJhCA;;AAEEA;;AAIFA;;;;;;AAJyBA;;AAAAA;;;;;;AAKzBA;;AAEEA;;AAA8BA;;AAAKA;;AACrCA;;;;;;AAnHhBA;;AACEA;;AACEA;;AACEA;;AACEA;;AAKAA;;AAKAA;;AAOAA;;AAKAA;;AAKAA;;AAKAA;;AAKAA;;AAMAA;;AAOAA;;AAOAA;;AAKAA;;AAKAA;;AAKAA;;AAOAA;;AAKAA;;AAOFA;;AACAA;;AAEEA;;AACEA;;AACEA;;AACEA;;AACEA;;AACEA;;AACFA;;AACAA;;AAOAA;;AAIFA;;AACFA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AAEEA;;AACEA;;AAC0BA;;AAAcA;;AAC1CA;;AAC0BA;;AAAwBA;;AACpDA;;AACAA;;AAEEA;;AACEA;;AAC0BA;;AAE5BA;;AACAA;;AACyBA;;AAAgCA;;AAC3DA;;AACFA;;AACFA;;AACFA;;AACFA;;;;;;;;AA3IgBA;;AAAAA;;AAKAA;;AAAAA;;AAKAA;;AAAAA;;AAOAA;;AAAAA;;AAKAA;;AAAAA;;AAKAA;;AAAAA;;AAKAA;;AAAAA;;AAKAA;;AAAAA;;AAMAA;;AAAAA;;AAOAA;;AAAAA;;AAOAA;;AAAAA;;AAKAA;;AAAAA;;AAKAA;;AAAAA;;AAKAA;;AAAAA;;AAOAA;;AAAAA;;AAKAA;;AAAAA;;AAkBMA;;AAAAA;;AAMAA;;AAAAA;;AAgBcA;;AAAAA;;AAUDA;;AAAAA;;;;;;AAuC7BA;;AAEEA;;AACFA;;;;;;AAFQA;;AACNA;;AAAAA;;;;;;;;AAXJA;;AAGQA;AAAAA;;AAAA;;AAAA;AAAA;;AAENA;;AAEEA;;AACFA;;AACAA;;AAIFA;;;;;;AANIA;;AAAAA;;AAEuBA;;AAAAA;;;;;;AAQ3BA;;AAEEA;;AAC0BA;;AAC1BA;;AAASA;;AAAYA;;AACvBA;;;;;;AADWA;;AAAAA;;;;;;AAGXA;;AAEEA;;AACFA;;;;;;AADEA;;AAAAA;;;;;;AAKAA;;AAEEA;;AACEA;;AAC0BA;;AAC5BA;;AACFA;;;;;;AAF8BA;;AAAAA;;;;;;AAG9BA;;AAEEA;;AAAkCA;;AAAkBA;;AACtDA;;;;;;AADoCA;;AAAAA;;;;;;AAXtCA;;AAEEA;;AAOAA;;AAIFA;;;;;;AAXQA;;AAAAA;;AAOAA;;AAAAA;;;;;;AAcNA;;AAEEA;;AACFA;;;;;;;;AA1ERA;;AACEA;;AAGQA;AAAA;;AAAA;AAAA,mBAASC,kBAAc,aAAd,CAAT;AAAqC,WAArC;;AACND;;AAAyBA;;AAAOA;;AAClCA;;AACFA;;AACAA;;AACEA;;AAEEA;;AAEEA;;AACEA;;AAC2BA;;AAC7BA;;AACFA;;AACAA;;AACEA;;AAcFA;;AAEAA;;AACEA;;AAOAA;;AAIAA;;AACAA;;AAcFA;;AACAA;;AAEEA;;AAIUA;AAAAA;;AAAA;;AAAA;AAAA;;AAA8BA;;AACxCA;;AACEA;;AAIAA;;AAGOA;AAAAA;;AAAA;;AAAA;AAAA;;AAHPA;;AAIFA;;AACFA;;AACFA;;AACFA;;;;;;AAzEQA;;AAAAA;;AAM2BA;;AAAAA;;AAIpBA;;AAAAA;;AAiBDA;;AAAAA;;AAOFA;;AAAAA;;AAMeA;;AAAAA;;AAsBbA;;AAAAA;;;;;;;;;;;;AAkDEA;;AACGA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAGDA;;AAC0BA;;AAC5BA;;;;AAJGA;;;;;;AAHLA;;AACEA;;AAQAA;;AACAA;;AAE+DA;;AACjEA;;;;;;AAZMA;;AAAAA;;AAW2DA;;AAAAA;;;;;;AAGjEA;;AACEA;;AAE+DA;;AACjEA;;;;;;AADiEA;;AAAAA;;;;;;AAM7DA;;;;;;;;AAJJA;;AACEA;;AAEGA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AACDA;;AAEkCA;;AAClCA;;AAC2BA;;AAC7BA;;AAEAA;;AAAGA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAGHA;;AACFA;;;;;;AAXQA;;AAAAA;;AAIuBA;;AAAAA;;AAI1BA;;AAAAA;;;;;;AAnDXA;;AACEA;;AACEA;;AACEA;;AAEFA;;AACAA;;AACEA;;AAAoBA;;AAAsEA;;AAC5FA;;AACAA;;AACEA;;AAAoBA;;AAAwEA;;AAC9FA;;AACAA;;AACEA;;AAAoBA;;AAAqEA;;AAC3FA;;AACAA;;AACEA;;AAAoBA;;AAAkBA;;AACxCA;;AACAA;;AACEA;;AAeAA;;AAKAA;;AAgBFA;;AACFA;;AACFA;;;;;;;;AAlD0BA;;AAAAA;;AAGAA;;AAAAA;;AAGAA;;AAAAA;;AAGAA;;AAAAA;;AAGdA;;AAAAA;;AAeAA;;AAAAA;;AAKAA;;AAAAA;;;;;;;;;;;;;;;AArDxBA;;AAEEA;;AACEA;;AACEA;;AACEA;;AACEA;;AAC0BA;;AAC5BA;;AACFA;;AACAA;;AACEA;;AACEA;;AAEEA;;AA0DFA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AACEA;;AACFA;;AACFA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAA8BA;;AAAmBA;;AACjDA;;AACUA;AAAAA;;AAAA;;AAAA;AAAA;;AAAuCA;;AAEjDA;;AAAyBA;;AAAaA;;AACtCA;;AACUA;AAAAA;;AAAA;;AAAA;AAAA;;AAAkCA;;AAE5CA;;AAAuBA;;AAAYA;;AACnCA;;AACUA;AAAAA;;AAAA;;AAAA;AAAA;;AAAgCA;;AAE1CA;;AACEA;;AAKEA;AAAAA;;AAAA;;AAAA,wEAA2C,CAA3C,EAA4C/K,SAA5C;AAA4C,WAA5C;;AALF+K;;AAOFA;;AACFA;;AACFA;;AACFA;;;;;;AAjG2CA;;AAAAA;;AA4E3BA;;AAAAA;;AAIAA;;AAAAA;;AAIAA;;AAAAA;;AAMNA;;AAAAA,wGAA4B,SAA5B,EAA4BA,8FAA5B;;;;;;AA6CJA;;;;;;AAEAA;;;;;;AAGFA;;AAOAA;;AACAA;;AACAA;;;;;;AARAA,2JAAgB,UAAhB,EAAgBE,aAAhB;;;;;;AASAF;;;;;;AACAA;;;;;;AAGEA;;AACEA;;AAEiBA;;AAAsBA;;AACzCA;;;;;;AAHKA;;AAAAA;;;;;;;;;SD9bf;;;UAOaG;AAgFX,sCAAmB5P,UAAnB,EACU6P,YADV,EAESzN,OAFT,EAEkCnC,qBAFlC,EAGUH,KAHV,EAISN,MAJT,EAIgCmJ,UAJhC,EAImEE,MAJnE,EAKUhJ,YALV,EAK6CJ,UAL7C,EAMUY,aANV,EAMqDuO,mBANrD,EAOUxO,WAPV,EAO4C0P,GAP5C,EAQUC,MARV,EAQkCC,SARlC,EAQyD;AAAA;;AAAA;;AARtC;AACT;AACD;AAAyB;AACxB;AACD;AAAuB;AAAmC;AACzD;AAAmC;AACnC;AAA2C;AAC3C;AAAkC;AAClC;AAAwB;AAvFlC,wBAAiB,aAAjB,CAuFyD,CAvFzB;;AAKhC,8BAAe,KAAf;AACA,8BAAe,KAAf;AAIO,+BAAyB,KAAzB;AACP,yBAAU,EAAV;AACA,4BAAsB,KAAtB;AAEA,8BAAwB,KAAxB;AACA,+BAAyB,KAAzB;AACO,6BAAc,IAAd;AAWA,gCAA0B,IAA1B;AACP,0BAAkB,IAAIC,4DAAJ,EAAlB;AACO,2BAAuB,IAAIA,gEAAJ,EAAvB;AAMA,yBAAkB,IAAIC,+DAAJ,EAAlB;AACP,0BAA8B,IAAI3N,KAAJ,EAA9B;AACA,yBAAsB,IAAIA,KAAJ,EAAtB;AACO,yBAAmB,IAAIjC,kEAAJ,EAAnB;AACP,yBAA6B,IAAIiC,KAAJ,EAA7B;AACA,6BAAiC,IAAIA,KAAJ,EAAjC;AACA,0BAAiB,IAAjB;AAEA,0BAAW,8CAAM,IAAN,EAAY,KAAZ,CAAX;AACA,0BAAW,8CAAM,IAAN,EAAY,KAAZ,CAAX;AACA,6BAAc,8CAAM,IAAN,EAAY,IAAZ,CAAd;AAEA,4BAAkB,IAAlB;AAKO,0BAAoB,KAApB;AAEP,8BAA2B,IAAIA,KAAJ,EAA3B;AACA,sCAAmC,IAAIA,KAAJ,EAAnC;AAKA,kCAAmB,KAAnB;AAEA,2BAAqB,KAArB;AAGA,6BAAc,EAAd;AAGA,mCAAoB,KAApB;AACA,0BAAW,KAAX;AAGA,wBAAS,KAAT;AAGA,wCAAyB,IAAI4N,+CAAJ,EAAzB;AAEO,gCAA0B,KAA1B;AAo3BP,wBAASC,6EAAT;AAz2BE,eAAK3P,KAAL,GAAa,KAAKR,qBAAL,CAA2BS,gBAAxC;AACA,eAAKlB,MAAL,CAAY6Q,SAAZ,GAAwB,KAAxB;AACA,eAAKC,QAAL;;AACA,cAAI,KAAKxQ,KAAL,CAAWiP,QAAX,CAAoBwB,WAApB,CAAgC,IAAhC,CAAJ,EAA2C;AACzC,iBAAK5L,OAAL,GAAe,KAAK7E,KAAL,CAAWiP,QAAX,CAAoBC,aAApB,CAAkCC,GAAlC,CAAsC,IAAtC,CAAf;AACD;;AACD,cAAI,KAAKnP,KAAL,CAAWiP,QAAX,CAAoBwB,WAApB,CAAgC,KAAhC,CAAJ,EAA4C;AAC1C,iBAAKjP,QAAL,GAAgB,KAAKxB,KAAL,CAAWiP,QAAX,CAAoBC,aAApB,CAAkCC,GAAlC,CAAsC,KAAtC,CAAhB;AACD;;AACD,cAAI,KAAKxO,KAAL,CAAWO,QAAX,IAAuB,QAA3B,EAAqC;AACnC,iBAAKJ,aAAL;AACA,iBAAK0O,QAAL,GAAgB,IAAhB;AACD,WAHD,MAGO;AACL,iBAAK3O,cAAL;AACA,iBAAKC,aAAL;AACA,iBAAK0O,QAAL,GAAgB,KAAhB,CAHK,CAIL;AACD;;AAED,eAAKV,mBAAL,CAAyBM,OAAzB;AACA,eAAKN,mBAAL,CAAyB4B,gBAAzB,CAA0CvP,SAA1C,CAAoD,UAACwP,QAAD,EAAa;AAC/D,gBAAI,OAAI,CAACC,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BlH,KAA7B,IAAsCgH,QAAQ,CAACG,IAAnD,EAAyD;AACvD,qBAAI,CAACC,gBAAL;AACD;;AAED,gBAAMC,OAAO,GAAG;AACdF,kBAAI,EAAEH,QAAQ,CAACG,IADD;AAEdG,qBAAO,EAAEN,QAAQ,CAACM,OAFJ;AAGdC,mBAAK,EAAE;AAHO,aAAhB;;AAKA,mBAAI,CAACC,YAAL,CAAkBlL,IAAlB,CAAuB+K,OAAvB;;AACA,mBAAI,CAACI,mBAAL,CAAyBT,QAAQ,CAACG,IAAlC,EAAwCE,OAAxC;AAED,WAbD;AAcA,eAAKK,cAAL;AACA,eAAKC,cAAL;AACA,eAAKC,iBAAL,GAAyBvB,GAAzB,CArCuD,CAsCvD;;AACA,eAAKwB,IAAL,GAAYC,sDAAZ;AACD,UAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;;;;iBAEA,wBAAeC,OAAf,EAA8B;AAC5B,iBAAKC,GAAL,CAASC,cAAT,CAAwBF,OAAxB;;AACA,gBAAIA,OAAO,IAAI,QAAf,EAAyB;AACvBG,0BAAY,CAACC,OAAb,CAAqB,SAArB,EAAgC,OAAhC;;AACA,kBAAI,KAAKnR,KAAL,CAAWO,QAAX,IAAuB,QAA3B,EAAqC;AACnC,qBAAKoB,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB;AACD,eAFD,MAGK;AACH,qBAAKiK,UAAL,GAAkB,IAAlB;AACA,qBAAKC,gBAAL,GAAwB,IAAxB;AACA,qBAAK1P,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB;AACD;;AACD;AACD;;AAED,gBAAI4J,OAAO,IAAI,aAAf,EAA8B;AAC5B,mBAAKO,YAAL,GAAoB,CAAC,KAAKA,YAA1B;AACD;;AAED,gBAAIP,OAAO,IAAI,aAAf,EAA8B;AAC5B,mBAAKQ,YAAL,GAAoB,CAAC,KAAKA,YAA1B;AACD;AACF,YACD;;;;iBAGA,0BAAc;AAAA;;AACZ,iBAAKC,QAAL,GAAgB,KAAKhS,qBAAL,CAA2BiS,UAA3C;AACA,iBAAKC,MAAL,GAAcR,YAAY,CAACS,OAAb,CAAqB,UAArB,CAAd;AACAT,wBAAY,CAACC,OAAb,CAAqB,SAArB,EAAgC,MAAhC;AACA,iBAAKS,OAAL,GAAeV,YAAY,CAACS,OAAb,CAAqB,SAArB,CAAf;;AACA,gBAAI,KAAK3R,KAAL,CAAWO,QAAX,KAAwB,SAAxB,IAAqC,KAAKqR,OAAL,KAAiB,MAAtD,IAAgE,KAAKR,UAAL,KAAoB,KAApF,IAA6F,KAAKM,MAAL,KAAgB,SAAjH,EAA4H;AAE1H,mBAAKG,sBAAL,CAA4BC,GAA5B,CAAgC,KAAKC,QAAL,CAAcC,IAAd,CAC9B,4DAAU,WAAC;AAAA,uBAAI,OAAI,CAACJ,OAAL,KAAiB,MAAjB,IAA2B,OAAI,CAACP,gBAAL,KAA0B,KAArD,IAA8D,OAAI,CAACK,MAAL,KAAgB,SAAlF;AAAA,eAAX,CAD8B,EAE9BlR,SAF8B,CAG9B,YAAK;AACH,uBAAI,CAAC0H,UAAL,CAAgB+J,sBAAhB,CAAuC,OAAI,CAAC/N,OAA5C,EAAqD1D,SAArD,CAA+D,aAAG;AAAA,yBAChE,OAAI,CAAC0R,aAAL,CAAmBxR,GAAnB,CADgE;AAAA,iBAAlE,EAEE,aAAG;AAAA,yBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,iBAFL;AAGD,eAP6B,CAAhC;AAUD,aAZD,MAaK;AAEH,mBAAKmR,sBAAL,CAA4BC,GAA5B,CAAgC,KAAKK,QAAL,CAAcH,IAAd,CAC9B,4DAAU,WAAC;AAAA,uBAAI,OAAI,CAACJ,OAAL,KAAiB,MAArB;AAAA,eAAX,CAD8B,EAE9BpR,SAF8B,CAG9B,YAAK;AACH,uBAAI,CAAC4R,eAAL;AAED,eAN6B,CAAhC;AAOD;AACF;;;iBAED,oBAAQ;AACN,iBAAKC,eAAL,CAAqB,KAAKnO,OAA1B;AACD;;;iBACD,uBAAW;AAAA;;AACT,iBAAK2N,sBAAL,CAA4BS,WAA5B;;AACA,gBAAI,KAAK9H,OAAL,IAAgB,IAApB,EAA0B;AACxB,mBAAKtC,UAAL,CAAgBqK,mBAAhB,CAAoC,KAAK/H,OAAzC;AACA,mBAAKtC,UAAL,CAAgBqK,mBAAhB,CAAoC,KAAK/H,OAAzC,EAAkDhK,SAAlD,CACE,UAACE,GAAD;AAAA,uBAAS,OAAI,CAAC8R,0BAAL,CAAgC9R,GAAhC,CAAT;AAAA,eADF,EAEE,UAACA,GAAD;AAAA,uBAAS,OAAI,CAAC+R,WAAL,CAAiB/R,GAAjB,CAAT;AAAA,eAFF,EAFwB,CAOxB;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACD;AACF;;;iBACD,oCAA2BA,GAA3B,EAA8B,CAE7B;;;iBACO,oBAAQ;AACd,iBAAKuP,QAAL,GAAgB,KAAKtQ,WAAL,CAAiB+S,KAAjB,CAAuB;AACrCC,gBAAE,EAAE,CAAC,IAAD,EAAOC,gEAAP,CADiC;AAErCC,yBAAW,EAAE,CAAC,EAAD,EAAKD,gEAAL;AAFwB,aAAvB,CAAhB;AAID;;;iBACD,kBAASE,eAAT,EAAkCC,WAAlC,EAAqD;AACnD,gBAAMC,OAAO,GAAG,KAAK/C,QAAL,CAAcC,QAAd,CAAuB6C,WAAvB,CAAhB;AACA,mBAAOC,OAAO,CAACC,QAAR,CAAiBH,eAAjB,KAAqCE,OAAO,CAACE,KAApD;AACD;;;iBAEM,yBAAa;AAAA;;AAClB,iBAAKlU,UAAL,CAAgB4B,SAAhB,CAA0B,KAAKZ,KAAL,CAAWqJ,gBAAX,GAA8B,KAAKrJ,KAAL,CAAWqJ,gBAAzC,GAA4D,KAAKxI,QAA3F,EAAqGL,SAArG,CAA+G,aAAG;AAAA,qBAAI,OAAI,CAAC2S,kBAAL,CAAwBzS,GAAxB,CAAJ;AAAA,aAAlH,EACE,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aADL;AAED;;;iBACD,4BAAmBA,GAAnB,EAAsB;AAAA;;AACpB,iBAAKI,OAAL,GAAeJ,GAAf;AACA,iBAAK0S,OAAL,aAAkB1S,GAAG,CAACqO,SAAtB,cAAmCrO,GAAG,CAAC2S,UAAJ,GAAiB3S,GAAG,CAAC2S,UAArB,GAAkC,EAArE,cAA2E3S,GAAG,CAAC4S,QAA/E;AACA,iBAAKC,KAAL,GAAa7S,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEG,QAAlB;AACA,iBAAK2S,cAAL,GAAsB9S,GAAG,CAAC+S,cAA1B;AACA,iBAAKC,WAAL,GAAmBhT,GAAG,CAACgT,WAAvB;AACA,iBAAKC,OAAL,CAAarO,IAAb,CAAkB;AAChBV,wBAAU,EAAE,KAAKwO,OADD;AAEhBQ,4BAAc,EAAE;AAFA,aAAlB;;AAIA,gBAAI,KAAK5T,KAAL,CAAWO,QAAX,IAAuB,QAA3B,EAAqC;AACnC,mBAAKsT,GAAL,GAAW,KAAKrU,qBAAL,CAA2BsU,OAAtC;;AACA,kBAAI,KAAKD,GAAL,KAAa,IAAjB,EAAuB;AACrB,qBAAK3L,UAAL,CAAgB6L,mBAAhB,CAAoC,KAAKF,GAAzC,EAA8CrT,SAA9C,CACE,UAACE,GAAD;AAAA,yBAAS,OAAI,CAACsT,+BAAL,CAAqCtT,GAArC,CAAT;AAAA,iBADF,EAEE,UAACA,GAAD;AAAA,yBAAS,OAAI,CAAC+R,WAAL,CAAiB/R,GAAjB,CAAT;AAAA,iBAFF;AAID;AACF;;AACD,gBAAMuT,GAAG,GAAG,KAAKlV,MAAL,CAAY6J,MAAZ,CAAmBsL,QAA/B;AACA,gBAAMC,SAAS,GAAG,IAAIC,GAAJ,WAAWH,GAAX,EAAlB,CApBoB,CAqBpB;AACA;;AACA,iBAAKlV,MAAL,CAAY6J,MAAZ,CAAmBsL,QAAnB,GAA8BC,SAAS,CAAC9H,QAAV,EAA9B,CAvBoB,CAyBpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAED;;;iBAGM,0BAAc;AAAA;;AACnB,iBAAKnE,UAAL,CAAgB7H,UAAhB,CAA2B,KAAKL,KAAL,CAAWM,iBAAtC,EAAwD,KAAKN,KAAL,CAAWO,QAAnE,EAA6EC,SAA7E,CACE,UAACE,GAAD,EAAQ;AACN,qBAAI,CAACD,OAAL,GAAeC,GAAf;AACD,aAHH,EAIE,UAACC,KAAD,EAAU;AACR,qBAAI,CAACvB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aANH;AAQD;;;iBAED,uBAAcD,GAAd,EAAiB;AACf;AACA,gBAAI2T,MAAM,GAAG,IAAI7E,4DAAJ,EAAb;AACA6E,kBAAM,GAAG3T,GAAT;AACA,iBAAKgR,MAAL,GAAcR,YAAY,CAACS,OAAb,CAAqB,UAArB,CAAd;;AACA,gBAAI0C,MAAM,CAACvK,MAAP,KAAkB,WAAtB,EAAmC;AACjC,mBAAKsH,UAAL,GAAkB,IAAlB;AACA,mBAAKlJ,UAAL,CAAgBhE,OAAhB,GAA0BmQ,MAAM,CAACnQ,OAAjC;AACA,mBAAKmN,gBAAL,GAAwB,IAAxB;AACA,mBAAK1P,OAAL,CAAawF,QAAb,CAAsB,CAAC,cAAD,CAAtB;AACD;;AACD,gBAAIkN,MAAM,CAACvK,MAAP,IAAiB,WAAjB,IAAgCuK,MAAM,CAACC,QAAP,KAAoB,IAAxD,EAA8D;AAC5D,mBAAKlD,UAAL,GAAkB,IAAlB;AACA,mBAAKC,gBAAL,GAAwB,IAAxB;AACA,mBAAK1P,OAAL,CAAawF,QAAb,CAAsB,CAAC,cAAD,CAAtB,EAAwC;AAAE2I,2BAAW,EAAE;AAAEyE,6BAAW,EAAE,YAAf;AAA6BC,qBAAG,EAAE,KAAK3T,QAAvC;AAAiDgT,qBAAG,EAAE,KAAK3P;AAA3D;AAAf,eAAxC;AACD;;AACD,gBAAImQ,MAAM,CAACvK,MAAP,KAAkB,WAAlB,IAAiCuK,MAAM,CAACC,QAAP,KAAoB,KAArD,IAA8D,KAAK5C,MAAL,KAAgB,SAAlF,EAA6F;AAC3F,mBAAKN,UAAL,GAAkB,IAAlB;AACA,mBAAKC,gBAAL,GAAwB,IAAxB;AACA,mBAAK1P,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB;AACD;AACF;;;iBAED,2BAAe;AAAA;;AACb,gBAAItG,QAAQ,GAAG,KAAKb,KAAL,CAAWqJ,gBAA1B;AAEA,iBAAKnB,UAAL,CAAgBuM,uBAAhB,CAAwC5T,QAAxC,EAAkDL,SAAlD,CACE,UAACE,GAAD;AAAA,qBAAS,OAAI,CAACgU,sBAAL,CAA4BhU,GAA5B,CAAT;AAAA,aADF,EAEE,UAACA,GAAD;AAAA,qBAAS,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAT;AAAA,aAFF;AAID;;;iBACD,gCAAuBA,GAAvB,EAA0B;AACxB,gBAAIA,GAAG,IAAI,IAAX,EAAiB;AACf,kBAAIA,GAAG,CAAC0B,MAAJ,GAAa,CAAjB,EAAoB;AAClB,qBAAKuS,QAAL,GAAgBjU,GAAhB;;AACA,oBAAI,KAAKkU,OAAL,CAAaxS,MAAb,IAAuB,CAA3B,EAA8B;AAC5B,uBAAKwS,OAAL,GAAelU,GAAf;AACA,uBAAKkU,OAAL,GAAe,KAAKA,OAAL,CAAaxK,MAAb,CACb,UAACyK,CAAD;AAAA,2BAAOA,CAAC,CAACC,SAAF,IAAe,cAAtB;AAAA,mBADa,CAAf;AAGD;;AACD,oBAAI,KAAKF,OAAL,CAAaxS,MAAb,KAAwB,KAAKuS,QAAL,CAAcvS,MAA1C,EAAkD;AAChD,uBAAK2S,cAAL,GAAsB,IAAtB;;AACA,sBAAI,KAAKJ,QAAL,CAAcvS,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,yBAAK4S,SAAL,GAAiB,KAAKL,QAAL,CAAc,CAAd,EAAiBf,cAAlC;AACA,yBAAKqB,WAAL,GAAmB,KAAKN,QAAL,CAAc,CAAd,EAAiBvQ,WAApC;AACD;;AACD,uBAAKwQ,OAAL,GAAelU,GAAf;AACA,uBAAKkU,OAAL,GAAe,KAAKA,OAAL,CAAaxK,MAAb,CACb,UAACyK,CAAD;AAAA,2BAAOA,CAAC,CAACC,SAAF,IAAe,cAAtB;AAAA,mBADa,CAAf;AAGD;AACF,eAnBD,MAmBO,IAAIpU,GAAG,CAAC0B,MAAJ,KAAe,CAAnB,EAAsB;AAC3B8O,4BAAY,CAACgE,UAAb,CAAwB,SAAxB;AACAhE,4BAAY,CAACC,OAAb,CAAqB,SAArB,EAAgC,OAAhC;AACA,qBAAKS,OAAL,GAAeV,YAAY,CAACS,OAAb,CAAqB,SAArB,CAAf;AAEA,qBAAKgD,QAAL,GAAgB,EAAhB;AACA,qBAAKhT,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB,EAAyC;AAAE2I,6BAAW,EAAE;AAAEyE,+BAAW,EAAE;AAAf;AAAf,iBAAzC;AACA,qBAAK3U,aAAL,CAAmBuV,QAAnB,CAA4B,MAA5B,EAAoC,uCAApC;AACD,eARM,MAUF;AACH,qBAAKR,QAAL,GAAgB,EAAhB;AACD;AACF;AAEF;;;iBACD,yCAAgCjU,GAAhC,EAAmC;AAAA;;AACjC,iBAAK0U,QAAL,GAAgB1U,GAAhB,CADiC,CAEjC;AACA;;AACA,gBAAI,KAAK0U,QAAL,CAActL,MAAd,KAAyB,SAA7B,EAAwC;AACtC,kBAAMjJ,QAAQ,GAAG,KAAKb,KAAL,CAAWqJ,gBAA5B;AAEA,mBAAKnB,UAAL,CAAgBmN,iBAAhB,CAAkCxU,QAAlC,EAA4CL,SAA5C,CACE,UAACE,GAAD;AAAA,uBAAS,OAAI,CAAC4U,6BAAL,CAAmC5U,GAAnC,CAAT;AAAA,eADF,EAEE,UAACA,GAAD;AAAA,uBAAS,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAT;AAAA,eAFF;AAID;AACF;;;iBACD,uCAA8BA,GAA9B,EAAiC;AAAA;;AAC/B,gBAAIA,GAAG,CAAC0B,MAAJ,GAAa,CAAjB,EAAoB;AAClB,mBAAKuS,QAAL,GAAgBjU,GAAhB;;AACA,kBAAI,KAAKkU,OAAL,CAAaxS,MAAb,KAAwB,CAA5B,EAA+B;AAC7B,qBAAKwS,OAAL,GAAelU,GAAf;AACA,qBAAKkU,OAAL,GAAe,KAAKA,OAAL,CAAaxK,MAAb,CACb,UAACyK,CAAD;AAAA,yBAAOA,CAAC,CAACC,SAAF,IAAe,cAAtB;AAAA,iBADa,CAAf;AAGD;;AACD,kBAAI,KAAKF,OAAL,CAAaxS,MAAb,KAAwB,KAAKuS,QAAL,CAAcvS,MAA1C,EAAkD;AAChD,qBAAK2S,cAAL,GAAsB,IAAtB;;AACA,oBAAI,KAAKJ,QAAL,CAAcvS,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,uBAAK4S,SAAL,GAAiB,KAAKL,QAAL,CAAc,CAAd,EAAiBf,cAAlC;AACA,uBAAKqB,WAAL,GAAmB,KAAKN,QAAL,CAAc,CAAd,EAAiBvQ,WAApC;AACD;;AACD,qBAAKwQ,OAAL,GAAelU,GAAf;AACA,qBAAKkU,OAAL,GAAe,KAAKA,OAAL,CAAaxK,MAAb,CACb,UAACyK,CAAD;AAAA,yBAAOA,CAAC,CAACC,SAAF,IAAe,cAAtB;AAAA,iBADa,CAAf;AAGD;AACF,aAnBD,MAmBO,IAAIpU,GAAG,CAAC0B,MAAJ,KAAe,CAAnB,EAAsB;AAC3B8O,0BAAY,CAACgE,UAAb,CAAwB,SAAxB;AACAhE,0BAAY,CAACC,OAAb,CAAqB,SAArB,EAAgC,OAAhC;AACA,mBAAKS,OAAL,GAAeV,YAAY,CAACS,OAAb,CAAqB,SAArB,CAAf;AAEA,mBAAKgD,QAAL,GAAgB,EAAhB;AACA,mBAAKhT,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB;AAGA,mBAAKoO,SAAL,GAAiB,KAAjB;AAGA,mBAAK5T,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB,EAAyC;AAAE2I,2BAAW,EAAE;AAAEyE,6BAAW,EAAE;AAAf;AAAf,eAAzC;AACA,mBAAK3U,aAAL,CAAmBuV,QAAnB,CAA4B,MAA5B,EAAoC,uCAApC;AACD,aAdM,MAgBF;AACH,mBAAKR,QAAL,GAAgB,EAAhB;AACD;;AACD,iBAAKa,WAAL,GAAmB,IAAI1T,KAAJ,EAAnB;AACA,iBAAK0T,WAAL,GAAmBvL,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKwK,QAApB,CAAX,CAAnB,CAxC+B,CAwC+B;;AAC9D,iBAAKa,WAAL,GAAmB,KAAKA,WAAL,CAAiBpL,MAAjB,CACjB,UAACyK,CAAD;AAAA,qBAAOA,CAAC,CAAC3Q,OAAF,IAAa,OAAI,CAAC2P,GAAzB;AAAA,aADiB,CAAnB;AAGA,iBAAK4B,aAAL,GAAqB,IAArB;AACD;;;iBACD,qBAAYvR,OAAZ,EAA6B0P,cAA7B,EAAmD;AACjD;AACA;AACA;AACA;AACA;AACA,gBAAG1P,OAAO,IAAI0P,cAAd,EAA6B;AAC3B,mBAAK8B,gBAAL;AACA,mBAAKlL,OAAL,GAAetG,OAAf;AACA,mBAAK2P,GAAL,GAAW,KAAKrU,qBAAL,CAA2BmW,YAA3B,CAAwCzR,OAAxC,CAAX;AACA,mBAAK6Q,cAAL,GAAsB,KAAtB,CAJ2B,CAK3B;;AACA,mBAAKa,oBAAL,GAA4BhC,cAA5B;AACA,mBAAKvB,eAAL,CAAqBnO,OAArB;AACA,mBAAK2R,cAAL,GAAsB,IAAtB;AACD,aATD,MAUI;AACF,mBAAKA,cAAL,GAAsB,KAAtB;AACA,mBAAKjW,aAAL,CAAmB6C,SAAnB,CAA6B,EAA7B,EAAiC,yBAAjC;AACD;AACF;;;iBAED,8BAAqB/B,GAArB,EAAwB;AAAA;;AACtB,iBAAKwH,UAAL,CAAgB6L,mBAAhB,CAAoC,KAAKvJ,OAAzC,EAAkDhK,SAAlD,CACE,UAACE,GAAD;AAAA,qBAAS,OAAI,CAACoV,kBAAL,CAAwBpV,GAAxB,CAAT;AAAA,aADF,EAEE,UAACA,GAAD;AAAA,qBAAS,OAAI,CAAC+R,WAAL,CAAiB/R,GAAjB,CAAT;AAAA,aAFF;AAID;;;iBAID,kCAAyBA,GAAzB,EAA4B,CAE3B;;;iBAED,4BAAmBA,GAAnB,EAAsB;AAAA;;AACpB,iBAAK0U,QAAL,GAAgB1U,GAAhB;AACA,iBAAK0U,QAAL,CAActL,MAAd,GAAuB,SAAvB;AACA,iBAAKsL,QAAL,CAAcd,QAAd,GAAyB,IAAzB;AACA,iBAAKc,QAAL,CAAcW,cAAd,GAA+B,IAAIC,IAAJ,EAA/B,CAJoB,CAMpB;AACA;AACA;;AACA,iBAAKR,WAAL,GAAmB,IAAI1T,KAAJ,EAAnB;AACA,iBAAK0T,WAAL,GAAmBvL,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKwK,QAApB,CAAX,CAAnB,CAVoB,CAU0C;;AAC9D,iBAAKa,WAAL,GAAmB,KAAKA,WAAL,CAAiBpL,MAAjB,CACjB,UAACyK,CAAD;AAAA,qBAAOA,CAAC,CAAC3Q,OAAF,IAAa,OAAI,CAACsG,OAAzB;AAAA,aADiB,CAAnB;AAGA,iBAAKiL,aAAL,GAAqB,IAArB;AACA,iBAAKQ,YAAL;AAED;;;iBAID,wBAAY;AAAA;;AACV,iBAAK/N,UAAL,CAAgBgO,YAAhB,CAA6B,KAAKd,QAAlC,EAA4C,KAAK5K,OAAjD,EACGhK,SADH,CACa,aAAG;AAAA,qBAAI,OAAI,CAAC2V,kBAAL,CAAwBzV,GAAxB,CAAJ;AAAA,aADhB,EAEI,aAAG;AAAA,qBAAI,OAAI,CAAC+R,WAAL,CAAiB/R,GAAjB,CAAJ;AAAA,aAFP;AAGD;;;iBACD,4BAAmBA,GAAnB,EAAsB;AAAA;;AAEpBoN,mBAAO,CAACC,GAAR;AACA,iBAAK3O,YAAL,CAAkBgX,OAAlB,CAA0B,gBAA1B,EAA4C,IAA5C;AACA,iBAAKlO,UAAL,CAAgBmO,cAAhB,GAAiC,KAAjC;AACA,iBAAKjE,eAAL;AACA,iBAAKkE,MAAL,GAAc,KAAd;AAEA,iBAAKzE,sBAAL,CAA4BC,GAA5B,CAAgC,KAAKyE,WAAL,CAAiBvE,IAAjB,CAC9B,4DAAU,WAAC;AAAA,qBAAI,OAAI,CAACsE,MAAL,KAAgB,KAApB;AAAA,aAAX,CAD8B,EAE9B9V,SAF8B,CAG9B,YAAK;AACH,qBAAI,CAAC0H,UAAL,CAAgBsO,uBAAhB,CAAwC,OAAI,CAAChM,OAA7C,EAAsDhK,SAAtD,CAAgE,aAAG;AAAA,uBACjE,OAAI,CAACiW,mBAAL,CAAyB/V,GAAzB,CADiE;AAAA,eAAnE,EAEE,aAAG;AAAA,uBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,eAFL;AAID,aAR6B,CAAhC;AAUD;;;iBACD,6BAAoBA,GAApB,EAAuB;AACrB,gBAAI2T,MAAM,GAAG,IAAI7E,4DAAJ,EAAb;AACA6E,kBAAM,GAAG3T,GAAT;;AACA,gBAAI2T,MAAM,IAAI,IAAd,EAAoB;AAClB;AACA,kBAAIA,MAAM,CAACvK,MAAP,KAAkB,WAAlB,IAAiCuK,MAAM,CAACC,QAAP,KAAoB,KAAzD,EAAgE;AAC9D,qBAAKgC,MAAL,GAAc,IAAd;AACA,qBAAKlE,eAAL;AACA,qBAAK2C,cAAL,GAAsB,KAAtB;AACA,qBAAK1D,gBAAL,GAAwB,IAAxB;AAED;AAEF,aAVD,MAWK;AACH,mBAAKiF,MAAL,GAAc,IAAd;AACD;AAGF;;;iBACD,yBAAgBpS,OAAhB,EAAuB;AAAA;;AACrB;AACA,iBAAKwS,aAAL,GAAqB,IAArB;AACA,iBAAKxO,UAAL,CAAgByO,mBAAhB,CAAoCzS,OAApC,EAA6C1D,SAA7C,CACE,UAACE,GAAD,EAAQ;AACN,kBAAIA,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAAhC,EAAyC;AACvC,uBAAI,CAAC8P,SAAL,GAAiBlW,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAAtB;AACA,uBAAI,CAAC+P,eAAL,GAAuB,OAAI,CAACD,SAA5B;;AACA,oBAAI,OAAI,CAACC,eAAL,CAAqBzU,MAArB,GAA8B,CAAlC,EAAqC;AACnC,yBAAI,CAAC0U,YAAL,GAAoB,IAApB;AACD;AACF,eAND,MAMO;AACL,uBAAI,CAAC1X,YAAL,CAAkBuB,KAAlB,CAAwBD,GAAG,CAACqW,eAA5B;AACD;AACF,aAXH,EAYE,UAACpW,KAAD,EAAU;AACR,qBAAI,CAACvB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB,EADQ,CAER;;AACD,aAfH;AAgBD;;;iBAED,oBAAWuD,OAAX,EAAoBD,SAApB,EAA6B;AAC3B,iBAAK+S,UAAL,CAAgB9S,OAAhB,EAAyBD,SAAzB,EAD2B,CACU;AACrC;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAED;;;iBACD,6BAAoBvD,GAApB,EAAuB;AACrB,iBAAKqU,cAAL,GAAsB,IAAtB;AACD;;;iBAED,yBAAgB7Q,OAAhB,EAAyBD,SAAzB,EAAkC;AAAA;;AAChC,iBAAKwR,aAAL,GAAqB,KAArB;AACA,iBAAKV,cAAL,GAAsB,IAAtB;AACA,iBAAK7M,UAAL,CAAgB6L,mBAAhB,CAAoC7P,OAApC,EAA6C1D,SAA7C,CACE,UAACE,GAAD;AAAA,qBAAS,OAAI,CAACuW,oBAAL,CAA0BvW,GAA1B,EAA+BwD,OAA/B,EAAwCD,SAAxC,CAAT;AAAA,aADF,EAEE,UAACvD,GAAD;AAAA,qBAAS,OAAI,CAAC+R,WAAL,CAAiB/R,GAAjB,CAAT;AAAA,aAFF;AAID;;;iBAED,8BAAqBA,GAArB,EAA0BwD,OAA1B,EAAmCD,SAAnC,EAA4C;AAAA;;AAC1C;AACA,iBAAKiT,SAAL,GAAiBC,MAAM,CAACC,MAAP,CAAc,KAAKF,SAAnB,EAA8BxW,GAA9B,CAAjB;AACA,iBAAKwW,SAAL,CAAepQ,OAAf,CAAuBwN,QAAvB,GAAkC,KAAlC;AACA,iBAAK4C,SAAL,CAAepQ,OAAf,CAAuBgD,MAAvB,GAAgC,WAAhC;AACA,iBAAKoN,SAAL,CAAepQ,OAAf,CAAuB2C,eAAvB,GAAyC,KAAK2L,QAAL,CAAc3L,eAAvD;AACA,iBAAKyN,SAAL,CAAepQ,OAAf,CAAuB4C,UAAvB,GAAoC,KAAK0L,QAAL,CAAc1L,UAAlD;AACA,iBAAKwN,SAAL,CAAepQ,OAAf,CAAuB6C,QAAvB,GAAkC,KAAKyL,QAAL,CAAczL,QAAhD;AACAuH,wBAAY,CAACgE,UAAb,CAAwB,KAAxB;AACA,iBAAKhN,UAAL,CAAgBmP,qBAAhB,CAAsC,KAAKH,SAAL,CAAepQ,OAArD,EAA8D7C,SAA9D,EAAyEzD,SAAzE,CACE,UAACE,GAAD;AAAA,qBAAQ,OAAI,CAACd,aAAL,CAAmBuV,QAAnB,CAA4B,0BAA5B,EAAwD,SAAxD,CAAR;AAAA,aADF,EAEE,UAACzU,GAAD;AAAA,qBAAS,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAT;AAAA,aAFF;AAIA,gBAAMG,QAAQ,GAAG,KAAKb,KAAL,CAAWqJ,gBAA5B;AACA,iBAAKnB,UAAL,CAAgBmN,iBAAhB,CAAkCxU,QAAlC,EAA4CL,SAA5C,CACE,UAACE,GAAD;AAAA,qBAAS,OAAI,CAACgU,sBAAL,CAA4BhU,GAA5B,CAAT;AAAA,aADF,EAEE,UAACA,GAAD;AAAA,qBAAS,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAT;AAAA,aAFF;AAKA,gBAAM2P,OAAO,GAAG;AACdiH,sBAAQ,EAAE,KAAKzI,QAAL,GACN,KAAK/N,OAAL,CAAa8S,cADP,GAEN,KAAKnT,OAAL,CAAamT,cAHH;AAId2D,wBAAU,EAAE,KAAK3B,oBAJH;AAKdzF,kBAAI,EAAE,KAAKtB,QAAL,aACC,KAAK/N,OAAL,CAAaiO,SADd,cAC2B,KAAKjO,OAAL,CAAauS,UAAb,GAA0B,KAAKvS,OAAL,CAAauS,UAAvC,GAAoD,EAD/E,cAEA,KAAKvS,OAAL,CAAawS,QAFb,cAGC,KAAK7S,OAAL,CAAasO,SAHd,cAG2B,KAAKtO,OAAL,CAAa4S,UAAb,GAA0B,KAAK5S,OAAL,CAAa4S,UAAvC,GAAoD,EAH/E,cAIA,KAAK5S,OAAL,CAAa6S,QAJb,CALQ;AAUdkE,0BAAY,EAAE,KAAK3I,QAAL,GAAgB,KAAKoG,WAArB,GAAmC,KAAK7B,OAVxC;AAWdlP,qBAAO,EAAEA;AAXK,aAAhB,CAnB0C,CAiC1C;;AACA,iBAAKuT,gBAAL;AACD;;;iBACD,4BAAgB;AACd;AACA,iBAAKjC,WAAL,GAAmB,IAAI1T,KAAJ,EAAnB;AACA,iBAAKsQ,eAAL;AACD;;;iBACD,qBAAY1R,GAAZ,EAAe,CAAK;;;iBAEpB,eAAMA,GAAN,EAAS;AACPgX,iBAAK,CAAChX,GAAG,CAAC2T,MAAL,CAAL;AACD;;;iBAED,iBAAQsD,QAAR,EAAkBC,OAAlB,EAA2BC,KAA3B,EAAgC;AAC9B,iBAAKC,QAAL,GAAgB,IAAhB;AACA,iBAAKD,KAAL,GAAaA,KAAK,GAAG,GAAR,GAAcD,OAA3B;AAAmC,aAFL,CAG9B;;AACA,iBAAKG,IAAL,GAAYJ,QAAZ;AACA,iBAAKK,OAAL,GAAe,KAAKzI,SAAL,CAAe0I,8BAAf,CAA8C,KAAKF,IAAnD,CAAf;AACA,iBAAK7M,aAAL,GAAqB0M,OAArB;;AACA,gBACE,KAAK1M,aAAL,IAAsB,MAAtB,IACA,KAAKA,aAAL,IAAsB,MADtB,IAEA,KAAKA,aAAL,IAAsB,KAFtB,IAGA,KAAKA,aAAL,IAAsB,KAHtB,IAIA,KAAKA,aAAL,IAAsB,KAJtB,IAKA,KAAKA,aAAL,IAAsB,KANxB,EAOE;AACA,mBAAKgN,QAAL,GAAgB,OAAhB;AACD;;AACD,gBAAI,KAAKhN,aAAL,IAAsB,KAAtB,IAA+B,KAAKA,aAAL,IAAsB,KAAzD,EAAgE;AAC9D,mBAAKgN,QAAL,GAAgB,KAAhB;AACD;;AACD,gBACE,KAAKhN,aAAL,IAAsB,MAAtB,IACA,KAAKA,aAAL,IAAsB,MADtB,IAEA,KAAKA,aAAL,IAAsB,KAFtB,IAGA,KAAKA,aAAL,IAAsB,KAJxB,EAKE;AACA,mBAAKgN,QAAL,GAAgB,SAAhB;AACD;AACF;;;iBACD,gBAAI;AACF,iBAAKJ,QAAL,GAAgB,KAAhB;AACD;;;iBACD,uBAAW;AACT,gBAAI,KAAK9X,KAAL,CAAWO,QAAX,IAAuB,SAA3B,EAAsC;AACpC,mBAAK0P,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BiI,QAA7B,CAAsC,KAAK/E,OAA3C;AACD;;AACD,gBAAI;AACF,mBAAK,IAAMjR,CAAX,IAAgB,KAAK8N,QAAL,CAAcC,QAA9B,EAAwC;AACtC,qBAAKD,QAAL,CAAcC,QAAd,CAAuB/N,CAAvB,EAA0BiW,WAA1B;AACA,qBAAKnI,QAAL,CAAcC,QAAd,CAAuB/N,CAAvB,EAA0BkW,sBAA1B;AACD;;AAED,kBAAI,KAAKpI,QAAL,CAAcqI,KAAlB,EAAyB;AACvB,oBAAMjI,OAAO,GAAG;AACdiH,0BAAQ,EAAE,KAAKzI,QAAL,GACN,KAAK/N,OAAL,CAAa8S,cADP,GAEN,KAAKnT,OAAL,CAAamT,cAHH;AAId2D,4BAAU,EAAE,KAAK1I,QAAL,GACR,KAAKmG,SADG,GAER,KAAKlU,OAAL,CAAa8S,cANH;AAOdzD,sBAAI,EAAE,KAAKtB,QAAL,aACC,KAAK/N,OAAL,CAAaiO,SADd,cAC2B,KAAKjO,OAAL,CAAauS,UAAb,GAA0B,KAAKvS,OAAL,CAAauS,UAAvC,GAAoD,EAD/E,cAEA,KAAKvS,OAAL,CAAawS,QAFb,cAGC,KAAK7S,OAAL,CAAasO,SAHd,cAG2B,KAAKtO,OAAL,CAAa4S,UAAb,GAA0B,KAAK5S,OAAL,CAAa4S,UAAvC,GAAoD,EAH/E,cAIA,KAAK5S,OAAL,CAAa6S,QAJb,CAPQ;AAYdkE,8BAAY,EAAE,KAAK3I,QAAL,GAAgB,KAAKoG,WAArB,GAAmC,KAAK7B,OAZxC;AAad9C,yBAAO,EAAE,KAAKL,QAAL,CAAcC,QAAd,CAAuB,aAAvB,EAAsClH;AAbjC,iBAAhB;AAeA,oBAAMuP,UAAU,GAAG;AACjBpI,sBAAI,EAAE,IADW;AAEjBG,yBAAO,EAAED,OAAO,CAACC,OAFA;AAGjBC,uBAAK,EAAE,YAHU;AAIjBiI,6BAAW,EAAE,KAAKvD;AAJD,iBAAnB;AAMA,qBAAKzE,YAAL,CAAkBlL,IAAlB,CAAuBiT,UAAvB;AACA,qBAAK9H,mBAAL,CACE,KAAKR,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BlH,KAA7B,CAAmC5E,WADrC,EAEEmU,UAFF,EAvBuB,CA4BvB;AACA;;AAEA,qBAAKpK,mBAAL,CAAyBsK,eAAzB,CAAyCpI,OAAzC,EA/BuB,CAiCvB;;AACA,qBAAKJ,QAAL,CAAcC,QAAd,CAAuB,aAAvB,EAAsCwI,KAAtC;;AACA,oBAAI,KAAK1Y,KAAL,CAAWO,QAAX,IAAuB,QAA3B,EAAqC;AACnC,uBAAK0P,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BlH,KAA7B,CAAmCmP,QAAnC,CAA4C9H,OAAO,CAACF,IAApD;AACD,iBAFD,MAEO;AACL,uBAAKF,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BiI,QAA7B,CAAsC,KAAKlD,WAA3C;AACD;AACF;AACF,aA/CD,CA+CE,OAAOtW,CAAP,EAAU,CAAG;AAChB;;;iBAED,4BAAgB;AACd,gBAAI;AACF,kBAAMoK,EAAE,GAAG,KAAKkH,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BlH,KAA7B,CAAmC5E,WAA9C;AACA,mBAAK4Q,SAAL,GAAiB,KAAK/E,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BlH,KAA7B,CAAmC4K,cAApD;AACA,mBAAKqB,WAAL,GAAmB,KAAKhF,QAAL,CAAcC,QAAd,CAAuB,IAAvB,EAA6BlH,KAA7B,CAAmC5E,WAAtD;;AACA,kBAAI,KAAKuU,YAAL,CAAkBC,cAAlB,CAAiC7P,EAAjC,CAAJ,EAA0C;AACxC,qBAAKyH,YAAL,GAAoB,KAAKmI,YAAL,CAAkB5P,EAAlB,EAAsB8P,KAAtB,EAApB;AACA,qBAAKC,oBAAL,GAA4B,KAAKH,YAAL,CAAkB5P,EAAlB,EAAsB8P,KAAtB,EAA5B;AACD,eAHD,MAGO;AACL,qBAAKrI,YAAL,GAAoB,IAAI1O,KAAJ,EAApB;AACA,qBAAKgX,oBAAL,GAA4B,IAAIhX,KAAJ,EAA5B;AACD;AACF,aAXD,CAWE,OAAOnD,CAAP,EAAU,CAAG;AAChB;;;iBAED,qBAAYgK,KAAZ,EAAiB;AACf,gBAAIA,KAAK,CAACoQ,OAAN,KAAkB,EAAtB,EAA0B;AACxB,mBAAKC,WAAL;AACD;AACF;;;iBACD,6BAAoBC,IAApB,EAA0BC,UAA1B,EAAoC;AAClC,gBAAI;AACF,kBAAI,CAAC,KAAKP,YAAL,CAAkBC,cAAlB,CAAiCK,IAAjC,CAAL,EAA6C;AAC3C,qBAAKN,YAAL,CAAkBM,IAAlB,IAA0B,IAAInX,KAAJ,EAA1B;AACD;;AACD,mBAAK6W,YAAL,CAAkBM,IAAlB,EAAwB3T,IAAxB,CAA6B4T,UAA7B;AACD,aALD,CAKE,OAAOva,CAAP,EAAU,CAAG;AAChB;;;iBAED,0BAAc;AAAA;;AACZ,gBAAIkC,QAAQ,GAAG,KAAKb,KAAL,CAAWqJ,gBAA1B;AAEA,iBAAKnB,UAAL,CAAgBmN,iBAAhB,CAAkCxU,QAAlC,EAA4CL,SAA5C,CACE,UAACE,GAAD;AAAA,qBAAS,OAAI,CAACyY,mBAAL,CAAyBzY,GAAzB,CAAT;AAAA,aADF,EAEE,UAACA,GAAD;AAAA,qBAAS,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAT;AAAA,aAFF;AAID;;;iBAED,6BAAoBA,GAApB,EAAuB,CACtB;;;iBAKD,cAAK0Y,OAAL,EAAY;AAAA;;AACV,iBAAKhK,YAAL,CAAkBvC,IAAlB,CAAuBuM,OAAvB,EAAgC;AAAEC,4BAAc,EAAE,mBAAlB;AAAuCC,yBAAW,EAAE;AAApD,aAAhC,EAA4GtL,MAA5G,CAAmHrI,IAAnH,CAAwH,UAACqI,MAAD,EAAW;AACjI,qBAAI,CAACuL,WAAL,0BAAmCvL,MAAnC;AACD,aAFD,EAEG,UAACwL,MAAD,EAAW;AACZ,qBAAI,CAACD,WAAL,uBAAgC,OAAI,CAACE,gBAAL,CAAsBD,MAAtB,CAAhC;AACD,aAJD;AAKD;;;iBAEO,0BAAiBA,MAAjB,EAA4B;AAElC,gBAAIA,MAAM,KAAKE,gFAAf,EAAwC;AACtC,qBAAO,iBAAP;AACD,aAFD,MAEO,IAAIF,MAAM,KAAKE,2FAAf,EAAmD;AACxD,qBAAO,2BAAP;AACD,aAFM,MAEA;AACL,qCAAgBF,MAAhB;AACD;AACF;;;iBACD,0BAAc;AACZ,iBAAKG,iBAAL,GAAyB,KAAzB;AACD;;;iBACD,0BAAc;AACZ,iBAAKA,iBAAL,GAAyB,IAAzB,CADY,CAEZ;;AACA,gBAAMC,IAAI,GAAG,KAAKC,MAAL,CAAYC,aAAzB;;AAEA,gBAAIF,IAAI,CAACG,iBAAT,EAA4B;AAC1BH,kBAAI,CAACG,iBAAL;AACD,aAFD,MAEO,IAAIH,IAAI,CAACI,mBAAT,EAA8B;AACnCJ,kBAAI,CAACI,mBAAL;AACD,aAFM,MAEA,IAAIJ,IAAI,CAACK,oBAAT,EAA+B;AACpCL,kBAAI,CAACK,oBAAL;AACD,aAFM,MAEA,IAAIL,IAAI,CAACM,uBAAT,EAAkC;AACvCN,kBAAI,CAACM,uBAAL;AACD;AACF;;;iBACD,2BAAe;AACb,iBAAKP,iBAAL,GAAyB,KAAzB,CADa,CAEb;;AACA,gBAAInU,QAAQ,CAAC2U,cAAb,EAA6B;AAC3B3U,sBAAQ,CAAC2U,cAAT;AACD;AACF,YAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iBAEA,oBAAQ;AACNC,kBAAM,CAACvN,IAAP,CAAY,KAAKkL,IAAjB;AACD,YAGD;AACA;AACA;AACA;;;;iBACA,4BAAgB;AAAA;;AAChB;AACA,iBAAK7P,UAAL,CAAgBwN,gBAAhB,CAAiC,KAAKnC,KAAtC,EAA6C/S,SAA7C,CACE,UAACE,GAAD;AAAA,qBAAS,OAAI,CAAC2Z,uBAAL,CAA6B3Z,GAA7B,CAAT;AAAA,aADF,EAEE,UAACA,GAAD;AAAA,qBAAS,OAAI,CAAC4Z,yBAAL,CAA+B5Z,GAA/B,CAAT;AAAA,aAFF;AAIC;;;iBAED,iCAAwBA,GAAxB,EAA2B;AAEzB,iBAAK6Z,oBAAL,CAA0B7Z,GAA1B;;AAEA,gBAAGA,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAAR,EAAgB;AACd,mBAAK0T,YAAL,CAAkB9Z,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAAvB;AACD;AACF;;;iBAEH,sBAAa2T,SAAb,EAAsB;AAAA;;AACpB,gBAAIC,iBAAiB,GAAGlV,QAAQ,CAACC,cAAT,CAAwB,mBAAxB,CAAxB;;AACA,mCAAsDgV,SAAS,CAACrP,KAAV,CAAgB,GAAhB,CAAtD;AAAA;AAAA,gBAAOuP,aAAP;AAAA,gBAAsBC,cAAtB;AAAA,gBAAsCC,YAAtC;;AACA,gBAAMC,OAAO,GAAG7Q,IAAI,CAACC,KAAL,CAAW6Q,IAAI,CAACH,cAAD,CAAf,CAAhB;AAEE,iBAAKtL,MAAL,CAAY0L,iBAAZ,CAA8B;AAAA,qBAAWC;AAAA;AAAA;AAAA;AAAA;AAAA;AAErC,6BAAM,KAAKC,MAAL,CAAYC,IAAZ,CAAiB;AAAEC,mCAAW,EAAEV,iBAAf;AAAkCW,gCAAQ,EAAE;AAA5C,uBAAjB,CAAN;;AAFqC;AAAA;AAGrC,6BAAM,KAAKH,MAAL,CAAYI,IAAZ,CAAiB;AACrBb,iCAAS,EAAEA,SADU;AAErBc,8BAAM,EAAET,OAAO,CAACU,MAFK;AAGrBC,qCAAa,EAAEX,OAAO,CAACY,EAHF;AAIrBC,gCAAQ,EAAEb,OAAO,CAACa,QAJG;AAKrBC,gCAAQ,gBAAS,KAAK7c,MAAL,CAAY+P,SAAZ,CAAsBlK,UAA/B,CALa;AAMrBiX,0BAAE,EAAE,EANiB;AAOrBC,2BAAG,EAAE;AAPgB,uBAAjB,CAAN;;AAHqC;AAarChO,6BAAO,CAACC,GAAR,CAAY,qBAAZ;AACA,2BAAKmN,MAAL,CAAYa,EAAZ,CAAe,mBAAf,EAAoC,UAAC1H,MAAD,EAAW;AAC7CvG,+BAAO,CAACC,GAAR,CAAY,yBAAZ,EAAuCsG,MAAvC;AACD,uBAFD;AAdqC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAkBrC,6BAAM,KAAK6G,MAAL,CAAYc,YAAZ,EAAN;;AAlBqC;AAmBrClO,6BAAO,CAACC,GAAR,CAAY,+BAAZ;AACAD,6BAAO,CAACnN,KAAR;;AApBqC;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAX;AAAA,aAA9B;AAwBD;;;iBAED,mCAA0BD,GAA1B,EAA6B;AAC3BoN,mBAAO,CAACC,GAAR,CAAYrN,GAAZ;AACD;;;iBAED,oBAAW8J,OAAX,EAAoBC,SAApB,EAA6B;AAAA;;AAC3B,gBAAMmC,SAAS,GAAG,KAAKxE,MAAL,CAAYyE,IAAZ,CAAiBoP,2FAAjB,EAAuC;AACvD9c,kBAAI,EAAE;AAAE+c,mBAAG,EAAE;AAAP,eADiD;AACzBvO,0BAAY,EAAE,IADW;AAEvD3H,mBAAK,EAAE,OAFgD;AAGvDD,oBAAM,EAAE;AAH+C,aAAvC,CAAlB;AAKC6G,qBAAS,CAACgB,WAAV,GAAwBpN,SAAxB,CAAkC,gBAAM,EAAG;AAC1C,qBAAI,CAAC2b,WAAL,GAAmBnO,MAAnB;;AACA,kBAAI,OAAI,CAACmO,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,uBAAI,CAACC,eAAL,CAAqB5R,OAArB,EAA8BC,SAA9B,EAD6B,CACa;AAC1C;;;AACA,uBAAI,CAACyM,SAAL,CAAepQ,OAAf,CAAuBgD,MAAvB,GAAgC,WAAhC;AACA,uBAAI,CAACoN,SAAL,CAAepQ,OAAf,CAAuBwN,QAAvB,GAAkC,KAAlC;AACA,uBAAI,CAAC4C,SAAL,CAAepQ,OAAf,CAAuBiP,cAAvB,GAAwC,IAAIC,IAAJ,EAAxC;AACA,uBAAI,CAACkB,SAAL,CAAepQ,OAAf,CAAuB5C,OAAvB,GAAiCsG,OAAjC;AACA,uBAAI,CAAC0M,SAAL,CAAepQ,OAAf,CAAuB7C,SAAvB,GAAmCwG,SAAnC;;AACA,uBAAI,CAAC4R,iBAAL;;AACAnL,4BAAY,CAACC,OAAb,CAAqB,SAArB,EAAgC,OAAhC;;AACA,oBAAI,OAAI,CAACnR,KAAL,CAAWO,QAAX,IAAuB,QAA3B,EAAqC;AACnC,yBAAI,CAACoB,OAAL,CAAawF,QAAb,CAAsB,CAAC,eAAD,CAAtB;;AACAiT,wBAAM,CAACkC,QAAP,CAAgBC,MAAhB;AACD,iBAb4B,CAc7B;AACA;AACA;AACA;AACA;;AACD,eAnBD,MAoBK,CACH;AACD;AACF,aAzBA;AA0BF;;;iBAED,6BAAiB;AAAA;;AACf,iBAAKrU,UAAL,CAAgBsU,iBAAhB,CAAkC,KAAKtF,SAAL,CAAepQ,OAAjD,EAA0D,KAAK0D,OAA/D,EACChK,SADD,CACW,aAAG;AAAA,qBAAI,OAAI,CAACic,uBAAL,CAA6B/b,GAA7B,CAAJ;AAAA,aADd,EAEE,aAAG;AAAA,qBAAI,OAAI,CAAC+R,WAAL,CAAiB/R,GAAjB,CAAJ;AAAA,aAFL;AAGD;;;iBACD,iCAAwBA,GAAxB,EAA2B,CAE1B;;;;;;;yBApiCUyO,sBAAmBH;AAAA;;;cAAnBG;AAAmB/N;AAAAsb;AAAA;;;;;;;;;;;;;;;AC9BhC1N;;AACEA;;AACAA;;AAOAA;;AASAA;;AACEA;;AAEEA;;AAGKA;;AAsBLA;;AAMEA;;AAOFA;;AAGAA;;AACEA;;AACEA;;AAgJFA;;AACFA;;AAEAA;;AAuFFA;;AAEAA;;AAgHFA;;AACFA;;AAEAA;;AAGEA;;AACEA;;AACEA;;AAEEA;;AACAA;;AAGQA;AAAA,qBAAShM,UAAT;AAAe,aAAf;;AACNgM;;AACFA;;AACFA;;AACAA;;AAGJA;;AACEA;;AACEA;;AAEGA;;AACDA;;AAGQA;AAAA,qBAAShM,UAAT;AAAe,aAAf;;AACNgM;;AACFA;;AACFA;;AAEAA;;AAEEA;;AACEA;;AAKFA;;AAUAA;;AAIEA;;AAKFA;;AACFA;;AACFA;;AACFA;;AACFA;;AA1DIA;;AADFA;;AAHFA;;;;AA9ZQA;;AAAAA;;AAIGA;;AAAAA;;AAIHA;;AAAAA;;AAUCA;;AAAAA;;AAKQA;;AAAAA;;AA4BLA;;AAAAA;;AAYmBA;;AAAAA;;AA6OrBA;;AAAAA;;AAoHLA;;AAAAA;;AAKGA;;AAAAA;;AAUHA;;AAAAA;;AAKIA;;AAAAA;;AAYOA;;AAAAA;;AAKJA;;AAAAA;;AAUKA;;AAAAA;;AAIDA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtaJ2N;;AAAiCA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAqEA;;AAA4BA;;AAAWA;;;;;;;;AAC7IA;;AAAkCA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAqEA;;AAAiCA;;AAASA;;;;;;;;AARrJA;;AACEA;;AAAIA;;AAA6BA;;AACjCA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAqBA;;AACzBA;;AACEA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAwEA;;AAA4BA;;AAAeA;;AACtHA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA4HA;;AAA+BA;;AAAeA;;AAC7KA;;AACAA;;AACFA;;AAEFA;;;;;;;;;AAVMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AAIEA;;AAAAA;;AACAA;;AAAAA;;;;;;;;;;;;;;;AAnBdA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAMA;;AACxBA;;AACFA;;AACAA;;AACEA;;;;AAYFA;;AACFA;;AAGAA;;AAA4CA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0BA;;AACxEA;;;;;;AAjB2BA;;AAAAA;;;;;;;;AAoCjBA;;AAAiCA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAqEA;;AAA4BA;;AAAWA;;;;;;;;AAC7IA;;AAAkCA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAqEA;;AAAiCA;;AAASA;;;;;;;;AARrJA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAqBA;;AACzBA;;AACEA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAwEA;;AAA4BA;;AAAeA;;AACtHA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA4HA;;AAA+BA;;AAAeA;;AAC7KA;;AACAA;;AACFA;;AAEFA;;;;;;;AAVMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AAIEA;;AAAAA;;AACAA;;AAAAA;;;;;;AAnBdA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAMA;;AACxBA;;AACFA;;AACAA;;AACEA;;;;AAYFA;;AACFA;;AACFA;;;;;;AAd2BA;;AAAAA;;;;;;;;UC9ChBC;AAoBX,sCAAmBjb,OAAnB,EAA2C3C,UAA3C,EAA6EiJ,WAA7E,EAAwH7I,YAAxH,EACSL,MADT,EACgCa,aADhC,EAC2EwI,MAD3E,EACsG5I,qBADtG,EACkJ;AAAA;;AAD/H;AAAwB;AAAkC;AAA2C;AAC/G;AAAuB;AAA2C;AAA2B;AAlB/F,4BAAkB,EAAlB;AACP,4BAAyB,IAAIsC,KAAJ,EAAzB;AAGA,4BAAa;AAAEwG,iBAAK,EAAE,EAAT;AAAanJ,gBAAI,EAAE;AAAnB,WAAb;AACA,mBAAY,CAAZ;AAIA,6BAAc,KAAd;AAMO,0BAAW,KAAX;AACA,8BAAuB,EAAvB;AAGL,eAAKa,KAAL,GAAa,KAAKiI,WAAL,CAAiBhI,gBAA9B;AACA,eAAK4c,QAAL,GAAgB,KAAK7c,KAAL,CAAW8c,kBAA3B;AACA,eAAKC,cAAL;AACA,eAAKhW,SAAL,GAAiB,KAAjB;AACA,eAAKiW,QAAL,GAAgB,KAAhB;AAED;;;;iBACD,qBAAYrU,KAAZ,EAAiB;AACf,iBAAKC,MAAL,CAAYC,WAAZ,GAA0BF,KAA1B;AACD;;;iBACD,2BAAe;AAAA;;AAEb,iBAAKsU,YAAL,CAAkBC,oBAAlB,GAAyC,YAAK;AAC5C,qBAAI,CAACnW,SAAL,GAAiB,KAAjB;;AACA,qBAAI,CAACgW,cAAL;AACD,aAHD;;AAIA,iBAAKE,YAAL,CAAkBE,wBAAlB,GAA6C,YAAK;AAChD,qBAAI,CAACpW,SAAL,GAAiB,KAAjB;AACD,aAFD;;AAIA,iBAAKqW,SAAL,CAAeF,oBAAf,GAAsC,YAAK;AACzC,qBAAI,CAACF,QAAL,GAAgB,KAAhB;;AACA,qBAAI,CAACD,cAAL;AACD,aAHD;;AAIA,iBAAKK,SAAL,CAAeD,wBAAf,GAA0C,YAAK;AAC7C,qBAAI,CAACH,QAAL,GAAgB,KAAhB;AACD,aAFD;AAID;;;iBAEM,0BAAc;AAAA;;AACnB,iBAAKhe,UAAL,CAAgBqe,aAAhB,GAAgC7c,SAAhC,CAA0C,UAACE,GAAD,EAAa;AACrD,qBAAI,CAAC4c,UAAL,GAAkBnG,MAAM,CAACC,MAAP,CAAc,OAAI,CAACkG,UAAnB,EAA+B5c,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAApC,CAAlB;AAGA,qBAAI,CAACgC,UAAL,GAAkB;AAAER,qBAAK,EAAE,OAAI,CAACgV,UAAL,CAAgBlb,MAAzB;AAAiCjD,oBAAI,EAAE;AAAvC,eAAlB;;AAEA,mBAAK,IAAIgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAAC2G,UAAL,CAAgBR,KAApC,EAA2CnG,CAAC,EAA5C,EAAgD;AAC9C,uBAAI,CAAC2G,UAAL,CAAgB3J,IAAhB,CAAqBmG,IAArB,CACE;AACEyD,oBAAE,EAAE5G,CAAC,GAAG,CADV;AAEEob,0BAAQ,EAAE,OAAI,CAACD,UAAL,CAAgBnb,CAAhB,EAAmByC,UAF/B;AAGE4Y,6BAAW,EAAE,OAAI,CAACF,UAAL,CAAgBnb,CAAhB,EAAmBsb;AAHlC,iBADF;AAQD;AAEF,aAjBD,EAoBE,eAAK,EAAG;AACN,qBAAI,CAACre,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aAtBH;AAwBD;;;iBAED,kBAAM;AACJ,iBAAKgB,OAAL,CAAawF,QAAb,CAAsB,CAAC,UAAD,CAAtB,EAAoC;AAAE2I,yBAAW,EAAE;AAAE/G,kBAAE,EAAE,aAAN;AAAqB8T,wBAAQ,EAAE,KAAKA;AAApC;AAAf,aAApC;AACD;;;iBACD,uBAAca,GAAd,EAAyB;AACvB,iBAAKC,WAAL,GAAmB,IAAnB;AACA,iBAAKC,YAAL,GAAoB,KAAKX,YAAL,CAAkBY,UAAlB,CAA6BH,GAA7B,EAAkC,KAAKC,WAAvC,EAAoD,KAAKd,QAAzD,CAApB;AACA,iBAAK9V,SAAL,GAAiB,IAAjB;AACD;;;iBACD,uBAAc2W,GAAd,EAAyB;AACvB,iBAAKI,QAAL,GAAgB,IAAhB;AACA,iBAAKC,eAAL,GAAuB,KAAKX,SAAL,CAAeY,cAAf,CAA8BN,GAA9B,EAAmCA,GAAG,CAAC9Y,UAAvC,EAAmD,KAAKkZ,QAAxD,CAAvB;AACA,iBAAKd,QAAL,GAAgB,IAAhB;AACD;;;iBACD,oBAAWU,GAAX,EAAsB;AAAA;;AACpB,gBAAM1d,KAAK,GAAG,KAAKR,qBAAL,CAA2BS,gBAAzC;;AACA,gBAAID,KAAJ,EAAW;AACT0d,iBAAG,CAACO,OAAJ,GAAcje,KAAK,CAACke,WAApB;AACD;;AACD,iBAAKlf,UAAL,CAAgBmf,gBAAhB,CAAiCT,GAAjC,EAAsCld,SAAtC,CAAgD,aAAG;AAAA,qBAAI,OAAI,CAAC4d,iBAAL,CAAuB1d,GAAvB,CAAJ;AAAA,aAAnD,EACE,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aADL;AAED;;;iBACD,2BAAkBA,GAAlB,EAAqB;AACnB,gBAAIA,GAAG,CAAC,CAAD,CAAH,CAAO4T,QAAP,IAAmB,IAAvB,EAA6B;AAC3B,mBAAK1U,aAAL,CAAmB4C,WAAnB,CAA+B,MAA/B,EAAuC,uBAAvC;AACA,mBAAKua,cAAL;AACD,aAHD,MAIK;AACH,mBAAKnd,aAAL,CAAmBuV,QAAnB,CAA4B,MAA5B,EAAoC,yBAApC;AACA,mBAAK4H,cAAL;AACD;AACF;;;iBACD,eAAMrc,GAAN,EAAS;AACP,iBAAKd,aAAL,CAAmB4C,WAAnB,CAA+B,OAA/B,EAAwC,mBAAxC;AACD;;;iBACD,gBAAI;AACF,iBAAKuE,SAAL,GAAiB,KAAjB;AACD;;;;;;;yBAnHU6V,sBAAmBD;AAAA;;;cAAnBC;AAAmBxb;AAAAsb;AAAA;;;;;;;;;;;;;;;;;;ADtBhCC;;AACAA;;AACEA;;AACEA;;AAAKA;;AAAMA;;AAAQA;;AACrBA;;AAEAA;;AACEA;;AAA0BA;AAAA,qBAAS3Z,YAAT;AAAiB,aAAjB;;AAA4B2Z;;AAAiBA;;AACzEA;;AACFA;;AAEAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AACFA;;AAEAA;;AACEA;;AACEA;;AAAsDA;AAAA;AAAA;;AAAtDA;;AACAA;;AAAkCA;;AAA4BA;;AAAMA;;AACtEA;;AACFA;;AACFA;;AAGAA;;AA6BAA;;AA2BFA;;AACAA;;AACEA;;AACEA;;AAEEA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAGEA;;AAEFA;;AACFA;;AACFA;;AACAA;;;;AArGUA;;AAAAA;;AAmBoDA;;AAAAA;;AAOtDA;;AAAAA;;AA6BAA;;AAAAA;;AA4BoDA;;AAAAA;;AAQAA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEpDlD3N;;AAAkCA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAwEA;;AAAyBA;;AAAKA;;;;;;;;AAV1IA;;AACAA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;AAAkBA;;AACtBA;;AAAIA;;AAAkBA;;AACtBA;;AAAIA;;AAAqBA;;AACzBA;;AAAIA;;AAAaA;;AACjBA;;AAAIA;;AAAgBA;;AACpBA;;AAAIA;;AAAuBA;;AAC3BA;;AACEA;;AAAGA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAkEA;;AAA4BA;;AAAYA;;AAC7GA;;AACFA;;AACFA;;;;;;;AAXMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AAGEA;;AAAAA;;;;;;;;;;;;;;;AAtCdA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AACAA;;AACEA;;AACAA;;AAAsCA;;AAAeA;;AACrDA;;AACAA;;AAAQA;AAAAA;;AAAA;;AAAA;AAAA,aAAuB,eAAvB,EAAuB;AAAAA;;AAAA;;AAAA;AAAA,WAAvB;;AAARA;;AACAA;;AACAA;;AACFA;;AAGAA;;AACEA;;AACIA;;AACAA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAGA;;AACnBA;;AAAgBA;;AAAMA;;AACtBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAMA;;AACxBA;;AACFA;;AACAA;;AACIA;;;;AAaJA;;AACFA;;AAGAA;;AAA4CA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0BA;;AAIxEA;;;;;;AAzC4DA;;AAAAA;;AAoB/BA;;AAAAA;;;;;;;;UCZhBqP;AAgBX,uCAAmB1c,OAAnB,EAA0C2c,iBAA1C,EAAwFtf,UAAxF,EAA0HiJ,WAA1H,EAAqKC,UAArK,EAAwM9I,YAAxM,EACOL,MADP,EAC+Ba,aAD/B,EAC2EwI,MAD3E,EAC4F;AAAA;;AADzE;AAAuB;AAA8C;AAAkC;AAA2C;AAAmC;AACjM;AAAwB;AAA4C;AAdpE,4BAAaC,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAb;AAMP,6BAA0B,IAAIT,KAAJ,EAA1B;AAGA,4BAAa;AAAEwG,iBAAK,EAAE,EAAT;AAAanJ,gBAAI,EAAE;AAAnB,WAAb;AACA,mBAAY,CAAZ;AACO,4BAAsB,KAAtB;AACC,0BAAkB,IAAIof,mEAAJ,EAAlB;AAGN,eAAKve,KAAL,GAAa,KAAKiI,WAAL,CAAiBhI,gBAA9B;AACA,eAAKue,eAAL;AAED;;;;iBACD,qBAAY7V,KAAZ,EAAiB;AACf,iBAAKC,MAAL,CAAYC,WAAZ,GAA0BF,KAA1B;AACD;;;iBAGM,2BAAe;AAAA;;AACpB,iBAAKQ,UAAL,GAAkB,IAAlB;AACA,iBAAKnK,UAAL,CAAgByf,cAAhB,CAA+B,KAAKze,KAAL,CAAWqJ,gBAA1C,EAA4D7I,SAA5D,CAAsE,UAACE,GAAD,EAAa;AACjF,qBAAI,CAACge,WAAL,GAAmBvH,MAAM,CAACC,MAAP,CAAc,OAAI,CAACsH,WAAnB,EAAgChe,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAArC,CAAnB;;AAGA,mBAAK,IAAI3E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAACuc,WAAL,CAAiBtc,MAArC,EAA6CD,CAAC,EAA9C,EAAkD;AAChD,uBAAI,CAACuc,WAAL,CAAiBvc,CAAjB,EAAoBsC,SAApB,GAAgC4D,mCAAM,CAAC,OAAI,CAACqW,WAAL,CAAiBvc,CAAjB,EAAoBsC,SAArB,CAAN,CAAsClC,MAAtC,CAA6C,YAA7C,CAAhC;AACD;;AAED,qBAAI,CAACuG,UAAL,GAAkB;AAACR,qBAAK,EAAE,OAAI,CAACoW,WAAL,CAAiBtc,MAAzB;AAAgCjD,oBAAI,EAAC;AAArC,eAAlB;;AAEA,mBAAK,IAAIgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAAC2G,UAAL,CAAgBR,KAApC,EAA2CnG,CAAC,EAA5C,EAAgD;AAC5C,uBAAI,CAAC2G,UAAL,CAAgB3J,IAAhB,CAAqBmG,IAArB,CACC;AACGyD,oBAAE,EAAE5G,CAAC,GAAG,CADX;AAEG+B,yBAAO,EAAC,OAAI,CAACwa,WAAL,CAAiBvc,CAAjB,EAAoB+B,OAF/B;AAGGO,2BAAS,EAAE,OAAI,CAACia,WAAL,CAAiBvc,CAAjB,EAAoBsC,SAHlC;AAIGL,6BAAW,EAAC,OAAI,CAACsa,WAAL,CAAiBvc,CAAjB,EAAoBiC,WAJnC;AAKGC,qBAAG,EAAC,OAAI,CAACqa,WAAL,CAAiBvc,CAAjB,EAAoBkC,GAL3B;AAMGC,wBAAM,EAAC,OAAI,CAACoa,WAAL,CAAiBvc,CAAjB,EAAoBmC,MAN9B;AAOGE,+BAAa,EAAC,OAAI,CAACka,WAAL,CAAiBvc,CAAjB,EAAoBqC,aAPrC;AAQGxD,4BAAU,EAAC,OAAI,CAAC0d,WAAL,CAAiBvc,CAAjB,EAAoBnB,UARlC;AASG2d,8BAAY,EAAC,OAAI,CAACD,WAAL,CAAiBvc,CAAjB,EAAoBwc,YATpC;AAUGC,8BAAY,EAAE,OAAI,CAACF,WAAL,CAAiBvc,CAAjB,EAAoByc,YAVrC;AAWGla,6BAAW,EAAE,OAAI,CAACga,WAAL,CAAiBvc,CAAjB,EAAoBuC,WAXpC;AAYGT,2BAAS,EAAE,OAAI,CAACya,WAAL,CAAiBvc,CAAjB,EAAoB8B,SAZlC;AAaG6Q,2BAAS,EAAE,OAAI,CAAC4J,WAAL,CAAiBvc,CAAjB,EAAoB2S,SAblC;AAcGjL,mCAAiB,EAAE,OAAI,CAAC6U,WAAL,CAAiBvc,CAAjB,EAAoB0H;AAd1C,iBADD;AAkBD;;AACD,qBAAI,CAACE,UAAL;AAEH,aAhCD,EAmCE,eAAK,EAAG;AACN,qBAAI,CAAC3K,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aArCH;AAuCD;;;iBACD,sBAAU;AAAA;;AACR,iBAAKke,mBAAL,GAA2B,IAAI/c,KAAJ,EAA3B;AACA,iBAAK+c,mBAAL,GAA2B5U,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrB,UAAL,CAAgB3J,IAA/B,CAAX,CAA3B,CAFQ,CAEoE;;AAC5E,iBAAK0f,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBzU,MAAzB,CAAgC,WAAC;AAAA,qBAAIZ,CAAC,CAAC/E,SAAF,IAAe,OAAI,CAAC4F,UAAxB;AAAA,aAAjC,CAA3B;AACD;;;iBAED,oBAAWyU,CAAX,EAAmB;AAAA;;AACjB,iBAAKC,MAAL,GAAc,KAAKF,mBAAL,CAAyBC,CAAzB,EAA4BH,YAA1C;AACA,iBAAKK,KAAL,GAAa,KAAKH,mBAAL,CAAyBC,CAAzB,EAA4B9d,UAAzC;AACA,iBAAKwJ,OAAL,GAAe,KAAKqU,mBAAL,CAAyBC,CAAzB,EAA4B5a,OAA3C;AACA,gBAAM0I,SAAS,GAAG,KAAKxE,MAAL,CAAYyE,IAAZ,CAAiBoS,yFAAjB,EAChB;AAAE9f,kBAAI,EAAE;AAAEoU,qBAAK,EAAE,KAAKvT,KAAL,CAAWqJ,gBAApB;AAAsC0V,sBAAM,EAAE,KAAKA,MAAnD;AAA2DC,qBAAK,EAAE,KAAKA,KAAvE;AAA8ExU,uBAAO,EAAE,KAAKA,OAA5F;AAAqG0U,6BAAa,EAAE,KAAKL,mBAAL,CAAyBC,CAAzB,EAA4BF,YAAhJ;AAA8JO,2BAAW,EAAE,KAAKN,mBAAL,CAAyBC,CAAzB,EAA4Bpa,WAAvM;AAAoN0a,+BAAe,EAAE,KAAKP,mBAAL,CAAyBC,CAAzB,EAA4BhK;AAAjQ,eAAR;AAAsR9O,mBAAK,EAAE,QAA7R;AAAuSD,oBAAM,EAAE;AAA/S,aADgB,CAAlB;AAGA6G,qBAAS,CAACe,YAAV,GAAyB,IAAzB;AACDf,qBAAS,CAACgB,WAAV,GAAwBpN,SAAxB,CAAkC,gBAAM,EAAG;AACzCoM,uBAAS,CAACiB,KAAV;AACAC,qBAAO,CAACC,GAAR,0BAA8BC,MAA9B;;AACA,qBAAI,CAACrM,OAAL,CAAawF,QAAb,CAAsB,CAAC,iBAAD,CAAtB;AACD,aAJD;AAKA;;;iBAED,gBAAI;AACF,iBAAKkY,UAAL,GAAkB,KAAlB;AACD;;;iBAED,uBAAclgB,IAAd,EAAkB;AAAA;;AAChB,iBAAK+I,UAAL,CAAgBxB,YAAhB,CAA6BvH,IAAI,CAAC8E,SAAlC,EAA6C9E,IAAI,CAAC+E,OAAlD,EAA4D1D,SAA5D,CAAsE,aAAG;AAAA,qBAAI,OAAI,CAACmG,cAAL,CAAoBjG,GAApB,CAAJ;AAAA,aAAzE,EACA,aAAG;AAAA,qBAAI,OAAI,CAACkG,mBAAL,CAAyBlG,GAAzB,CAAJ;AAAA,aADH;AAED;;;iBAED,wBAAevB,IAAf,EAAmB;AACjB,gBAAGA,IAAI,IAAIA,IAAI,CAAC0H,SAAb,IAA0B1H,IAAI,CAAC2H,OAAlC,EAA0C;AACxC,kBAAM8F,SAAS,GAAG,KAAKxE,MAAL,CAAYyE,IAAZ,CAAiByS,iGAAjB,EAChB;AAAEngB,oBAAI,EAAE;AACN8E,2BAAS,EAAE9E,IAAI,CAAC2H,OAAL,CAAa7C,SADlB;AAENG,6BAAW,EAAEjF,IAAI,CAAC2H,OAAL,CAAa1C,WAFpB;AAGNC,qBAAG,EAAElF,IAAI,CAAC2H,OAAL,CAAazC,GAHZ;AAINC,wBAAM,EAAEnF,IAAI,CAAC2H,OAAL,CAAaxC,MAJf;AAKNC,yBAAO,EAAEpF,IAAI,CAAC2H,OAAL,CAAavC,OALhB;AAMNC,+BAAa,EAAErF,IAAI,CAAC2H,OAAL,CAAatC,aANtB;AAONC,2BAAS,EAAEtF,IAAI,CAAC2H,OAAL,CAAarC,SAPlB;AAQNC,6BAAW,EAAEvF,IAAI,CAAC2H,OAAL,CAAapC,WARpB;AASNC,gCAAc,EAAExF,IAAI,CAAC2H,OAAL,CAAanC,cATvB;AAUNC,4BAAU,EAAEzF,IAAI,CAAC2H,OAAL,CAAalC,UAVnB;AAWNmI,6BAAW,EAAE5N,IAAI,CAAC2H,OAAL,CAAaiG,WAXpB;AAYNC,wBAAM,EAAE7N,IAAI,CAAC2H,OAAL,CAAakG,MAZf;AAaNC,wBAAM,EAAE9N,IAAI,CAAC2H,OAAL,CAAamG,MAbf;AAcNC,6BAAW,EAAE/N,IAAI,CAAC2H,OAAL,CAAaoG,WAdpB;AAeNC,qBAAG,EAAEhO,IAAI,CAAC2H,OAAL,CAAaqG,GAfZ;AAgBNC,oBAAE,EAAEjO,IAAI,CAAC2H,OAAL,CAAasG,EAhBX;AAiBNC,0BAAQ,EAAElO,IAAI,CAAC2H,OAAL,CAAauG,QAjBjB;AAkBNC,2BAAS,EAAEnO,IAAI,CAAC2H,OAAL,CAAawG,SAlBlB;AAmBNzI,+BAAa,EAAE1F,IAAI,CAAC2H,OAAL,CAAajC,aAnBtB;AAoBNC,qBAAG,EAAE3F,IAAI,CAAC2H,OAAL,CAAahC,GApBZ;AAqBN4E,4BAAU,EAAEvK,IAAI,CAAC2H,OAAL,CAAa4C,UArBnB;AAsBND,iCAAe,EAAEtK,IAAI,CAAC2H,OAAL,CAAa2C,eAtBxB;AAuBNrC,yBAAO,EAAEjI,IAAI,CAAC2H,OAAL,CAAaM,OAvBhB;AAwBNmG,iCAAe,EAAEpO,IAAI,CAAC2H,OAAL,CAAayG,eAxBxB;AAyBNC,+BAAa,EAAErO,IAAI,CAAC2H,OAAL,CAAa0G,aAzBtB;AA0BNC,gCAAc,EAAEtO,IAAI,CAAC2H,OAAL,CAAa2G,cA1BvB;AA2BNrI,yBAAO,EAAEjG,IAAI,CAAC2H,OAAL,CAAa1B,OA3BhB;AA4BNC,gCAAc,EAAElG,IAAI,CAAC2H,OAAL,CAAazB,cA5BvB;AA6BNnB,yBAAO,EAAE/E,IAAI,CAAC2H,OAAL,CAAa4G;AA7BhB,iBAAR;AA8BG1H,qBAAK,EAAE,QA9BV;AA8BoBD,sBAAM,EAAE;AA9B5B,eADgB,CAAlB;AAiCE6G,uBAAS,CAACe,YAAV,GAAyB,IAAzB;AACAf,uBAAS,CAACgB,WAAV,GAAwBpN,SAAxB,CAAkC,gBAAM,EAAG;AACzCoM,yBAAS,CAACiB,KAAV;AACAC,uBAAO,CAACC,GAAR,0BAA8BC,MAA9B,GAFyC,CAGzC;AACD,eAJD;AAKH,aAxCD,MAyCI;AACF,mBAAKpO,aAAL,CAAmB6C,SAAnB,CAA6B,EAA7B,EAAiC,4BAAjC;AACD;AACF;;;iBAED,6BAAoB/B,GAApB,EAAuB,CAEtB;;;;;;;yBApJU2d,uBAAoBrP;AAAA;;;cAApBqP;AAAoBjd;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADnBjCwN;;AACAA;;AAAmEA;;AAAKA;;AAAMA;;AAAYA;;AAAQA;;AAElGA;;AAkDAA;;;;AApDQA;;AAAAA;;AAEFA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEUNnH;;;;;;;;AAEAA;;AAA+FA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0BA;;AAAKA;;;;;;;;AAE9HA;;AACEA;;AAAyGA;AAAAA;;AAAA;;AAAA;AAAA;;AAAgCA;;AAA2BA;;AACtKA;;;;;;AAUQA;;AAAgDA;;AAA2BA;;AAAeA;;;;;;AAAfA;;AAAAA;;;;;;AAI3EA;;AAA4CA;;AAAkBA;;;;;;AAAlBA;;AAAAA;;;;;;AAE5CA;;AAA4CA;;AAAmBA;;;;;;AAAnBA;;AAAAA;;;;;;AAE5CA;;AAA4CA;;AAAwBA;;;;;;AAAxBA;;AAAAA;;;;;;AAE5CA;;AAA+EA;;AAAmBA;;;;;;AAAnBA;;AAAAA;;;;;;AAazEA;;AAAsEA;;AAAoBA;;;;;;AAA7CA;;AAAyBA;;AAAAA;;;;;;AAWlEA;;AACEA;;AACFA;;;;;;AAFuDA;;AACrDA;;AAAAA;;;;;;;;AAPdA;;AACEA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAyEA;AAAAA;;AAAA;;AAAA;AAAA;;AACvEA;;AAGFA;;AACFA;;AACFA;;AACFA;;AACFA;;AACFA;;;;;;AAXYA;;AAAAA;;AAG4BA;;AAAAA;;;;;;AAc9BA;;AACEA;;AACFA;;;;;;AAFuDA;;AACrDA;;AAAAA;;;;;;;;AANZA;;AACEA;;AACEA;;AACEA;;AACEA;;AAA4CA;AAAAA;;AAAA;;AAAA;AAAA,aAA2B,iBAA3B,EAA2B;AAAAA;;AAAA;;AAAA;AAAA,WAA3B;;AAC1CA;;AAGFA;;AACFA;;AACFA;;AACFA;;AACFA;;;;;;AARoDA;;AAAAA;;AACdA;;AAAAA;;;;;;AAkBhCA;;AAAwHA;;AAAqBA;;;;;;AAA/EA;;;;;;AAC9DA;;AAA0HA;;AAAgBA;;;;;;AAA5EA;;;;;;;;AAXpEA;;AACEA;;AACEA;;AAAuCA;;AAAaA;;AACpDA;;AACEA;;AACEA;;AAAWA;;AAAyBA;;AACpCA;;AAA2DA;AAAAA;;AAAA;;AAAA;AAAA,aAAgC,YAAhC,EAAgC;AAAAA;;AAAA;;AAAA;AAAA,WAAhC;;AAA3DA;;AACAA;;AACAA;;AACFA;;AACAA;;AACAA;;AACFA;;AACFA;;AACFA;;;;;;;;AAbQA;;AAAAA;;AAKgBA;;AAAAA,8FAAiB,eAAjB,EAAiB0X,IAAjB,EAAiB,SAAjB,EAAiBrQ,0BAAjB;;AACiBrH;;AAAAA;;AAGVA;;AAAAA;;AACAA;;AAAAA;;;;;;AAK7BA;;AACEA;;AAAqDA;;AAAiCA;;AAA+CA;;AACvIA;;;;;;;;AAGIA;;AAAqEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAsHA;;AAA6BA;;AAAyDA;;;;;;AAAzDA;;AAAAA;;;;;;;;AAGpNA;;AAAyEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAgIA;;AAAmBA;;;;;;AAAnBA;;AAAAA;;;;;;;;AACzMA;;AAAqEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAiIA;;AAAmBA;;;;;;AAAnBA;;AAAAA;;;;;;AAFxMA;;AACEA;;AACAA;;AACFA;;;;;;AAFWA;;AAAAA;;AACAA;;AAAAA;;;;;;AAHbA;;AACEA;;AAIFA;;;;;;;;;;AAJQA;;AAAAA;;;;;;AAJZA;;AACEA;;AACEA;;AACAA;;AAMFA;;AACFA;;;;;;AARaA;;AAAAA;;AACaA;;AAAAA;;;;;;AAP5BA;;AACEA;;AAGAA;;AAWFA;;;;;;AAdiBA;;AAAAA;;AAGOA;;AAAAA;;;;;;AAYxBA;;AACEA;;AAAMA;;AAA+FA;;AACvGA;;;;;;AADQA;;AAAAA;;;;;;AAINA;;AACEA;;AAAkCA;;AACjBA;;AACjBA;;AAA0GA;;AAA6CA;;AAAwBA;;AAASA;;AAC1LA;;;;;;AADyJA;;AAAAA;;;;;;;;AAG3JA;;AAA8FA;AAAAA;;AAAA;;AAAA;AAAA;;AAC5FA;;AAAKA;;AAAMA;;AAAWA;;AACxBA;;;;;;AACAA;;AACEA;;AAAgFA;;AAAIA;;AACtFA;;;;;;AAMAA;;AACEA;;AAAsBA;;AAAQA;;AAA4CA;;AAAUA;;AACtFA;;;;;;;;AAYMA;;AAAkEA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAChEA;;AAAkBA;;AAA8BA;;;;AAAiCA;;AACjFA;;AAAmBA;;AAA2BA;;AAAuCA;;AAAOA;;AAC9FA;;;;;;AAFkDA;;AAAAA;;AACFA;;AAAAA;;;;;;AAbtDA;;AACEA;;AAEEA;;AACEA;;AACEA;;AAAiBA;;AAAIA;;AACrBA;;AAAiBA;;AAAiBA;;AAClCA;;AACFA;;AACFA;;AACAA;;AACEA;;AAIFA;;AACFA;;AACFA;;;;;;AAN6CA;;AAAAA;;;;;;AAjBjDA;;AACEA;;AACEA;;AAAuBA;;AAA6BA;;AAAkCA;;AACtFA;;AAGAA;;AAmBFA;;AACFA;;;;;;AAxBwDA;;AAAAA;;AAC/BA;;AAAAA;;AAGfA;;AAAAA;;;;UC/GC2X;AAgEX,yCAAmBzgB,MAAnB,EAA0C0gB,UAA1C,EAAqGtgB,IAArG,EAAuHC,YAAvH,EAA0JC,KAA1J,EACSC,MADT,EACgCC,UADhC,EAC+D2I,UAD/D,EACmG1I,qBADnG,EACwJ8e,iBADxJ,EAES7e,IAFT,EAEmCC,QAFnC,EAE+DC,WAF/D,EAEiGC,aAFjG,EAE4IZ,UAF5I,EAGS0gB,eAHT,EAGyC;AAAA;;AAHtB;AAAuB;AAA2D;AAAkB;AAAmC;AACjJ;AAAuB;AAA+B;AAAoC;AAAqD;AAC/I;AAA0B;AAA4B;AAAkC;AAA2C;AACnI;AAlEF,yBAAkB,IAAItR,+DAAJ,EAAlB;AAGA,+BAAqB,EAArB;AACA,uBAAgB,CAAhB;AAGA,sBAAoB,IAAIuR,gFAAJ,EAApB;AACP,0BAAkB,IAAI7b,mEAAJ,EAAlB;AACO,0BAAoB,KAApB;AACA,oCAA8B,KAA9B;AACP,iCAA8B,IAAIhC,KAAJ,EAA9B;AACA,sCAAmC,IAAIA,KAAJ,EAAnC;AAGO,gCAA6B,IAAIA,KAAJ,EAA7B;AACA,wCAAqC,IAAIA,KAAJ,EAArC;AACA,yBAAyB,IAAIA,KAAJ,EAAzB;AACA,kCAA4B,KAA5B;AACP,yBAAU,KAAV;AASO,iCAA2B,KAA3B;AACA,8BAAwB,KAAxB;AACA,oCAA8B,IAA9B;AACA,kCAA4B,KAA5B;AACA,oCAA8B,KAA9B;AACA,uCAAiC,KAAjC;AACA,iCAAuB,EAAvB;AACA,sCAA4B,EAA5B;AACA,oCAA0B,EAA1B;AAGA,0BAAmB,CAAnB;AACA,uBAAgB,CAAhB;AACA,4BAAuC,IAAIA,KAAJ,EAAvC;AACA,4BAAyB,IAAIA,KAAJ,EAAzB;AAQA,6BAAc8d,0CAAM,GAAGrd,MAAT,CAAgB,YAAhB,CAAd;AACP,mCAAgC,IAAIT,KAAJ,EAAhC;AACA,gCAAwC,IAAIA,KAAJ,EAAxC;AACA,+CAA4C,IAAIA,KAAJ,EAA5C;AACA,2BAAwB,IAAIA,KAAJ,EAAxB;AACA,wCAAqC,IAAIA,KAAJ,EAArC;AACA,uCAAoC,IAAIA,KAAJ,EAApC;AACA,8BAA2B,IAAIA,KAAJ,EAA3B;AACA,4BAAsB,KAAtB;AAIO,qCAAgC,KAAhC;AAKL,eAAK+d,SAAL,GAAiB,KAAKngB,QAAL,CAAcogB,SAAd,CAAwB,IAAI9J,IAAJ,EAAxB,EAAoC,YAApC,CAAjB;AACA,eAAKhW,KAAL,GAAa,KAAKR,qBAAL,CAA2BS,gBAAxC;AACA,eAAK8f,QAAL,GAAgB,KAAK1gB,KAAL,CAAWiP,QAAX,CAAoBC,aAApB,CAAkCC,GAAlC,CAAsC,KAAtC,CAAhB;AACA,eAAKmQ,YAAL,GAAoB,KAAKtf,KAAL,CAAWiP,QAAX,CAAoBC,aAApB,CAAkCC,GAAlC,CAAsC,QAAtC,CAApB;AACA,eAAKsG,SAAL,GAAiB,KAAKzV,KAAL,CAAWiP,QAAX,CAAoBC,aAApB,CAAkCC,GAAlC,CAAsC,WAAtC,CAAjB;;AACA,cAAI,KAAKuR,QAAL,IAAiB,EAAjB,IAAuB,KAAKA,QAAL,IAAiB,IAA5C,EAAkD;AAChD,iBAAKA,QAAL,GAAgB,KAAKN,UAAL,CAAgB5e,QAAhC;AACD;;AACD,eAAKmf,kBAAL;AACA,eAAKC,iBAAL;AACD;;;;iBACD,oBAAQ;AACN,iBAAKC,iBAAL,GAAyB,KAAKvgB,WAAL,CAAiB+S,KAAjB,CAAuB;AAC9CyN,wBAAU,EAAE,CAAC,EAAD;AADkC,aAAvB,CAAzB;AAGD;;;iBAED,6BAAiB;AACf,gBAAG,KAAKrL,SAAL,KAAmB,oBAAtB,EAA2C;AACzC,mBAAKsL,mBAAL,GAA2B,IAA3B;AACD,aAFD,MAEK;AACH,mBAAKA,mBAAL,GAA2B,KAA3B;AACD;AACF;;;iBACD,8BAAkB;AAAA;;AAChB,iBAAKV,eAAL,CAAqBM,kBAArB,CAAwC,KAAKD,QAA7C,EACGvf,SADH,CACa,aAAG;AAAA,qBAAI,OAAI,CAAC6f,mBAAL,CAAyB3f,GAAzB,CAAJ;AAAA,aADhB,EAEI,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aAFP;AAGD;;;iBACD,6BAAoBA,GAApB,EAAuB;AAAA;;AACrB,iBAAK4f,YAAL,GAAoBnJ,MAAM,CAACC,MAAP,CAAc1W,GAAd,CAApB;;AACA,gBAAI,KAAKvB,IAAL,CAAUohB,UAAd,EAA0B;AACxB,mBAAKD,YAAL,GAAoB,KAAKA,YAAL,CAAkBlW,MAAlB,CAAyB,WAAC;AAAA,uBAAIyK,CAAC,CAAC7T,UAAF,IAAgB,OAAI,CAAC7B,IAAL,CAAUohB,UAA9B;AAAA,eAA1B,CAApB;AACA,mBAAKC,WAAL,GAAmB,KAAKF,YAAL,CAAkB,CAAlB,EAAqBtf,UAAxC;AACA,mBAAKuf,UAAL,GAAkB,KAAKC,WAAvB;AACA,mBAAKC,QAAL,GAAgB,IAAhB;AACA,mBAAKC,iBAAL;AACD;;AACD,gBAAI,KAAKJ,YAAL,CAAkBle,MAAlB,IAA4B,CAAhC,EAAmC;AACjC,mBAAKue,iBAAL,GAAyB,KAAKL,YAAL,CAAkB,CAAlB,EAAqBM,aAA9C;AACA,mBAAKhc,UAAL,GAAkB,KAAK0b,YAAL,CAAkB,CAAlB,EAAqB1b,UAAvC;AACA,mBAAKic,QAAL,GAAgB,KAAKP,YAAL,CAAkB,CAAlB,EAAqBO,QAArC;AACA,mBAAKrD,WAAL,GAAmB,KAAK8C,YAAL,CAAkB,CAAlB,EAAqB9C,WAAxC;AACA,mBAAKsD,UAAL,GAAkB,KAAKR,YAAL,CAAkB,CAAlB,EAAqBQ,UAAvC;AACA,mBAAKC,cAAL,GAAsB,KAAKT,YAAL,CAAkB,CAAlB,EAAqBS,cAA3C;AACA,mBAAKP,WAAL,GAAmB,KAAKF,YAAL,CAAkB,CAAlB,EAAqBtf,UAAxC;AACA,mBAAKuf,UAAL,GAAkB,KAAKC,WAAvB;AACA,mBAAKzhB,MAAL,CAAYiC,UAAZ,GAAyB,KAAKuf,UAA9B;AACA,mBAAKb,eAAL,CAAqB1e,UAArB,GAAkC,KAAKuf,UAAvC;AACA,mBAAKE,QAAL,GAAgB,IAAhB;AACA,mBAAKC,iBAAL,GAZiC,CAajC;AACD,aAdD,MAeK;AACH,mBAAKC,iBAAL,GAAyB,KAAKL,YAAL,CAAkB,CAAlB,EAAqBM,aAA9C;AACA,mBAAKhc,UAAL,GAAkB,KAAK0b,YAAL,CAAkB,CAAlB,EAAqB1b,UAAvC;AACA,mBAAKic,QAAL,GAAgB,KAAKP,YAAL,CAAkB,CAAlB,EAAqBO,QAArC;AACA,mBAAKrD,WAAL,GAAmB,KAAK8C,YAAL,CAAkB,CAAlB,EAAqB9C,WAAxC;AACA,mBAAKsD,UAAL,GAAkB,KAAKR,YAAL,CAAkB,CAAlB,EAAqBQ,UAAvC;AACA,mBAAKC,cAAL,GAAsB,KAAKT,YAAL,CAAkB,CAAlB,EAAqBS,cAA3C;AACA,mBAAKP,WAAL,GAAmB,EAAnB;AACD;AAGF;;;iBACD,wBAAe7X,KAAf,EAAqC;AACnC;AACA,iBAAKqY,eAAL,GAAuB,EAAvB;AACA,iBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,iBAAK6b,UAAL,GAAkB5X,KAAK,CAACK,KAAxB;AACA,iBAAKyX,QAAL,GAAgB,IAAhB;AACA,iBAAKQ,YAAL,GAAoB,KAApB;AACA,iBAAKC,gBAAL,GAAwB,KAAxB;AACA,iBAAK9L,QAAL,CAAc3Q,SAAd,GAA0B,IAA1B;AACA,iBAAK0c,kBAAL,GAA0B,KAA1B;AACA,iBAAKT,iBAAL;AAED;;;iBAED,yBAAa;AAAA;;AACX,iBAAKjB,UAAL,CAAgB2B,MAAhB,CAAuB,KAAKrB,QAA5B,EAAsC,KAAKQ,UAA3C,EAAuD,KAAKzL,SAA5D,EACGtU,SADH,CACa,aAAG;AAAA,qBAAI,OAAI,CAAC6gB,aAAL,CAAmB3gB,GAAnB,CAAJ;AAAA,aADhB,EAEI,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aAFP;AAGD;;;iBACD,uBAAcA,GAAd,EAAiB;AACf,gBAAIA,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAAhC,EAAyC;AACvC,mBAAKwW,UAAL,GAAkB5c,GAAG,CAACoG,OAAtB;AACA,mBAAKwa,cAAL,GAAsB5gB,GAAG,CAACoG,OAAJ,CAAYwa,cAAlC;AACA,mBAAKC,SAAL,GAAiB,IAAIzf,KAAJ,EAAjB;AACA,mBAAKyf,SAAL,GAAiBtX,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKmX,cAApB,CAAX,CAAjB;;AACA,kBAAI,KAAKC,SAAL,CAAenf,MAAf,IAAyB,CAA7B,EAAgC;AAC9B,qBAAK+e,kBAAL,GAA0B,IAA1B;AACD;;AACD,mBAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKD,SAAL,CAAenf,MAAnC,EAA2Cof,CAAC,EAA5C,EAAgD;AAC9C,oBAAIC,MAAM,GAAG,CAAb;AACAA,sBAAM,GAAG,CAAC,KAAKF,SAAL,CAAeC,CAAf,EAAkBE,SAAlB,CAA4BC,MAA5B,CAAmC,CAAnC,EAAsC,CAAtC,CAAV;;AACA,oBAAIF,MAAM,GAAG,EAAb,EAAiB;AACf,sBAAIG,MAAM,GAAG,IAAb;AACA,sBAAIC,EAAE,GAAGJ,MAAT;AACD,iBAHD,MAIK;AACHG,wBAAM,GAAG,IAAT;;AACA,sBAAIH,MAAM,IAAI,EAAd,EAAkB;AAChB,wBAAII,EAAE,GAAGJ,MAAT;AACD,mBAFD,MAEO;AACLI,sBAAE,GAAGJ,MAAM,GAAG,EAAd;AACD;AACF;;AACD,qBAAKF,SAAL,CAAeC,CAAf,EAAkBE,SAAlB,GAA8BG,EAAE,GAAG,KAAKN,SAAL,CAAeC,CAAf,EAAkBE,SAAlB,CAA4BC,MAA5B,CAAmC,CAAnC,EAAsC,CAAtC,CAAL,GAAgD,GAAhD,GAAsDC,MAApF;AACA,oBAAIE,MAAM,GAAG,CAAb;AACAA,sBAAM,GAAG,CAAC,KAAKP,SAAL,CAAeC,CAAf,EAAkBO,OAAlB,CAA0BJ,MAA1B,CAAiC,CAAjC,EAAoC,CAApC,CAAV;;AACA,oBAAIG,MAAM,GAAG,EAAb,EAAiB;AACf,sBAAIE,MAAM,GAAG,IAAb;AACA,sBAAIC,EAAE,GAAGH,MAAT;AACD,iBAHD,MAIK;AACHE,wBAAM,GAAG,IAAT;;AACA,sBAAIF,MAAM,IAAI,EAAd,EAAkB;AAChB,wBAAIG,EAAE,GAAGH,MAAT;AACD,mBAFD,MAEO;AACLG,sBAAE,GAAGH,MAAM,GAAG,EAAd;AACD;AACF;;AACD,qBAAKP,SAAL,CAAeC,CAAf,EAAkBO,OAAlB,GAA4BE,EAAE,GAAG,KAAKV,SAAL,CAAeC,CAAf,EAAkBO,OAAlB,CAA0BJ,MAA1B,CAAiC,CAAjC,EAAoC,CAApC,CAAL,GAA8C,GAA9C,GAAoDK,MAAhF;AACD;;AACD,mBAAKV,cAAL,GAAsB,KAAKC,SAA3B;AACA,mBAAKW,sBAAL,GAA8BxhB,GAAG,CAACoG,OAAJ,CAAYwa,cAA1C;AACA,mBAAKC,SAAL,GAAiB,IAAIzf,KAAJ,EAAjB;AACA,mBAAKyf,SAAL,GAAiBtX,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAK+X,sBAApB,CAAX,CAAjB;;AACA,mBAAK,IAAIV,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKD,SAAL,CAAenf,MAAnC,EAA2Cof,CAAC,EAA5C,EAAgD;AAC9C,oBAAIC,MAAM,GAAG,CAAb;AACAA,sBAAM,GAAG,CAAC,KAAKF,SAAL,CAAeC,CAAf,EAAkBE,SAAlB,CAA4BC,MAA5B,CAAmC,CAAnC,EAAsC,CAAtC,CAAV;;AACA,oBAAIF,MAAM,GAAG,EAAb,EAAiB;AACf,sBAAIG,MAAM,GAAG,IAAb;AACA,sBAAIC,EAAE,GAAGJ,MAAT;AACD,iBAHD,MAIK;AACHG,wBAAM,GAAG,IAAT;;AACA,sBAAIH,MAAM,IAAI,EAAd,EAAkB;AAChB,wBAAII,EAAE,GAAGJ,MAAT;AACD,mBAFD,MAEO;AACLI,sBAAE,GAAGJ,MAAM,GAAG,EAAd;AACD;AACF;;AACD,qBAAKF,SAAL,CAAeC,CAAf,EAAkBE,SAAlB,GAA8BG,EAAE,GAAG,KAAKN,SAAL,CAAeC,CAAf,EAAkBE,SAAlB,CAA4BC,MAA5B,CAAmC,CAAnC,EAAsC,CAAtC,CAAL,GAAgD,GAAhD,GAAsDC,MAApF;AACA,oBAAIE,MAAM,GAAG,CAAb;AACAA,sBAAM,GAAG,CAAC,KAAKP,SAAL,CAAeC,CAAf,EAAkBO,OAAlB,CAA0BJ,MAA1B,CAAiC,CAAjC,EAAoC,CAApC,CAAV;;AACA,oBAAIG,MAAM,GAAG,EAAb,EAAiB;AACf,sBAAIE,MAAM,GAAG,IAAb;AACA,sBAAIC,EAAE,GAAGH,MAAT;AACD,iBAHD,MAIK;AACHE,wBAAM,GAAG,IAAT;;AACA,sBAAIF,MAAM,IAAI,EAAd,EAAkB;AAChB,wBAAIG,EAAE,GAAGH,MAAT;AACD,mBAFD,MAEO;AACLG,sBAAE,GAAGH,MAAM,GAAG,EAAd;AACD;AACF;;AACD,qBAAKP,SAAL,CAAeC,CAAf,EAAkBO,OAAlB,GAA4BE,EAAE,GAAG,KAAKV,SAAL,CAAeC,CAAf,EAAkBO,OAAlB,CAA0BJ,MAA1B,CAAiC,CAAjC,EAAoC,CAApC,CAAL,GAA8C,GAA9C,GAAoDK,MAAhF;AACD;;AACD,mBAAKE,sBAAL,GAA8B,KAAKX,SAAnC;AACA,mBAAKY,qBAAL,GAA6BzhB,GAAG,CAACoG,OAAJ,CAAYsb,mBAAzC;;AACA,kBAAG,KAAKhC,mBAAR,EAA4B;AAC1B,qBAAKiC,gBAAL,CAAsB,KAAKF,qBAA3B,EAD0B,CACyB;AACpD;AACF,aAjFD,MAiFO;AACL,mBAAK/iB,YAAL,CAAkBuB,KAAlB,CAAwBD,GAAG,CAACqW,eAA5B;AACD;AAEF;;;iBACD,eAAMrW,GAAN,EAAS,CAER;;;iBACD,6BAAiB;AAAA;;AACf,iBAAK+e,UAAL,CAAgB6C,iBAAhB,GAAoC9hB,SAApC,CAA8C,aAAG,EAAG;AAClD,qBAAI,CAAC+hB,QAAL,GAAgB7hB,GAAhB;;AACA,qBAAI,CAAC8hB,eAAL;AACD,aAHD,EAIE,eAAK,EAAG;AACN,qBAAI,CAACpjB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;;AACA,qBAAI,CAAC8hB,OAAL,GAAe,KAAf;AACD,aAPH;AAQD;;;iBACD,2BAAe;AAAA;;AACb,iBAAK/C,eAAL,CAAqBgD,6BAArB,CAAmD,KAAK3C,QAAxD,EAAkE,KAAKjL,SAAvE,EACGtU,SADH,CACa,aAAG;AAAA,qBAAI,OAAI,CAACmiB,eAAL,CAAqBjiB,GAArB,CAAJ;AAAA,aADhB,EAEI,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aAFP;AAGD;;;iBACD,yBAAgBA,GAAhB,EAAmB;AAAA;;AACjB,gBAAIA,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAAhC,EAAyC;AACvC,mBAAK8b,cAAL,GAAsB,EAAtB;AACA,mBAAKta,KAAL,GAAa,CAAb;AACA,mBAAKua,eAAL,GAAuB1L,MAAM,CAACC,MAAP,CAAc1W,GAAG,CAACoG,OAAlB,CAAvB;AACA,mBAAK+b,eAAL,GAAuB,KAAKA,eAAL,CAAqBzY,MAArB,CAA4B,WAAC;AAAA,uBAAIyK,CAAC,CAAC7T,UAAF,IAAgB,OAAI,CAACuf,UAAzB;AAAA,eAA7B,EAAkE,WAAC;AAAA,uBAAI1L,CAAC,CAACiO,gBAAF,IAAsB,OAAI,CAAChO,SAA/B;AAAA,eAAnE,CAAvB,CAJuC,CAKvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,mBAAK8N,cAAL,GAAsB,KAAKC,eAA3B;;AAEA,kBAAI,KAAKD,cAAL,CAAoBxgB,MAApB,IAA8B,CAA9B,IAAmC,KAAKge,mBAA5C,EAAiE;AAC/D,qBAAK2C,sBAAL,GAA8B5L,MAAM,CAACC,MAAP,CAAc,KAAKwL,cAAnB,CAA9B;AACA,qBAAKI,aAAL,GAAqB,KAAKD,sBAAL,CAA4B,CAA5B,CAArB;AACA,qBAAKE,iBAAL;AACA,qBAAKC,KAAL,GAAa,KAAKF,aAAlB;AACA,qBAAKjE,MAAL,GAAc,KAAKgE,sBAAL,CAA4B,CAA5B,EAA+BpE,YAA7C;AACA,qBAAK5f,MAAL,CAAY4f,YAAZ,GAA2B,KAAKI,MAAhC;AACA,qBAAKW,eAAL,CAAqBf,YAArB,GAAoC,KAAKI,MAAzC,CAP+D,CAQ/D;AACA;AACA;AACA;AACD,eAZD,MAaK;AACH,qBAAKgE,sBAAL,GAA8B,KAAKH,cAAnC,CADG,CAEH;;AACA,oBAAG,KAAKxC,mBAAR,EAA4B;AAC1B,uBAAK6C,iBAAL;AACD;AACF;;AACD,mBAAKE,aAAL;AACD,aApCD,MAoCK;AACH,mBAAK/jB,YAAL,CAAkBuB,KAAlB,CAAwBD,GAAG,CAACqW,eAA5B;AACD;AAEF;;;iBACD,0BAAiBpO,KAAjB,EAA2B;AAAA;;AACzB,gBAAG,KAAKyX,mBAAR,EAA4B;AAC1B;AACA,mBAAKe,kBAAL,GAA0B,KAA1B,CAF0B,CAG1B;;AACA,mBAAKpC,MAAL,GAAcpW,KAAK,SAAL,SAAK,WAAL,GAAK,MAAL,QAAK,CAAEK,KAArB;AACA,mBAAKka,KAAL,GAAava,KAAK,CAACyZ,mBAAnB;AACA,mBAAKgB,eAAL,GAAuB,IAAvB;AACA,mBAAKnC,YAAL,GAAoB,KAApB;AACA,mBAAKC,gBAAL,GAAwB,IAAxB;AACA,mBAAKF,eAAL,GAAuB,EAAvB;AACA,mBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,mBAAK0Q,QAAL,CAAc3Q,SAAd,GAA0B,IAA1B;AACA,mBAAK4e,qBAAL,GAA6B,KAA7B;AACA,mBAAKC,6BAAL,GAAqC,IAAIxhB,KAAJ,EAArC;AACA,mBAAKwhB,6BAAL,GAAqCrZ,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKgY,qBAApB,CAAX,CAArC,CAd0B,CAckE;;AAC5F,kBAAMoB,YAAY,GAAG,KAAK5E,YAA1B;AACA,mBAAK2E,6BAAL,GAAqC,KAAKA,6BAAL,CAAmClZ,MAAnC,CAA0C,WAAC;AAAA,uBAAIyK,CAAC,CAAC8J,YAAF,IAAkB4E,YAAtB;AAAA,eAA3C,CAArC;AACA,mBAAKrB,sBAAL,GAA8B,IAAIpgB,KAAJ,EAA9B;AACA,mBAAKogB,sBAAL,GAA8BjY,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKmX,cAApB,CAAX,CAA9B,CAlB0B,CAkBoD;;AAC9E,mBAAKY,sBAAL,GAA8B,KAAKA,sBAAL,CAA4B9X,MAA5B,CAAmC,WAAC;AAAA,uBAAIyK,CAAC,CAACuN,mBAAF,IAAyB,OAAI,CAACkB,6BAAL,CAAmC,CAAnC,EAAsClB,mBAAnE;AAAA,eAApC,CAA9B;;AACA,kBAAI,KAAKF,sBAAL,CAA4B9f,MAA5B,IAAsC,CAA1C,EAA6C;AAC3C,qBAAK+e,kBAAL,GAA0B,IAA1B;AACD;AACF,aAxBwB,CAyBzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AACD;;;iBAED,8BAAqBxY,KAArB,EAA2C;AAAA;;AACzC,iBAAKwY,kBAAL,GAA0B,KAA1B;AACE,iBAAKpC,MAAL,GAAc,KAAKW,eAAL,CAAqBf,YAArB,GAAoChW,KAAK,CAACK,KAAN,CAAY2V,YAA9D;AACA,iBAAKuE,KAAL,GAAava,KAAK,CAACK,KAAN,CAAYoZ,mBAAzB;AACA,iBAAKgB,eAAL,GAAuB,IAAvB;AACA,iBAAKnC,YAAL,GAAoB,KAApB;AACA,iBAAKC,gBAAL,GAAwB,IAAxB;AACA,iBAAKF,eAAL,GAAuB,EAAvB;AACA,iBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,iBAAK0Q,QAAL,CAAc3Q,SAAd,GAA0B,IAA1B;AACA,iBAAK4e,qBAAL,GAA6B,KAA7B;AACA,iBAAKC,6BAAL,GAAqC,IAAIxhB,KAAJ,EAArC;AACA,iBAAKwhB,6BAAL,GAAqCrZ,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKgY,qBAApB,CAAX,CAArC,CAZuC,CAYqD;;AAC5F,iBAAKmB,6BAAL,GAAqC,KAAKA,6BAAL,CAAmClZ,MAAnC,CAA0C,WAAC;AAAA,qBAAIyK,CAAC,CAACuN,mBAAF,IAAyBzZ,KAAK,CAACK,KAAN,CAAYoZ,mBAAzC;AAAA,aAA3C,CAArC;AACA,iBAAKF,sBAAL,GAA8B,IAAIpgB,KAAJ,EAA9B;AACA,iBAAKogB,sBAAL,GAA8BjY,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKmX,cAApB,CAAX,CAA9B,CAfuC,CAeuC;;AAC9E,iBAAKY,sBAAL,GAA8B,KAAKA,sBAAL,CAA4B9X,MAA5B,CAAmC,WAAC;AAAA,qBAAIyK,CAAC,CAACuN,mBAAF,IAAyB,OAAI,CAACkB,6BAAL,CAAmC,CAAnC,EAAsClB,mBAAnE;AAAA,aAApC,CAA9B;;AACA,gBAAI,KAAKF,sBAAL,CAA4B9f,MAA5B,IAAsC,CAA1C,EAA6C;AAC3C,mBAAK+e,kBAAL,GAA0B,IAA1B;AACD;AACJ;;;iBACD,sBAAaxY,KAAb,EAAkB;AAAA;;AAChB,gBAAI,KAAKmM,SAAL,IAAkB,cAAtB,EAAsC;AACpC,mBAAK0O,kBAAL,GAA0B,KAA1B;AACD,aAFD,MAGK;AACH,mBAAKA,kBAAL,GAA0B,IAA1B;AACD;;AACD,iBAAKC,gBAAL,GAAwB,KAAxB;AACA,iBAAKC,kBAAL,GAA0B,IAA1B;AACA,iBAAK1C,eAAL,GAAuB,EAAvB;AACA,iBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,iBAAK2e,qBAAL,GAA6B,KAA7B,CAXgB,CAYhB;AACA;;AACA,gBAAIM,KAAK,GAAG/D,0CAAM,CAAC,KAAKxK,QAAL,CAAc3Q,SAAf,CAAlB;AACA,gBAAImf,SAAS,GAAGD,KAAK,CAACphB,MAAN,CAAa,YAAb,CAAhB;;AACA,gBAAIqhB,SAAS,IAAI,IAAjB,EAAuB;AACrB,mBAAKtF,iBAAL,CAAuBuF,YAAvB,CAAoCD,SAApC,EAA+C,KAAK7D,QAApD,EAA8D,KAAKhB,MAAnE,EAA2E,KAAKwB,UAAhF,EAA4F/f,SAA5F,CAAsG,aAAG;AAAA,uBAAI,OAAI,CAACsjB,sBAAL,CAA4BpjB,GAA5B,CAAJ;AAAA,eAAzG,EACE,aAAG;AAAA,uBAAI,OAAI,CAACqjB,oBAAL,CAA0BrjB,GAA1B,CAAJ;AAAA,eADL;AAED;AACF;;;iBACD,gCAAuBA,GAAvB,EAA0B;AAAA;;AACxB,iBAAKsgB,eAAL,GAAuB7J,MAAM,CAACC,MAAP,CAAc,KAAK4J,eAAnB,EAAoCtgB,GAApC,CAAvB;;AACA,gBAAI,KAAKsgB,eAAL,CAAqB5e,MAArB,IAA+B,CAAnC,EAAsC;AACpC,mBAAKxC,aAAL,CAAmBqL,WAAnB,CAA+B,OAA/B,EAAwC,6BAA6B,GAA7B,GAAmC,KAAnC,GAA2C,GAA3C,aAAoD,KAAKrG,UAAzD,IAAwE,GAAxE,GAA8E,IAA9E,GAAqF,GAArF,aAA8Fgb,0CAAM,CAAC,KAAKxK,QAAL,CAAc3Q,SAAf,CAAN,CAAgClC,MAAhC,CAAuC,YAAvC,CAA9F,CAAxC;AACAuL,qBAAO,CAACC,GAAR,CAAY,aAAZ;AACA,mBAAKkT,YAAL,GAAoB,KAApB;AACD;;AACD,gBAAI,KAAKlB,QAAL,IAAiB,IAAjB,IAAyB,KAAKiB,eAAL,CAAqB5e,MAArB,GAA8B,CAA3D,EAA8D;AAC5D,kBAAI,KAAK0S,SAAL,IAAkB,cAAtB,EAAsC;AACpC,qBAAKuO,qBAAL,GAA6B,IAA7B;AACA,qBAAKpC,YAAL,GAAoB,IAApB;AACD,eAHD,MAIK;AACH,qBAAKA,YAAL,GAAoB,IAApB;AACD;;AACD,mBAAKliB,MAAL,CAAY0F,SAAZ,GAAwB,KAAKuc,eAAL,CAAqB,CAArB,EAAwBvc,SAAhD,CAR4D,CAS5D;AACA;AACA;AACD,aAZD,MAaK,IAAI,KAAKsb,QAAL,IAAiB,IAAjB,IAAyB,KAAKiB,eAAL,CAAqB5e,MAArB,GAA8B,CAA3D,EAA8D;AACjE,mBAAK4e,eAAL,GAAuB,KAAKA,eAAL,CAAqB5W,MAArB,CAA4B,WAAC;AAAA,uBAAI4Z,CAAC,CAACnjB,QAAF,IAAc,OAAI,CAACkf,QAAnB,IAA+BiE,CAAC,CAACrF,YAAF,IAAkB,OAAI,CAACqE,aAAtD,IAAuEgB,CAAC,CAAChjB,UAAF,IAAgB,OAAI,CAACuf,UAAhG;AAAA,eAA7B,CAAvB;AACD,aAFI,MAGA;AACH,mBAAKS,eAAL,GAAuB,EAAvB;AACD;AACF;;;iBACD,8BAAqBtgB,GAArB,EAAwB;AACtB,iBAAKd,aAAL,CAAmBuV,QAAnB,CAA4B,OAA5B,EAAqC,6BAA6B,GAA7B,GAAmC,KAAnC,GAA2C,GAA3C,aAAoD,KAAKvQ,UAAzD,IAAwE,GAAxE,GAA8E,IAA9E,GAAqF,GAArF,aAA8Fgb,0CAAM,CAAC,KAAKxK,QAAL,CAAc3Q,SAAf,CAAN,CAAgClC,MAAhC,CAAuC,YAAvC,CAA9F,CAArC;AACD;;;iBACD,2BAAkB0hB,IAAlB,EAAsB;AAAA;;AACpB,gBAAIC,IAAI,GAAG,IAAIlO,IAAJ,EAAX;AACA,gBAAImO,WAAW,GAAGvE,0CAAM,CAACsE,IAAD,EAAO,cAAP,CAAxB;;AACA,gBAAID,IAAI,CAACG,eAAL,GAAuBD,WAA3B,EAAwC;AACtC,kBAAIF,IAAI,CAACI,QAAL,IAAiB,IAArB,EAA2B;AACzB,qBAAKb,kBAAL,GAA0B,IAA1B;AACA,oBAAIc,WAAW,aAAML,IAAI,CAACvC,SAAX,gBAA0BuC,IAAI,CAAClC,OAA/B,CAAf;AACA,qBAAKniB,aAAL,CAAmBqL,WAAnB,CAA+B,mBAAmBqZ,WAAnB,GAAiC,qBAAhE,EAAuF,OAAvF;AACD,eAJD,MAKK;AACH,qBAAKd,kBAAL,GAA0B,KAA1B;AACA,qBAAKxf,KAAL,GAAa,KAAKhE,KAAL,CAAWM,iBAAX,IAAgCikB,SAAhC,GAA4C,KAAKrc,UAAL,CAAgBjE,SAA5D,GAAwE,KAAKjE,KAAL,CAAWM,iBAAhG;AACA,qBAAK4H,UAAL,CAAgBsc,iBAAhB,CAAkC,KAAKxgB,KAAvC,EACGxD,SADH,CACa,aAAG;AAAA,yBAAI,OAAI,CAACikB,cAAL,CAAoB/jB,GAApB,EAAyBujB,IAAzB,CAAJ;AAAA,iBADhB,EAEI,aAAG;AAAA,yBAAI,OAAI,CAACzX,KAAL,CAAW9L,GAAX,CAAJ;AAAA,iBAFP;AAGD;AACF,aAbD,MAcK;AACH,mBAAKd,aAAL,CAAmBqL,WAAnB,CAA+B,wCAA/B,EAAyE,OAAzE;AACD;AAEF;;;iBACD,wBAAevK,GAAf,EAAoBujB,IAApB,EAAwB;AACtB,iBAAKS,SAAL,GAAiBhkB,GAAjB;AACA,gBAAI4H,KAAK,GAAG,CAAZ;;AACA,iBAAK,IAAInG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKuiB,SAAL,CAAetiB,MAAnC,EAA2CD,CAAC,EAA5C,EAAgD;AAC9C,kBAAI,KAAKuiB,SAAL,CAAeviB,CAAf,EAAkByc,YAAlB,IAAkCqF,IAAI,CAACrF,YAA3C,EAAyD;AACvDtW,qBAAK;AACN;AACF;;AACD,gBAAIA,KAAK,IAAI,CAAb,EAAgB;AACd,mBAAK8M,QAAL,CAAc1Q,WAAd,aAA+Buf,IAAI,CAACvC,SAApC,gBAAmDuC,IAAI,CAAClC,OAAxD;AACA,mBAAKhjB,MAAL,CAAY2F,WAAZ,GAA0B,KAAK0Q,QAAL,CAAc1Q,WAAxC;AACA,mBAAK3F,MAAL,CAAY0F,SAAZ,GAAwB,KAAK2Q,QAAL,CAAc3Q,SAAtC;AACA,mBAAKgb,UAAL,CAAgBkF,kBAAhB,GAAqCV,IAAI,CAACU,kBAA1C;AACA,mBAAKlF,UAAL,CAAgBb,YAAhB,GAA+BqF,IAAI,CAACrF,YAApC;AACA,mBAAKyE,qBAAL,GAA6B,IAA7B;AACD,aAPD,MAOO;AACL,kBAAI,KAAKvO,SAAL,IAAkB,cAAtB,EAAsC;AACpC,qBAAK0O,kBAAL,GAA0B,KAA1B;AACD,eAFD,MAGK;AACH,qBAAKA,kBAAL,GAA0B,IAA1B;AACD;;AACD,mBAAK5jB,aAAL,CAAmBqL,WAAnB,CAA+B,oDAA/B,EAAqF,OAArF;AACD;AAEF;;;iBACD,uBAAc2Z,KAAd,EAAmB;AAAA;;AACjB,iBAAKxP,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,iBAAK2e,qBAAL,GAA6B,KAA7B;;AACA,gBAAI,KAAKI,gBAAL,IAAyB,IAA7B,EAAmC;AACjC,mBAAKoB,oBAAL,GAA4B,EAA5B;AACA,mBAAKpB,gBAAL,GAAwB,KAAxB;AACD,aAHD,MAGO;AACL,mBAAKnF,iBAAL,CAAuBwG,iCAAvB,CAAyDF,KAAzD,EAAgEpkB,SAAhE,CAA0E,aAAG;AAAA,uBAAI,OAAI,CAACukB,uBAAL,CAA6BrkB,GAA7B,CAAJ;AAAA,eAA7E,EACE,aAAG;AAAA,uBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,eADL;AAED;AACF;;;iBACD,iCAAwBA,GAAxB,EAA2B;AACzB,gBAAIA,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAAhC,EAAyC;AACvC,mBAAK+d,oBAAL,GAA4B1N,MAAM,CAACC,MAAP,CAAc,KAAKyN,oBAAnB,EAAyCnkB,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAA9C,CAA5B;;AACA,mBAAK,IAAIke,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKH,oBAAL,CAA0BziB,MAA9C,EAAsD4iB,CAAC,EAAvD,EAA2D;AACzD,oBAAId,IAAI,GAAGtE,0CAAM,CAAC,KAAKiF,oBAAL,CAA0BG,CAA1B,EAA6BhP,IAA9B,CAAN,CAA0CzT,MAA1C,CAAiD,YAAjD,CAAX;AACA,oBAAI0iB,WAAW,GAAG,KAAKJ,oBAAL,CAA0BG,CAA1B,EAA6BtD,SAA/C;AACA,oBAAIwD,eAAe,GAAGtF,0CAAM,CAACsE,IAAI,GAAG,GAAP,GAAae,WAAd,EAA2B,oBAA3B,CAA5B;AACA,oBAAIE,SAAS,GAAGvF,0CAAM,CAACsF,eAAD,EAAkB,cAAlB,CAAtB;AACA,oBAAIE,eAAe,GAAGD,SAAS,CAAC5iB,MAAV,CAAiB,oBAAjB,CAAtB;AACA,oBAAI8iB,sBAAsB,GAAGzF,0CAAM,CAACwF,eAAD,EAAkB,oBAAlB,CAAnC,CANyD,CAOzD;AACA;;AACA,qBAAKP,oBAAL,CAA0BG,CAA1B,EAA6BZ,eAA7B,GAA+CiB,sBAA/C;AACD,eAZsC,CAavC;;;AAEA,mBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKT,oBAAL,CAA0BziB,MAA1B,GAAmC,CAAvD,EAA0DkjB,CAAC,EAA3D,EAA+D;AAC7D,qBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKV,oBAAL,CAA0BziB,MAA1B,GAAmCkjB,CAAnC,GAAuC,CAA3D,EAA8DC,CAAC,EAA/D,EAAmE;AACjE,sBAAIC,OAAO,GAAG,KAAKX,oBAAL,CAA0BU,CAAC,GAAG,CAA9B,EAAiCnB,eAAjC,CAAiDqB,IAAjD,CAAuD,KAAKZ,oBAAL,CAA0BU,CAA1B,EAA6BnB,eAApF,EAAsG,SAAtG,CAAd;;AACA,sBAAIoB,OAAO,GAAG,CAAd,EAAiB;AACf,wBAAIE,IAAI,GAAG,KAAKb,oBAAL,CAA0BU,CAA1B,CAAX;AACA,yBAAKV,oBAAL,CAA0BU,CAA1B,IAA+B,KAAKV,oBAAL,CAA0BU,CAAC,GAAG,CAA9B,CAA/B;AACA,yBAAKV,oBAAL,CAA0BU,CAAC,GAAG,CAA9B,IAAmCG,IAAnC;AACD;AACF;AACF;;AAED,mBAAKjC,gBAAL,GAAwB,IAAxB,CA1BuC,CA2BvC;AACD,aA5BD,MA4BK;AACH,mBAAKrkB,YAAL,CAAkBuB,KAAlB,CAAwBD,GAAG,CAACqW,eAA5B;AACD;AAEF;;;iBACD,wBAAe5X,IAAf,EAAmB;AACjB,gBAAI,KAAK2V,SAAL,IAAkB,cAAtB,EAAsC;AACpC,mBAAK0O,kBAAL,GAA0B,KAA1B;AACA,mBAAKH,qBAAL,GAA6B,IAA7B;AACA,mBAAKrkB,UAAL,CAAgB2lB,kBAAhB,GAAqC,IAArC;AACA,mBAAK3lB,UAAL,CAAgB4f,YAAhB,GAA+Bzf,IAAI,CAACyf,YAApC;AACD,aALD,MAMK;AACH,mBAAK4E,kBAAL,GAA0B,IAA1B;AACA,mBAAKH,qBAAL,GAA6B,KAA7B;AACD;;AACD,iBAAKK,kBAAL,GAA0B,KAA1B;AACA,iBAAKiC,UAAL,GAAkB,IAAlB;AACA,iBAAKvQ,QAAL,CAAc3Q,SAAd,GAA0BtF,IAAI,CAAC6W,IAA/B;AACA,iBAAK6O,oBAAL,GAA4B,EAA5B;;AACA,gBAAI,KAAKpB,gBAAL,IAAyB,IAA7B,EAAmC;AACjC,mBAAKA,gBAAL,GAAwB,KAAxB;AACD;;AACD,iBAAKzC,eAAL,GAAuB,EAAvB;AACA,iBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B,CAnBiB,CAoBjB;;AACA,iBAAKsc,eAAL,CAAqB1b,IAArB,CAA0B;AACxBb,uBAAS,EAAEtF,IAAI,CAAC6W,IADQ;AAExB0L,uBAAS,EAAEviB,IAAI,CAACuiB,SAFQ;AAGxBK,qBAAO,EAAE5iB,IAAI,CAAC4iB,OAHU;AAIxBnD,0BAAY,EAAEzf,IAAI,CAACyf;AAJK,aAA1B;;AAMA,gBAAI,KAAK9J,SAAL,IAAkB,cAAtB,EAAsC;AACpC,mBAAK8Q,aAAL,CAAmBzmB,IAAI,CAACyf,YAAxB;AACD;;AAED,iBAAKkF,sBAAL,CAA4B,KAAK9C,eAAjC,EA/BiB,CAgCjB;AACD;;;iBACD,+BAAmB;AACjB,gBAAI,KAAKA,eAAL,CAAqB5e,MAArB,GAA8B,CAAlC,EAAqC;AACpC,kBAAG,KAAKge,mBAAR,EAA4B;AAC3B,oBAAIkE,WAAW,aAAM,KAAKtD,eAAL,CAAqB,CAArB,EAAwBU,SAA9B,gBAA6C,KAAKV,eAAL,CAAqB,CAArB,EAAwBe,OAArE,CAAf;AACA,qBAAKhjB,MAAL,CAAY2F,WAAZ,GAA0B4f,WAA1B;AACA,qBAAKhlB,MAAL,CAAY6H,QAAZ,CAAqB,CAAC,qBAAD,CAArB,EAA8C;AAAE2I,6BAAW,EAAE;AAAE/G,sBAAE,EAAE,KAAKwX,UAAX;AAAuBsF,uBAAG,EAAE,KAAK9F,QAAjC;AAA2C+F,uBAAG,EAAE,KAAKnH,YAArD;AAAmEtK,0BAAM,EAAE;AAA3E;AAAf,iBAA9C;AACA,eAJD,MAIK;AACJ,qBAAK/U,MAAL,CAAY6H,QAAZ,CAAqB,CAAC,qBAAD,CAArB,EAA8C;AAAE2I,6BAAW,EAAE;AAAE/G,sBAAE,EAAE,KAAKwX,UAAX;AAAuBsF,uBAAG,EAAE,KAAK9F,QAAjC;AAA2C+F,uBAAG,EAAE,KAAK/G,MAArD;AAA6D1K,0BAAM,EAAE;AAArE;AAAf,iBAA9C;AACA;AACD,aARD,MASK;AACH,mBAAKzU,aAAL,CAAmBqL,WAAnB,CAA+B,OAA/B,EAAwC,6BAA6B,GAA7B,GAAmC,KAAnC,GAA2C,GAA3C,aAAoD,KAAKrG,UAAzD,IAAwE,GAAxE,GAA8E,IAA9E,GAAqF,GAArF,aAA8Fgb,0CAAM,CAAC,KAAKxK,QAAL,CAAc3Q,SAAf,CAAN,CAAgClC,MAAhC,CAAuC,YAAvC,CAA9F,IAAuJ,4CAA/L;AACD;AAEF;;;iBACM,yBAAa;AAClB,iBAAKmd,eAAL,CAAqBf,YAArB,GAAoC,IAApC;AACA,iBAAKc,UAAL,CAAgB5e,QAAhB,GAA2B,IAA3B;AACA,iBAAK9B,MAAL,CAAY2F,WAAZ,GAA0B,EAA1B;AACA,iBAAK3F,MAAL,CAAY0F,SAAZ,GAAwB,IAAxB;AACA,iBAAK2Q,QAAL,CAAcuJ,YAAd,GAA6B,IAA7B;AACA,iBAAK5f,MAAL,CAAY4f,YAAZ,GAA2B,IAA3B;AACA,iBAAKrf,MAAL,CAAY6H,QAAZ,CAAqB,CAAC,eAAD,CAArB,EAAwC;AAAE2I,yBAAW,EAAE;AAAEgF,yBAAS,EAAE,KAAKA;AAAlB;AAAf,aAAxC;AACD;;;iBACM,+BAAmB;AACxBsF,kBAAM,CAACkC,QAAP,CAAgBC,MAAhB,GADwB,CAExB;AACD;;;iBACD,6BAAiB;AACf,iBAAK2D,iBAAL,CAAuB1R,GAAvB,CAA2B,YAA3B,EAAyC2J,QAAzC,CAAkD,KAAK6K,aAAvD;AACA,iBAAKX,gBAAL,CAAsB;AAACrZ,mBAAK,EAAE,KAAKga,aAAL,CAAmBrE;AAA3B,aAAtB;AACD;;;;;;;yBA/lBUa,yBAAsB3X,kUAgE4Cke,sEAhE5C,GAgE2Dle;AAAA;;;cAhEjF2X;AAAsBpe;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADjBnCqG;;AAEAA;;AAEAA;;AAGAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAsCA;AAAA,oCAAoB,2BAApB;AAA+C,aAA/C;;AAAtCA;;AAEFA;;AACAA;;AACEA;;AAAkBA;;AAAkBA;;AACpCA;;AACAA;;AAAwBA;;AAA8BA;;AAAsBA;;AAAkBA;;AAC9FA;;AACAA;;AAAsBA;;AAAkCA;;AAASA;;AACjEA;;AACAA;;AAAsBA;;AAA+BA;;AAAiBA;;AACtEA;;AACAA;;AAAsBA;;AAAgCA;;AAAgBA;;AACtEA;;AACAA;;AAAsBA;;AAA0BA;;AAAUA;;AAC1DA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAuBA;;AAA8BA;;AAAsBA;;AAC7EA;;AACAA;;AACEA;;AACEA;;AAA0CA;AAAA;AAAA,eAAyB,iBAAzB,EAAyB;AAAA,qBAAoB7E,0BAApB;AAA0C,aAAnE;;AACxC6E;;AACFA;;AACFA;;AACFA;;AACFA;;AACAA;;AAeAA;;AAaAA;;AAeAA;;AAgBAA;;AAIAA;;AACEA;;AAKFA;;AACAA;;AAGAA;;AAGFA;;AACFA;;AACAA;;AA2BFA;;;;AArJMA;;AAEGA;;AAAAA;;AAEYA;;AAAAA;;AAOMA;;AAAAA;;AAIDA;;AAAAA;;AACOA;;AAAAA;;AACmDA;;AAAAA;;AAGxDA;;AAAAA;;AAEAA;;AAAAA;;AAEAA;;AAAAA;;AAEAA;;AAAAA;;AAY0BA;;AAAAA;;AACZA;;AAAAA;;AAK9BA;;AAAAA;;AAeAA;;AAAAA;;AAaAA;;AAAAA;;AAeAA;;AAAAA;;AAgBAA;;AAAAA;;AAKsEA;;AAAAA;;AAMnEA;;AAAAA;;AAGYA;;AAAAA;;AAKQA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEvBvBA;;AAAoCA;;AAAOA;;;;;;;;AAiBzCA;;AAAsEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA8BA;;AAAeA;;;;;;AACnHA;;AAA4DA;;AAA6BA;;AAAsBA;;;;;;AAFjHA;;AACEA;;AACAA;;AACFA;;;;;;AAFWA;;AAAAA;;AACDA;;AAAAA;;;;;;AAdZA;;AACEA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;;;AAA+DA;;AACnEA;;AAAIA;;AAAoBA;;AACxBA;;AAAIA;;AAA8BA;;AAClCA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAoBA;;AACxBA;;AAAIA;;AAAyBA;;AAC7BA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAwBA;;AAC5BA;;AAIFA;;;;;;;;;AAfMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACCA;;AAAAA;;;;;;AA0BLA;;AAAoCA;;AAAOA;;;;;;;;AAiBzCA;;AAAsEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAA8BA;;AAAeA;;;;;;AACnHA;;AAA4DA;;AAA6BA;;AAAsBA;;;;;;AAFjHA;;AACEA;;AACAA;;AACFA;;;;;;AAFWA;;AAAAA;;AACDA;;AAAAA;;;;;;AAdZA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;;;AAA+DA;;AACnEA;;AAAIA;;AAAoBA;;AACxBA;;AAAIA;;AAA8BA;;AAClCA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAoBA;;AACxBA;;AAAIA;;AAAyBA;;AAC7BA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAwBA;;AAC5BA;;AAIFA;;;;;;;;;AAfMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACCA;;AAAAA;;;;;;;;;;;;;;;AA/JfA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AACAA;;AACEA;;AAEEA;;AAAyDA;;AAAUA;;AACnEA;;AACEA;;AAA+BA;AAAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AACFA;;AACAA;;AAA0DA;;AAAQA;;AAClEA;;AACEA;;AAA+BA;AAAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AACFA;;AACAA;;AAAQA;AAAAA;;AAAA;;AAAA;AAAA;;AAAmBA;;AAAMA;;AAGnCA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AAAsDA;AAAAA;;AAAA;;AAAA;AAAA,aAAwB,OAAxB,EAAwB;AAAAA;;AAAA;;AAAA;AAAA,WAAxB;;AAAtDA;;AAEAA;;AAAkCA;;AAA4BA;;AAAMA;;AACtEA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAAmCA;;AAAiBA;;AACpDA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAAgC,iBAAhC,EAAgC;AAAAA;;AAAA;;AAAA;AAAA,WAAhC;;AAKQA;;AAAiCA;;AAAGA;;AACpCA;;AAAiCA;;AAAYA;;AAC7CA;;AAAuCA;;AAAkBA;;AACjEA;;AACFA;;AACFA;;AACAA;;AACEA;;AAAmCA;;AAAWA;;AAC9CA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAA0B,iBAA1B,EAA0B;AAAAA;;AAAA;;AAAA;AAAA,WAA1B;;AAKQA;;AAAiCA;;AAAGA;;AACpCA;;AAAwBA;;AAAGA;;AAC3BA;;AAA8BA;;AAASA;;AAC/CA;;AACFA;;AACFA;;AACAA;;AACEA;;AAAmCA;;AAAgBA;;AACnDA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAA0B,iBAA1B,EAA0B;AAAAA;;AAAA;;AAAA;AAAA,WAA1B;;AAKQA;;AAAiCA;;AAAGA;;AAE5CA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAAyEA;AAAAA;;AAAA;;AAAA;AAAA;;AACvEA;;AAAKA;;AACPA;;AACAA;;AAA8CA;AAAAA;;AAAA;;AAAA,yCAAuB,aAAvB;AAAoC,WAApC;;AAE5CA;;AAAMA;;AACRA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAaA;;AAC7BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAWA;;AAC3BA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAeA;;AAC/BA;;AACFA;;AACFA;;AACAA;;AACEA;;;;;;AAiBFA;;AACFA;;AACFA;;AAEAA;;AAA4CA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0BA;;AAEtEA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAaA;;AAC7BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAOA;;AACvBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAWA;;AAC3BA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAeA;;AAC/BA;;AACFA;;AACFA;;AACAA;;AACEA;;;;AAiBFA;;AACFA;;AACFA;;AACFA;;;;;;AA9JuCA;;AAAAA;;AAIAA;;AAAAA;;AAUuBA;;AAAAA;;AAWtDA;;AAAAA;;AAeAA;;AAAAA;;AAeAA;;AAAAA;;AAqCmBA;;AAAAA;;AAIEA;;AAAAA;;AAsCFA;;AAAAA;;AAIEA;;AAAAA;;;;;;AAmEbA;;AAAsEA;;AAAuBA;;;;;;AAAnDA;;AAA4BA;;AAAAA;;;;;;;;AAwChFA;;AACEA;;AACEA;;AAA6BA;AAAAA;;AAAA;;AAAA;AAAA,aAA4B,QAA5B,EAA4B;AAAAA;;AAAA;;AAAA;AAAA,WAA5B;;AAA7BA;;AAEAA;;AACAA;;AAAmEA;;AAAaA;;AAClFA;;AACFA;;;;;;AALiCA;;AAAAA;;;;;;;;AAMjCA;;AACEA;;AACEA;;AAA6BA;AAAAA;;AAAA;;AAAA;AAAA,aAA4B,QAA5B,EAA4B;AAAAA;;AAAA;;AAAA;AAAA,WAA5B;;AAA7BA;;AAEAA;;AACAA;;AAAmEA;;AAAYA;;AACjFA;;AACFA;;;;;;AALiCA;;AAAAA;;;;;;AAqC7BA;;AACEA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;;;AAAsCA;;AAC1CA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAyBA;;AAC7BA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAqBA;;AAC3BA;;;;;;;;;AARMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;AAoBNA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;;;AAAsCA;;AAC1CA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAyBA;;AAC7BA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAqBA;;AAC3BA;;;;;;;AARMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;AApDdA;;AACEA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAIA;;AACpBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAYA;;AAC9BA;;AACFA;;AACAA;;AACEA;;;;;;AAUFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAIA;;AACpBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAYA;;AAC9BA;;AACFA;;AACAA;;AACEA;;;;AAUFA;;AACFA;;AACFA;;AACFA;;;;;;AAzC6BA;;AAAAA;;AA4BAA;;AAAAA;;;;;;AAgCrBA;;AACEA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;;;AAAsCA;;AAC1CA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAyBA;;AAC7BA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAqBA;;AACzBA;;AAAIA;;AAA8BA;;AAClCA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAqBA;;AAC3BA;;;;;;;;;AAVMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;AAsBNA;;AACEA;;AAAIA;;AAAOA;;AACXA;;AAAIA;;;;AAAsCA;;AAC1CA;;AAAIA;;AAAiBA;;AACrBA;;AAAIA;;AAAwBA;;AAC5BA;;AAAIA;;AAAyBA;;AAC7BA;;AAAIA;;AAAmBA;;AACvBA;;AAAIA;;AAAqBA;;AACzBA;;AAAIA;;AAA8BA;;AAClCA;;AAAIA;;AAAuBA;;AAC3BA;;AAAIA;;AAAqBA;;AAC3BA;;;;;;;AAVMA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;AACAA;;AAAAA;;;;;;AA5DdA;;AACEA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAIA;;AACpBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAYA;;AAC9BA;;AACFA;;AACAA;;AACEA;;;;;;AAYFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAgBA;;AAAEA;;AAClBA;;AAAgBA;;AAAIA;;AACpBA;;AAAgBA;;AAASA;;AACzBA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAgBA;;AAChCA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAYA;;AAC5BA;;AAAgBA;;AAAUA;;AAC1BA;;AAAgBA;;AAAcA;;AAC9BA;;AAAgBA;;AAAYA;;AAC9BA;;AACFA;;AACAA;;AACEA;;;;AAYFA;;AACFA;;AACFA;;AACFA;;;;;;AA/C6BA;;AAAAA;;AAgCAA;;AAAAA;;;;;;;;AAjO/BA;;AACEA;;AACEA;;AAA0BA;;AAC5BA;;AACAA;;AACEA;;AAEEA;;AAAyDA;;AAAUA;;AACnEA;;AACEA;;AAA+BA;AAAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AACFA;;AACAA;;AAA0DA;;AAAQA;;AAClEA;;AACEA;;AAA+BA;AAAAA;;AAAA;;AAAA;AAAA;;AAA/BA;;AACFA;;AACAA;;AAAQA;AAAAA;;AAAA;;AAAA;AAAA;;AAAmBA;;AAAMA;;AAGnCA;;AACFA;;AACAA;;AACEA;;AACEA;;AAA4CA;;AAAUA;;AACtDA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAAqB,iBAArB,EAAqB;AAAAA;;AAAA;;AAAA;AAAA,WAArB;;AAKQA;;AAAiCA;;AAAGA;;AAG5CA;;AACFA;;AACFA;;AACAA;;AACEA;;AAA4CA;;AAAgBA;;AAC5DA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAA2B,iBAA3B,EAA2B;AAAAA;;AAAA;;AAAA;AAAA,WAA3B;;AAKQA;;AAAiCA;;AAAGA;;AACpCA;;AACRA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAA4CA;;AAAiBA;;AAC7DA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAAgC,iBAAhC,EAAgC;AAAAA;;AAAA;;AAAA;AAAA,WAAhC;;AAKQA;;AAAiCA;;AAAGA;;AACpCA;;AAAiCA;;AAAYA;;AAC7CA;;AAAuCA;;AAAkBA;;AACjEA;;AACFA;;AACFA;;AACAA;;AACEA;;AAA4CA;;AAAWA;;AACvDA;;AACEA;;AACAA;AAAAA;;AAAA;;AAAA;AAAA,aAA0B,iBAA1B,EAA0B;AAAAA;;AAAA;;AAAA;AAAA,WAA1B;;AAKQA;;AAAiCA;;AAAGA;;AACpCA;;AAAwBA;;AAAGA;;AAC3BA;;AAA8BA;;AAASA;;AAE/CA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AAQAA;;AAQFA;;AACAA;;AAEEA;;AACEA;;AAAyEA;AAAAA;;AAAA;;AAAA;AAAA;;AACvEA;;AAAKA;;AACPA;;AACAA;;AAA8CA;AAAAA;;AAAA;;AAAA,yCAAuB,aAAvB;AAAoC,WAApC;;AAE5CA;;AAAMA;;AACRA;;AACFA;;AACFA;;AACFA;;AAEAA;;AA0DAA;;AAmEAA;;AAA4CA;AAAAA;;AAAA;;AAAA;AAAA;;AAA0BA;;AACxEA;;;;;;AA1OuCA;;AAAAA;;AAIAA;;AAAAA;;AAY/BA;;AAAAA;;AAeAA;;AAAAA;;AAMqCA;;AAAAA;;AAUrCA;;AAAAA;;AAeAA;;AAAAA;;AAeIA;;AAAAA;;AAQAA;;AAAAA;;AAuBJA;;AAAAA;;AA0DAA;;AAAAA;;;;;;;;UC/UGme;AAwBX,wCAAmBrkB,OAAnB,EAA2C+d,eAA3C,EAAoFzX,WAApF,EAA+H7I,YAA/H,EACSL,MADT,EACgCa,aADhC,EAC2EwI,MAD3E,EACqG6d,cADrG,EAC+IjnB,UAD/I,EACiLkJ,UADjL,EAC2M;AAAA;;AADxL;AAAwB;AAAyC;AAA2C;AACtH;AAAuB;AAA2C;AAA0B;AAA0C;AAAkC;AAtBzK,qCAA4B,KAA5B;AAEA,4BAAa;AAAEI,iBAAK,EAAE,EAAT;AAAanJ,gBAAI,EAAE;AAAnB,WAAb;AACA,wBAASkJ,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAT;AACA,0BAAW8F,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAX;AAEA,oCAA0B,EAA1B;AACA,8BAAoB,EAApB;AACA,8BAAoB,EAApB;AACA,2BAAqB,KAArB;AAEA,gCAA0B,KAA1B;AAEP,mBAAY,CAAZ;AACO,yBAAe,EAAf;AACA,+BAAqB,EAArB;AAEA,6BAAuB,IAAvB;AACA,0BAAuB,IAAIT,KAAJ,EAAvB;AAKN,eAAK9B,KAAL,GAAa,KAAKiI,WAAL,CAAiBhI,gBAA9B;AACA,eAAKimB,eAAL;AACA,eAAKxF,iBAAL;AACD;;;;iBACD,qBAAY/X,KAAZ,EAAiB;AACf,iBAAKC,MAAL,CAAYC,WAAZ,GAA0BF,KAA1B;AACD;;;iBAED,yBAAa;AAAA;;AACX,iBAAK+W,eAAL,CAAqByG,kBAArB,GAA0C3lB,SAA1C,CAAoD,UAACE,GAAD,EAAa;AAC/D,qBAAI,CAAC0lB,aAAL,GAAqB1lB,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAA1B;;AACA,mBAAK,IAAI3E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAACikB,aAAL,CAAmBhkB,MAAvC,EAA+CD,CAAC,EAAhD,EAAoD;AAClD,uBAAI,CAACikB,aAAL,GAAqB,OAAI,CAACA,aAAL,CAAmBhc,MAAnB,CAA0B,WAAC;AAAA,yBAAI4Z,CAAC,CAACnjB,QAAF,IAAc,OAAI,CAACb,KAAL,CAAWqJ,gBAA7B;AAAA,iBAA3B,CAArB,CADkD,CAEnD;AACA;;AACD,qBAAI,CAACP,UAAL,GAAkB;AAAER,qBAAK,EAAE,OAAI,CAAC8d,aAAL,CAAmBhkB,MAA5B;AAAoCjD,oBAAI,EAAE;AAA1C,eAAlB;;AACA,mBAAK,IAAIgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAAC2G,UAAL,CAAgBR,KAApC,EAA2CnG,CAAC,EAA5C,EAAgD;AAC9C,uBAAI,CAAC2G,UAAL,CAAgB3J,IAAhB,CAAqBmG,IAArB,CACE;AACEyD,oBAAE,EAAE5G,CAAC,GAAG,CADV;AAEEsC,2BAAS,EAAE4D,mCAAM,CAAC,OAAI,CAAC+d,aAAL,CAAmBjkB,CAAnB,EAAsBsC,SAAvB,CAAN,CAAwClC,MAAxC,CAA+C,YAA/C,CAFb;AAGE6B,6BAAW,EAAE,OAAI,CAACgiB,aAAL,CAAmBjkB,CAAnB,EAAsBiC,WAHrC;AAIEI,+BAAa,EAAE,OAAI,CAAC4hB,aAAL,CAAmBjkB,CAAnB,EAAsBqC,aAJvC;AAKED,yBAAO,EAAE,OAAI,CAAC6hB,aAAL,CAAmBjkB,CAAnB,EAAsBoC,OALjC;AAMEK,4BAAU,EAAE,OAAI,CAACwhB,aAAL,CAAmBjkB,CAAnB,EAAsByC,UANpC;AAOEP,qBAAG,EAAE,OAAI,CAAC+hB,aAAL,CAAmBjkB,CAAnB,EAAsBkC,GAP7B;AAQEK,6BAAW,EAAE,OAAI,CAAC0hB,aAAL,CAAmBjkB,CAAnB,EAAsBuC,WARrC;AASE1D,4BAAU,EAAE,OAAI,CAAColB,aAAL,CAAmBjkB,CAAnB,EAAsBnB,UATpC;AAUE2d,8BAAY,EAAE,OAAI,CAACyH,aAAL,CAAmBjkB,CAAnB,EAAsBwc,YAVtC;AAWE9d,0BAAQ,EAAE,OAAI,CAACulB,aAAL,CAAmBjkB,CAAnB,EAAsBtB,QAXlC;AAYEoD,2BAAS,EAAE,OAAI,CAACmiB,aAAL,CAAmBjkB,CAAnB,EAAsB8B,SAZnC;AAaEC,yBAAO,EAAE,OAAI,CAACkiB,aAAL,CAAmBjkB,CAAnB,EAAsB+B,OAbjC;AAcE0a,8BAAY,EAAE,OAAI,CAACwH,aAAL,CAAmBjkB,CAAnB,EAAsByc,YAdtC;AAeEta,wBAAM,EAAE,OAAI,CAAC8hB,aAAL,CAAmBjkB,CAAnB,EAAsBmC,MAfhC;AAgBEK,gCAAc,EAAE,OAAI,CAACyhB,aAAL,CAAmBjkB,CAAnB,EAAsBwC,cAhBxC;AAiBEiF,iCAAe,EAAE,OAAI,CAACwc,aAAL,CAAmBjkB,CAAnB,EAAsByH,eAjBzC;AAkBEkL,2BAAS,EAAE,OAAI,CAACsR,aAAL,CAAmBjkB,CAAnB,EAAsBkkB,iBAlBnC;AAmBExc,mCAAiB,EAAE,OAAI,CAACuc,aAAL,CAAmBjkB,CAAnB,EAAsB0H;AAnB3C,iBADF;AAuBD;;AACD,qBAAI,CAACyc,YAAL;AACD,aAjCD,EAkCA,eAAK,EAAG;AACN,qBAAI,CAAClnB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB;AACD,aApCD;AAqCD;;;iBAED,2BAAe;AACb,iBAAK4lB,mBAAL,GAA2B,IAA3B;AACA,iBAAKC,MAAL,GAAcne,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAd;AACA,iBAAKkkB,QAAL,GAAgBpe,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAhB;AACA,iBAAKkK,kBAAL,GAA0B,EAA1B;AACA,iBAAKia,YAAL,GAAoB,EAApB;AACA,iBAAKC,YAAL,GAAoB,EAApB;AACA,iBAAKC,CAAL,GAAS,CAAT;AACA,iBAAKC,aAAL;AACD;;;iBACD,wBAAY;AACV,iBAAKC,qBAAL,GAA6B,IAAIhlB,KAAJ,EAA7B;AACA,iBAAKglB,qBAAL,GAA6B7c,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrB,UAAL,CAAgB3J,IAA/B,CAAX,CAA7B;AACA,iBAAK4nB,MAAL;AACD;;;iBACD,kBAAM;AACJ,gBAAIC,YAAY,GAAG3e,mCAAM,CAAC,KAAKme,MAAN,EAAc,YAAd,CAAzB;AACA,gBAAIS,cAAc,GAAG5e,mCAAM,CAAC,KAAKoe,QAAN,EAAgB,YAAhB,CAA3B;AACA,gBAAIhB,IAAI,GAAGpd,mCAAM,CAAC2e,YAAD,CAAN,CAAqBvB,IAArB,CAA0BwB,cAA1B,EAA0C,MAA1C,CAAX;;AACA,gBAAIxB,IAAI,IAAI,CAAZ,EAAe;AACb,mBAAKqB,qBAAL,GAA6B,IAAIhlB,KAAJ,EAA7B;AACA,mBAAKglB,qBAAL,GAA6B7c,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrB,UAAL,CAAgB3J,IAA/B,CAAX,CAA7B;;AACA,mBAAK,IAAIgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK2kB,qBAAL,CAA2B1kB,MAA/C,EAAuDD,CAAC,EAAxD,EAA4D;AAC1D,qBAAK2kB,qBAAL,CAA2B3kB,CAA3B,EAA8BsC,SAA9B,GAA0C4D,mCAAM,CAAC,KAAKye,qBAAL,CAA2B3kB,CAA3B,EAA8BsC,SAA/B,EAA0C,YAA1C,CAAhD,CAD0D,CAE1D;AACD;;AACD,mBAAKqiB,qBAAL,GAA6B,KAAKA,qBAAL,CAA2B1c,MAA3B,CAAkC,WAAC;AAAA,uBAAIZ,CAAC,CAAC/E,SAAF,IAAeuiB,YAAf,IAA+Bxd,CAAC,CAAC/E,SAAF,IAAewiB,cAAlD;AAAA,eAAnC,CAA7B;AACA,mBAAKC,UAAL,GAAkB,KAAKJ,qBAAvB;AACD,aATD,MASO;AACL,mBAAKlnB,aAAL,CAAmBqL,WAAnB,CAA+B,OAA/B,EAAwC,gCAAxC;AACD;AACF;;;iBAGD,uBAAc9L,IAAd,EAAkB;AAAA;;AAChB,iBAAK+I,UAAL,CAAgBxB,YAAhB,CAA6BvH,IAAI,CAAC8E,SAAlC,EAA6C9E,IAAI,CAAC+E,OAAlD,EAA4D1D,SAA5D,CAAsE,aAAG;AAAA,qBAAI,OAAI,CAACmG,cAAL,CAAoBjG,GAApB,CAAJ;AAAA,aAAzE,EACA,aAAG;AAAA,qBAAI,OAAI,CAACkG,mBAAL,CAAyBlG,GAAzB,CAAJ;AAAA,aADH;AAED;;;iBAED,wBAAevB,IAAf,EAAmB;AACjB,gBAAGA,IAAI,IAAIA,IAAI,CAAC0H,SAAb,IAA0B1H,IAAI,CAAC2H,OAAlC,EAA0C;AACxC,kBAAM8F,SAAS,GAAG,KAAKxE,MAAL,CAAYyE,IAAZ,CAAiBsa,iGAAjB,EAChB;AAAEhoB,oBAAI,EAAE;AACN8E,2BAAS,EAAE9E,IAAI,CAAC2H,OAAL,CAAa7C,SADlB;AAENG,6BAAW,EAAEjF,IAAI,CAAC2H,OAAL,CAAa1C,WAFpB;AAGNC,qBAAG,EAAElF,IAAI,CAAC2H,OAAL,CAAazC,GAHZ;AAINC,wBAAM,EAAEnF,IAAI,CAAC2H,OAAL,CAAaxC,MAJf;AAKNC,yBAAO,EAAEpF,IAAI,CAAC2H,OAAL,CAAavC,OALhB;AAMNC,+BAAa,EAAErF,IAAI,CAAC2H,OAAL,CAAatC,aANtB;AAONC,2BAAS,EAAEtF,IAAI,CAAC2H,OAAL,CAAarC,SAPlB;AAQNC,6BAAW,EAAEvF,IAAI,CAAC2H,OAAL,CAAapC,WARpB;AASNC,gCAAc,EAAExF,IAAI,CAAC2H,OAAL,CAAanC,cATvB;AAUNC,4BAAU,EAAEzF,IAAI,CAAC2H,OAAL,CAAalC,UAVnB;AAWNmI,6BAAW,EAAE5N,IAAI,CAAC2H,OAAL,CAAaiG,WAXpB;AAYNC,wBAAM,EAAE7N,IAAI,CAAC2H,OAAL,CAAakG,MAZf;AAaNC,wBAAM,EAAE9N,IAAI,CAAC2H,OAAL,CAAamG,MAbf;AAcNC,6BAAW,EAAE/N,IAAI,CAAC2H,OAAL,CAAaoG,WAdpB;AAeNC,qBAAG,EAAEhO,IAAI,CAAC2H,OAAL,CAAaqG,GAfZ;AAgBNC,oBAAE,EAAEjO,IAAI,CAAC2H,OAAL,CAAasG,EAhBX;AAiBNC,0BAAQ,EAAElO,IAAI,CAAC2H,OAAL,CAAauG,QAjBjB;AAkBNC,2BAAS,EAAEnO,IAAI,CAAC2H,OAAL,CAAawG,SAlBlB;AAmBNzI,+BAAa,EAAE1F,IAAI,CAAC2H,OAAL,CAAajC,aAnBtB;AAoBNC,qBAAG,EAAE3F,IAAI,CAAC2H,OAAL,CAAahC,GApBZ;AAqBN4E,4BAAU,EAAEvK,IAAI,CAAC2H,OAAL,CAAa4C,UArBnB;AAsBND,iCAAe,EAAEtK,IAAI,CAAC2H,OAAL,CAAa2C,eAtBxB;AAuBNrC,yBAAO,EAAEjI,IAAI,CAAC2H,OAAL,CAAaM,OAvBhB;AAwBNmG,iCAAe,EAAEpO,IAAI,CAAC2H,OAAL,CAAayG,eAxBxB;AAyBNC,+BAAa,EAAErO,IAAI,CAAC2H,OAAL,CAAa0G,aAzBtB;AA0BNC,gCAAc,EAAEtO,IAAI,CAAC2H,OAAL,CAAa2G,cA1BvB;AA2BNrI,yBAAO,EAAEjG,IAAI,CAAC2H,OAAL,CAAa1B,OA3BhB;AA4BNC,gCAAc,EAAElG,IAAI,CAAC2H,OAAL,CAAazB,cA5BvB;AA6BNnB,yBAAO,EAAE/E,IAAI,CAAC2H,OAAL,CAAa4G;AA7BhB,iBAAR;AA8BG1H,qBAAK,EAAE,QA9BV;AA8BoBD,sBAAM,EAAE;AA9B5B,eADgB,CAAlB;AAiCE6G,uBAAS,CAACe,YAAV,GAAyB,IAAzB;AACAf,uBAAS,CAACgB,WAAV,GAAwBpN,SAAxB,CAAkC,gBAAM,EAAG;AACzCoM,yBAAS,CAACiB,KAAV;AACAC,uBAAO,CAACC,GAAR,0BAA8BC,MAA9B,GAFyC,CAGzC;AACD,eAJD;AAKH,aAxCD,MAyCI;AACF,mBAAKpO,aAAL,CAAmB6C,SAAnB,CAA6B,EAA7B,EAAiC,4BAAjC;AACD;AACF;;;iBAED,6BAAoB/B,GAApB,EAAuB,CAEtB;;;iBAED,yBAAa;AACX,gBAAI;AACF,mBAAK0mB,SAAL,GAAiB,KAAjB;AACA,mBAAKC,YAAL,GAAoB,IAApB;AACA,mBAAKC,WAAL,GAAmB,KAAnB;AACA,mBAAKrB,cAAL,CAAoBsB,aAApB;AACA,mBAAKH,SAAL,GAAiB,IAAjB;AACA,mBAAKC,YAAL,GAAoB7hB,QAAQ,CAACC,cAAT,CAAwB,WAAxB,EAAqC+hB,SAAzD;AACA,mBAAKC,KAAL;AACD,aARD,CAQE,OAAOC,EAAP,EAAW;AACX,mBAAKC,mBAAL,CAAyBD,EAAzB;AACD;AACF;;;iBACM,6BAAoBE,SAApB,EAA6B;AAClC,gBAAIA,SAAJ,EAAe;AACb,kBAAIF,EAAE,GAAUE,SAAhB;AACA,mBAAKhoB,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,CAAC,8BAAD,CAAtC;AACAqL,qBAAO,CAACC,GAAR,CAAY,wBAAwB2Z,EAAE,CAAC9c,OAAvC;AACAkD,qBAAO,CAACC,GAAR,CAAY,wBAAwB2Z,EAAE,CAACG,KAAvC;AACD;AACF;;;iBAED,iBAAK;AACH,gBAAIC,QAAQ,GAAG,KAAKT,YAApB;AACA,gBAAIU,MAAM,GAAGviB,QAAQ,CAACwiB,aAAT,CAAuB,QAAvB,CAAb;AACAxiB,oBAAQ,CAAC4G,IAAT,CAAc6b,WAAd,CAA0BF,MAA1B;;AAEA,gBAAG,KAAKxB,mBAAL,IAA4B,IAA/B,EAAoC;AAClC,mBAAK2B,YAAL,GAAoB,mBAApB;AACD,aAFD,MAGI;AACF,mBAAKA,YAAL,GAAoB,mBAApB;AACD;;AACD,gBAAIC,eAAe,GAAG,cAAtB,CAXG,CAYH;;AACAA,2BAAe,IAAI,sGAAnB;AACAA,2BAAe,IAAI,wCAAwC,KAAKD,YAA7C,GAA4D,uBAA/E;AACAC,2BAAe,IAAI,mCAAmCL,QAAnC,GAA8C,gBAAjE;AACA,gBAAIM,WAAW,GAAG,KAAK,yBAAL,GAAiC,eAAjC,GAAmD,oBAAnD,GAA0E,GAA1E,GAAgF,UAAlG;AACAA,uBAAW,IAAID,eAAf;AACAJ,kBAAM,CAACM,aAAP,CAAqB7iB,QAArB,CAA8BqH,IAA9B;AACAkb,kBAAM,CAACM,aAAP,CAAqB7iB,QAArB,CAA8B8iB,KAA9B,CAAoCF,WAApC;AACAL,kBAAM,CAACM,aAAP,CAAqB7iB,QAArB,CAA8BqI,KAA9B;AAEA0a,sBAAU,CAAC;AACT/iB,sBAAQ,CAAC4G,IAAT,CAAcoc,WAAd,CAA0BT,MAA1B;AACD,aAFS,EAEP,GAFO,CAAV,CAtBG,CA0BH;;AACA,iBAAKT,WAAL,GAAmB,IAAnB;AACD;;;iBAED,uBAAcmB,SAAd,EAAuB;AACrB,gBAAIC,aAAJ;AACA,gBAAIC,OAAJ;AACA,gBAAIC,QAAJ;AACA,gBAAIC,eAAJ;;AACA,gBAAIJ,SAAJ,EAAe;AACb,kBAAG,KAAKlC,mBAAL,IAA4B,IAA/B,EAAoC;AAClCmC,6BAAa,GAAG,mBAAhB;AACAC,uBAAO,GAAG,mBAAV;AACAC,wBAAQ,GAAG,mBAAX;AACAC,+BAAe,GAAG,KAAKpC,QAAL,GAAe,MAAf,GAAuB,KAAKD,MAA9C;AACD,eALD,MAMI;AACFkC,6BAAa,GAAG,mBAAhB;AACAC,uBAAO,GAAG,mBAAV;AACAC,wBAAQ,GAAG,mBAAX;AACAC,+BAAe,GAAG,KAAKpC,QAAL,GAAe,MAAf,GAAuB,KAAKD,MAA9C;AACD;;AAED,mBAAKsC,uBAAL,CAA6BL,SAA7B,EAAwCC,aAAxC,EAAuDC,OAAvD,EAAgEC,QAAhE,EAAyEC,eAAzE;AACD;AACF;;;iBACM,iCAAwBE,KAAxB,EAAoCC,SAApC,EAAuDC,YAAvD,EAA6EC,QAA7E,EAA+FL,eAA/F,EAAqH;AAC1H,gBAAI;AACF,kBAAIE,KAAJ,EAAW;AACT,qBAAKzB,WAAL,GAAmB,KAAnB;AACA,qBAAKrB,cAAL,CAAoBsB,aAApB;AACA,oBAAImB,aAAa,GAAIM,SAAS,CAAC5mB,MAAV,GAAmB,CAApB,GAAyB4mB,SAAzB,GAAqC,OAAzD;AACA,oBAAIG,SAAS,GAAG,qBAAqB9gB,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAArB,GAAqD,YAArE;AACA,oBAAI6mB,SAAS,GAAG,oBAAoBP,eAApB,GAAsC,YAAtD;AACA,oBAAIF,OAAO,GAAG,sCAAsCM,YAAtC,GAAqD,OAAnE;AACA,oBAAIL,QAAQ,GAAIM,QAAQ,CAAC9mB,MAAT,GAAkB,CAAnB,GAAwB8mB,QAAxB,GAAmC,qBAAlD;AACAN,wBAAQ,GAAGA,QAAQ,GAAG,GAAX,GAAiBvgB,mCAAM,GAAG9F,MAAT,CAAgB,eAAhB,CAAjB,GAAoD,MAA/D;;AAEA,oBAAI8mB,GAAG,GAAG,uCAAV;AAAA,oBACI7nB,QAAQ,GAAG,iiBADf;AAAA,oBAEI8nB,MAAM,GAAG,SAATA,MAAS,CAAUzU,CAAV,EAAW;AAAI,yBAAOuF,MAAM,CAACmP,IAAP,CAAYC,kBAAkB,CAACC,kBAAkB,CAAC5U,CAAD,CAAnB,CAA9B,CAAP;AAA+D,iBAF3F;AAAA,oBAGItS,MAAM,GAAG,SAATA,MAAS,CAAUsS,CAAV,EAAamQ,CAAb,EAAc;AAAI,yBAAOnQ,CAAC,CAAC6U,OAAF,CAAU,UAAV,EAAsB,UAAUC,CAAV,EAAa/C,CAAb,EAAc;AAAI,2BAAO5B,CAAC,CAAC4B,CAAD,CAAR;AAAc,mBAAtD,CAAP;AAAgE,iBAH/F;;AAIA,oBAAI,CAACmC,KAAK,CAACa,QAAX,EAAqBb,KAAK,GAAGvjB,QAAQ,CAACC,cAAT,CAAwBsjB,KAAxB,CAAR;AACrB,oBAAI/lB,GAAG,GAAG;AAAE6mB,2BAAS,EAAEnB,aAAb;AAA4BK,uBAAK,EAAEA,KAAK,CAACvB,SAAzC;AAAoD2B,2BAAS,EAAEA,SAA/D;AAAyEC,2BAAS,EAACA,SAAnF;AAA8FT,yBAAO,EAAEA;AAAvG,iBAAV,CAfS,CAgBT;;AACA,oBAAImB,IAAI,GAAGtkB,QAAQ,CAACwiB,aAAT,CAAuB,GAAvB,CAAX;AACA8B,oBAAI,CAACC,IAAL,GAAYV,GAAG,GAAGC,MAAM,CAAC/mB,MAAM,CAACf,QAAD,EAAWwB,GAAX,CAAP,CAAxB;AACA8mB,oBAAI,CAACE,YAAL,CAAkB,UAAlB,EAA8BpB,QAA9B;AACApjB,wBAAQ,CAAC4G,IAAT,CAAc6b,WAAd,CAA0B6B,IAA1B;AACAA,oBAAI,CAACG,KAAL;AACAzkB,wBAAQ,CAAC4G,IAAT,CAAcoc,WAAd,CAA0BsB,IAA1B;AACA,qBAAKxC,WAAL,GAAmB,IAAnB;AACD;AACF,aA1BD,CA0BE,OAAOI,EAAP,EAAW;AACX5Z,qBAAO,CAACC,GAAR,CAAY2Z,EAAZ;AACD;AACF;;;iBAED,2BAAe;AACb,iBAAKnB,mBAAL,GAA2B,KAA3B;AACA,iBAAKC,MAAL,GAAcne,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAd;AACA,iBAAKkkB,QAAL,GAAgBpe,mCAAM,GAAG9F,MAAT,CAAgB,YAAhB,CAAhB;AACA,iBAAK2nB,OAAL,GAAe,EAAf;AACA,iBAAKlH,aAAL,GAAqB,EAArB;AACA,iBAAKvW,kBAAL,GAA0B,EAA1B;AACA,iBAAKia,YAAL,GAAoB,EAApB;AACA,iBAAKE,CAAL,GAAS,CAAT;AACA,iBAAKC,aAAL;AACD;;;iBAED,wBAAY;AACV,iBAAKsD,cAAL,GAAsB,IAAtB;AACD;;;iBACD,uBAAW;AACT,iBAAKA,cAAL,GAAsB,KAAtB;AACD;;;iBAED,6BAAiB;AAAA;;AACf,iBAAKnrB,UAAL,CAAgBsjB,iBAAhB,GAAoC9hB,SAApC,CAA8C,aAAG,EAAG;AAClD,qBAAI,CAAC+hB,QAAL,GAAgB7hB,GAAhB;AACD,aAFD,EAGE,eAAK,EAAG;AACN,qBAAI,CAACtB,YAAL,CAAkBuB,KAAlB,CAAwBA,KAAxB,EADM,CAEN;;AACD,aANH;AAOD;;;iBAED,oBAAWgI,KAAX,EAAgC;AAAA;;AAC9B,iBAAKme,qBAAL,GAA6B,KAAKI,UAAlC,CAD8B,CAG9B;;AACA,gBAAG,KAAKgD,OAAL,IAAgB,EAAhB,IAAsB,KAAKA,OAAL,IAAc,KAAvC,EACA;AACE,mBAAI,IAAI/nB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAK2kB,qBAAL,CAA2B1kB,MAAzC,EAAgDD,CAAC,EAAjD,EACA,KAAK2kB,qBAAL,GAA2B,KAAKA,qBAAL,CAA2B1c,MAA3B,CAAkC,WAAC;AAAA,uBAAEsC,CAAC,CAAC0d,QAAF,IAAY,OAAI,CAACF,OAAnB;AAAA,eAAnC,CAA3B;AACD,aAR6B,CAU9B;;;AACA,gBAAG,KAAKlH,aAAL,IAAsB,EAAtB,IAA4B,KAAKA,aAAL,IAAoB,KAAnD,EACA;AACE,mBAAI,IAAI7gB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAK2kB,qBAAL,CAA2B1kB,MAAzC,EAAgDD,CAAC,EAAjD,EACA,KAAK2kB,qBAAL,GAA2B,KAAKA,qBAAL,CAA2B1c,MAA3B,CAAkC,WAAC;AAAA,uBAAEsC,CAAC,CAACiS,YAAF,IAAgB,OAAI,CAACqE,aAAvB;AAAA,eAAnC,CAA3B;AACD,aAf6B,CAiB9B;;;AACA,gBAAG,KAAKvW,kBAAL,IAA2B,EAA3B,IAAiC,KAAKA,kBAAL,IAAyB,KAA7D,EACA;AACE,mBAAI,IAAItK,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAK2kB,qBAAL,CAA2B1kB,MAAzC,EAAgDD,CAAC,EAAjD,EACA,KAAK2kB,qBAAL,GAA2B,KAAKA,qBAAL,CAA2B1c,MAA3B,CAAkC,WAAC;AAAA,uBAAEsC,CAAC,CAAC9C,eAAF,IAAmB,OAAI,CAAC6C,kBAA1B;AAAA,eAAnC,CAA3B;AACD,aAtB6B,CAwB9B;;;AACA,gBAAG,KAAKia,YAAL,IAAqB,EAArB,IAA2B,KAAKA,YAAL,IAAmB,KAAjD,EACA;AACE,mBAAI,IAAIvkB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAK2kB,qBAAL,CAA2B1kB,MAAzC,EAAgDD,CAAC,EAAjD,EACA,KAAK2kB,qBAAL,GAA2B,KAAKA,qBAAL,CAA2B1c,MAA3B,CAAkC,WAAC;AAAA,uBAAEsC,CAAC,CAACoI,SAAF,IAAa,OAAI,CAAC4R,YAApB;AAAA,eAAnC,CAA3B;AACD,aA7B6B,CA+B9B;;;AACA,gBAAG,KAAKC,YAAL,IAAqB,EAArB,IAA2B,KAAKA,YAAL,IAAmB,KAAjD,EACA;AACE,mBAAI,IAAIxkB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAK2kB,qBAAL,CAA2B1kB,MAAzC,EAAgDD,CAAC,EAAjD,EACA,KAAK2kB,qBAAL,GAA2B,KAAKA,qBAAL,CAA2B1c,MAA3B,CAAkC,WAAC;AAAA,uBAAEsC,CAAC,CAACe,cAAF,IAAkB,OAAI,CAACkZ,YAAzB;AAAA,eAAnC,CAA3B;AACD;;AAED,gBAAG,KAAKC,CAAL,IAAU,CAAb,EAAe;AACb,mBAAKA,CAAL,GAAS,CAAT;AACD;AACF;;;iBAED,wBAAY;AACV,gBAAG,KAAKA,CAAL,IAAU,CAAb,EAAe;AACb,mBAAKA,CAAL,GAAS,CAAT;AACD;AACF;;;;;;;yBA1VUZ,wBAAqBne;AAAA;;;cAArBme;AAAqB5kB;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADnBlCqG;;AACAA;;AACEA;;AACEA;;AAAKA;;AAAMA;;AAAYA;;AACzBA;;AACAA;;AAAQA;AAAA,qBAAS7E,qBAAT;AAA0B,aAA1B;;AACN6E;;AAAiBA;;AACnBA;;AAAQA;AAAA,qBAAS7E,qBAAT;AAA0B,aAA1B;;AACN6E;;AAAiBA;;AACrBA;;AAEEA;;AAwKAA;;AAsPAA;;;;AAvaQA;;AAAAA;;AAG4BA;;AAAAA;;AAEAA;;AAAAA;;AAI9BA;;AAAAA;;AAwKAA;;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEnII3G;;AAAgFA;;AAAqBA;;;;;;AAA/CA;;AAA0BA;;AAAAA;;;;;;AAQhFA;;AAAmFA;;AAAyBA;;;;;;AAAvDA;;AAA8BA;;AAAAA;;;;;;AAQnFA;;AAAwFA;;AAA6BA;;;;;;AAA/DA;;AAAkCA;;AAAAA;;;;;;AAgB1FA;;AAAwHA;;AAAqBA;;;;;;AAA/EA;;;;;;AAC9DA;;AAA0HA;;AAAgBA;;;;;;AAA5EA;;;;;;AAIhEA;;AACEA;;AACFA;;;;;;;;AAYJA;;AAAqEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAsHA;;AAA6BA;;AACtKA;;;;;;AADsKA;;AAAAA;;;;;;;;AAIpNA;;AAA4HA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAC1HA;;AAAmBA;;;;;;AAAnBA;;AAAAA;;;;;;;;AACFA;;AAAsGA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AACpGA;;AAAmBA;;;;;;AAAnBA;;AAAAA;;;;;;;;AACFA;;AAAqEA;AAAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAkIA;;AACvMA;;;;;;AADuMA;;AAAAA;;;;;;AALzMA;;AACEA;;AAEAA;;AAEAA;;AAEFA;;;;;;AANgCA;;AAAAA;;AAErBA;;AAAAA;;AAEAA;;AAAAA;;;;;;AANbA;;AACEA;;AAQFA;;;;;;;;;;AARQA;;AAAAA;;;;;;AALZA;;AACEA;;AACEA;;AAC2DA;;AAC3DA;;AAUFA;;AACFA;;;;;;AAbaA;;AAAAA;;AAEaA;;AAAAA;;;;;;AAgBtBA;;AAA8BA;;AAAgDA;;;;;;AAAhDA;;AAAAA;;;;;;AAC9BA;;AAA+BA;;;;AAAuDA;;;;;;AAAvDA;;AAAAA;;;;;;;;AAFjCA;;AACEA;;AACAA;;AACAA;;AAAoEA;AAAAA;;AAAA;;AAAA;AAAA;;AAApEA;;AACFA;;;;;;AAHQA;;AAAAA;;AACAA;;AAAAA;;;;;;;;;;UC3FGmpB;AAgCX;AACA,sCAAmBtrB,MAAnB,EAA0CC,UAA1C,EAA4EC,UAA5E,EAAwIE,IAAxI,EAA0JC,YAA1J,EAA6LC,KAA7L,EACSC,MADT,EACgCgf,iBADhC,EAC6E/e,UAD7E,EAC6GC,qBAD7G,EAESC,IAFT,EAEmCC,QAFnC,EAE+DC,WAF/D,EAEiGC,aAFjG,EAE4I8f,eAF5I,EAE4K;AAAA;;AAAA;;AAFzJ;AAAuB;AAAkC;AAA4D;AAAkB;AAAmC;AACpL;AAAuB;AAA6C;AAAgC;AACpG;AAA0B;AAA4B;AAAkC;AAA2C;AAlCrI,0BAAkB,IAAI4K,mEAAJ,EAAlB;AACA,iCAA8B,IAAIxoB,KAAJ,EAA9B;AACA,mCAA6B,KAA7B;AACA,2BAAYQ,mCAAM,GAAGC,MAAT,CAAgB,YAAhB,CAAZ;AACA,oCAA8B,KAA9B;AACA,kCAA4B,KAA5B;AACP,sCAAmC,IAAIT,KAAJ,EAAnC;AAEO,oCAAoC,EAApC;AAEA,gCAA6B,IAAIA,KAAJ,EAA7B;AAEA,wCAAqC,IAAIA,KAAJ,EAArC;AACA,uBAAgB,CAAhB;AAEP,+CAA4C,IAAIA,KAAJ,EAA5C;AACA,wCAAqC,IAAIA,KAAJ,EAArC;AACA,uCAAoC,IAAIA,KAAJ,EAApC;AACA,gCAAwC,IAAIA,KAAJ,EAAxC;AACO,+BAAqB,EAArB;AAGA,2BAAiB,EAAjB;AACP,wCAAqC,EAArC;AACA,mCAA6B,KAA7B;AAEA,uCAAiC,IAAjC;AAGA,oCAA0B,CAA1B,CAK4K,CAya5K;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,0CAA+D,UAACyoB,QAAD,EAAgBC,IAAhB,EAAwB;AACrF;AACA,gBAAMtG,IAAI,GAAGqG,QAAQ,CAAChoB,MAAT,CAAgB,YAAhB,CAAb;;AACA,iBAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAAC+f,sBAAL,CAA4B9f,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;AAC3D,qBAAI,CAACsoB,aAAL,GAAqB,OAAI,CAACvI,sBAAL,CAA4B/f,CAA5B,EAA+B6T,IAApD;AACA,kBAAI0U,OAAO,GAAGpoB,mCAAM,CAAC,OAAI,CAACmoB,aAAN,CAAN,CAA2BloB,MAA3B,CAAkC,YAAlC,CAAd;;AACA,kBAAImoB,OAAO,IAAIxG,IAAf,EAAqB;AACnB,uBAAOA,IAAI,IAAIwG,OAAR,GAAkB,0BAAlB,GAA+C,EAAtD;AACD;AACF;AACF,WAVD;;AA/aE,eAAKje,kBAAL,GAA0B,KAAKtN,IAAL,CAAUigB,eAApC;AACA,eAAKuL,aAAL,GAAqB,KAAKxrB,IAAL,CAAU6f,KAA/B;AACA,eAAKgE,aAAL,GAAqB,KAAK7jB,IAAL,CAAU4f,MAA/B;AACA,eAAK6L,SAAL,GAAiB,KAAKzrB,IAAL,CAAUoU,KAA3B;AACA,eAAK6B,QAAL,CAAclR,OAAd,GAAwB,KAAK/E,IAAL,CAAUqL,OAAlC;AACA,eAAKqgB,eAAL,GAAuB,KAAK1rB,IAAL,CAAU+f,aAAjC;AACA,eAAKiE,aAAL,GAR0K,CAS1K;AACA;AACA;AACD;;;;iBAID,sBAAaxa,KAAb,EAAkB;AAAA;;AAChB,iBAAK+a,kBAAL,GAA0B,IAA1B;AACA,gBAAIC,KAAK,GAAGrhB,mCAAM,CAAC,KAAK8S,QAAL,CAAc3Q,SAAf,CAAlB;AACA,gBAAImf,SAAS,GAAGD,KAAK,CAACphB,MAAN,CAAa,YAAb,CAAhB;;AACA,gBAAIqhB,SAAS,IAAI,IAAjB,EAAuB;AACrB;AACA;AACA;AACA;AACA,mBAAKtF,iBAAL,CAAuBuF,YAAvB,CAAoCD,SAApC,EAA+C,KAAKgH,SAApD,EAA+D,KAAK5H,aAApE,EAAmF,KAAK2H,aAAxF,EAAuGnqB,SAAvG,CAAiH,aAAG;AAAA,uBAAI,OAAI,CAACsjB,sBAAL,CAA4BpjB,GAA5B,CAAJ;AAAA,eAApH,EACE,aAAG;AAAA,uBAAI,OAAI,CAACqjB,oBAAL,CAA0BrjB,GAA1B,CAAJ;AAAA,eADL;AAGD;AACF;;;iBACD,gCAAuBA,GAAvB,EAA0B;AACxB,iBAAKsgB,eAAL,GAAuB,EAAvB;AACA,iBAAKA,eAAL,GAAuB7J,MAAM,CAACC,MAAP,CAAc,KAAK4J,eAAnB,EAAoCtgB,GAApC,CAAvB;;AAEA,gBAAI,KAAKsgB,eAAL,CAAqB5e,MAArB,IAA+B,CAAnC,EAAsC;AACpC,mBAAKxC,aAAL,CAAmBuV,QAAnB,CAA4B,OAA5B,EAAqC,6BAA6B,GAA7B,GAAmC,KAAnC,GAA2C,GAA3C,QAAsD,GAAtD,GAA4D,IAA5D,GAAmE,GAAnE,aAA4E7S,mCAAM,CAAC,KAAK8S,QAAL,CAAc3Q,SAAf,CAAN,CAAgClC,MAAhC,CAAuC,YAAvC,CAA5E,CAArC;AACD,aAFD,CAGA;AACA;AAEA;AANA,iBAQK;AACH,mBAAK,IAAIyiB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKhE,eAAL,CAAqB5e,MAAzC,EAAiD4iB,CAAC,EAAlD,EAAsD;AACpD,oBAAId,IAAI,GAAG5hB,mCAAM,CAAC,KAAK0e,eAAL,CAAqBgE,CAArB,EAAwBhP,IAAzB,CAAN,CAAqCzT,MAArC,CAA4C,YAA5C,CAAX;AACA,oBAAI0iB,WAAW,GAAG,KAAKjE,eAAL,CAAqBgE,CAArB,EAAwBtD,SAA1C;AACA,oBAAIwD,eAAe,GAAG5iB,mCAAM,CAAC4hB,IAAI,GAAG,GAAP,GAAae,WAAd,EAA2B,oBAA3B,CAA5B;AACA,oBAAIE,SAAS,GAAG7iB,mCAAM,CAAC4iB,eAAD,EAAkB,cAAlB,CAAtB;AACA,oBAAIE,eAAe,GAAGD,SAAS,CAAC5iB,MAAV,CAAiB,oBAAjB,CAAtB;AACA,oBAAI8iB,sBAAsB,GAAG/iB,mCAAM,CAAC8iB,eAAD,EAAkB,oBAAlB,CAAnC;AACA,qBAAKpE,eAAL,CAAqBgE,CAArB,EAAwBZ,eAAxB,GAA0CiB,sBAA1C;AACD;;AAED,mBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKtE,eAAL,CAAqB5e,MAArB,GAA8B,CAAlD,EAAqDkjB,CAAC,EAAtD,EAA0D;AACxD,qBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKvE,eAAL,CAAqB5e,MAArB,GAA8BkjB,CAA9B,GAAkC,CAAtD,EAAyDC,CAAC,EAA1D,EAA8D;AAC5D,sBAAIC,OAAO,GAAG,KAAKxE,eAAL,CAAqBuE,CAAC,GAAG,CAAzB,EAA4BnB,eAA5B,CAA4CqB,IAA5C,CAAkD,KAAKzE,eAAL,CAAqBuE,CAArB,EAAwBnB,eAA1E,EAA4F,SAA5F,CAAd;;AACA,sBAAIoB,OAAO,GAAG,CAAd,EAAiB;AACf,wBAAIE,IAAI,GAAG,KAAK1E,eAAL,CAAqBuE,CAArB,CAAX;AACA,yBAAKvE,eAAL,CAAqBuE,CAArB,IAA0B,KAAKvE,eAAL,CAAqBuE,CAAC,GAAG,CAAzB,CAA1B;AACA,yBAAKvE,eAAL,CAAqBuE,CAAC,GAAG,CAAzB,IAA8BG,IAA9B;AACD;AACF;AACF;;AAED,mBAAK1E,eAAL,GAAuB,KAAKA,eAA5B;AACD;AACF;;;iBAED,8BAAqBtgB,GAArB,EAAwB,CACtB;AACD;;;iBACD,uBAAckkB,KAAd,EAAmB;AAAA;;AACjB,iBAAKxP,QAAL,CAAcN,SAAd,GAA0B,KAAKrI,kBAA/B;AACA,iBAAK2I,QAAL,CAAc0V,UAAd,GAA2B,KAAKF,SAAhC;AACA,iBAAKxV,QAAL,CAAcpU,UAAd,GAA2B,KAAK2pB,aAAhC;AACA,iBAAKvV,QAAL,CAAcuJ,YAAd,GAA6B,KAAKqE,aAAlC;AACA,iBAAK5N,QAAL,CAAcwJ,YAAd,GAA6BgG,KAA7B;AACA,iBAAK7lB,MAAL,CAAY0F,SAAZ,GAAwB,KAAK2Q,QAAL,CAAc3Q,SAAtC;AACA,gBAAIsmB,eAAe,GAAG,KAAKlI,eAAL,CAAqBzY,MAArB,CAA4B,WAAC;AAAA,qBAAI4Z,CAAC,CAAChjB,UAAF,IAAgB,OAAI,CAAC2pB,aAAzB;AAAA,aAA7B,CAAtB;;AACA,gBAAII,eAAe,CAAC,CAAD,CAAf,CAAmBC,gBAAnB,IAAuC,IAA3C,EAAiD;AAC/C,mBAAK5V,QAAL,CAAc6V,aAAd,GAA8B,QAA9B;AACD,aAFD,MAGK;AACH,mBAAK7V,QAAL,CAAc6V,aAAd,GAA8B,MAA9B;AACD;;AACD,iBAAK7V,QAAL,CAAc0V,UAAd,GAA2B,KAAKF,SAAhC;AACA,iBAAKxV,QAAL,CAAcuJ,YAAd,GAA6B,KAAKI,MAAlC;;AACA,gBAAI,KAAKtS,kBAAL,IAA2B,cAA/B,EAA+C;AAC7C,mBAAK2I,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B,CAD6C,CAE7C;AACA;;AACA,kBAAI,KAAK+e,gBAAL,IAAyB,IAA7B,EAAmC;AACjC,qBAAKoB,oBAAL,GAA4B,EAA5B;AACA,qBAAKpB,gBAAL,GAAwB,KAAxB;AACA,qBAAKyH,iBAAL,GAAyB,KAAzB;AACD,eAJD,MAIO;AACL,qBAAK5M,iBAAL,CAAuBwG,iCAAvB,CAAyDF,KAAzD,EAAgEpkB,SAAhE,CAA0E,aAAG;AAAA,yBAAI,OAAI,CAACukB,uBAAL,CAA6BrkB,GAA7B,CAAJ;AAAA,iBAA7E,EACE,aAAG;AAAA,yBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,iBADL;AAED;AACF,aAZD,MAaK;AACH,mBAAKwqB,iBAAL,GAAyB,IAAzB;AACA,mBAAK9V,QAAL,CAAc0V,UAAd,GAA2B,KAAKF,SAAhC;AACA,mBAAKxV,QAAL,CAAcuJ,YAAd,GAA6B,KAAKI,MAAlC;AACD;AACF;;;iBACD,iCAAwBre,GAAxB,EAA2B;AACzB,gBAAIA,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAAhC,EAAyC;AACvC,mBAAK+d,oBAAL,GAA4B1N,MAAM,CAACC,MAAP,CAAc,KAAKyN,oBAAnB,EAAyCnkB,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAA9C,CAA5B;;AACA,mBAAK,IAAIke,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKH,oBAAL,CAA0BziB,MAA9C,EAAsD4iB,CAAC,EAAvD,EAA2D;AACzD,oBAAId,IAAI,GAAG5hB,mCAAM,CAAC,KAAKuiB,oBAAL,CAA0BG,CAA1B,EAA6BhP,IAA9B,CAAN,CAA0CzT,MAA1C,CAAiD,YAAjD,CAAX;AACA,oBAAI0iB,WAAW,GAAG,KAAKJ,oBAAL,CAA0BG,CAA1B,EAA6BtD,SAA/C;AACA,oBAAIwD,eAAe,GAAG5iB,mCAAM,CAAC4hB,IAAI,GAAG,GAAP,GAAae,WAAd,EAA2B,oBAA3B,CAA5B;AACA,oBAAIE,SAAS,GAAG7iB,mCAAM,CAAC4iB,eAAD,EAAkB,cAAlB,CAAtB;AACA,oBAAIE,eAAe,GAAGD,SAAS,CAAC5iB,MAAV,CAAiB,oBAAjB,CAAtB;AACA,oBAAI8iB,sBAAsB,GAAG/iB,mCAAM,CAAC8iB,eAAD,EAAkB,oBAAlB,CAAnC;AACA,qBAAKP,oBAAL,CAA0BG,CAA1B,EAA6BZ,eAA7B,GAA+CiB,sBAA/C;AACA,qBAAKR,oBAAL,CAA0BG,CAA1B,EAA6BmG,YAA7B,GAA4C,KAA5C;AACD,eAXsC,CAYvC;;;AAEA,mBAAK,IAAI7F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKT,oBAAL,CAA0BziB,MAA1B,GAAmC,CAAvD,EAA0DkjB,CAAC,EAA3D,EAA+D;AAC7D,qBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKV,oBAAL,CAA0BziB,MAA1B,GAAmCkjB,CAAnC,GAAuC,CAA3D,EAA8DC,CAAC,EAA/D,EAAmE;AACjE,sBAAIC,OAAO,GAAG,KAAKX,oBAAL,CAA0BU,CAAC,GAAG,CAA9B,EAAiCnB,eAAjC,CAAiDqB,IAAjD,CAAuD,KAAKZ,oBAAL,CAA0BU,CAA1B,EAA6BnB,eAApF,EAAsG,SAAtG,CAAd;;AACA,sBAAIoB,OAAO,GAAG,CAAd,EAAiB;AACf,wBAAIE,IAAI,GAAG,KAAKb,oBAAL,CAA0BU,CAA1B,CAAX;AACA,yBAAKV,oBAAL,CAA0BU,CAA1B,IAA+B,KAAKV,oBAAL,CAA0BU,CAAC,GAAG,CAA9B,CAA/B;AACA,yBAAKV,oBAAL,CAA0BU,CAAC,GAAG,CAA9B,IAAmCG,IAAnC;AACD;AACF;AACF;;AAED,mBAAKjC,gBAAL,GAAwB,IAAxB,CAzBuC,CA0BvC;AACD,aA3BD,MA2BK;AACH,mBAAKrkB,YAAL,CAAkBuB,KAAlB,CAAwBD,GAAG,CAACqW,eAA5B;AACD;AAEF;;;iBACD,4BAAmBkN,IAAnB,EAAuB;AACrB,gBAAIA,IAAI,CAACI,QAAL,IAAiB,IAArB,EAA2B;AACzB,kBAAIC,WAAW,aAAML,IAAI,CAACvC,SAAX,gBAA0BuC,IAAI,CAAClC,OAA/B,CAAf;AACA,mBAAKniB,aAAL,CAAmBqL,WAAnB,CAA+B,mBAAmBqZ,WAAnB,GAAiC,+BAAhE,EAAiG,OAAjG;AACD,aAHD,MAIK;AAEH,mBAAK8G,kBAAL,GAA0BnH,IAAI,CAACU,kBAA/B;AACA,mBAAK3lB,UAAL,CAAgB4f,YAAhB,GAA+BqF,IAAI,CAACrF,YAApC;AACA,mBAAKxJ,QAAL,CAAc1Q,WAAd,aAA+Buf,IAAI,CAACvC,SAApC,gBAAmDuC,IAAI,CAAClC,OAAxD;AACA,mBAAKhjB,MAAL,CAAY2F,WAAZ,GAA0B,KAAK0Q,QAAL,CAAc1Q,WAAxC;AACA,mBAAKwmB,iBAAL,GAAyB,IAAzB;;AACA,mBAAK,IAAI/oB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK0iB,oBAAL,CAA0BziB,MAA9C,EAAsDD,CAAC,EAAvD,EAA2D;AACzD,oBAAI,KAAK0iB,oBAAL,CAA0B1iB,CAA1B,EAA6Buf,SAA7B,IAA0CuC,IAAI,CAACvC,SAA/C,IAA4D,KAAKmD,oBAAL,CAA0B1iB,CAA1B,EAA6BkiB,QAA7B,IAAyC,KAAzG,EAAgH;AAC9G,uBAAKQ,oBAAL,CAA0B1iB,CAA1B,EAA6BgpB,YAA7B,GAA4C,IAA5C;AACD,iBAFD,MAGK;AACH,uBAAKtG,oBAAL,CAA0B1iB,CAA1B,EAA6BgpB,YAA7B,GAA4C,KAA5C;AACD;AACF;AACF;AAEF;;;iBACD,sBAAU;AAAA;;AACR,iBAAK7M,iBAAL,CAAuB+M,cAAvB,CAAsC,KAAKjW,QAA3C,EAAqD,KAAKgW,kBAA1D,EAA8E,KAAKP,eAAnF,EAAoG,KAAKzI,mBAAzG,EAA8H5hB,SAA9H,CAAwI,aAAG;AAAA,qBAAI,OAAI,CAAC+L,OAAL,CAAa7L,GAAb,CAAJ;AAAA,aAA3I,EACE,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aADL;AAID;;;iBACD,iBAAQA,GAAR,EAAW;AACT,iBAAKsgB,eAAL,GAAuB,EAAvB;AACA,iBAAKkK,iBAAL,GAAyB,KAAzB,CAFS,CAGT;;AACA,iBAAKtrB,aAAL,CAAmB4C,WAAnB,CAA+B,sBAA/B,EAAuD,SAAvD;AAED;;;iBACD,eAAM9B,GAAN,EAAS;AACP,iBAAKd,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,yBAAtC;AAED;;;iBAED,yBAAa;AAAA;;AACX,iBAAKzD,UAAL,CAAgBssB,sBAAhB,GAAyC9qB,SAAzC,CAAmD,UAACE,GAAD,EAAa;AAC9D,kBAAIA,GAAJ,EAAS;AACP,uBAAI,CAAC4c,UAAL,GAAkB5c,GAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAEoG,OAAvB;;AACA,uBAAI,CAACua,aAAL;AACD;AACF,aALD,EAME,aAAG,EAAG;AACJ,qBAAI,CAACzhB,aAAL,CAAmB6C,SAAnB,CAA6B,OAA7B,EAAsC,uBAAtC;AACD,aARH;AASD;;;iBACD,yBAAa;AAAA;;AACX,iBAAK8oB,kBAAL,GAA0B,EAA1B;;AACA,gBAAI,KAAKjO,UAAL,IAAmB,KAAKA,UAAL,CAAgBlb,MAAvC,EAA+C;AAC7C,mBAAKkb,UAAL,CAAgBkO,OAAhB,CAAwB,aAAG,EAAG;AAC5B,qBAAK,IAAIrpB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGspB,GAAG,CAAC3I,gBAAJ,CAAqB1gB,MAAzC,EAAiDD,CAAC,EAAlD,EAAsD;AACpD,sBAAIspB,GAAG,CAAC3I,gBAAJ,CAAqB3gB,CAArB,KAA2B,OAAI,CAACsK,kBAApC,EAAwD;AACtD,2BAAI,CAAC8e,kBAAL,CAAwBjmB,IAAxB,CAA6BmmB,GAA7B;;AACA;AACD;AACF;AACF,eAPD;AAQD;;AACD,gBAAI,KAAKF,kBAAL,EAAyBnpB,MAAM,GAAG,CAAtC,EAAyC;AACvC,mBAAKspB,iBAAL,GAAyB,IAAzB;AACD,aAdU,CAeX;AACA;;;AACA,iBAAK1L,kBAAL;AACD;;;iBACD,8BAAkB;AAAA;;AAChB,iBAAKN,eAAL,CAAqBM,kBAArB,CAAwC,KAAK4K,SAA7C,EACGpqB,SADH,CACa,UAACE,GAAD,EAAQ;AACjB,kBAAIA,GAAJ,EAAS;AACP,uBAAI,CAACmiB,eAAL,GAAuB1L,MAAM,CAACC,MAAP,CAAc1W,GAAd,CAAvB;AACA,oBAAI,OAAI,CAACiqB,aAAL,IAAsB,OAAI,CAACA,aAAL,IAAsB,CAAhD,EACE,OAAI,CAACgB,oBAAL;AACH;AACF,aAPH,EAOK,aAAG,EAAG;AACP,qBAAI,CAACvsB,YAAL,CAAkBuB,KAAlB,CAAwB,sDAAxB;;AACAmN,qBAAO,CAACC,GAAR,CAAY6d,GAAZ;AACD,aAVH;AAWD;;;iBAGD,gCAAoB;AAAA;;AAClB,iBAAKlM,eAAL,CAAqBgD,6BAArB,CAAmD,KAAKkI,SAAxD,EAAmE,KAAKne,kBAAxE,EAA4FjM,SAA5F,CAAsG,UAACE,GAAD,EAAa;AACjH,kBAAIA,GAAG,IAAIA,GAAG,CAACmG,SAAX,IAAwBnG,GAAG,CAACoG,OAAhC,EAAyC;AACvC,oBAAI+kB,kBAAkB,GAAG1U,MAAM,CAACC,MAAP,CAAc1W,GAAG,CAACoG,OAAlB,CAAzB;AACA,uBAAI,CAAC8b,cAAL,GAAsBiJ,kBAAkB,CAACzhB,MAAnB,CAA0B,WAAC;AAAA,yBAAI4Z,CAAC,CAAChjB,UAAF,IAAgB,OAAI,CAAC2pB,aAAzB;AAAA,iBAA3B,CAAtB;;AACA,uBAAI,CAACmB,oBAAL;AACD,eAJD,MAIK;AACH,uBAAI,CAAC1sB,YAAL,CAAkBuB,KAAlB,CAAwBD,GAAG,CAACqW,eAA5B;AACD;AACF,aARD;AASD,YAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iBAEA,2BAAe;AAAA;;AACb,iBAAK2I,eAAL,CAAqBM,kBAArB,CAAwC,KAAK4K,SAA7C,EAAwDpqB,SAAxD,CACE,aAAG,EAAG;AACJ,kBAAIE,GAAJ,EAAS;AACP,uBAAI,CAACmiB,eAAL,GAAuB1L,MAAM,CAACC,MAAP,CAAc1W,GAAd,CAAvB;AACAoN,uBAAO,CAACC,GAAR,CAAYrN,GAAZ;;AACA,uBAAI,CAACiiB,eAAL;AACD;AACF,aAPH,GAQE,aAAG,EAAG;AACJ,qBAAI,CAAC/iB,aAAL,CAAmBqL,WAAnB,CAA+B,OAA/B,EAAwC,6BAAxC;;AACA6C,qBAAO,CAACC,GAAR,CAAY6d,GAAZ;AACD,aAXH;AAaD;;;iBAED,2BAAe;AAAA;;AACb,iBAAKrJ,QAAL;AACA,iBAAKM,eAAL,CAAqB2I,OAArB,CAA6B,gBAAM,EAAG;AACpC,kBAAIO,MAAM,CAAC/qB,UAAP,GAAoB,OAAI,CAAC2pB,aAA7B,EAA4C;AAC1C,qBAAK,IAAIxoB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4pB,MAAM,CAACpN,YAAP,CAAoBvc,MAAxC,EAAgDD,CAAC,EAAjD,EAAqD;AACnD;AACA,yBAAI,CAAC6pB,sBAAL,GAA8B,OAAI,CAACzJ,QAAL,CAAcnY,MAAd,CAAqB,WAAC;AAAA,2BAAI4Z,CAAC,CAACrF,YAAF,CAAenT,QAAf,CAAwBugB,MAAM,CAACpN,YAAP,CAAoBxc,CAApB,CAAxB,CAAJ;AAAA,mBAAtB,CAA9B;;AACA,sBAAI,OAAI,CAAC6pB,sBAAT,EAAiC;AAC/B,wBAAIC,iBAAiB,GAAG,OAAI,CAACD,sBAAL,CAA4B,CAA5B,CAAxB;;AACA,2BAAI,CAACpJ,cAAL,CAAoBtd,IAApB,CAAyB2mB,iBAAzB;;AACA,2BAAI,CAACD,sBAAL,GAA8B,EAA9B;AAED;AACF;AACF;AACF,aAbD;AAcD;;;iBAID,0BAAiBrjB,KAAjB,EAAuC;AAAA;;AACrC;AACA,iBAAK+W,eAAL,CAAqBf,YAArB,GAAoChW,KAAK,CAACK,KAA1C;AACA,iBAAK+V,MAAL,GAAcpW,KAAK,CAACK,KAApB;AACA,iBAAKgY,eAAL,GAAuB,EAAvB;AACA,iBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,iBAAK0Q,QAAL,CAAc3Q,SAAd,GAA0B,IAA1B;AACA,iBAAK6e,6BAAL,GAAqC,IAAIxhB,KAAJ,EAArC;AACA,iBAAKwhB,6BAAL,GAAqCrZ,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKgY,qBAApB,CAAX,CAArC,CARqC,CAQuD;;AAC5F,iBAAKmB,6BAAL,GAAqC,KAAKA,6BAAL,CAAmClZ,MAAnC,CAA0C,WAAC;AAAA,qBAAIyK,CAAC,CAAC8J,YAAF,IAAkBhW,KAAK,CAACK,KAA5B;AAAA,aAA3C,CAArC;AACA,iBAAKkZ,sBAAL,GAA8B,IAAIpgB,KAAJ,EAA9B;AACA,iBAAKogB,sBAAL,GAA8BjY,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKmX,cAApB,CAAX,CAA9B,CAXqC,CAWyC;;AAC9E,iBAAKY,sBAAL,GAA8B,KAAKA,sBAAL,CAA4B9X,MAA5B,CAAmC,WAAC;AAAA,qBAAIyK,CAAC,CAACqX,iBAAF,CAAoBvN,YAApB,IAAoC,OAAI,CAACI,MAA7C;AAAA,aAApC,CAA9B;;AACA,gBAAI,KAAKmD,sBAAL,CAA4B9f,MAA5B,GAAqC,CAAzC,EAA4C;AAC1C,mBAAK+pB,qBAAL,GAA6B,KAA7B;AACD,aAFD,MAGK;AACH,mBAAKA,qBAAL,GAA6B,IAA7B;AACA,mBAAK/J,mBAAL,GAA2B,KAAKF,sBAAL,CAA4B,CAA5B,EAA+BgK,iBAA/B,CAAiD9J,mBAA5E;AACD;AAEF;;;iBACD,sBAAazZ,KAAb,EAAmC;AACjC,iBAAKiiB,SAAL,GAAiBjiB,KAAK,CAACK,KAAvB;AACA,iBAAKgY,eAAL,GAAuB,EAAvB;AACA,iBAAK5L,QAAL,CAAc1Q,WAAd,GAA4B,IAA5B;AACA,iBAAK0Q,QAAL,CAAc3Q,SAAd,GAA0B,IAA1B;AACA,iBAAKub,kBAAL;AACD;;;iBAED,+BAAsBrX,KAAtB,EAA2B;AACzB,iBAAK8D,kBAAL,GAA0B9D,KAAK,CAACK,KAAhC;AACA,iBAAKga,aAAL,GAAqB,KAAK4H,SAAL,GAAiB,KAAKD,aAAL,GAAqB,EAA3D;AACA,iBAAK/H,cAAL,GAAsB,KAAKC,eAAL,GAAuB,EAA7C;AACA,iBAAKxB,aAAL;AACD;;;iBACD,wBAAe1Y,KAAf,EAAoB;AAClB,iBAAKgiB,aAAL,GAAqBhiB,KAAK,CAACK,KAA3B,CADkB,CAElB;;AACA,iBAAK2iB,oBAAL;AAED;;;iBAED,gCAAoB;AAAA;;AAClB,iBAAK3sB,UAAL,CAAgBoiB,MAAhB,CAAuB,KAAKwJ,SAA5B,EAAuC,KAAKD,aAA5C,EAA2D,KAAKle,kBAAhE,EACGjM,SADH,CACa,aAAG;AAAA,qBAAI,OAAI,CAAC4rB,cAAL,CAAoB1rB,GAApB,CAAJ;AAAA,aADhB,EAEI,aAAG;AAAA,qBAAI,OAAI,CAAC8L,KAAL,CAAW9L,GAAX,CAAJ;AAAA,aAFP;AAGD;;;iBACD,wBAAeA,GAAf,EAAkB;AAEpB;AACE;AACA,iBAAK4gB,cAAL,GAAsB5gB,GAAG,CAACoG,OAAJ,CAAYwa,cAAlC;AACA,iBAAKY,sBAAL,GAA8B/K,MAAM,CAACC,MAAP,CAAc,KAAKkK,cAAnB,CAA9B;;AACA,gBAAI,KAAKY,sBAAL,CAA4B9f,MAA5B,GAAqC,CAAzC,EAA4C;AAC1C,mBAAK+pB,qBAAL,GAA6B,KAA7B;AACD,aAFD,MAGK;AACH,mBAAKA,qBAAL,GAA6B,IAA7B;AACD,aAXiB,CAYpB;AACA;AACA;AAEI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD;;;;;;;yBA3cU9B,sBAAmBnpB,weAiCkFC,sEAjClF,GAiCiGD;AAAA;;;cAjCpHmpB;AAAmBjpB;AAAAC;AAAAC;AAAAC;AAAAC;AAAA;ADfhCN;;AACEA;;AAAwHA;;AAA2BA;;AACrJA;;AACAA;;AACEA;;AAAIA;;AAAQA;;AAAwCA;;AAAuBA;;AAASA;;AACpFA;;AACEA;;AACEA;;AACFA;;AACAA;;AACEA;;AACFA;;AACAA;;AACEA;;AACFA;;AACAA;;AACEA;;AACFA;;AACFA;;AACFA;;AACAA;;AACEA;;AACEA;;AACEA;;AACEA;;AAAOA;;AAAgBA;;AACvBA;;AACEA;;AAAkDA;AAAA;AAAA,eAAgC,iBAAhC,EAAgC;AAAA,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","names":["e","webpackEmptyAsyncContext","module","ConsentFormComponent","global","docService","patservice","hosService","data","alertService","route","router","httpClient","authenticationService","http","datepipe","formBuilder","notifyService","_models_patient_patient_model__WEBPACK_IMPORTED_MODULE_0__","_models_hospital_hospital_model__WEBPACK_IMPORTED_MODULE_2__","_models_doctor_doctor_model__WEBPACK_IMPORTED_MODULE_1__","token","currentUserValue","getPatientName","GetDoctorName","GetHospitalName","getPatient","PatientIdentifier","UserType","subscribe","patInfo","res","error","getDoctor","DoctorId","docInfo","getHospital","HospitalId","hosInfo","_angular_core__WEBPACK_IMPORTED_MODULE_10__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_11__","selectors","decls","vars","consts","template","_angular_core__WEBPACK_IMPORTED_MODULE_6__","ContactUsComponent","routing","contactUsservice","_models_contactUs_contactUs_model__WEBPACK_IMPORTED_MODULE_0__","Array","GetlistOfContactedUsr","SuccessGetlistOfContactedUsr","GetlistOfContactedUsrError","contactedUsrlist","i","length","CreatedOn","moment__WEBPACK_IMPORTED_MODULE_1__","format","showSuccess","showError","form","Contact","invalid","PostContactformdata","SuccessPostContactformdata","PostContactformdataError","ctx","DanphecareComponent","danphecareservice","_models_danphecare_danphecare_model__WEBPACK_IMPORTED_MODULE_0__","GetAppliedUsrlist","SuccessGetAppliedUsrlist","GetAppliedUsrlistError","Usrlist","Dhcare","applytoIsolation","SuccessPostapplyIso","PostapplyIsoError","_angular_core__WEBPACK_IMPORTED_MODULE_7__","AddOPSummaryComponent","src_app_models_visit_visit_model__WEBPACK_IMPORTED_MODULE_3__","src_app_models_Medications_Medications_model__WEBPACK_IMPORTED_MODULE_2__","patId","PatientId","VisitId","OPdata","PatientName","Age","Gender","Address","ContactNumber","VisitDate","BookingTime","DepartmentName","DoctorName","LongSignature","NMC","medication","MedicationId","DrugName","Dose","Frequency","Remarks","medicationlist","push","getOPSummarydata","document","getElementById","html2canvas__WEBPACK_IMPORTED_MODULE_1___default","then","imgWidth","imgHeight","canvas","height","width","contentDataURL","toDataURL","pdf","jspdf__WEBPACK_IMPORTED_MODULE_0__","position","addImage","save","index","splice","getOPSummary","Successsummary","ErrorSuccesssummary","IsSuccess","Results","editModal","Vistdata","Problem","ProblemId","navigate","History","medications","addOPSummary","Successaddsummary","ErrorSuccessaddsummary","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_8__","_angular_core__WEBPACK_IMPORTED_MODULE_4__","ViewOPSummaryComponent","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_5__","_angular_core__WEBPACK_IMPORTED_MODULE_13__","ctx_r17","_r5","DailyVisitComponent","authService","patService","notify","dialog","moment__WEBPACK_IMPORTED_MODULE_0__","count","src_app_app_model__WEBPACK_IMPORTED_MODULE_1__","src_app_models_patient_pat_fileupload_model__WEBPACK_IMPORTED_MODULE_2__","ShowDailyVisitList","DailyVisit","event","config","currentPage","collection","id","value","itemsPerPage","totalItems","dailyvisit","getPatientListByProviderId","DoctorIdentifier","dailyVisitList","map","a","TreatmentAdvice","Medication","FollowUp","AppointmentType","ShowViewOPSummary","Status","ChangeDate","filteredDailyVisitList","JSON","parse","stringify","filter","filterdate","newFilteredDailyVisitList","isBookingAvailable","visitId","patientId","prescriptionFile","files","message","formData","FormData","file","size","showWarning","fileExtension","name","split","pop","toLowerCase","acceptedFileFormat","includes","append","uploadReq","_angular_common_http__WEBPACK_IMPORTED_MODULE_14__","reportProgress","request","type","progress","Math","round","loaded","total","body","toString","uploadPrescription","Success","Error","selAppointmentType","d","summaryData","dialogRef","open","_OP_Summary_app_View_OP_summary__WEBPACK_IMPORTED_MODULE_3__","CreatedDate","Height","Weight","Temperature","BMI","BP","Bodypain","PainScale","ChiefComplaints","Investigation","FinalDiagnosis","Visitid","disableClose","afterClosed","close","console","log","result","_angular_core__WEBPACK_IMPORTED_MODULE_9__","DoctorDashboardComponent","notificationService","_models_doctor_doctor_model__WEBPACK_IMPORTED_MODULE_0__","redUrl","snapshot","queryParamMap","get","Connect","GetPatList","updateDoc","backToDashboardFromDoc","IsDoctor","doctorObj","FirstName","_angular_core__WEBPACK_IMPORTED_MODULE_14__","modal_r44","ctx_r11","DoctorRoomComponent","modalService","ref","ngZone","sanitizer","_models_visit_visit_model__WEBPACK_IMPORTED_MODULE_1__","_models_doctor_doctor_model__WEBPACK_IMPORTED_MODULE_2__","rxjs__WEBPACK_IMPORTED_MODULE_16__","_zoomus_websdk_embedded__WEBPACK_IMPORTED_MODULE_5___default","apiLogout","initForm","queryParams","EventChatMessage","chatData","ChatForm","controls","Name","OnChatUserChange","chatMsg","Message","Class","ChatMessages","pushChatMsgUserwise","TimerDocandPat","checkpatinlist","changeDetectorRef","room","angular2_uuid__WEBPACK_IMPORTED_MODULE_4__","command","api","executeCommand","localStorage","setItem","apiDestroy","apiStatusDestroy","isAudioMuted","isVideoMuted","loginVal","loginValue","loginP","getItem","istimer","doctorRoomSubscription","add","timerpat","pipe","getVisitFromDoctorRoom","StatusSuccess","timerdoc","RefreshPatients","GetPatientFiles","unsubscribe","changeStatusFromDoc","SuccesschangeStatusFromDoc","ErrorPatAtt","group","Id","_angular_forms__WEBPACK_IMPORTED_MODULE_18__","chatMessage","typeofvalidator","controlname","control","hasError","dirty","SuccessDoctorNamme","docName","MiddleName","LastName","docId","doctorRoomName","DoctorRoomName","MeetingLink","docList","IdentityUserId","vid","visitid","getPatientByVisitId","DoctorRoomBrowserRefreshPatient","url","videourl","urlParams","URL","status","IsActive","redirectUrl","did","getPatientsInDoctorRoom","SuccessRefreshPatients","patients","patList","s","VisitType","showCallButton","chatPatId","chatPatName","removeItem","showInfo","visitObj","getPatientDocList","SuccessBrowserRefreshPatients","startcall","filteredpat","showPatDetail","getZoomSignature","visitIdToken","idreportnotification","hasCallStarted","SuccessCallPatient","VisitStartTime","Date","UpdateStatus","updateStatus","SuccessUpdateStaus","success","PatientByVisit","logout","timerlogout","getVisitFromWaitingRoom","StatusLogoutSuccess","clickDocument","getPatientDocuments","documents","patientDocument","showDocument","ResponseMessage","EndMeeting","SuccessPatientAttend","visitdata","Object","assign","updateTreatmentAdvice","SenderId","ReceiverId","ReceiverName","PatientCompleted","alert","filePath","fileExt","Title","showView","path","safeUrl","bypassSecurityTrustResourceUrl","Filetype","setValue","markAsDirty","updateValueAndValidity","valid","chatmsgObj","ChatPatName","SendChatMessage","reset","AllUserChats","hasOwnProperty","slice","ChatReceivedMessages","keyCode","SendChatMsg","user","messageObj","Successcheckpatlist","content","ariaLabelledBy","windowClass","closeResult","reason","getDismissReason","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_19__","isVideoFullscreen","elem","divRef","nativeElement","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","exitFullscreen","window","successGetZoomSignature","errorGettingZoomSignature","SuccessCreateSession","startMeeting","signature","meetingSDKElement","headerEncoded","payloadEncoded","lwtSignature","payload","atob","runOutsideAngular","__awaiter","client","init","zoomAppRoot","language","join","sdkKey","appKey","meetingNumber","mn","password","userName","tk","zak","on","leaveMeeting","_components_common_popup_pop_up_component__WEBPACK_IMPORTED_MODULE_3__","msg","isCancelled","PatientAttended","UpdateVisitStatus","location","reload","updateVisitStatus","SuccessUpdateVisitStaus","viewQuery","_angular_core__WEBPACK_IMPORTED_MODULE_11__","DoctorListComponent","hospital","HospitalIdentifier","showDoctorList","pwdModal","doctorEditor","changesSavedCallback","changesCancelledCallback","pwdEditor","getDoctorList","doctorList","FullName","PhoneNumber","Phonenumber","row","isDocEditor","editedDoctor","editDoctor","isDoctor","editedPwdDoctor","resetPwdDoctor","AdminId","unique_name","deactivateDoctor","SuccessDeactivate","PatientListComponent","schedulingService","src_app_models_visit_visit_model__WEBPACK_IMPORTED_MODULE_1__","showPatientList","getPatientList","patientList","DepartmentId","SchedulingId","filteredPatientList","j","deptId","hosId","_doctor_reschedule_app_doctor_reschedule__WEBPACK_IMPORTED_MODULE_2__","schedullingId","bookingTime","appointmentType","reschedule","src_app_Doctor_OP_Summary_app_View_OP_summary__WEBPACK_IMPORTED_MODULE_3__","_r36","DoctorProfileComponent","docservice","hospitalService","_models_Department_app_department_model__WEBPACK_IMPORTED_MODULE_2__","moment_moment__WEBPACK_IMPORTED_MODULE_1__","todayDate","transform","doctorId","getDocHospitalList","checkForVisitType","HospitalFormGroup","Department","isOnlineAppointment","SuccessHospitalList","hospitalList","hospitalId","selHospital","showDept","GetDepartmentList","QualificationList","Qualification","FilePath","EnablePhNo","MailingAddress","appointmentTime","showTimeSlot","showScheduleList","showUnavailableMsg","getDoc","SuccessDoctor","SchedulingList","tempArray","y","tempst","StartTime","substr","stampm","ST","tempet","EndTime","etampm","ET","filteredSchedulingList","HospitalDoctorMapping","HospitalDoctorMapId","AssignDepartment","getDepartmentList","deptList","GetDocHosDetail","loading","getDocHospitalListbyvisitytpe","SuccessHospital","filterdeptList","docHospitalList","ConsultationType","filteredDepartmentList","selDepartment","setDepartmentName","mapId","GetDoctorList","showBookingDate","showBookingAppointBtn","filteredHospitalDoctorMapping","departmentId","ScheduleTimeDetail","showIntervalSlot","showIntervalButton","vDate","visitDate","getVisitTime","SuccessAppointmentTime","ErrorAppointmentTime","x","time","date","currenttime","StartTimeDetail","IsBooked","bookingtime","undefined","getPatientHistory","PatientHistory","VisitList","ScheduleIntervalId","SchId","scheduleIntervalList","getScheduleIntervalBySchedulingId","SuccessScheduleInterval","c","timeextract","bookedStartTime","momentObj","currentdateTime","formatedBookedDateTime","k","l","diffmin","diff","swap","showButton","checkTimeSlot","id1","dep","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_14__","DoctorReportComponent","changeDetector","OPSummaryReport","getAppMasterReport","OPSummaryData","FollowUpVisitType","FilterbyDate","showOPSummaryReport","todate","fromdate","selVisitType","selDiagnosis","p","GetReportData","filteredOPSummaryList","Search","todatemoment","fromdatemoment","reportList","src_app_Doctor_OP_Summary_app_View_OP_summary__WEBPACK_IMPORTED_MODULE_1__","showPrint","printDetails","showActions","detectChanges","innerHTML","print","ex","ShowCatchErrMessage","exception","stack","contents","iframe","createElement","appendChild","reportHeader","documentContent","htmlToPrint","contentWindow","write","setTimeout","removeChild","tableData","workSheetName","Heading","filename","ReportDateRange","ConvertHTMLTableToExcel","table","SheetName","TableHeading","FileName","PrintDate","DateRange","uri","base64","btoa","decodeURIComponent","encodeURIComponent","replace","m","nodeType","worksheet","link","href","setAttribute","click","selItem","showDetailView","ItemName","RescheduleComponent","src_app_models_visit_visit_model__WEBPACK_IMPORTED_MODULE_0__","cellDate","view","availableDate","newDate","selHospitalId","selDoctor","oldSchedulingId","ProviderId","hospitalDetials","isPaymentEnablle","PaymentStatus","showRescheduleBtn","selectedTime","scheduleIntervalId","postReschedule","getAvailableDoctorList","filteredDoctorList","forEach","doc","isDoctorAvailable","GetHosDepartmentList","err","tempFilterDeptList","GetSchedulingDetails","docHos","filteredDepartmentTemp","departmentDetails","HospitalDoctorMap","isSchedulingAvailable","SuccessDetails","_r3","_angular_core__WEBPACK_IMPORTED_MODULE_16__","ctx_r29","ctx_r69","_r21","_r24","ctx_r3","ctx_r115","ctx_r147","_r107","_r110","ctx_r4","list_r175","list_r176","c_r177","list_r178","DoctorUpdateProfileComponent","_models_hospital_hospital_model__WEBPACK_IMPORTED_MODULE_3__","_models_HospitalDoctorMap_app_hospitaldoctormap_model__WEBPACK_IMPORTED_MODULE_4__","_models_Qualification_qualification_model__WEBPACK_IMPORTED_MODULE_5__","QualificationId","Designation","Education","PastAffiliation","Experience","Membership","Charge","HospitalName","allowEdit","GetHospitalList","newHospitalMap","hospdocMap","newQualification","qualification","getHospitalList","GetDoctor","Consultation","selConsultation","DateOfBirth","tempvalue","departmentChanged","validation","checkInputValidity","failed","errorMessages","exceptionOccur","HospitalDepartmentMap","depcount","z","intraExceptionOccur","momentDate","hospitalIdentifier","updateDoctor","isDocScheduleEditor","namePattern","test","emailPattern","nmcPattern","addDept","deleteHospitalMap","SuccessDelete","hosdoc","hospitalDoctorDetail","existingDepartment","find","hospitalDepartmentMap","editQualf","hosdocMap","updateHosDocMap","SuccessHospitalDoctorMap","qualificationDetail","DoctorQualification","updateQualification","SuccessQualification","_angular_common_http__WEBPACK_IMPORTED_MODULE_17__","isDoc","isDocSchedule","_components_common_popup_pop_up_component__WEBPACK_IMPORTED_MODULE_6__","isConfirmed","UpdateDocProfile","selectedHospitalDepartmentMap","valueIndex","_angular_core__WEBPACK_IMPORTED_MODULE_5__","PatientBookingHomeComponent","patBook","bookList","MyBooKListComponent","moment_moment__WEBPACK_IMPORTED_MODULE_0__","ShowBookList","patbook","getPatientBookingList","patBookList","currentDateTime","tz","VisitTime","PatientFamilyName","Showpay","DocEndTime","Showpaid","datarow","reportFooter","charge","PaidBookingListComponent","moment_timezone__WEBPACK_IMPORTED_MODULE_1__","GetHospitalIdAndVisitIdFromLocalStorage","currentNepaliDate","nepaliDate","currentNepaliDateTime","currentdate","currentDateWithTime","currentYear","currentMonth","currentDay","todaydate","currentdate1","indexOf","substring","bookedDateTime","DocStartTime","formatedreducedStartTime","decStartTime","subtract","formatedDecStartTime","DocEndtime","formattedEndTime","currentTime1","currentTime","formatedCurrentTime","GoToWaitingRoom","AccessPermission","EntryStatus","diffminwithStarttime","diffminwithEndtime","_ConsentForm_app_consentformcomponent__WEBPACK_IMPORTED_MODULE_0__","_angular_core__WEBPACK_IMPORTED_MODULE_20__","ctx_r2","ctx_r37","_r48","ctx_r38","ctx_r40","ctx_r41","ctx_r5","PatientBookAppointmentComponent","datePipe","_models_visit_visit_model__WEBPACK_IMPORTED_MODULE_0__","_models_patient_patient_model__WEBPACK_IMPORTED_MODULE_1__","_models_doctor_doctor_model__WEBPACK_IMPORTED_MODULE_4__","_models_scheduling_scheduling_model__WEBPACK_IMPORTED_MODULE_5__","PatientFileId","FileType","Comment","relation","src_app_models_patient_Pat_family_model__WEBPACK_IMPORTED_MODULE_7__","depId","appointDetailStatus","appointDetail","newFile","patFiles","familyMember","moment__WEBPACK_IMPORTED_MODULE_2__","GetHospital","GetHospitalDoctorMap","GetPatient","GetFamilyDetail","familyForm","Relationship","_angular_forms__WEBPACK_IMPORTED_MODULE_21__","DOB","Email","BloodGroup","SuccessDoc","getDoctorHospital","SuccessDepartmentList","filterDepartmentById","deptName","getHospitalDoctorMapList","hosDocList","doctor","StartMeridian","EndMeridian","SuccessPatient","patinfo","getFamilyList","SuccessgetFamily","patFamilyList","hospDeptList","filterhospDeptList","docDeptList","DepartmentList","some","hospitalDoctorIdList","hospitalDepartmentIdList","hospitalDoctor","hospitalDepartment","hospitalDoctorList","hospitalDoctorMap","PaymentEnable","PatientFiles","bookforOther","selectedFamilyMember","addFamilyList","ErrorAdd","PostVisit","FamilyMemberId","postVisit","SuccessPostProblem","PostProblemError","Value","_angular_common_http__WEBPACK_IMPORTED_MODULE_22__","_Doctor_doctor_profile_app_doctor_profile__WEBPACK_IMPORTED_MODULE_6__","notifytodocprof","patFamilydetailenable","selectedFamilyMemberId","PatientDashboardComponent","authservice","img","slidesToShow","slidesToScroll","autoplay","fade","cssEase","draggable","autoplaySpeed","arrows","dots","doctordId","EventDocStatus","docStatus","IsDocOnline","GetAllVisits","ShowAllBookList","AppointmentHistory","GetMissedAppointment","followupForm","LastAppointmentDepartment","LastAppointmentDoctor","LastAppointmentDate","Doctor","FollowUpdate","Time","updatePat","showVisitTypePopup","allVisitsList","changeStatus","SuccesschangeStatus","allpatBookList","allcollection","patlist","IsConversationCompleted","nearestVisit","showNearestVisit","DoctorStatusCheck","FollowupCreated","sort","b","followupVisit","showFollowupVisit","_ConsentForm_app_consentformcomponent__WEBPACK_IMPORTED_MODULE_2__","getPatHistory","patHistoryList","historycollection","showViewNotes","viewList","noteList","element","prob","filterPatList","prescriptions","PatientFile","showPrescription","FileExtention","FileTypeprescriptions","popupWinindow","printContents","LastApptDepartmentName","LastApptDoctorName","LastApptVisitDate","followupinfo","showfollowup","selSchedule","selDeptData","getDoctorMapList","filterDocList","selDocData","AssignDoctor","SuccessSchedulelist","schedule","SelectSchedule","nowdatetime","$event","tempdata","followUpPostVisit","PatientUserId","DoctorUserId","getAllMissedVisit","_angular_core__WEBPACK_IMPORTED_MODULE_8__","PatientHelpDeskComponent","src_app_models_patient_patient_model__WEBPACK_IMPORTED_MODULE_0__","getAdminId","_angular_forms__WEBPACK_IMPORTED_MODULE_9__","chatMessageToSend","trim","adminId","selUser","SuccessGetAdminId","PatientHistoryComponent","respatlist","BookingStartTime","bookingStartTime","CancelledBookingTime","cancelledbookingTime","showUpcominglist","Prescription","Report","OPSummary","Payment","Reschedule","Cancel","filteredpathistoryList","filterlist","allAppointments","Medications","showOpSummaryBtn","BookingType","PaymentMethod","patientFile","showReport","safePath","cancelBooking","src_app_Doctor_doctor_reschedule_app_doctor_reschedule__WEBPACK_IMPORTED_MODULE_4__","patRecordFile","PatRecordFile","FileExtension","src_app_Doctor_OP_Summary_app_View_OP_summary__WEBPACK_IMPORTED_MODULE_5__","showPastlist","src_app_components_common_popup_pop_up_component__WEBPACK_IMPORTED_MODULE_2__","CancelBooking","deleteVisit","PatientLabReportsComponent","labReportEndpoint","pdfService","GetAllLabReports","fileDetails","fileName","title","GetLabReportPreview","base64Result","isImageFile","sanitizeBase64Image","isFileSupported","sanitizeBase64File","extension","imageExtensions","supportedExtensions","base64String","binaryString","bytes","Uint8Array","charCodeAt","buffer","_r10","PatientMedicalRecordComponent","_models_patient_Pat_medicalRecord_model__WEBPACK_IMPORTED_MODULE_0__","GetPatientName","viewMedicalRecord","patMedicalRecord","getPatMedicalRecords","patFile","_angular_common_http__WEBPACK_IMPORTED_MODULE_10__","UploadedBy","selectedPatId","selectedPatient","addPatMedicalRecord","SuccessGetMedicalRecords","medicalRecordList","MedicalRecordId","TestReportType","patData","recordId","deletePatMedicalRecord","ErrorDelete","PaymentSelectionComponent","_environments_environment__WEBPACK_IMPORTED_MODULE_4__","PaymentCharge","visitInfo","updatePaidStatus","getPaymentCharge","Visitpaydata","showpaybyVisiting","khaltiConfig","publicKey","productIdentity","productName","productUrl","eventHandler","onSuccess","origin","amount","product_identity","mobile","onError","onClose","paymentPreference","checkout","khalti_web__WEBPACK_IMPORTED_MODULE_0__","show","parseInt","IsCardPayButtonDisabled","SaveHospitalIdAndVisitIdInLocalStorage","fetch","method","headers","Headers","sessionStorage","response","text","_PaymentMessage_app_paymentmessage_component__WEBPACK_IMPORTED_MODULE_2__","compassPlusURL","params","amt","psc","pdc","txAmt","tAmt","pid","scd","su","fu","key","hiddenField","submit","GetConnetIPSTXNID","TXNID","MERCHANTID","APPID","APPNAME","TXNDATE","moment__WEBPACK_IMPORTED_MODULE_3__","TXNCRNCY","TXNAMT","REFERENCEID","REMARKS","PARTICULARS","TOKEN","connectIPSForm","hiddenInputElement","transactionDetailString","inputToken","elements","namedItem","userType","PayThroughCreditCardComponent","paidstatus","_angular_core__WEBPACK_IMPORTED_MODULE_12__","_r31","ctx_r19","group_r76","_r72","ctx_r6","PatientUpdateProfileComponent","src_app_models_patient_Pat_family_model__WEBPACK_IMPORTED_MODULE_2__","showPersonalDetails","familyListForm","_angular_forms__WEBPACK_IMPORTED_MODULE_13__","updatePatient","pat","isPat","isPatEditor","patName","isPersonalDetails","addFamilyDetails","updateFamilyDetails","familyList","SuccessGetFamilyList","familyInfo","familyDetails","updateFamilyList","SuccessUpdate","ErrorUpdate","deleteFamilyList","dobYear","String","today","WaitingRoom","now","rxjs__WEBPACK_IMPORTED_MODULE_15__","_zoomus_websdk_embedded__WEBPACK_IMPORTED_MODULE_2___default","AddVisitToSingleton","GetEntrytoDoctorRoom","GetDoc","GetStatusByPatientId","postVisitToSingleton","SuccessPostToSingleton","_angular_forms__WEBPACK_IMPORTED_MODULE_16__","patientWaitingRoomSubscription","timer1","SuccessStatusVisitId","FamilyMemberName","showZoomJoiningButton","end","timeOut","start","WaitingTimeOut","getStatusByPatientId","SuccessResponse","patientName","SuccessPatientDetail","apiPatDocDestroy","SuccessPatientList","findIndex","getDoctorName","receiverId","jwtSignature","hideMeetingButton","endMeetingButton","querySelector","style","display","_angular_core__WEBPACK_IMPORTED_MODULE_0__","PaymentMessageComponent","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_1__","ClinicComponent","decodeToken","elementRef","getAttribute","paymentMethod","paymentStatus","IsTokenValid","dialogMessage","_PaymentMessage_app_paymentmessage_component__WEBPACK_IMPORTED_MODULE_0__","FinalReportComponent","ShowReport","getFinalReportData","patient","Global","patientObj","_app_model__WEBPACK_IMPORTED_MODULE_0__","factory","HospitalComponent","checkVisitType","DepartementId","getDoctorByDepartment","doclist","_VisitType","SuccessGetHospitalList","HospitalSpecificDoctorListComponent","Patient","initializerConfigFn","ret","loadAppConfig","AppModule","g","_angular_core__WEBPACK_IMPORTED_MODULE_88__","bootstrap","_app_cliniccomponent__WEBPACK_IMPORTED_MODULE_5__","provide","_angular_common__WEBPACK_IMPORTED_MODULE_89__","useClass","useFactory","multi","deps","src_common_common_appconfig__WEBPACK_IMPORTED_MODULE_57__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_90__","useValue","_angular_common_http__WEBPACK_IMPORTED_MODULE_91__","_services_tokeninterceptor_service__WEBPACK_IMPORTED_MODULE_68__","_services_loader_interceptor_loader_interceptor_service__WEBPACK_IMPORTED_MODULE_85__","_angular_material_moment_adapter__WEBPACK_IMPORTED_MODULE_92__","useUtc","_app_global__WEBPACK_IMPORTED_MODULE_52__","_src_app_services_doctor_doctor_service__WEBPACK_IMPORTED_MODULE_60__","_services_doctor_doctor_endpoint_service__WEBPACK_IMPORTED_MODULE_61__","_services_hospital_hospital_endpoint_service__WEBPACK_IMPORTED_MODULE_62__","_services_hospital_hospital_service__WEBPACK_IMPORTED_MODULE_63__","_services_patient_patient_endpoint_service__WEBPACK_IMPORTED_MODULE_66__","_services_patient_patient_service__WEBPACK_IMPORTED_MODULE_64__","_services_Meeting_meeting_service__WEBPACK_IMPORTED_MODULE_65__","_services_Meeting_meeting_endpoint_service__WEBPACK_IMPORTED_MODULE_87__","_services_scheduling_scheduling_service__WEBPACK_IMPORTED_MODULE_70__","_services_scheduling_scheduling_endpoint_service__WEBPACK_IMPORTED_MODULE_71__","_services_ChatNotification_chat_notification_service__WEBPACK_IMPORTED_MODULE_77__","_services_autologout_service__WEBPACK_IMPORTED_MODULE_78__","_services_login_login_service__WEBPACK_IMPORTED_MODULE_81__","_services_login_login_endpoint_service__WEBPACK_IMPORTED_MODULE_80__","_services_EventNotification_event_notification_service__WEBPACK_IMPORTED_MODULE_82__","_services_product_product_service__WEBPACK_IMPORTED_MODULE_83__","_services_product_product_endpoint_service__WEBPACK_IMPORTED_MODULE_53__","imports","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_93__","_angular_forms__WEBPACK_IMPORTED_MODULE_94__","ngx_doc_viewer__WEBPACK_IMPORTED_MODULE_95__","ngx_pagination__WEBPACK_IMPORTED_MODULE_67__","ngx_extended_pdf_viewer__WEBPACK_IMPORTED_MODULE_96__","_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_97__","ngx_toastr__WEBPACK_IMPORTED_MODULE_98__","positionClass","_app_routing__WEBPACK_IMPORTED_MODULE_54__","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_99__","_fullcalendar_angular__WEBPACK_IMPORTED_MODULE_100__","_angular_material_checkbox__WEBPACK_IMPORTED_MODULE_101__","_angular_material_datepicker__WEBPACK_IMPORTED_MODULE_102__","_angular_material_form_field__WEBPACK_IMPORTED_MODULE_103__","_angular_material_input__WEBPACK_IMPORTED_MODULE_104__","_angular_material_divider__WEBPACK_IMPORTED_MODULE_105__","_angular_material_button__WEBPACK_IMPORTED_MODULE_106__","_angular_material_radio__WEBPACK_IMPORTED_MODULE_107__","_angular_material_list__WEBPACK_IMPORTED_MODULE_108__","_angular_material_card__WEBPACK_IMPORTED_MODULE_109__","_angular_material_select__WEBPACK_IMPORTED_MODULE_110__","_angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_111__","_angular_material_icon__WEBPACK_IMPORTED_MODULE_112__","_angular_material_tabs__WEBPACK_IMPORTED_MODULE_113__","_angular_material_core__WEBPACK_IMPORTED_MODULE_114__","_angular_material_chips__WEBPACK_IMPORTED_MODULE_115__","_angular_material_table__WEBPACK_IMPORTED_MODULE_116__","ng_pick_datetime_ex__WEBPACK_IMPORTED_MODULE_117__","ng2_search_filter__WEBPACK_IMPORTED_MODULE_69__","ngx_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_72__","ngx_slick_carousel__WEBPACK_IMPORTED_MODULE_118__","_angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_119__","declarations","_components_login_login_component__WEBPACK_IMPORTED_MODULE_8__","_Doctor_doctor_doctorroom_app_doctorroomcomponent__WEBPACK_IMPORTED_MODULE_38__","_components_directives_numbers_only_directive__WEBPACK_IMPORTED_MODULE_74__","_PaymentMessage_app_paymentmessage_component__WEBPACK_IMPORTED_MODULE_37__","_Doctor_doctor_profile_app_doctor_profile__WEBPACK_IMPORTED_MODULE_36__","_Patient_patient_waitingroom_app_waitingroomcomponent__WEBPACK_IMPORTED_MODULE_51__","_app_finalreportcomponent__WEBPACK_IMPORTED_MODULE_13__","_Doctor_doctor_patientlist_app_patientlistcomponent__WEBPACK_IMPORTED_MODULE_39__","src_common_YesNo_pipe__WEBPACK_IMPORTED_MODULE_55__","src_common_common_safe__WEBPACK_IMPORTED_MODULE_58__","_Doctor_doctor_dashboard_app_doctor_dashboard__WEBPACK_IMPORTED_MODULE_23__","_Doctor_doctor_updateprofile_app_doctor_updateprofile__WEBPACK_IMPORTED_MODULE_31__","_components_directives_equal_validator_directive__WEBPACK_IMPORTED_MODULE_73__","_Patient_patient_dashboard_app_patient_dashboard__WEBPACK_IMPORTED_MODULE_47__","_Patient_patient_updateprofile_app_patient_updateprofile__WEBPACK_IMPORTED_MODULE_19__","_app_Patient_patient_booking_app_patient_bookappointment__WEBPACK_IMPORTED_MODULE_46__","_Patient_patient_payment_app_paymentselection_component__WEBPACK_IMPORTED_MODULE_26__","_Patient_patient_booking_app_booking_home__WEBPACK_IMPORTED_MODULE_21__","_components_app_component__WEBPACK_IMPORTED_MODULE_22__","_components_register_register_component__WEBPACK_IMPORTED_MODULE_59__","_Patient_patient_history_app_patient_history__WEBPACK_IMPORTED_MODULE_4__","_Doctor_doctor_dailyvisit_app_dailyvisitcomponent__WEBPACK_IMPORTED_MODULE_12__","_Patient_patient_booking_app_mybooklist__WEBPACK_IMPORTED_MODULE_29__","_Patient_patient_payment_app_paythroughcreditcardcomponent__WEBPACK_IMPORTED_MODULE_25__","_Patient_patient_booking_app_paidbookinglistcomponent__WEBPACK_IMPORTED_MODULE_30__","_app_hospitalcomponent__WEBPACK_IMPORTED_MODULE_33__","_components_admin_admin_component__WEBPACK_IMPORTED_MODULE_6__","_components_admin_doctorscheduling_doctor_scheduling_component__WEBPACK_IMPORTED_MODULE_2__","_components_admin_doctorscheduling_appointmentadd_appointment_add_component__WEBPACK_IMPORTED_MODULE_35__","_components_common_footer_component__WEBPACK_IMPORTED_MODULE_28__","_components_admin_doctorscheduling_add_appointment_add_appointment_component__WEBPACK_IMPORTED_MODULE_20__","_ConsentForm_app_consentformcomponent__WEBPACK_IMPORTED_MODULE_75__","_components_common_booking_navigator_booking_navigator_component__WEBPACK_IMPORTED_MODULE_34__","_components_common_date_pipe_date_pipe__WEBPACK_IMPORTED_MODULE_76__","_Doctor_doctor_reschedule_app_doctor_reschedule__WEBPACK_IMPORTED_MODULE_40__","_components_admin_setup_app_set_up__WEBPACK_IMPORTED_MODULE_41__","_Danphecare_app_danphecare__WEBPACK_IMPORTED_MODULE_24__","_Contact_Us_app_contactUs__WEBPACK_IMPORTED_MODULE_7__","_Doctor_doctor_list_doctor_list_component__WEBPACK_IMPORTED_MODULE_3__","_components_admin_patientappointment_admin_patientappointment_component__WEBPACK_IMPORTED_MODULE_79__","_components_admin_patient_list_patient_list_component__WEBPACK_IMPORTED_MODULE_42__","_components_common_popup_pop_up_component__WEBPACK_IMPORTED_MODULE_43__","_app_hospitalspecificdoclist_component__WEBPACK_IMPORTED_MODULE_44__","_components_common_password_password_component__WEBPACK_IMPORTED_MODULE_45__","_components_admin_contact_Info_contact_information__WEBPACK_IMPORTED_MODULE_48__","_components_admin_report_report_component__WEBPACK_IMPORTED_MODULE_27__","_Doctor_doctor_report_doctor_report_component__WEBPACK_IMPORTED_MODULE_0__","_Patient_patient_medical_record_app_patient_medical_record__WEBPACK_IMPORTED_MODULE_10__","_Doctor_OP_Summary_app_Add_OP_summary__WEBPACK_IMPORTED_MODULE_11__","_Doctor_OP_Summary_app_View_OP_summary__WEBPACK_IMPORTED_MODULE_9__","_components_admin_lab_report_upload_lab_report_upload_component__WEBPACK_IMPORTED_MODULE_14__","_Patient_patient_lab_reports_app_patient_lab_reports__WEBPACK_IMPORTED_MODULE_15__","_components_admin_product_add_product_add_product_component__WEBPACK_IMPORTED_MODULE_16__","_components_admin_product_product_list_product_list_component__WEBPACK_IMPORTED_MODULE_17__","_components_admin_product_view_product_view_product_component__WEBPACK_IMPORTED_MODULE_50__","_components_admin_patientappointment_appointments_over_phone_appointments_over_phone_component__WEBPACK_IMPORTED_MODULE_49__","_Patient_patient_helpdesk_app_patient_helpdesk__WEBPACK_IMPORTED_MODULE_32__","_components_admin_admin_helpdesk_app_admin_helpdesk__WEBPACK_IMPORTED_MODULE_18__","_components_admin_order_order_component__WEBPACK_IMPORTED_MODULE_1__","_components_common_loader_loader_component__WEBPACK_IMPORTED_MODULE_84__","_components_admin_meetingsetup_meetingsetup_component__WEBPACK_IMPORTED_MODULE_86__","TeleAppRoutingModule","_angular_router__WEBPACK_IMPORTED_MODULE_44__","component","_components_login_login_component__WEBPACK_IMPORTED_MODULE_6__","_components_register_register_component__WEBPACK_IMPORTED_MODULE_5__","_Doctor_doctor_dashboard_app_doctor_dashboard__WEBPACK_IMPORTED_MODULE_3__","canActivate","_services_route_guards_role_guard_service__WEBPACK_IMPORTED_MODULE_41__","allowedUserType","_Doctor_doctor_doctorroom_app_doctorroomcomponent__WEBPACK_IMPORTED_MODULE_1__","_Doctor_doctor_updateprofile_app_doctor_updateprofile__WEBPACK_IMPORTED_MODULE_4__","_Doctor_doctor_dailyvisit_app_dailyvisitcomponent__WEBPACK_IMPORTED_MODULE_11__","_Doctor_doctor_patientlist_app_patientlistcomponent__WEBPACK_IMPORTED_MODULE_21__","_Doctor_doctor_report_doctor_report_component__WEBPACK_IMPORTED_MODULE_31__","_Patient_patient_dashboard_app_patient_dashboard__WEBPACK_IMPORTED_MODULE_7__","_app_hospitalcomponent__WEBPACK_IMPORTED_MODULE_16__","_app_hospitalspecificdoclist_component__WEBPACK_IMPORTED_MODULE_28__","_Doctor_doctor_profile_app_doctor_profile__WEBPACK_IMPORTED_MODULE_20__","_Patient_patient_updateprofile_app_patient_updateprofile__WEBPACK_IMPORTED_MODULE_8__","_Patient_patient_booking_app_patient_bookappointment__WEBPACK_IMPORTED_MODULE_9__","_Patient_patient_payment_app_paymentselection_component__WEBPACK_IMPORTED_MODULE_15__","_Patient_patient_booking_app_mybooklist__WEBPACK_IMPORTED_MODULE_12__","_Patient_patient_booking_app_paidbookinglistcomponent__WEBPACK_IMPORTED_MODULE_14__","_Patient_patient_history_app_patient_history__WEBPACK_IMPORTED_MODULE_10__","_Patient_patient_medical_record_app_patient_medical_record__WEBPACK_IMPORTED_MODULE_32__","_Patient_patient_lab_reports_app_patient_lab_reports__WEBPACK_IMPORTED_MODULE_35__","_Patient_patient_payment_app_paythroughcreditcardcomponent__WEBPACK_IMPORTED_MODULE_13__","_Patient_patient_waitingroom_app_waitingroomcomponent__WEBPACK_IMPORTED_MODULE_0__","_app_finalreportcomponent__WEBPACK_IMPORTED_MODULE_2__","_components_admin_admin_component__WEBPACK_IMPORTED_MODULE_17__","_components_admin_doctorscheduling_doctor_scheduling_component__WEBPACK_IMPORTED_MODULE_18__","_components_admin_lab_report_upload_lab_report_upload_component__WEBPACK_IMPORTED_MODULE_34__","_Doctor_doctor_list_doctor_list_component__WEBPACK_IMPORTED_MODULE_24__","_components_admin_doctorscheduling_add_appointment_add_appointment_component__WEBPACK_IMPORTED_MODULE_19__","_components_admin_setup_app_set_up__WEBPACK_IMPORTED_MODULE_22__","_components_admin_meetingsetup_meetingsetup_component__WEBPACK_IMPORTED_MODULE_42__","_Danphecare_app_danphecare__WEBPACK_IMPORTED_MODULE_25__","_Contact_Us_app_contactUs__WEBPACK_IMPORTED_MODULE_26__","children","_components_admin_patientappointment_appointments_over_phone_appointments_over_phone_component__WEBPACK_IMPORTED_MODULE_39__","_components_admin_patientappointment_admin_patientappointment_component__WEBPACK_IMPORTED_MODULE_23__","_components_admin_patient_list_patient_list_component__WEBPACK_IMPORTED_MODULE_27__","_components_admin_contact_Info_contact_information__WEBPACK_IMPORTED_MODULE_29__","_components_admin_report_report_component__WEBPACK_IMPORTED_MODULE_30__","_Doctor_OP_Summary_app_Add_OP_summary__WEBPACK_IMPORTED_MODULE_33__","_components_admin_product_product_list_product_list_component__WEBPACK_IMPORTED_MODULE_37__","_components_admin_product_add_product_add_product_component__WEBPACK_IMPORTED_MODULE_36__","_components_admin_product_view_product_view_product_component__WEBPACK_IMPORTED_MODULE_38__","_components_admin_order_order_component__WEBPACK_IMPORTED_MODULE_40__","redirectTo","exports","AdminComponent","_chatService","_angular_core__WEBPACK_IMPORTED_MODULE_2__","AdminHelpDeskComponent","IsSeen","allChatMessages","RefreshNotification","chatUser","UnseenMessageCount","ChatUsers","userAvailable","u","selectedPatientId","userPatientId","selectedChatUser","_angular_forms__WEBPACK_IMPORTED_MODULE_8__","temp","viewMessage","ContactInfoComponent","src_app_models_contactInfo_contactinformation_model__WEBPACK_IMPORTED_MODULE_0__","continfoForm","_angular_forms__WEBPACK_IMPORTED_MODULE_7__","getcontactInformation","SuccessgetcontactInfo","ContactInfo","showaddbtn","edit","errors","required","addContactInfo","addeditcontactInfo","updateContactInfo","ErrorEdit","deleteHospital","AddAppointmentComponent","calendar","src_app_models_scheduling_scheduling_model__WEBPACK_IMPORTED_MODULE_0__","hour","minute","StartHours","StartMinutes","StartSeconds","EndHours","EndMinutes","EndSeconds","AccomodatedPatient","StartDate","EndDate","DepatmentName","NewScheduleList","ScheduleInterval","current","minDate","year","getFullYear","month","getMonth","day","getDate","fromDate","getToday","toDate","getNext","hosDocMapId","Setappointmenttype","newSchedulingList","schedulingList","showModal","exceptionOnTime","mdtFrom","mdtTo","scheduling","second","currenthr","currentmin","currenttimeHr","currenttimeMin","sttime","startformatted","endtime","endformatted","totalhr","totalmin","totalhrconertomin","totalfinalmin","AccomodatePatientlimit","date1","date2","startdateTime","enddateTime","startingtime","endingtime","patpopulation","eachpattym","schedulingArray","addScheduling","deleteRow","onDateSelection","after","showSchedule","getSchedulingOfDate","SuccessSchedule","scheduleData","scheduleDataList","DoctorAvailable","hoveredDate","before","equals","isInside","isHovered","meridian","getDoctorMapDetail","SuccessMapdetail","DocmapDetail","_r1","AppointmentsAddComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_3__","appointment","_models_scheduling_scheduling_model__WEBPACK_IMPORTED_MODULE_1__","buttonText","outputTime","headerTitle","startTime","endTime","showAddress","participantDetails","participantName","firstName","lastName","showParticipant","practitioner","practitionerList","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__","_r2","_r65","DoctorSchedulingComponent","_models_scheduling_scheduling_model__WEBPACK_IMPORTED_MODULE_0__","editProfileModal","editSchdule","doctorModalEditor","getSchedulingDoctorList","SuccessDoctorList","ErrorDoctorList","getSchedulingTime","SucessSchedulingTime","ErrorSchedulingTime","schedulingTime","scheduleList","currentDate","hosName","CheckForExistingAppointment","schId","EditScheduling","deleteSchedule","schedulingId","accomodatedPatient","updateScheduling","hasAppointment","newScheduling","doctormap","_models_HospitalDoctorMap_app_hospitaldoctormap_model__WEBPACK_IMPORTED_MODULE_2__","editDoctorModal","from","checkExistingAppointment","appointedPatientList","hospitalName","doctorName","appointmentDate","deleteScheduling","editSchduleModal","scheduleDetail","num","LabReportUploadComponent","labReportUploadEndpoint","_angular_forms__WEBPACK_IMPORTED_MODULE_5__","phoneNumber","email","configureFileUploadForm","fileUploadForm","disable","isPhoneNumberRegistered","valueChanges","IsPhoneNumberRegistered","newPhoneNumber","enable","markAllAsTouched","uploadFile","isSmsSent","isEmailSent","prepareFilesList","progressInterval","setInterval","clearInterval","uploadFilesSimulator","acceptedFileTypes","unsupportedFileFound","item","fileDropEl","decimals","dm","sizes","floor","parseFloat","pow","toFixed","MeetingsetupComponent","meetingService","src_app_models_Meeting_meeting_model__WEBPACK_IMPORTED_MODULE_0__","meetingScheduleForm","MeetingNumber","_angular_forms__WEBPACK_IMPORTED_MODULE_6__","ApiKey","ApiSecret","Password","ZoomMeetingId","getMeetings","getMeetingsList","SuccessMeetingList","meetingList","meetingLength","isMeetingAvailable","meetingForm","scheduleMeeting","meeting","updateMeeting","SuccessEdit","OrderComponent","orderService","getAllProducts","orders","AdminPatientListComponent","patientEditor","getAllPatient","editedPatient","editAdminPatient","editedPwdPatient","resetPwd","routefrom","_r9","v_r41","v_r46","AdminPanelPatientAppointment","_models_visit_visit_model__WEBPACK_IMPORTED_MODULE_2__","ShowPatientList","ShowData","showcancelledAppointmentpatientList","showpatientList","getPatientListByAdmin","patientDanpheCareList","IsDanpheCare","VisitStatus","filteredpatientList","selectedValue","_Doctor_doctor_reschedule_app_doctor_reschedule__WEBPACK_IMPORTED_MODULE_1__","updatePaymentStatus","_common_popup_pop_up_component__WEBPACK_IMPORTED_MODULE_3__","getCancelledAppointmentPatientByAdmin","_angular_common_http__WEBPACK_IMPORTED_MODULE_13__","_UploadFileUrl","AppointmentsOverPhoneComponent","getAppointmentsBookedOverPhone","searchFilter","appointmentsOverPhone","_r6","_r15","_r17","ctx_r34","_r33","ChildProductsVaidator","formGroup","childProductFormArray","productTypeControl","setErrors","AddProductComponent","activatedRoute","productService","catalogAndSales","seo","pagesInForm","ProductTagsList","ProductTypesList","GetAllProductTypes","GetAllProductTags","productForm","childProductsControl","productIdToEdit","paramMap","editMode","productId","AssignProductDetails","buildProductForm","setupCustomFilterForChildProductsAutoComplete","product","standardProductAddForm","catalogGroup","sku","Sku","manufacturerPartNo","ManufacturerPartNumber","productType","ProductType","Type","productTypeId","ProductTypeId","productTag","ProductTags","groupingLabel","GroupingLabel","isRefundable","NotReturnable","shortDescription","ShortDescription","fullDescription","FullDescription","adminComments","AdminComment","displayGroup","visibleIndividually","VisibleIndividually","showProductOnHomePage","ShowOnHomepage","disableBuyButton","DisableBuyButton","markAsNew","MarkAsNew","markAsNewStartDate","MarkAsNewStartDateTime","markAsNewEndDate","MarkAsNewEndDateTime","displayOrder","DisplayOrder","childProductSearchKeyword","childProducts","salesGroup","newPrice","oldPrice","OldPrice","seoGroup","permalink","PermaLink","metaTitle","MetaTitle","metaKeyword","MetaKeywords","metaDescription","MetaDescription","validators","newProductName","whiteSpace","dash","newProductType","filteredProductsForMatAutocomplete","_filterChildProducts","filterValue","filteredProducts","option","productModel","price","Price","productEvent","buildChildProduct","removedProductId","AllProductsList","removeAt","currentPageInForm","addProduct","callUpdateProductApi","callAddProductApi","AddProduct","updateProduct","getAllProductTypes","getAllProductTags","mimeType","match","reader","FileReader","readAsDataURL","onload","_event","previewImgSrc","imageUploaded","getProduct","src_app_models_Product_product_model__WEBPACK_IMPORTED_MODULE_0__","ChildProducts","ChildProduct","childProductIds","ChildProductId","productImageExist","PictureId","GetProductImage","productImageId","getProductImage","confirm","prevIndex","childProductsValues","currentIndex","childProductTable","renderRows","ProductListComponent","GetAllHospital","ParentProducts","isPreview","selectedProduct","showActivateDeactivatePopUp","activateDeactivateProductEndpoint","CloseActivateDeactivatePopUp","ViewProductComponent","src_app_models_Product_product_model__WEBPACK_IMPORTED_MODULE_1__","src_app_models_hospital_hospital_model__WEBPACK_IMPORTED_MODULE_0__","src_app_models_Product_productType_model__WEBPACK_IMPORTED_MODULE_2__","ProductTagDetails","Preview","ProductDetails","ProductCost","ProductTagId","ProductTypeDetails","UpdatedBy","HospitalDetails","Hospital","inputs","ReportComponent","AppMasterReport","reportData","PaymentMedium","Amount","showAppMasterReport","showDocOrderReport","selDept","selPaymentStatus","selPaymentMedium","masterReportList","_r18","SetUpComponent","_authenticationService","hospException","HospitalCode","Location","hospitalInfo","addHospital","selectedHospital","ImagePath","updateHospital","_angular_common_http__WEBPACK_IMPORTED_MODULE_7__","AppComponent","autoLogout","eventNotify","_environments_environment__WEBPACK_IMPORTED_MODULE_3__","notification$","currentUser","getUserNotification","temporaryNotificationArray","NotificationType","UserNotificationId","TimeDuration","notificationArray","audio","Audio","play","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_15__","PatStatusChange","Disconnect","seeAll","mappedArray","object","userNotificationId","markAsReadStatus","newNotificationArray","notification","isSeen","lodash__WEBPACK_IMPORTED_MODULE_2__","userNotifications","BookingNavigatorComponent","TimeFormat","min","part","pure","FooterComponent","_environments_environment__WEBPACK_IMPORTED_MODULE_0__","_angular_core__WEBPACK_IMPORTED_MODULE_1__","LoaderComponent","_loader","isLoading","ctx_r8","ctx_r1","ctx_r15","ctx_r26","PasswordComponent","isPasswordValid","ConfirmPassword","OldPassword","resetPassword","LogoutUserWithId","confirmpassword","oldpassword","showOldAndConfirmPasswordInput","showPassword","showConfirmPassword","showOldPassword","PopUpDialogComponent","showCancelBookingPopup","showUpdateProfilePopup","cancel","EqualValidator","validateEqual","reverse","other","root","validateReverse","validateNoReverse","keys","features","_angular_forms__WEBPACK_IMPORTED_MODULE_1__","useExisting","OnlyNumber","el","navigationKeys","ctrlKey","metaKey","isNaN","Number","preventDefault","pastedInput","clipboardData","getData","execCommand","textData","dataTransfer","hostBindings","LoginComponent","decodeTokenService","loginService","_models_user_user_model__WEBPACK_IMPORTED_MODULE_0__","src_app_models_contactInfo_contactinformation_model__WEBPACK_IMPORTED_MODULE_1__","loginLocalStorageDataKey","rememberUser","loginForm","phonenumber","login","loginTele","f","SuccessLogin","ErrorLogin","getContactInfo","contactInfo","_r13","_r25","_r69","RegisterComponent","userService","src_app_models_doctor_doctor_model__WEBPACK_IMPORTED_MODULE_1__","rxjs__WEBPACK_IMPORTED_MODULE_11__","typeregister","loginpatient","countries","code","docRegisterForm","_angular_forms__WEBPACK_IMPORTED_MODULE_12__","firstname","lastname","middlename","dateofbirth","mailingaddress","Filepath","patRegisterForm","countryCode","city","state","postalcode","country","registerComponentSubscription","submitted","src_app_models_Qualification_qualification_model__WEBPACK_IMPORTED_MODULE_0__","newHospitalDoctorMap","src_app_models_HospitalDoctorMap_app_hospitaldoctormap_model__WEBPACK_IMPORTED_MODULE_2__","UserName","registerDoctor","registerPatient","timermsg","dateOfBirth","Departement","JwtHelper","str","output","b64DecodeUnicode","prototype","call","parts","decoded","urlBase64Decode","setUTCSeconds","exp","offsetSeconds","getTokenExpirationDate","valueOf","Meeting","ProductModel","ContactInformation","ContactUsModel","DanphecareModel","DoctorList","HospitalEdit","PatientFamily","PatientMedicalRecord","PatientFilesUploadModel","registrationNumber","middleName","mailingAddress","gender","contactNumber","address","isActive","identityUserId","visit","problem","createddate","age","bloodGroup","RegistrationNumber","Visit","PatientModel","_models_problem_problem_model__WEBPACK_IMPORTED_MODULE_0__","PatientDoc","Paidbooking","Scheduling","User","Login","_problem_problem_model__WEBPACK_IMPORTED_MODULE_0__","_formBuilder","_angular_forms__WEBPACK_IMPORTED_MODULE_2__","PatientValidator","dateValidators","fieldname","validator","_date","_currDate","ChatService","_eventNotify","rxjs__WEBPACK_IMPORTED_MODULE_5__","notificationSubject","asObservable","callPatient","_hubConnection","invoke","stop","createConnection","registerOnServerEvents","startConnection","_aspnet_signalr__WEBPACK_IMPORTED_MODULE_0__","withUrl","build","serverTimeoutInMilliseconds","next","connectionIsEstablished","EventConnectionEstablished","emit","onclose","obj","EventGetAllPatients","EventCallPatient","EventCompletePatient","jsonData","EventGetAllDoctors","userId","providedIn","EventNotificationService","baseUrl","put","LabReportUploadEndpointService","_http","injector","handleError","patientFileId","post","_endpoint_factory_service__WEBPACK_IMPORTED_MODULE_0__","_angular_core__WEBPACK_IMPORTED_MODULE_3__","MeetingEndPoint","userObject","_addMeetingUrl","getRequestHeaders","scheduleMeetingEndpoint","endpointUrl","_meetingsListUrl","getMeetingsListEndpoint","meetingObject","_updateMeetingUrl","updateMeetingEndPoint","MeetingService","meetingEndPoint","AlertService","rxjs__WEBPACK_IMPORTED_MODULE_0__","events","_angular_router__WEBPACK_IMPORTED_MODULE_1__","keepAfterRouteChange","clear","subject","AuthenticationService","currentUserSubject","rxjs__WEBPACK_IMPORTED_MODULE_4__","loginD","jwtHelper","_models_JwtHelper__WEBPACK_IMPORTED_MODULE_1__","decodedIdToken","setUserType","jwtToken","isPatient","jwt_decode__WEBPACK_IMPORTED_MODULE_0__","oldPassword","MINUTES_UNITL_AUTO_LOGOUT","CHECK_INTERVAL","STORE_KEY","AutoLogoutService","check","initListener","initInterval","lastAction","addEventListener","setLastAction","timeleft","getLastAction","isTimeout","ContactUsEndpoint","_GetlistofContactedUsrUrl","_PostContactformdataUrl","ContactUsService","contactUsEndPoint","contact","DanphecareService","danphecareEndPoint","danphecare","DanphecareEndpoint","_GetAppliedUsrlistUrl","_applytoIsolationUrl","DecodeTokenService","_models_JwtHelper__WEBPACK_IMPORTED_MODULE_0__","DoctorEndpoint","_doctorDetailsUrl","getDoctorByIdEndpoint","_doctorNameUrl","getDoctorNameByIdEndpoint","_doctorUrl","getDocByIdEndpoint","_doctorhospitalDetailsUrl","getDoctorHospitalByIdEndpoint","_patientListoFSameProvider","getPatientListByProviderIdEndpoint","_patientListforStatusChange","getPatientListForStatusChangeEndpoint","_patientList","_patientListbyAdmin","getPatientListByAdminEndPoint","_cancelledAppointmmentpatientListbyAdmin","getCancelledAppointmentPatientByAdminEndPoint","_appointmentsBookedOverPhone","_doctorlistUrl","getDoctorListEndpoint","_hosdocListUrl","getHospitalDoctorMapListEndpoint","_departmentlistUrl","getDepartmentListEndpoint","_hosdocUrl","getDoctorMapDetailEndpoint","_doctorRegisterUrl","registerDoctorEndpoint","_patientRegisterUrl","registerPatientEndpoint","_doctorLoginUrl","loginDoctorEndpoint","_doctorUpdateUrl","UpdateDoctorEndpoint","_doctorDeleteUrl","getDeleteDoctorEndpoint","_hospitalMapdeleteUrl","deleteHospitalMapEndpoint","_hosdocUpdateUrl","UpdateHosDocMapEndpoint","_qualificationUpdateUrl","updateQualificationEndpoint","_deactivateDocUrl","deactivateDoctorEndpoint","_uploadPrescriptionUrl","uploadPrescriptionEndpoint","_doctorMapListUrl","getDoctorMapListEndpoint","_availableDoctorlistUrl","getAvailableDoctorListEndpoint","departementId","_doctorListByDepartmentUrl","DoctorService","doctorEndPoint","_DoctorId","_ScheduleIntervalId","_SchedulingId","visitType","doctorUser","deleteDoctor","pres","getDoctorByDepartmentEndPoint","EndpointFactory","_utilities__WEBPACK_IMPORTED_MODULE_0__","_loginUrl","header","_angular_common_http__WEBPACK_IMPORTED_MODULE_1__","requestBody","loginUrl","continuation","isRefreshingLogin","pauseTask","rxjs__WEBPACK_IMPORTED_MODULE_2__","error_description","taskPauser","rxjs__WEBPACK_IMPORTED_MODULE_3__","continueOp","complete","HospitalEndpoint","_hospitalListUrl","geHospitalListEndpoint","_hospitalUrl","geHospitalEndpoint","_hospitalDocUrl","getDocHospitalListEndpoint","_hospitalDocbyvisitUrl","getDocHospitalListbyvisittypeEndpoint","_addHospitalUrl","addHospitalEndpoint","_hospitaldeleteUrl","deleteHospitalEndpoint","_hospitalUpdateUrl","updateHospitalEndpoint","_getcontactInformationUrl","_addContactInfolUrl","addContactInfoEndpoint","_contactInfoUpdateUrl","updateContactInfoEndpoint","_appointmentMasterReportUrl","getAppMasterReportEndPoint","_getContactInfoUrl","getContactInfoEndpoint","_getHospDeptDetails","getHospitalDepartmentDetailsFromVisitTypeEndpoint","HospitalService","hospitalEndPoint","_HospitalId","_DepartmentId","_PaymentEnable","getcontactInformationEndpoint","continfo","ContactInformationId","LoaderInterceptor","req","handle","hide","LoaderService","numberOfHttpRequestLoading","_isloadingSubject","LoginEndpoint","_loginTeleUrl","loginTeleEndpoint","LoginService","loginEndPoint","NotificationService","toastr","closeButton","info","warning","OrderEndpoint","pageNumber","getOrders","OrderService","orderEndpoint","PatientEndpoint","_patientDetailsUrl","getPatientByIdEndpoint","_patientDetailsUrlByVisitId","getPatientByVisitIdEndpoint","_patientFinalReportByVisitId","getFinalReportDataEndpoint","_patientDocumentsByVisitId","getPatientDocumentsEndpoint","_patientListUrl","getPatientListEndpoint","_patientHistoryUrl","getPatientHistoryEndpoint","_patHistoryUrl","getPatHistoryEndpoint","_patientAllPatientListUrl","getAllPatientEndPoint","getPatientBookingListEndpoint","_patientStatusChangeUrl","changeStatusEndpoint","_patientStatusChangefromDocUrl","changeStatusFromDocEndpoint","getPatientDocListEndpoint","_patientStatusUrl","getStatusEndpoint","_patientStatusByPatIdUrl","getStatusByPatientIdEndpoint","_patientStatusByPatientUrl","getStatusByPatientUrlEndpoint","_patientStatusByVisitIdUrl","getStatusByVisitIdEndpoint","_AdminIdUrl","getAdminIdEndpoint","roomname","_postJitsiRoomNameUrl","PostJitsiRoomNameEndPoint","_problemPostProblemForTelemedicineUrl","_problemPostForOnlineAppointmentUrl","postVisitEndpoint","_patientUpdateUrl","getUpdatePatientEndpoint","_patientTreatmentAdviceUpdateUrl","updateTreatmentAdviceEndpoint","_updateStatusUrl","updateStatusEndpoint","_updateVisitStatusUrl","_updatePaidStatusUrl","updatePaidStatusEndpoint","_updatePaymentStatusUrl","updatePaymentStatusEndpoint","_cancelBookingUrl","cancelBookingEndpoint","_paymentChargeUrl","getPaymentChargeEndpoint","_postVisitSingleton","postVisitSingletonEndpoint","_getVisitFromWaitingRoomUrl","getVisitFromWaitingRoomEndpoint","_getVisitFromDoctorRoomUrl","getVisitFromDoctorRoomEndpoint","_getPatientInDoctorRoomUrl","getPatientsInDoctorRoomEndpoint","_removeVisitIdFromLogoutUrl","removeVisitIdFromLogoutEndpoint","_backToDashboardfromDocUrl","backToDashBoardFromDocEndpoint","_addFamilyListUrl","addFamilyListEndpoint","_getFamilyListUrl","getFamilyListEndpoint","_updateFamilyListUrl","_deleteFamilyListUrl","deleteFamilyListEndpoint","_addPatMedicalRecordUrl","addPatMedicalRecordEndpoint","_getPatMedicalRecordsUrl","getPatMedicalRecordsEndpoint","_patOPSummaryUrl","getOPSummaryEndpoint","_followUpPostProblemUrl","followUpPostVisitEndpoint","_postOPSummaryUrl","addOPSummaryEndpoint","_deletePatMedicalRecordUrl","deletePatMedicalRecordEndpoint","_getMissedVisitUrl","getMissedVisitEndpoint","_getZoomSignature","getZoomSignatureEndPoint","PatientService","patientEndPoint","Visittype","_VisitId","_PatientId","_PatientByVisit","Roomname","lodash__WEBPACK_IMPORTED_MODULE_0__","patientUser","updateVisitStatusEndpoint","updateFamilyListEndpoint","patid","ProductEndPoint","ProductId","_getProductDetailsById","getProductByIdEndpoint","_getAllProductList","_addNewProduct","_addProductType","AddProductType","_addProductTag","AddProductTag","_getAllProductTypes","_getProductImageById","_getAllProductTags","_activateDeactivateProduct","_editProduct","updateProductEndPoint","ProductService","productEndPoint","_productId","getProductImageByIdEndpoint","RoleGuardService","auth","isUserAuthenticated","typeOfLoggedInUser","isUserInAllowedRoles","SchedulingEndpoint","_schedulingDoctorListUrl","_schedulingTimeUrl","getSchedulingTimeEndpoint","_schedulinglUrl","geSchedulingByIdEndpoint","SchedulingIntervalId","_schedulinglIntervalUrl","getScheduleIntervalByIdEndpoint","_schedulinglIntervalBySchedulingIdUrl","getScheduleIntervalBySchedulingIdEndpoint","hospmapid","_schedulingShowUrl","getSchedulingOfDateEndpoint","_schedulingPostUrl","postSchedulingEndpoint","_schedulingAddUrl","addSchedulingEndpoint","_schedulingUpdateUrl","getUpdateSchedulingEndpoint","_schedulingVisitTimeUrl","getTimeVisitList","_schedulingVisitTimeListUrl","getVisitTimeList","_schedulingdeleteUrl","deleteScheduleEndpoint","id2","_rescheduleUrl","postRescheduleEndpoint","_checkForExistingAppointmentUrl","checkExistingAppointmentEndpoint","visitingId","_deleteVisitUrl","deleteVisitEndpoint","SchedulingService","schedulingEndPoint","hospmapId","TokenInterceptorService","requestWithJwtToken","clone","set","Utilities","responses","_angular_common_http__WEBPACK_IMPORTED_MODULE_0__","checkNoNetwork","noNetworkMessageCaption","captionAndMessageSeparator","noNetworkMessageDetail","responseObject","getResponseBody","statusText","checkAccessDenied","accessDeniedMessageCaption","accessDeniedMessageDetail","messageToFind","seachInCaptionOnly","includeCaptionInResult","searchString","httpMessages","getHttpResponseMessage","fullMessage","splitInTwo","firstPart","secondPart","base","hostname","paramString","param","keyValue","separator","separatorIndex","part1","part2","simpleObject","prop","charAt","toUpperCase","subString","items","loweredRoles","randomNumber","max","random","protocol","port","dayNames","monthNames","dayOfWeek","getDay","dayOfMonth","sup","dateString","period","getMinutes","getHours","timeString","printDateOnly","printTimeOnly","setHours","yesterday","setDate","toDateString","printDate","dateTimeSeparator","search","delta","abs","days","hours","minutes","seconds","printedDays","birthDate","otherDate","years","searchTerm","caseSensitive","values","strValue","array","oldIndex","newIndex","r","RegExp","testIsAbsoluteUrl","isArray","removeNulls","func","wait","immediate","timeout","context","args_","arguments","later","apply","callNow","clearTimeout","sKey","cookie","sValue","vEnd","sPath","sDomain","bSecure","sExpires","constructor","Infinity","toUTCString","hasItem","aKeys","nIdx","YesNoPipe","ConfigService","toPromise","SafePipe","environment","production","khalti_key","_environments_environment__WEBPACK_IMPORTED_MODULE_1__","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__","bootstrapModule","_app_app_module__WEBPACK_IMPORTED_MODULE_0__","webpackContext"],"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions:%20%7B%7D|namespace%20object","webpack:///src/app/ConsentForm/app.consentformcomponent.ts","webpack:///src/app/ConsentForm/app.consentform.html","webpack:///src/app/Contact_Us/app.contactUs.html","webpack:///src/app/Contact_Us/app.contactUs.ts","webpack:///src/app/Danphecare/app.danphecare.html","webpack:///src/app/Danphecare/app.danphecare.ts","webpack:///src/app/Doctor/OP_Summary/app.Add_OP_summary.html","webpack:///src/app/Doctor/OP_Summary/app.Add_OP_summary.ts","webpack:///src/app/Doctor/OP_Summary/app.View_OP_summary.html","webpack:///src/app/Doctor/OP_Summary/app.View_OP_summary.ts","webpack:///src/app/Doctor/doctor_dailyvisit/app.dailyvisit.html","webpack:///src/app/Doctor/doctor_dailyvisit/app.dailyvisitcomponent.ts","webpack:///src/app/Doctor/doctor_dashboard/app.doctor-dashboard.html","webpack:///src/app/Doctor/doctor_dashboard/app.doctor-dashboard.ts","webpack:///src/app/Doctor/doctor_doctorroom/app.doctorroomcomponent.ts","webpack:///src/app/Doctor/doctor_doctorroom/app.doctorroom.html","webpack:///src/app/Doctor/doctor_list/doctor_list.component.html","webpack:///src/app/Doctor/doctor_list/doctor_list.component.ts","webpack:///src/app/Doctor/doctor_patientlist/app.patientlist.html","webpack:///src/app/Doctor/doctor_patientlist/app.patientlistcomponent.ts","webpack:///src/app/Doctor/doctor_profile/app.doctor_profile.html","webpack:///src/app/Doctor/doctor_profile/app.doctor_profile.ts","webpack:///src/app/Doctor/doctor_report/doctor_report.component.html","webpack:///src/app/Doctor/doctor_report/doctor_report.component.ts","webpack:///src/app/Doctor/doctor_reschedule/app.doctor_reschedule.html","webpack:///src/app/Doctor/doctor_reschedule/app.doctor_reschedule.ts","webpack:///src/app/Doctor/doctor_updateprofile/app.doctor_updateprofile.html","webpack:///src/app/Doctor/doctor_updateprofile/app.doctor_updateprofile.ts","webpack:///src/app/Patient/patient_booking/app.booking_home.html","webpack:///src/app/Patient/patient_booking/app.booking_home.ts","webpack:///src/app/Patient/patient_booking/app.mybooklist.html","webpack:///src/app/Patient/patient_booking/app.mybooklist.ts","webpack:///src/app/Patient/patient_booking/app.paidbookinglist.html","webpack:///src/app/Patient/patient_booking/app.paidbookinglistcomponent.ts","webpack:///src/app/Patient/patient_booking/app.patient_bookappointment.html","webpack:///src/app/Patient/patient_booking/app.patient_bookappointment.ts","webpack:///src/app/Patient/patient_dashboard/app.patient_dashboard.html","webpack:///src/app/Patient/patient_dashboard/app.patient_dashboard.ts","webpack:///src/app/Patient/patient_helpdesk/app.patient_helpdesk.html","webpack:///src/app/Patient/patient_helpdesk/app.patient_helpdesk.ts","webpack:///src/app/Patient/patient_history/app.patient_history.html","webpack:///src/app/Patient/patient_history/app.patient_history.ts","webpack:///src/app/Patient/patient_lab_reports/app.patient_lab_reports.html","webpack:///src/app/Patient/patient_lab_reports/app.patient_lab_reports.ts","webpack:///src/app/Patient/patient_medical_record/app.patient_medical_record.html","webpack:///src/app/Patient/patient_medical_record/app.patient_medical_record.ts","webpack:///src/app/Patient/patient_payment/app.paymentselection.html","webpack:///src/app/Patient/patient_payment/app.paymentselection.component.ts","webpack:///src/app/Patient/patient_payment/app.paythroughcreditcardcomponent.ts","webpack:///src/app/Patient/patient_payment/app.paythroughcreditcard.html","webpack:///src/app/Patient/patient_updateprofile/app.patient_updateprofile.html","webpack:///src/app/Patient/patient_updateprofile/app.patient_updateprofile.ts","webpack:///src/app/Patient/patient_waitingroom/app.waitingroom.html","webpack:///src/app/Patient/patient_waitingroom/app.waitingroomcomponent.ts","webpack:///src/app/PaymentMessage/app.paymentmessage.html","webpack:///src/app/PaymentMessage/app.paymentmessage.component.ts","webpack:///src/app/app.cliniccomponent.ts","webpack:///src/app/app.clinic.html","webpack:///src/app/app.finalreport.html","webpack:///src/app/app.finalreportcomponent.ts","webpack:///src/app/app.global.ts","webpack:///src/app/app.hospital.html","webpack:///src/app/app.hospitalcomponent.ts","webpack:///src/app/app.hospitalspecificdoclist.html","webpack:///src/app/app.hospitalspecificdoclist.component.ts","webpack:///src/app/app.model.ts","webpack:///src/app/app.module.ts","webpack:///src/app/app.routing.ts","webpack:///src/app/components/admin/admin.component.ts","webpack:///src/app/components/admin/admin.component.html","webpack:///src/app/components/admin/admin_helpdesk/app.admin_helpdesk.html","webpack:///src/app/components/admin/admin_helpdesk/app.admin_helpdesk.ts","webpack:///src/app/components/admin/contact_Info/contact_information.html","webpack:///src/app/components/admin/contact_Info/contact_information.ts","webpack:///src/app/components/admin/doctorscheduling/add-appointment/add-appointment.component.html","webpack:///src/app/components/admin/doctorscheduling/add-appointment/add-appointment.component.ts","webpack:///src/app/components/admin/doctorscheduling/appointmentadd/appointment-add.component.html","webpack:///src/app/components/admin/doctorscheduling/appointmentadd/appointment-add.component.ts","webpack:///src/app/components/admin/doctorscheduling/doctor-scheduling.component.html","webpack:///src/app/components/admin/doctorscheduling/doctor-scheduling.component.ts","webpack:///src/app/components/admin/lab-report-upload/lab-report-upload.component.html","webpack:///src/app/components/admin/lab-report-upload/lab-report-upload.component.ts","webpack:///src/app/components/admin/meetingsetup/meetingsetup.component.html","webpack:///src/app/components/admin/meetingsetup/meetingsetup.component.ts","webpack:///src/app/components/admin/order/order.component.html","webpack:///src/app/components/admin/order/order.component.ts","webpack:///src/app/components/admin/patient_list/patient_list.component.html","webpack:///src/app/components/admin/patient_list/patient_list.component.ts","webpack:///src/app/components/admin/patientappointment/admin.patientappointment.html","webpack:///src/app/components/admin/patientappointment/admin.patientappointment.component.ts","webpack:///src/app/components/admin/patientappointment/appointments-over-phone/appointments-over-phone.component.html","webpack:///src/app/components/admin/patientappointment/appointments-over-phone/appointments-over-phone.component.ts","webpack:///src/app/components/admin/product/add-product/add-product.component.html","webpack:///src/app/components/admin/product/add-product/add-product.component.ts","webpack:///src/app/components/admin/product/product-list/product-list.component.html","webpack:///src/app/components/admin/product/product-list/product-list.component.ts","webpack:///src/app/components/admin/product/view-product/view-product.component.html","webpack:///src/app/components/admin/product/view-product/view-product.component.ts","webpack:///src/app/components/admin/report/report.component.html","webpack:///src/app/components/admin/report/report.component.ts","webpack:///src/app/components/admin/setup/app.set-up.html","webpack:///src/app/components/admin/setup/app.set-up.ts","webpack:///src/app/components/app.component.html","webpack:///src/app/components/app.component.ts","webpack:///src/app/components/common/booking_navigator/booking.navigator.component.html","webpack:///src/app/components/common/booking_navigator/booking.navigator.component.ts","webpack:///src/app/components/common/date_pipe/date_pipe.ts","webpack:///src/app/components/common/footer.component.ts","webpack:///src/app/components/common/footer.component.html","webpack:///src/app/components/common/loader/loader.component.html","webpack:///src/app/components/common/loader/loader.component.ts","webpack:///src/app/components/common/password/password.component.html","webpack:///src/app/components/common/password/password.component.ts","webpack:///src/app/components/common/popup/pop-up.component.html","webpack:///src/app/components/common/popup/pop-up.component.ts","webpack:///src/app/components/directives/equal-validator.directive.ts","webpack:///src/app/components/directives/numbers-only.directive.ts","webpack:///src/app/components/login/login.component.html","webpack:///src/app/components/login/login.component.ts","webpack:///src/app/components/register/register.component.html","webpack:///src/app/components/register/register.component.ts","webpack:///src/app/models/Department/app.department.model.ts","webpack:///src/app/models/HospitalDoctorMap/app.hospitaldoctormap.model.ts","webpack:///src/app/models/JwtHelper.ts","webpack:///src/app/models/Medications/Medications.model.ts","webpack:///src/app/models/Meeting/meeting.model.ts","webpack:///src/app/models/Product/product.model.ts","webpack:///src/app/models/Product/productType.model.ts","webpack:///src/app/models/Qualification/qualification.model.ts","webpack:///src/app/models/contactInfo/contactinformation.model.ts","webpack:///src/app/models/contactUs/contactUs.model.ts","webpack:///src/app/models/danphecare/danphecare.model.ts","webpack:///src/app/models/doctor/doctor.model.ts","webpack:///src/app/models/hospital/hospital.model.ts","webpack:///src/app/models/patient/Pat-family.model.ts","webpack:///src/app/models/patient/Pat-medicalRecord.model.ts","webpack:///src/app/models/patient/pat-fileupload.model.ts","webpack:///src/app/models/patient/patient.model.ts","webpack:///src/app/models/problem/problem.model.ts","webpack:///src/app/models/scheduling/scheduling.model.ts","webpack:///src/app/models/user/user.model.ts","webpack:///src/app/models/visit/visit.model.ts","webpack:///src/app/services/ChatNotification/chat-notification.service.ts","webpack:///src/app/services/EventNotification/event-notification.service.ts","webpack:///src/app/services/LabReportUpload/lab-report-upload-endpoint.service.ts","webpack:///src/app/services/Meeting/meeting-endpoint.service.ts","webpack:///src/app/services/Meeting/meeting.service.ts","webpack:///src/app/services/alert.service.ts","webpack:///src/app/services/authentication.service.ts","webpack:///src/app/services/autologout.service.ts","webpack:///src/app/services/contactUs/contactUs-endpoint.service.ts","webpack:///src/app/services/contactUs/contactUs.service.ts","webpack:///src/app/services/danphecare/danphe.service.ts","webpack:///src/app/services/danphecare/danphecare-endpoint.service.ts","webpack:///src/app/services/decodeTtoken.service.ts","webpack:///src/app/services/doctor/doctor-endpoint.service.ts","webpack:///src/app/services/doctor/doctor.service.ts","webpack:///src/app/services/endpoint-factory.service.ts","webpack:///src/app/services/hospital/hospital-endpoint.service.ts","webpack:///src/app/services/hospital/hospital.service.ts","webpack:///src/app/services/loader-interceptor/loader-interceptor.service.ts","webpack:///src/app/services/loader-interceptor/loader.service.ts","webpack:///src/app/services/login/login-endpoint.service.ts","webpack:///src/app/services/login/login.service.ts","webpack:///src/app/services/notification.service.ts","webpack:///src/app/services/order/order.endpoint.ts","webpack:///src/app/services/order/order.service.ts","webpack:///src/app/services/patient/patient-endpoint.service.ts","webpack:///src/app/services/patient/patient.service.ts","webpack:///src/app/services/product/product-endpoint.service.ts","webpack:///src/app/services/product/product.service.ts","webpack:///src/app/services/route-guards/role-guard.service.ts","webpack:///src/app/services/scheduling/scheduling-endpoint.service.ts","webpack:///src/app/services/scheduling/scheduling.service.ts","webpack:///src/app/services/tokeninterceptor.service.ts","webpack:///src/app/services/utilities.ts","webpack:///src/common/YesNo.pipe.ts","webpack:///src/common/common.appconfig.ts","webpack:///src/common/common.safe.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Component, OnInit, Inject } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\n// import { ThrowStmt } from '@angular/compiler';\r\nimport { Observable, concat } from 'rxjs'\r\nimport * as moment from 'moment/moment';\r\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { DatePipe } from '@angular/common'\r\nimport { FormBuilder, FormGroup, Validators, NgForm } from '@angular/forms';\r\nimport { Global } from '../app.global';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport { PatientService } from '../services/patient/patient.service';\r\nimport { Patient } from '../models/patient/patient.model';\r\nimport { DoctorService } from '../services/doctor/doctor.service';\r\nimport { Doctor } from '../models/doctor/doctor.model';\r\nimport { HospitalService } from '../services/hospital/hospital.service';\r\nimport { Hospital } from '../models/hospital/hospital.model';\r\n@Component({\r\n \r\n templateUrl: './app.consentform.html'\r\n})\r\nexport class ConsentFormComponent {\r\n token: any;\r\n public patInfo: Patient = new Patient();\r\n public hosInfo: Hospital = new Hospital();\r\n public docInfo: Doctor = new Doctor();\r\n constructor(public global: Global, public docService: DoctorService, public patservice: PatientService, public hosService : HospitalService , @Inject(MAT_DIALOG_DATA) public data: any, public alertService: AlertService, public route: ActivatedRoute,\r\n public router: Router, public httpClient: HttpClient, private authenticationService: AuthenticationService,\r\n public http: HttpClient, private datepipe: DatePipe, private formBuilder: FormBuilder, private notifyService: NotificationService,\r\n ) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.getPatientName();\r\n this.GetDoctorName();\r\n this.GetHospitalName();\r\n }\r\n\r\n public getPatientName() {\r\n this.patservice.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n public GetDoctorName() {\r\n //var id= this.token.DoctorIdentifier;\r\n this.docService.getDoctor(this.data.DoctorId).subscribe(res => {\r\n this.docInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n public GetHospitalName() {\r\n //var id= this.token.DoctorIdentifier;\r\n this.hosService.getHospital(this.data.HospitalId).subscribe(res => {\r\n this.hosInfo = res;\r\n \r\n },\r\n error => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n}\r\n\r\n","
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n Patient’s Name: {{patInfo.FirstName}} {{ patInfo.MiddleName ? patInfo.MiddleName : ''}}\r\n {{ patInfo.LastName}} Birthdate: {{patInfo.DateOfBirth | date:'mediumDate'}}\r\n
    \r\n
  1. \r\n I understand that my health care provider, Dr. {{docInfo.FirstName}}\r\n {{docInfo.MiddleName ? docInfo.MiddleName : '' }} {{docInfo.LastName}}, has\r\n recommended to me that I engage in a telehealth appointment with provider.\r\n
  2. \r\n
  3. \r\n My health care provider has explained to me how the telehealth technology will be used\r\n to connect me with a provider.\r\n Telehealth appointments may be conducted by videoconferencing, video images, still\r\n (high quality photo) images, or by telephone conference.\r\n I understand that this appointment will not be the same as a direct patient/health\r\n care provider visit due to the fact that I will not be in the same room as my health\r\n care provider.\r\n I understand that the health care provider may use devices such as a stethoscope or\r\n otoscope or other peripheral devices to assist in the examination.\r\n
  4. \r\n
  5. \r\n I understand there are potential risks to this technology, including interruptions,\r\n unauthorized access and technical difficulties.\r\n I understand that my health care provider or I can discontinue the telehealth\r\n appointment if it is felt that the videoconferencing connections are not adequate for\r\n the situation.\r\n I understand that I can discontinue the telehealth appointment at any time\r\n
  6. \r\n
  7. \r\n I understand that my healthcare information may be shared with other individuals for\r\n scheduling and billing purposes.\r\n Others may also be present during the appointment other than my healthcare provider\r\n and specialty health care provider in order to operate the equipment. The above\r\n mentioned people will all maintain confidentiality of the information obtained.\r\n I further understand that I will be informed of their presence during the\r\n consultation and thus will have the right to request the following:\r\n (1) omit specific details of my medical history/physical examination that are\r\n personally sensitive to me;\r\n (2) ask non-medical personnel to leave the telehealth examination room; and/or\r\n (3) terminate the telehealth appointment at any time.\r\n
  8. \r\n
  9. \r\n I have had the alternatives to a telehealth appointment explained to me, and in\r\n choosing to participate in a telehealth appointment,\r\n I understand that some parts of the exam involving physical tests may be conducted by\r\n individuals at my location at the direction of the specialty health care provider or\r\n the primary care provider.\r\n
  10. \r\n
  11. \r\n In an emergency situation, I understand that the responsibility of the telehealth\r\n specialist or provider may be to direct me to emergency medical services,\r\n such as emergency room. Or the telehealth provider may discuss with and advise my\r\n local provider. The telehealth specialist’s or provider’s responsibility will end\r\n upon the termination of the telehealth connection.\r\n
  12. \r\n
  13. \r\n I understand that billing for the telehealth consultation may occur from 1) the primary\r\n care provider and\r\n 2) telehealth provider, and 3) as a facility fee from the site from which I am\r\n presented. Billing is at the discretion of the provider. Billing procedures will be\r\n explained to me.\r\n
  14. \r\n
  15. \r\n I have read this document carefully, and understand the risks and benefits of the\r\n telehealth appointment and have had my questions regarding the procedure explained\r\n and I hereby consent to participate in a telehealth appointment visit under the terms\r\n described herein.\r\n
  16. \r\n\r\n
\r\n
    \r\n \r\n Disclaimer\r\n \r\n
  1. \r\n {{hosInfo.HospitalName}}, {{hosInfo.Location}} is offering telemedicine or Video consults where patients are not being able to reach the hospital.\r\n
  2. \r\n
  3. \r\n A video or telemedicine consult can never be compared to a normal in-hospital consult where the doctor is able to physically examine the patient.\r\n You are advised to come to the hospital for consults whenever you are in a position for the same. If the consult cannot wait, then only you should opt for a tele-medicine or video consult.\r\n
  4. \r\n
  5. \r\n You are advised to confirm the diagnosis, treatment and prescription whenever you are able to come to the hospital for a physical consult.\r\n In case your symptoms/conditions does not improve, immediately reach the nearest hospital.\r\n
  6. \r\n
  7. \r\n By accepting telemedicine consultation, you agree and accept that the tele consultants/ doctors and all personnel directly or indirectly involved with any part of the telemedicine set up shall not be held responsible in the unlikely event of an error in diagnosis or management due to the occurence of different technical conditions.\r\n While every attempt will be made to ensure ideal conditions, unforeseen situations may occur.\r\n
  8. \r\n
  9. \r\n {{hosInfo.HospitalName}} and/or its doctors shall not be responsible for complete accuracy of telemedicine consultation, limited in its scope as it is,\r\n with no physical examination of the patient being possible. While every attempt will be made to ensure comprehensiveness of the consultation, unforeseen situations may arise.\r\n Your accepting telemedicine consultation will be taken as your consult for a telemedicine consent with its ingrained limitations.\r\n
  10. \r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n","
\r\n
\r\n
Reach  Us Quickly.
\r\n

Fields with * are required.

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n User's Contacts List\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNUser NameContact NumberEmailIdCompanyMessageContactDate
{{i+1}}{{cont.Name}}{{cont.ContactNumber}}{{cont.Email}}{{cont.Company}}{{cont.Message }}{{cont.CreatedOn }}
\r\n \r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport { ContactUsModel } from '../models/contactUs/contactUs.model';\r\nimport { ContactUsService } from '../services/contactUs/contactUs.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n templateUrl: './app.contactUs.html'\r\n})\r\nexport class ContactUsComponent {\r\n public Contact: ContactUsModel = new ContactUsModel();\r\n\r\n public contactedUsrlist: Array = new Array();\r\n p:number=1;\r\n\r\n constructor(public routing: Router,public http: HttpClient, public contactUsservice : ContactUsService,private notifyService: NotificationService, private alertService: AlertService,) {\r\n \r\n this.GetlistOfContactedUsr();\r\n }\r\n\r\n GetlistOfContactedUsr(){\r\n this.contactUsservice.GetlistOfContactedUsr()\r\n .subscribe(res => this.SuccessGetlistOfContactedUsr(res),\r\n res => this.GetlistOfContactedUsrError(res));\r\n }\r\n SuccessGetlistOfContactedUsr(res) { \r\n this.contactedUsrlist = res;\r\n for (var i = 0; i < this.contactedUsrlist.length; i++) {\r\n this.contactedUsrlist[i].CreatedOn = moment(this.contactedUsrlist[i].CreatedOn).format(\"YYYY-MM-DD\");\r\n }\r\n this.notifyService.showSuccess('Success', ' User Contatc list Load');\r\n }\r\n GetlistOfContactedUsrError(res) {\r\n this.notifyService.showError(\"Error\", \" field to load User Contact list\")\r\n } \r\n\r\n PostContactformdata(form: NgForm){ \r\nif(this.Contact != null){\r\n if (form.invalid) {\r\n this.notifyService.showError(\"\", \"Please fill up the required field\");\r\n return;\r\n }\r\n this.contactUsservice.PostContactformdata(this.Contact)\r\n .subscribe(res => this.SuccessPostContactformdata(res),\r\n res => this.PostContactformdataError(res));\r\n}\r\n\r\n }\r\n SuccessPostContactformdata(res) { \r\n this.Contact = new ContactUsModel();\r\n this.notifyService.showSuccess('Success', ' Massage send Successfully ');\r\n this.GetlistOfContactedUsr();\r\n }\r\n PostContactformdataError(res) {\r\n this.notifyService.showError(\"Error\", \" Please fill up the required field\")\r\n } \r\n\r\n}\r\n","
\r\n

Apply for Home Isolation Care

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Applied User's List\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNUser NameContact NumberEmailIdServicePricePayment ProviderApplied Date
{{i+1}}{{usr.UserName}}{{usr.ContactNumber}}{{usr.Email}}{{usr.Service}}{{usr.Price }}{{usr.PaymentProvider }}{{usr.CreatedOn }}
\r\n \r\n \r\n
\r\n
","import { Component } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { DanphecareModel } from '../models/danphecare/danphecare.model';\r\nimport { DanphecareService } from '../services/danphecare/danphe.service';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n templateUrl: './app.danphecare.html'\r\n})\r\nexport class DanphecareComponent {\r\n public Dhcare: DanphecareModel = new DanphecareModel();\r\n\r\n public Usrlist: Array = new Array();\r\n p:number=1;\r\n \r\n constructor(public routing: Router,public http: HttpClient, public danphecareservice : DanphecareService,private notifyService: NotificationService, private alertService: AlertService,) {\r\n this.GetAppliedUsrlist();\r\n }\r\n\r\n GetAppliedUsrlist(){\r\n this.danphecareservice.GetAppliedUsrlist()\r\n .subscribe(res => this.SuccessGetAppliedUsrlist(res),\r\n res => this.GetAppliedUsrlistError(res));\r\n\r\n }\r\n\r\n SuccessGetAppliedUsrlist(res) { \r\n this.Usrlist = res;\r\n for (var i = 0; i < this.Usrlist.length; i++) {\r\n this.Usrlist[i].CreatedOn = moment(this.Usrlist[i].CreatedOn).format(\"YYYY-MM-DD\");\r\n }\r\n this.notifyService.showSuccess('Success', ' User list Load');\r\n }\r\n GetAppliedUsrlistError(res) {\r\n this.notifyService.showError(\"Error\", \" field to load User list\")\r\n } \r\n\r\n ApplytoIsolation(){ \r\nif(this.Dhcare != null){\r\n this.danphecareservice.applytoIsolation(this.Dhcare)\r\n .subscribe(res => this.SuccessPostapplyIso(res),\r\n res => this.PostapplyIsoError(res));\r\n}\r\n\r\n }\r\n SuccessPostapplyIso(res) {\r\n this.Dhcare = new DanphecareModel();\r\n this.GetAppliedUsrlist();\r\n this.notifyService.showSuccess('Success', ' Apply Successfully ');\r\n }\r\n PostapplyIsoError(res) {\r\n this.notifyService.showError(\"Error\", \" Please fill up the required field\")\r\n } \r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n

OPD Visit

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Patient Id:{{OPdata.PatientId}}
Name:{{OPdata.PatientName}}
Age/Sex:{{OPdata.Age}}/{{OPdata.Gender}}
Address:{{OPdata.Address}}
contact Number:{{OPdata.ContactNumber}}
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Visit Date and Time:{{OPdata.VisitDate | date:'mediumDate'}}:{{OPdata.BookingTime}}
Department:{{OPdata.DepartmentName}}
Doctor:{{OPdata.DoctorName}}
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.NName of drugsDoseFrequencyRemarks
{{i+1}} \r\n +\r\n x\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
Height:
Weight:
Tempreture:
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
BMI:
Blood Pressure:
Body Pain:
Body Scale:
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core'\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { PatientService } from 'src/app/services/patient/patient.service';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport { Medication } from 'src/app/models/Medications/Medications.model';\r\nimport { PatientMedicalRecord } from 'src/app/models/patient/Pat-medicalRecord.model';\r\nimport { Router } from '@angular/router';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\n@Component({\r\n templateUrl: './app.Add_OP_summary.html'\r\n})\r\n\r\n export class AddOPSummaryComponent implements OnInit {\r\n public editModal: boolean = false;\r\n public OPdata : any;\r\n public Vistdata :Visit = new Visit();\r\n\r\n public token: any;\r\n public opsummarydata : any;\r\n medicationlist : Array = new Array();\r\n public patId: any;\r\n public VisitId : any;\r\n \r\n // patmedicalrecordlist : Array = new Array();\r\n\r\n medication : Medication = new Medication ();\r\n constructor( @Inject(MAT_DIALOG_DATA) public data: any,public authenticationService: AuthenticationService,public routing: Router,\r\n public patservice: PatientService, private notifyService: NotificationService){\r\n\r\n this.token = this.authenticationService.currentUserValue;\r\n this.patId = this.patservice.PatientId;\r\n this.VisitId = this.patservice.VisitId;\r\n this.OPdata = { PatientId: \"\", PatientName: \"\",Age: \"\",Gender: \"\",Address: \"\", ContactNumber:\"\", VisitDate: \"\", BookingTime: \"\", DepartmentName: \"\", DoctorName: \"\", LongSignature: \"\",NMC: \"\"};\r\n this.medication = { MedicationId: \"\", PatientId: \"\", VisitId: \"\", DrugName: \"\", Dose: \"\", Frequency: \"\", Remarks: \"\" };\r\n this.medicationlist.push(this.medication);\r\n \r\n }\r\n\r\n ngOnInit(){\r\n this.getOPSummarydata();\r\n }\r\n\r\n \r\n // public getOPSummarydata() {\r\n // this.patservice.getOPSummary(this.token.PatientIdentifier,this.data.visitId). subscribe(res => this.Success(res),\r\n // res => this.Error(res)); }\r\n \r\n // Success(res){\r\n // this.opsummarydata = res;\r\n \r\n // }\r\n \r\n \r\n // Error(res){\r\n \r\n // }\r\n \r\n Download(){\r\n var data = document.getElementById('convertToPdf');\r\n html2canvas(data).then(canvas => {\r\n var imgWidth = 190;\r\n var imgHeight = canvas.height * imgWidth / canvas.width;\r\n \r\n const contentDataURL = canvas.toDataURL('image/png')\r\n let pdf = new jsPDF('p', 'mm', 'a4'); // A4 size page of PDF \r\n var position = 10;\r\n pdf.addImage(contentDataURL, 'PNG', 10, position, imgWidth, imgHeight);\r\n //pdf.addPage();\r\n pdf.save('OPD_Summary.pdf'); // Generated PDF \r\n \r\n });\r\n }\r\n\r\n addRow(index) {\r\n this.medication = { MedicationId: \"\", PatientId: \"\", VisitId: \"\", DrugName: \"\", Dose: \"\", Frequency: \"\", Remarks: \"\" };\r\n this.medicationlist.push(this.medication);\r\n return true;\r\n }\r\n \r\n deleteRow(index) {\r\n if (this.medicationlist.length == 1) {\r\n return false;\r\n } else {\r\n this.medicationlist.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n\r\n getOPSummarydata(){\r\n \r\n this.patservice.getOPSummary(this.patId , this.VisitId). subscribe(res => this.Successsummary(res),\r\n res => this.ErrorSuccesssummary(res)); \r\n }\r\n \r\n Successsummary(data){\r\n if(data && data.IsSuccess && data.Results){\r\n this.editModal = true ;\r\n this.OPdata =data.Results;\r\n this.Vistdata.VisitId = this.OPdata.VisitId;\r\n this.Vistdata.PatientId = this.OPdata.PatientId;\r\n this.Vistdata.Problem.ProblemId =this.OPdata.ProblemId; \r\n }\r\n }\r\n \r\n ErrorSuccesssummary(res){\r\n \r\n }\r\n\r\n hide(){\r\n this.editModal = false;\r\n this.routing.navigate(['/DailyVisit']);\r\n }\r\n\r\n AddOPdSUmmary(){\r\n if(this.Vistdata.Problem.History != null){\r\n for(let i=0 ; i < this.medicationlist.length ; i++){\r\n this.medicationlist[i].VisitId = this.Vistdata.VisitId;\r\n this.Vistdata.medications.push(this.medicationlist[i]);\r\n }\r\n this.patservice.addOPSummary(this.Vistdata,this.Vistdata.VisitId). subscribe(res => this.Successaddsummary(res),\r\n res => this.ErrorSuccessaddsummary(res));\r\n }\r\n else{\r\n this.notifyService.showError(\"Error\",\"Please fill required fields\");\r\n \r\n }\r\n }\r\n\r\n Successaddsummary(data){\r\n this.patservice.PatientId =null;\r\n this.patservice.VisitId = null;\r\n this.routing.navigate(['/DailyVisit']); \r\n }\r\n \r\n ErrorSuccessaddsummary(res){\r\n \r\n }\r\n }\r\n","\r\n\r\n \r\n \r\n
\r\n
\r\n

OPD Visit

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Patient Id:{{data.PatientId}}
Name:{{data.PatientName}}
Age/Sex:{{data.Age}}/{{data.Gender}}
Address:{{data.Address}}
contact Number:{{data.ContactNumber}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Visit Date and Time:{{data.VisitDate | date:'mediumDate'}}:{{data.BookingTime}}
Department:{{data.DepartmentName}}
Doctor:{{data.DoctorName}}
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.NName of drugsDoseFrequencyRemarks
{{i+1}} {{med.DrugName}} {{med.Dose}} {{med.Frequency}} {{med.Remarks}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Recorded On:{{data.CreatedDate | date:'mediumDate'}}
Height:{{data.Height}}
Weight:{{data.Weight}}
Temperature:{{data.Temperature}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
BMI:{{data.BMI}}
Blood Pressure:{{data.BP}}
Body Pain:{{data.Bodypain}}
Body Scale:{{data.PainScale}}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n","import { Component, OnInit, Inject } from '@angular/core'\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { PatientService } from 'src/app/services/patient/patient.service';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\n\r\n@Component({\r\n templateUrl: './app.View_OP_summary.html'\r\n})\r\n\r\n export class ViewOPSummaryComponent {\r\n\r\n public token: any;\r\n public opsummarydata : any;\r\n constructor( @Inject(MAT_DIALOG_DATA) public data: any,public authenticationService: AuthenticationService,\r\n public patservice: PatientService,){\r\n\r\n this.token = this.authenticationService.currentUserValue;\r\n // this.getOPSummarydata();\r\n }\r\n\r\n // public getOPSummarydata() {\r\n // this.patservice.getOPSummary(this.token.PatientIdentifier,this.data.visitId). subscribe(res => this.Success(res),\r\n // res => this.Error(res)); }\r\n \r\n // Success(res){\r\n // this.opsummarydata = res;\r\n \r\n // }\r\n \r\n \r\n // Error(res){\r\n \r\n // }\r\n \r\n Download(){\r\n var data = document.getElementById('convertToPdf');\r\n html2canvas(data).then(canvas => {\r\n var imgWidth = 190;\r\n var imgHeight = canvas.height * imgWidth / canvas.width;\r\n \r\n const contentDataURL = canvas.toDataURL('image/png')\r\n let pdf = new jsPDF('p', 'mm', 'a4'); // A4 size page of PDF \r\n var position = 10;\r\n pdf.addImage(contentDataURL, 'PNG', 10, position, imgWidth, imgHeight);\r\n //pdf.addPage();\r\n pdf.save('OPD_Summary.pdf'); // Generated PDF \r\n \r\n });\r\n }\r\n }\r\n","\r\n\r\n\r\n
\r\n

\r\n Daily Visit List\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n All\r\n Telemedicine\r\n Online Appointment\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNAppointment TypeVisit DatePatient NameAgeGenderContactTreatment AdviceMedicationFollowUp(Days)Visit StatusAction
{{i+1}}{{data.AppointmentType}}{{data.VisitDate}}{{data.PatientName }}{{data.Age}}{{data.Gender }}{{data.ContactNumber }}{{data.TreatmentAdvice}}{{data.Medication }}{{data.FollowUp}}{{data.Status}}\r\n \r\n \r\n
\r\n 0\" style=\"font-size: 11px;\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n Sorry! No Visit List Found.\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
","import { Component } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { Global } from '../../app.global';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport * as moment from 'moment';\r\nimport { Doctor } from 'src/app/app.model';\r\nimport { PatientFilesUploadModel } from 'src/app/models/patient/pat-fileupload.model';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { ViewOPSummaryComponent } from '../OP_Summary/app.View_OP_summary';\r\n\r\n@Component({\r\n templateUrl: './app.dailyvisit.html'\r\n})\r\nexport class DailyVisitComponent {\r\n config: any;\r\n token: any;\r\n public filterdate = moment().format('YYYY-MM-DD');\r\n // public filterdate : Date;\r\n dailyVisitList: any;\r\n filteredDailyVisitList: any;\r\n public dailyvisit: boolean;\r\n collection = { count: 60, data: [] };\r\n progress: number;\r\n message: string;\r\n p: number = 1;\r\n public docInfo: Doctor = new Doctor();\r\n public prescriptionFile: PatientFilesUploadModel = new PatientFilesUploadModel();\r\n public selAppointmentType: any = \"\";\r\n public newFilteredDailyVisitList: any;\r\n public isBookingAvailable : boolean = false;\r\n constructor(public routing: Router, public docService: DoctorService, public authService: AuthenticationService, public patService: PatientService, public alertService: AlertService,\r\n public global: Global, public notify: NotificationService, public http: HttpClient, public dialog: MatDialog) {\r\n this.token = this.authService.currentUserValue;\r\n this.ShowDailyVisitList();\r\n this.DailyVisit();\r\n\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n public DailyVisit() {\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n value: \"items number \" + (i + 1)\r\n }\r\n );\r\n }\r\n\r\n this.config = {\r\n itemsPerPage: 5,\r\n currentPage: 1,\r\n totalItems: this.collection.count\r\n };\r\n }\r\n\r\n public ShowDailyVisitList() {\r\n this.dailyvisit = true;\r\n this.docService.getPatientListByProviderId(this.token.DoctorIdentifier).subscribe(res => {\r\n if(res && res.IsSuccess && res.Results){\r\n this.dailyVisitList = res.Results;\r\n\r\n this.dailyVisitList = this.dailyVisitList.map(a => {\r\n a.VisitDate = moment(a.VisitDate).format(\"YYYY-MM-DD\");\r\n return a;\r\n })\r\n\r\n this.collection = { count: this.dailyVisitList.length, data: [] }\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitDate: this.dailyVisitList[i].VisitDate,\r\n PatientName: this.dailyVisitList[i].PatientName,\r\n Gender: this.dailyVisitList[i].Gender,\r\n ContactNumber: this.dailyVisitList[i].ContactNumber,\r\n TreatmentAdvice: this.dailyVisitList[i].TreatmentAdvice,\r\n Medication: this.dailyVisitList[i].Medication,\r\n FollowUp: this.dailyVisitList[i].FollowUp,\r\n VisitId: this.dailyVisitList[i].VisitId,\r\n PatientId: this.dailyVisitList[i].PatientId,\r\n AppointmentType: this.dailyVisitList[i].AppointmentType,\r\n Age: this.dailyVisitList[i].Age,\r\n ShowViewOPSummary: this.dailyVisitList[i].ShowViewOPSummary,\r\n Status: this.dailyVisitList[i].Status\r\n }\r\n );\r\n }\r\n\r\n this.ChangeDate();\r\n }else{\r\n this.notify.showError(\"\", \"No Patient List found.\");\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n ChangeDate() {\r\n this.filteredDailyVisitList = new Array();\r\n this.filteredDailyVisitList = JSON.parse(JSON.stringify(this.collection.data));//deepcopy\r\n this.filteredDailyVisitList = this.filteredDailyVisitList.filter(a => a.VisitDate == this.filterdate);\r\n this.newFilteredDailyVisitList = this.filteredDailyVisitList;\r\n if(this.newFilteredDailyVisitList.length < 0){\r\n this.isBookingAvailable = false;\r\n }else{\r\n this.isBookingAvailable = true;\r\n }\r\n }\r\n function(visitId, patientId) {\r\n this.prescriptionFile.VisitId = visitId;\r\n this.prescriptionFile.PatientId = patientId;\r\n\r\n }\r\n\r\n upload(files) {\r\n this.message = null;\r\n if (files.length === 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of files) {\r\n if (file.size * 0.00000095367432 > 10) {\r\n this.notify.showWarning(\"Error\", \"File size should be less than 10 MB.\");\r\n return;\r\n }\r\n let fileExtension = file.name.split('.').pop().toLowerCase();\r\n var acceptedFileFormat = [\"jpg\", \"png\", \"doc\", \"docx\", \"pdf\"];\r\n if (!acceptedFileFormat.includes(fileExtension)) {\r\n this.notify.showWarning(\"Unsupported file format\", \"Error\");\r\n return;\r\n }\r\n formData.append(file.name, file);\r\n\r\n\r\n\r\n const uploadReq = new HttpRequest('POST', `api/Doctor/UploadFile/`, formData, {\r\n reportProgress: true,\r\n });\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n if (this.message == \"Upload Successful.\") {\r\n this.docService.uploadPrescription(this.prescriptionFile).subscribe(res => this.Success(res),\r\n res => this.Error(res));\r\n }\r\n });\r\n }\r\n }\r\n Success(res) {\r\n this.notify.showSuccess(\"Sucess\", \"Upload Sucessfully!\")\r\n\r\n }\r\n Error(res) {\r\n\r\n }\r\n\r\n appointmentTypeSearch(event: MatSelectChange) {\r\n if (this.selAppointmentType != \"\" && this.selAppointmentType != \"All\") {\r\n for (var i = 0; i < this.filteredDailyVisitList.length; i++) {\r\n this.newFilteredDailyVisitList = this.filteredDailyVisitList.filter(d => d.AppointmentType == this.selAppointmentType);\r\n }\r\n }\r\n else {\r\n this.newFilteredDailyVisitList = this.filteredDailyVisitList;\r\n }\r\n }\r\n AddOPSummary(data) {\r\n this.patService.PatientId = data.PatientId;\r\n this.patService.VisitId = data.VisitId\r\n this.routing.navigate(['/AddOPDSummary']);\r\n }\r\n\r\n ViewOPSummary(data) {\r\n this.patService.getOPSummary(data.PatientId, data.VisitId).subscribe(res => this.Successsummary(res),\r\n res => this.ErrorSuccesssummary(res));\r\n }\r\n\r\n Successsummary(data) {\r\n if(data && data.IsSuccess && data.Results){\r\n var summaryData = data.Results;\r\n const dialogRef = this.dialog.open(ViewOPSummaryComponent,\r\n {\r\n data: {\r\n PatientId: summaryData.PatientId,\r\n PatientName: summaryData.PatientName,\r\n Age: summaryData.Age,\r\n Gender: summaryData.Gender,\r\n Address: summaryData.Address,\r\n ContactNumber: summaryData.ContactNumber,\r\n VisitDate: summaryData.VisitDate,\r\n BookingTime: summaryData.BookingTime,\r\n DepartmentName: summaryData.DepartmentName,\r\n DoctorName: summaryData.DoctorName,\r\n CreatedDate: summaryData.CreatedDate,\r\n Height: summaryData.Height,\r\n Weight: summaryData.Weight,\r\n Temperature: summaryData.Temperature,\r\n BMI: summaryData.BMI,\r\n BP: summaryData.BP,\r\n Bodypain: summaryData.Bodypain,\r\n PainScale: summaryData.PainScale,\r\n LongSignature: summaryData.LongSignature,\r\n NMC: summaryData.NMC,\r\n Medication: summaryData.Medication,\r\n TreatmentAdvice: summaryData.TreatmentAdvice,\r\n History: summaryData.History,\r\n ChiefComplaints: summaryData.ChiefComplaints,\r\n Investigation: summaryData.Investigation,\r\n FinalDiagnosis: summaryData.FinalDiagnosis,\r\n Remarks: summaryData.Remarks,\r\n medicationlist: summaryData.medicationlist,\r\n VisitId: summaryData.Visitid\r\n }, width: '1000px', height: '1000px'\r\n }\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n //this.AppointmentHistory();\r\n });\r\n }else{\r\n this.notify.showError(\"\", \"No OP Summary found\")\r\n }\r\n }\r\n\r\n ErrorSuccesssummary(res) {\r\n\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n
\r\n

\r\n Hello! \r\n Choose actions below to proceed.\r\n

\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { Global } from '../../app.global';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Doctor } from '../../models/doctor/doctor.model';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\n//import { error } from 'util';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { ChatService } from 'src/app/services/ChatNotification/chat-notification.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\n\r\n@Component({\r\n templateUrl: \"./app.doctor-dashboard.html\"\r\n})\r\nexport class DoctorDashboardComponent implements OnInit {\r\n public updateDoc: boolean;\r\n public docInfo:Doctor = new Doctor();\r\n public token: any;\r\n public allPatList: any;\r\n public ChatMessages: Array = new Array();\r\n public AllUserChats: Array = new Array();\r\n redUrl: string;\r\n constructor(public global: Global, public routing: Router, public patService: PatientService, private authenticationService: AuthenticationService, \r\n public docService: DoctorService, public alertService: AlertService, public notificationService: ChatService, private route: ActivatedRoute) {\r\n \r\n this.token = this.authenticationService.currentUserValue;\r\n this.docService.DoctorId = this.token.DoctorIdentifier;\r\n this.redUrl = this.route.snapshot.queryParamMap.get('redirectUrl');\r\n \r\n }\r\n ngOnInit() {\r\n this.notificationService.Connect();\r\n this.GetDoctorName();\r\n this.GetPatList();\r\n }\r\n\r\n public GetDoctorName(){\r\n //var id= this.token.DoctorIdentifier;\r\n this.docService.getDoctor(this.token.DoctorIdentifier).subscribe(res =>\r\n {\r\n this.docInfo = res;\r\n },\r\n error=>{\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n // public Update(){\r\n // this.updateDoc= true; \r\n // this.routing.navigate(['/DocDashboard/DocUpdateProfile']);\r\n //}\r\n public DashBoard() {\r\n this.updateDoc = false;\r\n this.routing.navigate(['/DocDashboard']); \r\n }\r\n\r\n public GetPatList() {\r\n\r\n this.patService.backToDashboardFromDoc(this.token.DoctorIdentifier).subscribe(res => {\r\n /* this.allPatList = res;*/\r\n /* console.log(this.allPatList);*/\r\n\r\n //for (var i = 0; i < this.allPatList.length; i++) {\r\n // if ((this.allPatList[i].Status === 'ongoing' || this.allPatList[i].Status === 'initiated') && this.allPatList[i].IsActive === true) {\r\n // this.patService.changeStatusFromDoc(this.allPatList[i].VisitId)\r\n // .subscribe(res => this.SuccessChangeStatus(res),\r\n // res => this.Error(res));\r\n // }\r\n //}\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n\r\n //this.patService.getPatientList(this.token.DoctorIdentifier)\r\n // .subscribe(res => {\r\n // this.allPatList = res;\r\n // console.log(this.allPatList);\r\n // for (var i = 0; i < this.allPatList.length; i++) {\r\n // if (this.allPatList[i].Status == 'ongoing') {\r\n // this.allPatList.changeStatus(this.allPatList[i].VisitId)\r\n // .subscribe(res => this.SuccessChangeStatus(res),\r\n // res => this.Error(res));\r\n // }\r\n // }\r\n // },\r\n // error => {\r\n // this.alertService.error(error);\r\n // // this.loading = false;\r\n // });\r\n //if (this.redUrl === null) {\r\n // this.docService.getPatientListForStatusChange(this.token.DoctorIdentifier).subscribe(res => {\r\n // this.allPatList = res;\r\n // console.log(this.allPatList);\r\n\r\n // for (var i = 0; i < this.allPatList.length; i++) {\r\n // if ((this.allPatList[i].Status === 'ongoing' || this.allPatList[i].Status === 'initiated') && this.allPatList[i].IsActive === true) {\r\n // this.patService.changeStatusFromDoc(this.allPatList[i].VisitId)\r\n // .subscribe(res => this.SuccessChangeStatus(res),\r\n // res => this.Error(res));\r\n // }\r\n // }\r\n // },\r\n // error => {\r\n // this.alertService.error(error);\r\n // }\r\n // );\r\n //}\r\n //else if (this.redUrl === \"DoctorUrl\") {\r\n // this.docService.getPatientListForStatusChange(this.token.DoctorIdentifier).subscribe(res => {\r\n // this.allPatList = res;\r\n // console.log(this.allPatList);\r\n\r\n // for (var i = 0; i < this.allPatList.length; i++) {\r\n // if ((this.allPatList[i].Status === 'ongoing' || this.allPatList[i].Status === 'initiated') && this.allPatList[i].IsActive === true) {\r\n // this.patService.changeStatusFromDoc(this.allPatList[i].VisitId)\r\n // .subscribe(res => this.SuccessChangeStatus(res),\r\n // res => this.Error(res));\r\n // }\r\n // }\r\n // },\r\n // error => {\r\n // this.alertService.error(error);\r\n // }\r\n // );\r\n //}\r\n //else {\r\n // return;\r\n //}\r\n //}\r\n\r\n SuccessChangeStatus(res) {\r\n \r\n }\r\n\r\n Error(res) {\r\n\r\n }\r\n DoctorRoom() {\r\n this.global.IsDoctor = true;\r\n this.global.doctorObj.DoctorName= this.docInfo.FirstName;\r\n this.routing.navigate(['/DoctorRoom']);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ChangeDetectorRef, NgZone } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Global } from \"../../app.global\";\r\nimport { Subscription, timer } from \"rxjs\";\r\nimport { takeWhile } from \"rxjs/operators\";\r\nimport { PatientService } from \"../../services/patient/patient.service\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { PatientDoc, Patient } from \"../../models/patient/patient.model\";\r\nimport { Visit, visitdata } from \"../../models/visit/visit.model\";\r\nimport { AlertService } from \"../../services/alert.service\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ChatService } from 'src/app/services/ChatNotification/chat-notification.service';\r\nimport { Doctor } from '../../models/doctor/doctor.model';\r\nimport { PopUpDialogComponent } from '../../components/common/popup/pop-up.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { UUID } from 'angular2-uuid';\r\n// import '../../../Vendor/jitsi/external_api.js';\r\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\r\nimport ZoomMtgEmbedded from '@zoomus/websdk/embedded';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n// declare var JitsiMeetExternalAPI: any;\r\n\r\n\r\n@Component({\r\n templateUrl: \"./app.doctorroom.html\",\r\n styleUrls: [\"./app.doctorroom.css\"]\r\n})\r\nexport class DoctorRoomComponent implements OnInit {\r\n domain: string = \"meet.jit.si\"; // For self hosted use your domain\r\n room: any;\r\n options: any;\r\n api: any;\r\n user: any;\r\n isAudioMuted = false;\r\n isVideoMuted = false;\r\n\r\n changeDetectorRef: ChangeDetectorRef;\r\n\r\n public showPatDetail: boolean = false;\r\n istimer = \"\";\r\n apiDestroy: boolean = false;\r\n IsDoctor: boolean;\r\n showDocument: boolean = false;\r\n clickDocument: boolean = false;\r\n public isCollapsed = true;\r\n token: any;\r\n public path: any;\r\n\r\n\r\n public Title: any;\r\n public Filetype: string;\r\n public docName: string;\r\n public Ext: boolean;\r\n public showChat: boolean;\r\n isCancelled: boolean;\r\n public showCallButton: boolean = true;\r\n visitObj: Visit = new Visit();\r\n public visitdata: visitdata = new visitdata();\r\n public visitId: string;\r\n public chatPatName: string;\r\n public chatPatId: string;\r\n public patId: string;\r\n public fileExtension: any;\r\n public docInfo: Doctor = new Doctor();\r\n patients: Array = new Array();\r\n docList: Array = new Array();\r\n public patInfo: Patient = new Patient();\r\n patList: Array = new Array();\r\n filteredpat: Array = new Array();\r\n fileData: File = null;\r\n filedoc: any;\r\n timerpat = timer(4000, 10000);\r\n timerdoc = timer(4000, 10000);\r\n timerlogout = timer(2000, 6000);\r\n loginVal: any;\r\n previewUrl: any = null;\r\n public documents: any;\r\n\r\n public patientDocument: any;\r\n\r\n public showView: boolean = false;\r\n ChatForm: FormGroup;\r\n ChatMessages: Array = new Array();\r\n ChatReceivedMessages: Array = new Array();\r\n docId: string;\r\n doctorRoomName: string;\r\n MeetingLink: string;\r\n public AllUserChats: any;\r\n apiStatusDestroy = false;\r\n\r\n startcall: boolean = false;\r\n roomName: any;\r\n remoteUserDisplayName: any;\r\n closeResult = '';\r\n VisitId: any;\r\n DoctorId: any;\r\n isVideoFullscreen = false;\r\n isDoctor = false;\r\n vid: any;\r\n loginP: any;\r\n logout = false;\r\n idreportnotification: any;\r\n @ViewChild('fullScreen', { static: true }) divRef;\r\n doctorRoomSubscription = new Subscription();\r\n public safeUrl : any;\r\n public hasCallStarted: boolean = false;\r\n\r\n constructor(public httpClient: HttpClient,\r\n private modalService: NgbModal,\r\n public routing: Router, private authenticationService: AuthenticationService,\r\n private route: ActivatedRoute,\r\n public global: Global, public patService: PatientService, public dialog: MatDialog,\r\n private alertService: AlertService, public docService: DoctorService,\r\n private notifyService: NotificationService, public notificationService: ChatService,\r\n private formBuilder: FormBuilder, private ref: ChangeDetectorRef,\r\n private ngZone: NgZone, private sanitizer: DomSanitizer) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.global.apiLogout = false;\r\n this.initForm();\r\n if (this.route.snapshot.queryParams['id']) {\r\n this.VisitId = this.route.snapshot.queryParamMap.get('id');\r\n }\r\n if (this.route.snapshot.queryParams['did']) {\r\n this.DoctorId = this.route.snapshot.queryParamMap.get('did');\r\n }\r\n if (this.token.UserType == \"Doctor\") {\r\n this.GetDoctorName();\r\n this.IsDoctor = true;\r\n } else {\r\n this.getPatientName();\r\n this.GetDoctorName();\r\n this.IsDoctor = false;\r\n // this.getjitsiroomname();\r\n }\r\n\r\n this.notificationService.Connect();\r\n this.notificationService.EventChatMessage.subscribe((chatData) => {\r\n if (this.ChatForm.controls[\"Id\"].value != chatData.Name) {\r\n this.OnChatUserChange();\r\n }\r\n\r\n const chatMsg = {\r\n Name: chatData.Name,\r\n Message: chatData.Message,\r\n Class: \"receiver-msg\",\r\n };\r\n this.ChatMessages.push(chatMsg);\r\n this.pushChatMsgUserwise(chatData.Name, chatMsg);\r\n\r\n });\r\n this.TimerDocandPat();\r\n this.checkpatinlist();\r\n this.changeDetectorRef = ref;\r\n //generate jitsi roomname\r\n this.room = UUID.UUID();\r\n }\r\n\r\n //jitsi start\r\n // ngAfterViewInit(): void {\r\n // if (this.token.UserType != \"Patient\") {\r\n // this.options = {\r\n // roomName: this.room,\r\n // width: \"100%\",\r\n // height: \"100%\",\r\n // configOverwrite: { prejoinPageEnabled: false },\r\n // interfaceConfigOverwrite: {\r\n // // overwrite interface properties\r\n // },\r\n // parentNode: document.querySelector('#jitsi-iframe'),\r\n // userInfo: {\r\n // displayName: this.global.doctorObj.DoctorName,\r\n // }\r\n // }\r\n\r\n // this.api = new JitsiMeetExternalAPI(this.domain, this.options);\r\n\r\n // // Event handlers\r\n // this.api.addEventListeners({\r\n // readyToClose: this.handleClose,\r\n // participantLeft: this.handleParticipantLeft,\r\n // participantJoined: this.handleParticipantJoined,\r\n // videoConferenceJoined: this.handleVideoConferenceJoined,\r\n // videoConferenceLeft: this.handleVideoConferenceLeft,\r\n // audioMuteStatusChanged: this.handleMuteStatus,\r\n // videoMuteStatusChanged: this.handleVideoStatus\r\n // });\r\n // }\r\n // }\r\n\r\n\r\n // handleClose = () => {\r\n // console.log(\"handleClose\");\r\n // }\r\n\r\n // handleParticipantLeft = async (participant) => {\r\n // console.log(\"handleParticipantLeft\", participant);\r\n // const data = await this.getParticipants();\r\n // }\r\n\r\n // handleParticipantJoined = async (participant) => {\r\n // console.log(\"handleParticipantJoined\", participant);\r\n // const data = await this.getParticipants();\r\n // }\r\n\r\n // handleVideoConferenceJoined = async (participant) => {\r\n // console.log(\"handleVideoConferenceJoined\", participant);\r\n // const data = await this.getParticipants();\r\n // }\r\n\r\n // handleVideoConferenceLeft = () => {\r\n // console.log(\"handleVideoConferenceLeft\");\r\n // localStorage.setItem(\"istimer\", \"false\");\r\n // if (this.token.UserType == \"Doctor\") {\r\n // this.routing.navigate(['/DocDashboard']);\r\n // }\r\n // else {\r\n // this.apiDestroy = true;\r\n // this.apiStatusDestroy = true;\r\n // this.routing.navigate(['/PatDashboard']);\r\n // }\r\n\r\n // }\r\n\r\n // handleMuteStatus = (audio) => {\r\n // console.log(\"handleMuteStatus\", audio); // { muted: true }\r\n // }\r\n\r\n // handleVideoStatus = (video) => {\r\n // console.log(\"handleVideoStatus\", video); // { muted: true }\r\n // }\r\n\r\n // getParticipants() {\r\n // }\r\n\r\n executeCommand(command: string) {\r\n this.api.executeCommand(command);\r\n if (command == 'hangup') {\r\n localStorage.setItem(\"istimer\", \"false\");\r\n if (this.token.UserType == \"Doctor\") {\r\n this.routing.navigate(['/DocDashboard']);\r\n }\r\n else {\r\n this.apiDestroy = true;\r\n this.apiStatusDestroy = true;\r\n this.routing.navigate(['/PatDashboard']);\r\n }\r\n return;\r\n }\r\n\r\n if (command == 'toggleAudio') {\r\n this.isAudioMuted = !this.isAudioMuted;\r\n }\r\n\r\n if (command == 'toggleVideo') {\r\n this.isVideoMuted = !this.isVideoMuted;\r\n }\r\n }\r\n //jitsi end\r\n\r\n\r\n TimerDocandPat() {\r\n this.loginVal = this.authenticationService.loginValue;\r\n this.loginP = localStorage.getItem('loginPat');\r\n localStorage.setItem(\"istimer\", \"true\");\r\n this.istimer = localStorage.getItem(\"istimer\");\r\n if (this.token.UserType === \"Patient\" && this.istimer === \"true\" && this.apiDestroy === false && this.loginP === \"patient\") {\r\n\r\n this.doctorRoomSubscription.add(this.timerpat.pipe(\r\n takeWhile(x => this.istimer === \"true\" && this.apiStatusDestroy === false && this.loginP === \"patient\")\r\n ).subscribe(\r\n () => {\r\n this.patService.getVisitFromDoctorRoom(this.VisitId).subscribe(res =>\r\n this.StatusSuccess(res),\r\n res => this.Error(res));\r\n }\r\n ));\r\n\r\n }\r\n else {\r\n\r\n this.doctorRoomSubscription.add(this.timerdoc.pipe(\r\n takeWhile(x => this.istimer === \"true\")\r\n ).subscribe(\r\n () => {\r\n this.RefreshPatients();\r\n\r\n }));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.GetPatientFiles(this.VisitId);\r\n }\r\n ngOnDestroy() {\r\n this.doctorRoomSubscription.unsubscribe();\r\n if (this.visitId != null) {\r\n this.patService.changeStatusFromDoc(this.visitId)\r\n this.patService.changeStatusFromDoc(this.visitId).subscribe(\r\n (res) => this.SuccesschangeStatusFromDoc(res),\r\n (res) => this.ErrorPatAtt(res)\r\n );\r\n\r\n // const callMsg = {\r\n // SenderId: this.IsDoctor\r\n // ? this.docInfo.IdentityUserId\r\n // : this.patInfo.IdentityUserId,\r\n // ReceiverId: this.idreportnotification,\r\n // VisitId: this.visitId,\r\n // };\r\n\r\n // this.notificationService.CallPatient(callMsg);\r\n }\r\n }\r\n SuccesschangeStatusFromDoc(res) {\r\n\r\n }\r\n private initForm() {\r\n this.ChatForm = this.formBuilder.group({\r\n Id: [null, Validators.required],\r\n chatMessage: ['', Validators.required]\r\n });\r\n }\r\n hasError(typeofvalidator: string, controlname: string): boolean {\r\n const control = this.ChatForm.controls[controlname];\r\n return control.hasError(typeofvalidator) && control.dirty;\r\n }\r\n\r\n public GetDoctorName() {\r\n this.docService.getDoctor(this.token.DoctorIdentifier ? this.token.DoctorIdentifier : this.DoctorId).subscribe(res => this.SuccessDoctorNamme(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDoctorNamme(res) {\r\n this.docInfo = res;\r\n this.docName = `${res.FirstName} ${res.MiddleName ? res.MiddleName : \"\"} ${res.LastName}`;\r\n this.docId = res?.DoctorId;\r\n this.doctorRoomName = res.DoctorRoomName;\r\n this.MeetingLink = res.MeetingLink;\r\n this.docList.push({\r\n DoctorName: this.docName,\r\n IdentityUserId: \"\"\r\n });\r\n if (this.token.UserType == \"Doctor\") {\r\n this.vid = this.authenticationService.visitid;\r\n if (this.vid !== null) {\r\n this.patService.getPatientByVisitId(this.vid).subscribe(\r\n (res) => this.DoctorRoomBrowserRefreshPatient(res),\r\n (res) => this.ErrorPatAtt(res)\r\n );\r\n }\r\n }\r\n const url = this.global.config.videourl;\r\n const urlParams = new URL(`${url}`);\r\n //const roomName = urlParams.set('room', `${this.doctorRoomName}`);\r\n // const roomName = urlParams.searchParams.set('room',`${this.doctorRoomName}`);\r\n this.global.config.videourl = urlParams.toString();\r\n\r\n //if (this.token.UserType === \"Doctor\" || this.token.UserType === \"Patient\") {\r\n //this.domain = \"meet.jit.si\";\r\n //this.options = {\r\n // roomName: `${this.doctorRoomName}_${this.docName}`,\r\n // //width: 850,\r\n // //height: 570,\r\n // parentNode: document.querySelector('#meet'),\r\n // configOverwrite: {\r\n // doNotStoreRoom: true,\r\n // disableInviteFunctions: true,\r\n // startWithVideoMuted: true,\r\n // startWithAudioMuted: true,\r\n // enableWelcomePage: false,\r\n // disableRemoteMute: true,\r\n // prejoinPageEnabled: false,\r\n // remoteVideoMenu: {\r\n // // If set to true the 'Kick out' button will be disabled.\r\n // disableKick: true\r\n // },\r\n // },\r\n // interfaceConfigOverwrite: {\r\n // SHOW_BRAND_WATERMARK: false,\r\n // SHOW_CHROME_EXTENSION_BANNER: false,\r\n // SHOW_JITSI_WATERMARK: false,\r\n // SHOW_POWERED_BY: false,\r\n // SHOW_WATERMARK_FOR_GUESTS: false,\r\n // TOOLBAR_ALWAYS_VISIBLE: false,\r\n // GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,\r\n // DISPLAY_WELCOME_PAGE_CONTENT: false,\r\n // DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false,\r\n // DEFAULT_REMOTE_DISPLAY_NAME: `${this.patInfo.PatientId}`,\r\n // filmStripOnly: false,\r\n // TOOLBAR_BUTTONS: ['microphone', 'camera', 'fullscreen', 'videoquality']\r\n // }\r\n //}\r\n //this.api = new JitsiMeetExternalAPI(this.domain, this.options);\r\n\r\n }\r\n\r\n\r\n public getPatientName() {\r\n this.patService.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(\r\n (res) => {\r\n this.patInfo = res;\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n\r\n StatusSuccess(res) {\r\n /* var status = new Array();*/\r\n let status = new Visit();\r\n status = res;\r\n this.loginP = localStorage.getItem('loginPat');\r\n if (status.Status === \"completed\") {\r\n this.apiDestroy = true;\r\n this.patService.VisitId = status.VisitId;\r\n this.apiStatusDestroy = true;\r\n this.routing.navigate(['/FinalReport']);\r\n }\r\n if (status.Status == \"initiated\" && status.IsActive === true) {\r\n this.apiDestroy = true;\r\n this.apiStatusDestroy = true;\r\n this.routing.navigate(['/WaitingRoom'], { queryParams: { redirectUrl: 'PatientUrl', did: this.DoctorId, vid: this.VisitId } });\r\n }\r\n if (status.Status === \"initiated\" && status.IsActive === false && this.loginP === \"patient\") {\r\n this.apiDestroy = true;\r\n this.apiStatusDestroy = true;\r\n this.routing.navigate(['/PatDashboard']);\r\n }\r\n }\r\n\r\n RefreshPatients() {\r\n var DoctorId = this.token.DoctorIdentifier;\r\n\r\n this.patService.getPatientsInDoctorRoom(DoctorId).subscribe(\r\n (res) => this.SuccessRefreshPatients(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessRefreshPatients(res) {\r\n if (res != null) {\r\n if (res.length > 0) {\r\n this.patients = res;\r\n if (this.patList.length == 0) {\r\n this.patList = res;\r\n this.patList = this.patList.filter(\r\n (s) => s.VisitType == 'Telemedicine'\r\n );\r\n }\r\n if (this.patList.length !== this.patients.length) {\r\n this.showCallButton = true;\r\n if (this.patients.length === 1) {\r\n this.chatPatId = this.patients[0].IdentityUserId;\r\n this.chatPatName = this.patients[0].PatientName;\r\n }\r\n this.patList = res;\r\n this.patList = this.patList.filter(\r\n (s) => s.VisitType == 'Telemedicine'\r\n );\r\n }\r\n } else if (res.length === 0) {\r\n localStorage.removeItem(\"istimer\");\r\n localStorage.setItem('istimer', \"false\");\r\n this.istimer = localStorage.getItem('istimer');\r\n\r\n this.patients = [];\r\n this.routing.navigate(['/DocDashboard'], { queryParams: { redirectUrl: 'PatientUrl' } });\r\n this.notifyService.showInfo(\"Info\", \"There are no patients in Doctor Room \");\r\n }\r\n\r\n else {\r\n this.patients = [];\r\n }\r\n }\r\n\r\n }\r\n DoctorRoomBrowserRefreshPatient(res) {\r\n this.visitObj = res;\r\n //this.visitObj.Status = \"ongoing\";\r\n //this.visitObj.IsActive = true;\r\n if (this.visitObj.Status === 'ongoing') {\r\n const DoctorId = this.token.DoctorIdentifier;\r\n\r\n this.patService.getPatientDocList(DoctorId).subscribe(\r\n (res) => this.SuccessBrowserRefreshPatients(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n }\r\n SuccessBrowserRefreshPatients(res) {\r\n if (res.length > 0) {\r\n this.patients = res;\r\n if (this.patList.length === 0) {\r\n this.patList = res;\r\n this.patList = this.patList.filter(\r\n (s) => s.VisitType == 'Telemedicine'\r\n );\r\n }\r\n if (this.patList.length !== this.patients.length) {\r\n this.showCallButton = true;\r\n if (this.patients.length === 1) {\r\n this.chatPatId = this.patients[0].IdentityUserId;\r\n this.chatPatName = this.patients[0].PatientName;\r\n }\r\n this.patList = res;\r\n this.patList = this.patList.filter(\r\n (s) => s.VisitType == 'Telemedicine'\r\n );\r\n }\r\n } else if (res.length === 0) {\r\n localStorage.removeItem(\"istimer\");\r\n localStorage.setItem('istimer', \"false\");\r\n this.istimer = localStorage.getItem('istimer');\r\n\r\n this.patients = [];\r\n this.routing.navigate(['/DocDashboard']);\r\n\r\n\r\n this.startcall = false;\r\n\r\n\r\n this.routing.navigate(['/DocDashboard'], { queryParams: { redirectUrl: 'PatientUrl' } });\r\n this.notifyService.showInfo(\"Info\", \"There are no patients in Doctor Room \");\r\n }\r\n\r\n else {\r\n this.patients = [];\r\n }\r\n this.filteredpat = new Array();\r\n this.filteredpat = JSON.parse(JSON.stringify(this.patients)); //deepcopy\r\n this.filteredpat = this.filteredpat.filter(\r\n (s) => s.VisitId == this.vid\r\n );\r\n this.showPatDetail = true;\r\n }\r\n CallPatient(VisitId: string, IdentityUserId: string) {\r\n //call to pat and pass jitsi room name\r\n // this.patService.PostJitsiRoomName(VisitId, this.room).subscribe(\r\n // (res) => this.SuccessCreateSession(res),\r\n // (res) => this.ErrorCreateSessionfailed(res)\r\n // );\r\n if(VisitId && IdentityUserId){\r\n this.getZoomSignature();\r\n this.visitId = VisitId;\r\n this.vid = this.authenticationService.visitIdToken(VisitId);\r\n this.showCallButton = false;\r\n //this.showPatDetail = true;\r\n this.idreportnotification = IdentityUserId;\r\n this.GetPatientFiles(VisitId);\r\n this.hasCallStarted = true;\r\n }\r\n else{\r\n this.hasCallStarted = false;\r\n this.notifyService.showError(\"\", \"Failed to Join the call\");\r\n }\r\n }\r\n\r\n SuccessCreateSession(res) {\r\n this.patService.getPatientByVisitId(this.visitId).subscribe(\r\n (res) => this.SuccessCallPatient(res),\r\n (res) => this.ErrorPatAtt(res)\r\n );\r\n }\r\n\r\n\r\n\r\n ErrorCreateSessionfailed(res) {\r\n\r\n }\r\n\r\n SuccessCallPatient(res) {\r\n this.visitObj = res;\r\n this.visitObj.Status = \"ongoing\";\r\n this.visitObj.IsActive = true;\r\n this.visitObj.VisitStartTime = new Date();\r\n\r\n //this.patService.updateStatus(this.visitObj, this.visitId)\r\n // .subscribe(res =>\r\n // this.alertService.success('Patient Called', true));\r\n this.filteredpat = new Array();\r\n this.filteredpat = JSON.parse(JSON.stringify(this.patients)); //deepcopy\r\n this.filteredpat = this.filteredpat.filter(\r\n (s) => s.VisitId == this.visitId\r\n );\r\n this.showPatDetail = true;\r\n this.UpdateStatus();\r\n\r\n }\r\n\r\n\r\n\r\n UpdateStatus() {\r\n this.patService.updateStatus(this.visitObj, this.visitId)\r\n .subscribe(res => this.SuccessUpdateStaus(res),\r\n res => this.ErrorPatAtt(res));\r\n }\r\n SuccessUpdateStaus(res) {\r\n\r\n console.log(`call to pat`);\r\n this.alertService.success('Patient Called', true);\r\n this.patService.PatientByVisit = false;\r\n this.RefreshPatients();\r\n this.logout = false;\r\n \r\n this.doctorRoomSubscription.add(this.timerlogout.pipe(\r\n takeWhile(x => this.logout === false)\r\n ).subscribe(\r\n () => {\r\n this.patService.getVisitFromWaitingRoom(this.visitId).subscribe(res =>\r\n this.StatusLogoutSuccess(res),\r\n res => this.Error(res));\r\n\r\n }\r\n ));\r\n }\r\n StatusLogoutSuccess(res) {\r\n let status = new Visit();\r\n status = res;\r\n if (status != null) {\r\n /*if (status[0].Status === \"initiated\" && status[0].IsActive === false) {*/\r\n if (status.Status === \"initiated\" && status.IsActive === false) {\r\n this.logout = true;\r\n this.RefreshPatients();\r\n this.showCallButton = false;\r\n this.apiStatusDestroy = true;\r\n\r\n }\r\n\r\n }\r\n else {\r\n this.logout = true;\r\n }\r\n\r\n\r\n }\r\n GetPatientFiles(VisitId) {\r\n //this.visitId = this.visitId;\r\n this.clickDocument = true;\r\n this.patService.getPatientDocuments(VisitId).subscribe(\r\n (res) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.documents = res?.Results;\r\n this.patientDocument = this.documents;\r\n if (this.patientDocument.length > 0) {\r\n this.showDocument = true;\r\n }\r\n } else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n //this.loading = false;\r\n });\r\n }\r\n\r\n openDialog(VisitId, PatientId) {\r\n this.EndMeeting(VisitId, PatientId); // Rohan: Calling End Meeting Function as the functionality is same. \r\n // const dialogRef = this.dialog.open(PopUpDialogComponent, {\r\n // data: { msg: \"fromDocRoom\" }, disableClose: true,\r\n // width: '250px',\r\n // height: '300',\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // this.isCancelled = result;\r\n // if (this.isCancelled === true) {\r\n // this.PatientAttended(VisitId);\r\n // }\r\n // else {\r\n // this.patService.changeStatus(VisitId)\r\n // .subscribe(res => this.SuccesschangeStatus(res),\r\n // res => this.Error(res));\r\n // }\r\n // });\r\n\r\n }\r\n SuccesschangeStatus(res) {\r\n this.showCallButton = true;\r\n }\r\n\r\n PatientAttended(VisitId, PatientId) {\r\n this.showPatDetail = false;\r\n this.showCallButton = true;\r\n this.patService.getPatientByVisitId(VisitId).subscribe(\r\n (res) => this.SuccessPatientAttend(res, VisitId, PatientId),\r\n (res) => this.ErrorPatAtt(res)\r\n );\r\n }\r\n\r\n SuccessPatientAttend(res, VisitId, PatientId) {\r\n //this.patService.VisitId = VisitId;\r\n this.visitdata = Object.assign(this.visitdata, res)\r\n this.visitdata.Results.IsActive = false;\r\n this.visitdata.Results.Status = \"completed\";\r\n this.visitdata.Results.TreatmentAdvice = this.visitObj.TreatmentAdvice;\r\n this.visitdata.Results.Medication = this.visitObj.Medication;\r\n this.visitdata.Results.FollowUp = this.visitObj.FollowUp;\r\n localStorage.removeItem('vid');\r\n this.patService.updateTreatmentAdvice(this.visitdata.Results, PatientId).subscribe(\r\n (res) =>this.notifyService.showInfo(\"Treatment Advice Added !\", \"Success\"),\r\n (res) => this.Error(res)\r\n );\r\n const DoctorId = this.token.DoctorIdentifier;\r\n this.patService.getPatientDocList(DoctorId).subscribe(\r\n (res) => this.SuccessRefreshPatients(res),\r\n (res) => this.Error(res)\r\n );\r\n\r\n const chatMsg = {\r\n SenderId: this.IsDoctor\r\n ? this.docInfo.IdentityUserId\r\n : this.patInfo.IdentityUserId,\r\n ReceiverId: this.idreportnotification,\r\n Name: this.IsDoctor\r\n ? `${this.docInfo.FirstName} ${this.docInfo.MiddleName ? this.docInfo.MiddleName : \"\"\r\n } ${this.docInfo.LastName}`\r\n : `${this.patInfo.FirstName} ${this.patInfo.MiddleName ? this.patInfo.MiddleName : \"\"\r\n } ${this.patInfo.LastName}`,\r\n ReceiverName: this.IsDoctor ? this.chatPatName : this.docName,\r\n VisitId: VisitId,\r\n };\r\n\r\n // this.notificationService.SendReport(chatMsg);\r\n this.PatientCompleted();\r\n }\r\n PatientCompleted() {\r\n //this.patService.VisitId = null;\r\n this.filteredpat = new Array();\r\n this.RefreshPatients();\r\n }\r\n ErrorPatAtt(res) { }\r\n\r\n Error(res) {\r\n alert(res.status);\r\n }\r\n\r\n preview(filePath, fileExt, Title) {\r\n this.showView = true;\r\n this.Title = Title + \".\" + fileExt;;\r\n //window.open(filePath);\r\n this.path = filePath;\r\n this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.path)\r\n this.fileExtension = fileExt;\r\n if (\r\n this.fileExtension == \"jpeg\" ||\r\n this.fileExtension == \"JPEG\" ||\r\n this.fileExtension == \"png\" ||\r\n this.fileExtension == \"PNG\" ||\r\n this.fileExtension == \"JPG\" ||\r\n this.fileExtension == \"jpg\"\r\n ) {\r\n this.Filetype = \"image\";\r\n }\r\n if (this.fileExtension == \"pdf\" || this.fileExtension == \"PDF\") {\r\n this.Filetype = \"pdf\";\r\n }\r\n if (\r\n this.fileExtension == \"docx\" ||\r\n this.fileExtension == \"DOCX\" ||\r\n this.fileExtension == \"DOC\" ||\r\n this.fileExtension == \"doc\"\r\n ) {\r\n this.Filetype = \"docfile\";\r\n }\r\n }\r\n hide() {\r\n this.showView = false;\r\n }\r\n SendChatMsg() {\r\n if (this.token.UserType == \"Patient\") {\r\n this.ChatForm.controls[\"Id\"].setValue(this.docName);\r\n }\r\n try {\r\n for (const i in this.ChatForm.controls) {\r\n this.ChatForm.controls[i].markAsDirty();\r\n this.ChatForm.controls[i].updateValueAndValidity();\r\n }\r\n\r\n if (this.ChatForm.valid) {\r\n const chatMsg = {\r\n SenderId: this.IsDoctor\r\n ? this.docInfo.IdentityUserId\r\n : this.patInfo.IdentityUserId,\r\n ReceiverId: this.IsDoctor\r\n ? this.chatPatId\r\n : this.docInfo.IdentityUserId,\r\n Name: this.IsDoctor\r\n ? `${this.docInfo.FirstName} ${this.docInfo.MiddleName ? this.docInfo.MiddleName : \"\"\r\n } ${this.docInfo.LastName}`\r\n : `${this.patInfo.FirstName} ${this.patInfo.MiddleName ? this.patInfo.MiddleName : \"\"\r\n } ${this.patInfo.LastName}`,\r\n ReceiverName: this.IsDoctor ? this.chatPatName : this.docName,\r\n Message: this.ChatForm.controls[\"chatMessage\"].value,\r\n };\r\n const chatmsgObj = {\r\n Name: \"Me\",\r\n Message: chatMsg.Message,\r\n Class: \"sender-msg\",\r\n ChatPatName: this.chatPatName\r\n };\r\n this.ChatMessages.push(chatmsgObj);\r\n this.pushChatMsgUserwise(\r\n this.ChatForm.controls[\"Id\"].value.PatientName,\r\n chatmsgObj\r\n );\r\n\r\n // this.cdr.detectChanges();\r\n // this.scrollBottom.nativeElement.lastElementChild.scrollIntoView(); // scroll to bottom\r\n\r\n this.notificationService.SendChatMessage(chatMsg);\r\n\r\n // this.ChatForm.reset();\r\n this.ChatForm.controls[\"chatMessage\"].reset();\r\n if (this.token.UserType == \"Doctor\") {\r\n this.ChatForm.controls[\"Id\"].value.setValue(chatMsg.Name);\r\n } else {\r\n this.ChatForm.controls[\"Id\"].setValue(this.chatPatName);\r\n }\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n OnChatUserChange() {\r\n try {\r\n const id = this.ChatForm.controls[\"Id\"].value.PatientName;\r\n this.chatPatId = this.ChatForm.controls[\"Id\"].value.IdentityUserId;\r\n this.chatPatName = this.ChatForm.controls[\"Id\"].value.PatientName;\r\n if (this.AllUserChats.hasOwnProperty(id)) {\r\n this.ChatMessages = this.AllUserChats[id].slice();\r\n this.ChatReceivedMessages = this.AllUserChats[id].slice();\r\n } else {\r\n this.ChatMessages = new Array();\r\n this.ChatReceivedMessages = new Array();\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n onChatEnter(event) {\r\n if (event.keyCode === 13) {\r\n this.SendChatMsg();\r\n }\r\n }\r\n pushChatMsgUserwise(user, messageObj) {\r\n try {\r\n if (!this.AllUserChats.hasOwnProperty(user)) {\r\n this.AllUserChats[user] = new Array();\r\n }\r\n this.AllUserChats[user].push(messageObj);\r\n } catch (e) { }\r\n }\r\n\r\n checkpatinlist() {\r\n var DoctorId = this.token.DoctorIdentifier;\r\n\r\n this.patService.getPatientDocList(DoctorId).subscribe(\r\n (res) => this.Successcheckpatlist(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n\r\n Successcheckpatlist(res) {\r\n }\r\n\r\n\r\n\r\n\r\n open(content) {\r\n this.modalService.open(content, { ariaLabelledBy: 'modal-basic-title', windowClass: 'modal-send-message' }).result.then((result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n }, (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n });\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n exitFullscreen() {\r\n this.isVideoFullscreen = false;\r\n }\r\n openFullscreen() {\r\n this.isVideoFullscreen = true;\r\n // Use this.divRef.nativeElement here to request fullscreen\r\n const elem = this.divRef.nativeElement;\r\n\r\n if (elem.requestFullscreen) {\r\n elem.requestFullscreen();\r\n } else if (elem.msRequestFullscreen) {\r\n elem.msRequestFullscreen();\r\n } else if (elem.mozRequestFullScreen) {\r\n elem.mozRequestFullScreen();\r\n } else if (elem.webkitRequestFullscreen) {\r\n elem.webkitRequestFullscreen();\r\n }\r\n }\r\n closeFullscreen() {\r\n this.isVideoFullscreen = false;\r\n //const elem = this.divRef.nativeElement;\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n }\r\n }\r\n\r\n //openFullscreen() {\r\n // this.isVideoFullscreen = true;\r\n // // Trigger fullscreen\r\n // const docElmWithBrowsersFullScreenFunctions = document.documentElement as HTMLElement & {\r\n // mozRequestFullScreen(): Promise;\r\n // webkitRequestFullscreen(): Promise;\r\n // msRequestFullscreen(): Promise;\r\n // };\r\n\r\n // if (docElmWithBrowsersFullScreenFunctions.requestFullscreen) {\r\n // docElmWithBrowsersFullScreenFunctions.requestFullscreen();\r\n // } else if (docElmWithBrowsersFullScreenFunctions.mozRequestFullScreen) { /* Firefox */\r\n // docElmWithBrowsersFullScreenFunctions.mozRequestFullScreen();\r\n // } else if (docElmWithBrowsersFullScreenFunctions.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\r\n // docElmWithBrowsersFullScreenFunctions.webkitRequestFullscreen();\r\n // } else if (docElmWithBrowsersFullScreenFunctions.msRequestFullscreen) { /* IE/Edge */\r\n // docElmWithBrowsersFullScreenFunctions.msRequestFullscreen();\r\n // }\r\n //}\r\n\r\n //closefullscreen() {\r\n // this.isVideoFullscreen = false;;\r\n // const docWithBrowsersExitFunctions = document as Document & {\r\n // mozCancelFullScreen(): Promise;\r\n // webkitExitFullscreen(): Promise;\r\n // msExitFullscreen(): Promise;\r\n // };\r\n // if (docWithBrowsersExitFunctions.exitFullscreen) {\r\n // docWithBrowsersExitFunctions.exitFullscreen();\r\n // } else if (docWithBrowsersExitFunctions.mozCancelFullScreen) { /* Firefox */\r\n // docWithBrowsersExitFunctions.mozCancelFullScreen();\r\n // } else if (docWithBrowsersExitFunctions.webkitExitFullscreen) { /* Chrome, Safari and Opera */\r\n // docWithBrowsersExitFunctions.webkitExitFullscreen();\r\n // } else if (docWithBrowsersExitFunctions.msExitFullscreen) { /* IE/Edge */\r\n // docWithBrowsersExitFunctions.msExitFullscreen();\r\n // }\r\n //}\r\n // getjitsiroomname() {\r\n // this.patService.getVisitFromWaitingRoom(this.VisitId).subscribe(res =>\r\n // this.getjitsiSuccess(res),\r\n // res => this.Error(res));\r\n // }\r\n\r\n // getjitsiSuccess(res) {\r\n\r\n // if (!res.PostJitsiRoomName) {\r\n // this.options = {\r\n // roomName: res.JitsiRoomName,\r\n // width: \"100%\",\r\n // height: \"100%\",\r\n // configOverwrite: { prejoinPageEnabled: false },\r\n // interfaceConfigOverwrite: {\r\n // // overwrite interface properties\r\n // },\r\n // parentNode: document.querySelector('#jitsi-iframe'),\r\n // userInfo: {\r\n // displayName: this.patInfo.FirstName,\r\n // }\r\n // }\r\n\r\n // this.api = new JitsiMeetExternalAPI(this.domain, this.options);\r\n\r\n // // Event handlers\r\n // this.api.addEventListeners({\r\n // readyToClose: this.handleClose,\r\n // participantLeft: this.handleParticipantLeft,\r\n // participantJoined: this.handleParticipantJoined,\r\n // videoConferenceJoined: this.handleVideoConferenceJoined,\r\n // videoConferenceLeft: this.handleVideoConferenceLeft,\r\n // audioMuteStatusChanged: this.handleMuteStatus,\r\n // videoMuteStatusChanged: this.handleVideoStatus\r\n // });\r\n // }\r\n // }\r\n\r\n download() {\r\n window.open(this.path);\r\n }\r\n\r\n client = ZoomMtgEmbedded.createClient();\r\n // meetingNumber = \"2278567480\";\r\n // apiKey = \"OkIXXMhwSbaiZnvWsy_rVQ\";\r\n // apiSecret = \"tUmpngwqqL9KqHTDC8HmKghFBe41Er8k\";\r\n // password = \"i9iXuV\";\r\n getZoomSignature(): void{\r\n //call to pat and pass jitsi room name\r\n this.patService.getZoomSignature(this.docId).subscribe(\r\n (res) => this.successGetZoomSignature(res),\r\n (res) => this.errorGettingZoomSignature(res)\r\n );\r\n }\r\n\r\n successGetZoomSignature(res): void{\r\n\r\n this.SuccessCreateSession(res);\r\n\r\n if(res?.Results){\r\n this.startMeeting(res?.Results);\r\n }\r\n }\r\n\r\nstartMeeting(signature): void {\r\n let meetingSDKElement = document.getElementById('meetingSDKElement');\r\n const [headerEncoded, payloadEncoded, lwtSignature] = signature.split('.');\r\n const payload = JSON.parse(atob(payloadEncoded));\r\n \r\n this.ngZone.runOutsideAngular(async () => {\r\n try {\r\n await this.client.init({ zoomAppRoot: meetingSDKElement, language: 'en-US' });\r\n await this.client.join({\r\n signature: signature,\r\n sdkKey: payload.appKey, // Fixed: Use apiKey instead of sdkKey\r\n meetingNumber: payload.mn,\r\n password: payload.password,\r\n userName: `Dr. ${this.global.doctorObj.DoctorName}`,\r\n tk: \"\",\r\n zak: \"\"\r\n });\r\n\r\n console.log('Joined successfully');\r\n this.client.on('connection-change', (status) => {\r\n console.log('Meeting status changed:', status);\r\n });\r\n } catch (error) {\r\n await this.client.leaveMeeting(); \r\n console.log('Left the meeting successfully');\r\n console.error(error);\r\n\r\n }\r\n });\r\n }\r\n\r\n errorGettingZoomSignature(res): void{\r\n console.log(res);\r\n }\r\n\r\n EndMeeting(visitId, patientId): void{\r\n const dialogRef = this.dialog.open(PopUpDialogComponent, {\r\n data: { msg: \"exitMeeting\" }, disableClose: true,\r\n width: '250px',\r\n height: '300',\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.isCancelled = result;\r\n if (this.isCancelled === true) {\r\n this.PatientAttended(visitId, patientId); //Rohan: Calling PatientAttend function to add medications, followup and advice for patient.\r\n //update status of visit.\r\n this.visitdata.Results.Status = \"completed\";\r\n this.visitdata.Results.IsActive = false;\r\n this.visitdata.Results.VisitStartTime = new Date();\r\n this.visitdata.Results.VisitId = visitId;\r\n this.visitdata.Results.PatientId = patientId;\r\n this.UpdateVisitStatus();\r\n localStorage.setItem(\"istimer\", \"false\");\r\n if (this.token.UserType == \"Doctor\") {\r\n this.routing.navigate(['/DocDashboard']);\r\n window.location.reload();\r\n }\r\n // else {\r\n // this.apiDestroy = true;\r\n // this.apiStatusDestroy = true;\r\n // this.routing.navigate(['/PatDashboard']);\r\n // }\r\n }\r\n else {\r\n // dialogRef.close();\r\n }\r\n }); \r\n }\r\n\r\n UpdateVisitStatus():void{\r\n this.patService.updateVisitStatus(this.visitdata.Results, this.visitId)\r\n .subscribe(res => this.SuccessUpdateVisitStaus(res),\r\n res => this.ErrorPatAtt(res));\r\n }\r\n SuccessUpdateVisitStaus(res): void{\r\n\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

\r\n {{ row.PatientFamilyName ? row.PatientFamilyName : row.PatientName }} - {{ row.PatientFamilyGender ? row.PatientFamilyGender : row.Gender }}\r\n

\r\n
\r\n {{ row.FamilyContactNumber ? row.FamilyContactNumber : row.ContactNumber}}\r\n
\r\n
\r\n {{ row.FamilyAddress ? row.FamilyAddress : row.Address }}\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n \r\n Exit Full Screen\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Patient Files\r\n
\r\n
\r\n \r\n {{data.FileType}}\r\n \r\n
\r\n
\r\n

Empty

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n Please select your {{ IsDoctor ? 'Patient' : 'Doctor' }} to start conversiation.\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n {{ IsDoctor ? 'Patient' : 'Doctor' }} is required\r\n
\r\n    \r\n
\r\n
\r\n \r\n {{ msg.Name }}: {{ msg.Message }}\r\n \r\n
\r\n
\r\n {{ msg.Message }} \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Chat message is required\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Patients in Queue\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{temp.PatientFamilyName ? temp.PatientFamilyName : temp.PatientName}}
\r\n
\r\n
{{temp.PatientFamilyMemberAge ? temp.PatientFamilyMemberAge : temp.Age}}
\r\n
\r\n
{{temp.PatientFamilyGender ? temp.PatientFamilyGender : temp.Gender}}
\r\n
\r\n
{{temp.VisitType}}
\r\n
\r\n
\r\n \r\n Call\r\n \r\n\r\n  \r\n {{temp.BookingTime}}\r\n
\r\n\r\n
\r\n {{temp.BookingTime}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{Title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{Title}}\r\n \r\n
\r\n \r\n
\r\n
\r\n \"info-image\"\r\n\r\n \r\n \r\n \r\n Download\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","\r\n
\r\n \r\n\r\n \r\n + Register Doctor\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n Doctor List\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
SNFull NameContact NumberAction
{{itemsPerPage *(p-1)+(i+1)}}{{data.DoctorName}}{{data.PhoneNumber }}\r\n Update Profile \r\n Reset Password \r\n Deactivate \r\n Activate \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
SNFull NameContact NumberAction
{{i+1}}{{data.DoctorName}}{{data.PhoneNumber }}\r\n Update Profile \r\n Reset Password \r\n Deactivate \r\n Activate \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
","import { Component, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global } from '../../app.global';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport * as moment from 'moment';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { RescheduleComponent } from '../doctor_reschedule/app.doctor_reschedule';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DoctorUpdateProfileComponent } from '../doctor_updateprofile/app.doctor_updateprofile';\r\nimport { Doctor } from '../../models/doctor/doctor.model';\r\nimport { PasswordComponent } from '../../components/common/password/password.component';\r\n\r\n@Component({\r\n templateUrl: './doctor_list.component.html'\r\n})\r\nexport class DoctorListComponent implements AfterViewInit {\r\n config: any;\r\n token: any;\r\n public searchText: any = \"\";\r\n doctorList: Array = new Array();\r\n filteredPatientList: any;\r\n public editModal: boolean;\r\n collection = { count: 60, data: [] };\r\n p: number = 1;\r\n @ViewChild('doctorEditor', { static: true })\r\n doctorEditor: DoctorUpdateProfileComponent;\r\n editedDoctor: Doctor;\r\n isDocEditor = false;\r\n hospital: string;\r\n public pwdModal: boolean;\r\n @ViewChild('pwdEditor', { static: true })\r\n pwdEditor: PasswordComponent;\r\n editedPwdDoctor: Doctor;\r\n public isDoctor = false;\r\n public itemsPerPage: number = 10;\r\n constructor(public routing: Router, public docService: DoctorService, public authService: AuthenticationService, public alertService: AlertService,\r\n public global: Global, public notifyService: NotificationService, public dialog: MatDialog, private authenticationService: AuthenticationService) {\r\n this.token = this.authService.currentUserValue;\r\n this.hospital = this.token.HospitalIdentifier;\r\n this.showDoctorList();\r\n this.editModal = false;\r\n this.pwdModal = false;\r\n\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n ngAfterViewInit() {\r\n\r\n this.doctorEditor.changesSavedCallback = () => {\r\n this.editModal = false;\r\n this.showDoctorList();\r\n };\r\n this.doctorEditor.changesCancelledCallback = () => {\r\n this.editModal = false;\r\n };\r\n\r\n this.pwdEditor.changesSavedCallback = () => {\r\n this.pwdModal = false;\r\n this.showDoctorList();\r\n };\r\n this.pwdEditor.changesCancelledCallback = () => {\r\n this.pwdModal = false;\r\n };\r\n\r\n }\r\n\r\n public showDoctorList() {\r\n this.docService.getDoctorList().subscribe((res: any) => {\r\n this.doctorList = Object.assign(this.doctorList, res?.Results);\r\n\r\n\r\n this.collection = { count: this.doctorList.length, data: [] }\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n FullName: this.doctorList[i].DoctorName,\r\n PhoneNumber: this.doctorList[i].Phonenumber,\r\n\r\n }\r\n );\r\n }\r\n\r\n },\r\n\r\n\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n\r\n regDoc() {\r\n this.routing.navigate(['register'], { queryParams: { id: \"docregister\", hospital: this.hospital } });\r\n }\r\n UpdateProfile(row: Doctor) {\r\n this.isDocEditor = true;\r\n this.editedDoctor = this.doctorEditor.editDoctor(row, this.isDocEditor, this.hospital);\r\n this.editModal = true;\r\n }\r\n ResetPassword(row: Doctor) {\r\n this.isDoctor = true;\r\n this.editedPwdDoctor = this.pwdEditor.resetPwdDoctor(row, row.DoctorName, this.isDoctor);\r\n this.pwdModal = true;\r\n }\r\n Deactivate(row: Doctor) {\r\n const token = this.authenticationService.currentUserValue;\r\n if (token) {\r\n row.AdminId = token.unique_name;\r\n }\r\n this.docService.deactivateDoctor(row).subscribe(res => this.SuccessDeactivate(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDeactivate(res) {\r\n if (res[0].IsActive == true) {\r\n this.notifyService.showSuccess(\"Info\", \"Activate successfully\");\r\n this.showDoctorList();\r\n }\r\n else {\r\n this.notifyService.showInfo(\"Info\", \"Deactivate successfully\");\r\n this.showDoctorList();\r\n }\r\n }\r\n Error(res) {\r\n this.notifyService.showSuccess(\"Error\", \"cannot deactivate\");\r\n }\r\n hide() {\r\n this.editModal = false;\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n

\r\n My Patient List\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNVisit DateVisit TypePatient NameAgeGenderMobile No.Action
{{i+1}}{{data.VisitDate}}{{data.VisitType}}{{data.PatientName }}{{data.Age }}{{data.Gender }}{{data.ContactNumber }}\r\n Re-Schedule \r\n View \r\n
\r\n\r\n \r\n \r\n\r\n\r\n\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global } from '../../app.global';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport * as moment from 'moment';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { RescheduleComponent } from '../doctor_reschedule/app.doctor_reschedule';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ViewOPSummaryComponent } from 'src/app/Doctor/OP_Summary/app.View_OP_summary';\r\n@Component({\r\n templateUrl: './app.patientlist.html'\r\n})\r\nexport class PatientListComponent {\r\n config: any;\r\n token: any;\r\n public filterdate = moment().format('YYYY-MM-DD');\r\n public deptId: string ;\r\n public hosId: string;\r\n public visitId:string;\r\n public DepartmentId: any;\r\n public HospitalId: string;\r\n patientList: Array = new Array();\r\n filteredPatientList: any;\r\n public dailyvisit: boolean;\r\n collection = { count: 60, data: [] };\r\n p: number = 1;\r\n public reschedule: boolean = false ;\r\n public visitObj: Visit = new Visit();\r\n constructor(public routing: Router,public schedulingService: SchedulingService , public docService: DoctorService, public authService: AuthenticationService, public patService: PatientService, public alertService: AlertService,\r\n public global: Global , public notifyService: NotificationService , public dialog: MatDialog,) {\r\n this.token = this.authService.currentUserValue;\r\n this.showPatientList();\r\n\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n\r\n\r\n public showPatientList() {\r\n this.dailyvisit = true;\r\n this.docService.getPatientList(this.token.DoctorIdentifier).subscribe((res: any) => {\r\n this.patientList = Object.assign(this.patientList ,res?.Results);\r\n\r\n\r\n for (var i = 0; i < this.patientList.length; i++) {\r\n this.patientList[i].VisitDate = moment(this.patientList[i].VisitDate).format(\"YYYY-MM-DD\");\r\n }\r\n\r\n this.collection = {count: this.patientList.length,data:[]}\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitId:this.patientList[i].VisitId,\r\n VisitDate: this.patientList[i].VisitDate,\r\n PatientName:this.patientList[i].PatientName,\r\n Age:this.patientList[i].Age,\r\n Gender:this.patientList[i].Gender,\r\n ContactNumber:this.patientList[i].ContactNumber,\r\n HospitalId:this.patientList[i].HospitalId,\r\n DepartmentId:this.patientList[i].DepartmentId,\r\n SchedulingId: this.patientList[i].SchedulingId,\r\n BookingTime: this.patientList[i].BookingTime,\r\n PatientId: this.patientList[i].PatientId,\r\n VisitType: this.patientList[i].VisitType,\r\n ShowViewOPSummary: this.patientList[i].ShowViewOPSummary\r\n }\r\n );\r\n }\r\n this.ChangeDate();\r\n\r\n },\r\n\r\n\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n ChangeDate() {\r\n this.filteredPatientList = new Array();\r\n this.filteredPatientList = JSON.parse(JSON.stringify(this.collection.data));//deepcopy\r\n this.filteredPatientList = this.filteredPatientList.filter(a => a.VisitDate == this.filterdate);\r\n }\r\n\r\n Reschedule(j:number){\r\n this.deptId = this.filteredPatientList[j].DepartmentId;\r\n this.hosId = this.filteredPatientList[j].HospitalId;\r\n this.visitId= this.filteredPatientList[j].VisitId;\r\n const dialogRef = this.dialog.open(RescheduleComponent,\r\n { data: { docId: this.token.DoctorIdentifier, deptId: this.deptId, hosId: this.hosId, visitId: this.visitId, schedullingId: this.filteredPatientList[j].SchedulingId, bookingTime: this.filteredPatientList[j].BookingTime, appointmentType: this.filteredPatientList[j].VisitType } ,width: '1000px', height: '1000px'}\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n this.routing.navigate(['/DocPatientList']);\r\n });\r\n }\r\n\r\n hide(){\r\n this.reschedule = false ;\r\n }\r\n\r\n ViewOPSummary(data){\r\n this.patService.getOPSummary(data.PatientId ,data.VisitId). subscribe(res => this.Successsummary(res),\r\n res => this.ErrorSuccesssummary(res));\r\n }\r\n\r\n Successsummary(data){\r\n if(data && data.IsSuccess && data.Results){\r\n const dialogRef = this.dialog.open(ViewOPSummaryComponent,\r\n { data: {\r\n PatientId: data.Results.PatientId,\r\n PatientName: data.Results.PatientName,\r\n Age: data.Results.Age,\r\n Gender: data.Results.Gender,\r\n Address: data.Results.Address,\r\n ContactNumber: data.Results.ContactNumber,\r\n VisitDate: data.Results.VisitDate,\r\n BookingTime: data.Results.BookingTime,\r\n DepartmentName: data.Results.DepartmentName,\r\n DoctorName: data.Results.DoctorName,\r\n CreatedDate: data.Results.CreatedDate,\r\n Height: data.Results.Height,\r\n Weight: data.Results.Weight,\r\n Temperature: data.Results.Temperature,\r\n BMI: data.Results.BMI,\r\n BP: data.Results.BP,\r\n Bodypain: data.Results.Bodypain,\r\n PainScale: data.Results.PainScale,\r\n LongSignature: data.Results.LongSignature,\r\n NMC: data.Results.NMC,\r\n Medication: data.Results.Medication,\r\n TreatmentAdvice: data.Results.TreatmentAdvice,\r\n History: data.Results.History,\r\n ChiefComplaints: data.Results.ChiefComplaints,\r\n Investigation: data.Results.Investigation,\r\n FinalDiagnosis: data.Results.FinalDiagnosis,\r\n Remarks: data.Results.Remarks,\r\n medicationlist :data.Results.medicationlist,\r\n VisitId: data.Results.Visitid\r\n }, width: '1000px', height: '1000px' }\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n //this.AppointmentHistory();\r\n });\r\n }\r\n else{\r\n this.notifyService.showError(\"\", \"No OP Summary report found\")\r\n }\r\n }\r\n\r\n ErrorSuccesssummary(res){\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Dr. {{DoctorName}}

\r\n
{{PhoneNumber}}
\r\n
{{MailingAddress}}
\r\n
\r\n
Education
\r\n

{{list.Education}}

\r\n
Experience(Years)
\r\n

{{list.Experience}}

\r\n
Past Affiliation
\r\n

{{list.PastAffiliation}}

\r\n
Membership
\r\n

{{list.Membership}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Please Select Hospital

\r\n
\r\n
\r\n \r\n \r\n {{row.HospitalName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{row.DepartmentName}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{row.DepartmentName}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Choose a Appointment Date\r\n \r\n \r\n \r\n \r\n VisitDate is required\r\n Enter Valid Date\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Please Select Time Interval To Select Time Slot

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n Time for appointmt is between {{appointmentTime[0].StartTime}} - {{appointmentTime[0].EndTime}}\r\n
\r\n\r\n
\r\n

\r\n You have selected\r\n Appointment time:
\r\n {{visitObj.BookingTime}}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Availability of Dr. {{DoctorName}}

\r\n
\r\n

Doctor is not available for this Department

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DateDoctor Available
{{data.Date | date:'mediumDate'}} {{data.StartTime }} - {{data.EndTime }}
\r\n
\r\n\r\n
\r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Global } from '../../app.global';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { Doctor, DoctorList } from '../../models/doctor/doctor.model';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { AlertService } from '../../services/alert.service';\r\n// import { ThrowStmt } from '@angular/compiler';\r\nimport { Observable, concat } from 'rxjs'\r\nimport * as moment from 'moment/moment';\r\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { Departement } from '../../models/Department/app.department.model';\r\nimport { DatePipe } from '@angular/common'\r\nimport { FormBuilder, FormGroup, Validators, NgForm } from '@angular/forms';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { Hospital } from '../../models/hospital/hospital.model';\r\nimport { ɵAnimationGroupPlayer } from '@angular/animations';\r\nimport { HospitalDoctorMap } from '../../models/HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { Qualification } from '../../models/Qualification/qualification.model';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { VisitDate, SchedulingList } from 'src/app/models/scheduling/scheduling.model';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\n@Component({\r\n selector: 'doctor-profile',\r\n templateUrl: './app.doctor_profile.html'\r\n})\r\nexport class DoctorProfileComponent implements OnInit {\r\n public docInfo: Doctor = new Doctor();\r\n public departmentId: any;\r\n public filterDocList: any;\r\n public selDepartment: any = \"\";\r\n public count: number = 0;\r\n public docHospitalList: Array;\r\n public HospitalList: Array;\r\n public dept: Departement = new Departement();\r\n visitObj: Visit = new Visit();\r\n public showDept: boolean = false;\r\n public showUnavailableMsg: boolean = false;\r\n appointmentTime: Array = new Array();\r\n scheduleIntervalList: Array = new Array();\r\n // VisitDate[] = [];\r\n public deptList: any[];\r\n public filterdeptList: Array = new Array();\r\n public filteredDepartmentList: Array = new Array();\r\n public docList: Array = new Array();\r\n public showScheduleList: boolean = false;\r\n loading = false;\r\n public doc: any;\r\n public token: any;\r\n public hospitalList: Array;\r\n public DeptHostList: any;\r\n public selHospital: any;\r\n public VisitList: any;\r\n public hospitalId: any;\r\n public EnablePhNo: any;\r\n public showBookingDate: boolean = false;\r\n public showTimeSlot: boolean = false;\r\n public ScheduleTimeDetail: boolean = true;\r\n public showIntervalSlot: boolean = false;\r\n public showIntervalButton: boolean = false;\r\n public showBookingAppointBtn: boolean = false;\r\n public AppointmentDate: any = \"\";\r\n public AppointmentStartTime: any = \"\";\r\n public AppointmentEndTime: any = \"\";\r\n public doctorId: any;\r\n public patId: any;\r\n public rowCount: number = 0;\r\n public index: number = 0;\r\n public hospdocMap: Array = new Array();\r\n public doctorList: Array = new Array();\r\n public deptId: any;\r\n public mapId: any;\r\n DoctorName: any;\r\n FilePath: any;\r\n PhoneNumber: any;\r\n MailingAddress: any;\r\n todayDate: any;\r\n public currentDate = moment().format('MM-DD-YYYY');\r\n QualificationList: Array = new Array();\r\n SchedulingList: Array = new Array();\r\n filteredHospitalDoctorMapping: Array = new Array();\r\n tempArray: Array = new Array();\r\n filteredSchedulingList: Array = new Array();\r\n HospitalDoctorMapping: Array = new Array();\r\n ScheduleList: Array = new Array();\r\n showButton: boolean = false;\r\n VisitType: any;\r\n HospitalFormGroup: FormGroup;\r\n public DepartmentId : string;\r\n public isOnlineAppointment : boolean = false;\r\n constructor(public global: Global, public docservice: DoctorService, @Inject(MAT_DIALOG_DATA) public data: any, public alertService: AlertService, public route: ActivatedRoute,\r\n public router: Router, public httpClient: HttpClient, public patService: PatientService, private authenticationService: AuthenticationService, public schedulingService: SchedulingService,\r\n public http: HttpClient, private datepipe: DatePipe, private formBuilder: FormBuilder, private notifyService: NotificationService, public docService: DoctorService,\r\n public hospitalService: HospitalService) {\r\n this.todayDate = this.datepipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.token = this.authenticationService.currentUserValue;\r\n this.doctorId = this.route.snapshot.queryParamMap.get('id1');\r\n this.DepartmentId = this.route.snapshot.queryParamMap.get('deptId');\r\n this.VisitType = this.route.snapshot.queryParamMap.get('VisitType');\r\n if (this.doctorId == \"\" || this.doctorId == null) {\r\n this.doctorId = this.docservice.DoctorId;\r\n }\r\n this.getDocHospitalList();\r\n this.checkForVisitType();\r\n }\r\n ngOnInit() {\r\n this.HospitalFormGroup = this.formBuilder.group({\r\n Department: [\"\"]\r\n });\r\n }\r\n\r\n checkForVisitType(){\r\n if(this.VisitType === \"Online Appointment\"){\r\n this.isOnlineAppointment = true;\r\n }else{\r\n this.isOnlineAppointment = false;\r\n }\r\n }\r\n getDocHospitalList() {\r\n this.hospitalService.getDocHospitalList(this.doctorId)\r\n .subscribe(res => this.SuccessHospitalList(res),\r\n res => this.Error(res));\r\n }\r\n SuccessHospitalList(res) {\r\n this.hospitalList = Object.assign(res);\r\n if (this.data.hospitalId) {\r\n this.hospitalList = this.hospitalList.filter(s => s.HospitalId == this.data.hospitalId)\r\n this.selHospital = this.hospitalList[0].HospitalId;\r\n this.hospitalId = this.selHospital;\r\n this.showDept = true;\r\n this.GetDepartmentList();\r\n }\r\n if (this.hospitalList.length == 1) {\r\n this.QualificationList = this.hospitalList[0].Qualification;\r\n this.DoctorName = this.hospitalList[0].DoctorName;\r\n this.FilePath = this.hospitalList[0].FilePath;\r\n this.PhoneNumber = this.hospitalList[0].PhoneNumber;\r\n this.EnablePhNo = this.hospitalList[0].EnablePhNo;\r\n this.MailingAddress = this.hospitalList[0].MailingAddress;\r\n this.selHospital = this.hospitalList[0].HospitalId;\r\n this.hospitalId = this.selHospital;\r\n this.global.HospitalId = this.hospitalId;\r\n this.hospitalService.HospitalId = this.hospitalId;\r\n this.showDept = true;\r\n this.GetDepartmentList();\r\n //this.filteredSchedulingList = null;\r\n }\r\n else {\r\n this.QualificationList = this.hospitalList[0].Qualification;\r\n this.DoctorName = this.hospitalList[0].DoctorName;\r\n this.FilePath = this.hospitalList[0].FilePath;\r\n this.PhoneNumber = this.hospitalList[0].PhoneNumber;\r\n this.EnablePhNo = this.hospitalList[0].EnablePhNo;\r\n this.MailingAddress = this.hospitalList[0].MailingAddress;\r\n this.selHospital = \"\";\r\n }\r\n\r\n\r\n }\r\n AssignHospital(event: MatSelectChange) {\r\n //this.hospitalService.HospitalId = event.value;\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n this.hospitalId = event.value;\r\n this.showDept = true;\r\n this.showTimeSlot = false;\r\n this.showScheduleList = false;\r\n this.visitObj.VisitDate = null;\r\n this.showUnavailableMsg = false;\r\n this.GetDepartmentList();\r\n\r\n }\r\n\r\n GetDoctorList() {\r\n this.docservice.getDoc(this.doctorId, this.hospitalId, this.VisitType)\r\n .subscribe(res => this.SuccessDoctor(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDoctor(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.doctorList = res.Results;\r\n this.SchedulingList = res.Results.SchedulingList;\r\n this.tempArray = new Array();\r\n this.tempArray = JSON.parse(JSON.stringify(this.SchedulingList));\r\n if (this.tempArray.length == 0) {\r\n this.showUnavailableMsg = true;\r\n }\r\n for (var y = 0; y < this.tempArray.length; y++) {\r\n var tempst = 0;\r\n tempst = +this.tempArray[y].StartTime.substr(0, 2);\r\n if (tempst < 12) {\r\n var stampm = \"AM\";\r\n var ST = tempst;\r\n }\r\n else {\r\n stampm = \"PM\";\r\n if (tempst == 12) {\r\n var ST = tempst;\r\n } else {\r\n ST = tempst - 12;\r\n }\r\n }\r\n this.tempArray[y].StartTime = ST + this.tempArray[y].StartTime.substr(2, 3) + \" \" + stampm;\r\n var tempet = 0;\r\n tempet = +this.tempArray[y].EndTime.substr(0, 2);\r\n if (tempet < 12) {\r\n var etampm = \"AM\";\r\n var ET = tempet;\r\n }\r\n else {\r\n etampm = \"PM\";\r\n if (tempet == 12) {\r\n var ET = tempet;\r\n } else {\r\n ET = tempet - 12;\r\n }\r\n }\r\n this.tempArray[y].EndTime = ET + this.tempArray[y].EndTime.substr(2, 3) + \" \" + etampm;\r\n }\r\n this.SchedulingList = this.tempArray;\r\n this.filteredSchedulingList = res.Results.SchedulingList;\r\n this.tempArray = new Array();\r\n this.tempArray = JSON.parse(JSON.stringify(this.filteredSchedulingList));\r\n for (var y = 0; y < this.tempArray.length; y++) {\r\n var tempst = 0;\r\n tempst = +this.tempArray[y].StartTime.substr(0, 2);\r\n if (tempst < 12) {\r\n var stampm = \"AM\";\r\n var ST = tempst;\r\n }\r\n else {\r\n stampm = \"PM\";\r\n if (tempst == 12) {\r\n var ST = tempst;\r\n } else {\r\n ST = tempst - 12;\r\n }\r\n }\r\n this.tempArray[y].StartTime = ST + this.tempArray[y].StartTime.substr(2, 3) + \" \" + stampm;\r\n var tempet = 0;\r\n tempet = +this.tempArray[y].EndTime.substr(0, 2);\r\n if (tempet < 12) {\r\n var etampm = \"AM\";\r\n var ET = tempet;\r\n }\r\n else {\r\n etampm = \"PM\";\r\n if (tempet == 12) {\r\n var ET = tempet;\r\n } else {\r\n ET = tempet - 12;\r\n }\r\n }\r\n this.tempArray[y].EndTime = ET + this.tempArray[y].EndTime.substr(2, 3) + \" \" + etampm;\r\n }\r\n this.filteredSchedulingList = this.tempArray;\r\n this.HospitalDoctorMapping = res.Results.HospitalDoctorMapId;\r\n if(this.isOnlineAppointment){\r\n this.AssignDepartment(this.HospitalDoctorMapping); //Rohan: Sending filteredDepartmentList to the AssignDepartment function as filteredHospitalDoctorMapping was being empty first.\r\n }\r\n } else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n\r\n }\r\n Error(res) {\r\n\r\n }\r\n GetDepartmentList() {\r\n this.docservice.getDepartmentList().subscribe(res => {\r\n this.deptList = res;\r\n this.GetDocHosDetail();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n GetDocHosDetail() {\r\n this.hospitalService.getDocHospitalListbyvisitytpe(this.doctorId, this.VisitType)\r\n .subscribe(res => this.SuccessHospital(res),\r\n res => this.Error(res));\r\n }\r\n SuccessHospital(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.filterdeptList = [];\r\n this.count = 0;\r\n this.docHospitalList = Object.assign(res.Results);\r\n this.docHospitalList = this.docHospitalList.filter(s => s.HospitalId == this.hospitalId, s => s.ConsultationType == this.VisitType);\r\n // for (var i = 0; i < this.deptList.length; i++) {\r\n // for (var j = 0; j < this.deptList.length; j++) {\r\n // if (this.deptList[i].DepartmentId == this.docHospitalList[0].DepartmentId[j]) {\r\n // this.filterdeptList[this.count] = this.deptList[i];\r\n // this.count++;\r\n // }\r\n // }\r\n // }\r\n this.filterdeptList = this.docHospitalList;\r\n \r\n if (this.filterdeptList.length == 1 && this.isOnlineAppointment) {\r\n this.filteredDepartmentList = Object.assign(this.filterdeptList);\r\n this.selDepartment = this.filteredDepartmentList[0];\r\n this.setDepartmentName();\r\n this.mapId = this.selDepartment;\r\n this.deptId = this.filteredDepartmentList[0].DepartmentId;\r\n this.global.DepartmentId = this.deptId;\r\n this.hospitalService.DepartmentId = this.deptId;\r\n // this.showBookingDate = true;\r\n // this.showScheduleList = true;\r\n // this.appointmentType = this.filteredDepartmentList[0].AppointmentType;\r\n //this.filteredSchedulingList = null;\r\n }\r\n else {\r\n this.filteredDepartmentList = this.filterdeptList;\r\n // this.selDepartment = \"\";\r\n if(this.isOnlineAppointment){\r\n this.setDepartmentName();\r\n }\r\n }\r\n this.GetDoctorList();\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n\r\n }\r\n AssignDepartment(event: any) {\r\n if(this.isOnlineAppointment){\r\n // console.log(this.filteredDepartmentList);\r\n this.showUnavailableMsg = false;\r\n // this.deptId = this.hospitalService.DepartmentId = event.value ? event.value.DepartmentId : null;\r\n this.deptId = event?.value;\r\n this.mapId = event.HospitalDoctorMapId;\r\n this.showBookingDate = true;\r\n this.showTimeSlot = false;\r\n this.showScheduleList = true;\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n this.visitObj.VisitDate = null;\r\n this.showBookingAppointBtn = false;\r\n this.filteredHospitalDoctorMapping = new Array();\r\n this.filteredHospitalDoctorMapping = JSON.parse(JSON.stringify(this.HospitalDoctorMapping));//deepcopy\r\n const departmentId = this.DepartmentId;\r\n this.filteredHospitalDoctorMapping = this.filteredHospitalDoctorMapping.filter(s => s.DepartmentId == departmentId);\r\n this.filteredSchedulingList = new Array();\r\n this.filteredSchedulingList = JSON.parse(JSON.stringify(this.SchedulingList));//deepcopy\r\n this.filteredSchedulingList = this.filteredSchedulingList.filter(s => s.HospitalDoctorMapId == this.filteredHospitalDoctorMapping[0].HospitalDoctorMapId);\r\n if (this.filteredSchedulingList.length == 0) {\r\n this.showUnavailableMsg = true;\r\n }\r\n }\r\n //for (var y = 0; y < this.filteredSchedulingList.length; y++) {\r\n // var tempst = 0;\r\n // tempst = +this.filteredSchedulingList[y].StartTime.substr(0, 2);\r\n // if (tempst < 12) {\r\n // var stampm = \"AM\";\r\n // var ST = tempst;\r\n // }\r\n // else\r\n // {\r\n // stampm = \"PM\";\r\n // if (tempst == 12) {\r\n // var ST = tempst;\r\n // } else {\r\n // ST = tempst - 12;\r\n // }\r\n // }\r\n // this.filteredSchedulingList[y].StartTime = ST + this.filteredSchedulingList[y].StartTime.substr(2, 3) + \" \" + stampm;\r\n // var tempet = 0;\r\n // tempet = +this.filteredSchedulingList[y].EndTime.substr(0, 2);\r\n // if (tempet < 12) {\r\n // var etampm = \"AM\";\r\n // var ET = tempet;\r\n // }\r\n // else {\r\n // etampm = \"PM\";\r\n // if (tempet == 12) {\r\n // var ET = tempet;\r\n // } else {\r\n // ET = tempet - 12;\r\n // }\r\n // }\r\n // this.filteredSchedulingList[y].EndTime = ET + this.filteredSchedulingList[y].EndTime.substr(2, 3) + \" \"+ etampm;\r\n //}\r\n //for (var b = 0; b < this.filteredSchedulingList.length; b++) {\r\n // this.filteredSchedulingList[b].Date = moment(this.filteredSchedulingList[b].Date).format('YYYY-MM-DD');\r\n // var todaydate = new Date();\r\n // if (this.filteredSchedulingList[b].Date == moment(todaydate).format('YYYY-MM-DD')) {\r\n // var currentdate1 = moment(todaydate).format('YYYY/MM/DD');\r\n // var timeextract = this.filteredSchedulingList[b].EndTime;\r\n // var bookedDateTime = moment(currentdate1 + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n // var formatedBookedDateTime = moment(bookedDateTime, 'YYYY-MM-DD HH:mm A');\r\n // var currentTime = moment(todaydate).format('YYYY-MM-DD HH:mm A');\r\n // var momentObj = moment(currentTime, 'YYYY-MM-DDLT');\r\n // var currentdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n // var formatedCurrentTime = moment(currentdateTime, 'YYYY-MM-DD HH:mm A');\r\n // if (formatedCurrentTime >= formatedBookedDateTime) {\r\n // this.filteredSchedulingList.splice(b , 1);\r\n // }\r\n // }\r\n\r\n //}\r\n }\r\n \r\n AssignTeleDepartment(event: MatSelectChange){\r\n this.showUnavailableMsg = false;\r\n this.deptId = this.hospitalService.DepartmentId = event.value.DepartmentId;\r\n this.mapId = event.value.HospitalDoctorMapId;\r\n this.showBookingDate = true;\r\n this.showTimeSlot = false;\r\n this.showScheduleList = true;\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n this.visitObj.VisitDate = null;\r\n this.showBookingAppointBtn = false;\r\n this.filteredHospitalDoctorMapping = new Array();\r\n this.filteredHospitalDoctorMapping = JSON.parse(JSON.stringify(this.HospitalDoctorMapping));//deepcopy\r\n this.filteredHospitalDoctorMapping = this.filteredHospitalDoctorMapping.filter(s => s.HospitalDoctorMapId == event.value.HospitalDoctorMapId);\r\n this.filteredSchedulingList = new Array();\r\n this.filteredSchedulingList = JSON.parse(JSON.stringify(this.SchedulingList));//deepcopy\r\n this.filteredSchedulingList = this.filteredSchedulingList.filter(s => s.HospitalDoctorMapId == this.filteredHospitalDoctorMapping[0].HospitalDoctorMapId);\r\n if (this.filteredSchedulingList.length == 0) {\r\n this.showUnavailableMsg = true;\r\n }\r\n }\r\n GetVisitTime(event) {\r\n if (this.VisitType != \"Telemedicine\") {\r\n this.ScheduleTimeDetail = false;\r\n }\r\n else {\r\n this.ScheduleTimeDetail = true;\r\n }\r\n this.showIntervalSlot = false;\r\n this.showIntervalButton = true;\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n this.showBookingAppointBtn = false;\r\n // this.visitObj.VisitDate = null ;\r\n //var vDate = moment(event.value);\r\n var vDate = moment(this.visitObj.VisitDate);\r\n var visitDate = vDate.format('YYYY-MM-DD');\r\n if (visitDate != null) {\r\n this.schedulingService.getVisitTime(visitDate, this.doctorId, this.deptId, this.hospitalId).subscribe(res => this.SuccessAppointmentTime(res),\r\n res => this.ErrorAppointmentTime(res));\r\n }\r\n }\r\n SuccessAppointmentTime(res) {\r\n this.appointmentTime = Object.assign(this.appointmentTime, res);\r\n if (this.appointmentTime.length == 0) {\r\n this.notifyService.showWarning(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `${this.DoctorName}` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}`);\r\n console.log(\"No Schedule\");\r\n this.showTimeSlot = false;\r\n }\r\n if (this.doctorId != null && this.appointmentTime.length > 0) {\r\n if (this.VisitType != \"Telemedicine\") {\r\n this.showBookingAppointBtn = true;\r\n this.showTimeSlot = true\r\n }\r\n else {\r\n this.showTimeSlot = true;\r\n }\r\n this.global.VisitDate = this.appointmentTime[0].VisitDate;\r\n //this.appointmentTime = this.appointmentTime;\r\n //this.appointmentTime.filter(x => x.DoctorId == this.doctorId && x.DepartmentId == this.hospitalService.DepartmentId && x.HospitalId == this.hospitalId);\r\n // this.notifyService.showInfo(\"Please\", \"Select the time slot !\");\r\n }\r\n else if (this.doctorId == null && this.appointmentTime.length > 0) {\r\n this.appointmentTime = this.appointmentTime.filter(x => x.DoctorId == this.doctorId && x.DepartmentId == this.selDepartment && x.HospitalId == this.hospitalId);\r\n }\r\n else {\r\n this.appointmentTime = [];\r\n }\r\n }\r\n ErrorAppointmentTime(res) {\r\n this.notifyService.showInfo(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `${this.DoctorName}` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}`);\r\n }\r\n setAppontmentTime(time) {\r\n var date = new Date();\r\n var currenttime = moment(date, 'YYYY-MM-DDLT');\r\n if (time.StartTimeDetail > currenttime) {\r\n if (time.IsBooked == true) {\r\n this.ScheduleTimeDetail = true;\r\n var bookingtime = `${time.StartTime} - ${time.EndTime}`;\r\n this.notifyService.showWarning(\"The time slot \" + bookingtime + \" is already booked!\", \"Sorry\");\r\n }\r\n else {\r\n this.ScheduleTimeDetail = false;\r\n this.patId = this.token.PatientIdentifier == undefined ? this.patService.PatientId : this.token.PatientIdentifier;\r\n this.patService.getPatientHistory(this.patId)\r\n .subscribe(res => this.PatientHistory(res, time),\r\n res => this.Error(res));\r\n }\r\n }\r\n else {\r\n this.notifyService.showWarning(\"You cannot book past Appointment Time \", \"Sorry\");\r\n }\r\n\r\n }\r\n PatientHistory(res, time) {\r\n this.VisitList = res;\r\n var count = 0;\r\n for (var i = 0; i < this.VisitList.length; i++) {\r\n if (this.VisitList[i].SchedulingId == time.SchedulingId) {\r\n count++;\r\n }\r\n }\r\n if (count == 0) {\r\n this.visitObj.BookingTime = `${time.StartTime} - ${time.EndTime}`;\r\n this.global.BookingTime = this.visitObj.BookingTime;\r\n this.global.VisitDate = this.visitObj.VisitDate;\r\n this.docservice.ScheduleIntervalId = time.ScheduleIntervalId;\r\n this.docservice.SchedulingId = time.SchedulingId;\r\n this.showBookingAppointBtn = true;\r\n } else {\r\n if (this.VisitType != \"Telemedicine\") {\r\n this.ScheduleTimeDetail = false;\r\n }\r\n else {\r\n this.ScheduleTimeDetail = true;\r\n }\r\n this.notifyService.showWarning(\"You can't select another schedule on same interval\", \"Sorry\");\r\n }\r\n\r\n }\r\n checkTimeSlot(SchId) {\r\n this.visitObj.BookingTime = null;\r\n this.showBookingAppointBtn = false;\r\n if (this.showIntervalSlot == true) {\r\n this.scheduleIntervalList = [];\r\n this.showIntervalSlot = false;\r\n } else {\r\n this.schedulingService.getScheduleIntervalBySchedulingId(SchId).subscribe(res => this.SuccessScheduleInterval(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n SuccessScheduleInterval(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.scheduleIntervalList = Object.assign(this.scheduleIntervalList, res?.Results);\r\n for (var c = 0; c < this.scheduleIntervalList.length; c++) {\r\n var date = moment(this.scheduleIntervalList[c].Date).format('YYYY/MM/DD');\r\n var timeextract = this.scheduleIntervalList[c].StartTime;\r\n var bookedStartTime = moment(date + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n var momentObj = moment(bookedStartTime, 'YYYY-MM-DDLT');\r\n var currentdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var formatedBookedDateTime = moment(currentdateTime, 'YYYY-MM-DD HH:mm A');\r\n //var formatedBookedDateTime =moment(moment(bookedStartTime, 'YYYY-MM-DDTHH:mm:s')).format('lll');\r\n //var formatedBookedDateTime = moment(BookedDateTime); \r\n this.scheduleIntervalList[c].StartTimeDetail = formatedBookedDateTime;\r\n }\r\n // console.log(this.scheduleIntervalList);\r\n \r\n for (let k = 0; k < this.scheduleIntervalList.length - 1; k++) {\r\n for (let l = 0; l < this.scheduleIntervalList.length - k - 1; l++) {\r\n var diffmin = this.scheduleIntervalList[l + 1].StartTimeDetail.diff((this.scheduleIntervalList[l].StartTimeDetail), 'minutes')\r\n if (diffmin < 0) {\r\n let swap = this.scheduleIntervalList[l];\r\n this.scheduleIntervalList[l] = this.scheduleIntervalList[l + 1];\r\n this.scheduleIntervalList[l + 1] = swap;\r\n }\r\n }\r\n }\r\n \r\n this.showIntervalSlot = true;\r\n // console.log(this.scheduleIntervalList);\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n \r\n }\r\n SelectSchedule(data) {\r\n if (this.VisitType != \"Telemedicine\") {\r\n this.ScheduleTimeDetail = false;\r\n this.showBookingAppointBtn = true;\r\n this.docService.ScheduleIntervalId = null;\r\n this.docService.SchedulingId = data.SchedulingId;\r\n }\r\n else {\r\n this.ScheduleTimeDetail = true;\r\n this.showBookingAppointBtn = false;\r\n }\r\n this.showIntervalButton = false;\r\n this.showButton = true;\r\n this.visitObj.VisitDate = data.Date;\r\n this.scheduleIntervalList = [];\r\n if (this.showIntervalSlot == true) {\r\n this.showIntervalSlot = false\r\n }\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n //this.visitObj.VisitDate = null ;\r\n this.appointmentTime.push({\r\n VisitDate: data.Date,\r\n StartTime: data.StartTime,\r\n EndTime: data.EndTime,\r\n SchedulingId: data.SchedulingId,\r\n })\r\n if (this.VisitType == \"Telemedicine\") {\r\n this.checkTimeSlot(data.SchedulingId);\r\n }\r\n\r\n this.SuccessAppointmentTime(this.appointmentTime);\r\n //this.setAppontmentTime(time);\r\n }\r\n GoToBookAppointment() {\r\n if (this.appointmentTime.length > 0) {\r\n if(this.isOnlineAppointment){\r\n var bookingtime = `${this.appointmentTime[0].StartTime} - ${this.appointmentTime[0].EndTime}`;\r\n this.global.BookingTime = bookingtime;\r\n this.router.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId, id1: this.doctorId, dep: this.DepartmentId, status: \"true\" } });\r\n }else{\r\n this.router.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId, id1: this.doctorId, dep: this.deptId, status: \"true\" } });\r\n }\r\n }\r\n else {\r\n this.notifyService.showWarning(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `${this.DoctorName}` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}` + \"Please search another Date for Appointment\");\r\n }\r\n\r\n }\r\n public BackDashBoard() {\r\n this.hospitalService.DepartmentId = null;\r\n this.docservice.DoctorId = null;\r\n this.global.BookingTime = \"\";\r\n this.global.VisitDate = null;\r\n this.visitObj.DepartmentId = null;\r\n this.global.DepartmentId = null;\r\n this.router.navigate(['/HospitalList'], { queryParams: { VisitType: this.VisitType } });\r\n }\r\n public BackBookAppointment() {\r\n window.location.reload();\r\n //this.router.navigate(['/PatDashboard']);\r\n }\r\n setDepartmentName(){\r\n this.HospitalFormGroup.get('Department').setValue(this.selDepartment);\r\n this.AssignDepartment({value: this.selDepartment.DepartmentId});\r\n }\r\n\r\n}\r\n\r\n","\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

\r\n OP Summary Report\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n Telemedicine\r\n Online Appointment\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n New\r\n Follow-Up\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDate and TimePatient NameAge/GenderContact NumberAddressDepartmentDoctor NameAppointment TypeVisit TypeFinal DiagnosisActions
{{10 *(p-1)+(i+1)}}{{data.VisitDate | date:'mediumDate'}} and {{data.BookingTime}}{{data.PatientName}}{{data.Age }}/{{data.Gender }}{{data.ContactNumber }}{{data.Address }}{{data.DepartmentName }}{{data.DoctorName }}{{data.AppointmentType }}{{data.VisitType }}{{data.FinalDiagnosis }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDate and TimePatient NameAge/GenderContact NumberAddressDepartmentDoctor NameAppointment TypeVisit TypeFinal DiagnosisActions
{{i+1}}{{data.VisitDate | date:'mediumDate'}} and {{data.BookingTime}}{{data.PatientName}}{{data.Age }}/{{data.Gender }}{{data.ContactNumber }}{{data.Address }}{{data.DepartmentName }}{{data.DoctorName }}{{data.AppointmentType }}{{data.VisitType }}{{data.FinalDiagnosis }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n Order wise Report\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n {{dept.DepartmentName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n Telemedicine\r\n Online Appointment\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n New\r\n Follow-Up\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateItem NameDepartmentAppointment TypeVisit TypeTotal QuantityTotal Amount
{{10 *(p-1)+(i+1)}}{{data.VisitDate | date:'mediumDate'}}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateItem NameDepartmentAppointment TypeVisit TypeTotal QuantityTotal Amount
{{i+1}}{{data.VisitDate | date:'mediumDate'}}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateItem NameDepartmentAppointment TypeVisit TypePatient NameAge/GenderTotal QuantityTotal Amount
{{10 *(p-1)+(i+1)}}{{data.VisitDate | date:'mediumDate'}}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.PatientName }}{{data.Age }}/{{data.Gender }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateItem NameDepartmentAppointment TypeVisit TypePatient NameAge/GenderTotal QuantityTotal Amount
{{i+1}}{{data.VisitDate | date:'mediumDate'}}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.PatientName }}{{data.Age }}/{{data.Gender }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n","import { Component, ViewChild, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global } from '../../app.global';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport * as moment from 'moment';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { ViewOPSummaryComponent } from 'src/app/Doctor/OP_Summary/app.View_OP_summary';\r\n\r\n@Component({\r\n templateUrl: './doctor_report.component.html',\r\n styleUrls: ['./doctor_report.component.css']\r\n})\r\nexport class DoctorReportComponent {\r\n config: any;\r\n token: any;\r\n public showOPSummaryReport:boolean=false;\r\n public OPSummaryData: any;\r\n public collection = { count: 60, data: [] };\r\n public todate = moment().format('YYYY-MM-DD');\r\n public fromdate = moment().format('YYYY-MM-DD');\r\n public filteredOPSummaryList: any;\r\n public selAppointmentType: any = \"\";\r\n public selVisitType: any = \"\";\r\n public selDiagnosis: any = \"\";\r\n public showPrint: boolean = false;\r\n public printDetails: any;\r\n public showDetailView: boolean = false;\r\n public searchText: any;\r\n p: number = 1;\r\n public selItem: any = \"\";\r\n public selDepartment: any = \"\";\r\n public reportHeader:any;\r\n public showActions: boolean = true;\r\n public deptList: Array = new Array();\r\n public reportList:any;\r\n\r\n constructor(public routing: Router, public hospitalService: HospitalService, public authService: AuthenticationService, public alertService: AlertService,\r\n public global: Global, public notifyService: NotificationService, public dialog: MatDialog, public changeDetector: ChangeDetectorRef, public docService: DoctorService, public patService: PatientService ) {\r\n this.token = this.authService.currentUserValue;\r\n this.OPSummaryReport();\r\n this.GetDepartmentList();\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n\r\n GetReportData(){\r\n this.hospitalService.getAppMasterReport().subscribe((res: any) => {\r\n this.OPSummaryData = res?.Results;\r\n for (var i = 0; i < this.OPSummaryData.length; i++) {\r\n this.OPSummaryData = this.OPSummaryData.filter(x => x.DoctorId == this.token.DoctorIdentifier);\r\n // this.OPSummaryData[i].VisitDate = moment(this.OPSummaryData[i].VisitDate).format(\"YYYY-MM-DD\");\r\n }\r\n this.collection = { count: this.OPSummaryData.length, data: [] }\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitDate: moment(this.OPSummaryData[i].VisitDate).format(\"YYYY-MM-DD\"),\r\n PatientName: this.OPSummaryData[i].PatientName,\r\n ContactNumber: this.OPSummaryData[i].ContactNumber,\r\n Address: this.OPSummaryData[i].Address,\r\n DoctorName: this.OPSummaryData[i].DoctorName,\r\n Age: this.OPSummaryData[i].Age,\r\n BookingTime: this.OPSummaryData[i].BookingTime,\r\n HospitalId: this.OPSummaryData[i].HospitalId,\r\n DepartmentId: this.OPSummaryData[i].DepartmentId,\r\n DoctorId: this.OPSummaryData[i].DoctorId,\r\n PatientId: this.OPSummaryData[i].PatientId,\r\n VisitId: this.OPSummaryData[i].VisitId,\r\n SchedulingId: this.OPSummaryData[i].SchedulingId,\r\n Gender: this.OPSummaryData[i].Gender,\r\n DepartmentName: this.OPSummaryData[i].DepartmentName,\r\n AppointmentType: this.OPSummaryData[i].AppointmentType,\r\n VisitType: this.OPSummaryData[i].FollowUpVisitType,\r\n ShowViewOPSummary: this.OPSummaryData[i].ShowViewOPSummary\r\n }\r\n );\r\n }\r\n this.FilterbyDate();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n\r\n OPSummaryReport(){\r\n this.showOPSummaryReport = true;\r\n this.todate = moment().format('YYYY-MM-DD');\r\n this.fromdate = moment().format('YYYY-MM-DD');\r\n this.selAppointmentType = \"\";\r\n this.selVisitType = \"\";\r\n this.selDiagnosis = \"\";\r\n this.p = 1;\r\n this.GetReportData();\r\n }\r\n FilterbyDate() {\r\n this.filteredOPSummaryList = new Array();\r\n this.filteredOPSummaryList = JSON.parse(JSON.stringify(this.collection.data));\r\n this.Search();\r\n }\r\n Search() {\r\n var todatemoment = moment(this.todate, 'YYYY-MM-DD');\r\n var fromdatemoment = moment(this.fromdate, 'YYYY-MM-DD');\r\n var diff = moment(todatemoment).diff(fromdatemoment, 'days');\r\n if (diff >= 0) {\r\n this.filteredOPSummaryList = new Array();\r\n this.filteredOPSummaryList = JSON.parse(JSON.stringify(this.collection.data));\r\n for (var i = 0; i < this.filteredOPSummaryList.length; i++) {\r\n this.filteredOPSummaryList[i].VisitDate = moment(this.filteredOPSummaryList[i].VisitDate, 'YYYY-MM-DD');\r\n // this.patBookList[i].VisitStartTime = moment(this.patBookList[i].VisitStartTime).format('LT');\r\n }\r\n this.filteredOPSummaryList = this.filteredOPSummaryList.filter(a => a.VisitDate <= todatemoment && a.VisitDate >= fromdatemoment);\r\n this.reportList = this.filteredOPSummaryList;\r\n } else {\r\n this.notifyService.showWarning(\"Sorry\", \"Please check date interval !!\");\r\n }\r\n }\r\n\r\n \r\n ViewOPSummary(data){ \r\n this.patService.getOPSummary(data.PatientId ,data.VisitId). subscribe(res => this.Successsummary(res),\r\n res => this.ErrorSuccesssummary(res)); \r\n }\r\n\r\n Successsummary(data){\r\n if(data && data.IsSuccess && data.Results){\r\n const dialogRef = this.dialog.open(ViewOPSummaryComponent,\r\n { data: { \r\n PatientId: data.Results.PatientId,\r\n PatientName: data.Results.PatientName,\r\n Age: data.Results.Age,\r\n Gender: data.Results.Gender,\r\n Address: data.Results.Address,\r\n ContactNumber: data.Results.ContactNumber,\r\n VisitDate: data.Results.VisitDate,\r\n BookingTime: data.Results.BookingTime,\r\n DepartmentName: data.Results.DepartmentName,\r\n DoctorName: data.Results.DoctorName,\r\n CreatedDate: data.Results.CreatedDate,\r\n Height: data.Results.Height,\r\n Weight: data.Results.Weight,\r\n Temperature: data.Results.Temperature,\r\n BMI: data.Results.BMI,\r\n BP: data.Results.BP,\r\n Bodypain: data.Results.Bodypain,\r\n PainScale: data.Results.PainScale,\r\n LongSignature: data.Results.LongSignature,\r\n NMC: data.Results.NMC,\r\n Medication: data.Results.Medication,\r\n TreatmentAdvice: data.Results.TreatmentAdvice,\r\n History: data.Results.History,\r\n ChiefComplaints: data.Results.ChiefComplaints,\r\n Investigation: data.Results.Investigation,\r\n FinalDiagnosis: data.Results.FinalDiagnosis,\r\n Remarks: data.Results.Remarks,\r\n medicationlist :data.Results.medicationlist,\r\n VisitId: data.Results.Visitid\r\n }, width: '1000px', height: '1000px' }\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n //this.AppointmentHistory();\r\n });\r\n }\r\n else{\r\n this.notifyService.showError(\"\", \"OPSummary report is empty.\")\r\n }\r\n }\r\n\r\n ErrorSuccesssummary(res){\r\n\r\n }\r\n\r\n PrintTxnTable() {\r\n try {\r\n this.showPrint = false;\r\n this.printDetails = null;\r\n this.showActions = false;\r\n this.changeDetector.detectChanges();\r\n this.showPrint = true;\r\n this.printDetails = document.getElementById(\"printpage\").innerHTML;\r\n this.print();\r\n } catch (ex) {\r\n this.ShowCatchErrMessage(ex);\r\n }\r\n }\r\n public ShowCatchErrMessage(exception) {\r\n if (exception) {\r\n let ex: Error = exception;\r\n this.notifyService.showError(\"error\", [\"Check error in Console log !\"]);\r\n console.log(\"Error Messsage => \" + ex.message);\r\n console.log(\"Stack Details => \" + ex.stack);\r\n }\r\n }\r\n\r\n print() {\r\n var contents = this.printDetails;\r\n var iframe = document.createElement('iframe');\r\n document.body.appendChild(iframe);\r\n \r\n if(this.showOPSummaryReport == true){\r\n this.reportHeader = \"OP Summary Report\";\r\n }\r\n else{\r\n this.reportHeader = \"Order Wise Report\";\r\n }\r\n let documentContent = \"\";\r\n // documentContent += '';\r\n documentContent += '';\r\n documentContent += '
' + this.reportHeader + '

';\r\n documentContent += '' + contents + ''\r\n var htmlToPrint = '' + '';\r\n htmlToPrint += documentContent;\r\n iframe.contentWindow.document.open();\r\n iframe.contentWindow.document.write(htmlToPrint);\r\n iframe.contentWindow.document.close();\r\n\r\n setTimeout(function () {\r\n document.body.removeChild(iframe);\r\n }, 500);\r\n\r\n //this.notifyService.showSuccess('Success','Printed Successfully!!');\r\n this.showActions = true;\r\n }\r\n\r\n ExportToExcel(tableData) {\r\n var workSheetName;\r\n var Heading;\r\n var filename; \r\n var ReportDateRange;\r\n if (tableData) {\r\n if(this.showOPSummaryReport == true){\r\n workSheetName = 'OP Summary Report';\r\n Heading = 'OP Summary Report';\r\n filename = 'OP_Summary_Report';\r\n ReportDateRange = this.fromdate +' To '+ this.todate;\r\n }\r\n else{\r\n workSheetName = 'Order Wise Report';\r\n Heading = 'Order Wise Report';\r\n filename = 'Order_Wise_Report';\r\n ReportDateRange = this.fromdate +' To '+ this.todate;\r\n }\r\n \r\n this.ConvertHTMLTableToExcel(tableData, workSheetName, Heading, filename,ReportDateRange);\r\n }\r\n }\r\n public ConvertHTMLTableToExcel(table: any, SheetName: string, TableHeading: string, FileName: string, ReportDateRange:string) {\r\n try {\r\n if (table) {\r\n this.showActions = false;\r\n this.changeDetector.detectChanges();\r\n let workSheetName = (SheetName.length > 0) ? SheetName : 'Sheet';\r\n let PrintDate = 'Created Date:' + moment().format('YYYY-MM-DD') + '
'\r\n let DateRange = 'Date Range :' + ReportDateRange + '
'\r\n let Heading = '

' + TableHeading + '

';\r\n let filename = (FileName.length > 0) ? FileName : 'Exported_Excel_File';\r\n filename = filename + '_' + moment().format('YYYYMMMDDhhss') + '.xls';\r\n\r\n let uri = 'data:application/vnd.ms-excel;base64,'\r\n , template = '{PrintDate}{DateRange}{Heading}{table}
'\r\n , base64 = function (s) { return window.btoa(decodeURIComponent(encodeURIComponent(s))) }\r\n , format = function (s, c) { return s.replace(/{(\\w+)}/g, function (m, p) { return c[p]; }) }\r\n if (!table.nodeType) table = document.getElementById(table)\r\n var ctx = { worksheet: workSheetName, table: table.innerHTML, PrintDate: PrintDate,DateRange:DateRange, Heading: Heading }\r\n //return window.location.href = uri + base64(format(template, ctx)) \r\n var link = document.createElement('a');\r\n link.href = uri + base64(format(template, ctx));\r\n link.setAttribute('download', filename);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n this.showActions = true;\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n }\r\n\r\n OrderWiseReport(){\r\n this.showOPSummaryReport = false;\r\n this.todate = moment().format('YYYY-MM-DD');\r\n this.fromdate = moment().format('YYYY-MM-DD');\r\n this.selItem = \"\";\r\n this.selDepartment = \"\";\r\n this.selAppointmentType = \"\";\r\n this.selVisitType = \"\";\r\n this.p = 1;\r\n this.GetReportData();\r\n }\r\n\r\n DetailedView(){\r\n this.showDetailView = true;\r\n }\r\n SummaryView(){\r\n this.showDetailView = false;\r\n }\r\n\r\n GetDepartmentList() {\r\n this.docService.getDepartmentList().subscribe(res => {\r\n this.deptList = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n //this.loading = false;\r\n });\r\n }\r\n \r\n MainSearch(event:MatSelectChange){\r\n this.filteredOPSummaryList = this.reportList;\r\n\r\n //For item search\r\n if(this.selItem != \"\" && this.selItem!=\"All\")\r\n {\r\n for(var i=0;id.ItemName==this.selItem)\r\n }\r\n\r\n //For department search\r\n if(this.selDepartment != \"\" && this.selDepartment!=\"All\")\r\n { \r\n for(var i=0;id.DepartmentId==this.selDepartment)\r\n }\r\n\r\n //For appointment search\r\n if(this.selAppointmentType != \"\" && this.selAppointmentType!=\"All\")\r\n {\r\n for(var i=0;id.AppointmentType==this.selAppointmentType)\r\n }\r\n\r\n //For visit search\r\n if(this.selVisitType != \"\" && this.selVisitType!=\"All\")\r\n {\r\n for(var i=0;id.VisitType==this.selVisitType)\r\n }\r\n\r\n //For diagnosis search\r\n if(this.selDiagnosis != \"\" && this.selDiagnosis!=\"All\")\r\n { \r\n for(var i=0;id.FinalDiagnosis==this.selDiagnosis)\r\n }\r\n\r\n if(this.p != 1){\r\n this.p = 1;\r\n }\r\n }\r\n\r\n filterReport(){\r\n if(this.p != 1){\r\n this.p = 1;\r\n }\r\n }\r\n \r\n}\r\n","\r\n\r\n\r\n \r\n\r\n
\r\n

Your Step by Step Guide

\r\n
    \r\n
  • \r\n First select the Appointment Type.\r\n
  • \r\n
  • \r\n Select the Date you want Schedule from Calander.\r\n
  • \r\n
  • \r\n After that choose the Date you want Schedule to the Patient.\r\n
  • \r\n
  • \r\n Choose the respective time-slot for appointment.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Telemedicine\r\n Online Appointment\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{doctor.DoctorName}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{hospital.HospitalName}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{department.DepartmentName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Choose a Appointment Date\r\n \r\n \r\n \r\n \r\n VisitDate is required\r\n Enter Valid Date\r\n
\r\n
\r\n
\r\n
\r\n The Doctor is not available in the current department.\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
Selected time interval: {{visitObj.BookingTime}}
\r\n
Selected Appointment Date {{visitObj.VisitDate | date}}
\r\n \r\n
\r\n\r\n
","import { Component, OnInit, Inject, ViewEncapsulation } from '@angular/core'\r\nimport { Visit } from 'src/app/models/visit/visit.model'\r\nimport { Global } from 'src/app/app.global';\r\nimport { DoctorService } from 'src/app/services/doctor/doctor.service';\r\nimport { PatientService } from 'src/app/services/patient/patient.service';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { AlertService } from 'src/app/services/alert.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport * as moment from 'moment';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { HospitalService } from 'src/app/services/hospital/hospital.service';\r\nimport { Scheduling, SchedulingList } from 'src/app/models/scheduling/scheduling.model';\r\nimport { Doctor } from '../../app.model';\r\nimport { Departement } from '../../models/Department/app.department.model';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatCalendarCellClassFunction } from '@angular/material/datepicker';\r\n@Component({\r\n templateUrl: './app.doctor_reschedule.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\n\r\nexport class RescheduleComponent {\r\n public visitObj: Visit = new Visit();\r\n public appointmentTime: Array = new Array();\r\n public showRescheduleBtn: boolean = false;\r\n public todayDate = moment().format('YYYY-MM-DD');\r\n public showIntervalButton: boolean = false;\r\n public showIntervalSlot: boolean = false;\r\n scheduleIntervalList: Array = new Array();\r\n public doctorList: any;\r\n public filteredDoctorList: Array = [];\r\n public deptList: any;\r\n public filterdeptList: Array = new Array();\r\n public docHospitalList: Array;\r\n public filteredDepartmentList: Array = new Array();\r\n public count: number = 0;\r\n public deptId: any;\r\n filteredHospitalDoctorMapping: Array = new Array();\r\n filteredSchedulingList: Array = new Array();\r\n HospitalDoctorMapping: Array = new Array();\r\n SchedulingList: Array = new Array();\r\n public selDepartment: any = \"\";\r\n public selAppointmentType: any;\r\n public selHospitalId: any;\r\n public selDoctor: any = \"\";\r\n filteredDepartmentTemp: Array = [];\r\n isDoctorAvailable: boolean = false;\r\n availableDate: Date | Date;\r\n isSchedulingAvailable: boolean = true;\r\n oldSchedulingId: any;\r\n HospitalDoctorMapId: any;\r\n scheduleIntervalId: any = 0;\r\n ;\r\n // public docId: any;\r\n constructor(public global: Global, public docService: DoctorService, public patservice: PatientService, @Inject(MAT_DIALOG_DATA) public data: any, public alertService: AlertService, public route: ActivatedRoute,\r\n public router: Router, public schedulingService: SchedulingService, public httpClient: HttpClient, private authenticationService: AuthenticationService,\r\n public http: HttpClient, private datepipe: DatePipe, private formBuilder: FormBuilder, private notifyService: NotificationService, public hospitalService: HospitalService\r\n ) {\r\n this.selAppointmentType = this.data.appointmentType;\r\n this.selHospitalId = this.data.hosId;\r\n this.selDepartment = this.data.deptId;\r\n this.selDoctor = this.data.docId;\r\n this.visitObj.VisitId = this.data.visitId;\r\n this.oldSchedulingId = this.data.schedullingId;\r\n this.GetDoctorList();\r\n // this.GetDocHosDetail();\r\n // this.GetHospitalList();\r\n // this.GetDocHospitalList();\r\n }\r\n\r\n\r\n\r\n GetVisitTime(event) {\r\n this.showIntervalButton = true;\r\n var vDate = moment(this.visitObj.VisitDate);\r\n var visitDate = vDate.format('YYYY-MM-DD');\r\n if (visitDate != null) {\r\n // if (this.selAppointmentType != \"Telemedicine\") {\r\n // this.GetSchedulingDetails();\r\n // }\r\n // else {\r\n this.schedulingService.getVisitTime(visitDate, this.selDoctor, this.selDepartment, this.selHospitalId).subscribe(res => this.SuccessAppointmentTime(res),\r\n res => this.ErrorAppointmentTime(res));\r\n\r\n }\r\n }\r\n SuccessAppointmentTime(res) {\r\n this.appointmentTime = [];\r\n this.appointmentTime = Object.assign(this.appointmentTime, res);\r\n\r\n if (this.appointmentTime.length == 0) {\r\n this.notifyService.showInfo(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}`);\r\n }\r\n // if (this.data.docId != null && this.appointmentTime.length > 0) {\r\n // this.appointmentTime = this.appointmentTime.filter(x => x.DoctorId == this.data.docId && x.DepartmentId == this.selDepartment && x.HospitalId == this.selHospitalId);\r\n\r\n // }\r\n\r\n else {\r\n for (var c = 0; c < this.appointmentTime.length; c++) {\r\n var date = moment(this.appointmentTime[c].Date).format('YYYY/MM/DD');\r\n var timeextract = this.appointmentTime[c].StartTime;\r\n var bookedStartTime = moment(date + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n var momentObj = moment(bookedStartTime, 'YYYY-MM-DDLT');\r\n var currentdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var formatedBookedDateTime = moment(currentdateTime, 'YYYY-MM-DD HH:mm A');\r\n this.appointmentTime[c].StartTimeDetail = formatedBookedDateTime;\r\n }\r\n\r\n for (let k = 0; k < this.appointmentTime.length - 1; k++) {\r\n for (let l = 0; l < this.appointmentTime.length - k - 1; l++) {\r\n var diffmin = this.appointmentTime[l + 1].StartTimeDetail.diff((this.appointmentTime[l].StartTimeDetail), 'minutes')\r\n if (diffmin < 0) {\r\n let swap = this.appointmentTime[l];\r\n this.appointmentTime[l] = this.appointmentTime[l + 1];\r\n this.appointmentTime[l + 1] = swap;\r\n }\r\n }\r\n }\r\n\r\n this.appointmentTime = this.appointmentTime;\r\n }\r\n }\r\n\r\n ErrorAppointmentTime(res) {\r\n // this.notifyService.showInfo(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `${this.doctor.DoctorName}` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}`);\r\n }\r\n checkTimeSlot(SchId) {\r\n this.visitObj.VisitType = this.selAppointmentType;\r\n this.visitObj.ProviderId = this.selDoctor;\r\n this.visitObj.HospitalId = this.selHospitalId;\r\n this.visitObj.DepartmentId = this.selDepartment;\r\n this.visitObj.SchedulingId = SchId;\r\n this.global.VisitDate = this.visitObj.VisitDate;\r\n var hospitalDetials = this.docHospitalList.filter(x => x.HospitalId == this.selHospitalId);\r\n if (hospitalDetials[0].isPaymentEnablle == true) {\r\n this.visitObj.PaymentStatus = \"unpaid\";\r\n }\r\n else {\r\n this.visitObj.PaymentStatus = \"free\";\r\n }\r\n this.visitObj.ProviderId = this.selDoctor;\r\n this.visitObj.DepartmentId = this.deptId;\r\n if (this.selAppointmentType == \"Telemedicine\") {\r\n this.visitObj.BookingTime = null;\r\n //this.showBookingAppointBtn = false;\r\n // this.showIntervalSlot = true;\r\n if (this.showIntervalSlot == true) {\r\n this.scheduleIntervalList = [];\r\n this.showIntervalSlot = false;\r\n this.showRescheduleBtn = false;\r\n } else {\r\n this.schedulingService.getScheduleIntervalBySchedulingId(SchId).subscribe(res => this.SuccessScheduleInterval(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n else {\r\n this.showRescheduleBtn = true;\r\n this.visitObj.ProviderId = this.selDoctor;\r\n this.visitObj.DepartmentId = this.deptId;\r\n }\r\n }\r\n SuccessScheduleInterval(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.scheduleIntervalList = Object.assign(this.scheduleIntervalList, res?.Results);\r\n for (var c = 0; c < this.scheduleIntervalList.length; c++) {\r\n var date = moment(this.scheduleIntervalList[c].Date).format('YYYY/MM/DD');\r\n var timeextract = this.scheduleIntervalList[c].StartTime;\r\n var bookedStartTime = moment(date + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n var momentObj = moment(bookedStartTime, 'YYYY-MM-DDLT');\r\n var currentdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var formatedBookedDateTime = moment(currentdateTime, 'YYYY-MM-DD HH:mm A');\r\n this.scheduleIntervalList[c].StartTimeDetail = formatedBookedDateTime;\r\n this.scheduleIntervalList[c].selectedTime = false;\r\n }\r\n // console.log(this.scheduleIntervalList);\r\n \r\n for (let k = 0; k < this.scheduleIntervalList.length - 1; k++) {\r\n for (let l = 0; l < this.scheduleIntervalList.length - k - 1; l++) {\r\n var diffmin = this.scheduleIntervalList[l + 1].StartTimeDetail.diff((this.scheduleIntervalList[l].StartTimeDetail), 'minutes')\r\n if (diffmin < 0) {\r\n let swap = this.scheduleIntervalList[l];\r\n this.scheduleIntervalList[l] = this.scheduleIntervalList[l + 1];\r\n this.scheduleIntervalList[l + 1] = swap;\r\n }\r\n }\r\n }\r\n \r\n this.showIntervalSlot = true;\r\n // console.log(this.scheduleIntervalList);\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n \r\n }\r\n setAppointmentTime(time) {\r\n if (time.IsBooked == true) {\r\n var bookingtime = `${time.StartTime} - ${time.EndTime}`;\r\n this.notifyService.showWarning(\"The time slot \" + bookingtime + \" was the previous booked time\", \"Sorry\");\r\n }\r\n else {\r\n\r\n this.scheduleIntervalId = time.ScheduleIntervalId;\r\n this.docService.SchedulingId = time.SchedulingId;\r\n this.visitObj.BookingTime = `${time.StartTime} - ${time.EndTime}`;\r\n this.global.BookingTime = this.visitObj.BookingTime;\r\n this.showRescheduleBtn = true;\r\n for (var i = 0; i < this.scheduleIntervalList.length; i++) {\r\n if (this.scheduleIntervalList[i].StartTime == time.StartTime && this.scheduleIntervalList[i].IsBooked == false) {\r\n this.scheduleIntervalList[i].selectedTime = true;\r\n }\r\n else {\r\n this.scheduleIntervalList[i].selectedTime = false;\r\n }\r\n }\r\n }\r\n\r\n }\r\n Reschedule() {\r\n this.schedulingService.postReschedule(this.visitObj, this.scheduleIntervalId, this.oldSchedulingId, this.HospitalDoctorMapId).subscribe(res => this.Success(res),\r\n res => this.Error(res));\r\n\r\n\r\n }\r\n Success(res) {\r\n this.appointmentTime = [];\r\n this.showRescheduleBtn = false;\r\n //this.visitObj.VisitDate = moment().format('YYYY-MM-DD');;\r\n this.notifyService.showSuccess('Updated successfully', 'Success');\r\n\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \" Error in Re-Scheduling\")\r\n\r\n }\r\n\r\n GetDoctorList() {\r\n this.docService.getAvailableDoctorList().subscribe((res: any) => {\r\n if (res) {\r\n this.doctorList = res?.Results;\r\n this.SuccessDoctor();\r\n }\r\n },\r\n err => {\r\n this.notifyService.showError(\"Error\", \"Something Went Wrong.\");\r\n })\r\n }\r\n SuccessDoctor() {\r\n this.filteredDoctorList = [];\r\n if (this.doctorList && this.doctorList.length) {\r\n this.doctorList.forEach(doc => {\r\n for (var i = 0; i < doc.ConsultationType.length; i++) {\r\n if (doc.ConsultationType[i] == this.selAppointmentType) {\r\n this.filteredDoctorList.push(doc);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n if (this.filteredDoctorList, length > 0) {\r\n this.isDoctorAvailable = true;\r\n }\r\n // this.selHospitalId = \"\";\r\n // this.docHospitalList();\r\n this.getDocHospitalList();\r\n }\r\n getDocHospitalList() {\r\n this.hospitalService.getDocHospitalList(this.selDoctor)\r\n .subscribe((res) => {\r\n if (res) {\r\n this.docHospitalList = Object.assign(res);\r\n if (this.selHospitalId && this.selHospitalId != 0)\r\n this.GetHosDepartmentList();\r\n }\r\n }, err => {\r\n this.alertService.error(\"Unable to get hospital list. Please try again later.\");\r\n console.log(err);\r\n })\r\n }\r\n\r\n\r\n GetHosDepartmentList() {\r\n this.hospitalService.getDocHospitalListbyvisitytpe(this.selDoctor, this.selAppointmentType).subscribe((res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n var tempFilterDeptList = Object.assign(res.Results);\r\n this.filterdeptList = tempFilterDeptList.filter(x => x.HospitalId == this.selHospitalId);\r\n this.GetSchedulingDetails();\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n })\r\n }\r\n\r\n // SuccessHospitalList(res) {\r\n // this.filteredH = Object.assign(res);\r\n // if (this.data.hospitalId) {\r\n // this.hospitalList = this.hospitalList.filter(s => s.HospitalId == this.data.hospitalId)\r\n // this.selHospital = this.hospitalList[0].HospitalId;\r\n // this.hospitalId = this.selHospital;\r\n // this.showDept = true;\r\n // this.GetDepartmentList();\r\n // }\r\n // }\r\n\r\n GetDocHosDetail() {\r\n this.hospitalService.getDocHospitalList(this.selDoctor).subscribe(\r\n res => {\r\n if (res) {\r\n this.docHospitalList = Object.assign(res);\r\n console.log(res);\r\n this.SuccessHospital();\r\n }\r\n }),\r\n err => {\r\n this.notifyService.showWarning(\"Error\", \"Unable to get Hospital List\");\r\n console.log(err);\r\n }\r\n\r\n }\r\n\r\n SuccessHospital() {\r\n this.deptList;\r\n this.docHospitalList.forEach(docHos => {\r\n if (docHos.HospitalId = this.selHospitalId) {\r\n for (var i = 0; i < docHos.DepartmentId.length; i++) {\r\n // var j = 0;\r\n this.filteredDepartmentTemp = this.deptList.filter(x => x.DepartmentId.includes(docHos.DepartmentId[i]));\r\n if (this.filteredDepartmentTemp) {\r\n var departmentDetails = this.filteredDepartmentTemp[0];\r\n this.filterdeptList.push(departmentDetails);\r\n this.filteredDepartmentTemp = [];\r\n\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n AssignDepartment(event: MatSelectChange) {\r\n //this.showUnavailableMsg = false;\r\n this.hospitalService.DepartmentId = event.value;\r\n this.deptId = event.value;\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n this.visitObj.VisitDate = null;\r\n this.filteredHospitalDoctorMapping = new Array();\r\n this.filteredHospitalDoctorMapping = JSON.parse(JSON.stringify(this.HospitalDoctorMapping));//deepcopy\r\n this.filteredHospitalDoctorMapping = this.filteredHospitalDoctorMapping.filter(s => s.DepartmentId == event.value);\r\n this.filteredSchedulingList = new Array();\r\n this.filteredSchedulingList = JSON.parse(JSON.stringify(this.SchedulingList));//deepcopy\r\n this.filteredSchedulingList = this.filteredSchedulingList.filter(s => s.HospitalDoctorMap.DepartmentId == this.deptId);\r\n if (this.filteredSchedulingList.length < 1) {\r\n this.isSchedulingAvailable = false;\r\n }\r\n else {\r\n this.isSchedulingAvailable = true;\r\n this.HospitalDoctorMapId = this.filteredSchedulingList[0].HospitalDoctorMap.HospitalDoctorMapId;\r\n }\r\n\r\n }\r\n AssignDoctor(event: MatSelectChange) {\r\n this.selDoctor = event.value;\r\n this.appointmentTime = [];\r\n this.visitObj.BookingTime = null;\r\n this.visitObj.VisitDate = null;\r\n this.getDocHospitalList();\r\n }\r\n\r\n AssignAppointmentType(event) {\r\n this.selAppointmentType = event.value;\r\n this.selDepartment = this.selDoctor = this.selHospitalId = \"\";\r\n this.filterdeptList = this.docHospitalList = [];\r\n this.SuccessDoctor();\r\n }\r\n AssignHospital(event) {\r\n this.selHospitalId = event.value;\r\n // this.AssignDepartment();\r\n this.GetHosDepartmentList();\r\n\r\n }\r\n\r\n GetSchedulingDetails() {\r\n this.docService.getDoc(this.selDoctor, this.selHospitalId, this.selAppointmentType)\r\n .subscribe(res => this.SuccessDetails(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDetails(res) {\r\n \r\n// if (res && res.IsSuccess && res.Results) {\r\n // this.doctorList = res;\r\n this.SchedulingList = res.Results.SchedulingList;\r\n this.filteredSchedulingList = Object.assign(this.SchedulingList);\r\n if (this.filteredSchedulingList.length < 1) {\r\n this.isSchedulingAvailable = false;\r\n }\r\n else {\r\n this.isSchedulingAvailable = true;\r\n }\r\n// }else{\r\n// this.alertService.error(res.ResponseMessage);\r\n// }\r\n \r\n // this.SchedulingList.forEach(x=> )\r\n // this.tempArray = new Array();\r\n // this.tempArray = JSON.parse(JSON.stringify(this.SchedulingList));\r\n // if (this.tempArray.length == 0) {\r\n // this.showUnavailableMsg = true;\r\n // }\r\n // for (var y = 0; y < this.tempArray.length; y++) {\r\n // var tempst = 0;\r\n // tempst = +this.tempArray[y].StartTime.substr(0, 2);\r\n // if (tempst < 12) {\r\n // var stampm = \"AM\";\r\n // var ST = tempst;\r\n // }\r\n // else {\r\n // stampm = \"PM\";\r\n // if (tempst == 12) {\r\n // var ST = tempst;\r\n // } else {\r\n // ST = tempst - 12;\r\n // }\r\n // }\r\n // this.tempArray[y].StartTime = ST + this.tempArray[y].StartTime.substr(2, 3) + \" \" + stampm;\r\n // var tempet = 0;\r\n // tempet = +this.tempArray[y].EndTime.substr(0, 2);\r\n // if (tempet < 12) {\r\n // var etampm = \"AM\";\r\n // var ET = tempet;\r\n // }\r\n // else {\r\n // etampm = \"PM\";\r\n // if (tempet == 12) {\r\n // var ET = tempet;\r\n // } else {\r\n // ET = tempet - 12;\r\n // }\r\n // }\r\n // this.tempArray[y].EndTime = ET + this.tempArray[y].EndTime.substr(2, 3) + \" \" + etampm;\r\n // }\r\n // this.SchedulingList = this.tempArray;\r\n // this.filteredSchedulingList = res.SchedulingList;\r\n // this.tempArray = new Array();\r\n // this.tempArray = JSON.parse(JSON.stringify(this.filteredSchedulingList));\r\n // for (var y = 0; y < this.tempArray.length; y++) {\r\n // var tempst = 0;\r\n // tempst = +this.tempArray[y].StartTime.substr(0, 2);\r\n // if (tempst < 12) {\r\n // var stampm = \"AM\";\r\n // var ST = tempst;\r\n // }\r\n // else {\r\n // stampm = \"PM\";\r\n // if (tempst == 12) {\r\n // var ST = tempst;\r\n // } else {\r\n // ST = tempst - 12;\r\n // }\r\n // }\r\n // this.tempArray[y].StartTime = ST + this.tempArray[y].StartTime.substr(2, 3) + \" \" + stampm;\r\n // var tempet = 0;\r\n // tempet = +this.tempArray[y].EndTime.substr(0, 2);\r\n // if (tempet < 12) {\r\n // var etampm = \"AM\";\r\n // var ET = tempet;\r\n // }\r\n // else {\r\n // etampm = \"PM\";\r\n // if (tempet == 12) {\r\n // var ET = tempet;\r\n // } else {\r\n // ET = tempet - 12;\r\n // }\r\n // }\r\n // this.tempArray[y].EndTime = ET + this.tempArray[y].EndTime.substr(2, 3) + \" \" + etampm;\r\n // }\r\n // this.filteredSchedulingList = this.tempArray;\r\n // this.HospitalDoctorMapping = res.HospitalDoctorMapId;\r\n }\r\n // doctorAvailableListClass = (d: Date) => {\r\n\r\n // const date = moment(d).format('YYYY-MM-DD');\r\n // // Highlight the 1st and 20th day of each month.\r\n // this.filteredSchedulingList.forEach(x => {\r\n // // return (d.equals(x.Date)) ? 'doctorAvailableList' : undefined;\r\n // return (date == moment(x.Date).format('YYYY-MM-DD')) ? 'doctorAvailableList' : undefined;\r\n // })\r\n doctorAvailableListClass: MatCalendarCellClassFunction = (cellDate: any, view) => {\r\n // var newDate = this.filteredSchedulingList[1].Date;\r\n const date = cellDate.format('YYYY-MM-DD');\r\n for (var i = 0; i < this.filteredSchedulingList.length; i++) {\r\n this.availableDate = this.filteredSchedulingList[i].Date;\r\n var newDate = moment(this.availableDate).format('YYYY-MM-DD')\r\n if (newDate == date) {\r\n return date == newDate ? 'doctorAvailableListClass' : '';\r\n }\r\n }\r\n };\r\n}\r\n// }\r\n","
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n ×\r\n \r\n
\r\n Doctor  |   Update Your Profile. \r\n
\r\n
\r\n Doctor  |   Update {{docName}} Profile. \r\n
\r\n
\r\n \r\n

Fields with * are required.

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n First Name*\r\n \r\n \r\n \r\n \r\n \r\n Last Name*\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Upload Image\r\n \r\n \r\n Remove\r\n \r\n
\r\n 0\" style=\"font-size: 11px\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n S. No\r\n Hospital Name\r\n Department Name\r\n Consultation Type\r\n Charge\r\n Action\r\n \r\n \r\n \r\n \r\n {{i+1}}\r\n \r\n

\r\n {{hospdoc.HospitalName}}\r\n

\r\n \r\n \r\n

\r\n {{hospdoc.DepartmentName}}\r\n

\r\n \r\n \r\n

\r\n {{hospdoc.ConsultationType}}\r\n

\r\n \r\n \r\n

\r\n {{hospdoc.Charge}}\r\n

\r\n \r\n \r\n
\r\n   \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n S. No\r\n Designation\r\n Education\r\n Experience(Years)\r\n PastAffiliation\r\n Membership\r\n Action\r\n \r\n \r\n \r\n \r\n {{i+1}}\r\n \r\n

\r\n {{qualf.Designation}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.Education}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.Experience}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.PastAffiliation}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.Membership}}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Qualification
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DesignationEducationExperience(Years)PastAffiliationMembership
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n Hospital\r\n Department\r\n Charge\r\n Consultation Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{list.HospitalName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{list.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Cancel\r\n \r\n   \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n First Name*\r\n \r\n \r\n \r\n \r\n \r\n Last Name*\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Upload Image\r\n \r\n \r\n Remove\r\n \r\n
\r\n 0\" style=\"font-size: 11px\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n S. No\r\n Hospital Name\r\n Department Name\r\n Consultation Type\r\n Charge\r\n Action specific\r\n \r\n \r\n \r\n \r\n {{i+1}}\r\n \r\n \r\n {{hospdoc.HospitalName}}\r\n

\r\n

{{hospdoc.HospitalName}}

\r\n \r\n \r\n

\r\n {{hospdoc.DepartmentName}}\r\n

\r\n \r\n \r\n

\r\n {{hospdoc.ConsultationType}}\r\n

\r\n \r\n \r\n

\r\n {{hospdoc.Charge}}\r\n

\r\n \r\n \r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n S. No\r\n Designation\r\n Education\r\n Experience(Years)\r\n PastAffiliation\r\n Membership\r\n Action\r\n \r\n \r\n \r\n \r\n {{i+1}}\r\n \r\n

\r\n {{qualf.Designation}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.Education}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.Experience}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.PastAffiliation}}\r\n

\r\n \r\n \r\n

\r\n {{qualf.Membership}}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Designation\r\n Education\r\n Experience(Years)\r\n PastAffiliation\r\n Membership\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n Hospital\r\n Department\r\n Charge\r\n Consultation Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{list.HospitalName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{list.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n   \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n

\r\n Edit HospitalDepartmentMap\r\n \r\n ×\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n \r\n Hospital\r\n Department specific\r\n Charge\r\n Consultation Type\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{list.HospitalName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{list.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n

\r\n Edit Qualification\r\n \r\n ×\r\n \r\n

\r\n\r\n
\r\n \r\n \r\n \r\n Designation\r\n Education\r\n Experience(Years)\r\n PastAffiliation\r\n Membership\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ChangeDetectorRef } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Global } from \"../../app.global\";\r\nimport { DoctorService } from \"../../services/doctor/doctor.service\";\r\nimport { Doctor } from \"../../models/doctor/doctor.model\";\r\nimport { HttpClient, HttpRequest, HttpEventType } from \"@angular/common/http\";\r\nimport { AlertService } from \"../../services/alert.service\";\r\nimport * as moment from \"moment/moment\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { Departement } from \"../../models/Department/app.department.model\";\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { FormBuilder, FormGroup, NgForm } from \"@angular/forms\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { HospitalService } from \"../../services/hospital/hospital.service\";\r\nimport { Hospital } from \"../../models/hospital/hospital.model\";\r\nimport { HospitalDoctorMap } from \"../../models/HospitalDoctorMap/app.hospitaldoctormap.model\";\r\nimport { Qualification } from \"../../models/Qualification/qualification.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { PopUpDialogComponent } from \"../../components/common/popup/pop-up.component\";\r\n@Component({\r\n selector: \"doctor-update-profile\",\r\n templateUrl: \"./app.doctor_updateprofile.html\",\r\n styleUrls: [\"./app.doctor_updateprofile.css\"],\r\n})\r\nexport class DoctorUpdateProfileComponent implements OnInit {\r\n public updateDoc: boolean;\r\n public today = new Date();\r\n public docInfo: Doctor = new Doctor();\r\n public departmentId: string;\r\n public tempvalue: string = \"\";\r\n public selDepartment: any;\r\n public selConsultation: any;\r\n public dept: Departement = new Departement();\r\n public hosp: Hospital = new Hospital();\r\n public deptList: Array = new Array();\r\n public docList: Array = new Array();\r\n public progress: number;\r\n public message: string;\r\n public hospitalDoctorDetail: Array;\r\n public qualificationDetail: Array;\r\n\r\n mapId: string;\r\n ConsultationType = [\r\n { id: 1, name: \"Online Appointment\" },\r\n { id: 2, name: \"Telemedicine\" },\r\n ];\r\n loading = false;\r\n public doc: any;\r\n public HospitalName: any;\r\n public docName: string;\r\n public DepartmentName: any;\r\n public HospitalId: string;\r\n public DepartmentId: string;\r\n public Charge: any;\r\n public Consultation: string;\r\n public token: any;\r\n public hospitalList: Array;\r\n public DeptHostList: any;\r\n doctorUpdateForm: FormGroup;\r\n public selHospital: any;\r\n public hospitalId: string;\r\n public rowCount: number = 0;\r\n public index: number = 0;\r\n public addDept: boolean = false;\r\n public exceptionOccur: boolean = false;\r\n public intraExceptionOccur: boolean = false;\r\n public editModal: boolean = false;\r\n public editQualf: boolean = false;\r\n public hosdocMap: HospitalDoctorMap = new HospitalDoctorMap();\r\n public Qualification: Qualification = new Qualification();\r\n public hospdocMap: Array = new Array();\r\n public qualification: Array = new Array();\r\n isDocEditor = false;\r\n isDocScheduleEditor = false;\r\n public docId: any;\r\n public hospitalIdentifier: string;\r\n public changesSavedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n newQualification: Qualification = {\r\n QualificationId: \"\",\r\n Designation: \"\",\r\n Education: \"\",\r\n PastAffiliation: \"\",\r\n Experience: \"\",\r\n Membership: \"\",\r\n DoctorId: \"\",\r\n };\r\n\r\n newHospitalMap: HospitalDoctorMap = {\r\n HospitalDoctorMapId: \"\",\r\n DoctorId: \"\",\r\n HospitalId: \"\",\r\n DepartmentId: \"\",\r\n Charge: 0,\r\n ConsultationType: \"\",\r\n HospitalName: \"\",\r\n DepartmentName: \"\",\r\n DoctorName: \"\",\r\n AdminId: \"\",\r\n };\r\n\r\n public isConfirmed: boolean;\r\n allowEdit: boolean = false;\r\n constructor(\r\n public global: Global,\r\n public docservice: DoctorService,\r\n public alertService: AlertService,\r\n public router: Router,\r\n public httpClient: HttpClient,\r\n private authenticationService: AuthenticationService,\r\n public http: HttpClient,\r\n private notifyService: NotificationService,\r\n public hospitalService: HospitalService,\r\n public dialog: MatDialog,\r\n public changeDetector: ChangeDetectorRef\r\n ) {\r\n this.token = this.authenticationService.currentUserValue;\r\n if (this.token.UserType !== \"Admin\") {\r\n this.allowEdit = false;\r\n this.GetDepartmentList();\r\n }\r\n if (this.token.UserType == \"Admin\") {\r\n this.allowEdit = true;\r\n }\r\n this.GetHospitalList();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.newHospitalMap = {\r\n HospitalDoctorMapId: \"\",\r\n DoctorId: \"\",\r\n HospitalId: \"\",\r\n DepartmentId: \"\",\r\n Charge: 0,\r\n ConsultationType: \"\",\r\n HospitalName: \"\",\r\n DepartmentName: \"\",\r\n DoctorName: \"\",\r\n AdminId: \"\",\r\n };\r\n this.hospdocMap.push(this.newHospitalMap);\r\n this.newQualification = {\r\n QualificationId: \"\",\r\n Designation: \"\",\r\n Education: \"\",\r\n PastAffiliation: \"\",\r\n Experience: \"\",\r\n Membership: \"\",\r\n DoctorId: \"\",\r\n };\r\n this.qualification.push(this.newQualification);\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n GetHospitalList() {\r\n this.hospitalService.getHospitalList().subscribe(\r\n (res) => {\r\n this.hospitalList = res;\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n }\r\n );\r\n }\r\n GetDepartmentList() {\r\n this.docservice.getDepartmentList().subscribe(\r\n (res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.deptList = res?.Results;\r\n this.GetDoctor();\r\n //this.DeptHostList= concat(this.deptList);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n }\r\n );\r\n }\r\n hospitalChanged() {\r\n this.hospitalId = this.selHospital;\r\n }\r\n departmentChanged() {\r\n this.departmentId = this.selDepartment;\r\n }\r\n consulationChanged() {\r\n this.Consultation = this.selConsultation;\r\n }\r\n\r\n GetDoctorList() {\r\n this.docservice.getDoctorList().subscribe(\r\n (res: any) => {\r\n this.docList = res?.Results;\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n }\r\n );\r\n }\r\n GetDoctor() {\r\n if (this.token.UserType !== \"Admin\") {\r\n this.docId = this.token.DoctorIdentifier;\r\n }\r\n this.docservice.getDoctor(this.docId).subscribe(\r\n (res) => {\r\n this.docInfo = res;\r\n if (this.docInfo.DateOfBirth != null) {\r\n this.docInfo.DateOfBirth = moment(res.DateOfBirth).format(\r\n \"MM-DD-YYYY\"\r\n );\r\n } else {\r\n this.docInfo.DateOfBirth = moment().format(\"MM-DD-YYYY\");\r\n }\r\n this.docInfo.FileName = null;\r\n this.tempvalue = this.docInfo.FilePath;\r\n this.docInfo.FilePath = null;\r\n this.departmentChanged();\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n }\r\n );\r\n }\r\n UpdateDocProfile(form: NgForm) {\r\n var validation = this.checkInputValidity();\r\n if (validation.failed) {\r\n this.notifyService.showError(validation.errorMessages, \"Invalid Input\");\r\n return;\r\n }\r\n\r\n this.exceptionOccur = false;\r\n for (var i = 0; i < this.hospdocMap.length; i++) {\r\n for (var x = 0; x < this.docInfo.HospitalDepartmentMap.length; x++) {\r\n // cmt for wecare\r\n // if ((this.hospdocMap[i].HospitalId == this.docInfo.HospitalDepartmentMap[x].HospitalId) && (this.hospdocMap[i].DepartmentId == this.docInfo.HospitalDepartmentMap[x].DepartmentId)) {\r\n // this.exceptionOccur = true;\r\n // }\r\n }\r\n }\r\n var depcount = 0;\r\n if (this.hospdocMap.length > 1) {\r\n for (var z = 0; z < this.hospdocMap.length; z++) {\r\n for (var y = 0; y < this.hospdocMap.length; y++) {\r\n if (\r\n this.hospdocMap[z].HospitalId == this.hospdocMap[y].HospitalId &&\r\n this.hospdocMap[z].DepartmentId == this.hospdocMap[y].DepartmentId\r\n ) {\r\n depcount++;\r\n }\r\n }\r\n }\r\n } else {\r\n this.intraExceptionOccur = false;\r\n }\r\n\r\n if (depcount <= this.hospdocMap.length) {\r\n this.intraExceptionOccur = false;\r\n }\r\n if (this.exceptionOccur == false && this.intraExceptionOccur == false) {\r\n // if (this.docInfo.FilePath == null) {\r\n // if (this.tempvalue != null) {\r\n // this.tempvalue = this.tempvalue.slice(10);\r\n // }\r\n // this.docInfo.FilePath = this.tempvalue;\r\n // }\r\n this.docInfo.DepartmentId = this.departmentId;\r\n this.docInfo.HospitalDoctorMap = JSON.stringify(this.hospdocMap);\r\n this.docInfo.Qualification = JSON.stringify(this.qualification);\r\n\r\n const momentDate = new Date(this.docInfo.DateOfBirth);\r\n this.docInfo.DateOfBirth = moment(momentDate).format(\"YYYY/MM/DD\");\r\n if (this.token.UserType === \"Admin\") {\r\n this.docInfo.AdminId = this.token.unique_name;\r\n } else {\r\n this.docInfo.AdminId = \"\";\r\n }\r\n this.docInfo.HospitalIdentifier = this.token.hospitalIdentifier;\r\n this.docservice.updateDoctor(this.docInfo).subscribe(\r\n (data) => {\r\n this.alertService.success(\"Updated successful\", true);\r\n\r\n this.updateDoc = false;\r\n if (\r\n this.token.UserType == \"Admin\" &&\r\n this.isDocScheduleEditor == false\r\n ) {\r\n this.router.navigate([\"/doclist\"]);\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n } else if (\r\n this.token.UserType == \"Admin\" &&\r\n this.isDocScheduleEditor == true\r\n ) {\r\n this.router.navigate([\"/scheduling\"]);\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n } else {\r\n this.router.navigate([\"/DocDashboard\"]);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n }\r\n );\r\n } else {\r\n this.notifyService.showError(\r\n \"Error\",\r\n \" Same Department with Same Hospital can't be taken\"\r\n );\r\n }\r\n }\r\n\r\n updatedoctor() {\r\n this.exceptionOccur = false;\r\n var depcount = 0;\r\n if (this.hospdocMap.length > 1) {\r\n for (var z = 0; z < this.hospdocMap.length; z++) {\r\n for (var y = 0; y < this.hospdocMap.length; y++) {\r\n if (\r\n this.hospdocMap[z].HospitalId == this.hospdocMap[y].HospitalId &&\r\n this.hospdocMap[z].DepartmentId == this.hospdocMap[y].DepartmentId\r\n ) {\r\n depcount++;\r\n }\r\n }\r\n }\r\n } else {\r\n this.intraExceptionOccur = false;\r\n }\r\n\r\n if (depcount <= this.hospdocMap.length) {\r\n this.intraExceptionOccur = false;\r\n }\r\n\r\n var validation = this.checkInputValidity();\r\n if (validation.failed) {\r\n this.notifyService.showError(validation.errorMessages, \"Invalid Input\");\r\n return;\r\n }\r\n\r\n if (this.exceptionOccur == false && this.intraExceptionOccur == false) {\r\n if (this.docInfo.FilePath == null) {\r\n if (this.tempvalue != null) {\r\n this.tempvalue = this.tempvalue.slice(10);\r\n }\r\n this.docInfo.FilePath = this.tempvalue;\r\n }\r\n this.docInfo.DepartmentId = this.departmentId;\r\n this.docInfo.HospitalDoctorMap = JSON.stringify(this.hospdocMap);\r\n this.docInfo.Qualification = JSON.stringify(this.qualification);\r\n\r\n const momentDate = new Date(this.docInfo.DateOfBirth);\r\n this.docInfo.DateOfBirth = moment(momentDate).format(\"YYYY/MM/DD\");\r\n if (this.token.UserType === \"Admin\") {\r\n this.docInfo.AdminId = this.token.unique_name;\r\n } else {\r\n this.docInfo.AdminId = \"\";\r\n }\r\n this.docInfo.HospitalIdentifier = this.hospitalIdentifier;\r\n this.docservice.updateDoctor(this.docInfo).subscribe(\r\n (data) => {\r\n this.notifyService.showSuccess(\r\n \"Successful\",\r\n \"Doctor Details has been Successfully Updated.\"\r\n );\r\n\r\n if (\r\n this.token.UserType == \"Admin\" &&\r\n this.isDocScheduleEditor == false\r\n ) {\r\n this.router.navigate([\"/doclist\"]);\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n } else if (\r\n this.token.UserType == \"Admin\" &&\r\n this.isDocScheduleEditor == true\r\n ) {\r\n this.router.navigate([\"/scheduling\"]);\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n } else {\r\n this.router.navigate([\"/DocDashboard\"]);\r\n }\r\n this.hospdocMap = new Array();\r\n this.newHospitalMap = {\r\n HospitalDoctorMapId: \"\",\r\n DoctorId: \"\",\r\n HospitalId: \"\",\r\n DepartmentId: \"\",\r\n Charge: 0,\r\n ConsultationType: \"\",\r\n HospitalName: \"\",\r\n DepartmentName: \"\",\r\n DoctorName: \"\",\r\n AdminId: \"\",\r\n };\r\n this.hospdocMap.push(this.newHospitalMap);\r\n this.qualification = new Array();\r\n this.newQualification = {\r\n QualificationId: \"\",\r\n Designation: \"\",\r\n Education: \"\",\r\n PastAffiliation: \"\",\r\n Experience: \"\",\r\n Membership: \"\",\r\n DoctorId: \"\",\r\n };\r\n this.qualification.push(this.newQualification);\r\n this.updateDoc = false;\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n }\r\n );\r\n } else {\r\n this.notifyService.showError(\r\n \"Error\",\r\n \" Same Department with Same Hospital can't be taken\"\r\n );\r\n }\r\n }\r\n\r\n private checkInputValidity() {\r\n var validation = { failed: false, errorMessages: [] };\r\n\r\n var namePattern = /^[\\w'\\-,.][^0-9_!¡?÷?¿/\\\\+=@#$%ˆ&*(){}|~<>;:[\\]]{2,}$/;\r\n if (namePattern.test(this.docInfo.FirstName) == false) {\r\n validation.errorMessages.push(\"\\nFirstName is not valid\");\r\n validation.failed = true;\r\n }\r\n\r\n if (namePattern.test(this.docInfo.LastName) == false) {\r\n validation.errorMessages.push(\"\\nLastName is not valid\");\r\n validation.failed = true;\r\n }\r\n\r\n if (this.docInfo.MiddleName) {\r\n if (namePattern.test(this.docInfo.MiddleName) == false) {\r\n validation.errorMessages.push(\"\\nMiddleName is not valid\");\r\n validation.failed = true;\r\n }\r\n }\r\n\r\n if (this.docInfo.MailingAddress) {\r\n var emailPattern =\r\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\r\n if (emailPattern.test(this.docInfo.MailingAddress) == false) {\r\n validation.errorMessages.push(\"\\nEmail is not valid\");\r\n validation.failed = true;\r\n }\r\n }\r\n var nmcPattern = /\\d+[0-9]*$/;\r\n if (nmcPattern.test(this.docInfo.NMC) == false) {\r\n validation.errorMessages.push(\"\\nNMC number is required.\");\r\n validation.failed = true;\r\n }\r\n return validation;\r\n }\r\n\r\n addRow(index) {\r\n if (this.docInfo.HospitalDepartmentMap.length == 0) {\r\n this.addDept = true;\r\n }\r\n for (var i = 0; i < this.docInfo.HospitalDepartmentMap.length; i++) {\r\n // cmt for wecare\r\n // if ((this.newHospitalMap.HospitalId == this.docInfo.HospitalDepartmentMap[i].HospitalId) && (this.newHospitalMap.DepartmentId == this.docInfo.HospitalDepartmentMap[i].DepartmentId)) {\r\n\r\n // this.notifyService.showError(\"Error\", \" Same Department with Same Hospital can't be taken\");\r\n // this.newHospitalMap.HospitalId = null;\r\n // this.newHospitalMap.DepartmentId = null;\r\n // this.newHospitalMap.Charge = null;\r\n // this.newHospitalMap.ConsultationType = null;\r\n // return true;\r\n // }\r\n // else {\r\n this.addDept = true;\r\n // }\r\n }\r\n if (this.addDept) {\r\n var count = 0;\r\n this.intraExceptionOccur = false;\r\n this.newHospitalMap = {\r\n HospitalDoctorMapId: \"\",\r\n DoctorId: \"\",\r\n HospitalId: \"\",\r\n DepartmentId: \"\",\r\n Charge: 0,\r\n ConsultationType: \"\",\r\n HospitalName: \"\",\r\n DepartmentName: \"\",\r\n DoctorName: \"\",\r\n AdminId: \"\",\r\n };\r\n if (this.hospdocMap.length > 1) {\r\n for (var z = 0; z < this.hospdocMap.length; z++) {\r\n for (var y = 0; y < this.hospdocMap.length; y++) {\r\n if (\r\n this.hospdocMap[z].HospitalId == this.hospdocMap[y].HospitalId &&\r\n this.hospdocMap[z].DepartmentId == this.hospdocMap[y].DepartmentId\r\n ) {\r\n count++;\r\n }\r\n }\r\n }\r\n } else {\r\n this.intraExceptionOccur = false;\r\n }\r\n if (count <= this.hospdocMap.length) {\r\n this.intraExceptionOccur = false;\r\n this.hospdocMap.push(this.newHospitalMap);\r\n console.log(this.hospdocMap);\r\n return true;\r\n } else {\r\n this.intraExceptionOccur = true;\r\n this.notifyService.showError(\r\n \"Error\",\r\n \" Same Department with Same Hospital can't be taken\"\r\n );\r\n this.newHospitalMap.HospitalId = null;\r\n this.newHospitalMap.DepartmentId = null;\r\n this.newHospitalMap.Charge = null;\r\n this.newHospitalMap.ConsultationType = null;\r\n }\r\n }\r\n }\r\n\r\n deleteRow(index) {\r\n if (this.hospdocMap.length == 1) {\r\n return false;\r\n } else {\r\n this.hospdocMap.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n deleteHospitalMap(HospitalDoctorMapId) {\r\n this.docservice.deleteHospitalMap(HospitalDoctorMapId).subscribe(\r\n (res) => this.SuccessDelete(res),\r\n (error) => this.Error(error)\r\n );\r\n }\r\n SuccessDelete(res) {\r\n this.GetDoctor();\r\n this.notifyService.showSuccess(\"Success\", \" Deleted Successfully \");\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\r\n \"Schedules are available\",\r\n \"This can't be delete\"\r\n );\r\n }\r\n editHospitalMap(hosdoc) {\r\n this.editModal = true;\r\n this.mapId = hosdoc.HospitalDoctorMapId;\r\n this.hospitalDoctorDetail = this.docInfo.HospitalDepartmentMap.filter(\r\n (x) => x.HospitalDoctorMapId == this.mapId\r\n );\r\n this.selHospital = this.HospitalId =\r\n this.hospitalDoctorDetail[0].HospitalId;\r\n this.selDepartment = this.DepartmentId =\r\n this.hospitalDoctorDetail[0].DepartmentId;\r\n this.HospitalName = this.hospitalDoctorDetail[0].HospitalName;\r\n this.DepartmentName = this.hospitalDoctorDetail[0].DepartmentName;\r\n this.Charge = this.hospitalDoctorDetail[0].Charge;\r\n this.selConsultation = this.Consultation =\r\n this.hospitalDoctorDetail[0].ConsultationType;\r\n let existingDepartment = this.deptList.find(\r\n (x) => x.DepartmentId == this.DepartmentId\r\n );\r\n this.hospitalDepartmentMap(this.HospitalId);\r\n this.deptList[0] = existingDepartment;\r\n }\r\n\r\n hide() {\r\n this.editModal = false;\r\n this.editQualf = false;\r\n }\r\n public Update() {\r\n this.hosdocMap.HospitalId =\r\n this.selHospital != undefined ? this.selHospital : this.HospitalId;\r\n this.hosdocMap.DepartmentId =\r\n this.selDepartment != undefined ? this.selDepartment : this.DepartmentId;\r\n this.hosdocMap.Charge = this.Charge;\r\n this.hosdocMap.ConsultationType = this.Consultation;\r\n this.hosdocMap.HospitalDoctorMapId = this.mapId;\r\n if (this.token.UserType === \"Admin\") {\r\n this.hosdocMap.AdminId = this.token.unique_name;\r\n } else {\r\n this.hosdocMap.AdminId = \"\";\r\n }\r\n this.docservice.updateHosDocMap(this.hosdocMap).subscribe(\r\n (res) => this.SuccessHospitalDoctorMap(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessHospitalDoctorMap(res) {\r\n this.editModal = false;\r\n this.GetDoctor();\r\n this.notifyService.showSuccess(\"\", \" Updated Successfully\");\r\n }\r\n editQualification(QualificationId) {\r\n this.editQualf = true;\r\n this.mapId = QualificationId;\r\n this.qualificationDetail = this.docInfo.DoctorQualification.filter(\r\n (x) => x.QualificationId == this.mapId\r\n );\r\n }\r\n UpdateQualification() {\r\n this.Qualification.Designation = this.qualificationDetail[0].Designation;\r\n this.Qualification.Education = this.qualificationDetail[0].Education;\r\n this.Qualification.PastAffiliation =\r\n this.qualificationDetail[0].PastAffiliation;\r\n this.Qualification.Experience = this.qualificationDetail[0].Experience;\r\n this.Qualification.Membership = this.qualificationDetail[0].Membership;\r\n this.Qualification.QualificationId = this.mapId;\r\n this.docservice.updateQualification(this.Qualification).subscribe(\r\n (res) => this.SuccessQualification(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessQualification(res) {\r\n this.editQualf = false;\r\n this.notifyService.showSuccess(\"\", \"Successfully Updated\");\r\n }\r\n\r\n upload(files) {\r\n if (files.length === 0) return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of files) {\r\n if (file.size * 0.00000095367432 > 5) {\r\n this.notifyService.showWarning(\r\n \"Error\",\r\n \"File size should be less than 5 MB.\"\r\n );\r\n return;\r\n }\r\n let fileExtension = file.name.split(\".\").pop().toLowerCase();\r\n var acceptedFileFormat = [\"jpg\", \"png\", \"doc\", \"docx\", \"pdf\"];\r\n if (!acceptedFileFormat.includes(fileExtension)) {\r\n this.notifyService.showWarning(\"Unsupported file format\", \"Error\");\r\n return;\r\n }\r\n formData.append(file.name, file);\r\n const uploadReq = new HttpRequest(\r\n \"POST\",\r\n `api/Doctor/UploadFile/`,\r\n formData,\r\n {\r\n reportProgress: true,\r\n }\r\n );\r\n\r\n this.http.request(uploadReq).subscribe((event) => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round((100 * event.loaded) / event.total);\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n });\r\n }\r\n }\r\n addRowQualification(index) {\r\n this.newQualification = {\r\n QualificationId: \"\",\r\n Designation: \"\",\r\n Education: \"\",\r\n PastAffiliation: \"\",\r\n Experience: \"\",\r\n Membership: \"\",\r\n DoctorId: \"\",\r\n };\r\n this.qualification.push(this.newQualification);\r\n console.log(this.qualification);\r\n return true;\r\n }\r\n deleteRowQualification(index) {\r\n this.intraExceptionOccur = false;\r\n if (this.qualification.length == 1) {\r\n return false;\r\n } else {\r\n this.qualification.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n editDoctor(doc: Doctor, isDoc: boolean, hospital: string) {\r\n this.isDocEditor = isDoc;\r\n this.docId = doc.DoctorId;\r\n this.docName = doc.DoctorName;\r\n this.hospitalIdentifier = hospital;\r\n this.GetDepartmentList();\r\n return this.docId;\r\n }\r\n editDoctorModal(\r\n doc: HospitalDoctorMap,\r\n isDoc: boolean,\r\n isDocSchedule: boolean,\r\n hospital: string\r\n ) {\r\n this.isDocEditor = isDoc;\r\n this.isDocScheduleEditor = isDocSchedule;\r\n this.docId = doc.DoctorId;\r\n this.docName = doc.DoctorName;\r\n this.hospitalIdentifier = hospital;\r\n this.GetDepartmentList();\r\n return this.docId;\r\n }\r\n cancel() {\r\n if (this.changesCancelledCallback) {\r\n this.hospdocMap.length = 1;\r\n this.hospdocMap.forEach((x) => {\r\n x.HospitalId = \"\";\r\n x.DepartmentId = \"\";\r\n x.Charge = 0;\r\n x.ConsultationType = \"\";\r\n });\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n Removepicture() {\r\n this.tempvalue = \"\";\r\n this.docInfo.FilePath = this.tempvalue;\r\n this.message = \"Profile removed\";\r\n }\r\n\r\n openDialog(data) {\r\n const dialogRef = this.dialog.open(PopUpDialogComponent, {\r\n data: { msg: \"updateProfile\" },\r\n width: \"250px\",\r\n height: \"300\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.isConfirmed = result;\r\n if (this.isConfirmed === true) {\r\n this.UpdateDocProfile(data);\r\n }\r\n });\r\n }\r\n CancelUpdate() {\r\n this.router.navigate([\"/DocDashboard\"]);\r\n }\r\n hospitalDepartmentMap(hospitalId) {\r\n var selectedHospitalDepartmentMap =\r\n this.docInfo.HospitalDepartmentMap.filter(\r\n (x) => x.HospitalId == hospitalId\r\n );\r\n if (selectedHospitalDepartmentMap.length > 0) {\r\n selectedHospitalDepartmentMap.forEach((x) => {\r\n let valueIndex = this.deptList.filter(\r\n (y) => y.DepartmentId != x.DepartmentId\r\n );\r\n this.deptList = valueIndex;\r\n });\r\n } else this.GetDepartmentList();\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
  • \r\n
  • \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport * as moment from 'moment/moment'\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\n\r\n@Component({\r\n templateUrl: './app.booking_home.html'\r\n})\r\nexport class PatientBookingHomeComponent {\r\n public patBook: boolean = false;\r\n public bookList: boolean = false;\r\n public token: any;\r\n public patBookList: any;\r\n public HospitalId: any;\r\n constructor(public routing: Router, public patService: PatientService, public route: ActivatedRoute,\r\n public alertService: AlertService, public authService: AuthenticationService) {\r\n this.HospitalId = this.route.snapshot.queryParamMap.get('id');\r\n \r\n this.token = this.authService.currentUserValue;\r\n }\r\n public BookNewVisit() {\r\n this.patBook = true;\r\n this.routing.navigate(['/PatBookAppointment']);\r\n }\r\n\r\n public MyBookList() {\r\n this.bookList = true;\r\n this.routing.navigate(['/PatDashboard/PatBookHome/PatBookList']);\r\n\r\n }\r\n public Payment() {\r\n this.patBook = true;\r\n this.routing.navigate(['/PatDashboard/PaymentSelection']);\r\n }\r\n public MyPaidBooking() {\r\n this.patBook = true;\r\n this.routing.navigate(['/PatDashboard/PatBookHome/PaidBookedList']);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n

My Booking List

\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNVisitDateVisitTimePatientNameHospitalNameDoctorNameDepartmentVisitTypeActionPrint Report
{{i+1}}{{data.VisitDate}}{{data.VisitTime}}{{data.PatientFamilyName ? data.PatientFamilyName : data.PatientName}}{{data.HospitalName}}{{data.DoctorName}}{{data.DepartmentName}}{{data.VisitType}}\r\n \r\n \r\n \r\n Pay\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Sorry! No bookings found!\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { ChangeDetectorRef, Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport * as moment from 'moment/moment';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n@Component({\r\n templateUrl: './app.mybooklist.html',\r\n styleUrls: ['./app.mybookinglist.css']\r\n\r\n})\r\nexport class MyBooKListComponent {\r\n public token: any;\r\n config: any;\r\n public patBookList: any;\r\n public patbook: boolean;\r\n public printDetails: any;\r\n public hospitalId: any;\r\n public showPrint: boolean = false;\r\n public showActions: boolean = true;\r\n public reportHeader:any;\r\n public reportFooter:any;\r\n collection = { count: 60, data: [] };\r\n p: number = 1;\r\n todayDate = moment();\r\n\r\n public isBookingAvailable: boolean = false;\r\n\r\n constructor(public routing: Router, private route: ActivatedRoute,\r\n public authService: AuthenticationService,\r\n public patService: PatientService, public alertService: AlertService,\r\n public hospitalService: HospitalService,\r\n public changeDetector: ChangeDetectorRef,\r\n public notifyService: NotificationService,\r\n\r\n ) {\r\n this.token = this.authService.currentUserValue;\r\n this.ShowBookList();\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n }\r\n public ShowBookList() {\r\n this.patbook = true;\r\n this.patService.getPatientBookingList(this.token.PatientIdentifier).subscribe(res => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.patBookList = res.Results;\r\n\r\n for (var i = 0; i < this.patBookList.length; i++) {\r\n // this.patBookList[i].VisitDate = moment(this.patBookList[i].VisitDate).format('ll');\r\n // this.patBookList[i].VisitStartTime = moment(this.patBookList[i].VisitStartTime).format('LT');\r\n var currentDateTime = this.todayDate.tz(\"Asia/Kathmandu\").format('YYYY/MM/DD HH:mm z');\r\n\r\n this.patBookList[i].VisitDate = moment(this.patBookList[i].VisitDate, 'YYYY/MM/DD hh:mm').format('YYYY/MM/DD');\r\n }\r\n this.collection = { count: this.patBookList.length, data: [] }\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitDate: this.patBookList[i].VisitDate,\r\n VisitTime: this.patBookList[i].BookingTime,\r\n PatientName: this.patBookList[i].PatientName,\r\n PatientFamilyName: this.patBookList[i].PatientFamilyName,\r\n HospitalName: this.patBookList[i].HospitalName,\r\n DoctorName: this.patBookList[i].DoctorName,\r\n DepartmentName: this.patBookList[i].DepartmentName,\r\n VisitType: this.patBookList[i].VisitType,\r\n PaymentStatus: this.patBookList[i].PaymentStatus,\r\n VisitId: this.patBookList[i].VisitId,\r\n Showpay: this.patBookList[i].VisitDate + ' ' + this.patBookList[i].DocEndTime >= currentDateTime && this.patBookList[i].PaymentStatus != 'paid' && this.patBookList[i].PaymentStatus != 'free' && this.patBookList[i].PaymentStatus == 'unpaid' ? true : false,\r\n Showpaid: this.patBookList[i].VisitDate + ' ' + this.patBookList[i].DocEndTime <= currentDateTime && this.patBookList[i].PaymentStatus != 'paid' && this.patBookList[i].PaymentStatus != 'free' && this.patBookList[i].PaymentStatus == 'unpaid' ? true : false,\r\n }\r\n );\r\n }\r\n if (this.collection.data.length > 0) {\r\n this.isBookingAvailable = true;\r\n }\r\n else {\r\n this.isBookingAvailable = false;\r\n }\r\n for (var i = 0; i < this.patBookList.length; i++) {\r\n this.patBookList[i].VisitDate = moment(this.patBookList[i].VisitDate).format('ll');\r\n this.patBookList[i].VisitStartTime = moment(this.patBookList[i].VisitStartTime).format('LT');\r\n }\r\n }\r\n else{\r\n this.notifyService.showError(\"\", \"Error Retriving Data\")\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n\r\n PrintTxnTable(datarow) {\r\n try {\r\n this.showPrint = false;\r\n this.printDetails = null;\r\n this.showActions = false;\r\n this.changeDetector.detectChanges();\r\n this.showPrint = true;\r\n this.printDetails = `Your appointment at Lumbini Province Hospital is Confirmed for ${datarow.VisitDate} with Dr. ${datarow.DoctorName} in the ${datarow?.DepartmentName} department.`;\r\n this.print();\r\n } catch (ex) {\r\n this.ShowCatchErrMessage(ex);\r\n }\r\n }\r\n public ShowCatchErrMessage(exception) {\r\n if (exception) {\r\n let ex: Error = exception;\r\n this.notifyService.showError(\"error\", [\"Check error in Console log !\"]);\r\n console.log(\"Error Messsage => \" + ex.message);\r\n console.log(\"Stack Details => \" + ex.stack);\r\n }\r\n }\r\n print() {\r\n var contents = this.printDetails;\r\n var iframe = document.createElement('iframe');\r\n document.body.appendChild(iframe);\r\n\r\n this.reportHeader = \"My Booking List\";\r\n this.reportFooter = \"Kindly attend the hospital on the schedule date.\"\r\n\r\n let documentContent = \"\";\r\n // documentContent += '';\r\n documentContent += '';\r\n // documentContent += '
' + this.reportHeader + '

';\r\n documentContent += '

';\r\n documentContent += ''\r\n documentContent += '
';\r\n documentContent += '\"logo\"';\r\n documentContent += '



';\r\n documentContent += '
';\r\n documentContent += '

' + contents + '

';\r\n documentContent += '

' + this.reportFooter + '

';\r\n documentContent += '
';\r\n documentContent += ''\r\n var htmlToPrint = '' + '';\r\n htmlToPrint += documentContent;\r\n iframe.contentWindow.document.open();\r\n iframe.contentWindow.document.write(htmlToPrint);\r\n iframe.contentWindow.document.close();\r\n\r\n setTimeout(function () {\r\n document.body.removeChild(iframe);\r\n }, 500);\r\n\r\n //this.notifyService.showSuccess('Success','Printed Successfully!!');\r\n this.showActions = true;\r\n }\r\n\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n\r\n public paymentselection(data) {\r\n this.routing.navigate(['/PaymentSelection'], { queryParams: { vid: data.VisitId, charge: data.Charge, id: this.hospitalId } });\r\n }\r\n\r\n public BookNewVisit() {\r\n this.routing.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n public MyBookList() {\r\n this.routing.navigate(['/PatBookList'], { queryParams: { id: this.hospitalId } });\r\n\r\n }\r\n\r\n public MyPaidBooking() {\r\n this.routing.navigate(['/PatPaidBookingList'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n public Payment() {\r\n this.routing.navigate(['/PatDashboard/PaymentSelection']);\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n

\r\n My Paid Booking List\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNVisitDateHospitalNameDoctorNameDepartmentVisitTypeAction
{{i+1}}{{data.VisitDate | date:'mediumDate'}}{{data.HospitalName}}{{data.DoctorName}}{{data.DepartmentName}}{{data.VisitType }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\n//import * as moment from 'moment/moment'\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { Paidbooking } from '../../models/patient/patient.model';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { ConsentFormComponent } from '../../ConsentForm/app.consentformcomponent';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSelectChange, MatSelect } from '@angular/material/select';\r\nimport * as moment from 'moment-timezone';\r\n\r\n@Component({\r\n templateUrl: './app.paidbookinglist.html'\r\n})\r\nexport class PaidBookingListComponent {\r\n public token: any;\r\n config: any;\r\n public patBookList: any;\r\n public patbook: boolean;\r\n public hospitalId: string;\r\n public showButton: boolean = true;\r\n public VisitId: string;\r\n p: number = 1;\r\n public goToWaitingRoom: boolean;\r\n collection = { count: 60, data: [] };\r\n nepaliDate = moment();\r\n constructor(public routing: Router, public dialog: MatDialog,\r\n private route: ActivatedRoute\r\n , public authService: AuthenticationService,\r\n public patService: PatientService\r\n , public alertService: AlertService,\r\n public hospitalService: HospitalService,\r\n public docService: DoctorService) {\r\n this.token = this.authService.currentUserValue;\r\n this.ShowBookList();\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n if (this.hospitalId == null) {\r\n this.showButton = false;\r\n }\r\n this.VisitId = this.route.snapshot.queryParamMap.get('vid');\r\n this.GetHospitalIdAndVisitIdFromLocalStorage();\r\n\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n public ShowBookList() {\r\n this.patbook = true;\r\n this.patService.getPatientBookingList(this.token.PatientIdentifier).subscribe((res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.patBookList = res.Results;\r\n\r\n for (let patBook of this.patBookList) {\r\n var currentNepaliDate = this.nepaliDate.tz(\"Asia/Kathmandu\").format('YYYY/MM/DD HH:mm z');\r\n var currentNepaliDateTime = this.nepaliDate.tz(\"Asia/Kathmandu\").format('YYYY/MM/DD HH:mm z');\r\n var currentdate = moment(currentNepaliDate, 'YYYY/MM/DD').format('YYYY/MM/DD');\r\n var currentDateWithTime = moment(currentNepaliDateTime, 'YYYY/MM/DD hh:mm').format('YYYY/MM/DD');\r\n var currentYear = moment(currentNepaliDate, 'YYYY/MM/DD').format('YYYY');\r\n var currentMonth = moment(currentNepaliDate, 'YYYY/MM/DD').format('M');\r\n var currentDay = moment(currentNepaliDate, 'YYYY/MM/DD').format('D');\r\n patBook.VisitDate = moment(patBook.VisitDate).format('YYYY/MM/DD');\r\n if (patBook.VisitDate == moment(this.nepaliDate).format('YYYY/MM/DD')) {\r\n var todaydate = new Date();\r\n var currentdate1 = this.nepaliDate.format('YYYY/MM/DD');\r\n var index = patBook.BookingTime ? patBook.BookingTime.indexOf(\"-\") : -1;\r\n var timeextract = patBook.BookingTime ? patBook.BookingTime.substring(0, index - 1) : \"\";\r\n var bookedDateTime = moment(currentdate + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n var formatedBookedDateTime = moment(bookedDateTime, 'YYYY-MM-DD HH:mm A');\r\n // var temp = moment(formatedBookedDateTime, 'YYYY-MM-DD HH:mm A').subtract(15, 'minutes').format('YYYY-MM-DD HH:mm A');\r\n // var formatedBookedDateTime = moment(temp, 'YYYY-MM-DDTHH:mm:s');\r\n var DocStartTime = moment(currentdate + ' ' + patBook.DocStartTime, 'YYYY/MM/DD HH:mm A');\r\n var formatedreducedStartTime = moment(DocStartTime, 'YYYY-MM-DD HH:mm A');\r\n var decStartTime = moment(formatedreducedStartTime, 'YYYY-MM-DD HH:mm A').subtract(15, 'minutes').format('YYYY-MM-DD HH:mm A');\r\n var formatedDecStartTime = moment(decStartTime, 'YYYY-MM-DDTHH:mm:A');\r\n var DocEndtime = moment(currentdate + ' ' + patBook.DocEndTime, 'YYYY/MM/DD HH:mm A');\r\n var formattedEndTime = moment(DocEndtime, 'YYYY-MM-DD HH:mm A');\r\n var currentTime1 = moment(todaydate).tz(\"Asia/Kathmandu\").format('YYYY-MM-DD HH:mm z');\r\n var currentTime = moment(currentTime1, 'YYYY/MM/DD hh:mm').format('YYYY-MM-DD HH:mm A');\r\n var momentObj = moment(currentTime, 'YYYY-MM-DDLT');\r\n var currentdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var formatedCurrentTime = moment(currentdateTime, 'YYYY-MM-DD HH:mm A');\r\n // var formatedCurrentTime = moment(currentTime, 'YYYY-MM-DD HH:mm A');\r\n // var diffmin = formatedBookedDateTime.diff(formatedCurrentTime, 'minutes');\r\n if (formatedDecStartTime <= formatedCurrentTime && formatedCurrentTime <= formattedEndTime) {\r\n //if (diffmin <= 15) {\r\n // patBook.GoToWaitingRoom = true;\r\n // patBook.AccessPermission = true;\r\n // patBook.EntryStatus = \"go\"\r\n //} else {\r\n // patBook.AccessPermission = false;\r\n // patBook.EntryStatus = \"todayupcoming\";\r\n patBook.GoToWaitingRoom = true;\r\n patBook.AccessPermission = true;\r\n patBook.EntryStatus = \"go\"\r\n }\r\n else {\r\n var diffminwithStarttime = formatedCurrentTime.diff(formatedDecStartTime, 'minutes');\r\n var diffminwithEndtime = formatedCurrentTime.diff(formattedEndTime, 'minutes');\r\n if (diffminwithStarttime < 0) {\r\n patBook.AccessPermission = false;\r\n patBook.EntryStatus = \"todayupcoming\";\r\n }\r\n if (diffminwithEndtime > 0) {\r\n patBook.AccessPermission = false;\r\n patBook.EntryStatus = \"todaypast\";\r\n }\r\n }\r\n\r\n\r\n }\r\n if (patBook.VisitDate < currentDateWithTime) {\r\n patBook.AccessPermission = false;\r\n patBook.GoToWaitingRoom = false;\r\n patBook.EntryStatus = \"missed\";\r\n }\r\n if (patBook.VisitDate > currentDateWithTime) {\r\n patBook.AccessPermission = false;\r\n patBook.GoToWaitingRoom = false;\r\n patBook.EntryStatus = \"upcoming\";\r\n }\r\n patBook.VisitDate = moment(patBook.VisitDate).format('ll');\r\n\r\n patBook.VisitStartTime = moment(patBook.VisitStartTime).format('LT');\r\n }\r\n this.collection = { count: this.patBookList.length, data: [] }\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitDate: this.patBookList[i].VisitDate,\r\n HospitalName: this.patBookList[i].HospitalName,\r\n DoctorName: this.patBookList[i].DoctorName,\r\n DepartmentName: this.patBookList[i].DepartmentName,\r\n VisitType: this.patBookList[i].VisitType,\r\n Status: this.patBookList[i].Status,\r\n ProviderId: this.patBookList[i].ProviderId,\r\n HospitalId: this.patBookList[i].HospitalId,\r\n }\r\n );\r\n }\r\n }else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n GotoWaitingRoom(data) {\r\n this.docService.DoctorId = data.ProviderId;\r\n const dialogRef = this.dialog.open(ConsentFormComponent,\r\n { data: { DoctorId: data.ProviderId, HospitalId: data.HospitalId }, width: '1300px', height: '1000px' }\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n if (result == true) {\r\n console.log(`Dialog result: ${result}`);\r\n // this.visitObj.DepartmentId = this.hospitalService.DepartmentId;\r\n this.routing.navigate(['/WaitingRoom'], { queryParams: { vid: data.VisitId, id: this.hospitalId, did: data.ProviderId } });\r\n }\r\n else\r\n this.routing.navigate(['/PatPaidBookingList']);\r\n });\r\n //this.patService.VisitId = data.VisitId;\r\n }\r\n\r\n public BookNewVisit() {\r\n this.hospitalService.DepartmentId = null;\r\n this.docService.DoctorId = null;\r\n this.routing.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n public MyBookList() {\r\n this.routing.navigate(['/PatBookList'], { queryParams: { id: this.hospitalId } });\r\n\r\n }\r\n\r\n public MyPaidBooking() {\r\n this.routing.navigate(['/PatPaidBookingList'], { queryParams: { id: this.hospitalId } });\r\n }\r\n public BackDashBoard() {\r\n //this.updatePat = false;\r\n this.routing.navigate(['/PatDashboard']);\r\n }\r\n\r\n GetHospitalIdAndVisitIdFromLocalStorage(): void {\r\n if (this.hospitalId == null) {\r\n this.hospitalId = localStorage.getItem(\"hospitalId\");\r\n localStorage.removeItem(\"hospitalId\");\r\n }\r\n if (this.VisitId == null) {\r\n this.VisitId = localStorage.getItem(\"visitId\");\r\n localStorage.removeItem(\"visitId\");\r\n }\r\n }\r\n UploadFile(data) {\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{row.DoctorName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Book New Visit

\r\n\r\n
\r\n Patient\r\n \r\n \r\n \r\n {{p.FirstName}} {{p.LastName}}\r\n \r\n \r\n
\r\n\r\n
\r\n Appointment\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{AppointmentType}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n {{hospital.HospitalName}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{deptName}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{doctor.DoctorName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Selected Appointment Time:  \r\n {{visitObj.BookingTime}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n Patient Details\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n Patient Details\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{r.relation}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Male   \r\n Female  \r\n Other  \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Vitals\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Medical History\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
File TypeTitleFileComment
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n 0 && progress < 100\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n \r\n \r\n \r\n +\r\n x\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild, OnInit, Pipe, HostListener } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Global } from '../../app.global';\r\n//import { Patient, Doctor } from './app.model';\r\nimport { timer, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FormGroup, FormControl, FormBuilder, Validators, NgForm } from '@angular/forms';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { Visit } from '../../models/visit/visit.model';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { Patient } from '../../models/patient/patient.model';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { PatientFilesUploadModel } from '../../models/patient/pat-fileupload.model';\r\nimport * as moment from 'moment';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { Hospital } from '../../models/hospital/hospital.model';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { Doctor } from '../../models/doctor/doctor.model';\r\n//import { error } from 'util';\r\nimport { HospitalDoctorMap } from '../../models/HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { Departement } from '../../models/Department/app.department.model';\r\nimport { NgbDateStruct, NgbCalendar } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SchedulingService } from '../../services/scheduling/scheduling.service';\r\nimport { VisitDate, ScheduleInterval } from '../../models/scheduling/scheduling.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSelectChange, MatSelect } from '@angular/material/select';\r\nimport { DoctorProfileComponent } from '../../Doctor/doctor_profile/app.doctor_profile';\r\nimport { ConsentFormComponent } from '../../ConsentForm/app.consentformcomponent';\r\nimport { PatientFamily } from 'src/app/models/patient/Pat-family.model';\r\n\r\n@Component({\r\n //selector: 'app-root',\r\n templateUrl: './app.patient_bookappointment.html'\r\n})\r\nexport class PatientBookAppointmentComponent implements OnInit {\r\n @ViewChild('fileInput') fileInput;\r\n appointmentTime: VisitDate[] = [];\r\n meridian: string = \"\";\r\n filteredOptions: Observable;\r\n date: { year: number, month: number };\r\n public bookList: boolean = false;\r\n public index: number;\r\n public appointDetail: boolean = false;\r\n visitObj: Visit = new Visit();\r\n hospitalList: Array = new Array();\r\n deptList: Array = new Array();\r\n filterDepartmentById: Array = new Array();\r\n docList: Array = new Array();\r\n public todayDate = new Date();\r\n public selHospital: any;\r\n public selDoctor: any;\r\n public files: any;\r\n public doctorId: string;\r\n public patId: string;\r\n public appointDetailStatus: string;\r\n public departmentId: string;\r\n public hospitalId: any;\r\n public docId: string;\r\n public depId: string;\r\n patientFrm: FormGroup;\r\n doctorFrm: FormGroup;\r\n token: any;\r\n // todayDate: any;\r\n deptName: string;\r\n public patBook: boolean = false;\r\n patInfo: Patient = new Patient();\r\n hospital: Hospital = new Hospital();\r\n patients: Array = new Array();\r\n public selDepartment: any;\r\n public doctList: any;\r\n public depList: any;\r\n public doctor: Doctor = new Doctor();\r\n public DepartmentName: any;\r\n public hospitalDepartment: any;\r\n public hospitalDoctor: any;\r\n public scheduleIntervalList: ScheduleInterval = new ScheduleInterval();\r\n public hospitalDepartmentIdList: Array = new Array();\r\n public hospitalDoctorIdList: Array = new Array();\r\n public hospitalDoctorMap: Array = new Array();\r\n public hospitalDoctorList: any;\r\n visitDate: NgbDateStruct;\r\n AppointmentType: string;\r\n fileType = [\r\n { id: 1, name: \"Lab\" },\r\n { id: 1, name: \"Clinical\" },\r\n { id: 1, name: \"Radiology\" }\r\n ];\r\n newFile: PatientFilesUploadModel = { PatientFileId: \"\", PatientId: \"\", VisitId: \"\", FileType: \"\", Title: \"\", FilePath: \"\", Comment: \"\" };\r\n public progress: number;\r\n public message: string;\r\n public hosDocList: any;\r\n public docDeptList: Array;\r\n public hospDeptList: any;\r\n public deptHosList: any;\r\n public filterhospDeptList: Array = [];\r\n public filterdeptHosList: Array = [];\r\n public patFiles: Array = new Array();\r\n\r\n public patinfo: Patient = new Patient();\r\n\r\n public bookforOther: boolean = false;\r\n public patFamilyList: Array = new Array();\r\n public selectedFamilyMember: string;\r\n\r\n Relationship = [\r\n { id: 1, relation: \"Father\" },\r\n { id: 2, relation: \"Mother\" },\r\n { id: 3, relation: \"Brother\" },\r\n { id: 4, relation: \"Sister\" },\r\n { id: 5, relation: \"Uncle\" },\r\n { id: 6, relation: \"Aunty\" },\r\n { id: 7, relation: \"Friend\" },\r\n { id: 8, relation: \"Grandfather\" },\r\n { id: 9, relation: \"Grandmother\" },\r\n { id: 10, relation: \"Other\" }\r\n ];\r\n public familyMember: PatientFamily = new PatientFamily();\r\n public patFamilydetailenable: boolean = false;\r\n disableTyping: any;\r\n familyForm: FormGroup;\r\n constructor(public httpClient: HttpClient, public dialog: MatDialog,\r\n public routing: Router, private route: ActivatedRoute,\r\n public hospitalService: HospitalService, public patService: PatientService, public docService: DoctorService, private authenticationService: AuthenticationService, private notifyService: NotificationService,\r\n public global: Global, public datePipe: DatePipe, private http: HttpClient, public alertService: AlertService, public schedulingService: SchedulingService, private formBuilder: FormBuilder) {\r\n this.token = this.authenticationService.currentUserValue;\r\n\r\n // - this.todayDate = this.datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n this.docId = this.route.snapshot.queryParamMap.get('id1');\r\n this.hospitalService.DepartmentId = this.route.snapshot.queryParamMap.get('dep');\r\n this.depId = this.route.snapshot.queryParamMap.get('dep');\r\n this.appointDetailStatus = this.route.snapshot.queryParamMap.get('status');\r\n if (this.appointDetailStatus == \"true\") {\r\n this.appointDetail = true;\r\n }\r\n this.visitObj.BookingTime = this.global.BookingTime;\r\n this.visitObj.VisitDate = this.global.VisitDate;\r\n\r\n this.newFile = { PatientFileId: \"\", PatientId: \"\", VisitId: \"\", FileType: \"\", Title: \"\", FilePath: \"\", Comment: \"\" };\r\n this.patFiles.push(this.newFile);\r\n this.hospitalService.HospitalId = this.hospitalId;\r\n if (this.hospitalService.HospitalId != null) {\r\n this.visitObj.HospitalId = this.hospitalService.HospitalId;\r\n this.hospitalId = this.hospitalService.HospitalId;\r\n }\r\n if (this.docService.DoctorId != null) {\r\n this.visitObj.ProviderId = this.docService.DoctorId;\r\n this.visitObj.DoctorId = this.docService.DoctorId;\r\n this.docId = this.docService.DoctorId;\r\n }\r\n if (this.global.DepartmentId != null) {\r\n this.depId = this.global.DepartmentId;\r\n this.visitObj.DepartmentId = this.global.DepartmentId;\r\n }\r\n if (this.hospitalService.DepartmentId != null) {\r\n this.depId = this.hospitalService.DepartmentId;\r\n }\r\n this.AppointmentType = this.patService.VisitType;\r\n this.DepartmentName = this.patService;\r\n this.familyMember.DateOfBirth = moment().format('YYYY-MM-DD');\r\n\r\n this.GetDepartmentList();\r\n }\r\n\r\n ngOnInit() {\r\n this.GetHospital();\r\n this.GetDoctorList();\r\n this.GetDepartmentList();\r\n if (this.docId != null) {\r\n this.visitObj.DoctorId = this.docId;\r\n this.visitObj.ProviderId = this.docId;\r\n }\r\n this.GetHospitalDoctorMap();\r\n if (this.hospitalService.DepartmentId != null) {\r\n this.visitObj.DepartmentId = this.hospitalService.DepartmentId;\r\n }\r\n this.GetPatient();\r\n this.GetFamilyDetail();\r\n\r\n this.familyForm = this.formBuilder.group({\r\n Relationship: ['', [Validators.required]],\r\n ContactNumber: ['', [Validators.required, Validators.pattern(\"^((\\\\+91-?)|0)?[0-9]{10}$\")]],\r\n FirstName: ['', [Validators.required]],\r\n LastName: ['', [Validators.required]],\r\n MiddleName: [''],\r\n DOB: ['', [Validators.required]],\r\n Email: [''],\r\n Gender: ['', [Validators.required]],\r\n BloodGroup: [''],\r\n Address: ['']\r\n });\r\n }\r\n GetHospital() {\r\n if (this.visitObj.HospitalId == null) {\r\n this.visitObj.HospitalId = this.hospitalId;\r\n }\r\n this.hospitalService.getHospital(this.visitObj.HospitalId)\r\n .subscribe(res => this.SuccessHospital(res),\r\n res => this.Error(res));\r\n }\r\n GetDoctorList() {\r\n this.docService.getDoctorList().subscribe(res => this.SuccessDoc(res),\r\n res => this.Error(res));\r\n if (this.docId != null) {\r\n this.docService.getDoctorHospital(this.docId).subscribe(res => this.SuccessDoctor(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n GetDepartmentList() {\r\n this.docService.getDepartmentList().subscribe(res => this.SuccessDepartmentList(res),\r\n res => this.Error(res));\r\n };\r\n SuccessDepartmentList(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.deptList = res.Results;\r\n if (this.docService.DoctorId != null) {\r\n this.visitObj.DoctorId = this.docService.DoctorId;\r\n this.visitObj.ProviderId = this.docService.DoctorId;\r\n }\r\n\r\n if (this.hospitalService.DepartmentId != null) {\r\n this.visitObj.DepartmentId = this.hospitalService.DepartmentId;\r\n this.depId = this.hospitalService.DepartmentId;\r\n this.filterDepartmentById = Array();\r\n this.filterDepartmentById = JSON.parse(JSON.stringify(this.deptList));//deepcopy\r\n this.filterDepartmentById = this.filterDepartmentById.filter(s => s.DepartmentId == this.hospitalService.DepartmentId);\r\n this.deptName = this.filterDepartmentById[0].DepartmentName;\r\n // console.log(this.filterDepartmentById[0].DepartmentName);\r\n }\r\n } else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n }\r\n GetHospitalDoctorMap() {\r\n this.docService.getHospitalDoctorMapList(this.hospitalId).subscribe(res => {\r\n\r\n this.hosDocList = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n GetVisitTime(event) {\r\n var vDate = moment(this.visitObj.VisitDate);\r\n var visitDate = vDate.format('YYYY-MM-DD');\r\n if (visitDate != null) {\r\n this.schedulingService.getVisitTime(visitDate).subscribe(res => this.SuccessAppointmentTime(res),\r\n res => this.ErrorAppointmentTime(res));\r\n }\r\n\r\n\r\n }\r\n SuccessAppointmentTime(res) {\r\n this.appointmentTime = Object.assign(this.appointmentTime, res);\r\n\r\n if (this.appointmentTime.length == 0) {\r\n this.notifyService.showInfo(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `${this.doctor.DoctorName}` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}`);\r\n }\r\n if (this.docId != null && this.appointmentTime.length > 0) {\r\n this.appointmentTime = this.appointmentTime.filter(x => x.DoctorId == this.docId && x.DepartmentId == this.selDepartment && x.HospitalId == this.hospitalId);\r\n\r\n }\r\n else if (this.docId == null && this.appointmentTime.length > 0) {\r\n this.appointmentTime = this.appointmentTime.filter(x => x.DoctorId == this.doctorId && x.DepartmentId == this.selDepartment && x.HospitalId == this.hospitalId);\r\n }\r\n else {\r\n this.appointmentTime = [];\r\n }\r\n }\r\n ErrorAppointmentTime(res) {\r\n this.notifyService.showInfo(\"Sorry\", \"There is no schedule for\" + \" \" + \"Dr.\" + \" \" + `${this.doctor.DoctorName}` + \" \" + \"on\" + \" \" + `${moment(this.visitObj.VisitDate).format('YYYY-MM-DD')}`);\r\n }\r\n setAppontmentTime(time) {\r\n this.visitObj.BookingTime = `${time.StartTime} ${time.StartMeridian} - ${time.EndTime} ${time.EndMeridian}`\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Warning\", \"Internal Error\")\r\n }\r\n SuccessDoc(res) {\r\n this.docList = res?.Results;\r\n }\r\n SuccessDoctor(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.doctor = res.Results;\r\n this.doctor.DoctorName = res.Results[0].DoctorName;\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n }\r\n SuccessHospital(res) {\r\n this.hospital = res;\r\n }\r\n\r\n GetPatient() {\r\n if (this.token.PatientIdentifier != null || this.patService.PatientId) {\r\n this.visitObj.HospitalId = this.hospitalId;\r\n let patId = this.token.PatientIdentifier != null ? this.token.PatientIdentifier : this.patService.PatientId;\r\n this.patService.getPatient(patId,this.token.UserType)\r\n .subscribe(res => this.SuccessPatient(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n\r\n SuccessPatient(res) {\r\n this.patinfo = res;\r\n }\r\n\r\n GetFamilyDetail() {\r\n if (this.token.PatientIdentifier != null || this.patService.PatientId) {\r\n this.visitObj.HospitalId = this.hospitalId;\r\n let patId = this.token.PatientIdentifier != null ? this.token.PatientIdentifier : this.patService.PatientId;\r\n this.patService.getFamilyList(patId)\r\n .subscribe(res => this.SuccessgetFamily(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n\r\n SuccessgetFamily(res) {\r\n this.patFamilyList = res;\r\n }\r\n public departmentChanged() {\r\n if (this.doctorId != null) {\r\n this.hospDeptList = new Array();\r\n this.hospDeptList = JSON.parse(JSON.stringify(this.hosDocList));//deepcopy\r\n this.filterhospDeptList = this.hosDocList.filter(a => a.DoctorId == this.doctorId);\r\n this.docDeptList = this.deptList.filter(x =>\r\n this.filterhospDeptList[0].DepartmentList.some(y =>\r\n x.DepartmentId === y.DepartmentId\r\n ));\r\n this.departmentId = this.selDepartment;\r\n }\r\n }\r\n\r\n\r\n public DoctorDepartmentChanged() {\r\n\r\n if ((this.selDoctor == null || this.selDoctor == undefined) && (this.selDepartment == null || this.selDepartment == undefined) && this.docId == null) {\r\n this.hospitalDoctorIdList = new Array();\r\n this.hospitalDepartmentIdList = new Array();\r\n for (let doc of this.hosDocList) {\r\n this.hospitalDoctorIdList.push(doc);\r\n for (let dep of doc.DepartmentList) {\r\n this.hospitalDepartmentIdList.push(dep);\r\n }\r\n }\r\n this.hospitalDoctor = this.docList.filter(x => this.hospitalDoctorIdList.some(y => x.DoctorId == y.DoctorId));\r\n this.hospitalDepartment = this.deptList.filter(x => this.hospitalDepartmentIdList.some(y => x.DepartmentId == y.DepartmentId));\r\n }\r\n else if (this.selDoctor != null || this.docId != null) {\r\n if (this.docId == null) {\r\n this.hospitalDoctorList = this.hosDocList.filter(a => a.DoctorId == this.selDoctor);\r\n }\r\n if (this.docId != null) {\r\n this.hospitalDoctorList = this.hosDocList.filter(a => a.DoctorId == this.docId);\r\n }\r\n this.hospitalDepartmentIdList = new Array();\r\n for (let doc of this.hospitalDoctorList) {\r\n for (let dep of doc.DepartmentList) {\r\n\r\n this.hospitalDepartmentIdList.push(dep);\r\n }\r\n }\r\n this.hospitalDepartment = this.deptList.filter(x => this.hospitalDepartmentIdList.some(y => x.DepartmentId == y.DepartmentId));\r\n this.departmentId = this.selDepartment;\r\n this.doctorId = this.selDoctor;\r\n }\r\n else if (this.selDepartment != null) {\r\n this.hospitalDoctorMap = new Array();\r\n for (let doc of this.hosDocList) {\r\n for (let dep of doc.DepartmentId) {\r\n\r\n this.hospitalDoctorMap.push(dep);\r\n }\r\n }\r\n this.hospitalDoctorList = this.hospitalDoctorMap.filter(a => a.DepartmentId == this.selDepartment);\r\n this.hospitalDoctorIdList = new Array();\r\n for (let dep of this.hospitalDoctorList) {\r\n\r\n this.hospitalDoctorIdList.push(dep);\r\n }\r\n this.hospitalDoctor = this.docList.filter(x => this.hospitalDoctorIdList.some(y => x.DoctorId == y.DoctorId));\r\n this.departmentId = this.selDepartment;\r\n this.doctorId = this.selDoctor = null;\r\n\r\n }\r\n\r\n else {\r\n this.selDoctor = null;\r\n this.selDepartment = null;\r\n }\r\n this.departmentId = this.selDepartment;\r\n this.doctorId = this.selDoctor;\r\n\r\n }\r\n public PostProblem() {\r\n // if((this.visitObj.PatientValidator.valid == true ) || (this.visitObj.PatientValidator.dirty ==true))\r\n // {\r\n if (this.token.PatientIdentifier == undefined) {\r\n this.patId = this.patService.PatientId;\r\n } else {\r\n this.patId = this.token.PatientIdentifier;\r\n }\r\n this.visitObj.PatientId = this.patId;\r\n this.docService.DoctorId = this.doctorId != undefined ? this.doctorId : this.global.DoctorId;\r\n this.visitObj.ProviderId = this.docId != null ? this.docId : this.global.DoctorId;\r\n // this.visitObj.Docy = this.docId != null? this.docId : this.docService.DoctorId ;\r\n this.visitObj.DepartmentId = this.depId != null ? this.depId : this.global.DepartmentId;\r\n this.hospitalService.DepartmentId = this.departmentId;\r\n //this.visitObj.DepartmentId = this.doctorId != null? this.doctorId : this.selDoctor ;\r\n this.visitObj.HospitalId = this.hospitalId;\r\n if (this.hospital.PaymentEnable == false) {\r\n this.visitObj.PaymentStatus = \"free\";\r\n this.hospitalService.PaymentEnable = false;\r\n }\r\n else {\r\n this.visitObj.PaymentStatus = \"unpaid\";\r\n }\r\n this.visitObj.Status = \"initiated\";\r\n this.visitObj.VisitType = this.AppointmentType;\r\n this.visitObj.PatientFiles = Object.assign(this.visitObj.PatientFiles, this.patFiles);// no family member need to add 1st in db then call postvisit\r\n\r\n if (this.bookforOther == true && this.selectedFamilyMember == undefined) {\r\n if (this.familyForm.invalid) {\r\n if (this.familyForm.controls.Relationship.invalid) {\r\n this.notifyService.showError(\"\", \"Relationship is required\");\r\n }\r\n if (this.familyForm.controls.ContactNumber.invalid) {\r\n this.notifyService.showError(\"\", \"Phone number is required and should be 10 digits\");\r\n }\r\n if (this.familyForm.controls.FirstName.invalid) {\r\n this.notifyService.showError(\"\", \"First Name is required\");\r\n }\r\n if (this.familyForm.controls.LastName.invalid) {\r\n this.notifyService.showError(\"\", \"Last Name is required\");\r\n }\r\n if (this.familyForm.controls.DOB.invalid) {\r\n this.notifyService.showError(\"\", \"Date of Birth is required\");\r\n }\r\n if (this.familyForm.controls.Gender.invalid) {\r\n this.notifyService.showError(\"\", \"Gender is required\");\r\n }\r\n return;\r\n }\r\n this.familyMember.PatientId = this.visitObj.PatientId;\r\n this.patService.addFamilyList(this.familyMember).subscribe(res => this.Success(res),\r\n res => this.ErrorAdd(res));\r\n }\r\n else {\r\n this.PostVisit(); //visit for patient self && existed family member \r\n }\r\n //let mdt = moment([this.visitDate.year, this.visitDate.month, this.visitDate.day]);\r\n //this.visitObj.VisitDate = new Date(mdt.format('MM/DD/YYYY'));\r\n\r\n // }\r\n // else{\r\n // this.notifyService.showError(\"Error\",\"Please select the doctor at top and proceed!\");\r\n // }\r\n\r\n }\r\n\r\n Success(res) {\r\n this.visitObj.FamilyMemberId = res;\r\n this.PostVisit();\r\n }\r\n ErrorAdd(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n PostVisit() {\r\n this.patService.postVisit(this.visitObj, this.docService.ScheduleIntervalId, this.docService.SchedulingId).subscribe(res => this.SuccessPostProblem(res),\r\n res => this.PostProblemError(res));\r\n }\r\n SuccessPostProblem(res) {\r\n if (this.token.PatientIdentifier == undefined) {\r\n this.notifyService.showSuccess(\"Appointment has been booked successfully.\", \"Successful\");\r\n this.routing.navigate(['/PaymentSelection'], { queryParams: { vid: res.Value } });\r\n } else {\r\n if (this.hospitalService.PaymentEnable == false) {\r\n this.routing.navigate(['/PatPaidBookingList'], { queryParams: { vid: res.Value } })\r\n } else {\r\n this.routing.navigate(['/PaymentSelection'], { queryParams: { vid: res.Value } });\r\n }\r\n }\r\n\r\n }\r\n PostProblemError(res) {\r\n this.notifyService.showError(\"Error\", \" Please fill up the required field\")\r\n }\r\n\r\n upload(files: File[], i) {\r\n this.message = null;\r\n if (files.length === 0)\r\n return;\r\n\r\n\r\n // if(0.00000095367432*FileList[i].siz )\r\n const formData = new FormData();\r\n\r\n for (let file of files) {\r\n // This limit the file size to 10 Mb.\r\n if (file.size * 0.00000095367432 > 10) {\r\n this.notifyService.showWarning(\"Error\", \"File size should be less than 10 MB.\");\r\n return;\r\n }\r\n let fileExtension = file.name.split('.').pop().toLowerCase();\r\n var acceptedFileFormat = [\"jpg\", \"png\", \"doc\", \"docx\", \"pdf\"];\r\n if (!acceptedFileFormat.includes(fileExtension)) {\r\n this.notifyService.showWarning(\"Unsupported file format\", \"Error\");\r\n return;\r\n }\r\n formData.append(file.name, file);\r\n const uploadReq = new HttpRequest('POST', `api/Patient/UploadFile/`, formData, {\r\n reportProgress: true,\r\n });\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n if (this.progress == 100) {\r\n this.index = i;\r\n }\r\n }\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n });\r\n }\r\n }\r\n SelectDoctorForViewDetail(event: MatSelect) {\r\n try {\r\n this.docService.DoctorId = null;\r\n this.docService.DoctorId = event.value;\r\n console.log(event.value);\r\n this.global.DoctorId = event.value;\r\n const dialogRef = this.dialog.open(DoctorProfileComponent, { data: { notifytodocprof: \"redirectFromPatAppointment\", hospitalId: this.hospitalId }, width: '1000px', height: '1000px' });\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n this.depId = this.hospitalService.DepartmentId;\r\n this.global.DepartmentId = this.depId;\r\n this.appointDetail = true;\r\n this.visitObj.BookingTime = this.global.BookingTime;\r\n this.visitObj.VisitDate = this.global.VisitDate;\r\n this.visitObj.DepartmentId = this.hospitalService.DepartmentId;\r\n this.GetDepartmentList();\r\n });\r\n\r\n } catch (ex) {\r\n this.Error(ex);\r\n }\r\n\r\n }\r\n addRow(index) {\r\n this.message = null;\r\n this.newFile = { PatientFileId: \"\", PatientId: \"\", VisitId: \"\", FileType: \"\", Title: \"\", FilePath: \"\", Comment: \"\" };\r\n this.patFiles.push(this.newFile);\r\n console.log(this.patFiles);\r\n return true;\r\n }\r\n\r\n deleteRow(index) {\r\n if (this.patFiles.length == 1) {\r\n return false;\r\n } else {\r\n this.patFiles.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n public BookHome() {\r\n this.patBook = true;\r\n this.routing.navigate(['/PatDashboard/PatBookHome']);\r\n }\r\n\r\n //public BookNewVisit() {\r\n // this.patBook = true;\r\n // this.routing.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId } });\r\n //}\r\n\r\n //public MyBookList() {\r\n // this.bookList = true;\r\n // this.routing.navigate(['/PatBookList'], { queryParams: { id: this.hospitalId } });\r\n\r\n //}\r\n\r\n //public MyPaidBooking() {\r\n // this.patBook = true;\r\n // this.routing.navigate(['/PatPaidBookingList'], { queryParams: { id: this.hospitalId } });\r\n //}\r\n public Payment() {\r\n this.patBook = true;\r\n this.routing.navigate(['/PaymentSelection'], { queryParams: { id: this.hospitalId, id1: this.docId } });\r\n }\r\n\r\n public BackDashBoard() {\r\n this.hospitalService.DepartmentId = null;\r\n this.patService.VisitType = null;\r\n this.docService.DoctorId = null;\r\n this.global.BookingTime = \"\";\r\n this.global.VisitDate = null;\r\n this.visitObj = null;\r\n this.routing.navigate(['/PatDashboard']);\r\n }\r\n\r\n BookAppointmentforOther() {\r\n this.bookforOther = true\r\n // if (this.patFamilyList.length) {\r\n // this.patFamilydetailenable = false;\r\n\r\n // }\r\n // else {\r\n this.patFamilydetailenable = true;\r\n // }\r\n\r\n }\r\n\r\n bookAppointmentforSelf() {\r\n this.bookforOther = false;\r\n this.visitObj.FamilyMemberId = null;\r\n this.familyMember = new PatientFamily();\r\n this.selectedFamilyMember = null;\r\n }\r\n\r\n \r\n SelectedMember(event) {\r\n let selectedFamilyMemberId = event.value.FamilyMemberId;\r\n this.familyMember = this.patFamilyList.find(x => x.FamilyMemberId == selectedFamilyMemberId);\r\n if (this.familyMember && this.familyMember.DateOfBirth != null) {\r\n this.familyMember.DateOfBirth = moment(this.familyMember.DateOfBirth).format('YYYY-MM-DD');\r\n }\r\n else {\r\n this.familyMember.DateOfBirth = moment().format('YYYY-MM-DD');\r\n }\r\n this.visitObj.FamilyMemberId = this.familyMember.FamilyMemberId;\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Dear, {{patInfo.FirstName +' '+ patInfo.LastName }}\r\n

\r\n

\r\n We believe that everyone deserves excellent health care. Our\r\n dedicated team of doctors provide compassionate care with a personal\r\n touch.\r\n

\r\n
\r\n Book\r\n Appointment\r\n Update\r\n Your Profile\r\n
\r\n
\r\n FollowUp \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Your Step by Step Guide\r\n \r\n
\r\n
    \r\n
  • First update your profile
  • \r\n
  • Book appointment with available doctors
  • \r\n
  • Make payment for your appointment
  • \r\n
  • Proceed to Doctor's Room to start your appointment
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Hello {{patInfo.FirstName +' '+ patInfo.LastName }} !\r\n Your doctor is now {{IsDocOnline}}, Please click the link to start the appointment with your doctor.\r\n \r\n Enter Waiting Room\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
My Bookings
\r\n
    \r\n\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SNVisitDateVisitTimePatientNameDoctorNameDepartmentPayment MediumAction
    {{i+1}}{{data.VisitDate}}{{data.BookingTime}}{{data.PatientFamilyName ? data.PatientFamilyName : data.PatientName}}{{data.DoctorName}}{{data.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pay\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    SNVisit DateDoctorDepartmentAction
    {{i+1}}{{data.VisitDate}}{{data.DoctorName}}{{data.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n All Booking List\r\n \r\n
\r\n
    \r\n
  • \r\n All\r\n
  • \r\n
  • \r\n Paid\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNVisitDateDepartmentAction
{{i+1}}{{data.VisitDate}}{{data.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNVisit DateDoctorDepartmentAction
{{i+1}}{{data.VisitDate}}{{data.DepartmentName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n My History\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNVisitDateHospitalAction
{{item.id}}{{item.VisitDate | date:'shortDate'}}{{item.HospitalName }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Doctor Advice

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"hospital\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Doctor Name : {{data.DoctorName}}
\r\n Patient Name : {{data.PatientName}}
\r\n Hospital Name : {{data.HospitalName}}
\r\n Visit Date: {{data.VisitDate | date:'medium'}}
\r\n NMC Number: {{data.NMC }}\r\n
\r\n \r\n

Doctor Advice

\r\n
\r\n
\r\n Other Pertinent Information:\r\n

{{row.OtherPertientInformation}}

\r\n
\r\n
\r\n Treatment Advice:\r\n

{{row.TreatmentAdvice}}

\r\n
\r\n
\r\n Medication given by doctor:\r\n

{{row.Medication}}

\r\n
\r\n
\r\n Follow up:\r\n

{{row.FollowUp}}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Follow Up

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n

Doctor is not available for this Department

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Select Appointment Type

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Prescription file from Doctor
\r\n \r\n
\r\n
\r\n
\r\n \"info\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core'\r\nimport { Global } from '../../app.global';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Patient } from '../../models/patient/patient.model';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport * as moment from 'moment/moment';\r\nimport { ConsentFormComponent } from '../../ConsentForm/app.consentformcomponent';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ChatService } from '../../services/ChatNotification/chat-notification.service';\r\nimport { Scheduling } from 'src/app/models/scheduling/scheduling.model';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { timer } from \"rxjs\";\r\nimport { takeWhile } from \"rxjs/operators\";\r\nimport { Prescription } from '../../app.model';\r\n\r\n@Component({\r\n templateUrl: \"./app.patient_dashboard.html\",\r\n})\r\nexport class PatientDashboardComponent implements OnInit {\r\n public updatePat: boolean;\r\n public showViewNotes: boolean = false;\r\n public prob: boolean = false;\r\n filekind: any;\r\n fileExtension: any;\r\n Filetype: any;\r\n p: number = 1;\r\n q: number = 1;\r\n r: number = 1;\r\n s: number = 1;\r\n t: number = 1;\r\n nearestVisit: any;\r\n public showPrescription: boolean = false;\r\n public showNearestVisit: boolean = false;\r\n public visitId: string;\r\n public patInfo: Patient = new Patient();\r\n public token: any;\r\n nepaliDate = moment();\r\n public allpatBookList: any;\r\n public viewList: any;\r\n path: any;\r\n public noteList: any;\r\n filterPatList: any;\r\n patientFile: any;\r\n prescriptions: Array = [];\r\n public patBookList: any;\r\n public patHistoryList: any;\r\n public allVisitsList: any;\r\n public hospitalId: any;\r\n public doctordId: any;\r\n allcollection = { count: 60, data: [] };\r\n collection = { count: 60, data: [] };\r\n historycollection = { count: 0, data: [] };\r\n redUrl: string;\r\n public PatientName: any;\r\n public patlist: any;\r\n\r\n followupVisit: any;\r\n public showFollowupVisit: boolean = false;\r\n public showfollowup: boolean = false;\r\n public followupinfo: Visit = new Visit();\r\n public deptList: any[];\r\n public selDepartment: any = \"\";\r\n public selDoctor: any = \"\";\r\n public doctorList: Array = new Array();\r\n public doctorId: any;\r\n filterDocList: any;\r\n\r\n SchedulingList: Array = new Array();\r\n filteredHospitalDoctorMapping: Array = new Array();\r\n tempArray: Array = new Array();\r\n filteredSchedulingList: Array = new Array();\r\n HospitalDoctorMapping: Array = new Array();\r\n ScheduleList: Array = new Array();\r\n public showUnavailableMsg: boolean = false;\r\n public ScheduleTimeDetail: boolean = true;\r\n scheduleIntervalList: Array = new Array();\r\n visitObj: Visit = new Visit();\r\n public selSchedule: any;\r\n scheduleIntervalId: any;\r\n followupForm: FormGroup;\r\n Age: any;\r\n Gender: any;\r\n LastApptDepartmentName: any;\r\n LastApptDoctorName: any;\r\n LastApptVisitDate: any;\r\n\r\n todayDate = moment();\r\n\r\n public showVisitTypePopup: boolean = false;\r\n timerpat = timer(3000, 10000);\r\n public IsDocOnline: any = \"offline\";\r\n public VisitType: string;\r\n public doctor: Array = new Array();\r\n public responseData: any;\r\n\r\n constructor(\r\n public global: Global,\r\n public routing: Router,\r\n public docService: DoctorService,\r\n public dialog: MatDialog,\r\n public patservice: PatientService,\r\n public hospitalService: HospitalService,\r\n public authservice: AuthenticationService,\r\n public alertService: AlertService,\r\n private route: ActivatedRoute,\r\n private notifyService: NotificationService,\r\n public notificationService: ChatService,\r\n public schedulingService: SchedulingService,\r\n private formBuilder: FormBuilder\r\n ) {\r\n this.token = this.authservice.currentUserValue;\r\n this.patservice.PatientId = this.token.PatientIdentifier;\r\n this.hospitalId = this.route.snapshot.queryParamMap.get(\"id\");\r\n this.doctordId = this.route.snapshot.queryParamMap.get(\"id1\");\r\n this.redUrl = this.route.snapshot.queryParamMap.get(\"redirectUrl\");\r\n this.VisitType = this.route.snapshot.queryParamMap.get(\"VisitType\");\r\n }\r\n\r\n ngOnInit() {\r\n this.notificationService.Connect();\r\n this.notificationService.EventDocStatus.subscribe((docStatus) => {\r\n this.IsDocOnline = docStatus;\r\n });\r\n this.getPatientName();\r\n this.GetAllVisits();\r\n this.ShowAllBookList();\r\n this.ShowBookList();\r\n this.AppointmentHistory();\r\n this.GetMissedAppointment();\r\n\r\n this.followupForm = this.formBuilder.group({\r\n FirstName: [\"\"],\r\n MiddleName: [\"\"],\r\n LastName: [\"\"],\r\n Age: [\"\"],\r\n Gender: [\"\"],\r\n LastAppointmentDepartment: [\"\"],\r\n LastAppointmentDoctor: [\"\"],\r\n LastAppointmentDate: [\"\"],\r\n Department: [\"\", [Validators.required]],\r\n Doctor: [\"\", [Validators.required]],\r\n FollowUpdate: [\"\", [Validators.required]],\r\n Time: [\"\", [Validators.required]],\r\n });\r\n }\r\n\r\n public getPatientName() {\r\n //var id = this.token.PatientIdentifier;\r\n this.patservice\r\n .getPatient(this.token.PatientIdentifier, this.token.UserType)\r\n .subscribe(\r\n (res) => {\r\n this.patInfo = res;\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n public BookAppointment() {\r\n this.updatePat = true;\r\n //this.patDash = true;\r\n this.showVisitTypePopup = true;\r\n //this.routing.navigate([\"/HospitalList\"]);\r\n }\r\n public History() {\r\n this.updatePat = true;\r\n this.routing.navigate([\"/PatDashboard/PatHistory\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n\r\n public payment() {\r\n this.updatePat = true;\r\n this.routing.navigate([\"/PatDashboard/PaymentSelection\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n public Update() {\r\n this.updatePat = true;\r\n this.routing.navigate([\"/PatDashboard/PatUpdateProfile\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n public HospitalDashBoard() {\r\n this.global.DepartmentId = null;\r\n this.hospitalService.HospitalId = null;\r\n this.hospitalService.DepartmentId = null;\r\n this.global.DoctorId = null;\r\n this.docService.DoctorId = null;\r\n this.routing.navigate([\"/HospitalList\"]);\r\n }\r\n public UpdateProfile() {\r\n this.routing.navigate([\"/PatUpdateProfile\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n\r\n public PatientHistory() {\r\n this.routing.navigate([\"/PatHistory\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n public BookingList() {\r\n this.routing.navigate([\"/PatBookList\"]);\r\n }\r\n public PaidBookingList() {\r\n this.routing.navigate([\"/PatPaidBookingList\"]);\r\n }\r\n public GetAllVisits() {\r\n if (this.redUrl === null) {\r\n this.patservice\r\n .getPatientBookingList(this.token.PatientIdentifier)\r\n .subscribe(\r\n (res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.allVisitsList = res.Results;\r\n for (var i = 0; i < this.allVisitsList.length; i++) {\r\n if (\r\n (this.allVisitsList[i].Status === \"ongoing\" ||\r\n this.allVisitsList[i].Status === \"initiated\") &&\r\n this.allVisitsList[i].IsActive === true\r\n ) {\r\n this.patservice\r\n .changeStatus(this.allVisitsList[i].VisitId)\r\n .subscribe(\r\n (res) => this.SuccesschangeStatus(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n }\r\n } else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n }\r\n );\r\n } else if (this.redUrl === \"PatientUrl\") {\r\n this.patservice\r\n .getPatientBookingList(this.token.PatientIdentifier)\r\n .subscribe(\r\n (res: any) => {\r\n if(res && res.IsSuccess && res.Results){\r\n this.allVisitsList = res.Results;\r\n for (var i = 0; i < this.allVisitsList.length; i++) {\r\n if (\r\n (this.allVisitsList[i].Status === \"ongoing\" ||\r\n this.allVisitsList[i].Status === \"initiated\") &&\r\n this.allVisitsList[i].IsActive === true\r\n ) {\r\n this.patservice\r\n .changeStatus(this.allVisitsList[i].VisitId)\r\n .subscribe(\r\n (res) => this.SuccesschangeStatus(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n }\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n }\r\n );\r\n } else if (this.redUrl === undefined) {\r\n this.patservice\r\n .getPatientBookingList(this.token.PatientIdentifier)\r\n .subscribe(\r\n (res: any) => {\r\n this.allVisitsList = res.Results;\r\n for (var i = 0; i < this.allVisitsList.length; i++) {\r\n if (\r\n (this.allVisitsList[i].Status === \"ongoing\" ||\r\n this.allVisitsList[i].Status === \"initiated\") &&\r\n this.allVisitsList[i].IsActive === true\r\n ) {\r\n this.patservice\r\n .changeStatus(this.allVisitsList[i].VisitId)\r\n .subscribe(\r\n (res) => this.SuccesschangeStatus(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n }\r\n );\r\n } else {\r\n return;\r\n }\r\n }\r\n SuccesschangeStatus(res) {\r\n // this.notifyService.showInfo(\"Status Changed To Initiated!\", \"Success\")\r\n }\r\n\r\n // Slick Slider this is added new\r\n\r\n slides = [{ img: \"./assets/img/Slider11.jpg\" }];\r\n slideConfig = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n fade: true,\r\n cssEase: \"linear\",\r\n draggable: false,\r\n autoplaySpeed: 5000,\r\n arrows: false,\r\n dots: false,\r\n };\r\n // End SLick slider\r\n public ShowAllBookList() {\r\n this.patservice\r\n .getPatientBookingList(this.token.PatientIdentifier)\r\n .subscribe(\r\n (res: any) => {\r\n this.allpatBookList = res.Results;\r\n\r\n for (var i = 0; i < this.allpatBookList.length; i++) {\r\n var currentDateTime = this.todayDate\r\n .tz(\"Asia/Kathmandu\")\r\n .format(\"YYYY/MM/DD HH:mm z\");\r\n\r\n this.allpatBookList[i].VisitDate = moment(\r\n this.allpatBookList[i].VisitDate,\r\n \"YYYY/MM/DD hh:mm\"\r\n ).format(\"YYYY/MM/DD\");\r\n }\r\n this.collection = { count: this.allpatBookList.length, data: [] };\r\n this.allcollection = { count: this.allpatBookList.length, data: [] };\r\n for (var i = 0; i < this.allcollection.count; i++) {\r\n this.allcollection.data.push({\r\n id: i + 1,\r\n VisitDate: this.allpatBookList[i].VisitDate,\r\n BookingTime: this.allpatBookList[i].BookingTime,\r\n PatientFamilyName: this.allpatBookList[i].PatientFamilyName,\r\n HospitalName: this.allpatBookList[i].HospitalName,\r\n DoctorName: this.allpatBookList[i].DoctorName,\r\n DepartmentName: this.allpatBookList[i].DepartmentName,\r\n VisitType: this.allpatBookList[i].VisitType,\r\n PaymentStatus: this.allpatBookList[i].PaymentStatus,\r\n VisitId: this.allpatBookList[i].VisitId,\r\n Showpay:\r\n this.allpatBookList[i].VisitDate >= currentDateTime &&\r\n this.allpatBookList[i].PaymentStatus != \"paid\" &&\r\n this.allpatBookList[i].PaymentStatus != \"free\" &&\r\n this.allpatBookList[i].PaymentStatus == \"unpaid\"\r\n ? true\r\n : false,\r\n Showpaid:\r\n this.allpatBookList[i].VisitDate <= currentDateTime &&\r\n this.allpatBookList[i].PaymentStatus != \"paid\" &&\r\n this.allpatBookList[i].PaymentStatus != \"free\" &&\r\n this.allpatBookList[i].PaymentStatus == \"unpaid\"\r\n ? true\r\n : false,\r\n });\r\n }\r\n\r\n for (var i = 0; i < this.allpatBookList.length; i++) {\r\n this.allpatBookList[i].VisitDate = moment(\r\n this.allpatBookList[i].VisitDate\r\n ).format(\"ll\");\r\n this.allpatBookList[i].VisitStartTime = moment(\r\n this.allpatBookList[i].VisitStartTime\r\n ).format(\"LT\");\r\n }\r\n for (var i = 0; i < this.allcollection.data.length; i++) {\r\n this.allcollection.data[i].VisitDate = moment(\r\n this.allcollection.data[i].VisitDate\r\n ).format(\"ll\");\r\n this.allcollection.data[i].VisitStartTime = moment(\r\n this.allcollection.data[i].VisitStartTime\r\n ).format(\"LT\");\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n public ShowBookList() {\r\n //this.patbook = true;\r\n this.patservice\r\n .getPatientBookingList(this.token.PatientIdentifier)\r\n .subscribe(\r\n (res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.patBookList = res.Results;\r\n\r\n for (let i = 0; i < this.patBookList.length; i++) {\r\n let currentNepaliDate = this.nepaliDate\r\n .tz(\"Asia/Kathmandu\")\r\n .format(\"YYYY/MM/DD HH:mm z\");\r\n let currentNepaliDateTime = this.nepaliDate\r\n .tz(\"Asia/Kathmandu\")\r\n .format(\"YYYY/MM/DD HH:mm z\");\r\n let currentdate = moment(currentNepaliDate, \"YYYY/MM/DD\").format(\r\n \"YYYY/MM/DD\"\r\n );\r\n let currentDateWithTime = moment(\r\n currentNepaliDateTime,\r\n \"YYYY/MM/DD hh:mm\"\r\n ).format(\"YYYY/MM/DD\");\r\n let currentYear = moment(currentNepaliDate, \"YYYY/MM/DD\").format(\r\n \"YYYY\"\r\n );\r\n let currentMonth = moment(currentNepaliDate, \"YYYY/MM/DD\").format(\r\n \"M\"\r\n );\r\n let currentDay = moment(currentNepaliDate, \"YYYY/MM/DD\").format(\r\n \"D\"\r\n );\r\n this.patBookList[i].VisitDate = moment(\r\n this.patBookList[i].VisitDate\r\n ).format(\"YYYY/MM/DD\");\r\n let patlist: Array = new Array();\r\n\r\n if (\r\n this.patBookList[i].VisitDate ==\r\n moment(this.nepaliDate).format(\"YYYY/MM/DD\")\r\n ) {\r\n var todaydate = new Date();\r\n var currentdate1 = this.nepaliDate.format(\"YYYY/MM/DD\");\r\n // var index = this.patBookList[i].BookingTime.indexOf(\"-\");\r\n // var timeextract = this.patBookList[i].BookingTime.substring(0, index - 1);\r\n // var bookedDateTime = moment(currentdate + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n // var formatedBookedDateTime = moment(bookedDateTime, 'YYYY-MM-DD HH:mm A');\r\n // var temp = moment(formatedBookedDateTime, 'YYYY-MM-DD HH:mm A').subtract(15, 'minutes').format('YYYY-MM-DD HH:mm A');\r\n // var formatedBookedDateTime = moment(temp, 'YYYY-MM-DDTHH:mm:s');\r\n var DocStartTime = moment(\r\n currentdate + \" \" + this.patBookList[i].DocStartTime,\r\n \"YYYY/MM/DD HH:mm A\"\r\n );\r\n var formatedreducedStartTime = moment(\r\n DocStartTime,\r\n \"YYYY-MM-DD HH:mm A\"\r\n );\r\n var decStartTime = moment(\r\n formatedreducedStartTime,\r\n \"YYYY-MM-DD HH:mm A\"\r\n )\r\n .subtract(15, \"minutes\")\r\n .format(\"YYYY-MM-DD HH:mm A\");\r\n var formatedDecStartTime = moment(\r\n decStartTime,\r\n \"YYYY-MM-DDTHH:mm:A\"\r\n );\r\n var DocEndtime = moment(\r\n currentdate + \" \" + this.patBookList[i].DocEndTime,\r\n \"YYYY/MM/DD HH:mm A\"\r\n );\r\n var formattedEndTime = moment(DocEndtime, \"YYYY-MM-DD HH:mm A\");\r\n var currentTime1 = moment(todaydate)\r\n .tz(\"Asia/Kathmandu\")\r\n .format(\"YYYY-MM-DD HH:mm z\");\r\n var currentTime = moment(\r\n currentTime1,\r\n \"YYYY/MM/DD hh:mm\"\r\n ).format(\"YYYY-MM-DD HH:mm A\");\r\n var momentObj = moment(currentTime, \"YYYY-MM-DDLT\");\r\n var currentdateTime = momentObj.format(\"YYYY-MM-DDTHH:mm:s\");\r\n var formatedCurrentTime = moment(\r\n currentdateTime,\r\n \"YYYY-MM-DD HH:mm A\"\r\n );\r\n // var formatedCurrentTime = moment(currentTime, 'YYYY-MM-DD HH:mm A');\r\n // var diffmin = formatedBookedDateTime.diff(formatedCurrentTime, 'minutes');\r\n if (this.patBookList[i].VisitType == \"Telemedicine\") {\r\n if (\r\n formatedDecStartTime <= formatedCurrentTime &&\r\n formatedCurrentTime <= formattedEndTime &&\r\n this.patBookList[i].IsConversationCompleted == 0 &&\r\n this.patBookList[i].Status == \"initiated\" &&\r\n this.patBookList[i].PaymentStatus != \"unpaid\"\r\n ) {\r\n //if (diffmin <= 15) {\r\n // this.patBookList[i].GoToWaitingRoom = true;\r\n // this.patBookList[i].AccessPermission = true;\r\n // this.patBookList[i].EntryStatus = \"go\"\r\n //} else {\r\n // this.patBookList[i].AccessPermission = false;\r\n // this.patBookList[i].EntryStatus = \"todayupcoming\";\r\n this.patBookList[i].GoToWaitingRoom = true;\r\n this.patBookList[i].AccessPermission = true;\r\n this.patBookList[i].EntryStatus = \"go\";\r\n this.nearestVisit = new Array();\r\n this.nearestVisit = JSON.parse(\r\n JSON.stringify(this.patBookList)\r\n ); //deepcopy\r\n this.nearestVisit = this.patBookList[i];\r\n this.showNearestVisit = true;\r\n this.DoctorStatusCheck();\r\n }\r\n } else {\r\n var diffminwithStarttime = formatedCurrentTime.diff(\r\n formatedDecStartTime,\r\n \"minutes\"\r\n );\r\n var diffminwithEndtime = formatedCurrentTime.diff(\r\n formattedEndTime,\r\n \"minutes\"\r\n );\r\n if (diffminwithStarttime < 0) {\r\n this.patBookList[i].AccessPermission = false;\r\n this.patBookList[i].EntryStatus = \"todayupcoming\";\r\n }\r\n if (diffminwithEndtime > 0) {\r\n this.patBookList[i].AccessPermission = false;\r\n this.patBookList[i].EntryStatus = \"todaypast\";\r\n }\r\n }\r\n }\r\n this.patlist = this.patBookList.filter(\r\n (x) => x.IsConversationCompleted == 1 && x.FollowupCreated == 0\r\n );\r\n this.patlist.sort(function (a, b) {\r\n if (a.VisitDate > b.VisitDate) return 1;\r\n if (a.VisitDate < b.VisitDate) return -1;\r\n return 0;\r\n });\r\n if (this.patlist.length) {\r\n // this.patlist[i].AccessPermission = true;\r\n this.followupVisit = new Array();\r\n this.followupVisit = JSON.parse(\r\n JSON.stringify(this.patlist[0])\r\n ); //deepcopy\r\n this.hospitalId = this.followupVisit.HospitalId;\r\n // this.followupVisit = this.patlist[0];\r\n this.showFollowupVisit = true;\r\n }\r\n if (this.patBookList[i].VisitDate < currentDateWithTime) {\r\n this.patBookList[i].AccessPermission = false;\r\n this.patBookList[i].GoToWaitingRoom = false;\r\n this.patBookList[i].EntryStatus = \"missed\";\r\n }\r\n if (this.patBookList[i].VisitDate > currentDateWithTime) {\r\n this.patBookList[i].AccessPermission = false;\r\n this.patBookList[i].GoToWaitingRoom = false;\r\n this.patBookList[i].EntryStatus = \"upcoming\";\r\n }\r\n this.patBookList[i].VisitDate = moment(\r\n this.patBookList[i].VisitDate\r\n ).format(\"ll\");\r\n\r\n this.patBookList[i].VisitStartTime = moment(\r\n this.patBookList[i].VisitStartTime\r\n ).format(\"LT\");\r\n }\r\n\r\n this.collection = { count: this.patBookList.length, data: [] };\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push({\r\n id: i + 1,\r\n VisitDate: this.patBookList[i].VisitDate,\r\n HospitalName: this.patBookList[i].HospitalName,\r\n DoctorName: this.patBookList[i].DoctorName,\r\n DepartmentName: this.patBookList[i].DepartmentName,\r\n VisitType: this.patBookList[i].VisitType,\r\n Status: this.patBookList[i].Status,\r\n ProviderId: this.patBookList[i].ProviderId,\r\n HospitalId: this.patBookList[i].HospitalId,\r\n });\r\n }\r\n this.GetDepartmentList();\r\n } else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n }\r\n );\r\n }\r\n\r\n public paymentselection(data) {\r\n this.routing.navigate([\"/PaymentSelection\"], {\r\n queryParams: {\r\n vid: data.VisitId,\r\n charge: data.Charge,\r\n id: this.hospitalId,\r\n },\r\n });\r\n }\r\n\r\n GotoWaitingRoom(data) {\r\n this.docService.DoctorId = data.ProviderId;\r\n const dialogRef = this.dialog.open(ConsentFormComponent, {\r\n data: { DoctorId: data.ProviderId, HospitalId: data.HospitalId },\r\n width: \"1300px\",\r\n height: \"1000px\",\r\n });\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe((result) => {\r\n dialogRef.close();\r\n if (result == true) {\r\n console.log(`Dialog result: ${result}`);\r\n // this.visitObj.DepartmentId = this.hospitalService.DepartmentId;\r\n this.routing.navigate([\"/WaitingRoom\"], {\r\n queryParams: {\r\n vid: data.VisitId,\r\n id: this.hospitalId,\r\n did: data.ProviderId,\r\n },\r\n });\r\n //this.routing.navigate(['/PatDashboard']);\r\n } else this.routing.navigate([\"/PatDashboard\"]);\r\n });\r\n //this.patService.VisitId = data.VisitId;\r\n }\r\n public AppointmentHistory() {\r\n this.patservice.getPatHistory(this.token.PatientIdentifier).subscribe(\r\n (res) => this.Success(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n\r\n Success(res) {\r\n if(res && res.IsSuccess && res.Results){\r\n this.patHistoryList = res.Results;\r\n /* console.log(this.patHistoryList );*/\r\n this.historycollection = { count: this.patHistoryList.length, data: [] };\r\n for (var i = 0; i < this.historycollection.count; i++) {\r\n this.historycollection.data.push({\r\n id: i + 1,\r\n VisitId: this.patHistoryList[i].VisitId,\r\n VisitDate: this.patHistoryList[i].VisitDate,\r\n DoctorName: this.patHistoryList[i].DoctorName,\r\n HospitalName: this.patHistoryList[i].HospitalName,\r\n Status: this.patHistoryList[i].Status,\r\n NMC: this.patHistoryList[i].NMC,\r\n });\r\n }\r\n }\r\n }\r\n Error(res) {}\r\n\r\n public ViewNotes(visitId) {\r\n this.showViewNotes = true;\r\n this.patservice.getPatientHistory(this.token.PatientIdentifier).subscribe(\r\n (res) => {\r\n if(res && res.IsSuccess && res.Results){\r\n this.viewList = res.Results;\r\n this.noteList = res.Results;\r\n this.viewList = this.viewList.filter((s) => s.VisitId == visitId);\r\n for (var i = 0; i < this.viewList.length; i++) {\r\n this.viewList[i].VisitDate = moment(\r\n this.viewList[i].VisitDate\r\n ).format(\"lll\");\r\n }\r\n for (let index = 0; index < this.viewList.length; index++) {\r\n const element = this.viewList[index];\r\n if (element == true) {\r\n this.prob = false;\r\n }\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n ViewPrescription(id) {\r\n this.visitId = id;\r\n this.filterPatList = new Array();\r\n this.filterPatList = JSON.parse(JSON.stringify(this.patHistoryList)); //deepcopy\r\n this.filterPatList = this.filterPatList.filter(\r\n (x) => x.VisitId == this.visitId\r\n );\r\n this.prescriptions = this.filterPatList[0].PatientFile;\r\n if (this.prescriptions.length > 0) {\r\n this.showPrescription = true;\r\n this.prescriptions.forEach((x) => {\r\n this.fileExtension = x.FileExtention;\r\n if (\r\n this.fileExtension == \"jpeg\" ||\r\n this.fileExtension == \"JPEG\" ||\r\n this.fileExtension == \"png\" ||\r\n this.fileExtension == \"PNG\" ||\r\n this.fileExtension == \"JPG\" ||\r\n this.fileExtension == \"jpg\"\r\n ) {\r\n x.FileType = \"image\";\r\n }\r\n if (this.fileExtension == \"pdf\" || this.fileExtension == \"PDF\") {\r\n x.FileType = \"pdf\";\r\n }\r\n if (\r\n this.fileExtension == \"docx\" ||\r\n this.fileExtension == \"DOCX\" ||\r\n this.fileExtension == \"DOC\" ||\r\n this.fileExtension == \"doc\"\r\n ) {\r\n x.FileTypeprescriptions = \"docfile\";\r\n }\r\n });\r\n console.log(this.prescriptions);\r\n } else {\r\n this.showPrescription = false;\r\n this.notifyService.showError(\r\n \"Error!\",\r\n \" Could not found the Prescription file\"\r\n );\r\n }\r\n }\r\n\r\n public Close() {\r\n this.showViewNotes = false;\r\n }\r\n Print() {\r\n let popupWinindow;\r\n var printContents = document.getElementById(\"Report\").innerHTML;\r\n popupWinindow = window.open(\r\n \"\",\r\n \"_blank\",\r\n \"width=600,height=700,scrollbars=no,menubar=no,toolbar=no,location=no,status=no,titlebar=no\"\r\n );\r\n popupWinindow.document.open();\r\n let documentContent = \"\";\r\n documentContent += '';\r\n documentContent += \"\";\r\n documentContent +=\r\n '' +\r\n printContents +\r\n \"\";\r\n popupWinindow.document.write(documentContent);\r\n popupWinindow.document.close();\r\n\r\n setTimeout(() => {\r\n popupWinindow.close();\r\n }, 500);\r\n }\r\n\r\n // followup start\r\n\r\n Followup(data) {\r\n this.Age = data.Age;\r\n this.Gender = data.Gender;\r\n this.LastApptDepartmentName = data.DepartmentName;\r\n this.LastApptDoctorName = data.DoctorName;\r\n this.LastApptVisitDate = data.VisitDate;\r\n this.followupinfo = data;\r\n this.showfollowup = true;\r\n this.GetDepartmentList();\r\n }\r\n\r\n public Closefollowup() {\r\n this.showfollowup = false;\r\n this.selDoctor = \"\";\r\n this.SchedulingList = null;\r\n this.selSchedule = \"\";\r\n this.scheduleIntervalId = \"\";\r\n this.filteredSchedulingList = null;\r\n this.scheduleIntervalList = null;\r\n this.visitObj = new Visit();\r\n this.showUnavailableMsg = false;\r\n this.selDepartment = \"\";\r\n this.LastApptDepartmentName = \"\";\r\n this.LastApptDoctorName = \"\";\r\n }\r\n\r\n GetDepartmentList() {\r\n this.docService.getDepartmentList().subscribe(\r\n (res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.deptList = res.Results;\r\n if (this.LastApptDepartmentName != null) {\r\n var selDeptData = this.deptList.filter(\r\n (d) => d.DepartmentName == this.LastApptDepartmentName\r\n );\r\n this.selDepartment = selDeptData[0].DepartmentId;\r\n } else {\r\n this.selDepartment = this.deptList[0].DepartmentId;\r\n }\r\n this.GetDoctorList();\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n \r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n\r\n GetDoctorList() {\r\n this.docService.getDoctorMapList().subscribe(\r\n (res) => this.SuccessDoctor(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessDoctor(res) {\r\n if(res && res.IsSuccess && res.Results){\r\n this.doctorList = res.Results;\r\n this.AssignDepartment();\r\n }else {\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n \r\n }\r\n\r\n AssignDepartment() {\r\n this.filterDocList = this.doctorList.filter(\r\n (x) => x.DepartmentId == this.selDepartment\r\n );\r\n if (this.filterDocList.length) {\r\n this.showUnavailableMsg = false;\r\n if (this.LastApptDoctorName != null) {\r\n var selDocData = this.filterDocList.filter(\r\n (x) => x.DoctorName == this.LastApptDoctorName\r\n );\r\n if (selDocData.length != 0) {\r\n this.selDoctor = selDocData[0].DoctorId;\r\n } else {\r\n this.selDoctor = this.filterDocList[0].DoctorId;\r\n }\r\n } else {\r\n this.selDoctor = this.filterDocList[0].DoctorId;\r\n }\r\n this.AssignDoctor();\r\n } else {\r\n this.showUnavailableMsg = true;\r\n this.selDoctor = \"\";\r\n this.SchedulingList = null;\r\n this.selSchedule = \"\";\r\n this.scheduleIntervalId = \"\";\r\n this.filteredSchedulingList = null;\r\n this.scheduleIntervalList = null;\r\n }\r\n }\r\n\r\n AssignDoctor() {\r\n this.docService\r\n .getDoc(this.selDoctor, this.hospitalId, this.VisitType)\r\n .subscribe(\r\n (res) => this.SuccessSchedulelist(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessSchedulelist(res) {\r\n // if (res && res.IsSuccess && res.Results) {\r\n // }else{\r\n // this.alertService.error(res.ResponseMessage);\r\n // }\r\n if (res.Results != null) {\r\n this.SchedulingList = res.Results.SchedulingList;\r\n this.tempArray = new Array();\r\n this.tempArray = JSON.parse(JSON.stringify(this.SchedulingList));\r\n if (this.tempArray.length == 0) {\r\n this.showUnavailableMsg = true;\r\n } else {\r\n this.showUnavailableMsg = false;\r\n }\r\n for (var y = 0; y < this.tempArray.length; y++) {\r\n var tempst = 0;\r\n tempst = +this.tempArray[y].StartTime.substr(0, 2);\r\n if (tempst < 12) {\r\n var stampm = \"AM\";\r\n var ST = tempst;\r\n } else {\r\n stampm = \"PM\";\r\n if (tempst == 12) {\r\n var ST = tempst;\r\n } else {\r\n ST = tempst - 12;\r\n }\r\n }\r\n this.tempArray[y].StartTime =\r\n ST + this.tempArray[y].StartTime.substr(2, 3) + \" \" + stampm;\r\n var tempet = 0;\r\n tempet = +this.tempArray[y].EndTime.substr(0, 2);\r\n if (tempet < 12) {\r\n var etampm = \"AM\";\r\n var ET = tempet;\r\n } else {\r\n etampm = \"PM\";\r\n if (tempet == 12) {\r\n var ET = tempet;\r\n } else {\r\n ET = tempet - 12;\r\n }\r\n }\r\n this.tempArray[y].EndTime =\r\n ET + this.tempArray[y].EndTime.substr(2, 3) + \" \" + etampm;\r\n }\r\n this.HospitalDoctorMapping = res.Results.HospitalDoctorMapId.filter(\r\n (x) => x.DepartmentId == this.selDepartment\r\n );\r\n this.filteredSchedulingList = [];\r\n this.tempArray.forEach((schedule) => {\r\n if (\r\n schedule.HospitalDoctorMapId ==\r\n this.HospitalDoctorMapping[0].HospitalDoctorMapId\r\n ) {\r\n this.filteredSchedulingList.push(schedule);\r\n }\r\n });\r\n //this.filteredSchedulingList = this.tempArray;\r\n if (this.filteredSchedulingList.length) {\r\n this.selSchedule = this.filteredSchedulingList[0].SchedulingId;\r\n } else {\r\n this.selSchedule = \"\";\r\n this.showUnavailableMsg = true;\r\n }\r\n this.SelectSchedule();\r\n if (this.selDoctor != null) {\r\n this.ScheduleTimeDetail = true;\r\n }\r\n }\r\n }\r\n\r\n SelectSchedule() {\r\n if (this.selSchedule != null) {\r\n this.scheduleIntervalList = [];\r\n this.checkTimeSlot(this.selSchedule);\r\n }\r\n }\r\n\r\n checkTimeSlot(SchId) {\r\n this.schedulingService.getScheduleIntervalBySchedulingId(SchId).subscribe(\r\n (res) => this.SuccessScheduleInterval(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessScheduleInterval(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.scheduleIntervalList = Object.assign(this.scheduleIntervalList, res?.Results);\r\n for (var c = 0; c < this.scheduleIntervalList.length; c++) {\r\n var date = moment(this.scheduleIntervalList[c].Date).format(\"YYYY/MM/DD\");\r\n var timeextract = this.scheduleIntervalList[c].StartTime;\r\n var bookedStartTime = moment(\r\n date + \" \" + timeextract,\r\n \"YYYY/MM/DD HH:mm A\"\r\n );\r\n var momentObj = moment(bookedStartTime, \"YYYY-MM-DDLT\");\r\n var currentdateTime = momentObj.format(\"YYYY-MM-DDTHH:mm:s\");\r\n var formatedBookedDateTime = moment(\r\n currentdateTime,\r\n \"YYYY-MM-DD HH:mm A\"\r\n );\r\n this.scheduleIntervalList[c].StartTimeDetail = formatedBookedDateTime;\r\n }\r\n console.log(this.scheduleIntervalList);\r\n \r\n for (let k = 0; k < this.scheduleIntervalList.length - 1; k++) {\r\n for (let l = 0; l < this.scheduleIntervalList.length - k - 1; l++) {\r\n var diffmin = this.scheduleIntervalList[l + 1].StartTimeDetail.diff(\r\n this.scheduleIntervalList[l].StartTimeDetail,\r\n \"minutes\"\r\n );\r\n if (diffmin < 0) {\r\n let swap = this.scheduleIntervalList[l];\r\n this.scheduleIntervalList[l] = this.scheduleIntervalList[l + 1];\r\n this.scheduleIntervalList[l + 1] = swap;\r\n }\r\n }\r\n }\r\n let nowdatetime: Date = new Date();\r\n this.scheduleIntervalList = this.scheduleIntervalList.filter(\r\n (x) => x.StartTimeDetail >= nowdatetime\r\n );\r\n \r\n console.log(this.scheduleIntervalList);\r\n // if (this.scheduleIntervalList.length) {\r\n // this.scheduleIntervalId = this.scheduleIntervalList[0].ScheduleIntervalId;\r\n \r\n // }\r\n // else {\r\n // this.scheduleIntervalId = '';\r\n // }\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n \r\n }\r\n\r\n setAppontmentTime($event) {\r\n if (this.scheduleIntervalList.length) {\r\n let tempdata = this.scheduleIntervalList.filter(\r\n (x) => x.ScheduleIntervalId == this.scheduleIntervalId\r\n );\r\n if (tempdata[0].IsBooked != true) {\r\n this.scheduleIntervalId = tempdata[0].ScheduleIntervalId;\r\n this.visitObj.BookingTime = `${tempdata[0].StartTime} - ${tempdata[0].EndTime}`;\r\n this.visitObj.VisitDate = tempdata[0].Date;\r\n } else {\r\n this.visitObj.BookingTime = null;\r\n this.notifyService.showError(\r\n \"Error\",\r\n \"Selected time is already booked!!\"\r\n );\r\n }\r\n }\r\n }\r\n ConfirmFollowup(form) {\r\n if (this.visitObj.BookingTime == null) {\r\n this.notifyService.showError(\r\n \"Error\",\r\n \"Selected time is already booked!!\"\r\n );\r\n return;\r\n }\r\n if (form.invalid) {\r\n if (form.controls.Department.invalid) {\r\n this.notifyService.showError(\"\", \"Department is required\");\r\n }\r\n if (form.controls.Doctor.invalid) {\r\n this.notifyService.showError(\"\", \"Doctor is required\");\r\n }\r\n if (form.controls.FollowUpdate.invalid) {\r\n this.notifyService.showError(\"\", \"Follow-Up Date is required\");\r\n }\r\n if (form.controls.Time.invalid) {\r\n this.notifyService.showError(\"\", \"Time is required\");\r\n }\r\n return;\r\n }\r\n if (form.valid) {\r\n if (this.visitObj.VisitId == null) {\r\n this.visitObj.HospitalId = this.followupinfo.HospitalId;\r\n this.visitObj.DoctorId = this.selDoctor;\r\n this.visitObj.ProviderId = this.selDoctor;\r\n this.visitObj.DepartmentId = this.selDepartment;\r\n this.visitObj.PaymentStatus = \"unpaid\";\r\n this.visitObj.Status = \"initiated\";\r\n this.visitObj.VisitType = this.followupinfo.VisitType;\r\n this.visitObj.PatientId = this.followupinfo.PatientId;\r\n this.visitObj.VisitId = this.followupinfo.VisitId;\r\n this.patservice\r\n .followUpPostVisit(\r\n this.visitObj,\r\n this.scheduleIntervalId,\r\n this.selSchedule\r\n )\r\n .subscribe(\r\n (res) => this.SuccessPostProblem(res),\r\n (res) => this.PostProblemError(res)\r\n );\r\n }\r\n }\r\n }\r\n\r\n SuccessPostProblem(res) {\r\n this.notifyService.showSuccess(\"\", \"Follow-Up Added Successfully!\");\r\n if (this.token.PatientIdentifier == undefined) {\r\n } else {\r\n if (this.hospitalService.PaymentEnable == false) {\r\n this.routing.navigate([\"/PatPaidBookingList\"], {\r\n queryParams: { vid: res.Value },\r\n });\r\n } else {\r\n this.routing.navigate([\"/PatPaidBookingList\"], {\r\n queryParams: { vid: res.Value },\r\n });\r\n }\r\n }\r\n }\r\n PostProblemError(res) {\r\n this.notifyService.showError(\"Error\", \" Please fill up the required field\");\r\n }\r\n\r\n Makepayment() {\r\n // if(form.valid){\r\n this.routing.navigate([\"/PaymentSelection\"], {\r\n queryParams: { vid: this.visitObj },\r\n });\r\n // }\r\n }\r\n // followup end\r\n\r\n CloseVisittypepopup() {\r\n this.showVisitTypePopup = false;\r\n this.updatePat = false;\r\n }\r\n\r\n SetOnlineAppointment() {\r\n this.patservice.VisitType = \"Online Appointment\";\r\n this.routing.navigate([\"/HospitalList\"], {\r\n queryParams: { VisitType: \"Online Appointment\" },\r\n });\r\n }\r\n\r\n SetTelemedicineAppointment() {\r\n this.patservice.VisitType = \"Telemedicine\";\r\n this.routing.navigate([\"/HospitalList\"], {\r\n queryParams: { VisitType: \"Telemedicine\" },\r\n });\r\n }\r\n\r\n public PatientMedicalRecord() {\r\n this.updatePat = true;\r\n this.routing.navigate([\"/PatientMedicalRecord\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n public PatientLabReports() {\r\n this.updatePat = true;\r\n this.routing.navigate([\"/PatientLabReports\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n\r\n DoctorStatusCheck() {\r\n this.GetDoctorList();\r\n this.timerpat\r\n .pipe(takeWhile((x) => this.showNearestVisit === true))\r\n .subscribe(() => {\r\n if (this.nearestVisit != null) {\r\n this.doctor = this.doctorList.filter(\r\n (d) => d.DoctorId == this.nearestVisit.ProviderId\r\n );\r\n const user = {\r\n PatientUserId: this.patInfo.IdentityUserId,\r\n DoctorUserId: this.doctor[0].IdentityUserId,\r\n };\r\n this.notificationService.DoctorStatusCheck(user);\r\n }\r\n });\r\n }\r\n\r\n public HelpDesk() {\r\n this.updatePat = true;\r\n this.routing.navigate([\"/PatientHelpDesk\"], {\r\n queryParams: { id: this.hospitalId },\r\n });\r\n }\r\n\r\n GetMissedAppointment() {\r\n this.patservice.getAllMissedVisit().subscribe(\r\n (res) => {\r\n console.log(\"Missed Visit are here\");\r\n }\r\n // ,\r\n // err => {\r\n // console.log(err);\r\n );\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Put your queries here.\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n Start your conversiation\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ msg.Message }}\r\n
\r\n
\r\n {{ msg.Message }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n Chat message is required\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { Global } from '../../app.global';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { FormBuilder, FormControl, FormGroup, NgForm, Validators } from '@angular/forms';\r\nimport { PatientMedicalRecord } from '../../models/patient/Pat-medicalRecord.model';\r\nimport { AlertService } from 'src/app/services/alert.service';\r\nimport { ChatService } from 'src/app/services/ChatNotification/chat-notification.service';\r\nimport { Patient } from 'src/app/models/patient/patient.model';\r\nimport { DoctorService } from 'src/app/services/doctor/doctor.service';\r\n\r\n@Component({\r\n templateUrl: './app.patient_helpdesk.html'\r\n})\r\nexport class PatientHelpDeskComponent {\r\n\r\n public hospitalId: any;\r\n ChatForm: FormGroup;\r\n public patInfo: Patient = new Patient();\r\n public receiverId: string;\r\n ChatMessages: Array = new Array();\r\n AllUserChats: any;\r\n ChatReceivedMessages: Array = new Array();\r\n token: any;\r\n public adminId: any;\r\n constructor(\r\n public httpClient: HttpClient, private alertService: AlertService, public docService: DoctorService,\r\n public routing: Router, private authenticationService: AuthenticationService,\r\n public patService: PatientService, public notificationService: ChatService\r\n ) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.getPatientName();\r\n this.getAdminId();\r\n this.initForm();\r\n this.notificationService.Connect();\r\n this.notificationService.EventChatMessage.subscribe(chatData => {\r\n this.OnChatUserChange();\r\n\r\n const chatMsg = { Name: chatData.Name, Message: chatData.Message, Class: 'receiver-msg' };\r\n this.ChatMessages.push(chatMsg);\r\n this.pushChatMsgUserwise(chatData.Name, chatMsg);\r\n });\r\n }\r\n\r\n pushChatMsgUserwise(user, messageObj) {\r\n try {\r\n if (!this.AllUserChats.hasOwnProperty(user)) {\r\n this.AllUserChats[user] = new Array();\r\n }\r\n this.AllUserChats[user].push(messageObj);\r\n } catch (e) { }\r\n }\r\n\r\n public BackDashBoard() {\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n private initForm() {\r\n this.ChatForm = new FormGroup(\r\n {\r\n chatMessage: new FormControl('', [Validators.required])\r\n });\r\n }\r\n hasError(typeofvalidator: string, controlname: string): boolean {\r\n const control = this.ChatForm.controls[controlname];\r\n return control.hasError(typeofvalidator) && control.dirty;\r\n }\r\n SendChatMsg() {\r\n try {\r\n if (this.chatMessageToSend.value)\r\n this.chatMessageToSend.setValue(this.chatMessageToSend.value.trim());\r\n\r\n for (const i in this.ChatForm.controls) {\r\n this.ChatForm.controls[i].markAsDirty();\r\n this.ChatForm.controls[i].updateValueAndValidity();\r\n }\r\n\r\n if (this.ChatForm.valid) {\r\n const chatMsg = {\r\n SenderId: this.patInfo.IdentityUserId,\r\n ReceiverId: this.adminId,\r\n Name: `${this.patInfo.FirstName} ${this.patInfo.MiddleName ? this.patInfo.MiddleName : \"\"} ${this.patInfo.LastName}`,\r\n Message: this.chatMessageToSend.value\r\n };\r\n const chatmsgObj = { Name: 'Me', Message: chatMsg.Message, Class: 'sender-msg' };\r\n this.ChatMessages.push(chatmsgObj);\r\n this.notificationService.SendChatMessage(chatMsg);\r\n this.ChatForm.reset();\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n private get chatMessageToSend() {\r\n return this.ChatForm.get(\"chatMessage\") as FormControl;\r\n }\r\n\r\n OnChatUserChange() {\r\n try {\r\n const selUser = this.ChatForm.controls['Id'].value;\r\n if (this.AllUserChats.hasOwnProperty(selUser)) {\r\n this.ChatMessages = this.AllUserChats[selUser].slice();\r\n this.ChatReceivedMessages = this.AllUserChats[selUser].slice();\r\n } else {\r\n this.ChatMessages = new Array();\r\n this.ChatReceivedMessages = new Array();\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n onChatEnter(event) {\r\n if (event.keyCode === 13) {\r\n this.SendChatMsg();\r\n }\r\n }\r\n public getPatientName() {\r\n //var id = this.token.PatientIdentifier;\r\n this.patService.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n\r\n getAdminId() {\r\n this.patService.getAdminId()\r\n .subscribe(res => this.SuccessGetAdminId(res),\r\n res => this.Error(res));\r\n }\r\n SuccessGetAdminId(res) {\r\n this.adminId = res;\r\n }\r\n Error(res) {\r\n\r\n }\r\n}\r\n\r\n","\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n

My Appointment History

\r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
SNVisitDateVisitTimeDepartmentDoctorBooking TypeVisit Type/OP TypePayment TypePayment StatusPayment MediumStatusAction
{{item.id}}{{item.VisitDate | date:'fullDate'}}{{item.BookingTime }}{{item.DepartmentName}}{{item.DoctorName}}{{item.BookingType}}{{item.VisitType }}ChargableFree{{item.Status}}FreeEsewaKhaltiNabil CardConnect IPS{{item.PaymentStatus}}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Sorry! No appointments found!\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Doctor Name : {{data.DoctorName}}
Patient Name : {{data.PatientName}}
Hospital Name : {{data.HospitalName}}
Visit Date: {{data.VisitEndTime | date:'medium'}}
NMC Number: {{data.NMC }}
\r\n
\r\n

Doctor Advice

\r\n \r\n
\r\n
\r\n Other Pertinent Information:\r\n

{{row.OtherPertientInformation}}

\r\n
\r\n
\r\n Treatment Advice:\r\n

{{row.TreatmentAdvice}}

\r\n
\r\n
\r\n Medication given by doctor:\r\n

{{row.Medication}}

\r\n
\r\n
\r\n Follow up:\r\n

{{row.FollowUp}}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Prescription file from Doctor
\r\n \r\n
\r\n
\r\n
\r\n \"info-image\"\r\n \r\n \r\n \r\n Download\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Medical Record File
\r\n \r\n
\r\n
\r\n
\r\n \"info-image\"\r\n \r\n \r\n \r\n Download\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { Patient } from '../../models/patient/patient.model';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport * as moment from 'moment/moment';\r\nimport { Problem } from '../../models/problem/problem.model';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { Global } from '../../app.global';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { SelectControlValueAccessor } from '@angular/forms';\r\nimport { PopUpDialogComponent } from 'src/app/components/common/popup/pop-up.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\nimport { RescheduleComponent } from 'src/app/Doctor/doctor_reschedule/app.doctor_reschedule';\r\nimport { ViewOPSummaryComponent } from 'src/app/Doctor/OP_Summary/app.View_OP_summary';\r\nimport { SchedulingService } from '../../services/scheduling/scheduling.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n templateUrl: './app.patient_history.html',\r\n styleUrls: ['./app.patient_history.css']\r\n\r\n})\r\nexport class PatientHistoryComponent {\r\n public config: any;\r\n public patInfo: Patient = new Patient();\r\n // public patList:Array= new Array();\r\n patList: any;\r\n filteredpathistoryList: any;\r\n respatlist: any;\r\n filterPatList: any;\r\n path: any;\r\n patientFile: any;\r\n filekind: any;\r\n fileExtension: any;\r\n Filetype: any;\r\n public viewList: any;\r\n public noteList: any;\r\n public token: any;\r\n public prob: boolean = false;\r\n public hospitalId: any;\r\n p: number = 1; \r\n collection = { count: 0, data: [] };\r\n public allAppointments : Boolean = false;\r\n fileList: any;\r\n visitId: string;\r\n public showViewNotes: boolean = false;\r\n public showPrescription: boolean = false;\r\n\r\n\r\n nepaliDate = moment();\r\n currentDateWithTime: any;\r\n public Prescription: boolean = true;\r\n public Report: boolean = true;\r\n public OPSummary: boolean = true;\r\n public Cancel: boolean = false;\r\n public Reschedule: boolean = false;\r\n public Payment: boolean = false;\r\n\r\n\r\n isCancelled: boolean;\r\n\r\n visitObj: Visit = new Visit();\r\n public patRecordFile: any;\r\n public showReport: boolean = false;\r\n public currentTime: any;\r\n showOpSummaryBtn: boolean = false;\r\n public safePath: any;\r\n\r\n constructor(public routing: Router, private route: ActivatedRoute,\r\n public patservice: PatientService,\r\n public alertService: AlertService, public authenticationService: AuthenticationService, public schedulingService: SchedulingService,\r\n public hospitalService: HospitalService, public global: Global, private notifyService: NotificationService, public dialog: MatDialog, \r\n private sanitizer: DomSanitizer) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.AppointmentHistory();\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n\r\n }\r\n public AppointmentHistory() {\r\n this.patservice.getPatHistory(this.token.PatientIdentifier).subscribe(res => this.Success(res),\r\n res => this.Error(res));\r\n }\r\n\r\n Success(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.respatlist = res?.Results;\r\n for (var i = 0; i < this.respatlist.length; i++) {\r\n var currentNepaliDateTime = this.nepaliDate.tz(\"Asia/Kathmandu\").format('YYYY/MM/DD HH:mm z');\r\n this.currentDateWithTime = moment(currentNepaliDateTime, 'YYYY/MM/DD hh:mm').format('YYYY/MM/DD');\r\n this.respatlist[i].VisitDate = moment(this.respatlist[i].VisitDate).format('YYYY/MM/DD');\r\n if (this.respatlist[i].Status != 'cancelled') {\r\n if (this.respatlist[i].BookingStartTime) {\r\n var bookingStartTime = this.respatlist[i].BookingStartTime.split('-').slice(0, -1).join('-');\r\n this.respatlist[i].BookingStartTime = moment(bookingStartTime, 'HH:mm A').format('HH:mm');\r\n }\r\n else{\r\n this.alertService.error(\"Appointment not found with that booking time!\");\r\n }\r\n }\r\n else {\r\n if (this.respatlist[i].CancelledBookingTime) {\r\n var cancelledbookingTime = this.respatlist[i].CancelledBookingTime.split('-').slice(0, -1).join('-');\r\n this.respatlist[i].CancelledBookingTime = moment(cancelledbookingTime, 'HH:mm A').format('HH:mm');\r\n }else{\r\n this.alertService.error(\"Appointment not found with that booking time!\");\r\n } \r\n }\r\n\r\n this.currentTime = moment(currentNepaliDateTime, 'YYYY/MM/DD HH:mm').format('HH:mm');\r\n }\r\n }else{\r\n this.notifyService.showError(\"\",\"Sorry, No appointments found\");\r\n }\r\n this.showUpcominglist();\r\n }\r\n\r\n Error(res) {\r\n this.notifyService.showError(\"\",\"Sorry, No appointments found\");\r\n }\r\n\r\n showUnpaidlist() {\r\n this.Prescription = true;\r\n this.Report = true;\r\n this.OPSummary = true;\r\n this.Payment = true;\r\n this.Reschedule = true;\r\n this.Cancel = true;\r\n this.filteredpathistoryList = this.respatlist;\r\n this.filteredpathistoryList = this.filteredpathistoryList.filter(p => p.PaymentStatus == 'unpaid')\r\n this.filterlist();\r\n }\r\n\r\n showPaidlist() {\r\n this.Prescription = true;\r\n this.Report = true;\r\n this.OPSummary = true;\r\n this.Payment = false;\r\n this.Reschedule = true;\r\n this.Cancel = true;\r\n this.filteredpathistoryList = this.respatlist;\r\n this.filteredpathistoryList = this.filteredpathistoryList.filter(p => p.PaymentStatus == 'paid' || p.PaymentStatus == 'free')\r\n this.filterlist();\r\n }\r\n\r\n showPastlist() {\r\n this.Prescription = true;\r\n\r\n this.Report = true;\r\n this.OPSummary = true;\r\n this.Payment = false;\r\n this.Reschedule = false;\r\n this.Cancel = false;\r\n this.filteredpathistoryList = this.respatlist;\r\n\r\n this.filteredpathistoryList = this.filteredpathistoryList.filter(p => p.VisitDate <= this.currentDateWithTime)\r\n for (var i = 0; i < this.filteredpathistoryList.length; i++) {\r\n if (this.filteredpathistoryList[i].Status != 'cancelled') {\r\n if (this.filteredpathistoryList[i].VisitDate == this.currentDateWithTime && this.filteredpathistoryList[i].BookingStartTime > this.currentTime) {\r\n this.filteredpathistoryList.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n else {\r\n if (this.filteredpathistoryList[i].VisitDate == this.currentDateWithTime && this.filteredpathistoryList[i].CancelledBookingTime > this.currentTime) {\r\n this.filteredpathistoryList.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n if(this.filteredpathistoryList.length > 0){\r\n this.allAppointments = true;\r\n }\r\n else{\r\n this.allAppointments = false;\r\n }\r\n if(this.filteredpathistoryList.length > 0){\r\n this.allAppointments = true;\r\n }\r\n else{\r\n this.allAppointments = false;\r\n }\r\n this.filterlist();\r\n }\r\n\r\n showUpcominglist() {\r\n this.Prescription = false;\r\n this.Report = false;\r\n this.OPSummary = false;\r\n this.Payment = true;\r\n this.Reschedule = true;\r\n this.Cancel = true;\r\n this.filteredpathistoryList = this.respatlist;\r\n\r\n this.filteredpathistoryList = this.filteredpathistoryList.filter(p => p.VisitDate >= this.currentDateWithTime)\r\n for (var i = 0; i < this.filteredpathistoryList.length; i++) {\r\n if (this.filteredpathistoryList[i].Status != 'cancelled' || this.filteredpathistoryList[i].Status != 'deleted') {\r\n if (this.filteredpathistoryList[i].VisitDate == this.currentDateWithTime && this.filteredpathistoryList[i].BookingStartTime < this.currentTime) {\r\n this.filteredpathistoryList.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n else {\r\n if (this.filteredpathistoryList[i].VisitDate == this.currentDateWithTime && this.filteredpathistoryList[i].CancelledBookingTime < this.currentTime) {\r\n this.filteredpathistoryList.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n if(this.filteredpathistoryList.length > 0){\r\n this.allAppointments = true;\r\n }\r\n else{\r\n this.allAppointments = false;\r\n }\r\n this.filterlist();\r\n }\r\n filterlist() {\r\n\r\n this.patList = this.filteredpathistoryList;\r\n this.collection = { count: this.patList.length, data: [] }\r\n for (var i = 0; i < this.collection.count; i++) {\r\n if (this.patList[i].Medications != null || this.patList[i].History != null) {\r\n this.showOpSummaryBtn = this.patList[i].ShowViewOPSummary = true;\r\n }\r\n else {\r\n this.showOpSummaryBtn = this.patList[i].ShowViewOPSummary = false;\r\n }\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitId: this.patList[i].VisitId,\r\n VisitDate: this.patList[i].VisitDate,\r\n DepartmentName: this.patList[i].DepartmentName,\r\n DoctorName: this.patList[i].DoctorName,\r\n HospitalName: this.patList[i].HospitalName,\r\n VisitType: this.patList[i].VisitType,\r\n PaymentStatus: this.patList[i].PaymentStatus,\r\n NMC: this.patList[i].NMC,\r\n SchedulingId: this.patList[i].SchedulingId,\r\n DepartmentId: this.patList[i].DepartmentId,\r\n BookingTime: this.patList[i].BookingTime,\r\n Status: this.patList[i].Status,\r\n BookingType: this.patList[i].BookingType,\r\n DoctorId: this.patList[i].ProviderId,\r\n HospitalId: this.patList[i].HospitalId,\r\n Charge: this.patList[i].Charge,\r\n ShowViewOPSummary: this.showOpSummaryBtn,\r\n PaymentMethod: this.patList[i].PaymentMethod\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n\r\n public ViewNotes(visitId) {\r\n this.showViewNotes = true;\r\n this.patservice.getPatientHistory(this.token.PatientIdentifier).subscribe(res => {\r\n this.viewList = res;\r\n this.noteList = res;\r\n this.viewList = this.viewList.filter(s => s.VisitId == visitId);\r\n for (var i = 0; i < this.viewList.length; i++) {\r\n\r\n this.viewList[i].VisitDate = moment(this.viewList[i].VisitDate).format('lll');\r\n }\r\n for (let index = 0; index < this.viewList.length; index++) {\r\n const element = this.viewList[index];\r\n if (element == true) {\r\n this.prob = false;\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n ViewPrescription(id) {\r\n this.visitId = id;\r\n this.filterPatList = new Array();\r\n this.filterPatList = JSON.parse(JSON.stringify(this.patList));//deepcopy\r\n this.filterPatList = this.filterPatList.filter(x => x.VisitId == this.visitId);\r\n this.patientFile = this.filterPatList[0].PatientFile;\r\n this.showPrescription = true;\r\n this.showReport = false;\r\n if (this.patientFile.length > 0) {\r\n this.path = this.patientFile[0].FilePath;\r\n this.fileExtension = this.patientFile[0].FileExtention;\r\n if (this.fileExtension == 'jpeg' || this.fileExtension == 'JPEG' || this.fileExtension == 'png' || this.fileExtension == 'PNG' || this.fileExtension == 'JPG' || this.fileExtension == 'jpg') {\r\n this.Filetype = \"image\";\r\n }\r\n if (this.fileExtension == 'pdf' || this.fileExtension == 'PDF') {\r\n this.Filetype = \"pdf\";\r\n this.safePath = this.sanitizer.bypassSecurityTrustResourceUrl(this.path);\r\n }\r\n if (this.fileExtension == 'docx' || this.fileExtension == 'DOCX' || this.fileExtension == 'DOC' || this.fileExtension == 'doc') {\r\n this.Filetype = \"docfile\";\r\n }\r\n\r\n }\r\n else {\r\n this.showPrescription = false;\r\n this.notifyService.showError(\"Error!\", \" Could not found the Prescription file\");\r\n }\r\n }\r\n\r\n Pay(data) {\r\n this.routing.navigate(['/PaymentSelection'], { queryParams: { vid: data.VisitId, charge: data.Charge, id: this.hospitalId } });\r\n }\r\n\r\n public CancelBooking(data) {\r\n if (data.PaymentStatus != \"paid\") {\r\n this.visitId = data.VisitId;\r\n this.visitObj.SchedulingId = data.SchedulingId;\r\n this.visitObj.BookingTime = data.BookingTime;\r\n this.patservice.cancelBooking(this.visitObj, this.visitId).subscribe(res => {\r\n this.notifyService.showSuccess('Booking cancelled !!', 'Success');\r\n this.AppointmentHistory();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n });\r\n\r\n } else {\r\n this.notifyService.showError(\"Paid Booking cannot be cancelled \", \"Sorry\");\r\n }\r\n }\r\n\r\n RescheduleAppointment(data) {\r\n const dialogRef = this.dialog.open(RescheduleComponent,\r\n { data: { docId: data.DoctorId, deptId: data.DepartmentId, hosId: data.HospitalId, visitId: data.VisitId, schedullingId: data.SchedulingId, bookingTime: data.BookingTime, appointmentType: data.VisitType }, width: '1000px', height: '1000px' }\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n // this.showUpcominglist(); //commented such that it displays the table in which patient initially was. This always rendered the table which was initially being fetched.\r\n });\r\n }\r\n\r\n ViewReport(id) {\r\n this.visitId = id;\r\n this.filterPatList = new Array();\r\n this.filterPatList = JSON.parse(JSON.stringify(this.patList));//deepcopy\r\n this.filterPatList = this.filterPatList.filter(x => x.VisitId == this.visitId);\r\n this.patRecordFile = this.filterPatList[0].PatRecordFile;\r\n this.showReport = true;\r\n this.showPrescription = false;\r\n if (this.patRecordFile != null) {\r\n this.path = this.patRecordFile.FilePath;\r\n this.fileExtension = this.patRecordFile.FileExtension;\r\n if (this.fileExtension == 'jpeg' || this.fileExtension == 'JPEG' || this.fileExtension == 'png' || this.fileExtension == 'PNG' || this.fileExtension == 'JPG' || this.fileExtension == 'jpg') {\r\n this.Filetype = \"image\";\r\n }\r\n if (this.fileExtension == 'pdf' || this.fileExtension == 'PDF') {\r\n this.Filetype = \"pdf\";\r\n }\r\n if (this.fileExtension == 'docx' || this.fileExtension == 'DOCX' || this.fileExtension == 'DOC' || this.fileExtension == 'doc') {\r\n this.Filetype = \"docfile\";\r\n }\r\n\r\n }\r\n else {\r\n this.showReport = false;\r\n this.notifyService.showError(\"Error!\", \" Could not found the Record\");\r\n }\r\n }\r\n\r\n ViewOPSummary(data) {\r\n this.showPrescription = false;\r\n this.showReport = false;\r\n this.patservice.getOPSummary(this.token.PatientIdentifier, data.VisitId).subscribe(res => this.Successsummary(res),\r\n res => this.ErrorSuccesssummary(res));\r\n }\r\n\r\n Successsummary(data) {\r\n if(data && data.IsSuccess && data.Results){\r\n var summaryData = data.Results;\r\n const dialogRef = this.dialog.open(ViewOPSummaryComponent,\r\n {\r\n data: {\r\n PatientId: summaryData.PatientId,\r\n PatientName: summaryData.PatientName,\r\n Age: summaryData.Age,\r\n Gender: summaryData.Gender,\r\n Address: summaryData.Address,\r\n ContactNumber: summaryData.ContactNumber,\r\n VisitDate: summaryData.VisitDate,\r\n BookingTime: summaryData.BookingTime,\r\n DepartmentName: summaryData.DepartmentName,\r\n DoctorName: summaryData.DoctorName,\r\n CreatedDate: summaryData.CreatedDate,\r\n Height: summaryData.Height,\r\n Weight: summaryData.Weight,\r\n Temperature: summaryData.Temperature,\r\n BMI: summaryData.BMI,\r\n BP: summaryData.BP,\r\n Bodypain: summaryData.Bodypain,\r\n PainScale: summaryData.PainScale,\r\n LongSignature: summaryData.LongSignature,\r\n NMC: summaryData.NMC,\r\n Medication: summaryData.Medication,\r\n TreatmentAdvice: summaryData.TreatmentAdvice,\r\n History: summaryData.History,\r\n ChiefComplaints: summaryData.ChiefComplaints,\r\n Investigation: summaryData.Investigation,\r\n FinalDiagnosis: summaryData.FinalDiagnosis,\r\n Remarks: summaryData.Remarks,\r\n medicationlist: summaryData.medicationlist,\r\n VisitId: summaryData.Visitid\r\n }, width: '1000px', height: '1000px'\r\n }\r\n );\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n console.log(`Dialog result: ${result}`);\r\n this.showPastlist(); // Updated so that patient is being redirected to the same table i.e Past Appointment table. \r\n });\r\n }\r\n }\r\n\r\n\r\n ErrorSuccesssummary(res) {\r\n\r\n }\r\n showdata() {\r\n\r\n }\r\n openDialog(data) {\r\n const dialogRef = this.dialog.open(PopUpDialogComponent, {\r\n data: { msg: \"fromAdmin\" },\r\n width: '250px',\r\n height: '300',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.isCancelled = result;\r\n if (this.isCancelled === true) {\r\n this.CancelBooking(data);\r\n }\r\n else{\r\n error => {\r\n this.alertService.error(error);\r\n };\r\n }\r\n });\r\n\r\n }\r\n\r\n Print() {\r\n let popupWinindow;\r\n var printContents = document.getElementById(\"Report\").innerHTML;\r\n popupWinindow = window.open('', '_blank', 'width=600,height=700,scrollbars=no,menubar=no,toolbar=no,location=no,status=no,titlebar=no');\r\n popupWinindow.document.open();\r\n let documentContent = '';\r\n documentContent += '';\r\n documentContent += '';\r\n documentContent += '' + printContents + ''\r\n popupWinindow.document.write(documentContent);\r\n popupWinindow.document.close();\r\n }\r\n public BackDashBoard() {\r\n //this.updatePat = false;\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n RemoveCompletely(visitId) {\r\n this.schedulingService.deleteVisit(visitId).subscribe(res => {\r\n this.notifyService.showSuccess('Sucess', 'Schedule Successfully Removed From List');\r\n window.location.reload();\r\n });\r\n }\r\n}\r\n\r\n","\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n

My Lab Reports

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Patient NameTest ReportUploaded ByUploaded OnActions
{{record.FamilyFullName ? record.FamilyFullName : record.PatientName}}{{record.TestReportType}}{{record.UploadedBy }}{{record.UploadedDate | date: 'yyyy-MM-dd' }}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{title}}\r\n \r\n
\r\n \r\n
\r\n
\r\n \"info-image\"\r\n\r\n \r\n \r\n \r\n \r\n Download\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IdToken } from '../../models/IdToken';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { LabReportUploadEndpointService } from '../../services/LabReportUpload/lab-report-upload-endpoint.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { NgxExtendedPdfViewerService, pdfDefaultOptions } from 'ngx-extended-pdf-viewer';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n@Component({\r\n selector: 'app-patient-lab-reports',\r\n templateUrl: './app.patient_lab_reports.html',\r\n styleUrls: ['./app.patient_lab_reports.css']\r\n})\r\nexport class PatientLabReportsComponent implements OnInit {\r\n token: IdToken;\r\n p = 1;\r\n hospitalId: string;\r\n collection = { data: [] }\r\n showView: boolean;\r\n title: any;\r\n fileName: any;\r\n filePath: any;\r\n fileExtension: any;\r\n Filetype: string;\r\n public safeUrl: any;\r\n\r\n constructor(public routing: Router, private route: ActivatedRoute, public labReportEndpoint: LabReportUploadEndpointService,\r\n public authenticationService: AuthenticationService,public notifyService: NotificationService, private pdfService: NgxExtendedPdfViewerService, public sanitizer: DomSanitizer) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n }\r\n\r\n ngOnInit() {\r\n this.labReportEndpoint.GetAllLabReports()\r\n .subscribe(res => {\r\n if (res.success) {\r\n this.collection = res;\r\n }\r\n });\r\n }\r\n public BackDashBoard() {\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n\r\n\r\n ViewFile(fileDetails, filePath, fileExt, fileName) {\r\n if (fileDetails && fileDetails.PatientFileId) {\r\n this.title = `${fileDetails.PatientName} (Lab Report)`;\r\n this.labReportEndpoint.GetLabReportPreview(fileDetails.PatientFileId)\r\n .subscribe(res => {\r\n if (res.success) {\r\n if (res.data) {\r\n this.showView = true;\r\n const base64Result = res.data.base64Result;\r\n this.fileExtension = res.data.FileExtension;\r\n this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.filePath)\r\n if (this.isImageFile(this.fileExtension)) {\r\n this.Filetype = \"image\";\r\n this.filePath = this.sanitizeBase64Image(base64Result, this.fileExtension);\r\n } else if (this.isFileSupported(this.fileExtension)) {\r\n if (this.fileExtension.toLowerCase() === 'pdf') {\r\n this.Filetype = \"pdf\";\r\n } else {\r\n this.Filetype = \"docfile\";\r\n }\r\n this.filePath = this.sanitizeBase64File(base64Result, this.fileExtension);\r\n } else {\r\n this.notifyService.showError(\"Error\", \"Unsupported file type\");\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n this.notifyService.showError(\"Error\", \"PatientFileId is required to Preview File\");\r\n }\r\n }\r\n \r\n isImageFile(extension: string): boolean {\r\n const imageExtensions = [\"jpeg\", \"jpg\", \"png\"];\r\n return imageExtensions.includes(extension.toLowerCase());\r\n }\r\n \r\n isFileSupported(extension: string): boolean {\r\n const supportedExtensions = [\"pdf\", \"docx\", \"doc\"];\r\n return supportedExtensions.includes(extension.toLowerCase());\r\n }\r\n \r\n sanitizeBase64Image(base64String: string, extension: string): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/${extension};base64,${base64String}`);\r\n }\r\n \r\n sanitizeBase64File(base64String: string, extension: string): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(`data:application/${extension};base64,${base64String}`);\r\n } base64ToArrayBuffer(base64) {\r\n var binaryString = atob(base64);\r\n var bytes = new Uint8Array(binaryString.length);\r\n for (var i = 0; i < binaryString.length; i++) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n}\r\n\r\n hide() {\r\n this.showView = false;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n 0\" style=\"font-size: 11px\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.N.Patient NameTest ReportUploaded ByActions
{{record.id}}{{record.PatientName}}{{record.TestReportType}}{{record.UploadedBy }}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{title}}\r\n \r\n
\r\n \r\n
\r\n
\r\n \"info-image\"\r\n \r\n \r\n \r\n Download\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
/","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { Global } from '../../app.global';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\nimport { PatientMedicalRecord } from '../../models/patient/Pat-medicalRecord.model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n templateUrl: './app.patient_medical_record.html'\r\n})\r\nexport class PatientMedicalRecordComponent {\r\n public config: any;\r\n public token: any;\r\n public hospitalId: any;\r\n p: number = 1;\r\n public viewMedicalRecord: boolean = false;\r\n public TestReportType = [\r\n { id: 1, type: \"OPD Prescription\" },\r\n { id: 2, type: \"Lab Test Report\" },\r\n { id: 3, type: \"X-Ray Report\" },\r\n { id: 4, type: \"USG Report\" },\r\n { id: 5, type: \"ECG Report\" },\r\n { id: 6, type: \"CT-Scan Report\" },\r\n { id: 7, type: \"MRI Report\" },\r\n { id: 8, type: \"IP Discharge Summary\" },\r\n { id: 9, type: \"Others\" }\r\n ];\r\n public progress: number;\r\n public message: string;\r\n public patMedicalRecord: PatientMedicalRecord = new PatientMedicalRecord();\r\n public medicalRecordList: Array = new Array();\r\n public showView: boolean = false;\r\n public title: string;\r\n public filePath: string;\r\n public fileExtension: string;\r\n public Filetype: string;\r\n public fileName: string;\r\n public collection = { count: 0, data: [] };\r\n public patInfo: any;\r\n public patFamilyList: any;\r\n public patData = [];\r\n public selectedPatId: any; \r\n public safeUrl : any;\r\n\r\n constructor(public routing: Router, private route: ActivatedRoute, public patservice: PatientService,\r\n public authenticationService: AuthenticationService, public http: HttpClient,\r\n public hospitalService: HospitalService, public global: Global, private notifyService: NotificationService, private sanitizer: DomSanitizer) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n this.GetPatientName();\r\n this.GetFamilyDetail();\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n\r\n }\r\n\r\n public BackDashBoard() {\r\n //this.updatePat = false;\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n UploadMedicalRecord() {\r\n this.viewMedicalRecord = false;\r\n this.patMedicalRecord = new PatientMedicalRecord();\r\n this.message = null;\r\n this.progress = null;\r\n }\r\n\r\n ViewMedicalRecord() {\r\n this.viewMedicalRecord = true;\r\n this.getPatMedicalRecords();\r\n }\r\n\r\n upload(patFile) {\r\n if (patFile.length === 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of patFile) {\r\n // This limit the file size to 10 Mb.\r\n if (file.size * 0.00000095367432 > 10) {\r\n this.notifyService.showWarning(\"Error\", \"File size should be less than 10 MB.\");\r\n return;\r\n }\r\n let fileExtension = file.name.split('.').pop().toLowerCase();\r\n var acceptedFileFormat = [\"jpg\", \"png\", \"doc\", \"docx\", \"pdf\"];\r\n if (!acceptedFileFormat.includes(fileExtension)) {\r\n this.notifyService.showWarning(\"Unsupported file format\", \"Error\");\r\n return;\r\n }\r\n formData.append(file.name, file);\r\n }\r\n const uploadReq = new HttpRequest('POST', `api/Patient/UploadFile/`, formData, {\r\n reportProgress: true,\r\n });\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n });\r\n }\r\n\r\n UploadRecord(form: NgForm) {\r\n if (form.invalid) {\r\n this.notifyService.showError(\"Sorry\", \"Please fill all required fields\");\r\n return;\r\n }\r\n this.patMedicalRecord.PatientId = this.token.PatientIdentifier;\r\n this.patMedicalRecord.UploadedBy = this.token.PatientIdentifier;\r\n\r\n if (this.selectedPatId == this.patInfo.PatientId) {\r\n this.patMedicalRecord.PatientName = this.patInfo.FirstName;\r\n }\r\n else {\r\n let selectedPatient = this.patFamilyList.find(x => x.FamilyMemberId == this.selectedPatId);\r\n this.patMedicalRecord.PatientName = selectedPatient.FirstName;\r\n this.patMedicalRecord.FamilyMemberId = selectedPatient.FamilyMemberId;\r\n }\r\n if (this.token.UserType === \"Patient\") {\r\n this.patMedicalRecord.PatientId = this.token.PatientIdentifier;\r\n }\r\n else {\r\n this.patMedicalRecord.PatientId = \"\";\r\n }\r\n this.patservice.addPatMedicalRecord(this.patMedicalRecord).subscribe(res => this.Success(res),\r\n res => this.ErrorAdd(res));\r\n }\r\n Success(res) {\r\n this.patMedicalRecord = new PatientMedicalRecord();\r\n this.message = null;\r\n this.progress = null;\r\n this.notifyService.showSuccess('', 'Record Added Successfully!');\r\n }\r\n ErrorAdd(res) {\r\n this.notifyService.showError(\"Error\", \"File not selected\")\r\n }\r\n\r\n getPatMedicalRecords() {\r\n this.patservice.getPatMedicalRecords(this.token.PatientIdentifier).subscribe(res => this.SuccessGetMedicalRecords(res),\r\n res => this.Error(res));\r\n }\r\n\r\n SuccessGetMedicalRecords(res) {\r\n this.medicalRecordList = res;\r\n for (var i = 0; i < this.medicalRecordList.length; i++) {\r\n if (this.medicalRecordList[i].UploadedBy == this.token.PatientIdentifier) {\r\n this.medicalRecordList[i].UploadedBy = \"Self\";\r\n }\r\n else {\r\n this.medicalRecordList[i].UploadedBy = \"Hospital\";\r\n }\r\n }\r\n this.collection = { count: this.medicalRecordList.length, data: [] }\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n MedicalRecordId: this.medicalRecordList[i].MedicalRecordId,\r\n PatientId: this.medicalRecordList[i].PatientId,\r\n PatientName: this.medicalRecordList[i].PatientName,\r\n TestReportType: this.medicalRecordList[i].TestReportType,\r\n FileName: this.medicalRecordList[i].FileName,\r\n FilePath: this.medicalRecordList[i].FilePath,\r\n FileExtension: this.medicalRecordList[i].FileExtension,\r\n UploadedBy: this.medicalRecordList[i].UploadedBy\r\n });\r\n }\r\n\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n ViewFile(filePath, fileExt, fileName) {\r\n this.showView = true;\r\n this.title = fileName.split('.').slice(0, -1).join('.');\r\n this.fileName = fileName;\r\n this.filePath = filePath;\r\n this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.filePath)\r\n this.fileExtension = fileExt;\r\n if (\r\n this.fileExtension == \"jpeg\" ||\r\n this.fileExtension == \"JPEG\" ||\r\n this.fileExtension == \"png\" ||\r\n this.fileExtension == \"PNG\" ||\r\n this.fileExtension == \"JPG\" ||\r\n this.fileExtension == \"jpg\"\r\n ) {\r\n this.Filetype = \"image\";\r\n }\r\n if (this.fileExtension == \"pdf\" || this.fileExtension == \"PDF\") {\r\n this.Filetype = \"pdf\";\r\n }\r\n if (\r\n this.fileExtension == \"docx\" ||\r\n this.fileExtension == \"DOCX\" ||\r\n this.fileExtension == \"DOC\" ||\r\n this.fileExtension == \"doc\"\r\n ) {\r\n this.Filetype = \"docfile\";\r\n }\r\n }\r\n\r\n hide() {\r\n this.showView = false;\r\n }\r\n\r\n GetPatientName() {\r\n //var id = this.token.PatientIdentifier;\r\n this.patservice.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(\r\n (res) => {\r\n this.patInfo = res;\r\n this.patData.push(this.patInfo);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n GetFamilyDetail() {\r\n if (this.token.PatientIdentifier != null) {\r\n // this.visitObj.HospitalId = this.hospitalId; \r\n let patId = this.token.PatientIdentifier;\r\n this.patservice.getFamilyList(patId)\r\n .subscribe(res => this.SuccessgetFamily(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n\r\n SuccessgetFamily(res) {\r\n this.patFamilyList = res;\r\n }\r\n\r\n DeleteRecord(recordId) {\r\n this.patservice.deletePatMedicalRecord(recordId).subscribe(res => this.SuccessDelete(res),\r\n res => this.ErrorDelete(res));\r\n }\r\n\r\n SuccessDelete(res) {\r\n this.getPatMedicalRecords();\r\n this.notifyService.showSuccess('', 'Successfully Deleted!');\r\n }\r\n\r\n ErrorDelete(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\");\r\n }\r\n\r\n}\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n   Payment Method\r\n
\r\n

Amount to be paid for this appointment:

\r\n

Please select payment method below to proceed.

\r\n
\r\n
\r\n
\r\n

\r\n Esewa\r\n\r\n

\r\n \r\n Click to make payment via your Esewa account\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n Khalti\r\n\r\n

\r\n \r\n Click to make payment via your Khalti account\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n Debit/Credit/Prepaid Cards\r\n\r\n

\r\n \r\n Click to make payment by your Card (Debit/Credit/Prepaid)\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n

\r\n Connect IPS\r\n\r\n

\r\n \r\n Click to make payment via Connect IPS\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n

\r\n\r\n\r\n

\r\n \r\n Pay By Visiting In Hospital\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n

\r\n Copyright © 2020 Danphe Telehealth\r\n

\r\n
\r\n
\r\n
    \r\n
  • \r\n
  • \r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n

\r\n Powered by Imark\r\n

\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component } from '@angular/core'\r\nimport { Global } from '../../app.global';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { config } from 'rxjs';\r\n\r\nimport * as KhaltiCheckout from 'khalti-web'\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { Visit } from '../../models/visit/visit.model';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PaymentMessageComponent } from '../../PaymentMessage/app.paymentmessage.component';\r\nimport * as moment from 'moment';\r\nimport { environment } from '../../../environments/environment';\r\n// import { tokenName } from '@angular/compiler';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\n\r\n@Component({\r\n templateUrl: \"./app.paymentselection.html\"\r\n})\r\nexport class PaymentSelectionComponent {\r\n websiteUrl = environment.url;\r\n IsCardPayButtonDisabled: boolean = false;\r\n VisitId: string;\r\n charge: string;\r\n Visitpaydata: any;\r\n public hospitalId: string;\r\n public docId: string;\r\n public visitInfo: Visit = new Visit();\r\n public showpaybyVisiting: boolean = false;\r\n constructor(public routing: Router, private route: ActivatedRoute,\r\n public hospitalService: HospitalService,\r\n public patService: PatientService, public alertService: AlertService, private dialog: MatDialog, private authService: AuthenticationService) {\r\n this.hospitalId = this.hospitalService.HospitalId;\r\n this.VisitId = this.route.snapshot.queryParamMap.get('vid');\r\n this.docId = this.route.snapshot.queryParamMap.get('id1');\r\n this.GetHospitalIdAndVisitIdFromLocalStorage();\r\n this.PaymentCharge();\r\n }\r\n\r\n paidstatus() {\r\n this.visitInfo.VisitId = this.VisitId;\r\n this.patService.updatePaidStatus(this.VisitId).subscribe(data => {\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n PaymentCharge() {\r\n this.patService.getPaymentCharge(this.VisitId ? this.VisitId : this.patService.VisitId).subscribe(res => {\r\n this.Visitpaydata = res\r\n this.charge = this.Visitpaydata.Charge;\r\n if (this.Visitpaydata.VisitType == \"Online Appointment\") {\r\n this.showpaybyVisiting = true;\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n\r\n //for client side integration of Khalti wallet\r\n public PayThroughKhalti() {\r\n\r\n const khaltiConfig = {\r\n // replace the publicKey with yours\r\n publicKey: environment.khalti_key,\r\n productIdentity: this.VisitId,\r\n productName: \"Telemed\",\r\n productUrl: environment.url,\r\n eventHandler: {\r\n onSuccess(payload) {\r\n console.log(payload);\r\n\r\n // call our Khalti Success Api to save the transaction\r\n window.location.href = `${window.origin}/Payment/KhaltiSuccess` +\r\n `?token=${payload.token}` +\r\n `&amount=${payload.amount}` +\r\n `&product_identity=${payload.product_identity}` +\r\n `&mobile=${payload.mobile}`;\r\n\r\n },\r\n onError(error) {\r\n // call our Khalti Success Api to save the transaction\r\n window.location.href = `${window.origin}/Payment/KhaltiFailure`\r\n },\r\n onClose() {\r\n // call our Khalti Success Api to save the transaction\r\n window.location.href = `${window.origin}/Payment/KhaltiFailure`\r\n }\r\n },\r\n paymentPreference: [\"KHALTI\"]\r\n\r\n }\r\n\r\n const checkout = new KhaltiCheckout(khaltiConfig);\r\n checkout.show({ amount: parseInt(this.charge) * 100 }); // amt in paisa\r\n }\r\n\r\n public someFunction($event) {\r\n console.log($event);\r\n }\r\n public PayThroughNabil() {\r\n this.IsCardPayButtonDisabled = true;\r\n this.SaveHospitalIdAndVisitIdInLocalStorage(this.hospitalId, this.VisitId);\r\n const formData = new FormData();\r\n formData.append(\"visitId\", this.VisitId);\r\n fetch('/Payment/NabilCard', {\r\n method: 'POST',\r\n headers: new Headers({ 'Authorization': 'Bearer ' + sessionStorage.getItem(\"jwtToken\") }),\r\n body: formData\r\n })\r\n .then(response => {\r\n if (response.status == 200) {\r\n return response.text();\r\n }\r\n else if (response.status == 400) {\r\n this.IsCardPayButtonDisabled = false;\r\n this.dialog.open(PaymentMessageComponent, { data: { message: \"Payment through Card Failed.\", method: \"Card\", status: \"failure\" } });\r\n }\r\n })\r\n .then(compassPlusURL => {\r\n // send the User to Nabil PG to enter Card Details and Credentials\r\n if (compassPlusURL != undefined) {\r\n window.location.href = compassPlusURL;\r\n }\r\n });\r\n }\r\n\r\n public PayThroughCreditCard() {\r\n\r\n }\r\n\r\n public PayThroughEsewa() {\r\n this.SaveHospitalIdAndVisitIdInLocalStorage(this.hospitalId, this.VisitId);\r\n let path = \"https://esewa.com.np/epay/main\";\r\n let params = {\r\n amt: parseInt(this.charge),\r\n psc: 0,\r\n pdc: 0,\r\n txAmt: 0,\r\n tAmt: parseInt(this.charge),\r\n pid: this.VisitId,\r\n scd: \"NP-ES-IMARK\",\r\n su: `${window.location.origin}/Payment/EsewaSuccess`,\r\n fu: `${window.location.origin}/Payment/EsewaFailure`\r\n }\r\n\r\n\r\n let form = document.createElement(\"form\");\r\n form.setAttribute(\"method\", \"POST\");\r\n form.setAttribute(\"action\", path);\r\n\r\n for (let key in params) {\r\n let hiddenField = document.createElement(\"input\");\r\n hiddenField.setAttribute(\"type\", \"hidden\");\r\n hiddenField.setAttribute(\"name\", key);\r\n hiddenField.setAttribute(\"value\", params[key]);\r\n form.appendChild(hiddenField);\r\n }\r\n\r\n document.body.appendChild(form);\r\n form.submit();\r\n }\r\n\r\n public async PayThroughConnectIPS() {\r\n this.SaveHospitalIdAndVisitIdInLocalStorage(this.hospitalId, this.VisitId);\r\n let path = \"https://uat.connectips.com:7443/connectipswebgw/loginpage\";\r\n\r\n //let path = '/Payment/Foo';\r\n\r\n let TXNID = await this.GetConnetIPSTXNID();\r\n let params = {\r\n MERCHANTID: '497',\r\n APPID: 'MER-497-APP-1',\r\n APPNAME: 'iMark',\r\n TXNID: TXNID, // this.VisitId, since GUID of visitID exceeds 20 character length required by connectIPS\r\n TXNDATE: moment().format('DD-MM-YYYY'),\r\n TXNCRNCY: 'NPR',\r\n TXNAMT: parseInt(this.charge) * 100, //Transaction amount in paisa.\r\n REFERENCEID: TXNID,\r\n REMARKS: 'test payment Imark',\r\n PARTICULARS: 'test payment Imark',\r\n TOKEN: ''\r\n };\r\n\r\n let connectIPSForm = document.createElement(\"form\");\r\n connectIPSForm.setAttribute(\"action\", path);\r\n connectIPSForm.setAttribute(\"method\", \"post\");\r\n\r\n for (let key in params) {\r\n let hiddenInputElement = document.createElement(\"input\");\r\n hiddenInputElement.setAttribute(\"type\", \"hidden\");\r\n hiddenInputElement.setAttribute(\"name\", key);\r\n hiddenInputElement.setAttribute(\"value\", params[key]);\r\n connectIPSForm.appendChild(hiddenInputElement);\r\n }\r\n document.body.appendChild(connectIPSForm);\r\n\r\n let formData = new FormData(connectIPSForm);\r\n\r\n let transactionDetailString = 'MERCHANTID=' + formData.get('MERCHANTID') + ',APPID=' + formData.get('APPID') + ',APPNAME='\r\n + formData.get('APPNAME') + ',TXNID=' + formData.get('TXNID') + ',TXNDATE=' + formData.get('TXNDATE')\r\n + ',TXNCRNCY=' + formData.get('TXNCRNCY') + ',TXNAMT=' + formData.get('TXNAMT') + ',REFERENCEID='\r\n + formData.get('REFERENCEID') + ',REMARKS=' + formData.get('REMARKS') + ',PARTICULARS='\r\n + formData.get('PARTICULARS') + ',TOKEN=TOKEN';\r\n\r\n\r\n fetch(`/Payment/GetConnetIPSToken?input=${transactionDetailString}`, {\r\n method: 'GET',\r\n headers: new Headers({ 'Authorization': 'Bearer ' + sessionStorage.getItem(\"jwtToken\") })\r\n })\r\n .then(res => {\r\n if (res.status == 200) {\r\n return res.text();\r\n }\r\n else if (res.status == 400 || res.status == 500) {\r\n this.dialog.open(PaymentMessageComponent, { data: { message: \"Payment through Connect IPS Failed.\", method: \"Card\", status: \"failure\" } });\r\n }\r\n })\r\n .then(token => {\r\n let inputToken: any = connectIPSForm.elements.namedItem('TOKEN');\r\n inputToken.value = token;\r\n connectIPSForm.submit();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.dialog.open(PaymentMessageComponent, { data: { message: \"Payment through Connect IPS Failed.\", method: \"Card\", status: \"failure\" } });\r\n });\r\n\r\n }\r\n\r\n public MyBookList() {\r\n this.routing.navigate(['/PatBookList'], { queryParams: { id: this.hospitalId } });\r\n\r\n }\r\n\r\n public MyPaidBooking() {\r\n this.routing.navigate(['/PatPaidBookingList'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n public BookNewVisit() {\r\n this.routing.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n public GetHospitalIdAndVisitIdFromLocalStorage(): void {\r\n if (this.hospitalId == null) {\r\n this.hospitalId = localStorage.getItem(\"hospitalId\");\r\n localStorage.removeItem(\"hospitalId\");\r\n }\r\n if (this.VisitId == null) {\r\n this.VisitId = localStorage.getItem(\"visitId\");\r\n localStorage.removeItem(\"visitId\");\r\n }\r\n }\r\n\r\n public GetConnetIPSTXNID(): Promise {\r\n return fetch(`/Payment/GetTXNIDForVisit?visitId=${this.VisitId}`, {\r\n method: 'GET',\r\n headers: new Headers({ 'Authorization': 'Bearer ' + sessionStorage.getItem(\"jwtToken\") })\r\n })\r\n .then(res => res.text());\r\n }\r\n\r\n public SaveHospitalIdAndVisitIdInLocalStorage(hospitalId: string, visitId: string): void {\r\n // save hospitalId and visitId in local storage to retrieve when\r\n // angular app is reloaded after payment\r\n localStorage.setItem(\"visitId\", visitId);\r\n localStorage.setItem(\"hospitalId\", hospitalId);\r\n }\r\n\r\n\r\n //public foo() {\r\n // let amount = 100;\r\n // let txnid = '00008';\r\n // let paymentMetod = 'connectIPS';\r\n // fetch(`https://imarkpaymentgate&amout=${amount}?txid=${txnid}?method=${paymentMetod}`)\r\n // .then(res => {\r\n // var form = res.form;\r\n // form.submit();\r\n // })\r\n //}\r\n\r\n paybyVisiting() {\r\n if (this.authService.userType == 'Admin') {\r\n this.routing.navigate(['/adminpatlist']);\r\n }\r\n else {\r\n this.routing.navigate(['/PatHistory']);\r\n }\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core'\r\nimport { Global } from '../../app.global';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { Visit } from '../../models/visit/visit.model';\r\n\r\n@Component({\r\n templateUrl: \"./app.paythroughcreditcard.html\"\r\n})\r\nexport class PayThroughCreditCardComponent {\r\n VisitId: any;\r\n public visitInfo: Visit = new Visit();\r\n constructor(public routing: Router, private route: ActivatedRoute, private alertService: AlertService,\r\n private notifyService: NotificationService, public patService: PatientService) {\r\n this.VisitId = this.route.snapshot.queryParamMap.get('id');\r\n }\r\n paidstatus() {\r\n this.visitInfo.VisitId = this.VisitId;\r\n this.patService.updatePaidStatus(this.VisitId).subscribe(data => {\r\n },\r\n error => {\r\n });\r\n }\r\n Submit() {\r\n this.paidstatus();\r\n console.log(\"I am on waiting list\");\r\n this.notifyService.showInfo(\"Please, wait for your turn doctor in waiting room\", \"Payment success !!\");\r\n this.routing.navigate(['/WaitingRoom'], { queryParams: { id: this.VisitId } });\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
    \r\n
  • Company
  • \r\n
  • Payment Id3456765432
  • \r\n
  • Description9840040040
  • \r\n
  • Amount100 NPR
  • \r\n
\r\n

\r\n To pay for the order, enter your card details.\r\n Data communication is secured by TLS protocol.\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n        \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n","\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Patient  |  Update Your Profile.
\r\n
Patient  |  Update Your Family Details.
\r\n
Patient  |  Update {{patName}} Profile.
\r\n
\r\n

Fields with * are required.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Male   \r\n Female  \r\n Other  \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNRelationshipFull NameAge/GenderDate of BirthContact NumberEmailBlood GroupAddressActions
{{i+1}}{{family.Relationship}}{{family.FullName}}{{family.Age}}/{{family.Gender}}{{family.DateOfBirth}}{{family.ContactNumber}}{{family.Email}}{{family.BloodGroup}}{{family.Address}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Male   \r\n Female  \r\n Other  \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n   \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Add Family Details
\r\n
Update Family Details
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Male   \r\n Female  \r\n Other  \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
","import { Component, ChangeDetectorRef } from '@angular/core'\r\nimport { Patient } from '../../models/patient/patient.model';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from '@angular/forms';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { HospitalService } from '../../services/hospital/hospital.service';\r\nimport * as moment from 'moment/moment';\r\nimport { Global } from '../../app.global';\r\nimport { PatientFamily } from 'src/app/models/patient/Pat-family.model';\r\n@Component({\r\n selector: 'patient-update-profile',\r\n templateUrl: './app.patient_updateprofile.html'\r\n})\r\nexport class PatientUpdateProfileComponent {\r\n public updatePat: boolean;\r\n public patInfo: Patient = new Patient();\r\n public today = new Date();\r\n public patList: Array = new Array();\r\n loading = false;\r\n public pat: any;\r\n public token: any;\r\n public hospitalId: any;\r\n patientUpdateForm: FormGroup;\r\n bsValue = new Date();\r\n isPatEditor = false;\r\n patId: any;\r\n patName: string;\r\n public hospitalIdentifier: string;\r\n public changesSavedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public isPersonalDetails: boolean = false;\r\n public addFamilyDetails: boolean = false;\r\n public relation: any;\r\n public familyList: PatientFamily = new PatientFamily();\r\n public familyInfo: Array = new Array();\r\n public collection = { count: 0, data: [] };\r\n public familyDetails: any;\r\n Relationship = [\r\n { id: 1, name: \"Father\" },\r\n { id: 2, name: \"Mother\" },\r\n { id: 3, name: \"Brother\" },\r\n { id: 4, name: \"Sister\" },\r\n { id: 5, name: \"Uncle\" },\r\n { id: 6, name: \"Aunty\" },\r\n { id: 7, name: \"Friend\" },\r\n { id: 8, name: \"Grandfather\" },\r\n { id: 9, name: \"Grandmother\" },\r\n { id: 10, name: \"Other\" }\r\n ];\r\n\r\n BloodGroup = [\r\n { id: 1, name: \"A+\" },\r\n { id: 2, name: \"A-\" },\r\n { id: 3, name: \"B+\" },\r\n { id: 4, name: \"B-\" },\r\n { id: 5, name: \"AB+\" },\r\n { id: 6, name: \"AB-\" },\r\n { id: 7, name: \"O+\" },\r\n { id: 8, name: \"O-\" }\r\n ];\r\n public updateFamilyDetails: boolean = false;\r\n familyListForm: FormGroup;\r\n constructor(public patservice: PatientService, public alertService: AlertService, private route: ActivatedRoute,\r\n public hospitalService: HospitalService,\r\n public routing: Router, private authenticationService: AuthenticationService, private datePipe: DatePipe,\r\n private formBuilder: FormBuilder, private notifyService: NotificationService, public global: Global, public changeDetector: ChangeDetectorRef) {\r\n this.token = this.authenticationService.currentUserValue;\r\n if (this.token.UserType !== \"Admin\") {\r\n this.GetPatient();\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n this.patInfo.DateOfBirth = moment().format('MM-DD-YYYY');\r\n }\r\n this.showPersonalDetails();\r\n }\r\n\r\n ngOnInit() {\r\n this.familyListForm = this.formBuilder.group({\r\n Relationship: ['', [Validators.required]],\r\n ContactNumber: ['', [Validators.required, Validators.pattern(\"^((\\\\+91-?)|0)?[0-9]{10}$\")]],\r\n FirstName: ['', [Validators.required]],\r\n LastName: ['', [Validators.required]],\r\n MiddleName: [''],\r\n DOB: ['', [Validators.required]],\r\n Email: [''],\r\n Gender: ['', [Validators.required]],\r\n BloodGroup: [''],\r\n Address: ['']\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n GetPatientList() {\r\n this.patservice.getPatientList().subscribe(res => {\r\n this.patList = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n GetPatient() {\r\n\r\n //var id = this.token.PatientIdentifier;\r\n if (this.token.UserType !== \"Admin\") {\r\n this.patId = this.token.PatientIdentifier;\r\n }\r\n\r\n this.patservice.getPatient(this.patId,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n // this.patInfo.DateOfBirth = this.datePipe.transform(res.DateOfBirth, 'yyyy-MM-dd');\r\n //this.bsValue =this.patInfo.DateOfBirth;\r\n if (this.patInfo.DateOfBirth != null) {\r\n this.patInfo.DateOfBirth = moment(res.DateOfBirth).format('MM-DD-YYYY');\r\n }\r\n else {\r\n this.patInfo.DateOfBirth = moment().format('MM-DD-YYYY');\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n UpdatePatProfile(form: NgForm) {\r\n\r\n var validation = this.checkInputValidity();\r\n if (validation.failed) {\r\n this.notifyService.showError(validation.errorMessages, \"Invalid Input\");\r\n return;\r\n }\r\n\r\n if (this.patInfo.ContactNumber == \"\") {\r\n this.notifyService.showError(\"\", \"Phone Number is required\");\r\n return;\r\n }\r\n if (form.invalid) {\r\n this.notifyService.showError(\"\", \"Please fill up the required field\");\r\n return;\r\n }\r\n const momentDate = new Date(this.patInfo.DateOfBirth);\r\n if (this.token.UserType === \"Admin\") {\r\n this.patInfo.AdminId = this.token.unique_name;\r\n }\r\n else {\r\n this.patInfo.AdminId = \"\";\r\n }\r\n\r\n this.patInfo.DateOfBirth = moment(momentDate).format(\"YYYY/MM/DD\");// converted gmtdate to moment date\r\n //this.patInfo.IdentityUserId =this.token.unique_name;\r\n this.patInfo.HospitalIdentifier = this.hospitalIdentifier;\r\n this.patservice.updatePatient(this.patInfo).subscribe(data => {\r\n this.alertService.success('Updated successful', true);\r\n this.patInfo.PatientId = this.token.PatientIdentifier;;\r\n this.updatePat = false;\r\n if (this.token.UserType === \"Admin\") {\r\n this.routing.navigate(['/adminpatlist']);\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n else {\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n updatepatient() {\r\n\r\n\r\n var validation = this.checkInputValidity();\r\n if (validation.failed) {\r\n this.notifyService.showError(validation.errorMessages, \"Invalid Input\");\r\n return;\r\n }\r\n\r\n const momentDate = new Date(this.patInfo.DateOfBirth);\r\n if (this.token.UserType === \"Admin\") {\r\n this.patInfo.AdminId = this.token.unique_name;\r\n }\r\n\r\n\r\n this.patInfo.DateOfBirth = moment(momentDate).format(\"YYYY/MM/DD\");// converted gmtdate to moment date\r\n //this.patInfo.IdentityUserId =this.token.unique_name;\r\n this.patInfo.HospitalIdentifier = this.hospitalIdentifier;\r\n\r\n this.patservice.updatePatient(this.patInfo).subscribe(data => {\r\n this.alertService.success('Updated successful', true);\r\n if (this.token.UserType === \"Admin\") {\r\n this.routing.navigate(['/adminpatlist']);\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n }\r\n else {\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n\r\n private checkInputValidity() {\r\n\r\n var validation = { failed: false, errorMessages: [] };\r\n\r\n var namePattern = /^[\\w'\\-,.][^0-9_!¡?÷?¿/\\\\+=@#$%ˆ&*(){}|~<>;:[\\]]{2,}$/;\r\n if (namePattern.test(this.patInfo.FirstName) == false) {\r\n validation.errorMessages.push(\"\\nFirstName is not valid\");\r\n validation.failed = true;\r\n }\r\n\r\n if (namePattern.test(this.patInfo.LastName) == false) {\r\n validation.errorMessages.push(\"\\nLastName is not valid\");\r\n validation.failed = true;\r\n }\r\n\r\n if (this.patInfo.MiddleName) {\r\n if (namePattern.test(this.patInfo.MiddleName) == false) {\r\n validation.errorMessages.push(\"\\nMiddleName is not valid\");\r\n validation.failed = true;\r\n }\r\n }\r\n\r\n if (this.patInfo.MailingAddress) {\r\n var emailPattern = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\r\n if (emailPattern.test(this.patInfo.MailingAddress) == false) {\r\n validation.errorMessages.push(\"\\nEmail is not valid\");\r\n validation.failed = true;\r\n }\r\n }\r\n return validation;\r\n }\r\n\r\n public BackDashBoard() {\r\n this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n }\r\n editAdminPatient(pat: Patient, isPat: boolean, hospital: string) {\r\n this.isPatEditor = isPat;\r\n this.patId = pat.PatientId;\r\n this.patName = pat.FullName;\r\n this.hospitalIdentifier = hospital;\r\n this.GetPatient();\r\n\r\n return this.patId;\r\n }\r\n cancel() {\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n\r\n showPersonalDetails() {\r\n this.isPersonalDetails = true;\r\n }\r\n\r\n showFamilyList() {\r\n this.isPersonalDetails = false;\r\n this.getFamilyList();\r\n }\r\n\r\n AddFamilyDetails() {\r\n this.addFamilyDetails = true;\r\n this.updateFamilyDetails = false;\r\n }\r\n\r\n cleardata() {\r\n this.familyList = new PatientFamily();\r\n this.addFamilyDetails = false;\r\n this.getFamilyList();\r\n }\r\n\r\n AddFamilyList(form) {\r\n\r\n if (form.invalid) {\r\n if (form.controls.Relationship.invalid) {\r\n this.notifyService.showError(\"\", \"Relationship is required\");\r\n }\r\n if (form.controls.ContactNumber.invalid) {\r\n this.notifyService.showError(\"\", \"Phone number is required and should be 10 digits\");\r\n }\r\n if (form.controls.FirstName.invalid) {\r\n this.notifyService.showError(\"\", \"First Name is required\");\r\n }\r\n if (form.controls.LastName.invalid) {\r\n this.notifyService.showError(\"\", \"Last Name is required\");\r\n }\r\n if (form.controls.DOB.invalid) {\r\n this.notifyService.showError(\"\", \"Date of Birth is required\");\r\n }\r\n if (form.controls.Gender.invalid) {\r\n this.notifyService.showError(\"\", \"Gender is required\");\r\n }\r\n return;\r\n }\r\n this.familyList.PatientId = this.token.PatientIdentifier;\r\n const momentDate = new Date(this.familyList.DateOfBirth);\r\n this.familyList.DateOfBirth = moment(momentDate).format(\"YYYY/MM/DD\");// converted gmtdate to moment date\r\n this.patservice.addFamilyList(this.familyList).subscribe(res => this.Success(res),\r\n res => this.ErrorAdd(res));\r\n }\r\n Success(res) {\r\n this.familyList = new PatientFamily();\r\n this.notifyService.showSuccess('', 'Information Added Successfully!');\r\n this.addFamilyDetails = false;\r\n this.getFamilyList();\r\n\r\n }\r\n ErrorAdd(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n getFamilyList() {\r\n this.patservice.getFamilyList(this.token.PatientIdentifier).subscribe(res => this.SuccessGetFamilyList(res),\r\n res => this.Error(res));\r\n }\r\n\r\n SuccessGetFamilyList(res) {\r\n\r\n if (res != null) {\r\n this.familyInfo = res;\r\n this.collection = { count: this.familyInfo.length, data: [] }\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n FamilyMemberId: this.familyInfo[i].FamilyMemberId,\r\n PatientId: this.familyInfo[i].PatientId,\r\n Relationship: this.familyInfo[i].Relationship,\r\n FirstName: this.familyInfo[i].FirstName,\r\n MiddleName: this.familyInfo[i].MiddleName,\r\n LastName: this.familyInfo[i].LastName,\r\n FullName: `${this.familyInfo[i].FirstName} ${this.familyInfo[i].MiddleName ? this.familyInfo[i].MiddleName : \"\"} ${this.familyInfo[i].LastName}`,\r\n Age: moment().diff(this.familyInfo[i].DateOfBirth, 'years'),\r\n Gender: this.familyInfo[i].Gender,\r\n DateOfBirth: moment(this.familyInfo[i].DateOfBirth).format('L'),\r\n ContactNumber: this.familyInfo[i].ContactNumber,\r\n Email: this.familyInfo[i].Email,\r\n BloodGroup: this.familyInfo[i].BloodGroup,\r\n Address: this.familyInfo[i].Address\r\n }\r\n );\r\n }\r\n this.familyDetails = this.collection.data;\r\n }\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n UpdateFamily(index) {\r\n this.addFamilyDetails = true;\r\n this.familyList = this.familyDetails[index];\r\n this.updateFamilyDetails = true;\r\n }\r\n\r\n UpdateFamilyList(form) {\r\n if (form.invalid) {\r\n if (form.controls.Relationship.invalid) {\r\n this.notifyService.showError(\"\", \"Relationship is required\");\r\n }\r\n if (form.controls.ContactNumber.invalid) {\r\n this.notifyService.showError(\"\", \"Phone number is required and should be 10 digits\");\r\n }\r\n if (form.controls.FirstName.invalid) {\r\n this.notifyService.showError(\"\", \"First Name is required\");\r\n }\r\n if (form.controls.LastName.invalid) {\r\n this.notifyService.showError(\"\", \"Last Name is required\");\r\n }\r\n if (form.controls.DOB.invalid) {\r\n this.notifyService.showError(\"\", \"Date of Birth is required\");\r\n }\r\n if (form.controls.Gender.invalid) {\r\n this.notifyService.showError(\"\", \"Gender is required\");\r\n }\r\n return;\r\n }\r\n this.familyList.PatientId = this.token.PatientIdentifier;\r\n const momentDate = new Date(this.familyList.DateOfBirth);\r\n this.familyList.DateOfBirth = moment(momentDate).format(\"YYYY/MM/DD\");// converted gmtdate to moment date\r\n this.patservice.updateFamilyList(this.familyList).subscribe(res => this.SuccessUpdate(res),\r\n res => this.ErrorUpdate(res));\r\n }\r\n SuccessUpdate(res) {\r\n this.familyList = new PatientFamily();\r\n this.notifyService.showSuccess('', 'Information Updated Successfully!');\r\n this.addFamilyDetails = false;\r\n this.updateFamilyDetails = false;\r\n this.getFamilyList();\r\n }\r\n ErrorUpdate(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n RemoveFamily(FamilyMemberId) {\r\n this.patservice.deleteFamilyList(FamilyMemberId).subscribe(res => this.SuccessDelete(res),\r\n res => this.ErrorDelete(res));\r\n\r\n }\r\n SuccessDelete(res) {\r\n this.notifyService.showSuccess(\"Success\", \"Deleted Successfully\");\r\n this.getFamilyList();\r\n }\r\n ErrorDelete(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\");\r\n }\r\n\r\n generateAge() {\r\n let dobYear = String(moment(this.patInfo.DateOfBirth).format(\"YYYY\"));\r\n if (dobYear > '1900') {\r\n this.patInfo.Age = String(moment().diff(moment(this.patInfo.DateOfBirth), 'years'));\r\n }\r\n }\r\n\r\n generateDOB() {\r\n //var curDate = new Date();\r\n this.patInfo.DateOfBirth = String(moment(this.today).subtract(this.patInfo.Age, 'year').format(\"MM/DD/YYYY\"));\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Hello {{patientName}}!

\r\n

\r\n Your call has been reached to the Doctor. Your Doctor will call you\r\n shortly,\r\n after \"1\" patient,\r\n 1\" class=\"counter\">after \"{{index}}\" patients,\r\n Please stay calm and wait for the doctor to respond. Meanwhile you can\r\n \r\n Learn and Certify Yourself\r\n \r\n or send message to your doctor below.\r\n

\r\n
\r\n \"slider-image\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Send Message to your Doctor\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Start your conversiation\r\n

\r\n
\r\n
\r\n
\r\n {{ msg.Message }}\r\n
\r\n
\r\n {{ msg.Message }}\r\n
\r\n
\r\n
\r\n      \r\n
\r\n \r\n
\r\n Chat message is required\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Your Step by Step\r\n Guide\r\n
\r\n
    \r\n
  • First update your profile
  • \r\n
  • Book appointment with available doctors
  • \r\n
  • Make payment for your appointment
  • \r\n
  • Proceed to Doctor's Room to start your appointment
  • \r\n
\r\n
\r\n \"slider-image\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Hello {{patientName}}! Your call has been reached to the Doctor. Your\r\n Doctor will call you\r\n shortly,\r\n after \"1\" patient,\r\n 1\" class=\"counter\">after \"{{index}}\" patients,\r\n Please stay calm and wait for the doctor to respond. Meanwhile you can\r\n \r\n Learn and Certify Yourself\r\n \r\n or send message to your doctor below.\r\n \r\n
\r\n

\r\n Your Step by Step Guide\r\n

\r\n
    \r\n
  • \r\n First of all update your profile from the Update Profile page.\r\n
  • \r\n
  • \r\n After that go to the Book Appointment to bookthe appointment for your\r\n doctor\r\n
  • \r\n
  • \r\n Go to the payment window to pay for your booking\r\n
  • \r\n
  • \r\n After the payment, you will be redirected to the waiting room. Please\r\n wait there until doctor respond\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n {{patientName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription, timer } from 'rxjs';\r\nimport { map, takeWhile } from 'rxjs/operators';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Global } from '../../app.global';\r\nimport { PatientService } from '../../services/patient/patient.service';\r\nimport { Visit } from '../../models/visit/visit.model';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { PatientDoc, Patient } from '../../models/patient/patient.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ChatService } from 'src/app/services/ChatNotification/chat-notification.service';\r\nimport ZoomMtgEmbedded from '@zoomus/websdk/embedded';\r\n@Component({\r\n //selector: 'app-root',\r\n templateUrl: './app.waitingroom.html', \r\n styleUrls: ['./app.waitingroom.css']\r\n})\r\nexport class WaitingRoom implements OnInit {\r\n public isCollapsed = false;\r\n timer1: any = timer(3000, 2000);\r\n public patientName: string;\r\n token: any;\r\n status: any;\r\n VisitId: any;\r\n HospitalId: any;\r\n public doctorId: string;\r\n public receiverId: string;\r\n public index: number;\r\n visitObj: Visit = new Visit();\r\n patients: Array = new Array();\r\n public patInfo: Patient = new Patient();\r\n patlist: any = null;\r\n loginVal: any;\r\n ChatForm: FormGroup;\r\n ChatMessages: Array = new Array();\r\n ChatReceivedMessages: Array = new Array();\r\n AllUserChats: any;\r\n docName: any;\r\n public doctor: Array = new Array();\r\n apiStatusDestroy = false;\r\n apiPatDocDestroy = false;\r\n redUrl: string;\r\n start = Date.now();\r\n istimer = \"\";\r\n patientWaitingRoomSubscription = new Subscription();\r\n public hideMeetingButton: boolean = false;\r\n public FamilyMemberName: string;\r\n constructor(\r\n public httpClient: HttpClient,\r\n private alertService: AlertService,\r\n private notifyService: NotificationService,\r\n patservice: PatientService,\r\n private route: ActivatedRoute,\r\n public docService: DoctorService,\r\n public routing: Router,\r\n private authenticationService: AuthenticationService,\r\n public formBuilder: FormBuilder,\r\n public global: Global,\r\n public patService: PatientService,\r\n public notificationService: ChatService,\r\n private ngZone: NgZone\r\n ) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.getPatientName();\r\n this.global.apiLogout = false;\r\n this.VisitId = this.route.snapshot.queryParamMap.get('vid');\r\n this.HospitalId = this.route.snapshot.queryParamMap.get('id');\r\n this.redUrl = this.route.snapshot.queryParamMap.get('redirectUrl');\r\n this.doctorId = this.route.snapshot.queryParamMap.get('did')\r\n this.initForm();\r\n this.notificationService.Connect();\r\n this.notificationService.EventChatMessage.subscribe(chatData => {\r\n this.OnChatUserChange();\r\n const chatMsg = { Name: chatData.Name, Message: chatData.Message, Class: 'receiver-msg' };\r\n this.ChatMessages.push(chatMsg);\r\n this.pushChatMsgUserwise(chatData.Name, chatMsg);\r\n });\r\n\r\n this.AddVisitToSingleton(this.VisitId)\r\n this.GetEntrytoDoctorRoom();\r\n this.GetDoc();\r\n\r\n }\r\n ngOnInit() {\r\n\r\n this.GetStatusByPatientId();\r\n\r\n\r\n }\r\n\r\n AddVisitToSingleton(visitId) {\r\n this.patService.postVisitToSingleton(visitId).subscribe(res =>\r\n this.SuccessPostToSingleton(res),\r\n res => this.Error(res));\r\n }\r\n\r\n SuccessPostToSingleton(res) {\r\n console.log(res);\r\n }\r\n private initForm() {\r\n this.ChatForm = this.formBuilder.group({\r\n chatMessage: ['', Validators.required]\r\n });\r\n }\r\n\r\n hasError(typeofvalidator: string, controlname: string): boolean {\r\n const control = this.ChatForm.controls[controlname];\r\n return control.hasError(typeofvalidator) && control.dirty;\r\n }\r\n\r\n GetEntrytoDoctorRoom() {\r\n\r\n this.patientWaitingRoomSubscription.add(this.timer1.pipe(\r\n takeWhile(x => this.apiStatusDestroy === false)\r\n ).subscribe(\r\n () => {\r\n console.log(this.redUrl);\r\n if (this.redUrl === \"PatientUrl\") {\r\n this.patService.getVisitFromWaitingRoom(this.VisitId).subscribe(res =>\r\n this.SuccessStatusVisitId(res),\r\n res => this.Error(res));\r\n }\r\n else if (this.redUrl === \"DoctorUrl\") {\r\n this.patService.getVisitFromWaitingRoom(this.VisitId).subscribe(res =>\r\n this.SuccessStatusVisitId(res),\r\n res => this.Error(res));\r\n }\r\n\r\n else {\r\n this.patService.getVisitFromWaitingRoom(this.VisitId).subscribe(res =>\r\n this.SuccessStatusVisitId(res),\r\n res => this.Error(res));\r\n }\r\n\r\n }\r\n ));\r\n\r\n\r\n }\r\n\r\n showZoomJoiningButton: boolean = false;\r\n SuccessStatusVisitId(res) {\r\n if(res){\r\n this.status = res;\r\n this.FamilyMemberName = res.FamilyMemberName;\r\n if (this.status != null) {\r\n console.log(this.status.Status);\r\n if (this.status.Status == \"ongoing\" && this.status.IsActive == true) {\r\n this.patService.VisitId = this.status.VisitId;\r\n // this.apiStatusDestroy = true;\r\n //this.routing.navigate(['/DoctorRoom'], { queryParams: { id: this.VisitId, did: this.doctorId } });\r\n this.showZoomJoiningButton = true;\r\n\r\n }\r\n else if (this.status.Status == \"initiated\" && this.status.IsActive == true) {\r\n // this.showZoomJoiningButton = true;\r\n this.apiStatusDestroy = false;\r\n var end = Date.now();\r\n var timeOut = end - this.start; //In miliseconds\r\n if (timeOut >= 900000) {\r\n this.WaitingTimeOut();\r\n }\r\n\r\n }\r\n else if (this.status.Status === \"completed\" || (this.status.Status === \"initiated\" && this.status.IsActive == false)) {\r\n this.apiStatusDestroy = true;\r\n this.showZoomJoiningButton = false;\r\n this.routing.navigate(['/PatDashboard']);\r\n window.location.reload();\r\n }\r\n else {\r\n this.apiStatusDestroy = true;\r\n }\r\n }\r\n else {\r\n this.apiStatusDestroy = true;\r\n }\r\n }else{\r\n this.apiStatusDestroy = true;\r\n this.showZoomJoiningButton = false;\r\n this.routing.navigate(['/PatDashboard']);\r\n window.location.reload();\r\n\r\n }\r\n\r\n }\r\n\r\n WaitingTimeOut() {\r\n this.routing.navigate(['/PatDashboard']);\r\n }\r\n\r\n GetStatusByPatientId() {\r\n this.patService.getStatusByPatientId(this.VisitId).subscribe(res =>\r\n this.SuccessResponse(res),\r\n res => this.Error(res));\r\n }\r\n SuccessResponse(res) {\r\n this.status = res;\r\n this.patientName = this.status.PatientName;\r\n if (this.VisitId == null) {\r\n var visitid = this.status.VisitId;\r\n this.patService.VisitId = this.status.VisitId;\r\n this.patService.getPatientByVisitId(visitid)\r\n .subscribe(response => this.SuccessPatientDetail(response, visitid),\r\n error => this.Error(error));\r\n }\r\n else {\r\n this.patService.getPatientByVisitId(this.VisitId)\r\n .subscribe(response => this.SuccessPatientDetail(response, this.VisitId),\r\n error => this.Error(error));\r\n }\r\n\r\n }\r\n SuccessPatientDetail(res, visitid) {\r\n this.visitObj = res;\r\n this.notifyService.showInfo(\"Please wait, Your Doctor will call you shortly \", \"Welcome to Waiting Room\")\r\n }\r\n\r\n GetPatientDoctorList() {\r\n this.patientWaitingRoomSubscription.add(this.timer1.pipe(\r\n takeWhile(x => this.apiPatDocDestroy === false)\r\n ).subscribe(\r\n () => {\r\n //this.timer1.subscribe(\r\n // () => {\r\n this.loginVal = this.authenticationService.loginValue;\r\n if (this.loginVal === \"patient\") {\r\n this.patService.getPatientDocList(this.doctorId)\r\n .subscribe(res => this.SuccessPatientList(res),\r\n res => this.Error(res))\r\n };\r\n }));\r\n }\r\n\r\n\r\n SuccessPatientList(res) {\r\n this.patients = res;\r\n this.index = this.patients.findIndex(x => x.VisitId === this.VisitId);\r\n this.apiPatDocDestroy = true;\r\n }\r\n\r\n Error(res) {\r\n console.log(res);\r\n }\r\n GetDoc() {\r\n this.docService.getDoctorName(this.doctorId).subscribe(res => this.Success(res),\r\n res => this.Error(res));\r\n }\r\n Success(res) {\r\n this.doctor = res;\r\n this.receiverId = res.IdentityUserId;\r\n this.docName = `${res.FirstName} ${res.MiddleName ? res.MiddleName : \"\"} ${res.LastName}`;\r\n\r\n }\r\n\r\n public getPatientName() {\r\n this.patService.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n SendChatMsg() {\r\n try {\r\n for (const i in this.ChatForm.controls) {\r\n this.ChatForm.controls[i].markAsDirty();\r\n this.ChatForm.controls[i].updateValueAndValidity();\r\n }\r\n\r\n if (this.ChatForm.valid) {\r\n const chatMsg = {\r\n SenderId: this.patInfo.IdentityUserId,\r\n ReceiverId: this.receiverId,\r\n Name: `${this.patInfo.FirstName} ${this.patInfo.MiddleName ? this.patInfo.MiddleName : \"\"} ${this.patInfo.LastName}`,\r\n Message: this.ChatForm.controls['chatMessage'].value\r\n };\r\n const chatmsgObj = { Name: 'Me', Message: chatMsg.Message, Class: 'sender-msg' };\r\n this.ChatMessages.push(chatmsgObj);\r\n\r\n this.notificationService.SendChatMessage(chatMsg);\r\n this.ChatForm.reset();\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n\r\n OnChatUserChange() {\r\n try {\r\n const selUser = this.ChatForm.controls['Id'].value;\r\n if (this.AllUserChats.hasOwnProperty(selUser)) {\r\n this.ChatMessages = this.AllUserChats[selUser].slice();\r\n this.ChatReceivedMessages = this.AllUserChats[selUser].slice();\r\n } else {\r\n this.ChatMessages = new Array();\r\n this.ChatReceivedMessages = new Array();\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n onChatEnter(event) {\r\n if (event.keyCode === 13) {\r\n this.SendChatMsg();\r\n }\r\n }\r\n pushChatMsgUserwise(user, messageObj) {\r\n try {\r\n if (!this.AllUserChats.hasOwnProperty(user)) {\r\n this.AllUserChats[user] = new Array();\r\n }\r\n this.AllUserChats[user].push(messageObj);\r\n } catch (e) { }\r\n }\r\n ngOnDestroy() {\r\n this.patientWaitingRoomSubscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n client = ZoomMtgEmbedded.createClient();\r\n // meetingNumber = \"2278567480\";\r\n // apiKey = \"OkIXXMhwSbaiZnvWsy_rVQ\";\r\n // apiSecret = \"tUmpngwqqL9KqHTDC8HmKghFBe41Er8k\";\r\n // password = \"i9iXuV\";\r\n getZoomSignature(): void{\r\n //call to pat and pass jitsi room name\r\n this.patService.getZoomSignature(this.doctorId).subscribe(\r\n (res) => this.startMeeting(res?.Results),\r\n (res) => console.log(res)\r\n )}\r\n\r\n startMeeting(signature): void {\r\n let meetingSDKElement = document.getElementById('meetingSDKElement');\r\n const [headerEncoded, payloadEncoded, jwtSignature] = signature.split('.');\r\n const payload = JSON.parse(atob(payloadEncoded));\r\n this.ngZone.runOutsideAngular(async () => {\r\n try {\r\n await this.client.init({ zoomAppRoot: meetingSDKElement, language: 'en-US' });\r\n await this.client.join({\r\n signature: signature,\r\n sdkKey: payload.appKey, // Fixed: Use apiKey instead of sdkKey\r\n meetingNumber: payload.mn,\r\n password: payload.password,\r\n userName: this.FamilyMemberName ? this.FamilyMemberName : this.patInfo.FirstName,\r\n tk: \"\",\r\n zak: \"\"\r\n });\r\n\r\n console.log('Joined successfully');\r\n this.hideMeetingButton = true;\r\n const endMeetingButton = document.querySelector('button[title=\"Leave\"]') as HTMLElement;\r\n endMeetingButton.style.display = 'none';\r\n this.client.on('connection-change', (status) => {\r\n console.log('Meeting status changed:', status);\r\n });\r\n \r\n } catch (error) {\r\n await this.client.leaveMeeting(); \r\n console.log('Left the meeting successfully');\r\n console.error(error);\r\n }\r\n });\r\n this.client.leaveMeeting\r\n }\r\n\r\n\r\n}\r\n","

Payment Message

\r\n
\r\n {{data.message}}\r\n
\r\n
\r\n {{data.message}}\r\n
\r\n The Transaction failure could be one of the following reasons\r\n
    \r\n
  • You might have entered wrong card number, expiry date or CVV code.
  • \r\n
  • Your card issuing bank declined the card processing. Please ask your bank to enable “Online Transaction” in your card.
  • \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n","import { Component, Input, Inject } from '@angular/core';\r\nimport { Global } from '../app.global';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'payment-message',\r\n templateUrl: './app.paymentmessage.html'\r\n})\r\n\r\n\r\nexport class PaymentMessageComponent {\r\n public message: string;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data : any) {\r\n\r\n }\r\n}\r\n","import { Component, ElementRef } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Global } from './app.global';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PaymentMessageComponent } from './PaymentMessage/app.paymentmessage.component';\r\nimport { IdToken } from './models/IdToken';\r\nimport { JwtHelper } from './models/JwtHelper';\r\nimport { DecodeTokenService } from './services/decodeTtoken.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.clinic.html'\r\n})\r\n\r\nexport class ClinicComponent {\r\n public token: any;\r\n public hospitalId: any;\r\n constructor(public router: Router,\r\n public dialog: MatDialog,\r\n public decodeToken: DecodeTokenService,\r\n public authService: AuthenticationService,\r\n private elementRef: ElementRef) {\r\n let token: string = this.elementRef.nativeElement.getAttribute('loginToken');\r\n if (token != null) {\r\n decodeToken.decodeToken(token);\r\n }\r\n let paymentMethod: string = this.elementRef.nativeElement.getAttribute('paymentMethod');\r\n let paymentStatus: string = this.elementRef.nativeElement.getAttribute('paymentStatus');\r\n\r\n this.authService.IsTokenValid.subscribe(() => {\r\n let dialogMessage: string = \"\";\r\n if (paymentStatus == \"success\") {\r\n dialogMessage = \"Payment through \" + paymentMethod + \" Successful.\";\r\n this.router.navigate(['/PatPaidBookingList']);\r\n this.dialog.open(PaymentMessageComponent, { data: { message: dialogMessage, method: paymentMethod, status: paymentStatus } });\r\n }\r\n else if (paymentStatus == \"failure\" || paymentStatus == \"cancel\") {\r\n if (paymentStatus == \"failure\") {\r\n dialogMessage = \"Payment through \" + paymentMethod + \" Failed.\";\r\n this.dialog.open(PaymentMessageComponent, { data: { message: dialogMessage, method: paymentMethod, status: paymentStatus } });\r\n }\r\n else if (paymentStatus == \"cancel\") {\r\n dialogMessage = \"Payment through \" + paymentMethod + \" Canceled.\";\r\n this.dialog.open(PaymentMessageComponent, { data: { message: dialogMessage, method: paymentMethod, status: paymentStatus } });\r\n }\r\n this.router.navigate(['/PatBookList']);\r\n this.dialog.open(PaymentMessageComponent, { data: { message: dialogMessage, method: paymentMethod, status: paymentStatus } });\r\n }\r\n else {\r\n //navigate to this route if token in local storage is valild\r\n //this.router.navigate(['/HospitalList']);\r\n }\r\n },\r\n );\r\n }\r\n\r\n}\r\n\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t
Report of : {{row.PatientName}}
Ref Doctor : {{row.DoctorName}}
\r\n\t\t
\r\n\t\t

Basic Information

\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
Patient Name : {{row.PatientName}}Age : {{row.Age}}Sex : {{row.Gender}}
Email : {{row.MailingAddress}}Mobile Number : {{row.ContactNumber}}NMC Number of Doctor: {{row.NMC}}
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tMedical Status\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
Fever : {{row.Fever| yesNoPipe}}Cough : {{row.Cough| yesNoPipe}}BreathingDifficulty : {{row.BreathingDifficulty| yesNoPipe}}
Tiredness : {{row.Tiredness| yesNoPipe}}Sore Throat : {{row.SoreThroat| yesNoPipe}}Bodyache : {{row.Bodyache| yesNoPipe}}
ChestPain : {{row.ChestPain| yesNoPipe}}Diarrhea : {{row.Diarrhea| yesNoPipe}}Heart Disease : {{row.HeartDisease| yesNoPipe}}
Diabetes : {{row.Diabetes| yesNoPipe}}Copd/Asthma : {{row.Copd| yesNoPipe}}Transplant : {{row.Transplant| yesNoPipe}}
Recent Travel : {{row.RecentTravel| yesNoPipe}}Cancer : {{row.Cancer| yesNoPipe}}Exposure to Covid patients : {{row.Exposure| yesNoPipe}}
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tAny Others Symptoms\r\n\t\t\t\t\t\t\t

{{row.AnyOtherSymptoms}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tOther Pertinent Information\r\n\t\t\t\t\t\t\t

{{row.OtherPertientInformation}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tTreatment Advice given by doctor\r\n\t\t\t\t\t\t\t

{{row.TreatmentAdvice}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tMedication given by doctor\r\n\t\t\t\t\t\t\t

{{row.Medication}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tFollowUp\r\n\t\t\t\t\t\t\t

{{row.FollowUp}}

\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tAny Others Symptoms\r\n\t\t\t\t\t\t\t

{{row.AnyOtherSymptoms}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tOther Pertinent Information\r\n\t\t\t\t\t\t\t

{{row.OtherPertientInformation}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tTreatment Advice given by doctor\r\n\t\t\t\t\t\t\t

{{row.TreatmentAdvice}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tMedication given by doctor\r\n\t\t\t\t\t\t\t

{{row.Medication}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tFollowUp\r\n\t\t\t\t\t\t\t

{{row.FollowUp}}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t
\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global } from './app.global';\r\nimport { Router } from '@angular/router';\r\nimport { timer } from 'rxjs';\r\nimport { PatientDoc ,Patient} from './models/patient/patient.model';\r\nimport { PatientService } from './services/patient/patient.service';\r\nimport * as moment from 'moment/moment'\r\n@Component({\r\n templateUrl: './app.finalreport.html'\r\n })\r\nexport class FinalReportComponent implements OnDestroy{\r\n patients: Array = new Array();\r\n patient:Patient = new Patient();\r\n pat:PatientDoc = new PatientDoc;\r\n public age: number;\r\n public IsDanpheCare = false;\r\n //timerpat: any = timer(this.global.TimerValue, this.global.TimerValue);\r\n public visitId: string;\r\n constructor(public httpClient: HttpClient,\r\n public patService: PatientService,\r\n public routing: Router,\r\n public global: Global)\r\n {\r\n if (this.patService.VisitId != null) {\r\n this.visitId = this.patService.VisitId;\r\n this.ShowReport(this.visitId);\r\n }\r\n }\r\n\r\n ShowReport(VisitId){\r\n this.patService.getFinalReportData(VisitId)\r\n .subscribe(res => this.Success(res),\r\n res => this.Error(res));\r\n }\r\n\r\n Success(res) {\r\n this.patients = res;\r\n this.patService.VisitId = null;\r\n this.patient.DateOfBirth = res[0].DateOfBirth;\r\n //this.CalculateAge();\r\n this.pat.Age= moment().diff(this.patient.DateOfBirth,'years');\r\n this.patients[0].Age = this.pat.Age;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.patService.VisitId = null;\r\n }\r\n Error(res) {\r\n }\r\n\r\n Print(){\r\n let popupWinindow;\r\n var printContents = document.getElementById(\"Report\").innerHTML;\r\n popupWinindow = window.open('', '_blank', 'width=600,height=700,scrollbars=no,menubar=no,toolbar=no,location=no,status=no,titlebar=no');\r\n popupWinindow.document.open();\r\n let documentContent = '';\r\n documentContent += '';\r\n documentContent += '';\r\n documentContent += '' + printContents + ''\r\n popupWinindow.document.write(documentContent);\r\n popupWinindow.document.close();\r\n }\r\n\r\n }\r\n","import { Patient, Doctor } from './app.model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Visit } from './models/visit/visit.model';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class Global {\r\n patientObj: Patient = null;\r\n doctorObj: Doctor = null;\r\n IsDoctor: boolean = false;\r\n DoctorId: string = null;\r\n HospitalId: string = null;\r\n DepartmentId: string = null;\r\n BookingTime: string = null;\r\n VisitDate: Date = null;\r\n ApiUrl: string = \"Home/\";\r\n config: any = null;\r\n TimerValue: number = 4000;\r\n apiLogout: boolean = false;\r\n constructor() {\r\n this.patientObj = new Patient();\r\n this.doctorObj = new Doctor();\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n

\r\n Hello!\r\n \r\n Who are you looking for?\r\n

\r\n \r\n
\r\n
\r\n

\r\n Hello!\r\n \r\n Who are you looking for?\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"{{list.HospitalName}}\"\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Search\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Select Department.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n Sorry! No Department Available For {{this.VisitType}} at the Moment.\r\n\r\n

\r\n
\r\n
\r\n \r\n
\r\n
","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HospitalService } from './services/hospital/hospital.service';\r\nimport { Hospital } from './models/hospital/hospital.model';\r\nimport { DoctorService } from './services/doctor/doctor.service';\r\nimport { Doctor } from './models/doctor/doctor.model';\r\nimport { Global } from './app.global';\r\nimport { PatientService } from './services/patient/patient.service';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { Patient } from './models/patient/patient.model';\r\nimport { AlertService } from './services/alert.service';\r\nimport { AutoLogoutService } from './services/autologout.service';\r\nimport { Departement } from './models/Department/app.department.model';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: \"./app.hospital.html\",\r\n styleUrls: [\"app.hospitalcomponent.css\"],\r\n\r\n})\r\nexport class HospitalComponent {\r\n public HospitalId: any;\r\n public doctordId: any;\r\n hospitalList: any;\r\n docHospitalList: Array;\r\n doctorList: Array = new Array();\r\n qualification: any;\r\n public searchText: any;\r\n isDoctor: boolean = false;\r\n isAdmin: boolean = false;\r\n doctorId: any;\r\n patientId: any;\r\n showModal: boolean;\r\n token: any;\r\n VisitType: any;\r\n public patInfo: Patient = new Patient();\r\n public showHospital: boolean = false;\r\n public isDoctorAvailable: boolean = true;\r\n public isOnlineAppointment: boolean = false;\r\n public deptList: Array = new Array();\r\n public deptId : string;\r\n\r\n constructor(public routing: Router,\r\n private route: ActivatedRoute,\r\n public global: Global, public patservice: PatientService, public authservice: AuthenticationService,\r\n public hospitalService: HospitalService, public alertService: AlertService,\r\n public docService: DoctorService) {\r\n this.token = this.authservice.currentUserValue;\r\n this.GetDepartmentList();\r\n this.GetHospitalList();\r\n this.getPatientName();\r\n this.VisitType = this.route.snapshot.queryParamMap.get('VisitType');\r\n this.checkVisitType();\r\n }\r\n\r\n public getPatientName() {\r\n if (this.route.snapshot.queryParamMap.get('routefrom') == \"admin\")\r\n this.patientId = this.patservice.PatientId;\r\n else\r\n this.patientId = this.token.PatientIdentifier;\r\n\r\n this.patservice.getPatient(this.patientId, this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n checkVisitType(){\r\n if(this.VisitType === \"Telemedicine\"){\r\n this.GetDoctorList();\r\n this.isOnlineAppointment = false\r\n }\r\n }\r\n \r\n GetDepartmentList() {\r\n this.docService.getDepartmentList().subscribe((res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.deptList = res?.Results;\r\n if(this.VisitType === \"Online Appointment\"){\r\n this.isOnlineAppointment = true;\r\n }\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n selectDepartment(DepartementId) {\r\n this.docService.getDoctorByDepartment(DepartementId).subscribe(res => {\r\n if (res.success && res.data) {\r\n this.getDoctorByDepartment(res.data),\r\n res => this.Error(res)\r\n }\r\n }\r\n );\r\n }\r\n getDoctorByDepartment(res){\r\n let doclist;\r\n doclist = res; \r\n this.doctorList = [];\r\n doclist.forEach(doc => {\r\n for (var i = 0; i < doc.AppointmentType.length; i++) {\r\n if (doc.AppointmentType === this.VisitType || doc.AppointmentType[i] === this.patservice._VisitType) {\r\n this.isDoctorAvailable = true;\r\n this.doctorList.push(doc);\r\n break;\r\n }\r\n else{\r\n this.alertService.error(\"No Doctor Found.\")\r\n }\r\n }\r\n });\r\n if (this.doctorList.length < 1) {\r\n this.isDoctorAvailable = false;\r\n }\r\n }\r\n\r\n GetHospitalList() {\r\n this.hospitalService.getHospitalList()\r\n .subscribe(res => this.SuccessGetHospitalList(res),\r\n res => this.Error(res));\r\n }\r\n SuccessGetHospitalList(res) {\r\n this.hospitalList = res;\r\n\r\n }\r\n GetDoctorList() {\r\n this.docService.getAvailableDoctorList()\r\n .subscribe(res => this.SuccessDoctor(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDoctor(res) {\r\n let doclist;\r\n doclist = res?.Results;\r\n doclist.forEach(doc => {\r\n for (var i = 0; i < doc.ConsultationType.length; i++) {\r\n if (doc.ConsultationType[i] == this.VisitType || doc.ConsultationType[i] == this.patservice._VisitType) {\r\n this.isDoctorAvailable = true;\r\n this.doctorList.push(doc);\r\n break;\r\n }\r\n }\r\n // doc.ConsultationType.forEach(element => {\r\n // if (element == this.patservice._VisitType)\r\n // {\r\n // this.doctorList.push(doc);\r\n // }\r\n // });\r\n });\r\n if (this.doctorList.length < 1) {\r\n this.isDoctorAvailable = false;\r\n }\r\n }\r\n Error(res) {\r\n\r\n }\r\n GoToHospital(id) {\r\n this.hospitalService.HospitalId = id;\r\n //this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalService.HospitalId } });\r\n this.routing.navigate(['/HospitalSpecificDoctorList'], { queryParams: { id: this.hospitalService.HospitalId, VisitType: this.VisitType } });\r\n // this.routing.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalService.HospitalId} });\r\n }\r\n GoToDoctor(id1, deptId) {\r\n this.doctorId = id1;\r\n this.deptId = deptId;\r\n if(this.isOnlineAppointment){\r\n this.routing.navigate(['/DocProfile'], { queryParams: { id1: this.doctorId, deptId: this.deptId, VisitType: this.VisitType } });\r\n }else{\r\n this.routing.navigate(['/DocProfile'], { queryParams: { id1: this.doctorId, VisitType: this.VisitType } });\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n

\r\n Hello!\r\n \r\n Select Doctor from here !!\r\n

\r\n
\r\n\r\n
\r\n

\r\n Hello!\r\n \r\n Select Doctor from here !!\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"{{list.HospitalName}}\"\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HospitalService } from './services/hospital/hospital.service';\r\nimport { Hospital } from './models/hospital/hospital.model';\r\nimport { DoctorService } from './services/doctor/doctor.service';\r\nimport { Doctor } from './models/doctor/doctor.model';\r\nimport { Global } from './app.global';\r\nimport { PatientService } from './services/patient/patient.service';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { Patient } from './models/patient/patient.model';\r\nimport { AlertService } from './services/alert.service';\r\nimport { AutoLogoutService } from './services/autologout.service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: \"./app.hospitalspecificdoclist.html\",\r\n})\r\nexport class HospitalSpecificDoctorListComponent {\r\n public HospitalId: any;\r\n public doctordId: any;\r\n hospitalList: any;\r\n docHospitalList: Array;\r\n doctorList: Array = new Array();\r\n qualification: any;\r\n public searchText: any;\r\n isDoctor: boolean = false;\r\n isAdmin: boolean = false;\r\n doctorId: any;\r\n showModal: boolean;\r\n token: any;\r\n public patInfo: Patient = new Patient();\r\n public showHospital: boolean = false;\r\n constructor(public routing: Router,\r\n private route: ActivatedRoute,\r\n public global: Global, public patservice: PatientService, public authservice: AuthenticationService,\r\n public hospitalService: HospitalService, public alertService: AlertService,\r\n public docService: DoctorService) {\r\n this.token = this.authservice.currentUserValue;\r\n this.HospitalId = this.route.snapshot.queryParamMap.get('id');\r\n this.GetHospitalList();\r\n this.GetDoctorList();\r\n this.getPatientName();\r\n }\r\n\r\n public getPatientName() {\r\n this.patservice.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n\r\n GetHospitalList() {\r\n this.hospitalService.getHospitalList()\r\n .subscribe(res => this.SuccessGetHospitalList(res),\r\n res => this.Error(res));\r\n }\r\n SuccessGetHospitalList(res) {\r\n this.hospitalList = res;\r\n }\r\n GetDoctorList() {\r\n this.docService.getHospitalDoctorMapList(this.HospitalId)\r\n .subscribe(res => this.SuccessDoctor(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDoctor(res) {\r\n \r\n let doclist;\r\n doclist = res;\r\n doclist.forEach(doc => {\r\n doc.ConsultationType.forEach(element => {\r\n if (element == this.patservice._VisitType)\r\n {\r\n \r\n this.doctorList.push(doc);\r\n\r\n }\r\n });\r\n \r\n });\r\n \r\n }\r\n Error(res) {\r\n\r\n }\r\n GoToHospital(id) {\r\n this.hospitalService.HospitalId = id;\r\n //this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalService.HospitalId } });\r\n this.routing.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalService.HospitalId } });\r\n }\r\n GoToDoctor(id1) {\r\n this.doctorId = id1;\r\n this.routing.navigate(['/DocProfile'], { queryParams: { id1: this.doctorId } });\r\n }\r\n}\r\n","import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { Problem } from './models/problem/problem.model';\r\n\r\nexport class Patient {\r\n PatientId: number;\r\n PatientName: string = \"\";\r\n Age: string = \"\";\r\n Sex: string = \"\";\r\n Email: string = \"\";\r\n MobileNumber: string = \"\";\r\n Address: string = \"\";\r\n prob: Array = [];\r\n Fever: boolean = false;\r\n Cough: boolean = false;\r\n BreathingDifficulty: boolean = false;\r\n Tiredness: boolean = false;\r\n SoreThroat: boolean = false;\r\n Bodyache: boolean = false;\r\n ChestPain: boolean = false;\r\n Diarrhea: boolean = false;\r\n AnyOtherSymptoms: string = \"\";\r\n\r\n HeartDisease: boolean = false;\r\n HighBloodPressure: boolean = false;\r\n Diabetes: boolean = false;\r\n Copd: boolean = false;\r\n Transplant: boolean = false;\r\n RecentTravel: boolean = false;\r\n Cancer: boolean = false;\r\n Exposure: boolean = false;\r\n PatientMedicalSymptoms: string = \"\";\r\n OtherPertientInformation: string = \"\";\r\n\r\n\r\n Status: number = 0;\r\n Medication: string = \"\";\r\n LastUpdatedTime: Date;\r\n}\r\nexport class Doctor {\r\n DoctorName: string = \"\";\r\n Password: string = \"\";\r\n}\r\nexport class Prescription {\r\n FileType: string = \"\";\r\n FileExtention: string = \"\";\r\n FileTypeprescriptions: string = \"\";\r\n FilePath: any;\r\n}\r\n","import { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule, APP_INITIALIZER } from \"@angular/core\";\r\nimport { LocationStrategy, HashLocationStrategy, DatePipe, CommonModule } from \"@angular/common\";\r\nimport { DoctorReportComponent } from \"./Doctor/doctor_report/doctor_report.component\";\r\nimport { OrderComponent } from \"./components/admin/order/order.component\";\r\nimport { DoctorSchedulingComponent } from \"./components/admin/doctorscheduling/doctor-scheduling.component\";\r\nimport { DoctorListComponent } from \"./Doctor/doctor_list/doctor_list.component\";\r\nimport { PatientHistoryComponent } from \"./Patient/patient_history/app.patient_history\";\r\nimport { ClinicComponent } from \"./app.cliniccomponent\";\r\nimport { AdminComponent } from \"./components/admin/admin.component\";\r\nimport { ContactUsComponent } from \"./Contact_Us/app.contactUs\";\r\nimport { LoginComponent } from \"./components/login/login.component\";\r\nimport { ViewOPSummaryComponent } from \"./Doctor/OP_Summary/app.View_OP_summary\";\r\nimport { PatientMedicalRecordComponent } from \"./Patient/patient_medical_record/app.patient_medical_record\";\r\nimport { AddOPSummaryComponent } from \"./Doctor/OP_Summary/app.Add_OP_summary\";\r\nimport { DailyVisitComponent } from \"./Doctor/doctor_dailyvisit/app.dailyvisitcomponent\";\r\nimport { FinalReportComponent } from \"./app.finalreportcomponent\";\r\nimport { LabReportUploadComponent } from './components/admin/lab-report-upload/lab-report-upload.component';\r\nimport { PatientLabReportsComponent } from './Patient/patient_lab_reports/app.patient_lab_reports';\r\nimport { AddProductComponent } from \"./components/admin/product/add-product/add-product.component\";\r\nimport { ProductListComponent } from './components/admin/product/product-list/product-list.component';\r\nimport { AdminHelpDeskComponent } from \"./components/admin/admin_helpdesk/app.admin_helpdesk\";\r\nimport { PatientUpdateProfileComponent } from \"./Patient/patient_updateprofile/app.patient_updateprofile\";\r\nimport { AddAppointmentComponent } from \"./components/admin/doctorscheduling/add-appointment/add-appointment.component\";\r\nimport { PatientBookingHomeComponent } from \"./Patient/patient_booking/app.booking_home\";\r\nimport { AppComponent } from \"./components/app.component\";\r\nimport { DoctorDashboardComponent } from \"./Doctor/doctor_dashboard/app.doctor-dashboard\";\r\nimport { DanphecareComponent } from \"./Danphecare/app.danphecare\";\r\nimport { PayThroughCreditCardComponent } from \"./Patient/patient_payment/app.paythroughcreditcardcomponent\";\r\nimport { PaymentSelectionComponent } from \"./Patient/patient_payment/app.paymentselection.component\";\r\nimport { ReportComponent } from \"./components/admin/report/report.component\";\r\nimport { FooterComponent } from \"./components/common/footer.component\";\r\nimport { MyBooKListComponent } from \"./Patient/patient_booking/app.mybooklist\";\r\nimport { PaidBookingListComponent } from \"./Patient/patient_booking/app.paidbookinglistcomponent\";\r\nimport { DoctorUpdateProfileComponent } from \"./Doctor/doctor_updateprofile/app.doctor_updateprofile\";\r\nimport { PatientHelpDeskComponent } from \"./Patient/patient_helpdesk/app.patient_helpdesk\";\r\nimport { HospitalComponent } from \"./app.hospitalcomponent\";\r\nimport { BookingNavigatorComponent } from \"./components/common/booking_navigator/booking.navigator.component\";\r\nimport { AppointmentsAddComponent } from './components/admin/doctorscheduling/appointmentadd/appointment-add.component';\r\nimport { DoctorProfileComponent } from './Doctor/doctor_profile/app.doctor_profile';\r\nimport { PaymentMessageComponent } from \"./PaymentMessage/app.paymentmessage.component\";\r\nimport { DoctorRoomComponent } from \"./Doctor/doctor_doctorroom/app.doctorroomcomponent\";\r\nimport { PatientListComponent } from \"./Doctor/doctor_patientlist/app.patientlistcomponent\";\r\nimport { RescheduleComponent } from \"./Doctor/doctor_reschedule/app.doctor_reschedule\";\r\nimport { SetUpComponent } from \"./components/admin/setup/app.set-up\";\r\nimport { AdminPatientListComponent } from \"./components/admin/patient_list/patient_list.component\";\r\nimport { PopUpDialogComponent } from \"./components/common/popup/pop-up.component\";\r\nimport { HospitalSpecificDoctorListComponent } from \"./app.hospitalspecificdoclist.component\";\r\nimport { PasswordComponent } from \"./components/common/password/password.component\";\r\nimport { PatientBookAppointmentComponent } from \"../app/Patient/patient_booking/app.patient_bookappointment\";\r\nimport { PatientDashboardComponent } from \"./Patient/patient_dashboard/app.patient_dashboard\";\r\nimport { ContactInfoComponent } from \"./components/admin/contact_Info/contact_information\";\r\nimport { AppointmentsOverPhoneComponent } from \"./components/admin/patientappointment/appointments-over-phone/appointments-over-phone.component\";\r\nimport { ViewProductComponent } from './components/admin/product/view-product/view-product.component';\r\nimport { WaitingRoom } from \"./Patient/patient_waitingroom/app.waitingroomcomponent\";\r\n\r\n//import { LoginComponent } from './app.login';\r\n\r\nimport { Global } from \"./app.global\";\r\nimport { ProductEndPoint } from \"./services/product/product-endpoint.service\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { TeleAppRoutingModule } from \"./app.routing\";\r\nimport { YesNoPipe } from \"src/common/YesNo.pipe\";\r\nimport \"zone.js\";\r\nimport { ConfigService } from \"src/common/common.appconfig\";\r\nimport { SafePipe } from \"src/common/common.safe\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { RegisterComponent } from \"./components/register/register.component\";\r\nimport { DoctorService } from \"../../src/app/services/doctor/doctor.service\";\r\nimport { DoctorEndpoint } from \"./services/doctor/doctor-endpoint.service\";\r\nimport { HospitalEndpoint } from \"./services/hospital/hospital-endpoint.service\";\r\nimport { HospitalService } from \"./services/hospital/hospital.service\";\r\nimport { PatientService } from \"./services/patient/patient.service\";\r\nimport { MeetingService } from \"./services/Meeting/meeting.service\";\r\nimport { PatientEndpoint } from \"./services/patient/patient-endpoint.service\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { NgxPaginationModule } from \"ngx-pagination\";\r\nimport { NgbModalModule, NgbModule, } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { FullCalendarModule } from \"@fullcalendar/angular\";\r\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from \"ng-pick-datetime-ex\";\r\nimport { TokenInterceptorService } from \"./services/tokeninterceptor.service\";\r\nimport { Ng2SearchPipeModule } from \"ng2-search-filter\";\r\nimport { NgxDocViewerModule } from \"ngx-doc-viewer\";\r\nimport { NgxExtendedPdfViewerModule } from \"ngx-extended-pdf-viewer\";\r\nimport { SchedulingService } from \"./services/scheduling/scheduling.service\";\r\nimport { SchedulingEndpoint } from \"./services/scheduling/scheduling-endpoint.service\";\r\nimport { MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { EqualValidator } from \"./components/directives/equal-validator.directive\";\r\nimport { OnlyNumber } from \"./components/directives/numbers-only.directive\";\r\nimport { ConsentFormComponent } from \"./ConsentForm/app.consentformcomponent\";\r\nimport { TimeFormat } from \"./components/common/date_pipe/date_pipe\";\r\nimport { ChatService } from \"./services/ChatNotification/chat-notification.service\";\r\nimport { AutoLogoutService } from \"./services/autologout.service\";\r\nimport { AdminPanelPatientAppointment } from \"./components/admin/patientappointment/admin.patientappointment.component\";\r\nimport { SlickCarouselModule } from \"ngx-slick-carousel\";\r\nimport { LoginEndpoint } from \"./services/login/login-endpoint.service\";\r\nimport { LoginService } from \"./services/login/login.service\";\r\nimport { EventNotificationService } from \"./services/EventNotification/event-notification.service\";\r\nimport { ProductService } from \"./services/product/product.service\";\r\nimport { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { LoaderComponent } from \"./components/common/loader/loader.component\";\r\nimport { LoaderInterceptor } from \"./services/loader-interceptor/loader-interceptor.service\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatNativeDateModule } from \"@angular/material/core\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\"\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatDividerModule } from \"@angular/material/divider\";\r\nimport { MatListModule } from \"@angular/material/list\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatTabsModule } from \"@angular/material/tabs\";\r\nimport { MatChipsModule } from \"@angular/material/chips\";\r\nimport { MeetingsetupComponent } from './components/admin/meetingsetup/meetingsetup.component';\r\nimport { MeetingEndPoint } from \"./services/Meeting/meeting-endpoint.service\";\r\n\r\n\r\nconst initializerConfigFn = (config: ConfigService) => {\r\n return () => {\r\n var ret: any = config.loadAppConfig();\r\n return ret;\r\n };\r\n};\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n DoctorRoomComponent,\r\n OnlyNumber,\r\n PaymentMessageComponent,\r\n DoctorProfileComponent,\r\n WaitingRoom,\r\n ClinicComponent,\r\n FinalReportComponent,\r\n PatientListComponent,\r\n YesNoPipe,\r\n SafePipe,\r\n DoctorDashboardComponent,\r\n DoctorUpdateProfileComponent,\r\n EqualValidator,\r\n PatientDashboardComponent,\r\n PatientUpdateProfileComponent,\r\n PatientBookAppointmentComponent,\r\n PaymentSelectionComponent,\r\n PatientBookingHomeComponent,\r\n AppComponent,\r\n RegisterComponent,\r\n PatientHistoryComponent,\r\n DailyVisitComponent,\r\n PatientBookingHomeComponent,\r\n MyBooKListComponent,\r\n PayThroughCreditCardComponent,\r\n PaidBookingListComponent,\r\n HospitalComponent,\r\n AdminComponent,\r\n DoctorSchedulingComponent,\r\n AppointmentsAddComponent,\r\n FooterComponent,\r\n AddAppointmentComponent,\r\n ConsentFormComponent,\r\n BookingNavigatorComponent,\r\n TimeFormat,\r\n RescheduleComponent,\r\n SetUpComponent,\r\n DanphecareComponent,\r\n ContactUsComponent,\r\n DoctorListComponent,\r\n AdminPanelPatientAppointment,\r\n AdminPatientListComponent,\r\n PopUpDialogComponent,\r\n HospitalSpecificDoctorListComponent,\r\n PasswordComponent,\r\n ContactInfoComponent,\r\n ReportComponent,\r\n DoctorReportComponent,\r\n PatientMedicalRecordComponent,\r\n AddOPSummaryComponent,\r\n ViewOPSummaryComponent,\r\n LabReportUploadComponent,\r\n PatientLabReportsComponent,\r\n AddProductComponent,\r\n ProductListComponent,\r\n ViewProductComponent,\r\n AppointmentsOverPhoneComponent,\r\n PatientHelpDeskComponent,\r\n AdminHelpDeskComponent,\r\n OrderComponent,\r\n LoaderComponent,\r\n MeetingsetupComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n NgxDocViewerModule,\r\n HttpClientModule,\r\n NgxPaginationModule,\r\n NgxExtendedPdfViewerModule,\r\n BrowserAnimationsModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-right',\r\n }),\r\n TeleAppRoutingModule,\r\n BrowserAnimationsModule,\r\n NgxDocViewerModule,\r\n NgbModule,\r\n NgbModalModule,\r\n FullCalendarModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatDividerModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatRadioModule,\r\n MatListModule,\r\n MatCardModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatTabsModule,\r\n MatNativeDateModule,\r\n MatChipsModule,\r\n MatTableModule,\r\n MatMomentDateModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n NgbModule,\r\n Ng2SearchPipeModule,\r\n BsDatepickerModule.forRoot(),\r\n SlickCarouselModule,\r\n DragDropModule\r\n ],\r\n providers: [\r\n {\r\n //provide: APP_BASE_HREF,\r\n ////useValue: '/' + (window.location.pathname.split('/')[1] || ''),\r\n //useValue: '/',\r\n provide: LocationStrategy,\r\n useClass: HashLocationStrategy,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initializerConfigFn,\r\n multi: true,\r\n deps: [ConfigService],\r\n },\r\n {\r\n provide: MAT_DIALOG_DATA,\r\n useValue: [],\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptorService,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoaderInterceptor,\r\n multi: true,\r\n },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\r\n Global,\r\n DoctorService,\r\n DoctorEndpoint,\r\n HospitalEndpoint,\r\n HospitalService,\r\n PatientEndpoint,\r\n PatientService,\r\n MeetingService,\r\n MeetingEndPoint,\r\n DatePipe,\r\n SchedulingService,\r\n SchedulingEndpoint,\r\n ChatService,\r\n AutoLogoutService,\r\n TokenInterceptorService,\r\n LoginService,\r\n LoginEndpoint,\r\n EventNotificationService,\r\n ProductService,\r\n ProductEndPoint\r\n ],\r\n bootstrap: [ClinicComponent],\r\n})\r\nexport class AppModule {\r\n constructor(g: Global) {\r\n // alert(g.config.videoUrl);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n//import { LoginComponent } from './app.login';\r\nimport { WaitingRoom } from './Patient/patient_waitingroom/app.waitingroomcomponent';\r\nimport { DoctorRoomComponent } from './Doctor/doctor_doctorroom/app.doctorroomcomponent';\r\nimport { FinalReportComponent } from './app.finalreportcomponent';\r\nimport { DoctorDashboardComponent } from './Doctor/doctor_dashboard/app.doctor-dashboard';\r\nimport { DoctorUpdateProfileComponent } from './Doctor/doctor_updateprofile/app.doctor_updateprofile';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { PatientDashboardComponent } from './Patient/patient_dashboard/app.patient_dashboard';\r\nimport { PatientUpdateProfileComponent } from './Patient/patient_updateprofile/app.patient_updateprofile';\r\nimport { PatientBookAppointmentComponent } from './Patient/patient_booking/app.patient_bookappointment';\r\nimport { PatientHistoryComponent } from './Patient/patient_history/app.patient_history';\r\nimport { DailyVisitComponent } from './Doctor/doctor_dailyvisit/app.dailyvisitcomponent';\r\nimport { MyBooKListComponent } from './Patient/patient_booking/app.mybooklist';\r\nimport { PayThroughCreditCardComponent } from './Patient/patient_payment/app.paythroughcreditcardcomponent';\r\nimport { PaidBookingListComponent } from './Patient/patient_booking/app.paidbookinglistcomponent';\r\nimport { PaymentSelectionComponent } from './Patient/patient_payment/app.paymentselection.component';\r\nimport { HospitalComponent } from './app.hospitalcomponent';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { DoctorSchedulingComponent } from './components/admin/doctorscheduling/doctor-scheduling.component';\r\nimport { AddAppointmentComponent } from './components/admin/doctorscheduling/add-appointment/add-appointment.component';\r\nimport { DoctorProfileComponent } from './Doctor/doctor_profile/app.doctor_profile';\r\nimport { PatientListComponent } from './Doctor/doctor_patientlist/app.patientlistcomponent';\r\nimport { SetUpComponent } from './components/admin/setup/app.set-up';\r\nimport { AdminPanelPatientAppointment } from './components/admin/patientappointment/admin.patientappointment.component';\r\nimport { DoctorListComponent } from './Doctor/doctor_list/doctor_list.component';\r\nimport { DanphecareComponent } from './Danphecare/app.danphecare';\r\nimport { ContactUsComponent } from './Contact_Us/app.contactUs';\r\n\r\nimport { AdminPatientListComponent } from './components/admin/patient_list/patient_list.component';\r\nimport { HospitalSpecificDoctorListComponent } from './app.hospitalspecificdoclist.component';\r\nimport { ContactInfoComponent } from './components/admin/contact_Info/contact_information';\r\nimport { ReportComponent } from './components/admin/report/report.component';\r\nimport { DoctorReportComponent } from './Doctor/doctor_report/doctor_report.component';\r\nimport { PatientMedicalRecordComponent } from './Patient/patient_medical_record/app.patient_medical_record';\r\nimport { AddOPSummaryComponent } from './Doctor/OP_Summary/app.Add_OP_summary';\r\nimport { LabReportUploadComponent } from './components/admin/lab-report-upload/lab-report-upload.component';\r\nimport { PatientLabReportsComponent } from './Patient/patient_lab_reports/app.patient_lab_reports';\r\nimport { AddProductComponent } from './components/admin/product/add-product/add-product.component';\r\nimport { ProductListComponent } from './components/admin/product/product-list/product-list.component';\r\nimport { ViewProductComponent } from './components/admin/product/view-product/view-product.component';\r\nimport { AppointmentsOverPhoneComponent } from './components/admin/patientappointment/appointments-over-phone/appointments-over-phone.component';\r\nimport { OrderComponent } from './components/admin/order/order.component';\r\nimport { RoleGuardService } from './services/route-guards/role-guard.service';\r\nimport { MeetingsetupComponent } from './components/admin/meetingsetup/meetingsetup.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot([\r\n { path: '', component: LoginComponent },\r\n { path: 'register', component: RegisterComponent },\r\n {\r\n path: 'DocDashboard', component: DoctorDashboardComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor'] }\r\n },\r\n {\r\n path: 'DoctorRoom', component: DoctorRoomComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor', 'Patient'] }\r\n },\r\n {\r\n path: 'DocUpdateProfile', component: DoctorUpdateProfileComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor'] }\r\n },\r\n {\r\n path: 'DailyVisit', component: DailyVisitComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor'] }\r\n },\r\n {\r\n path: 'DocPatientList', component: PatientListComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor'] }\r\n },\r\n {\r\n path: 'DocReport', component: DoctorReportComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor'] }\r\n },\r\n {\r\n path: 'PatDashboard', component: PatientDashboardComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'HospitalList', component: HospitalComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin', 'Patient'] }\r\n },\r\n {\r\n path: 'HospitalSpecificDoctorList', component: HospitalSpecificDoctorListComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'DocProfile', component: DoctorProfileComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin', 'Patient'] }\r\n },\r\n {\r\n path: 'PatUpdateProfile', component: PatientUpdateProfileComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'PatBookAppointment', component: PatientBookAppointmentComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient', 'Admin'] }\r\n },\r\n {\r\n path: 'PaymentSelection', component: PaymentSelectionComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient', 'Admin'] }\r\n },\r\n {\r\n path: 'PatBookList', component: MyBooKListComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'PatPaidBookingList', component: PaidBookingListComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'PatHistory', component: PatientHistoryComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'PatientMedicalRecord', component: PatientMedicalRecordComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'PatientLabReports', component: PatientLabReportsComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'PayThroughCreditCard', component: PayThroughCreditCardComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'WaitingRoom', component: WaitingRoom,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient', 'Doctor'] }\r\n },\r\n {\r\n path: 'FinalReport', component: FinalReportComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Patient'] }\r\n },\r\n {\r\n path: 'admin', component: AdminComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'scheduling', component: DoctorSchedulingComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'labreportupload', component: LabReportUploadComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'doclist', component: DoctorListComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'addAppointment', component: AddAppointmentComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'Setup', component: SetUpComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'MeetingSetup', component: MeetingsetupComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'Danphecare', component: DanphecareComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'ContactUs', component: ContactUsComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'PatientAppointmentList',\r\n children: [\r\n { path: 'ByPhone', component: AppointmentsOverPhoneComponent },\r\n { path: '', component: AdminPanelPatientAppointment }\r\n ],\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'adminpatlist', component: AdminPatientListComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'ContatctInformation', component: ContactInfoComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'Report', component: ReportComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'AddOPDSummary', component: AddOPSummaryComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Doctor'] }\r\n },\r\n {\r\n path: 'Product',\r\n children: [\r\n { path: '', component: ProductListComponent },\r\n { path: 'Add', component: AddProductComponent },\r\n { path: ':id', component: ViewProductComponent },\r\n { path: ':id/Edit', component: AddProductComponent },\r\n ],\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n {\r\n path: 'Order', component: OrderComponent,\r\n canActivate: [RoleGuardService], data: { allowedUserType: ['Admin'] }\r\n },\r\n // otherwise redirect to login\r\n { path: '**', redirectTo: '' }\r\n\r\n ])\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class TeleAppRoutingModule { }\r\n\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ChatService } from 'src/app/services/ChatNotification/chat-notification.service';\r\n\r\n\r\n\r\n@Component({\r\n //selector: 'admin-root',\r\n templateUrl: './admin.component.html'\r\n})\r\nexport class AdminComponent {\r\n constructor(public routing: Router,private _chatService: ChatService) {\r\n this._chatService.Connect();\r\n }\r\n // Slick Slider this is added new\r\n\r\n slides = [\r\n { img: \"./assets/img/Slider11.jpg\" },\r\n { img: \"./assets/img/Slider22.jpg\" },\r\n ];\r\n slideConfig = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n fade: true,\r\n cssEase: \"linear\",\r\n draggable: false,\r\n autoplaySpeed: 3000,\r\n arrows: false,\r\n dots: false,\r\n };\r\n // End SLick slider\r\n}\r\n\r\n\r\n","\r\n
\r\n
\r\n
\r\n

\r\n Hello! \r\n Choose actions below to proceed.\r\n

\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
","\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n Send Message to Patient\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n {{user.Name}}\r\n {{user.UnseenMessageCount}}\r\n \r\n
    \r\n\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n Start your conversiation\r\n

\r\n
\r\n
\r\n
\r\n {{ chat.Message }}\r\n
\r\n
\r\n {{ chat.Message }}\r\n
\r\n
\r\n \r\n
\r\n Chat message is required\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { FormBuilder, FormControl, FormGroup, NgForm, Validators } from '@angular/forms';\r\nimport { AlertService } from 'src/app/services/alert.service';\r\nimport { ChatService } from 'src/app/services/ChatNotification/chat-notification.service';\r\nimport { Patient } from 'src/app/models/patient/patient.model';\r\nimport { DoctorService } from 'src/app/services/doctor/doctor.service';\r\nimport { PatientService } from 'src/app/services/patient/patient.service';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { Global } from 'src/app/app.global';\r\n\r\n@Component({\r\n templateUrl: './app.admin_helpdesk.html'\r\n})\r\nexport class AdminHelpDeskComponent {\r\n\r\n public hospitalId: any;\r\n ChatForm: FormGroup;\r\n public patInfo: Patient = new Patient();\r\n public receiverId: string;\r\n ChatUsers: Array = new Array();\r\n AllUserChats: any;\r\n ChatReceivedMessages: Array = new Array();\r\n token: any;\r\n viewMessage: boolean = false;\r\n allChatMessages: any = [];\r\n selectedPatientId: any;\r\n constructor(\r\n private alertService: AlertService,\r\n public routing: Router, private authenticationService: AuthenticationService,\r\n public patService: PatientService, public notificationService: ChatService\r\n ) {\r\n this.token = this.authenticationService.currentUserValue;\r\n this.getPatientName();\r\n this.initForm();\r\n this.notificationService.Connect();\r\n this.notificationService.EventChatMessage.subscribe(chatData => {\r\n this.OnChatUserChange();\r\n\r\n const chatMsg = { Name: chatData.Name, Message: chatData.Message, PatientId: chatData.SenderId, Class: 'receiver-msg', IsSeen: false };\r\n\r\n this.allChatMessages.push(chatMsg);\r\n this.RefreshNotification();\r\n\r\n const chatUser = { Name: chatData.Name, PatientId: chatData.SenderId, UnseenMessageCount: 1 };\r\n if (this.ChatUsers.length != 0) {\r\n var userAvailable = this.ChatUsers.find(u => u.PatientId == chatUser.PatientId);\r\n if (userAvailable != null) {\r\n if (userAvailable.PatientId != this.selectedPatientId)\r\n userAvailable.UnseenMessageCount++;\r\n }\r\n else {\r\n\r\n this.ChatUsers.push(chatUser);\r\n }\r\n }\r\n else {\r\n this.ChatUsers.push(chatUser);\r\n }\r\n\r\n this.pushChatMsgUserwise(chatData.Name, chatMsg);\r\n\r\n });\r\n }\r\n\r\n pushChatMsgUserwise(user, messageObj) {\r\n try {\r\n if (!this.AllUserChats.hasOwnProperty(user)) {\r\n this.AllUserChats[user] = new Array();\r\n }\r\n this.AllUserChats[user].push(messageObj);\r\n } catch (e) { }\r\n }\r\n onChatUserClicked(userPatientId) {\r\n this.selectedPatientId = userPatientId;\r\n var selectedChatUser = this.ChatUsers.find(a => a.PatientId == this.selectedPatientId);\r\n selectedChatUser.UnseenMessageCount = 0;\r\n this.RefreshNotification()\r\n }\r\n public BackDashBoard() {\r\n this.routing.navigate(['/admin'], { queryParams: { id: this.hospitalId } });\r\n }\r\n private initForm() {\r\n this.ChatForm = new FormGroup(\r\n {\r\n chatMessage: new FormControl('', [Validators.required])\r\n });\r\n }\r\n hasError(typeofvalidator: string, controlname: string): boolean {\r\n const control = this.ChatForm.controls[controlname];\r\n return control.hasError(typeofvalidator) && control.dirty;\r\n }\r\n SendChatMsg(event?) {\r\n if (event && event.keyCode !== 13)\r\n return;\r\n try {\r\n if (this.chatMessageToSend.value)\r\n this.chatMessageToSend.setValue(this.chatMessageToSend.value.trim());\r\n\r\n for (const i in this.ChatForm.controls) {\r\n this.ChatForm.controls[i].markAsDirty();\r\n this.ChatForm.controls[i].updateValueAndValidity();\r\n }\r\n\r\n if (this.ChatForm.valid) {\r\n const chatMsg = {\r\n SenderId: this.token.unique_name,\r\n ReceiverId: this.selectedPatientId,\r\n Name: this.token.UserType,\r\n Message: this.chatMessageToSend.value\r\n };\r\n const chatmsgObj = {\r\n Name: 'Me',\r\n Message: chatMsg.Message,\r\n Class: 'sender-msg',\r\n ReceiverId: chatMsg.ReceiverId\r\n };\r\n this.allChatMessages.push(chatmsgObj);\r\n\r\n this.notificationService.SendChatMessage(chatMsg);\r\n this.chatMessageToSend.reset();\r\n }\r\n\r\n } catch (e) { }\r\n }\r\n\r\n private get chatMessageToSend() {\r\n return this.ChatForm.get(\"chatMessage\") as FormControl;\r\n }\r\n OnChatUserChange() {\r\n try {\r\n const selUser = this.ChatForm.controls['Id'].value;\r\n if (this.AllUserChats.hasOwnProperty(selUser)) {\r\n this.ChatUsers = this.AllUserChats[selUser].slice();\r\n this.ChatReceivedMessages = this.AllUserChats[selUser].slice();\r\n } else {\r\n this.ChatUsers = new Array();\r\n this.ChatReceivedMessages = new Array();\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n public getPatientName() {\r\n this.patService.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n\r\n getAdminId() {\r\n this.patService.getAdminId()\r\n .subscribe(res => this.SuccessGetAdminId(res),\r\n res => this.Error(res));\r\n }\r\n SuccessGetAdminId(res) {\r\n let temp = res;\r\n\r\n }\r\n Error(res) {\r\n\r\n }\r\n\r\n routeToPage(patientId, index) {\r\n this.viewMessage = true;\r\n this.selectedPatientId = patientId;\r\n }\r\n\r\n RefreshNotification() {\r\n this.viewMessage = true;\r\n }\r\n}\r\n\r\n","\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n

Contact Information\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNContact NumberEmailAction
1{{ContactInfo.ContactNumber}}{{ContactInfo.Email}} \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Add Contact Information
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Update Contatct Information\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { HospitalService } from 'src/app/services/hospital/hospital.service';\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ContactInformation } from 'src/app/models/contactInfo/contactinformation.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\n@Component({\r\n templateUrl: './contact_information.html',\r\n styleUrls: ['./contact_information.css']\r\n})\r\nexport class ContactInfoComponent implements OnInit {\r\n public edit: boolean = false;\r\n public editModal: boolean = false;\r\n token: any;\r\n public ContactInfo: ContactInformation = new ContactInformation();\r\n \r\n public addeditcontactInfo: ContactInformation = new ContactInformation();\r\n public showaddbtn : boolean = true;\r\n continfoForm: FormGroup;\r\n \r\n constructor(public routing: Router, public http: HttpClient, public hospitalService: HospitalService, public schedulingService: SchedulingService, public notifyService: NotificationService, public formBuilder: FormBuilder, public authService: AuthenticationService, private authenticationService: AuthenticationService) {\r\n this.token = this.authService.currentUserValue;\r\n\r\n }\r\n ngOnInit() {\r\n this.continfoForm = this.formBuilder.group({\r\n ContactNumber: ['', [Validators.required]],\r\n Email:['', [Validators.required, Validators.pattern('^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}$')]]\r\n });\r\n\r\n this.getcontactInformation();\r\n }\r\n\r\n public Admin() {\r\n this.routing.navigate(['/admin']);\r\n }\r\n getcontactInformation() {\r\n this.hospitalService.getcontactInformation().subscribe(res => this.SuccessgetcontactInfo(res),\r\n res => this.Error(res));\r\n }\r\n SuccessgetcontactInfo(res) {\r\n \r\n if(res !=null){\r\n this.ContactInfo = res;\r\n this.showaddbtn = false;\r\n }\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n ErrorAdd(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n ErrorEdit(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n \r\n\r\n AddContactInfo(form) {\r\n \r\n this.edit = false;\r\n if (form.invalid) {\r\n if(form.controls.ContactNumber.invalid){\r\n if(form.controls.ContactNumber.errors.required){\r\n this.notifyService.showError(\"\", \"Contact number is required\");\r\n }\r\n else\r\n this.notifyService.showError(\"\", \"Contact number should be 10 digits\");\r\n }\r\n if(form.controls.Email.invalid){\r\n if(form.controls.Email.errors.required){\r\n this.notifyService.showError(\"\", \"Email is required\");\r\n }\r\n else\r\n this.notifyService.showError(\"\", \"Email should be in correct format\");\r\n }\r\n return;\r\n }\r\n this.hospitalService.addContactInfo(this.ContactInfo).subscribe(res => this.Success(res),\r\n res => this.ErrorAdd(res));\r\n \r\n\r\n }\r\n Success(res) {\r\n window.location.reload();\r\n this.notifyService.showSuccess('', 'Information Added Successfully!')\r\n\r\n }\r\n EditContactInfo() {\r\n this.edit = true;\r\n this.editModal = true ;\r\n this.addeditcontactInfo = Object.assign(this.addeditcontactInfo, this.ContactInfo)\r\n }\r\n \r\n UpdateContactInfo(form) {\r\n \r\n if (form.invalid) {\r\n if(form.controls.ContactNumber.invalid){\r\n if(form.controls.ContactNumber.errors.required){\r\n this.notifyService.showError(\"\", \"Contact number is required\");\r\n }\r\n else\r\n this.notifyService.showError(\"\", \"Contact number should be 10 digits\");\r\n }\r\n if(form.controls.Email.invalid){\r\n if(form.controls.Email.errors.required){\r\n this.notifyService.showError(\"\", \"Email is required\");\r\n }\r\n else\r\n this.notifyService.showError(\"\", \"Email should be in correct format\");\r\n }\r\n return;\r\n }\r\n const token = this.authenticationService.currentUserValue;\r\n if (token) {\r\n this.addeditcontactInfo.AdminId = token.unique_name;\r\n }\r\n this.hospitalService.updateContactInfo(this.addeditcontactInfo).subscribe(res => this.SuccessUpdate(res),\r\n res => this.ErrorEdit(res));\r\n }\r\n SuccessUpdate(res) {\r\n this.getcontactInformation();\r\n this.notifyService.showSuccess('', 'Successfully Updated');\r\n window.location.reload();\r\n }\r\n\r\n DeleteHospital(id) {\r\n this.hospitalService.deleteHospital(id).subscribe(res => this.SuccessDelete(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDelete(res) {\r\n this.getcontactInformation();\r\n this.notifyService.showSuccess('', 'Successfully Deleted!');\r\n window.location.reload();\r\n }\r\n hide(){\r\n this.editModal = false;\r\n this.getcontactInformation();\r\n }\r\n\r\n cleardata(){\r\n this.ContactInfo = new ContactInformation();\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n

\r\n Please Add Scheduling Time for Dr.{{ doctor }}\r\n

\r\n Please select Start date and End date\r\n

\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n {{ date.day }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n +\r\n x\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateDoctor Available
{{ i + 1 }}{{ list.Date }}\r\n {{ list.StartTime }} - {{ list.EndTime }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { NgbDate, NgbCalendar } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Scheduling, SchedulingList, ScheduleInterval } from 'src/app/models/scheduling/scheduling.model';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport * as moment from 'moment/moment'\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n// import { analyzeAndValidateNgModules } from '@angular/compiler';\r\nimport { DoctorService } from 'src/app/services/doctor/doctor.service';\r\n\r\n@Component({\r\n templateUrl: 'add-appointment.component.html',\r\n styleUrls: ['./doctor-scheduling.component.css']\r\n})\r\nexport class AddAppointmentComponent implements OnInit {\r\n public showModal: boolean;\r\n public scheduling: Scheduling = new Scheduling();\r\n selectedValue: any;\r\n public doctorList: any;\r\n public schedulingTime: any;\r\n public start: any;\r\n public minDate: any;\r\n public starttime: any;\r\n public endtime: any;\r\n public end: any;\r\n meridian = true;\r\n public index: number = 0;\r\n public patpopulation: number = 0;\r\n public editModal: boolean;\r\n public exceptionOnTime: boolean;\r\n showView: any;\r\n public mapId: any;\r\n public doctor: any;\r\n hoveredDate: NgbDate | null = null;\r\n public startTime = { hour: 0, minute: 0 };\r\n public endTime = { hour: 0, minute: 0 };\r\n fromDate: NgbDate;\r\n toDate: NgbDate | null = null;\r\n hosDocMapId: any;\r\n public StartTime = { hour: 0, minute: 0 };\r\n public EndTime = { hour: 0, minute: 0 };\r\n public schedulingList: Array = new Array();\r\n public schedulingArray: Array = new Array();\r\n public showSchedule: boolean;\r\n public scheduleData: Array = [];\r\n public scheduleDataList: Array = [];\r\n public DoctorAvailable: Array = [];\r\n date: any;\r\n dateSelect: boolean = false;\r\n public newSchedulingList: SchedulingList = { StartTime: 0, EndTime: 0, StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, AccomodatedPatient: 0 };\r\n public newScheduling: Scheduling = {\r\n SchedulingId: \"\", Date: null, StartDate: null, HospitalDoctorMapId: \"\", EndDate: null, StartTime: 0, EndTime: 0, DepartmentId: \"\", HospitalId: \"\", DoctorId: \"\"\r\n , DepatmentName: \"\", HospitalName: \"\", DoctorName: \"\", StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, NewScheduleList: [], ScheduleInterval: [], AppointmentType: \"\", AdminId: \"\"\r\n };\r\n appointmentType: any;\r\n DocmapDetail: any;\r\n todayDate = moment();\r\n constructor(public routing: Router, public schedulingService: SchedulingService, public docService: DoctorService,\r\n public calendar: NgbCalendar, public notifyService: NotificationService, private route: ActivatedRoute) {\r\n //this.showModal = true;\r\n const current = new Date();\r\n this.minDate = {\r\n year: current.getFullYear(),\r\n month: current.getMonth() + 1,\r\n day: current.getDate()\r\n };\r\n this.fromDate = calendar.getToday();\r\n this.toDate = calendar.getNext(calendar.getToday(), 'd', 10);\r\n this.hosDocMapId = this.route.snapshot.queryParamMap.get('id');\r\n this.doctor = this.route.snapshot.queryParamMap.get('doc');\r\n this.Setappointmenttype();\r\n }\r\n ngOnInit() {\r\n this.newSchedulingList = { StartTime: 0, EndTime: 0, StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, AccomodatedPatient: 0 };\r\n this.schedulingList.push(this.newSchedulingList);\r\n }\r\n public Scheduling() {\r\n this.routing.navigate(['/scheduling']);\r\n }\r\n public hide() {\r\n this.showModal = false;\r\n }\r\n\r\n public Submit() {\r\n this.exceptionOnTime = false;\r\n let mdtFrom = moment([this.fromDate.year, this.fromDate.month - 1, this.fromDate.day]);\r\n if (this.toDate == null) {\r\n this.toDate = this.fromDate;\r\n }\r\n let mdtTo = moment([this.toDate.year, this.toDate.month - 1, this.toDate.day]);\r\n this.scheduling.StartDate = new Date(mdtFrom.format('YYYY-MM-DD'));\r\n this.scheduling.EndDate = new Date(mdtTo.format('YYYY-MM-DD'));\r\n this.scheduling.HospitalDoctorMapId = this.hosDocMapId;\r\n this.scheduling.NewScheduleList = Object.assign(this.scheduling.NewScheduleList, this.schedulingList);\r\n if (this.appointmentType != null) {\r\n this.scheduling.AppointmentType = this.appointmentType;\r\n }\r\n else {\r\n this.notifyService.showError('Error', 'Please select Appointment Type');\r\n return;\r\n }\r\n for (let i = 0; i < this.schedulingList.length; i++) {\r\n if (this.schedulingList[i].StartTime != null && this.schedulingList[i].EndTime != null) {\r\n if (this.schedulingList[i].AccomodatedPatient <= 0) {\r\n this.notifyService.showError(\"Error\", \"Accomodated Patient must be greater than 0\");\r\n return;\r\n }\r\n if (this.schedulingList.length == 1) {\r\n this.scheduling.NewScheduleList[i].StartHours = this.schedulingList[i].StartTime.hour;\r\n this.scheduling.NewScheduleList[i].StartMinutes = this.schedulingList[i].StartTime.minute;\r\n this.scheduling.NewScheduleList[i].StartSeconds = this.schedulingList[i].StartTime.second;\r\n this.scheduling.NewScheduleList[i].EndHours = this.schedulingList[i].EndTime.hour;\r\n this.scheduling.NewScheduleList[i].EndMinutes = this.schedulingList[i].EndTime.minute;\r\n this.scheduling.NewScheduleList[i].EndSeconds = this.schedulingList[i].EndTime.second;\r\n }\r\n else {\r\n for (let j = i + 1; j <= this.schedulingList.length; j++) {\r\n if (j == this.schedulingList.length) {\r\n this.scheduling.NewScheduleList[i].StartHours = this.schedulingList[i].StartTime.hour;\r\n this.scheduling.NewScheduleList[i].StartMinutes = this.schedulingList[i].StartTime.minute;\r\n this.scheduling.NewScheduleList[i].StartSeconds = this.schedulingList[i].StartTime.second;\r\n this.scheduling.NewScheduleList[i].EndHours = this.schedulingList[i].EndTime.hour;\r\n this.scheduling.NewScheduleList[i].EndMinutes = this.schedulingList[i].EndTime.minute;\r\n this.scheduling.NewScheduleList[i].EndSeconds = this.schedulingList[i].EndTime.second;\r\n }\r\n else {\r\n if (this.schedulingList[i].StartTime.hour != this.schedulingList[j].StartTime.hour && this.schedulingList[i].EndTime.hour != this.schedulingList[j].EndTime.hour) {\r\n this.scheduling.NewScheduleList[i].StartHours = this.schedulingList[i].StartTime.hour;\r\n this.scheduling.NewScheduleList[i].StartMinutes = this.schedulingList[i].StartTime.minute;\r\n this.scheduling.NewScheduleList[i].StartSeconds = this.schedulingList[i].StartTime.second;\r\n this.scheduling.NewScheduleList[i].EndHours = this.schedulingList[i].EndTime.hour;\r\n this.scheduling.NewScheduleList[i].EndMinutes = this.schedulingList[i].EndTime.minute;\r\n this.scheduling.NewScheduleList[i].EndSeconds = this.schedulingList[i].EndTime.second;\r\n }\r\n else {\r\n this.notifyService.showError('Error', \"Can't select same time\");\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.schedulingList[i].EndTime.hour <= this.schedulingList[i].StartTime.hour) {\r\n this.exceptionOnTime = true;\r\n }\r\n var currenthr = this.todayDate.format('HH:mm z');\r\n var currentmin = this.todayDate.format('mm z');\r\n\r\n var currenttimeHr = parseInt(currenthr);\r\n var currenttimeMin = parseInt(currentmin);\r\n if (this.scheduling.StartDate <= this.todayDate.toDate() && currenttimeHr > this.schedulingList[i].StartHours && currenttimeMin > this.schedulingList[i].EndMinutes) {\r\n this.exceptionOnTime = true;\r\n }\r\n\r\n if (this.schedulingList[i].AccomodatedPatient > 0) {\r\n this.scheduling.NewScheduleList[i].AccomodatedPatient = this.schedulingList[i].AccomodatedPatient;\r\n } else {\r\n this.scheduling.NewScheduleList[i].AccomodatedPatient = 1;\r\n }\r\n }\r\n else {\r\n this.notifyService.showError('Error', 'Please select Appropriate Time');\r\n return;\r\n }\r\n }\r\n if (this.exceptionOnTime == false) {\r\n for (var j = 0; j < this.schedulingList.length; j++) {\r\n var sttime = this.scheduling.NewScheduleList[j].StartHours + \":\" + this.scheduling.NewScheduleList[j].StartMinutes + \":\" + this.scheduling.NewScheduleList[j].StartSeconds;\r\n var startformatted = moment(sttime, \"HH:mm:ss\").format(\"hh:mm A\");\r\n var endtime = this.scheduling.NewScheduleList[j].EndHours + \":\" + this.scheduling.NewScheduleList[j].EndMinutes + \":\" + this.scheduling.NewScheduleList[j].EndSeconds;\r\n var endformatted = moment(endtime, \"HH:mm:ss\").format(\"hh:mm A\");\r\n var totalhr = this.scheduling.NewScheduleList[j].EndHours - this.scheduling.NewScheduleList[j].StartHours;\r\n var totalmin = this.scheduling.NewScheduleList[j].EndMinutes - this.scheduling.NewScheduleList[j].StartMinutes;\r\n var totalhrconertomin = totalhr * 60;\r\n var totalfinalmin = totalhrconertomin + totalmin;\r\n var AccomodatePatientlimit = totalfinalmin / 5;\r\n\r\n if (AccomodatePatientlimit >= this.scheduling.NewScheduleList[j].AccomodatedPatient) {\r\n var date1 = moment([this.fromDate.year, this.fromDate.month - 1, this.fromDate.day]).format(\"YYYY-MM-DD\");\r\n if (this.toDate == null) {\r\n this.toDate = this.fromDate;\r\n }\r\n var date2 = moment([this.toDate.year, this.toDate.month - 1, this.toDate.day]).format(\"YYYY-MM-DD\");\r\n var momentObj = moment(date1 + startformatted, 'YYYY-MM-DDLT');\r\n var startdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var momentObj = moment(date1 + endformatted, 'YYYY-MM-DDLT');\r\n var enddateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var startingtime = moment(startdateTime, 'YYYY-MM-DD HH:mm A');\r\n var endingtime = moment(enddateTime, 'YYYY-MM-DD HH:mm A');\r\n var diffmin = endingtime.diff(startingtime, 'minutes');\r\n this.patpopulation = this.schedulingList[j].AccomodatedPatient;\r\n var eachpattym = diffmin / this.patpopulation;\r\n while (date1 <= date2) {\r\n temp = null;\r\n var momentObj = moment(date1 + startformatted, 'YYYY-MM-DDLT');\r\n var startdateTime = momentObj.format('YYYY-MM-DD HH:mm A');\r\n var startingtime = moment(startdateTime, 'YYYY-MM-DD HH:mm A');\r\n for (var k = 0; k < this.patpopulation; k++) {\r\n var temp = moment(startingtime, 'YYYY-MM-DD HH:mm A')\r\n .add(eachpattym, 'minutes')\r\n .format('YYYY-MM-DD HH:mm A');\r\n this.schedulingArray.push({\r\n SchedulingId: '',\r\n StartTime: startdateTime,\r\n HospitalDoctorMapId: this.hosDocMapId,\r\n Date: new Date(moment(date1, 'YYYY-MM-DD').format('YYYY-MM-DD')),\r\n EndTime: temp,\r\n IsBooked: false,\r\n IsActive: false,\r\n VisitId: '',\r\n AppointmentType: this.appointmentType\r\n });\r\n startingtime = moment(temp, 'YYYY-MM-DDTHH:mm:s');\r\n startdateTime = startingtime.format('YYYY-MM-DD HH:mm A');\r\n }\r\n date1 = moment(date1, 'YYYY-MM-DD')\r\n .add(1, 'days')\r\n .format('YYYY-MM-DD');\r\n }\r\n this.scheduling.ScheduleInterval = this.schedulingArray;\r\n this.schedulingService.addScheduling(this.scheduling).subscribe(res => this.Success(res), res => this.Error(res));\r\n }\r\n else {\r\n this.notifyService.showError('Error', 'Please Enter valid Accomodated Patient minimum 5 minutes per Patient.');\r\n }\r\n\r\n }\r\n\r\n\r\n } else {\r\n this.notifyService.showError('Error', 'Select Appropriate Time Interval');\r\n for (let i = 0; i < this.schedulingList.length; i++) {\r\n this.schedulingList[i].StartTime = null;\r\n this.schedulingList[i].EndTime = null;\r\n this.schedulingList[i].AccomodatedPatient = null;\r\n }\r\n for (let j = 0; j < this.schedulingList.length; j++) {\r\n this.deleteRow(j);\r\n }\r\n }\r\n }\r\n Success(res) {\r\n this.routing.navigate(['/addAppointment']);\r\n for (let i = 0; i < this.schedulingList.length; i++) {\r\n this.schedulingList[i].StartTime = null;\r\n this.schedulingList[i].EndTime = null;\r\n this.schedulingList[i].AccomodatedPatient = null;\r\n }\r\n for (let j = 0; j < this.schedulingList.length; j++) {\r\n this.deleteRow(j);\r\n }\r\n this.notifyService.showSuccess('Successful', 'Schedule added Successfully');\r\n this.onDateSelection(this.fromDate);\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Schedule already available for same date!!\")\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && date.after(this.fromDate)) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n this.date = moment([this.fromDate.year, this.fromDate.month - 1, this.fromDate.day]).format('L');\r\n this.showSchedule = true;\r\n this.schedulingService.getSchedulingOfDate(this.hosDocMapId).subscribe(res => this.SuccessSchedule(res),\r\n res => this.Error(res));\r\n }\r\n\r\n SuccessSchedule(res) {\r\n this.scheduleData = res;\r\n for (let index = 0; index < this.scheduleData.length; index++) {\r\n this.scheduleData[index].Date = moment(res[index].Date).format('L');\r\n }\r\n\r\n for (var c = 0; c < this.scheduleData.length; c++) {\r\n var date = moment(this.scheduleData[c].Date).format('YYYY/MM/DD');\r\n var timeextract = this.scheduleData[c].StartTime;\r\n var bookedStartTime = moment(date + ' ' + timeextract, 'YYYY/MM/DD HH:mm A');\r\n var momentObj = moment(bookedStartTime, 'YYYY-MM-DDLT');\r\n var currentdateTime = momentObj.format('YYYY-MM-DDTHH:mm:s');\r\n var formatedBookedDateTime = moment(currentdateTime, 'YYYY-MM-DD HH:mm A');\r\n this.scheduleData[c].StartTimeDetail = formatedBookedDateTime;\r\n }\r\n\r\n for (let k = 0; k < this.scheduleData.length - 1; k++) {\r\n for (let l = 0; l < this.scheduleData.length - k - 1; l++) {\r\n var diffmin = this.scheduleData[l + 1].StartTimeDetail.diff((this.scheduleData[l].StartTimeDetail), 'minutes')\r\n if (diffmin < 0) {\r\n let swap = this.scheduleData[l];\r\n this.scheduleData[l] = this.scheduleData[l + 1];\r\n this.scheduleData[l + 1] = swap;\r\n }\r\n }\r\n }\r\n\r\n this.scheduleDataList = this.scheduleData;\r\n this.scheduleDataList = this.scheduleData.filter(x => x.Date == this.date);\r\n for (let index = 0; index < this.scheduleDataList.length; index++) {\r\n this.DoctorAvailable[index] = this.scheduleDataList[index].StartTime + \"\" + \"-\" + \"\" + this.scheduleDataList[index].EndTime;\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n isHovered(date: NgbDate) {\r\n\r\n return this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate);\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return date.equals(this.fromDate) || (this.toDate && date.equals(this.toDate)) || this.isInside(date) || this.isHovered(date);\r\n }\r\n toggleMeridian() {\r\n this.meridian = !this.meridian;\r\n }\r\n deleteRow(index) {\r\n if (this.schedulingList.length == 1) {\r\n return false;\r\n } else {\r\n this.schedulingList.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n addRow(i) {\r\n this.newSchedulingList = { StartTime: 0, EndTime: 0, StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, AccomodatedPatient: 0 };\r\n this.schedulingList.push(this.newSchedulingList);\r\n console.log(this.schedulingList);\r\n return true;\r\n }\r\n\r\n Setappointmenttype() {\r\n this.docService.getDoctorMapDetail(this.hosDocMapId).subscribe((res: any) => this.SuccessMapdetail(res?.Results),\r\n res => this.Error(res));\r\n\r\n }\r\n\r\n SuccessMapdetail(res) {\r\n if (res) {\r\n this.DocmapDetail = res;\r\n if (this.DocmapDetail.ConsultationType == \"Online Appointment\") {\r\n this.appointmentType = \"Online Appointment\";\r\n }\r\n else if (this.DocmapDetail.ConsultationType == \"Telemedicine\") {\r\n this.appointmentType = \"Telemedicine\";\r\n }\r\n else {\r\n this.appointmentType = null;\r\n }\r\n }\r\n\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{appointmentType.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Scheduling } from '../../../../models/scheduling/scheduling.model';\r\n\r\n@Component({\r\n selector: 'appointments-add',\r\n templateUrl: './appointment-add.component.html',\r\n styleUrls: ['./appointment-add.component.css']\r\n})\r\nexport class AppointmentsAddComponent implements OnInit {\r\n\r\n @ViewChild('picker', { static: true }) datePicker: MatDatepicker;\r\n\r\n appointment: Scheduling;\r\n hasFormErrors: boolean = false;\r\n private subscriptions: Subscription[] = [];\r\n appointment$: Observable;\r\n //public exampleData: Array;\r\n //public options: Select2Options;\r\n meridian = true;\r\n startDateTime;\r\n currentTime: any;\r\n endDateTime;\r\n selectedDate;\r\n selecTimeErr: boolean = false;\r\n selecTimeErrText: string;\r\n participantList: any;\r\n buttonText: string;\r\n reschedule: boolean = false;\r\n headerTitle: string = \"New Appointment\";\r\n endtime: any;\r\n endtimeHour: any;\r\n endtimeMinute: any;\r\n calendarView: any;\r\n viewLoading: boolean = false;\r\n loadingAfterSubmit: boolean = false;\r\n practitionerList: any;\r\n practitionerData: any;\r\n addressResult: any;\r\n selectedAddress: string;\r\n selectedParticipant: any;\r\n showAddress: boolean = false;\r\n inputDisabled: boolean = false;\r\n hasSchoolAddress: boolean = false;\r\n addressOptions: string[];\r\n teamList: any;\r\n teamOptions: any;\r\n selectedTeam = new FormControl();\r\n filteredTeamOptions: Observable;\r\n selectedTeamID: string;\r\n listAppointmentType: any;\r\n participantName: string;\r\n showParticipant: boolean = true;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit() {\r\n this.appointment = new Scheduling;\r\n this.buttonText = \"Create Appointment\";\r\n this.appointment.StartTime = this.data.date;\r\n var outputTime = moment(this.appointment.StartTime, 'MMMM Do YYYY, h:mm:ss a').add(30, 'minutes').format();\r\n this.endtime = moment(outputTime).format();\r\n //update appointment\r\n if (this.data.appointment && this.data.reschedule) {\r\n // this.appointment = this.data.appointment;\r\n this.buttonText = \"Update Appointment\";\r\n this.headerTitle = \"Edit Appointment\";\r\n this.appointment.SchedulingId = this.data.appointment.SchedulingId;\r\n this.appointment.StartTime = new Date(this.data.appointment.startTime);\r\n this.endtime = new Date(this.data.appointment.endTime);\r\n //this.appointment.addressType = this.data.appointment.addressType;\r\n //this.appointment.appointmentType = this.data.appointment.appointmentTypeId;\r\n this.showAddress = true;\r\n //this.appointment.location = this.data.appointment.location;\r\n //this.appointment.note = this.data.appointment.note;\r\n }\r\n //navigated from profile\r\n if (this.data.participantDetails) {\r\n this.participantName = this.data.participantDetails.firstName + ' ' + this.data.participantDetails.lastName;\r\n //this.appointment.location = this.data.participantDetails.address;\r\n //this.appointment.patientId = this.data.participantDetails.id;\r\n this.headerTitle = \"New Appointment for \" + this.participantName;\r\n this.showParticipant = false;\r\n }\r\n\r\n //this.loadParticipants();\r\n ////this.loadTeams();\r\n //this.loadAppointmentType();\r\n if (this.data.practitioner) {\r\n this.practitionerList = this.data.practitioner;\r\n //this.appointment.practitioner = this.practitionerList[0].id;\r\n } else {\r\n //this.loadPractitioner();\r\n }\r\n }\r\n\r\n\r\n //loadParticipants() {\r\n // this.auth.listParticipant().subscribe(res => {\r\n // this.participantList = res;\r\n // this.appointment.participant = this.participantList[0].id;\r\n // if (this.participantList[0] && this.participantList[0].address && this.participantList[0].schoolAddress) {\r\n // this.addressOptions = [\"Client Address\", \"School Address\", \"Other\"];\r\n // } else {\r\n // this.addressOptions = [\"Client Address\", \"Other\"];\r\n // }\r\n // if (this.selectedAddress && this.selectedAddress == \"Client Address\") {\r\n // this.appointment.location = this.selectedParticipant.address;\r\n // } else if (this.selectedAddress && this.selectedAddress == \"School Address\") {\r\n // this.appointment.location = this.selectedParticipant.schoolAddress;\r\n // }\r\n\r\n // })\r\n //}\r\n\r\n filterConfiguration(): any {\r\n const filter: any = {};\r\n return filter;\r\n }\r\n\r\n //public changed(value: any): void {\r\n // this.appointment.participant = value.data[0].id;\r\n // this.selectedParticipant = value.data[0];\r\n // if (this.selectedAddress && this.selectedAddress == \"Client Address\") {\r\n // this.appointment.location = this.selectedParticipant.address;\r\n // } else if (this.selectedAddress && this.selectedAddress == \"School Address\") {\r\n // this.appointment.location = this.selectedParticipant.schoolAddress;\r\n // }\r\n // if (this.selectedParticipant && this.selectedParticipant.address && this.selectedParticipant.schoolAddress) {\r\n // this.addressOptions = [\"Client Address\", \"School Address\", \"Other\"];\r\n // } else {\r\n // this.addressOptions = [\"Client Address\", \"Other\"];\r\n // }\r\n //}\r\n\r\n //therapistChanged(value) {\r\n // this.appointment.practitioner = value.data[0].id;\r\n //}\r\n\r\n //loadAppointmentType() {\r\n // this.auth.listAppointmentType().subscribe(res => {\r\n // this.listAppointmentType = res;\r\n // })\r\n //}\r\n\r\n\r\n\r\n //submit() {\r\n // this.hasFormErrors = false;\r\n // const newAppointment = new Appointment();\r\n // newAppointment.clear();\r\n // const preparedAppointment = this.prepareAppointment();\r\n // const formattedStartTime = moment(this.appointment.starttimeObj).format('HH:mm');\r\n // const formattedEndTime = moment(this.endtime).format('HH:mm');\r\n // this.currentTime = moment();\r\n // const prevDate = moment(this.appointment.starttimeObj).format('YYYY-MM-DD') + \" \";\r\n // const startTime = formattedStartTime;\r\n // const endTime = formattedEndTime;\r\n // this.startDateTime = moment(prevDate + startTime);\r\n // this.endDateTime = moment(prevDate + endTime);\r\n // if (this.startDateTime.isBefore(this.currentTime)) {\r\n // this.selecTimeErr = true;\r\n // this.selecTimeErrText = \"The time is of the past\";\r\n // return;\r\n // } else {\r\n // this.selecTimeErr = false;\r\n // }\r\n // if (this.endDateTime.isBefore(this.startDateTime)) {\r\n // this.selecTimeErr = true;\r\n // this.selecTimeErrText = \"End time should be greater than start time\";\r\n // return;\r\n // } else {\r\n // this.selecTimeErr = false;\r\n // }\r\n // //if (preparedAppointment.id) {\r\n // // this.updateAppointment(preparedAppointment);\r\n // //} else {\r\n // // this.addAppointment(preparedAppointment);\r\n // //}\r\n //}\r\n\r\n\r\n //prepareAppointment(): Appointment {\r\n // const _appointment = new Appointment();\r\n // _appointment.clear();\r\n // _appointment.id = this.appointment.id;\r\n // _appointment.practitionerId = this.appointment.practitioner;\r\n // _appointment.AppointmentTypeId = this.appointment.appointmentType;\r\n // _appointment.address = this.appointment.address;\r\n // _appointment.location = this.appointment.location;\r\n // _appointment.patientId = this.appointment.participant;\r\n // _appointment.addressType = this.appointment.addressType;\r\n // _appointment.startTime = moment(this.appointment.starttimeObj).format('YYYY-MM-DDTHH:mm:ss.SSS');\r\n // _appointment.endTime = moment(this.endtime).format('YYYY-MM-DDTHH:mm:ss.SSS');;\r\n // _appointment.appointmentDate = moment(this.appointment.starttimeObj).format('YYYY-MM-DDTHH:mm:ss.SSS');\r\n // _appointment.note = this.appointment.note;\r\n // return _appointment;\r\n //}\r\n\r\n //addAppointment(_appointment: Appointment) {\r\n // this.store.dispatch(new AppointmentOnServerCreated({ appointment: _appointment }));\r\n // const addSubscription = this.store.pipe(select(selectLastCreatedAppointmentId)).subscribe(newId => {\r\n // if (!newId) {\r\n // return;\r\n // }\r\n // this.dialogRef.close({\r\n // _appointment,\r\n // });\r\n // })\r\n //}\r\n\r\n //updateAppointment(_appointment: Appointment) {\r\n // this.auth.updateAppointment(_appointment).subscribe(res => {\r\n // if (res.success) {\r\n // this.dialogRef.close({\r\n // _appointment,\r\n // isEdit: true\r\n // });\r\n // }\r\n // })\r\n\r\n //}\r\n\r\n /**\r\n * Returns is title valid\r\n */\r\n //isFormValid(): boolean {\r\n // return (this.appointment && this.appointment.type && this.appointment.type.length > 0 && (this.appointment.practitioner && this.appointment.practitioner.length > 0) && (this.appointment.starttimeObj && moment(this.appointment.starttimeObj).isValid() && (this.endtime && moment(this.endtime).isValid())));\r\n //}\r\n\r\n //ngOnDestroy() {\r\n // if (this.subscriptions) {\r\n // this.subscriptions.map(item => item && item.unsubscribe());\r\n // }\r\n //}\r\n\r\n //onChangeTime(time) {\r\n // var outputTime = moment(time.value).add(30, 'minutes').format();\r\n // this.endtime = outputTime;\r\n //}\r\n\r\n //prepareNotification(notificationType) {\r\n // const practitioner = this.appointment.practitioner;\r\n // const _notification = new Notification();\r\n // _notification.clear();\r\n // _notification.id = undefined;\r\n // _notification.notify = \"participant\";\r\n // _notification.message = practitioner + \" has \" + notificationType + \" an appointment\";\r\n // _notification.read = false;\r\n // _notification.time = new Date();\r\n // _notification.redirectLink = \"participant-appointments/view\";\r\n // _notification.appointmentDate = new Date(this.appointment.date);\r\n // _notification.type = \"appointment\";\r\n // return _notification;\r\n //}\r\n\r\n //loadPractitioner() {\r\n // let queryParams = new QueryParamsModel(\r\n // this.filterConfiguration(),\r\n // );\r\n // this.store.dispatch(new PractitionerPageRequested({ page: queryParams }));\r\n // this.store.pipe(select(selectPractitionerInStore)).subscribe(res => {\r\n // if (res.items.length == 0) {\r\n // return;\r\n // }\r\n // this.practitionerList = res.items;\r\n // this.appointment.practitioner = this.practitionerList[0].id;\r\n // })\r\n //}\r\n\r\n //loadPractitionerWithTeam(teamId) {\r\n // this.auth.findPractitionerWithTeam(teamId).subscribe(res => {\r\n // if (res.length == 0) {\r\n // return;\r\n // }\r\n // this.practitionerList = res;\r\n // this.appointment.practitioner = this.practitionerList[0].id;\r\n // })\r\n\r\n //}\r\n\r\n //handleAddressChange(address) {\r\n // // console.log(\"address\", address.geometry.location.lat());\r\n // // console.log(\"Address\", address);\r\n // let streetNumber = \"\";\r\n // let streetName = \"\";\r\n // let city = \"\";\r\n // let state = \"\";\r\n // let postCode = \"\";\r\n // let country = \"\";\r\n // address.address_components.forEach(res => {\r\n // res.types.includes(\"street_number\") ? streetNumber = res.long_name : \"\";\r\n // res.types.includes(\"route\") ? streetName = res.long_name : \"\";\r\n // res.types.includes(\"administrative_area_level_2\") ? city = res.long_name : \"\";\r\n // res.types.includes(\"administrative_area_level_1\") ? state = res.long_name : \"\";\r\n // res.types.includes(\"postal_code\") ? postCode = res.long_name : \"\";\r\n // res.types.includes(\"country\") ? country = res.long_name : \"\";\r\n\r\n // })\r\n\r\n\r\n // this.appointment.address = {\r\n // name: address.formatted_address, //prev location\r\n // streetName: streetName,\r\n // streetNumber: streetNumber,\r\n // unit: null,\r\n // city: city,\r\n // state: state,\r\n // postalCode: postCode,\r\n // country: country,\r\n // latitude: address.geometry.location.lat(),\r\n // longitude: address.geometry.location.lng(),\r\n // observations: null,\r\n // addressType: null\r\n // }\r\n}\r\n\r\n //selectAddress(selectedAddress) {\r\n // this.selectedAddress = selectedAddress;\r\n // this.showAddress = true;\r\n // if (this.selectedAddress == \"Client Address\") {\r\n // this.appointment.location = this.selectedParticipant.address;\r\n // this.inputDisabled = true;\r\n // } else if (this.selectedAddress == \"School Address\") {\r\n // this.inputDisabled = true;\r\n // this.appointment.location = this.selectedParticipant.schoolAddress ? this.selectedParticipant.schoolAddress : \"\";\r\n // } else {\r\n // this.inputDisabled = false;\r\n // this.appointment.location = \"\";\r\n // }\r\n //}\r\n\r\n //closeDialogBox() {\r\n // this.dialogRef.close();\r\n //}\r\n\r\n //loadTeams() {\r\n // let queryParams = new QueryParamsModel(\r\n // this.filterConfiguration(),\r\n // );\r\n // this.store.dispatch(new TeamsPageRequested({ page: queryParams }));\r\n // this.store.pipe(select(selectTeamsInStore)).subscribe(res => {\r\n\r\n // if (res.items.length == 0) {\r\n // return;\r\n // }\r\n\r\n // this.teamList = res.items;\r\n // this.teamOptions = this.teamList.map(team => {\r\n // return team;\r\n // })\r\n // this.filteredTeamOptions = this.selectedTeam.valueChanges\r\n // .pipe(\r\n // startWith(''),\r\n // map(value => this._filter(value))\r\n // );\r\n // })\r\n //}\r\n\r\n //private _filter(value: string): string[] {\r\n // const filterValue = value;\r\n // if (value == \"\") {\r\n // // this.selectedClientId = \"\";\r\n // // let calendarView = this.calendarComponent.getApi();\r\n // // this.handleDatesRender(calendarView);\r\n // }\r\n // return this.teamOptions.filter(teamOption =>\r\n // (teamOption.name).toLowerCase().includes(filterValue));\r\n //}\r\n\r\n //teamSelected(event) {\r\n // this.selectedTeam.setValue(event.option.value.name);\r\n // this.selectedTeamID = event.option.value.id;\r\n // this.loadPractitionerWithTeam(this.selectedTeamID)\r\n //}\r\n\r\n //teamInputClick() {\r\n // this.selectedTeam.setValue(\"\");\r\n // this.selectedTeamID = \"\";\r\n // this.loadPractitioner();\r\n //}\r\n\r\n\r\n","\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

\r\n Doctor Scheduling\r\n

\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
SNHospitalNameDoctorNameDepartmentAppointment TypeAction
{{i+1}}\r\n\r\n\r\n {{ data.HospitalName }}\r\n \r\n N/A\r\n {{ data.DoctorName }}\r\n {{ data.DepartmentName }}\r\n \r\n N/A\r\n \r\n {{ data.ConsultationType }}\r\n \r\n \r\n View\r\n \r\n \r\n Add\r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n Add Doctor Profile\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNHospitalNameDoctorNameDepartmentAppointment TypeAction
{{i+1}}\r\n\r\n\r\n {{ data.HospitalName }}\r\n \r\n N/A\r\n {{ data.DoctorName }}\r\n {{ data.DepartmentName }}\r\n \r\n N/A\r\n \r\n {{ data.ConsultationType }}\r\n \r\n \r\n View\r\n \r\n \r\n Add\r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n Add Doctor Profile\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n Edit Doctor Scheduling Time\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNAvailability TypeDate\r\n Doctor Available\r\n Action
{{ i + 1 }}{{ list.AppointmentType }}{{ list.Date }}\r\n {{ list.StartTime }}   {{ list.StartMeridian }} -\r\n {{ list.EndTime }}   {{ list.EndMeridian }}\r\n \r\n \r\n   \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n View Doctor Scheduling Time\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNAvailability TypeDate\r\n Doctor Available\r\n Action
{{ i + 1 }}{{ list.AppointmentType }}{{ list.Date }}\r\n {{ list.StartTime }}   {{ list.StartMeridian }} -\r\n {{ list.EndTime }}   {{ list.EndMeridian }}\r\n \r\n \r\n   \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Edit Schedule
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Following Patients have appointment with Dr. {{doctorName}} in {{hospitalName}} on {{appointmentDate | date}}\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNPatient NameBooking TimeVisit ChargePayment Status
{{ i + 1 }}{{ list.patientName }}{{ list.appointmentTime }}{{list.visitCharge}} {{list.paymentStatus}}\r\n
\r\n
\r\n
\r\n
\r\n

Are you sure to delete anyway

\r\n \r\n \r\n \r\n
\r\n
\r\n

Are you sure to Edit anyway

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { NgbCalendar, NgbDate } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SchedulingService } from '../../../services/scheduling/scheduling.service';\r\nimport { Scheduling, SchedulingList } from '../../../models/scheduling/scheduling.model';\r\nimport { Router } from '@angular/router';\r\nimport { NotificationService } from '../../../services/notification.service';\r\nimport * as moment from 'moment';\r\nimport { Doctor } from '../../../models/doctor/doctor.model';\r\nimport { DoctorUpdateProfileComponent } from '../../../Doctor/doctor_updateprofile/app.doctor_updateprofile';\r\nimport { HospitalDoctorMap } from '../../../models/HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { AlertService } from 'src/app/services/alert.service';\r\n\r\n@Component({\r\n templateUrl: './doctor-scheduling.component.html',\r\n styleUrls: ['./doctor-scheduling.component.css']\r\n})\r\nexport class DoctorSchedulingComponent implements AfterViewInit {\r\n public scheduling: Scheduling = new Scheduling();\r\n selectedValue: any;\r\n public doctorList: any;\r\n public schedulingTime: any;\r\n public start: any;\r\n public end: any;\r\n meridian = true;\r\n showModal: any;\r\n public editModal: boolean;\r\n public editProfileModal: boolean;\r\n showView: any;\r\n public mapId: any;\r\n public docName: any;\r\n hoveredDate: NgbDate | null = null;\r\n public startTime = { hour: 0, minute: 0 };\r\n public endTime = { hour: 0, minute: 0, };\r\n fromDate: NgbDate;\r\n toDate: NgbDate | null = null;\r\n p: number = 1;\r\n collection = { count: 0, data: [] };\r\n schId: any;\r\n scheduleList: any;\r\n scheduleDetail: Array;\r\n editSchdule: boolean;\r\n public index: number = 0;\r\n public searchText: any = \"\";\r\n public AdminId: string;\r\n\r\n\r\n //ime = {hour: 14, minute: 30};\r\n public schedule: Scheduling = new Scheduling();\r\n public schedulingList: Array = new Array();\r\n public newScheduling: Scheduling = {\r\n SchedulingId: \"\", Date: null, StartDate: null, HospitalDoctorMapId: \"\", EndDate: null, StartTime: 0, EndTime: 0, DepartmentId: \"\", HospitalId: \"\", DoctorId: \"\"\r\n , DepatmentName: \"\", HospitalName: \"\", DoctorName: \"\", StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, NewScheduleList: [], ScheduleInterval: [], AppointmentType: \"\", AdminId: \"\"\r\n };\r\n @ViewChild('doctorModalEditor', { static: true })\r\n doctorModalEditor: DoctorUpdateProfileComponent;\r\n editedDoctor: HospitalDoctorMap;\r\n isDocEditor = false;\r\n isDocScheduleEditor = false;\r\n token: any;\r\n hospital: string;\r\n hospitalName: string;\r\n doctorName: string;\r\n accomodatedPatient: number;\r\n appointmentDate: any;\r\n time: any;\r\n public newSchedulingList: SchedulingList = { StartTime: 0, EndTime: 0, StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, AccomodatedPatient: 0 };\r\n\r\n public currentDate: any;\r\n hasAppointment: boolean = false;\r\n editSchduleModal: boolean = false;\r\n appointedPatientList: any;\r\n schedulingId: any;\r\n //public newScheduling:any={SchedulingId:\"\",StartTime:\"\",HospitalDoctorMapId:\"\",EndTime:\"\"}\r\n constructor(public calendar: NgbCalendar, public schedulingService: SchedulingService, public routing: Router, private notifyService: NotificationService, public authService: AuthenticationService, public alertService: AlertService) {\r\n this.getDoctor();\r\n this.editModal = false;\r\n this.editProfileModal = false;\r\n this.editSchdule = false;\r\n this.fromDate = calendar.getToday();\r\n this.toDate = calendar.getNext(calendar.getToday(), 'd', 10);\r\n this.token = this.authService.currentUserValue;\r\n this.hospital = this.token.HospitalIdentifier;\r\n\r\n\r\n }\r\n ngAfterViewInit() {\r\n\r\n this.doctorModalEditor.changesSavedCallback = () => {\r\n this.editProfileModal = false;\r\n this.getDoctor();\r\n };\r\n this.doctorModalEditor.changesCancelledCallback = () => {\r\n this.editProfileModal = false;\r\n };\r\n\r\n }\r\n public Admin() {\r\n\r\n this.routing.navigate(['/admin']);\r\n\r\n }\r\n public getDoctor() {\r\n this.schedulingService.getSchedulingDoctorList().subscribe(res => this.SuccessDoctorList(res),\r\n res => this.ErrorDoctorList(res));\r\n\r\n }\r\n public getSchedulingTime(mapId) {\r\n this.schedulingService.getSchedulingTime(mapId).subscribe((res) => this.SucessSchedulingTime(res),\r\n res => this.ErrorSchedulingTime(res));\r\n\r\n }\r\n SucessSchedulingTime(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n\r\n this.schedulingTime = res.Results;\r\n this.scheduleList = res.Results;\r\n for (var i = 0; i < this.schedulingTime.length; i++) {\r\n \r\n this.schedulingTime[i].Date = moment(this.schedulingTime[i].Date).format('L');\r\n }\r\n \r\n this.currentDate = moment(Date.now()).format('L');\r\n this.schedulingTime = this.schedulingTime.filter(a => a.Date >= this.currentDate);\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n \r\n }\r\n\r\n SuccessDoctorList(res) {\r\n this.doctorList = res;\r\n this.collection = { count: this.doctorList.length, data: [] }\r\n\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n DoctorName: this.doctorList[i].DoctorName,\r\n HospitalName: this.doctorList[i].HospitalName,\r\n DepartmentName: this.doctorList[i].DepartmentName,\r\n HospitalDoctorMapId: this.doctorList[i].HospitalDoctorMapId,\r\n DepartmentId: this.doctorList[i].DepartmentId,\r\n HospitalId: this.doctorList[i].HospitalId,\r\n DoctorId: this.doctorList[i].DoctorId,\r\n ConsultationType: this.doctorList[i].ConsultationType\r\n\r\n }\r\n );\r\n }\r\n }\r\n ErrorDoctorList(res) {\r\n this.notifyService.showError(\"Error\", \"There is no any doctor in the list\");\r\n }\r\n ErrorSchedulingTime(res) {\r\n this.notifyService.showError(\"Error\", \"There is no scheduling time for this Doctor!\");\r\n\r\n }\r\n Success(res) {\r\n this.routing.navigate(['/admin']);\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n\r\n Add(id, hosName, deptName, doctor) {\r\n if (hosName == null && deptName == null) {\r\n this.notifyService.showWarning('Update the Doctor with Adding Hospital and Department from Doctor Update profile.', 'Please!');\r\n }\r\n else {\r\n this.showModal = true;\r\n this.mapId = id;\r\n this.docName = doctor;\r\n this.routing.navigate(['addAppointment'], { queryParams: { id: this.mapId, doc: this.docName } });\r\n\r\n }\r\n\r\n }\r\n hide() {\r\n this.showModal = false;\r\n this.showView = false;\r\n this.editModal = false;\r\n this.editSchdule = false;\r\n }\r\n View(id, hosName, deptName) {\r\n if (hosName == null && deptName == null) {\r\n this.notifyService.showInfo('Update the Doctor with Adding Hospital and Department from Doctor Update profile.', 'Please!');\r\n }\r\n else {\r\n this.showView = true;\r\n this.mapId = id;\r\n this.getSchedulingTime(this.mapId);\r\n }\r\n\r\n }\r\n Edit(id, hosName, deptName) {\r\n if (hosName == null && deptName == null) {\r\n this.notifyService.showWarning('Update the Doctor with Adding Hospital and Department from Doctor Update profile.', 'Please!');\r\n }\r\n else {\r\n this.mapId = id;\r\n this.editSchdule = false;\r\n this.getSchedulingTime(this.mapId);\r\n this.editModal = true;\r\n }\r\n }\r\n editScheduling(SchedulingId) {\r\n this.editSchdule = true;\r\n this.editModal = false;\r\n this.showView = false;\r\n this.CheckForExistingAppointment(SchedulingId, 'fromEdit');\r\n this.schId = SchedulingId;\r\n this.EditScheduling();\r\n\r\n }\r\n DeleteAppointment(SchedulingId) {\r\n this.CheckForExistingAppointment(SchedulingId, 'fromDelete');\r\n }\r\n deleteScheduling() {\r\n this.schedulingService.deleteSchedule(this.schedulingId).subscribe(res => this.SuccessDelete(res),\r\n error => this.Error(error))\r\n }\r\n public Update() {\r\n this.scheduling.StartHours = this.startTime.hour;\r\n this.scheduling.StartMinutes = this.startTime.minute;\r\n this.scheduling.EndHours = this.endTime.hour;\r\n this.scheduling.EndMinutes = this.endTime.minute;\r\n let momentDate = new Date(this.schedule.StartDate);\r\n this.scheduling.StartDate = momentDate;\r\n this.scheduling.SchedulingId = this.schId;\r\n this.scheduling.AppointmentType = this.schedule.AppointmentType;\r\n this.newSchedulingList = new SchedulingList;\r\n this.newSchedulingList.AccomodatedPatient = this.accomodatedPatient;\r\n this.scheduling.NewScheduleList = new Array();\r\n this.scheduling.NewScheduleList.push(this.newSchedulingList);\r\n if (this.token.UserType === \"Admin\") {\r\n this.scheduling.AdminId = this.token.unique_name;\r\n }\r\n else {\r\n this.scheduling.AdminId = \"\";\r\n }\r\n this.schedulingService.updateScheduling(this.scheduling).subscribe(res => this.SuccessUpdate(res),\r\n res => this.Error(res));\r\n }\r\n SuccessUpdate(res) {\r\n this.editSchdule = false;\r\n this.notifyService.showSuccess('Sucess', 'Schedule Updated Successfully');\r\n }\r\n SuccessDelete(res) {\r\n this.notifyService.showSuccess('Sucess', 'Schedule Successfully Deleted');\r\n this.hasAppointment = false;\r\n this.editModal = false;\r\n this.editSchdule = false;\r\n this.showView = false;\r\n }\r\n deleteRow(index) {\r\n if (this.schedulingList.length == 1) {\r\n return false;\r\n } else {\r\n this.schedulingList.splice(index, 1);\r\n return true;\r\n }\r\n }\r\n addRow(i) {\r\n this.newScheduling = {\r\n SchedulingId: \"\", Date: null, StartDate: null, HospitalDoctorMapId: \"\", EndDate: null, StartTime: 0, EndTime: 0, DepartmentId: \"\", HospitalId: \"\", DoctorId: \"\"\r\n , DepatmentName: \"\", HospitalName: \"\", DoctorName: \"\", StartHours: 0, StartMinutes: 0, StartSeconds: 0, EndHours: 0, EndMinutes: 0, EndSeconds: 0, NewScheduleList: [], ScheduleInterval: [], AppointmentType: \"\", AdminId: \"\"\r\n };\r\n this.schedulingList.push(this.newScheduling);\r\n console.log(this.schedulingList);\r\n return true;\r\n }\r\n UpdateProfile(row: any) {\r\n delete row.id;\r\n let doctormap = new HospitalDoctorMap();\r\n doctormap = Object.assign(doctormap, row);\r\n this.isDocEditor = true;\r\n this.isDocScheduleEditor = true;\r\n this.editedDoctor = this.doctorModalEditor.editDoctorModal(doctormap, this.isDocEditor, this.isDocScheduleEditor, this.hospital);\r\n this.editProfileModal = true;\r\n }\r\n\r\n CheckForExistingAppointment(id, from) {\r\n this.schedulingId = id;\r\n this.schedulingService.checkExistingAppointment(this.schedulingId).subscribe((res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.appointedPatientList = res?.Results;\r\n if (this.appointedPatientList.length > 0) {\r\n this.hospitalName = this.appointedPatientList[0].hospitalName;\r\n this.doctorName = this.appointedPatientList[0].doctorName;\r\n // this.appointmentDate = moment(this.appointedPatientList[0].appointmentDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DD\");\r\n this.appointmentDate = this.appointedPatientList[0].appointmentDate;\r\n this.hasAppointment = true;\r\n }\r\n }else{\r\n this.alertService.error(res.ResponseMessage);\r\n }\r\n });\r\n if (!this.hasAppointment) {\r\n if (from == 'editScheduling') {\r\n this.EditScheduling();\r\n }\r\n else if (from == 'fromDelete') {\r\n this.deleteScheduling();\r\n }\r\n }\r\n }\r\n CancelDelete() {\r\n this.hasAppointment = false;\r\n this.editModal = false;\r\n this.editSchdule = false;\r\n }\r\n\r\n EditScheduling() {\r\n this.editModal = false;\r\n this.hasAppointment = false;\r\n this.editSchduleModal = true;\r\n this.scheduleDetail = this.scheduleList.filter(x => x.SchedulingId == this.schId);\r\n this.schedule.StartHours = parseInt(this.scheduleDetail[0].StartTime.substring(0, 2));\r\n if (this.scheduleDetail[0].StartTime.substring(6, 8) == 'PM') {\r\n var num = this.schedule.StartHours + 12;\r\n this.schedule.StartHours = num;\r\n }\r\n this.schedule.EndHours = parseInt(this.scheduleDetail[0].EndTime.substring(0, 2));\r\n if ((this.scheduleDetail[0].EndTime.substring(6, 8) == 'PM')) {\r\n var num = this.schedule.EndHours + 12;\r\n this.schedule.EndHours = num;\r\n }\r\n this.schedule.StartMinutes = parseInt(this.scheduleDetail[0].StartTime.substring(3, 5));\r\n this.startTime = { hour: this.schedule.StartHours, minute: this.schedule.StartMinutes }\r\n\r\n this.schedule.EndMinutes = parseInt(this.scheduleDetail[0].EndTime.substring(3, 5));\r\n this.endTime = { hour: this.schedule.EndHours, minute: this.schedule.EndMinutes }\r\n this.fromDate.year = this.scheduleDetail[0].Date.substring(6, 10);\r\n this.fromDate.month = this.scheduleDetail[0].Date.substring(0, 2);\r\n this.fromDate.day = this.scheduleDetail[0].Date.substring(3, 5);\r\n let mdtFrom = moment([this.fromDate.year, this.fromDate.month - 1, this.fromDate.day]);\r\n this.schedule.StartDate = new Date(mdtFrom.format('MM/DD/YYYY'));\r\n this.schedule.AppointmentType = this.scheduleDetail[0].AppointmentType;\r\n this.accomodatedPatient = this.scheduleDetail[0].AccomodatedPatient;\r\n // this.schedulingService.postScheduling(this.scheduling).subscribe(res => this.Success(res),\r\n // res => this.Error(res));\r\n }\r\n}\r\n\r\n\r\n","\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n This phone number is already registered. Upload your files right away.\r\n
\r\n
\r\n This phone number is not registered. Please fill the details.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \"\"\r\n

Drag and drop file here

\r\n

or

\r\n \r\n

Supported File Formats: doc(x), pdf, jpeg, jpg, png.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ file?.name }}\r\n

\r\n

\r\n {{ formatBytes(file?.size) }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { LabReportUploadEndpointService } from '../../../services/LabReportUpload/lab-report-upload-endpoint.service';\r\nimport { NotificationService } from '../../../services/notification.service';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-lab-report-upload',\r\n templateUrl: './lab-report-upload.component.html',\r\n styleUrls: ['./lab-report-upload.component.css']\r\n})\r\nexport class LabReportUploadComponent implements OnInit {\r\n isPhoneNumberRegistered: boolean = null;\r\n fileUploadForm: FormGroup = new FormGroup(\r\n {\r\n phoneNumber: new FormControl(\"\", [Validators.required, Validators.minLength(7), Validators.maxLength(15), Validators.pattern('^[0-9]*$')]),\r\n firstName: new FormControl(\"\"),\r\n lastName: new FormControl(\"\"),\r\n email: new FormControl(\"\", Validators.email)\r\n }\r\n )\r\n loading: boolean;\r\n token: any;\r\n\r\n constructor(public router: Router, public labReportUploadEndpoint: LabReportUploadEndpointService, private authenticationService: AuthenticationService,\r\n public notifyService: NotificationService, public ref: ChangeDetectorRef) {\r\n this.token = this.authenticationService.currentUserValue;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.configureFileUploadForm();\r\n }\r\n private configureFileUploadForm() {\r\n\r\n this.fileUploadForm = new FormGroup(\r\n {\r\n phoneNumber: new FormControl(\"\", [Validators.required, Validators.minLength(7), Validators.maxLength(15), Validators.pattern('^[0-9]*$')]),\r\n firstName: new FormControl(\"\"),\r\n lastName: new FormControl(\"\"),\r\n email: new FormControl(\"\", Validators.email)\r\n }\r\n );\r\n this.ref.detectChanges();\r\n\r\n this.fileUploadForm.get(\"firstName\").disable();\r\n this.fileUploadForm.get(\"lastName\").disable();\r\n this.fileUploadForm.get(\"email\").disable();\r\n this.isPhoneNumberRegistered = null;\r\n\r\n this.fileUploadForm.get(\"phoneNumber\").valueChanges.subscribe(newPhoneNumber => {\r\n\r\n this.fileUploadForm.get(\"firstName\").disable();\r\n this.fileUploadForm.get(\"lastName\").disable();\r\n this.fileUploadForm.get(\"email\").disable();\r\n this.isPhoneNumberRegistered = null;\r\n\r\n if (this.fileUploadForm.get(\"phoneNumber\").valid) {\r\n this.labReportUploadEndpoint.IsPhoneNumberRegistered(newPhoneNumber).subscribe(res => {\r\n\r\n this.fileUploadForm.get(\"firstName\").reset();\r\n this.fileUploadForm.get(\"lastName\").reset();\r\n this.fileUploadForm.get(\"email\").reset();\r\n\r\n if (res.isPhoneNumberRegistered) {\r\n this.isPhoneNumberRegistered = true;\r\n this.fileUploadForm.get(\"firstName\").setValue(res.user.FirstName);\r\n this.fileUploadForm.get(\"lastName\").setValue(res.user.LastName);\r\n this.fileUploadForm.get(\"email\").setValue(res.user.Email);\r\n }\r\n else {\r\n this.isPhoneNumberRegistered = false;\r\n this.fileUploadForm.get(\"firstName\").enable();\r\n this.fileUploadForm.get(\"lastName\").enable();\r\n this.fileUploadForm.get(\"email\").enable();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n uploadFileToActivity() {\r\n\r\n this.fileUploadForm.markAllAsTouched();\r\n this.fileUploadForm.updateValueAndValidity();\r\n\r\n if (this.fileUploadForm.invalid) {\r\n this.notifyService.showError(\"Please fill the form correctly.\", \"Failed\");\r\n return;\r\n }\r\n if (this.files.length == 0) {\r\n this.notifyService.showError(\"No file found. \\nPlease select a file.\", \"Failed\");\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n\r\n this.fileUploadForm.get(\"firstName\").enable();\r\n this.fileUploadForm.get(\"lastName\").enable();\r\n this.fileUploadForm.get(\"email\").enable();\r\n\r\n const formData: FormData = new FormData();\r\n\r\n for (let i = 0; i < this.files.length; i++) {\r\n formData.append(\"Files\", this.files[i], this.files[i].name)\r\n }\r\n const token = this.authenticationService.currentUserValue;\r\n let AdminId: string;\r\n\r\n if (token) {\r\n AdminId = token.unique_name;\r\n }\r\n this.labReportUploadEndpoint.uploadFile(this.fileUploadForm.value, formData,AdminId).subscribe(data => {\r\n this.configureFileUploadForm();\r\n\r\n this.files = [];\r\n this.notifyService.showSuccess(`Your files has been uploaded successfully.\r\n Sms Alert is ${data.isSmsSent ? '' : 'not '} sent.\r\n Email Alert is ${data.isEmailSent ? '' : 'not '} sent.`\r\n , \"Success\");\r\n this.loading = false;\r\n }, error => {\r\n this.notifyService.showError(\"Failed to upload the files. Please check console for more detail.\", \"Failed\")\r\n console.log(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public backToAdminPage() {\r\n this.router.navigate(['/admin']);\r\n }\r\n\r\n\r\n\r\n\r\n @ViewChild(\"fileDropRef\") fileDropEl: ElementRef;\r\n files: any[] = [];\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(files) {\r\n this.prepareFilesList(files);\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number) {\r\n if (this.files[index].progress < 100) {\r\n console.log(\"Upload in progress.\");\r\n return;\r\n }\r\n this.files.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Simulate the upload process\r\n */\r\n uploadFilesSimulator(index: number) {\r\n setTimeout(() => {\r\n if (index === this.files.length) {\r\n return;\r\n } else {\r\n const progressInterval = setInterval(() => {\r\n if (this.files[index].progress === 100) {\r\n clearInterval(progressInterval);\r\n this.uploadFilesSimulator(index + 1);\r\n } else {\r\n this.files[index].progress += 5;\r\n }\r\n }, 20);\r\n }\r\n }, 200);\r\n }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array) {\r\n var acceptedFileTypes = [\"image/jpeg\", \"image/jpg\", \"image/png\", \"application/pdf\", \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"];\r\n var unsupportedFileFound = false;\r\n for (const item of files) {\r\n if (!acceptedFileTypes.includes(item.type)) {\r\n unsupportedFileFound = true;\r\n continue;\r\n }\r\n this.files.push(item);\r\n item.progress = 0;\r\n }\r\n if (unsupportedFileFound)\r\n this.notifyService.showError(\"Unsupported file format.\", \"Upload Failed\");\r\n this.fileDropEl.nativeElement.value = \"\";\r\n this.uploadFilesSimulator(0);\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes, decimals = 2) {\r\n if (bytes === 0) {\r\n return \"0 Bytes\";\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals;\r\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n + Schedule Meeting\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNMeeting NumberApi KeyApi SecretIs-ActiveDoctor NameDoctor IdAction
{{ i + 1 }}{{ meeting.MeetingNumber }}{{ meeting.ApiKey }}{{ meeting.ApiSecret }}{{ meeting.IsActive }}{{ meeting.DoctorName }}{{ meeting.DoctorId }}\r\n \r\n Edit\r\n \r\n
\r\n
\r\n
\r\n Sorry! No Meetings found!\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Schedule New Meeting\r\n
\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Meeting Number*\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n \r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Update Meeting\r\n
\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Meeting Number*\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from \"@angular/forms\";\r\nimport { MeetingService } from \"src/app/services/Meeting/meeting.service\";\r\nimport { NotificationService } from \"src/app/services/notification.service\";\r\nimport { Meeting } from \"src/app/models/Meeting/meeting.model\";\r\nimport { DoctorService } from \"src/app/services/doctor/doctor.service\";\r\nimport { Doctor } from \"src/app/app.model\";\r\nimport { MatSelectChange } from \"@angular/material/select\";\r\n\r\n@Component({\r\n selector: \"app-meetingsetup\",\r\n templateUrl: \"./meetingsetup.component.html\",\r\n styleUrls: [\"./meetingsetup.component.css\"],\r\n})\r\nexport class MeetingsetupComponent implements OnInit {\r\n public edit: boolean = false;\r\n public editModal: boolean = false;\r\n public meetingException: boolean = false;\r\n public meetingInfo: Meeting = new Meeting();\r\n public isDoctorAvailable: boolean = false;\r\n public doctorList: Array = new Array();\r\n public docId: string;\r\n meetingScheduleForm: FormGroup;\r\n meetingForm = new Meeting();\r\n public meetingList: Array = new Array();\r\n public meetingLength: number;\r\n public isMeetingAvailable: boolean = false;\r\n\r\n constructor(\r\n public routing: Router,\r\n public meetingService: MeetingService,\r\n public notifyService: NotificationService,\r\n public docService: DoctorService,\r\n private formBuilder: FormBuilder\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.meetingScheduleForm = this.formBuilder.group({\r\n MeetingNumber: [null, [Validators.required]],\r\n ApiKey: [null, [Validators.required]],\r\n ApiSecret: [null, [Validators.required]],\r\n Password: [null, [Validators.required]],\r\n DoctorId: [null, [Validators.required]],\r\n IsActive: [null, [Validators.required]],\r\n ZoomMeetingId: [null],\r\n });\r\n\r\n this.getMeetings();\r\n this.GetDoctorList();\r\n }\r\n public Admin() {\r\n this.routing.navigate([\"/admin\"]);\r\n }\r\n getMeetings() {\r\n this.meetingService.getMeetingsList().subscribe(\r\n (res) => this.SuccessMeetingList(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessMeetingList(res) {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.meetingList = res.Results;\r\n this.meetingLength = this.meetingList.length;\r\n if (this.meetingList.length >= 1) {\r\n this.isMeetingAvailable = true;\r\n } else {\r\n this.isMeetingAvailable = false;\r\n }\r\n }\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\");\r\n }\r\n ErrorEdit(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\");\r\n }\r\n get f() {\r\n return this.meetingScheduleForm.controls;\r\n }\r\n ScheduleMeeting() {\r\n const form = this.meetingScheduleForm;\r\n\r\n if (form.invalid) {\r\n if (form.controls.MeetingNumber.invalid) {\r\n this.notifyService.showError(\"\", \"Meeting Number is required\");\r\n }\r\n if (form.controls.ApiKey.invalid) {\r\n this.notifyService.showError(\"\", \"Api Key is required\");\r\n }\r\n if (form.controls.ApiSecret.invalid) {\r\n this.notifyService.showError(\"\", \"Api Secret is required\");\r\n }\r\n if (form.controls.Password.invalid) {\r\n this.notifyService.showError(\"\", \"Password is required\");\r\n }\r\n if (form.controls.DoctorId.invalid) {\r\n this.notifyService.showError(\"\", \"Doctor is required\");\r\n }\r\n if (form.controls.IsActive.invalid) {\r\n this.notifyService.showError(\"\", \"Is Active is required\");\r\n }\r\n return;\r\n }\r\n this.meetingForm.MeetingNumber = form.value.MeetingNumber;\r\n this.meetingForm.ApiKey = form.value.ApiKey;\r\n this.meetingForm.ApiSecret = form.value.ApiSecret;\r\n this.meetingForm.Password = form.value.Password;\r\n this.meetingForm.DoctorId = form.value.DoctorId;\r\n this.meetingForm.IsActive = form.value.IsActive;\r\n\r\n this.meetingService.scheduleMeeting(this.meetingForm).subscribe(\r\n (res) => this.SuccessSchedule(res),\r\n (error) => this.Error(error)\r\n );\r\n }\r\n\r\n SuccessSchedule(res) {\r\n this.notifyService.showSuccess(\"\", \"Meeting Scheduled Successfully!\");\r\n window.location.reload();\r\n }\r\n GetDoctorList() {\r\n this.docService.getDoctorList().subscribe(\r\n (res) => this.SuccessDoctor(res),\r\n (res) => this.Error(res)\r\n );\r\n }\r\n SuccessDoctor(res) {\r\n let doclist;\r\n doclist = res?.Results;\r\n doclist.forEach((doc) => {\r\n for (var i = 0; i < doc.ConsultationType.length; i++) {\r\n this.isDoctorAvailable = true;\r\n this.doctorList.push(doc);\r\n break;\r\n }\r\n });\r\n if (this.doctorList.length < 1) {\r\n this.isDoctorAvailable = false;\r\n }\r\n }\r\n EditSchedule(meeting) {\r\n const form = this.meetingScheduleForm;\r\n this.edit = true;\r\n this.editModal = true;\r\n this.meetingScheduleForm\r\n .get(\"MeetingNumber\")\r\n .setValue(meeting.MeetingNumber);\r\n this.meetingScheduleForm.get(\"ApiKey\").setValue(meeting.ApiKey);\r\n this.meetingScheduleForm.get(\"ApiSecret\").setValue(meeting.ApiSecret);\r\n this.meetingScheduleForm.get(\"Password\").setValue(meeting.Password);\r\n this.meetingScheduleForm\r\n .get(\"IsActive\")\r\n .setValue(JSON.parse(meeting.IsActive));\r\n this.meetingScheduleForm.get(\"DoctorId\").setValue(meeting.DoctorId);\r\n this.meetingScheduleForm\r\n .get(\"ZoomMeetingId\")\r\n .setValue(meeting.ZoomMeetingId);\r\n\r\n if (form.invalid) {\r\n if (form.controls.MeetingNumber.invalid) {\r\n this.notifyService.showError(\"\", \"Meeting Number is required\");\r\n }\r\n if (form.controls.ApiKey.invalid) {\r\n this.notifyService.showError(\"\", \"Api Key is required\");\r\n }\r\n if (form.controls.ApiSecret.invalid) {\r\n this.notifyService.showError(\"\", \"Api Secret is required\");\r\n }\r\n if (form.controls.Password.invalid) {\r\n this.notifyService.showError(\"\", \"Password is required\");\r\n }\r\n if (form.controls.DoctorId.invalid) {\r\n this.notifyService.showError(\"\", \"Doctor is required\");\r\n }\r\n if (form.controls.IsActive.invalid) {\r\n this.notifyService.showError(\"\", \"Is Active is required\");\r\n }\r\n return;\r\n }\r\n }\r\n EditScheduleMeeting(form) {\r\n var meeting = form.value;\r\n this.meetingService.updateMeeting(meeting).subscribe(\r\n (res) => this.SuccessEdit(res),\r\n (err) => this.Error(err)\r\n );\r\n }\r\n SuccessEdit(res) {\r\n this.notifyService.showSuccess(\"\", \"Meeting Edited Successfully!\");\r\n window.location.reload();\r\n }\r\n clearForm() {\r\n this.meetingScheduleForm.reset();\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n\r\n
\r\n

\r\n Order List\r\n

\r\n\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
#IdOrder NumberDateAmtOrder StatusPayment StatusPayment Method
{{p+i+1}}{{data.OrderGuid }}{{data.CustomOrderNumber }}{{data.OrderedDate | date:'yyyy-MM-dd hh:mm' }}{{data.OrderTotal }}{{data.OrderStatus }}{{data.PaymentStatus }}{{data.PaymentMethodSystem }}
\r\n\r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { OrderService } from \"../../../services/order/order.service\";\r\n\r\n@Component({\r\n selector: 'app-order',\r\n templateUrl: './order.component.html',\r\n styleUrls: ['./order.component.css']\r\n})\r\nexport class OrderComponent {\r\n orders: any[] = [];\r\n p: number = 1;\r\n public searchText: any;\r\n constructor(public orderService: OrderService) {\r\n this.orderService.getAllProducts(this.p)\r\n .subscribe(res => {\r\n console.log(res);\r\n this.orders = res;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n + Register Patient\r\n \r\n
\r\n
\r\n

\r\n Patient List\r\n

\r\n\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNFull NameAge/GenderContact NumberAddressEmailDOBBlood GroupAction
{{i+1}}{{data.FirstName }} {{data.MiddleName}} {{data.LastName}} {{data.PatientName}}{{data.Age }}/{{data.Gender }} \r\n {{ data.CountryCode }}\r\n -{{data.ContactNumber}}\r\n {{data.Address }}{{data.MailingAddress ? data.MailingAddress : \"\" }}{{data.DateOfBirth ? data.DateOfBirth : \"\" }}{{data.BloodGroup }}\r\n \r\n \r\n Update Profile \r\n \r\n \r\n \r\n Reset Password \r\n
\r\n\r\n \r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Select Appointment Type

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
","import { Component, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { Global } from '../../../app.global';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { PatientService } from '../../../services/patient/patient.service';\r\nimport { AlertService } from '../../../services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Patient } from '../../../models/patient/patient.model';\r\nimport { PatientUpdateProfileComponent } from '../../../Patient/patient_updateprofile/app.patient_updateprofile';\r\nimport { PasswordComponent } from '../../common/password/password.component';\r\n\r\n@Component({\r\n templateUrl: './patient_list.component.html',\r\n styleUrls: ['./patient_list.component.css']\r\n})\r\nexport class AdminPatientListComponent implements AfterViewInit {\r\n config: any;\r\n token: any;\r\n public searchText: any;\r\n patientList: Array = new Array();\r\n filteredPatientList: any;\r\n public editModal: boolean;\r\n collection = { count: 60, data: [] };\r\n p: number = 1;\r\n @ViewChild('patientEditor', { static: true })\r\n patientEditor: PatientUpdateProfileComponent;\r\n editedPatient: Patient;\r\n @ViewChild('pwdEditor', { static: true })\r\n pwdEditor: PasswordComponent;\r\n editedPwdPatient: Patient;\r\n isPatEditor = false;\r\n hospital: string;\r\n patientName: string;\r\n public pwdModal: boolean;\r\n public showVisitTypePopup: boolean = false;\r\n constructor(public routing: Router, public patService: PatientService, public authService: AuthenticationService, public alertService: AlertService,\r\n public global: Global, public notifyService: NotificationService, public dialog: MatDialog,) {\r\n this.token = this.authService.currentUserValue;\r\n this.showPatientList();\r\n this.editModal = false;\r\n this.pwdModal = false;\r\n this.hospital = this.token.HospitalIdentifier;\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n ngAfterViewInit() {\r\n\r\n this.patientEditor.changesSavedCallback = () => {\r\n this.editModal = false;\r\n this.showPatientList();\r\n };\r\n this.patientEditor.changesCancelledCallback = () => {\r\n this.editModal = false;\r\n };\r\n this.pwdEditor.changesSavedCallback = () => {\r\n this.pwdModal = false;\r\n this.showPatientList();\r\n };\r\n this.pwdEditor.changesCancelledCallback = () => {\r\n this.pwdModal = false;\r\n };\r\n\r\n }\r\n\r\n public showPatientList() {\r\n this.patService.getAllPatient().subscribe((res: any) => {\r\n this.patientList = Object.assign(this.patientList, res?.Results);\r\n for (let pat of this.patientList) {\r\n if (pat.DateOfBirth == null)\r\n pat.DateOfBirth = \"\";\r\n else\r\n pat.DateOfBirth = moment(pat.DateOfBirth).format('L');\r\n }\r\n },\r\n\r\n\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n\r\n UpdateProfile(row: Patient) {\r\n this.isPatEditor = true;\r\n this.editedPatient = this.patientEditor.editAdminPatient(row, this.isPatEditor, this.hospital);\r\n this.editModal = true;\r\n }\r\n ResetPassword(row: Patient) {\r\n this.patientName = `${row.FirstName + \" \" + row.MiddleName + \" \" + row.LastName}`;\r\n this.editedPwdPatient = this.pwdEditor.resetPwd(row, this.patientName);\r\n this.pwdModal = true;\r\n }\r\n hide() {\r\n this.editModal = false;\r\n }\r\n RegPatient() {\r\n this.routing.navigate(['register'], { queryParams: { id: \"patientregister\", hospital: this.hospital } });\r\n }\r\n BookAppointment(data) {\r\n this.patService.PatientId = data.PatientId;\r\n this.showVisitTypePopup = true;\r\n }\r\n\r\n CloseVisittypepopup() {\r\n this.showVisitTypePopup = false;\r\n }\r\n\r\n SetOnlineAppointment() {\r\n this.patService.VisitType = \"Online Appointment\";\r\n this.routing.navigate(['/HospitalList'], { queryParams: { routefrom: \"admin\", VisitType: \"Online Appointment\" } });\r\n }\r\n\r\n SetTelemedicineAppointment() {\r\n this.patService.VisitType = \"Telemedicine\";\r\n this.routing.navigate(['/HospitalList'], { queryParams: { routefrom: \"admin\", VisitType: \"Telemedicine\" } });\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n \r\n \r\n   Appointment Over Phone\r\n \r\n
\r\n\r\n
\r\n

\r\n Patient Appointment List\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
SNPatient NameAge/GenderPhonenumberDepartmentDoctor DateTimeVisit TypeStatusAction
{{i+1}}{{data.PatientName}}{{data.Age}}/{{data.Gender}}{{data.ContactNumber}}{{data.DepartmentName}}{{data.DoctorName}}{{data.VisitDate | date:'mediumDate'}}{{data.BookingTime}}{{data.VisitType}}{{data.PaymentStatus}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

\r\n Cancelled Booked List\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNPatient NameAge/GenderPhonenumberDepartment Doctor DateTimeStatusAction
{{i+1}}{{data.PatientName}}{{data.Age}}/{{data.Gender}}{{data.ContactNumber}}{{data.DepartmentName}}{{data.DoctorName}}{{data.VisitDate | date:'mediumDate'}}{{data.CancelledBookingTime}}{{data.PaymentStatus}}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Payment Status\r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Router } from '@angular/router';\r\nimport { DoctorService } from '../../../services/doctor/doctor.service';\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { PatientService } from '../../../services/patient/patient.service';\r\nimport { AlertService } from '../../../services/alert.service';\r\nimport { NotificationService } from '../../../services/notification.service';\r\nimport { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';\r\nimport { Global } from '../../../app.global';\r\nimport { RescheduleComponent } from '../../../Doctor/doctor_reschedule/app.doctor_reschedule';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Visit } from '../../../models/visit/visit.model';\r\nimport { PopUpDialogComponent } from '../../common/popup/pop-up.component';\r\nexport interface DialogData {\r\n cancel: string;\r\n}\r\n@Component({\r\n //selector: 'admin-root',\r\n templateUrl: './admin.patientappointment.html'\r\n})\r\nexport class AdminPanelPatientAppointment {\r\n public today = new Date();\r\n config: any;\r\n token: any;\r\n public todate = moment().format('YYYY-MM-DD');\r\n public fromdate = moment().format('YYYY-MM-DD');\r\n public filterdate = moment().format('YYYY-MM-DD');\r\n patientList: any[] = [];\r\n patientDanpheCareList: any;\r\n filteredDailyVisitList: any;\r\n filteredpatientList: any;\r\n public showpatientList: boolean;\r\n public showcancelledAppointmentpatientList: boolean;\r\n public showView: boolean = false;\r\n visitObj: Visit = new Visit();\r\n collection = { count: 60, data: [] };\r\n progress: number;\r\n message: string;\r\n public visitId: string;\r\n p: number = 1;\r\n selectedValue = \"\";\r\n isCancelled: boolean;\r\n IsDanpheCare = false;\r\n PaymentStatus = [\r\n { \"status\": \"paid\" },\r\n { \"status\": \"free\" },\r\n { \"status\": \"unpaid\" },\r\n ];\r\n PaymentStatusDanpheCare = [\r\n { \"status\": \"paid\" },\r\n { \"status\": \"free\" },\r\n { \"status\": \"unpaid\" },\r\n { \"status\": \"credit\" },\r\n ];\r\n public index: number;\r\n public FilePath: String = \"\";\r\n private readonly _UploadFileUrl: string = \"api/Patient/UploadPatFile\";\r\n\r\n constructor(public routing: Router, public docService: DoctorService, public authService: AuthenticationService, public patService: PatientService, public alertService: AlertService,\r\n public global: Global, public notify: NotificationService, public http: HttpClient, public dialog: MatDialog) {\r\n this.token = this.authService.currentUserValue;\r\n this.ShowPatientList();\r\n this.ShowData();\r\n\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n public ShowData() {\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n value: \"items number \" + (i + 1)\r\n }\r\n );\r\n }\r\n\r\n this.config = {\r\n itemsPerPage: 5,\r\n currentPage: 1,\r\n totalItems: this.collection.count\r\n };\r\n }\r\n\r\n public ShowPatientList() {\r\n this.showcancelledAppointmentpatientList = false;\r\n this.showpatientList = true;\r\n //var id = this.token.PatientIdentifier;\r\n this.docService.getPatientListByAdmin().subscribe(res => {\r\n if(res.IsSuccess && res?.Results){\r\n this.patientList = res.Results;\r\n this.patientDanpheCareList = (this.patientList != null && this.patientList.length > 0) ? this.patientList[0].HospitalIdentifier : \"NA\";\r\n if (this.patientDanpheCareList === \"DanpheTeleHealth\") {\r\n this.IsDanpheCare = true;\r\n }\r\n else {\r\n this.IsDanpheCare = false;\r\n }\r\n\r\n this.collection = { count: this.patientList.length, data: [] }\r\n this.collection.data = this.patientList.map((pat, index) => {\r\n return {\r\n id: index + 1,\r\n VisitDate: moment(pat.VisitDate).format(\"YYYY-MM-DD\"),\r\n PatientName: pat.PatientName,\r\n ContactNumber: pat.ContactNumber,\r\n DoctorName: pat.DoctorName,\r\n Age: pat.Age != null ? pat.Age : moment().diff(pat.DateOfBirth, 'years'),\r\n PaymentStatus: pat.PaymentStatus,\r\n BookingTime: pat.BookingTime,\r\n HospitalId: pat.HospitalId,\r\n DepartmentId: pat.DepartmentId,\r\n DoctorId: pat.DoctorId,\r\n VisitId: pat.VisitId,\r\n SchedulingId: pat.SchedulingId,\r\n VisitStatus: pat.Status,\r\n Gender: pat.Gender,\r\n DepartmentName: pat.DepartmentName,\r\n VisitType: pat.VisitType\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.FilterbyDate();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n });\r\n\r\n }\r\n //ChangeFromDate() {\r\n // // moment().format(\"DD/MM/YYYY\");\r\n // this.filteredDailyVisitList = new Array();\r\n // this.filteredDailyVisitList = JSON.parse(JSON.stringify(this.collection.data));//deepcopy\r\n // this.filteredDailyVisitList = this.filteredDailyVisitList.filter(a => a.VisitDate == this.filterdate);\r\n // //console.log(this.filterdate);\r\n //}\r\n //ChangeToDate() {\r\n // // moment().format(\"DD/MM/YYYY\");\r\n // this.filteredDailyVisitList = new Array();\r\n // this.filteredDailyVisitList = JSON.parse(JSON.stringify(this.collection.data));//deepcopy\r\n // this.filteredDailyVisitList = this.filteredDailyVisitList.filter(a => a.VisitDate == this.filterdate);\r\n // //console.log(this.filterdate);\r\n //}\r\n FilterbyDate() {\r\n this.filteredpatientList = new Array();\r\n this.filteredpatientList = JSON.parse(JSON.stringify(this.collection.data));\r\n // console.log(this.filteredpatientList);\r\n this.Search();\r\n }\r\n\r\n Search() {\r\n var todatemoment = moment(this.todate, 'YYYY-MM-DD');\r\n var fromdatemoment = moment(this.fromdate, 'YYYY-MM-DD');\r\n var diff = moment(todatemoment).diff(fromdatemoment, 'days');\r\n if (diff >= 0) {\r\n this.filteredpatientList = new Array();\r\n this.filteredpatientList = JSON.parse(JSON.stringify(this.collection.data));\r\n for (var i = 0; i < this.filteredpatientList.length; i++) {\r\n this.filteredpatientList[i].VisitDate = moment(this.filteredpatientList[i].VisitDate, 'YYYY-MM-DD');\r\n // this.patBookList[i].VisitStartTime = moment(this.patBookList[i].VisitStartTime).format('LT');\r\n }\r\n this.filteredpatientList = this.filteredpatientList.filter(a => a.VisitDate <= todatemoment && a.VisitDate >= fromdatemoment);\r\n\r\n } else {\r\n this.notify.showWarning(\"Sorry\", \"Please check date interval !!\");\r\n }\r\n }\r\n\r\n Error(res) {\r\n\r\n }\r\n\r\n ChangeStatus(data) {\r\n this.selectedValue = data.PaymentStatus;\r\n this.visitId = data.VisitId;\r\n this.showView = true;\r\n\r\n }\r\n paymentstatusChanged() {\r\n this.visitObj.PaymentStatus = this.selectedValue;\r\n }\r\n hide() {\r\n this.showView = false;\r\n }\r\n\r\n Reschedule(data) {\r\n const dialogRef = this.dialog.open(RescheduleComponent,\r\n { data: { docId: data.DoctorId, deptId: data.DepartmentId, hosId: data.HospitalId, visitId: data.VisitId, schedullingId: data.SchedulingId, bookingTime: data.BookingTime, appointmentType: data.VisitType }, width: '1000px', height: '1000px' }\r\n );\r\n console.log(data.SchedulingId);\r\n dialogRef.disableClose = true;\r\n dialogRef.afterClosed().subscribe(result => {\r\n dialogRef.close();\r\n // console.log(`Dialog result: ${result}`);\r\n this.routing.navigate(['/PatientAppointmentList']);\r\n this.ShowPatientList();\r\n });\r\n }\r\n\r\n UpdateStatus() {\r\n this.patService.updatePaymentStatus(this.visitObj, this.visitId).subscribe(res => {\r\n this.showView = false;\r\n this.SuccessUpdate();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n });\r\n }\r\n SuccessUpdate() {\r\n this.notify.showSuccess('Updated successfully', 'Success');\r\n this.ShowPatientList();\r\n }\r\n\r\n public Admin() {\r\n this.routing.navigate(['/admin']);\r\n }\r\n routeToAppointmentOverPhone() {\r\n this.routing.navigate(['/PatientAppointmentList/ByPhone']);\r\n }\r\n CancelBooking(data) {\r\n if (data.PaymentStatus != \"paid\") {\r\n this.visitId = data.VisitId;\r\n this.visitObj.SchedulingId = data.SchedulingId;\r\n this.visitObj.BookingTime = data.BookingTime;\r\n this.patService.cancelBooking(this.visitObj, this.visitId).subscribe(res => {\r\n this.notify.showSuccess('Booking cancelled !!', 'Success');\r\n this.ShowPatientList();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n });\r\n\r\n } else {\r\n this.notify.showError(\"Paid Booking cannot be cancelled \", \"Sorry\");\r\n }\r\n }\r\n\r\n openDialog(data) {\r\n const dialogRef = this.dialog.open(PopUpDialogComponent, {\r\n data: { msg: \"fromAdmin\" },\r\n width: '250px',\r\n height: '300',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.isCancelled = result;\r\n if (this.isCancelled === true) {\r\n this.CancelBooking(data);\r\n }\r\n });\r\n\r\n }\r\n ShowCancelledAppointment() {\r\n this.showpatientList = false;\r\n this.showcancelledAppointmentpatientList = true;\r\n this.docService.getCancelledAppointmentPatientByAdmin().subscribe(res => {\r\n this.patientList = res;\r\n\r\n this.collection = { count: this.patientList.length, data: [] }\r\n this.collection.data = this.patientList.map((pat, index) => {\r\n return {\r\n id: index + 1,\r\n VisitDate: moment(pat.VisitDate).format(\"YYYY-MM-DD\"),\r\n PatientName: pat.PatientName,\r\n ContactNumber: pat.ContactNumber,\r\n DoctorName: pat.DoctorName,\r\n Age: moment().diff(pat.DateOfBirth, 'years'),\r\n PaymentStatus: pat.PaymentStatus,\r\n BookingTime: pat.BookingTime,\r\n HospitalId: pat.HospitalId,\r\n DepartmentId: pat.DepartmentId,\r\n DoctorId: pat.DoctorId,\r\n VisitId: pat.VisitId,\r\n SchedulingId: pat.SchedulingId,\r\n VisitStatus: pat.Status,\r\n Gender: pat.Gender,\r\n DepartmentName: pat.DepartmentName,\r\n CancelledBookingTime: pat.CancelledBookingTime,\r\n AppointmentType: pat.VisitType\r\n };\r\n })\r\n\r\n this.FilterbyDate();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n\r\n upload(files, visitId) {\r\n this.message = null;\r\n if (files.length === 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of files) {\r\n formData.append(file.name, file);\r\n console.log('file', formData);\r\n }\r\n\r\n const uploadReq = new HttpRequest('POST', `${this._UploadFileUrl}/${visitId}`, formData);\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n // if (this.progress == 100) {\r\n // this.index = i;\r\n // }\r\n }\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = event.body.toString();\r\n }\r\n if (this.message != null) {\r\n this.notify.showSuccess('Uploaded Successfully', 'Success');\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

\r\n Appointment Over Phone\r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNContactPatient NameRequested ByAppointment Requested On
{{i+1}}{{data.ContactNumber}}{{data.Name}}{{data.RequestedBy}}{{data.CreatedDate | date : 'yyyy-MM-dd hh:mm aa '}}
\r\n
\r\n\r\n \r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport * as moment from \"moment\";\r\nimport { DoctorService } from \"../../../../services/doctor/doctor.service\";\r\nimport { NotificationService } from \"../../../../services/notification.service\";\r\n\r\n@Component({\r\n selector: 'appointments-over-phone-list',\r\n templateUrl: './appointments-over-phone.component.html',\r\n styleUrls: ['./appointments-over-phone.component.css']\r\n})\r\nexport class AppointmentsOverPhoneComponent {\r\n searchFilter = {\r\n fromDate: moment().subtract(7, \"days\").format('YYYY-MM-DD'),\r\n toDate: moment().format('YYYY-MM-DD')\r\n }\r\n currentPage: number = 1;\r\n appointmentsOverPhone: any[] = [];\r\n constructor(public routing: Router, public notify: NotificationService, public docService: DoctorService) {\r\n this.getAppointmentsBookedOverPhone();\r\n }\r\n routeToAdminPage() {\r\n this.routing.navigate(['/admin']);\r\n }\r\n routeToAppointmentListPage() {\r\n this.routing.navigate(['/PatientAppointmentList']);\r\n }\r\n getAppointmentsBookedOverPhone() {\r\n this.docService.getAppointmentsBookedOverPhone(this.searchFilter.fromDate, this.searchFilter.toDate)\r\n .subscribe(res => this.appointmentsOverPhone = res, err => {\r\n console.log(err);\r\n this.notify.showError(\"Something went wrong.\", \"Failed\")\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
What product do you want to add?
\r\n \r\n
\r\n
\r\n
\r\n \r\n
{{currentPageInForm}} Section
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"product-image\"\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n 0\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the Product Name.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the Sku.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Separate tags with comma ','\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the newPrice.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the Start Date.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the End Date.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Child Product Section

\r\n
\r\n \r\n \r\n \r\n {{option.Name }} - SKU : {{option.Sku}} - Price: {{option.Price}}\r\n \r\n \r\n
\r\n To add a grouped product, please insert child products in display section.\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Sku \r\n {{product.sku}}\r\n \r\n Name \r\n {{product.name}}\r\n Price {{product.price}} Action
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the Product Name.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n Powered By\r\n
\r\n \"imark\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ProductModel } from 'src/app/models/Product/product.model';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { ProductService } from 'src/app/services/product/product.service';\r\nimport * as moment from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\nfunction ChildProductsVaidator() {\r\n return (formGroup: FormGroup) => {\r\n const childProductFormArray = formGroup.get('displayGroup.childProducts') as FormArray;\r\n const productTypeControl = formGroup.get('catalogGroup.productType').value;\r\n childProductFormArray.setErrors(null);\r\n if (productTypeControl == \"Grouped\") {\r\n if (childProductFormArray.length == 0)\r\n childProductFormArray.setErrors({ required: true });\r\n }\r\n return null;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-add-product',\r\n templateUrl: './add-product.component.html',\r\n styleUrls: ['./add-product.component.css']\r\n})\r\nexport class AddProductComponent implements OnInit {\r\n pagesInForm = { catalogAndSales: \"Catalog And Sales\", display: \"Display\", seo: \"SEO\" };\r\n currentPageInForm: string = this.pagesInForm.catalogAndSales;\r\n productForm: FormGroup;\r\n get productNameControl(): FormControl {\r\n return this.productForm.get('catalogGroup.productName') as FormControl;\r\n }\r\n get skuControl(): FormControl {\r\n return this.productForm.get('catalogGroup.sku') as FormControl;\r\n }\r\n get productTypeControl(): FormControl {\r\n return this.productForm.get('catalogGroup.productType') as FormControl;\r\n }\r\n get newPriceControl(): FormControl {\r\n return this.productForm.get('salesGroup.newPrice') as FormControl;\r\n }\r\n get permalinkControl(): FormControl {\r\n return this.productForm.get('seoGroup.permalink') as FormControl;\r\n }\r\n get childProductSearchKeyword(): FormControl {\r\n return this.productForm.get('displayGroup.childProductSearchKeyword') as FormControl;\r\n }\r\n get childProducts(): FormArray {\r\n return this.productForm.get('displayGroup.childProducts') as FormArray;\r\n }\r\n get childProductsValues(): any[] {\r\n const childProductsControl = this.productForm.get('displayGroup.childProducts');\r\n return childProductsControl.value as any[];\r\n }\r\n\r\n @ViewChild('childProductTable') childProductTable: MatTable;\r\n public AllProductsList: Array = new Array();\r\n public filteredProducts: Array = new Array();\r\n public filteredProductsForMatAutocomplete: Observable;\r\n public product: ProductModel;\r\n public loading: boolean = false;\r\n public ProductTypesList: Array = new Array();\r\n public ProductTagsList: Array = new Array();\r\n public editMode: boolean = false;\r\n public addNewProductTypePopup: boolean = false;\r\n\r\n productId: number;\r\n public progress: any;\r\n public message: any;\r\n public previewImgSrc: any;\r\n public imageUploaded: boolean = false;\r\n public productImageExist: boolean = false;\r\n public file: any;\r\n\r\n constructor(public activatedRoute: ActivatedRoute, public router: Router, public productService: ProductService, public notificationService: NotificationService) {\r\n this.ProductTagsList = this.productService.ProductTagsList;\r\n this.ProductTypesList = productService.ProductTypesList;\r\n this.getAllProducts();\r\n this.GetAllProductTypes();\r\n this.GetAllProductTags();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n const productIdToEdit = this.activatedRoute.snapshot.paramMap.get(\"id\");\r\n if (productIdToEdit != null) {\r\n this.editMode = true;\r\n this.productId = parseInt(productIdToEdit);\r\n this.AssignProductDetails(this.productId);\r\n }\r\n else {\r\n this.productForm = this.buildProductForm();\r\n this.setupCustomFilterForChildProductsAutoComplete();\r\n }\r\n }\r\n private buildProductForm(product?: ProductModel): FormGroup {\r\n const standardProductAddForm = new FormGroup({\r\n catalogGroup: new FormGroup({\r\n productName: new FormControl(product ? product.Name : '', Validators.required),\r\n sku: new FormControl(product ? product.Sku : '', Validators.required),\r\n manufacturerPartNo: new FormControl(product ? product.ManufacturerPartNumber : ''),\r\n productType: new FormControl(product ? product.ProductType.Type : 'Single'),\r\n productTypeId: new FormControl(product ? product.ProductTypeId : ''),\r\n productTag: new FormControl(product ? product.ProductTags.map(a => a.Name).join(', ') : ''),\r\n groupingLabel: new FormControl(product ? product.GroupingLabel : ''),\r\n isRefundable: new FormControl(product ? !product.NotReturnable : false),\r\n shortDescription: new FormControl(product ? product.ShortDescription : ''),\r\n fullDescription: new FormControl(product ? product.FullDescription : ''),\r\n adminComments: new FormControl(product ? product.AdminComment : '')\r\n }),\r\n displayGroup: new FormGroup({\r\n visibleIndividually: new FormControl(product ? product.VisibleIndividually : false),\r\n showProductOnHomePage: new FormControl(product ? product.ShowOnHomepage : false),\r\n disableBuyButton: new FormControl(product ? product.DisableBuyButton : false),\r\n markAsNew: new FormControl(product ? product.MarkAsNew : false),\r\n markAsNewStartDate: new FormControl(product ? product.MarkAsNewStartDateTime : moment().format(\"YYYY-MM-DD\")),\r\n markAsNewEndDate: new FormControl(product ? product.MarkAsNewEndDateTime : moment().format(\"YYYY-MM-DD\")),\r\n displayOrder: new FormControl(product ? product.DisplayOrder : ''),\r\n childProductSearchKeyword: new FormControl(''),\r\n childProducts: new FormArray([])\r\n }),\r\n salesGroup: new FormGroup({\r\n newPrice: new FormControl('', Validators.required),\r\n oldPrice: new FormControl(product ? product.OldPrice : '')\r\n }),\r\n seoGroup: new FormGroup({\r\n permalink: new FormControl(product ? product.PermaLink : '', Validators.required),\r\n metaTitle: new FormControl(product ? product.MetaTitle : ''),\r\n metaKeyword: new FormControl(product ? product.MetaKeywords : ''),\r\n metaDescription: new FormControl(product ? product.MetaDescription : '')\r\n })\r\n }, { validators: ChildProductsVaidator() });\r\n\r\n standardProductAddForm.get('catalogGroup.productName').valueChanges.subscribe((newProductName: string) => {\r\n const whiteSpace = ' ';\r\n const dash = '-';\r\n standardProductAddForm.get('seoGroup.permalink').setValue(newProductName.trim().toLowerCase().replace(whiteSpace, dash));\r\n });\r\n standardProductAddForm.get('catalogGroup.productType').valueChanges.subscribe((newProductType: string) => {\r\n const productTypeId = this.ProductTypesList.find(a => a.Type == newProductType).Id;\r\n standardProductAddForm.get('catalogGroup.productTypeId').setValue(productTypeId);\r\n });\r\n\r\n return standardProductAddForm;\r\n }\r\n private setupCustomFilterForChildProductsAutoComplete() {\r\n this.filteredProductsForMatAutocomplete = this.childProductSearchKeyword.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this._filterChildProducts(value))\r\n );\r\n }\r\n\r\n private _filterChildProducts(value: string): ProductModel[] {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.filteredProducts.filter(option => option.Name.toLowerCase().includes(filterValue));\r\n }\r\n buildChildProduct(productModel: ProductModel): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl(productModel.Id),\r\n name: new FormControl(productModel.Name),\r\n sku: new FormControl(productModel.Sku),\r\n price: new FormControl(productModel.Price)\r\n });\r\n }\r\n addChildProduct(productEvent) {\r\n // remove the element of the array to disable duplicate items\r\n this.filteredProducts.splice(this.filteredProducts.indexOf(productEvent.option.value), 1);\r\n this.childProducts.push(this.buildChildProduct(productEvent.option.value));\r\n this.productForm.get('displayGroup.childProductSearchKeyword').reset();\r\n }\r\n removeChildProductAt(index: number) {\r\n // add the removed product to the list\r\n const removedProductId = this.childProducts.controls[index].get('id').value;\r\n this.filteredProducts.push(this.AllProductsList.find(a => a.Id == removedProductId));\r\n\r\n this.childProducts.removeAt(index);\r\n }\r\n\r\n goToNextPage() {\r\n this.productForm.updateValueAndValidity();\r\n switch (this.currentPageInForm) {\r\n\r\n case this.pagesInForm.catalogAndSales:\r\n this.productForm.get('catalogGroup').markAllAsTouched();\r\n this.productForm.get('salesGroup').markAllAsTouched();\r\n if (this.productForm.get('catalogGroup').valid && this.productForm.get('salesGroup').valid) {\r\n this.currentPageInForm = this.pagesInForm.display;\r\n }\r\n break;\r\n\r\n case this.pagesInForm.display:\r\n this.productForm.get('displayGroup').markAllAsTouched();\r\n if (this.productForm.get('catalogGroup').valid) {\r\n this.currentPageInForm = this.pagesInForm.seo;\r\n }\r\n break;\r\n case this.pagesInForm.seo:\r\n this.productForm.get('seoGroup').markAllAsTouched();\r\n if (this.productForm.get('seoGroup').valid) {\r\n this.addProduct();\r\n }\r\n }\r\n }\r\n goToPreviousPage() {\r\n switch (this.currentPageInForm) {\r\n case this.pagesInForm.seo:\r\n this.currentPageInForm = this.pagesInForm.display;\r\n break;\r\n case this.pagesInForm.display:\r\n this.currentPageInForm = this.pagesInForm.catalogAndSales;\r\n break;\r\n case this.pagesInForm.catalogAndSales:\r\n this.close();\r\n break;\r\n\r\n }\r\n }\r\n addProduct() {\r\n this.productForm.updateValueAndValidity();\r\n this.productForm.markAllAsTouched();\r\n if (this.productForm.valid) {\r\n this.loading = true;\r\n const formData = new FormData();\r\n\r\n if (this.file && this.file.length != 0)\r\n formData.append(\"productImageFile\", this.file, this.file.name);\r\n\r\n formData.append(\"ProductDetails\", JSON.stringify(this.productForm.value));\r\n\r\n if (this.editMode)\r\n this.callUpdateProductApi(formData);\r\n else\r\n this.callAddProductApi(formData);\r\n }\r\n }\r\n private callAddProductApi(formData: FormData) {\r\n this.productService.AddProduct(formData).subscribe(res => {\r\n if (res) {\r\n this.notificationService.showSuccess('Product has been Added Successfully!', '');\r\n this.router.navigate([\"Product\"]);\r\n }\r\n else {\r\n this.notificationService.showError('Something went wrong.', 'Failed');\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n private callUpdateProductApi(formData: FormData) {\r\n this.productService.updateProduct(formData, this.productId).subscribe(\r\n res => {\r\n if (res) {\r\n this.notificationService.showSuccess('The Product is Updated Successfully!', 'Updated');\r\n this.router.navigate([\"Product\"]);\r\n }\r\n this.loading = false;\r\n },\r\n err => {\r\n console.log(err.toString());\r\n this.notificationService.showError('Something went wrong.', 'Failed');\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public GetAllProductTypes() {\r\n this.productService.getAllProductTypes().subscribe(\r\n res => {\r\n if (res) {\r\n this.ProductTypesList = Object.assign(this.ProductTypesList, res);\r\n\r\n if (this.productForm && this.productForm.get('catalogGroup.productType').value == \"Single\")\r\n this.productForm.get('catalogGroup.productTypeId').setValue(this.ProductTypesList.find(a => a.Type == \"Single\").Id);\r\n }\r\n },\r\n err => {\r\n alert(err);\r\n }\r\n );\r\n }\r\n public GetAllProductTags() {\r\n this.productService.getAllProductTags().subscribe(\r\n res => {\r\n if (res) {\r\n this.ProductTagsList = Object.assign(this.ProductTagsList, res);\r\n }\r\n },\r\n err => {\r\n alert(err);\r\n }\r\n );\r\n }\r\n\r\n uploadFileLocally(files) {\r\n if (files.length === 0)\r\n return;\r\n else {\r\n // Start: show image preview\r\n\r\n // 1. create img src with fileReader\r\n var mimeType = files[0].type;\r\n if (mimeType.match(/image\\/*/) == null) {\r\n this.notificationService.showError(\"error\", [\"Only images are supported.\"]);\r\n return;\r\n }\r\n var reader = new FileReader();\r\n reader.readAsDataURL(files[0]);\r\n reader.onload = (_event) => {\r\n this.previewImgSrc = reader.result;\r\n this.imageUploaded = true;\r\n }\r\n // End: show image preview\r\n\r\n this.file = files[0];\r\n\r\n }\r\n\r\n }\r\n ClearImage() {\r\n this.file = null;\r\n this.previewImgSrc = null;\r\n this.imageUploaded = false;\r\n }\r\n\r\n\r\n public AssignProductDetails(productId) {\r\n this.productService.getProduct(productId).subscribe(\r\n res => {\r\n if (res) {\r\n this.product = new ProductModel();\r\n this.product = Object.assign(this.product, res);\r\n this.productForm = this.buildProductForm(this.product);\r\n this.setupCustomFilterForChildProductsAutoComplete();\r\n if (this.product.ProductType.Type == \"Grouped\") {\r\n this.product.ChildProducts.forEach((c: any) => {\r\n this.childProducts.push(this.buildChildProduct(c.ChildProduct));\r\n });\r\n\r\n // remove the child products from the options\r\n const childProductIds: number[] = this.product.ChildProducts.map((c: any) => c.ChildProductId);\r\n this.filteredProducts = this.filteredProducts.filter(p => !childProductIds.includes(p.Id));\r\n }\r\n this.productImageExist = false;\r\n if (this.product.PictureId) {\r\n this.productImageExist = true;\r\n this.GetProductImage(this.product.PictureId);\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n public GetProductImage(productImageId) {\r\n this.productService.getProductImage(productImageId).subscribe(\r\n res => {\r\n if (res) {\r\n this.previewImgSrc = 'data:image/jpeg;base64,' + res;\r\n }\r\n },\r\n err => {\r\n alert(err);\r\n }\r\n );\r\n }\r\n public getAllProducts() {\r\n this.productService.getAllProducts().subscribe(\r\n res => {\r\n if (res) {\r\n this.AllProductsList = Object.assign(this.AllProductsList, res);\r\n this.filteredProducts = this.AllProductsList.filter(a => a.IsActive && a.ProductType == \"Single\");\r\n }\r\n },\r\n err => {\r\n this.notificationService.showWarning(err, 'Error!');\r\n });\r\n }\r\n public close() {\r\n if (confirm(\"All unsaved changes will be lost. Do you want to cancel the update?\")) {\r\n this.router.navigate([\"Product\"]);\r\n }\r\n }\r\n childProductDisplayFunction(product: ProductModel): string {\r\n return product ? `${product.Name} - SKU : ${product.Sku} - Price: ${product.Price}` : '';\r\n }\r\n\r\n onListDrop(event: CdkDragDrop) {\r\n const prevIndex = this.childProductsValues.findIndex((d) => d === event.item.data);\r\n // Swap the elements around\r\n moveItemInArray(this.childProductsValues, prevIndex, event.currentIndex);\r\n this.childProductTable.renderRows();\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n
\r\n \r\n \r\n + Add Product\r\n \r\n
\r\n\r\n
\r\n

\r\n Product List\r\n

\r\n\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
#Product NameProduct TypeHospital NameShort DescriptionPrice(Rs)Action
{{i+1}}{{data.Name }}{{data.ProductType }}{{data.HospitalName }}\r\n
{{data.ShortDescription }}
\r\n
{{data.Price }}\r\n Edit\r\n {{data.IsActive ? \"Deactivate\" : \"Activate\"}} \r\n
\r\n\r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Are You Sure you want to {{selectedProduct.IsActive ? \"deactivate\" : \"activate\"}} this product??

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Product Details
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { hostname } from 'os';\r\nimport { Hospital } from 'src/app/models/hospital/hospital.model';\r\nimport { ProductModel } from 'src/app/models/Product/product.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { HospitalService } from 'src/app/services/hospital/hospital.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { ProductService } from 'src/app/services/product/product.service';\r\n\r\n@Component({\r\n selector: 'app-product-list',\r\n templateUrl: './product-list.component.html',\r\n styleUrls: ['./product-list.component.css']\r\n})\r\nexport class ProductListComponent implements OnInit {\r\n token: any;\r\n AllProductsList: Array = new Array();\r\n ParentProducts: Array = new Array();\r\n ProductDetails: ProductModel = new ProductModel();\r\n editRecord: boolean = false;\r\n IsParentGroupedProduct: boolean = false;\r\n editMode: boolean = false;\r\n showProductAddEditModel: boolean = false;\r\n showActivateDeactivatePopUp: boolean = false;\r\n productId: number = 0;\r\n hospitalList: Array = new Array();\r\n searchText: any;\r\n p: number = 1;\r\n isPreview: boolean = false;\r\n selectedProduct: ProductModel;\r\n AdminId: string;\r\n\r\n constructor(public routing: Router, public productService: ProductService, public authService: AuthenticationService, public notificationService: NotificationService,private authenticationService: AuthenticationService,\r\n public hospitalService: HospitalService) {\r\n\r\n this.token = this.authService.currentUserValue;\r\n this.getAllProducts();\r\n this.productService.GetAllHospital();\r\n this.productService.GetAllProductTags();\r\n this.productService.GetAllProductTypes();\r\n }\r\n\r\n ngOnInit() {\r\n this.hospitalList = this.productService.hospitalList;\r\n\r\n }\r\n public getAllProducts() {\r\n this.productService.getAllProducts().subscribe(\r\n res => {\r\n if (res)\r\n this.AllProductsList = Object.assign(this.AllProductsList, res);\r\n this.ParentProducts = this.AllProductsList.filter(a => a.IsActive == true);\r\n },\r\n err => {\r\n this.notificationService.showWarning(err, 'Error!');\r\n });\r\n }\r\n\r\n\r\n public EditProduct(productId) {\r\n this.routing.navigate([`/Product/${productId}/Edit`]);\r\n }\r\n\r\n public Preview(productId) {\r\n this.isPreview = true;\r\n this.productId = productId;\r\n }\r\n\r\n public ShowActivateDeactivatePopUp(product) {\r\n this.selectedProduct = product;\r\n this.showActivateDeactivatePopUp = true;\r\n }\r\n\r\n public CloseActivateDeactivatePopUp() {\r\n this.showActivateDeactivatePopUp = false;\r\n this.selectedProduct = null;\r\n }\r\n\r\n public ActivateDeactivateProductEndpoint() {\r\n const token = this.authenticationService.currentUserValue;\r\n\r\n let adminId: string;\r\n\r\n if (token) {\r\n adminId = token.unique_name;\r\n }\r\n this.productService.activateDeactivateProductEndpoint(this.selectedProduct.Id, adminId).subscribe(\r\n res => {\r\n this.selectedProduct.IsActive = !this.selectedProduct.IsActive;\r\n\r\n if (this.selectedProduct.IsActive)\r\n this.notificationService.showSuccess('The Product has been activated sucessfully', 'Activated');\r\n else\r\n this.notificationService.showSuccess('The Product has been deactivated sucessfully', 'Deactivated');\r\n\r\n this.CloseActivateDeactivatePopUp();\r\n\r\n },\r\n err => {\r\n this.notificationService.showError(err, 'Error');\r\n });\r\n }\r\n\r\n public Close() {\r\n this.isPreview = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Hospital } from 'src/app/models/hospital/hospital.model';\r\nimport { ProductModel } from 'src/app/models/Product/product.model';\r\nimport { ProductType } from 'src/app/models/Product/productType.model';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { ProductService } from 'src/app/services/product/product.service';\r\n\r\n@Component({\r\n selector: 'app-view-product',\r\n templateUrl: './view-product.component.html',\r\n styleUrls: ['./view-product.component.css']\r\n})\r\nexport class ViewProductComponent implements OnInit {\r\n public ProductDetails: ProductModel = new ProductModel();\r\n public editMode: boolean = false;\r\n public previewImgSrc: any;\r\n public productImageExist: boolean = false;\r\n @Input('ProductId') public productId: number;\r\n\r\n public hospitalName: any;\r\n public productTag: string = null;\r\n public productType; string = null;\r\n public HospitalDetails: Hospital = new Hospital();\r\n public ProductTypeDetails: ProductType = new ProductType();\r\n public ProductTagDetails: any;\r\n\r\n\r\n constructor(public productService: ProductService, public notificationService: NotificationService) {\r\n this.productService.GetAllHospital();\r\n this.productService.getAllProductTypes();\r\n this.ProductTagDetails = this.productService.ProductTagsList;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.productId != 0) {\r\n this.Preview();\r\n }\r\n }\r\n\r\n public Preview() {\r\n if (this.productService.hospitalList.length != 0 && this.productService.ProductTypesList.length != 0 && this.productService.ProductTagsList.length != 0) {\r\n this.productService.getProduct(this.productId).subscribe(\r\n res => {\r\n if (res) {\r\n this.ProductDetails = new ProductModel();\r\n this.productImageExist = false;\r\n this.ProductDetails.Name = res.Name;\r\n this.ProductDetails.NotReturnable = res.NotReturnable;\r\n this.ProductDetails.OldPrice = res.OldPrice;\r\n this.ProductDetails.PermaLink = res.PermaLink;\r\n this.ProductDetails.PictureId = res.PictureId;\r\n this.ProductDetails.Price = res.Price;\r\n this.ProductDetails.ProductCost = res.ProductCost;\r\n this.ProductTagDetails = this.ProductTagDetails.find(a => a.Id = res.ProductTagId);\r\n this.ProductTypeDetails = res.ProductType;\r\n this.ProductDetails.ProductType = this.ProductTypeDetails.Type;\r\n this.ProductDetails.ShortDescription = res.ShortDescription;\r\n this.ProductDetails.ShowOnHomepage = res.ShowOnHomepage;\r\n this.ProductDetails.Sku = res.Sku;\r\n this.ProductDetails.UpdatedBy = res.UpdatedBy;\r\n this.ProductDetails.VisibleIndividually = res.VisibleIndividually;\r\n this.ProductDetails.AdminComment = res.AdminComment;\r\n this.ProductDetails.DisableBuyButton = res.DisableBuyButton;\r\n this.ProductDetails.DisplayOrder = res.DisplayOrder;\r\n this.ProductDetails.FullDescription = res.FullDescription;\r\n this.ProductDetails.HospitalId = res.HospitalId;\r\n this.HospitalDetails = res.Hospital;\r\n this.hospitalName = this.HospitalDetails.HospitalName;\r\n this.ProductDetails.MetaDescription = res.MetaDescription;\r\n this.ProductDetails.ManufacturerPartNumber = res.ManufacturerPartNumber;\r\n this.ProductDetails.MetaKeywords = res.MetaKeywords;\r\n this.ProductDetails.MetaTitle = res.MetaTitle;\r\n if (this.ProductDetails.PictureId) {\r\n this.productImageExist = true;\r\n this.GetProductImage(this.ProductDetails.PictureId);\r\n }\r\n\r\n }\r\n }\r\n\r\n );\r\n }\r\n else {\r\n this.notificationService.showError('Somenting went Wrong', 'Error!!');\r\n }\r\n }\r\n\r\n\r\n public GetProductImage(productImageId) {\r\n this.productService.getProductImage(productImageId).subscribe(\r\n res => {\r\n if (res) {\r\n this.previewImgSrc = 'data:image/jpeg;base64,' + res;\r\n }\r\n\r\n },\r\n err => {\r\n alert(err);\r\n }\r\n );\r\n }\r\n}\r\n\r\n\r\n","\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

\r\n Appointment Master Report\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n All\r\n {{doctor.DoctorName}}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n All\r\n {{dept.DepartmentName}}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n All\r\n Telemedicine\r\n Online Appointment\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n All\r\n New\r\n Follow-Up\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n All\r\n Paid\r\n Unpaid\r\n Free\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n All\r\n E-Sewa\r\n Khalti\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDate and TimePatient NameAge/GenderContact NumberAddressDepartmentDoctor NameAppointment TypeVisit TypePayment statusPayment mediumAmount
{{10 *(p-1)+(i+1)}}{{data.VisitDate | date:'mediumDate'}} and {{data.BookingTime}}{{data.FirstName }} {{data.MiddleName}} {{data.LastName}} {{data.PatientName}}{{data.Age }}/{{data.Gender }}{{data.ContactNumber }}{{data.Address }}{{data.DepartmentName }}{{data.DoctorName }}{{data.AppointmentType }}{{data.VisitType }}{{data.PaymentStatus }}{{data.PaymentMedium }}{{data.Amount }}
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDate and TimePatient NameAge/GenderContact NumberAddressDepartmentDoctor NameAppointment TypeVisit TypePayment statusPayment mediumAmount
{{i+1}}{{data.VisitDate | date:'mediumDate'}} and {{data.BookingTime}}{{data.FirstName }} {{data.MiddleName}} {{data.LastName}} {{data.PatientName}}{{data.Age }}/{{data.Gender }}{{data.ContactNumber }}{{data.Address }}{{data.DepartmentName }}{{data.DoctorName }}{{data.AppointmentType }}{{data.VisitType }}{{data.PaymentStatus }}{{data.PaymentMedium }}{{data.Amount }}
\r\n
\r\n\r\n
\r\n\r\n
\r\n

\r\n Doctor's Order Report\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n {{doctor.DoctorName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n {{dept.DepartmentName}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n Telemedicine\r\n Online Appointment\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n All\r\n New\r\n Follow-Up\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateDoctor NameItem NameDepartmentAppointment TypeVisit TypeTotal QuantityTotal Amount
{{10 *(p-1)+(i+1)}}{{data.VisitDate | date:'mediumDate'}}{{data.DoctorName }}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateDoctor NameItem NameDepartmentAppointment TypeVisit TypeTotal QuantityTotal Amount
{{i+1}}{{data.VisitDate | date:'mediumDate'}}{{data.DoctorName }}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateDoctor NameItem NameDepartmentAppointment TypeVisit TypePatient NameAge/GenderTotal QuantityTotal Amount
{{10 *(p-1)+(i+1)}}{{data.VisitDate | date:'mediumDate'}}{{data.DoctorName }}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.PatientName }}{{data.Age }}/{{data.Gender }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNDateDoctor NameItem NameDepartmentAppointment TypeVisit TypePatient NameAge/GenderTotal QuantityTotal Amount
{{i+1}}{{data.VisitDate | date:'mediumDate'}}{{data.DoctorName }}{{data.ItemName}}{{data.DepartmentName }}{{data.AppointmentType }}{{data.VisitType }}{{data.PatientName }}{{data.Age }}/{{data.Gender }}{{data.TotalQuantity }}{{data.TotalAmount }}
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n","import { Component, ViewChild, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global } from '../../../app.global';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { DoctorService } from '../../../services/doctor/doctor.service';\r\nimport { AlertService } from '../../../services/alert.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { HospitalService } from '../../../services/hospital/hospital.service';\r\nimport * as moment from 'moment';\r\nimport { AnyCnameRecord } from 'dns';\r\n\r\n@Component({\r\n templateUrl: './report.component.html',\r\n styleUrls: ['./report.component.css']\r\n})\r\nexport class ReportComponent {\r\n config: any;\r\n token: any;\r\n searchText : any;\r\n public showAppMasterReport:boolean=false;\r\n public showDocOrderReport:boolean=false;\r\n public reportData:any;\r\n collection = { count: 60, data: [] };\r\n public filteredpatientList: any;\r\n public todate = moment().format('YYYY-MM-DD');\r\n public fromdate = moment().format('YYYY-MM-DD');\r\n public showPrint: boolean = false;\r\n public printDetails: any;\r\n public fromDate: string = null;\r\n public toDate: string = null;\r\n public doctorList: Array = new Array();\r\n public deptList: Array = new Array();\r\n public selDoctor: any = \"\";\r\n public selDept: any = \"\";\r\n public selAppointmentType: any = \"\";\r\n public selVisitType: any = \"\";\r\n public selPaymentStatus: any = \"\";\r\n public selPaymentMedium: any = \"\";\r\n public selItem: any = \"\";\r\n public showDetailView: boolean = false;\r\n public reportHeader: any;\r\n public masterReportList:any;\r\n public p: number = 1;\r\n constructor(public routing: Router, public hospitalService: HospitalService, public authService: AuthenticationService, public alertService: AlertService,\r\n public global: Global, public notifyService: NotificationService, public dialog: MatDialog, public changeDetector: ChangeDetectorRef, public docService: DoctorService ) {\r\n this.token = this.authService.currentUserValue;\r\n this.AppMasterReport();\r\n this.getDoctorList();\r\n this.GetDepartmentList();\r\n }\r\n pageChanged(event) {\r\n this.config.currentPage = event;\r\n }\r\n\r\n GetReportData(){\r\n this.hospitalService.getAppMasterReport().subscribe((res: any) => {\r\n this.reportData = res?.Results;\r\n for (var i = 0; i < this.reportData.length; i++) {\r\n this.reportData[i].VisitDate = moment(this.reportData[i].VisitDate).format(\"YYYY-MM-DD\");\r\n // this.patBookList[i].VisitStartTime = moment(this.patBookList[i].VisitStartTime).format('LT');\r\n }\r\n this.collection = { count: this.reportData.length, data: [] }\r\n for (var i = 0; i < this.collection.count; i++) {\r\n this.collection.data.push(\r\n {\r\n id: i + 1,\r\n VisitDate: this.reportData[i].VisitDate,\r\n PatientName: this.reportData[i].PatientName,\r\n ContactNumber: this.reportData[i].ContactNumber,\r\n Address: this.reportData[i].Address,\r\n DoctorName: this.reportData[i].DoctorName,\r\n Age: this.reportData[i].Age,\r\n PaymentStatus: this.reportData[i].PaymentStatus,\r\n BookingTime: this.reportData[i].BookingTime,\r\n HospitalId: this.reportData[i].HospitalId,\r\n DepartmentId: this.reportData[i].DepartmentId,\r\n DoctorId: this.reportData[i].DoctorId,\r\n VisitId: this.reportData[i].VisitId,\r\n SchedulingId: this.reportData[i].SchedulingId,\r\n VisitStatus: this.reportData[i].Status,\r\n Gender: this.reportData[i].Gender,\r\n DepartmentName: this.reportData[i].DepartmentName,\r\n AppointmentType: this.reportData[i].AppointmentType,\r\n VisitType: this.reportData[i].FollowUpVisitType,\r\n PaymentMedium: this.reportData[i].PaymentMethod,\r\n Amount: this.reportData[i].Amount\r\n }\r\n );\r\n }\r\n\r\n this.FilterbyDate();\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n\r\n AppMasterReport(){\r\n this.showAppMasterReport=true;\r\n this.showDocOrderReport=false;\r\n this.todate = moment().format('YYYY-MM-DD');\r\n this.fromdate = moment().format('YYYY-MM-DD');\r\n this.selDoctor = \"\";\r\n this.selDept = \"\";\r\n this.selAppointmentType = \"\";\r\n this.selVisitType = \"\";\r\n this.selPaymentStatus = \"\";\r\n this.selPaymentMedium = \"\";\r\n this.p = 1;\r\n this.GetReportData();\r\n }\r\n FilterbyDate() {\r\n this.filteredpatientList = new Array();\r\n this.filteredpatientList = JSON.parse(JSON.stringify(this.collection.data));\r\n this.Search();\r\n }\r\n Search() {\r\n var todatemoment = moment(this.todate, 'YYYY-MM-DD');\r\n var fromdatemoment = moment(this.fromdate, 'YYYY-MM-DD');\r\n var diff = moment(todatemoment).diff(fromdatemoment, 'days');\r\n if (diff >= 0) {\r\n this.filteredpatientList = new Array();\r\n this.filteredpatientList = JSON.parse(JSON.stringify(this.collection.data));\r\n for (var i = 0; i < this.filteredpatientList.length; i++) {\r\n this.filteredpatientList[i].VisitDate = moment(this.filteredpatientList[i].VisitDate, 'YYYY-MM-DD');\r\n // this.patBookList[i].VisitStartTime = moment(this.patBookList[i].VisitStartTime).format('LT');\r\n }\r\n this.filteredpatientList = this.filteredpatientList.filter(a => a.VisitDate <= todatemoment && a.VisitDate >= fromdatemoment);\r\n this.masterReportList = this.filteredpatientList;\r\n } else {\r\n this.notifyService.showWarning(\"Sorry\", \"Please check date interval !!\");\r\n }\r\n }\r\n\r\n PrintTxnTable() {\r\n try {\r\n this.showPrint = false;\r\n this.printDetails = null;\r\n this.changeDetector.detectChanges();\r\n this.showPrint = true;\r\n this.printDetails = document.getElementById(\"printpage\").innerHTML;\r\n this.print();\r\n } catch (ex) {\r\n this.ShowCatchErrMessage(ex);\r\n }\r\n }\r\n public ShowCatchErrMessage(exception) {\r\n if (exception) {\r\n let ex: Error = exception;\r\n this.notifyService.showError(\"error\", [\"Check error in Console log !\"]);\r\n console.log(\"Error Messsage => \" + ex.message);\r\n console.log(\"Stack Details => \" + ex.stack);\r\n }\r\n }\r\n\r\n print() {\r\n var contents = this.printDetails;\r\n var iframe = document.createElement('iframe');\r\n document.body.appendChild(iframe);\r\n\r\n if(this.showAppMasterReport == true){\r\n this.reportHeader = \"Appointment Master Report\";\r\n }\r\n else{\r\n this.reportHeader = \"Doctor's Order Report\";\r\n }\r\n\r\n let documentContent = \"\";\r\n // documentContent += '';\r\n documentContent += '';\r\n documentContent += '
' + this.reportHeader + '

';\r\n documentContent += '' + contents + ''\r\n var htmlToPrint = '' + '';\r\n htmlToPrint += documentContent;\r\n iframe.contentWindow.document.open();\r\n iframe.contentWindow.document.write(htmlToPrint);\r\n iframe.contentWindow.document.close();\r\n\r\n setTimeout(function () {\r\n document.body.removeChild(iframe);\r\n }, 500);\r\n\r\n //this.notifyService.showSuccess('Success','Printed Successfully!!');\r\n }\r\n\r\n ExportToExcel(tableData) {\r\n var workSheetName;\r\n var Heading;\r\n var filename;\r\n\r\n if (tableData) {\r\n if(this.showAppMasterReport == true){\r\n workSheetName = 'Appointment Master Report';\r\n Heading = 'Appointment Master Report';\r\n filename = 'Appointment_Master_Report';\r\n }\r\n else{\r\n workSheetName = \"Doctor's Order Report\";\r\n Heading = \"Doctor's Order Report\";\r\n filename = \"Doctors_Order_Report\";\r\n }\r\n \r\n this.ConvertHTMLTableToExcel(tableData, workSheetName, Heading, filename);\r\n }\r\n }\r\n public ConvertHTMLTableToExcel(table: any, SheetName: string, TableHeading: string, FileName: string) {\r\n try {\r\n if (table) {\r\n let workSheetName = (SheetName.length > 0) ? SheetName : 'Sheet';\r\n let PrintDate = 'Created Date:' + moment().format('YYYY-MM-DD') + '
'\r\n let Heading = '

' + TableHeading + '

';\r\n let filename = (FileName.length > 0) ? FileName : 'Exported_Excel_File';\r\n filename = filename + '_' + moment().format('YYYYMMMDDhhss') + '.xls';\r\n\r\n let uri = 'data:application/vnd.ms-excel;base64,'\r\n , template = '{PrintDate}{DateRange}{Heading}{table}
'\r\n , base64 = function (s) { return window.btoa(decodeURIComponent(encodeURIComponent(s))) }\r\n , format = function (s, c) { return s.replace(/{(\\w+)}/g, function (m, p) { return c[p]; }) }\r\n if (!table.nodeType) table = document.getElementById(table)\r\n var ctx = { worksheet: workSheetName, table: table.innerHTML, PrintDate: PrintDate, Heading: Heading }\r\n //return window.location.href = uri + base64(format(template, ctx)) \r\n var link = document.createElement('a');\r\n link.href = uri + base64(format(template, ctx));\r\n link.setAttribute('download', filename);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n }\r\n\r\n DocOrderReport(){\r\n this.showDocOrderReport=true;\r\n this.showAppMasterReport=false;\r\n this.todate = moment().format('YYYY-MM-DD');\r\n this.fromdate = moment().format('YYYY-MM-DD');\r\n this.selItem = \"\";\r\n this.selDoctor = \"\";\r\n this.selDept = \"\";\r\n this.selAppointmentType = \"\";\r\n this.selVisitType = \"\";\r\n this.p = 1;\r\n this.GetReportData();\r\n}\r\n\r\ngetDoctorList() {\r\n this.docService.getDoctorList().subscribe((res: any) => {\r\n this.doctorList = Object.assign(this.doctorList, res?.Results);\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n\r\n}\r\nGetDepartmentList() {\r\n this.docService.getDepartmentList().subscribe((res: any) => {\r\n this.deptList = res?.Results;\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n //this.loading = false;\r\n });\r\n}\r\n\r\nDetailedView(){\r\n this.showDetailView = true;\r\n}\r\nSummaryView(){\r\n this.showDetailView = false;\r\n}\r\n\r\n MainSearch(event:MatSelectChange){\r\n this.filteredpatientList = this.masterReportList;\r\n //For doctor search\r\n if(this.selDoctor != \"\" && this.selDoctor!=\"All\")\r\n {\r\n for(var i=0;id.DoctorId==this.selDoctor)\r\n }\r\n\r\n //For department search\r\n if(this.selDept != \"\" && this.selDept!=\"All\")\r\n { \r\n for(var i=0;id.DepartmentId==this.selDept)\r\n }\r\n\r\n //For appointment search\r\n if(this.selAppointmentType != \"\" && this.selAppointmentType!=\"All\")\r\n {\r\n for(var i=0;id.AppointmentType==this.selAppointmentType)\r\n }\r\n\r\n //For visit search\r\n if(this.selVisitType != \"\" && this.selVisitType!=\"All\")\r\n {\r\n for(var i=0;id.VisitType==this.selVisitType)\r\n }\r\n \r\n //For payment status search\r\n if(this.selPaymentStatus != \"\" && this.selPaymentStatus!=\"All\")\r\n {\r\n for(var i=0;id.PaymentStatus==this.selPaymentStatus)\r\n }\r\n\r\n //For payment medium search\r\n if(this.selPaymentMedium != \"\" && this.selPaymentMedium!=\"All\")\r\n {\r\n for(var i=0;id.PaymentMedium==this.selPaymentMedium)\r\n }\r\n\r\n //For item search\r\n if(this.selItem != \"\" && this.selItem!=\"All\")\r\n {\r\n for(var i=0;id.ItemName==this.selItem)\r\n }\r\n\r\n if(this.p != 1){\r\n this.p = 1;\r\n }\r\n }\r\n \r\n filterReport(){\r\n if(this.p != 1){\r\n this.p = 1;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n

Set-Up Hospital\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SNHospitalNameHospitalCodeLocationIs-ActivePaymentEnableAction
{{i+1}}{{data.HospitalName}}{{data.HospitalCode}}{{data.Location}}{{data.IsActive}}{{data.PaymentEnable}}\r\n Edit \r\n Delete\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Add New Hospital
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n \r\n \r\n

\r\n
\r\n

\r\n \r\n \r\n

\r\n
\r\n \r\n \r\n
\r\n 0\" style=\"font-size: 11px;\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Update Hospital\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n \r\n \r\n

\r\n
\r\n

\r\n \r\n \r\n

\r\n
\r\n \r\n \r\n
\r\n 0\" style=\"font-size: 11px;\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgForm } from '@angular/forms';\r\nimport { SchedulingService } from 'src/app/services/scheduling/scheduling.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { HospitalService } from 'src/app/services/hospital/hospital.service';\r\nimport { Hospital, HospitalEdit } from 'src/app/models/hospital/hospital.model';\r\nimport { HttpRequest, HttpClient, HttpEventType } from '@angular/common/http';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n@Component({\r\n templateUrl: './app.set-up.html',\r\n styleUrls: ['./app.set-up.css']\r\n})\r\nexport class SetUpComponent implements OnInit {\r\n public edit: boolean = false;\r\n public editModal: boolean = false;\r\n public hospException: boolean = false;\r\n public hospitalList: Array = new Array();\r\n public hospitalInfo: Hospital = new Hospital();\r\n public selectedHospital: HospitalEdit = new HospitalEdit();\r\n public hospitalData: any;\r\n public viewhospital: any;\r\n public progress: any;\r\n public message: any;\r\n public tempvalue: string = \"\";\r\n constructor(public routing: Router, public http: HttpClient, public hospitalService: HospitalService, public schedulingService: SchedulingService, public notifyService: NotificationService, private _authenticationService: AuthenticationService) {\r\n\r\n }\r\n ngOnInit() {\r\n this.getHospital();\r\n }\r\n\r\n public Admin() {\r\n this.routing.navigate(['/admin']);\r\n }\r\n getHospital() {\r\n this.hospitalService.getHospitalList().subscribe(res => this.SuccessHospitalList(res),\r\n res => this.Error(res));\r\n }\r\n SuccessHospitalList(res) {\r\n this.hospitalList = Object.assign(this.hospitalList, res)\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n ErrorAdd(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n ErrorEdit(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n\r\n AddHospital(form: NgForm) {\r\n\r\n this.edit = false;\r\n this.hospException = false;\r\n if (form.invalid) {\r\n if (form.controls.HospitalName.invalid) {\r\n this.notifyService.showError(\"\", \"Hospital name is required\");\r\n }\r\n if (form.controls.HospitalCode.invalid) {\r\n this.notifyService.showError(\"\", \"Hospital code is required\");\r\n }\r\n if (form.controls.Location.invalid) {\r\n this.notifyService.showError(\"\", \"Location is required\");\r\n }\r\n return;\r\n }\r\n if (this.hospitalList.length != 0) {\r\n this.hospException = this.hospitalList.some(a => a.HospitalCode.trim() == this.hospitalInfo.HospitalCode.trim());\r\n }\r\n if (this.hospException) {\r\n this.notifyService.showError(\"Sorry\", \"Hospital code is already exists!\");\r\n return;\r\n }\r\n const token = this._authenticationService.currentUserValue;\r\n const adminId = token.unique_name;\r\n this.hospitalInfo.AdminId = adminId;\r\n this.hospitalService.addHospital(this.hospitalInfo).subscribe(res => this.Success(res),\r\n res => this.ErrorAdd(res));\r\n\r\n\r\n }\r\n Success(res) {\r\n window.location.reload();\r\n this.notifyService.showSuccess('', 'Hospital Added Successfully!')\r\n\r\n }\r\n EditHospital(id) {\r\n this.edit = true;\r\n this.editModal = true;\r\n this.hospitalService.getHospital(id).subscribe(res => this.SuccessHospital(res),\r\n res => this.ErrorEdit(res));\r\n }\r\n SuccessHospital(res) {\r\n this.selectedHospital = res;\r\n this.tempvalue = this.selectedHospital.ImagePath;\r\n this.selectedHospital.ImagePath = null;\r\n }\r\n UpdateHospital(form: NgForm) {\r\n this.edit = true;\r\n this.hospException = false;\r\n if (form.invalid) {\r\n if (form.controls.HospitalName.invalid) {\r\n this.notifyService.showError(\"\", \"Hospital name is required\");\r\n }\r\n if (form.controls.HospitalCode.invalid) {\r\n this.notifyService.showError(\"\", \"Hospital code is required\");\r\n }\r\n if (form.controls.Location.invalid) {\r\n this.notifyService.showError(\"\", \"Location is required\");\r\n }\r\n return;\r\n }\r\n\r\n if (this.selectedHospital.ImagePath == null) {\r\n if (this.tempvalue != null) {\r\n this.tempvalue = this.tempvalue.slice(10);\r\n }\r\n this.selectedHospital.ImagePath = this.tempvalue;\r\n }\r\n\r\n this.hospException = this.hospitalList.some(a => a.HospitalCode.trim() == this.selectedHospital.HospitalCode.trim() && a.HospitalId != this.selectedHospital.HospitalId);\r\n if (this.hospException) {\r\n this.notifyService.showError(\"Sorry\", \"Hospital code already exists!\");\r\n return;\r\n }\r\n const token = this._authenticationService.currentUserValue;\r\n const adminId = token.unique_name;\r\n this.selectedHospital.AdminId = adminId;\r\n this.hospitalService.updateHospital(this.selectedHospital)\r\n .subscribe(res => this.SuccessUpdate(res), err => this.Error(err));\r\n }\r\n SuccessUpdate(res) {\r\n this.notifyService.showSuccess('', 'Successfully Updated');\r\n window.location.reload();\r\n }\r\n\r\n DeleteHospital(id) {\r\n this.hospitalService.deleteHospital(id).subscribe(res => this.SuccessDelete(res),\r\n res => this.Error(res));\r\n }\r\n SuccessDelete(res) {\r\n this.getHospital();\r\n this.notifyService.showSuccess('', 'Successfully Deleted!');\r\n window.location.reload();\r\n }\r\n hide() {\r\n this.editModal = false;\r\n }\r\n\r\n upload(files) {\r\n\r\n if (files.length === 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of files)\r\n formData.append(file.name, file);\r\n\r\n\r\n const uploadReq = new HttpRequest('POST', `api/Patient/UploadFile/`, formData, {\r\n reportProgress: true,\r\n });\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n });\r\n\r\n }\r\n uploadEdit(files) {\r\n\r\n if (files.length === 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of files)\r\n formData.append(file.name, file);\r\n\r\n\r\n const uploadReq = new HttpRequest('POST', `api/Patient/UploadFile/`, formData, {\r\n reportProgress: true,\r\n });\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n });\r\n\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { User } from '../models/user/user.model';\r\nimport { HospitalService } from '../services/hospital/hospital.service';\r\nimport { PatientService } from '../services/patient/patient.service';\r\nimport { DoctorService } from '../services/doctor/doctor.service';\r\nimport { Global } from '../app.global';\r\nimport { AutoLogoutService } from '../services/autologout.service';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { Patient } from '../models/patient/patient.model';\r\nimport { Doctor } from '../models/doctor/doctor.model';\r\nimport { ChatService } from '../services/ChatNotification/chat-notification.service';\r\nimport { Observable } from 'rxjs';\r\nimport { EventNotificationService } from '../services/EventNotification/event-notification.service';\r\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as _ from \"lodash\";\r\nimport { environment } from '../../environments/environment';\r\nimport { PasswordComponent } from './common/password/password.component';\r\n@Component({ selector: 'app', templateUrl: 'app.component.html' })\r\nexport class AppComponent implements OnInit {\r\n websiteUrl = environment.url;\r\n currentUser: User;\r\n public token: any;\r\n public seeAll: boolean = false;\r\n public allVisitsList: any;\r\n public patInfo: Patient = new Patient();\r\n public docInfo: Doctor = new Doctor();\r\n public notification$: Observable;\r\n public notificationArray = [];\r\n public temporaryNotificationArray = [];\r\n public userNotifications = [];\r\n public closeResult: string;\r\n\r\n @ViewChild('pwdEditor', { static: true })\r\n public pwdEditor: PasswordComponent;\r\n public pwdModal: boolean;\r\n\r\n // public patInfo: Patient = new Patient();\r\n constructor(public global: Global, private autoLogout: AutoLogoutService, public alertService: AlertService,\r\n public hospitalService: HospitalService, public patService: PatientService, public docService: DoctorService,\r\n private router: Router,\r\n private eventNotify: EventNotificationService,\r\n private authenticationService: AuthenticationService, private modalService: NgbModal,\r\n private _chatService: ChatService\r\n ) {\r\n\r\n this.notification$ = this._chatService.notification$;\r\n this.authenticationService.currentUser.subscribe(x => this.currentUser = x);\r\n this.token = this.authenticationService.currentUserValue;\r\n if (this.token.UserType == 'Doctor') {\r\n this.GetDoctorName();\r\n }\r\n if (this.token.UserType == 'Patient') {\r\n this.GetPatientName();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getUserNotification();\r\n this.notification$.subscribe(res => {\r\n\r\n if (res[0] === undefined) {\r\n //initially notice list empty\r\n }\r\n else {\r\n this.temporaryNotificationArray = [];\r\n for (var i = 0; i < res.length; i++) {\r\n var temp = {\r\n \"isSeen\": res[i].IsSeen,\r\n \"message\": res[i].Message,\r\n \"notificationType\": res[i].NotificationType,\r\n \"userNotificationId\": res[i].UserNotificationId,\r\n \"timeDuration\": res[i].TimeDuration,\r\n };\r\n this.temporaryNotificationArray.push(temp);\r\n }\r\n console.log(\"notification\");\r\n this.notificationArray = this.temporaryNotificationArray;\r\n // console.log(this.notificationArray);\r\n var audio = new Audio(\r\n '~/../assets/notification-sound/sound1.wav');\r\n audio.play();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.pwdEditor.changesSavedCallback = () => {\r\n this.pwdModal = false;\r\n this.authenticationService.logout();\r\n };\r\n this.pwdEditor.changesCancelledCallback = () => {\r\n this.pwdModal = false;\r\n };\r\n }\r\n open(content) {\r\n this.modalService.open(content, { windowClass: 'modal-search' }).result.then((result) => {\r\n this.closeResult = `Closed with: ${result}`;\r\n }, (reason) => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n });\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n logout() {\r\n this.PatStatusChange();\r\n this.global.apiLogout = true;\r\n this.authenticationService.logout();\r\n this.docService.DoctorId = null;\r\n this.patService.VisitId = null;\r\n this.hospitalService.HospitalId = null;\r\n this.hospitalService.DepartmentId = null;\r\n this.global.DepartmentId = null;\r\n this.global.DoctorId = null;\r\n this.global.HospitalId = null;\r\n this._chatService.Disconnect();\r\n this.router.navigate(['/login']);\r\n //this.PatStatusChange();\r\n }\r\n\r\n public GetDoctorName() {\r\n //var id= this.token.DoctorIdentifier;\r\n this.docService.getDoctor(this.token.DoctorIdentifier).subscribe(res => {\r\n this.docInfo = res;\r\n });\r\n error => {\r\n this.alertService.error(error);\r\n }\r\n }\r\n\r\n public GetPatientName() {\r\n //var id = this.token.PatientIdentifier;\r\n this.patService.getPatient(this.token.PatientIdentifier,this.token.UserType).subscribe(\r\n (res) => {\r\n this.patInfo = res;\r\n },\r\n (error) => {\r\n this.alertService.error(error);\r\n }\r\n );\r\n }\r\n public PatStatusChange() {\r\n if (this.token.UserType == 'Patient') {\r\n this.patService.getPatientBookingList(this.token.PatientIdentifier).subscribe(res => {\r\n this.allVisitsList = res;\r\n for (var i = 0; i < this.allVisitsList.length; i++) {\r\n if ((this.allVisitsList[i].Status === 'ongoing' || this.allVisitsList[i].Status === 'initiated') && this.allVisitsList[i].IsActive === true) {\r\n this.patService.changeStatus(this.allVisitsList[i].VisitId)\r\n .subscribe(res => this.SuccesschangeStatus(res),\r\n res => this.Error(res));\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n // this.loading = false;\r\n });\r\n }\r\n }\r\n Error(res) {\r\n\r\n }\r\n SuccesschangeStatus(res) {\r\n this.authenticationService.logout();\r\n // this.router.navigate(['/login']);\r\n }\r\n seeAllStatus() {\r\n this.seeAll = !this.seeAll;\r\n }\r\n\r\n markAsRead() {\r\n if (this.notificationArray.length == 0) {\r\n return;\r\n }\r\n var mappedArray = this.notificationArray.map(x => {\r\n let object = {};\r\n object[\"UserNotificationId\"] = x.userNotificationId\r\n return object\r\n });\r\n var object = {\r\n \"markAsReadIdsList\": mappedArray\r\n }\r\n\r\n this.eventNotify.markAsReadStatus(mappedArray).subscribe(res => {\r\n const newNotificationArray = this.notificationArray.map((notification) => ({\r\n ...notification,\r\n isSeen: true,\r\n }));\r\n this.notificationArray = newNotificationArray;\r\n }, err => {\r\n });\r\n }\r\n\r\n routeToPage(data) {\r\n var tempArray = _.cloneDeep(this.notificationArray);\r\n tempArray = tempArray.filter(x => x.userNotificationId == data.userNotificationId);\r\n var mappedArray = tempArray.map(x => {\r\n let object = {};\r\n object[\"UserNotificationId\"] = x.userNotificationId\r\n return object\r\n });\r\n //var object = {\r\n // \"markAsReadIdsList\": mappedArray\r\n //}\r\n this.eventNotify.markAsReadStatus(mappedArray).subscribe(res => {\r\n const newNotificationArray = this.notificationArray.map((notification) => ({\r\n ...notification,\r\n isSeen: data.userNotificationId == notification.userNotificationId ? true : false\r\n }));\r\n this.notificationArray = newNotificationArray;\r\n window.location.reload();\r\n }, err => {\r\n });\r\n //this.router.navigate(['/', data.notificationType]);\r\n }\r\n\r\n\r\n\r\n getUserNotification() {\r\n this.eventNotify.getUserNotification().subscribe(res => {\r\n this.userNotifications = res;\r\n // console.log(this.userNotifications);\r\n if (this.userNotifications.length != 0) {\r\n // this.notificationArray = this.userNotifications;\r\n for (var i = 0; i < this.userNotifications.length; i++) {\r\n var temp = {\r\n \"isSeen\": this.userNotifications[i].IsSeen,\r\n \"message\": this.userNotifications[i].Message,\r\n \"notificationType\": this.userNotifications[i].NotificationType,\r\n \"userNotificationId\": this.userNotifications[i].UserNotificationId,\r\n \"timeDuration\": this.userNotifications[i].TimeDuration,\r\n };\r\n this.notificationArray.push(temp);\r\n }\r\n // console.table(this.notificationArray);\r\n //alert(\"notification unread\");\r\n //this.displayRedBellIcon = true;\r\n }\r\n\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n changePassword() {\r\n var isDoctor = this.token.UserType === 'Doctor';\r\n if (isDoctor) {\r\n this.pwdEditor.resetPwdDoctor(this.docInfo, this.docInfo.DoctorName, isDoctor);\r\n }\r\n else {\r\n this.pwdEditor.resetPwd(this.patInfo, this.patInfo.FullName);\r\n }\r\n this.pwdModal = true;\r\n\r\n }\r\n}\r\n","
\r\n \r\n Back To DashBoard\r\n \r\n \r\n Back\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { User } from '../../../models/user/user.model';\r\nimport { HospitalService } from '../../../services/hospital/hospital.service';\r\nimport { DoctorService } from '../../../services/doctor/doctor.service';\r\nimport { Global } from '../../../app.global';\r\n\r\n@Component({ selector: 'bookingnavigator', templateUrl: 'booking.navigator.component.html' })\r\nexport class BookingNavigatorComponent {\r\n currentUser: User;\r\n public token: any;\r\n public hospitalId: any;\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private authenticationService: AuthenticationService,\r\n public hospitalService: HospitalService,\r\n public docService: DoctorService,\r\n public global: Global\r\n ) {\r\n this.authenticationService.currentUser.subscribe(x => this.currentUser = x);\r\n this.token = this.authenticationService.currentUserValue;\r\n this.hospitalId = this.route.snapshot.queryParamMap.get('id');\r\n }\r\n\r\n public BookNewVisit() {\r\n this.hospitalService.DepartmentId = null;\r\n this.global.DepartmentId = null;\r\n this.docService.DoctorId = null;\r\n this.global.BookingTime = \"\";\r\n this.global.VisitDate = null;\r\n \r\n this.hospitalId = this.hospitalService.HospitalId;\r\n \r\n this.router.navigate(['/PatBookAppointment'], { queryParams: { id: this.hospitalId } });\r\n }\r\n\r\n public MyBookList() {\r\n this.hospitalService.DepartmentId = null;\r\n this.docService.DoctorId = null;\r\n \r\n this.router.navigate(['/PatBookList'], { queryParams: { id: this.hospitalId } });\r\n\r\n }\r\n\r\n public MyPaidBooking() {\r\n this.hospitalService.DepartmentId = null;\r\n this.docService.DoctorId = null;\r\n this.router.navigate(['/PatPaidBookingList'], { queryParams: { id: this.hospitalId } });\r\n }\r\n public BackDashBoard() {\r\n this.hospitalService.DepartmentId = null;\r\n this.docService.DoctorId = null;\r\n this.global.BookingTime = \"\";\r\n this.global.VisitDate = null;\r\n this.router.navigate(['/PatDashboard']);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({ name: 'convertFrom24To12Format' })\r\nexport class TimeFormat implements PipeTransform {\r\n transform(time: any): any {\r\n let hour = (time.split(':'))[0]\r\n let min = (time.split(':'))[1]\r\n let part = hour > 12 ? 'P.M' : 'A.M';\r\n min = (min + '').length == 1 ? `0${min}` : min;\r\n hour = hour > 12 ? hour - 12 : hour;\r\n hour = (hour + '').length == 1 ? `0${hour}` : hour;\r\n return `${hour}:${min} ${part}`\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { User } from '../../models/user/user.model';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Component({ selector: 'footer', templateUrl: 'footer.component.html' })\r\nexport class FooterComponent {\r\n websiteUrl = environment.url;\r\n currentUser: User;\r\n public token: any;\r\n constructor(\r\n private router: Router,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n this.authenticationService.currentUser.subscribe(x => this.currentUser = x);\r\n this.token = this.authenticationService.currentUserValue;\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

\r\n Copyright © 2023 lumbini provincial hospital\r\n

\r\n
\r\n
\r\n
    \r\n
  • \r\n
  • \r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n Powered by Imark\r\n

\r\n
\r\n
\r\n\r\n","
\r\n
\r\n
\r\n \"logo\"\r\n
\r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { LoaderService } from \"../../../services/loader-interceptor/loader.service\";\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.css']\r\n})\r\nexport class LoaderComponent {\r\n constructor(private _loader: LoaderService) {\r\n\r\n }\r\n\r\n get isLoading() {\r\n return this._loader.isLoading;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
{{patName}}
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n   \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core'\r\nimport { Patient } from '../../../models/patient/patient.model';\r\nimport { PatientService } from '../../../services/patient/patient.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FormBuilder, FormGroup, NgForm } from '@angular/forms';\r\nimport { NotificationService } from '../../../services/notification.service';\r\nimport { AlertService } from '../../../services/alert.service';\r\nimport { Doctor } from '../../../models/doctor/doctor.model';\r\nimport { DoctorService } from '../../../services/doctor/doctor.service';\r\nimport { ChatService } from '../../../services/ChatNotification/chat-notification.service';\r\n\r\n@Component({\r\n selector: 'password-update',\r\n templateUrl: './password.component.html'\r\n})\r\nexport class PasswordComponent {\r\n @Input('show-old-and-confirm-password') showOldAndConfirmPasswordInput: boolean = false;\r\n public updatePat: boolean;\r\n public patInfo: Patient = new Patient();\r\n public docInfo: Doctor = new Doctor();\r\n isPatEditor = false;\r\n patId: any;\r\n patName: string;\r\n docId: any;\r\n docName: string;\r\n isDoctor = false;\r\n public hospitalIdentifier: string;\r\n showPassword = false;\r\n showConfirmPassword = false;\r\n showOldPassword = false;\r\n token: any;\r\n public changesSavedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n constructor(public patservice: PatientService, public docservice: DoctorService, private route: ActivatedRoute, private alertService: AlertService,\r\n public routing: Router, private authenticationService: AuthenticationService, private datePipe: DatePipe,\r\n private formBuilder: FormBuilder, private notifyService: NotificationService, private notificationService: ChatService) {\r\n this.token = this.authenticationService.currentUserValue;\r\n\r\n }\r\n\r\n GetPatient() {\r\n\r\n this.patservice.getPatient(this.patId,this.token.UserType).subscribe(res => {\r\n this.patInfo = res;\r\n\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n GetDoctor() {\r\n\r\n this.docservice.getDoctor(this.docId).subscribe(res => {\r\n this.docInfo = res;\r\n\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n });\r\n }\r\n\r\n //UpdatePassword(row:Patient) {\r\n\r\n // debugger;\r\n // this.patservice.updatePatient(row).subscribe(data => {\r\n // this.alertService.success('Password Reset successful', true);\r\n // this.updatePat = false;\r\n // if (this.changesSavedCallback) {\r\n // this.changesSavedCallback();\r\n // }\r\n // },\r\n // error => {\r\n // this.alertService.error(error);\r\n\r\n // });\r\n //}\r\n UpdatePassword(row: Patient) {\r\n if (this.isPasswordValid(row.Password, row.ConfirmPassword, row.OldPassword) == false) {\r\n return;\r\n }\r\n this.authenticationService.resetPassword(this.patInfo.IdentityUserId, row.Password, row.OldPassword).subscribe(\r\n data => {\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n this.notificationService.LogoutUserWithId(this.patInfo.IdentityUserId);\r\n },\r\n error => {\r\n this.notifyService.showError(\"Password Reset Failed.\", \"Failed\");\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n UpdatePasswordDoctor(row: Doctor) {\r\n if (this.isPasswordValid(row.Password, row.ConfirmPassword, row.OldPassword) == false) {\r\n return;\r\n }\r\n this.authenticationService.resetPassword(this.docInfo.IdentityUserId, row.Password, row.OldPassword).subscribe(\r\n data => {\r\n if (this.changesSavedCallback) {\r\n this.changesSavedCallback();\r\n }\r\n this.notificationService.LogoutUserWithId(this.docInfo.IdentityUserId);\r\n },\r\n error => {\r\n this.notifyService.showError(\"Password Reset Failed.\", \"Failed\");\r\n this.alertService.error(error);\r\n });\r\n\r\n }\r\n private isPasswordValid(password: string, confirmpassword?: string, oldpassword?: string): boolean {\r\n if (password.trim().length < 6) {\r\n this.notifyService.showError(\"Password must be at least 6 characters\", \"Failed\");\r\n return false;\r\n }\r\n if (this.showOldAndConfirmPasswordInput) {\r\n if (!oldpassword) {\r\n this.notifyService.showError(\"Old password cannot be empty\", \"Failed\");\r\n return false;\r\n }\r\n\r\n if (confirmpassword.trim().length < 6) {\r\n this.notifyService.showError(\"Confirm Password must be at least 6 characters\", \"Failed\");\r\n return false;\r\n }\r\n\r\n if (password !== confirmpassword) {\r\n this.notifyService.showError(\"New Password and Confirmed Password must match.\", \"Failed\");\r\n return false;\r\n }\r\n\r\n if (password === oldpassword) {\r\n this.notifyService.showError(\"New Password cannot be same as the old password\", \"Failed\");\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n //public BackDashBoard() {\r\n // this.routing.navigate(['/PatDashboard'], { queryParams: { id: this.hospitalId } });\r\n //}\r\n resetPwd(pat: Patient, patName: string) {\r\n this.patId = pat.PatientId;\r\n this.patName = patName;\r\n this.GetPatient();\r\n return this.patId;\r\n }\r\n resetPwdDoctor(pat: Doctor, docName: string, isDoctor: boolean) {\r\n this.docId = pat.DoctorId;\r\n this.docName = docName;\r\n this.isDoctor = isDoctor;\r\n this.GetDoctor();\r\n return this.docId;\r\n }\r\n cancel() {\r\n if (this.changesCancelledCallback) {\r\n this.changesCancelledCallback();\r\n }\r\n }\r\n showPass() {\r\n this.showPassword = !this.showPassword;\r\n }\r\n showConfirmPass() {\r\n this.showConfirmPassword = !this.showConfirmPassword;\r\n }\r\n showOldPass() {\r\n this.showOldPassword = !this.showOldPassword;\r\n }\r\n}\r\n","\r\n
\r\n

Do you really want to cancel booking?

\r\n
\r\n
\r\n

Do you really want to conclude this visit ?

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n

Do you really want to update your profile ?

\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n msg: string;\r\n cancel: string;\r\n}\r\n@Component({\r\n //selector: 'dialog-overview-example-dialog',\r\n templateUrl: 'pop-up.component.html',\r\n})\r\n\r\nexport class PopUpDialogComponent {\r\n showCancelBookingPopup: boolean;\r\n showUpdateProfilePopup: boolean;\r\n msg: string;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\r\n dialogRef.disableClose = true;\r\n if (this.data.msg == \"fromAdmin\" ) {\r\n this.showCancelBookingPopup = true;\r\n }\r\n if (this.data.msg == \"fromDocRoom\") {\r\n this.showCancelBookingPopup = false;\r\n this.showUpdateProfilePopup = false;\r\n } \r\n if (this.data.msg == \"updateProfile\" ) {\r\n this.showUpdateProfilePopup = true; \r\n } \r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n onYesClick() {\r\n this.data.cancel = \"yes\";\r\n this.dialogRef.close();\r\n \r\n }\r\n}\r\n","\r\nimport { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidator), multi: true }\r\n ]\r\n})\r\nexport class EqualValidator implements Validator {\r\n constructor( @Attribute('validateEqual') public validateEqual: string,\r\n @Attribute('reverse') public reverse: string) {\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } {\r\n let other = c.root.get(this.validateEqual);\r\n\r\n if (!other)\r\n return null;\r\n\r\n return this.reverse === 'true' ? this.validateReverse(c, other) : this.validateNoReverse(c, other);\r\n }\r\n\r\n private validateNoReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } {\r\n return other.value === c.value ? null : { validateEqual: true }\r\n }\r\n\r\n private validateReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } {\r\n if (c.value === other.value) {\r\n if (other.errors) {\r\n delete other.errors['validateEqual'];\r\n\r\n if (Object.keys(other.errors).length == 0) {\r\n other.setErrors(null);\r\n };\r\n }\r\n } else {\r\n other.setErrors({ validateEqual: true });\r\n }\r\n\r\n return null;\r\n }\r\n}","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input[numbersOnly]'\r\n})\r\nexport class OnlyNumber {\r\n navigationKeys: any;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n @Input() OnlyNumber: boolean;\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n if (\r\n // Allow: Delete, Backspace, Tab, Escape, Enter, etc\r\n this.navigationKeys.indexOf(e.key) > -1 ||\r\n (e.key === 'a' && e.ctrlKey === true) || // Allow: Ctrl+A\r\n (e.key === 'c' && e.ctrlKey === true) || // Allow: Ctrl+C\r\n (e.key === 'v' && e.ctrlKey === true) || // Allow: Ctrl+V\r\n (e.key === 'x' && e.ctrlKey === true) || // Allow: Ctrl+X\r\n (e.key === 'a' && e.metaKey === true) || // Cmd+A (Mac)\r\n (e.key === 'c' && e.metaKey === true) || // Cmd+C (Mac)\r\n (e.key === 'v' && e.metaKey === true) || // Cmd+V (Mac)\r\n (e.key === 'x' && e.metaKey === true) // Cmd+X (Mac)\r\n ) {\r\n return; // let it happen, don't do anything\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n event.preventDefault();\r\n const pastedInput: string = event.clipboardData\r\n .getData('text/plain')\r\n .replace(/\\D/g, ''); // get a digit-only string\r\n document.execCommand('insertText', false, pastedInput);\r\n }\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n const textData = event.dataTransfer\r\n .getData('text').replace(/\\D/g, '');\r\n //this.inputElement.focus();\r\n document.execCommand('insertText', false, textData);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Phone Number is required\r\n
\r\n\r\n
\r\n Phone number must be at least 7 digits.\r\n
\r\n \r\n
\r\n Phone number cannot exceed 15 digits.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Password is required\r\n
\r\n
\r\n Password must be at least 6 characters\r\n
\r\n
\r\n Password should contains atleast one special charater,one\r\n upper case, one lower case and one number\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n No account yet?\r\n Sign up\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { first } from \"rxjs/operators\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Login, User } from \"../../models/user/user.model\";\r\n/*import * as jwt_decode from \"jwt-decode\";*/\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { LoginService } from \"../../services/login/login.service\";\r\nimport { JwtHelper } from '../../models/JwtHelper';\r\nimport { IdToken } from \"../../models/IdToken\";\r\nimport { HospitalService } from 'src/app/services/hospital/hospital.service';\r\nimport { ContactInformation } from 'src/app/models/contactInfo/contactinformation.model';\r\nimport { DecodeTokenService } from \"../../services/decodeTtoken.service\";\r\n\r\n@Component({\r\n templateUrl: \"login.component.html\",\r\n styleUrls: [\"./login.component.css\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n loading = false;\r\n submitted = false;\r\n returnUrl: string;\r\n isPatient = false;\r\n jwtToken: any;\r\n loginVal: any;\r\n userType: string;\r\n showPassword = false;\r\n loginTele = new Login();\r\n rememberUser: boolean = false;\r\n\r\n loginLocalStorageDataKey = \"login\";\r\n public contactInfo: ContactInformation = new ContactInformation();\r\n constructor(private http: HttpClient,\r\n private formBuilder: FormBuilder, private router: Router,\r\n private route: ActivatedRoute,\r\n private authenticationService: AuthenticationService,\r\n private notifyService: NotificationService, private decodeTokenService: DecodeTokenService,\r\n public routing: Router, public loginService: LoginService, public hospitalService: HospitalService\r\n ) { }\r\n //public get currentUserValue(): User {\r\n // let token = sessionStorage.getItem(\"jwtToken\");\r\n // //if (token != null || token != undefined) {\r\n // var decoded = jwt_decode(token);\r\n // return (this.jwtToken = decoded);\r\n // //}\r\n // //else {\r\n // // return \"NoToken\";\r\n // //}\r\n\r\n // //let token = this.currentUserSubject.value.token;\r\n // //let token = this.currentUserSubject.value.token;\r\n // //var decoded = jwt_decode(token);\r\n //}\r\n ngOnInit() {\r\n\r\n var phoneNumber = localStorage.getItem(this.loginLocalStorageDataKey);\r\n if (phoneNumber != null) this.rememberUser = true;\r\n\r\n this.loginForm = this.formBuilder.group({\r\n phonenumber: [\r\n phoneNumber || \"\",\r\n [Validators.required, Validators.minLength(7), Validators.maxLength(15), Validators.pattern('^[0-9]*$')]\r\n ],\r\n //password: ['', [Validators.required, Validators.minLength(6), Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,}')]]\r\n password: [\"\", [Validators.required, Validators.minLength(6)]],\r\n });\r\n\r\n this.getcontactInformation();\r\n // get return url from route parameters or default to '/'\r\n //this.returnUrl = this.route.snapshot.queryParams[\"returnUrl\"] || \"/\";\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() {\r\n return this.loginForm.controls;\r\n }\r\n patientregister() {\r\n this.routing.navigate([\"/register\"], {\r\n queryParams: { id: \"patientregister\", login: \"patient\" },\r\n });\r\n }\r\n //onSubmit1() {\r\n // this.submitted = true;\r\n // // stop here if form is invalid\r\n // if (this.loginForm.invalid) {\r\n // return;\r\n // }\r\n // this.loading = true;\r\n\r\n // this.login(this.f.phonenumber.value, this.f.password.value).subscribe(\r\n // data => {\r\n // if (data === \"Admin\") {\r\n // this.router.navigate(['/admin']);\r\n // this.notifyService.showInfo(\"Info\", \"Admin Page\");\r\n\r\n // }\r\n // else if (data === \"Patient\") {\r\n // this.router.navigate(['/PatDashboard']);\r\n // this.notifyService.showSuccess(\"Welcome\", \"login successful\");\r\n // }\r\n // else if (data === \"Doctor\") {\r\n // this.router.navigate(['/DocDashboard']);\r\n // this.notifyService.showSuccess(\"Welcome\", \"login successful\");\r\n // }\r\n // else {\r\n // this.router.navigate(['']);\r\n // }\r\n // //this.notifyService.showSuccess(\"Welcome\", \"login successful\");\r\n // },\r\n // error => {\r\n // this.notifyService.showError(\"Sorry\", \"Phone Number and Password do not match\")\r\n // this.loading = false;\r\n // });\r\n\r\n //}\r\n //login(phonenumber: string, password: string) {\r\n // return this.http.post(`/api/account/login`, { phonenumber, password })\r\n // .pipe(map(user => {\r\n // // login successful if there's a jwt token in the response\r\n // if (user && user.token) {\r\n // sessionStorage.removeItem('jwtToken');\r\n // sessionStorage.setItem('jwtToken', user.token);\r\n // const token = user.token;\r\n // const decoded = jwt_decode(token);\r\n // this.jwtToken = decoded;\r\n // this.userType = decoded.UserType;\r\n // if (this.userType == \"Patient\") {\r\n // localStorage.removeItem('loginPat');\r\n // localStorage.setItem('loginPat', \"patient\");\r\n // }\r\n // else if (this.userType == \"Doctor\") {\r\n // localStorage.removeItem('loginDoc');\r\n // localStorage.setItem('loginDoc', \"doctor\");\r\n // }\r\n // }\r\n // return this.userType;\r\n // }));\r\n //}\r\n // Slick Slider this is added new\r\n\r\n slides = [\r\n { img: \"./assets/img/Slider11.jpg\" },\r\n { img: \"./assets/img/Slider22.jpg\" },\r\n ];\r\n slideConfig = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n fade: true,\r\n cssEase: \"linear\",\r\n draggable: false,\r\n autoplaySpeed: 3000,\r\n arrows: false,\r\n dots: false,\r\n };\r\n // End SLick slider\r\n showPass() {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n onSubmit() {\r\n if (this.loginForm.invalid) {\r\n if (this.loginForm.controls.phonenumber.invalid) {\r\n this.notifyService.showError(\"Error\", \"Phone number should be greater than 6 digits and less than 16 digits\");\r\n }\r\n if (this.loginForm.controls.password.invalid) {\r\n this.notifyService.showError(\"Error\", \"Password length should be atleast 6\");\r\n }\r\n return;\r\n }\r\n this.loading = true;\r\n this.loginTele.PhoneNumber = this.f.phonenumber.value;\r\n this.loginTele.Password = this.f.password.value;\r\n\r\n localStorage.removeItem(this.loginLocalStorageDataKey);\r\n if (this.rememberUser)\r\n localStorage.setItem(this.loginLocalStorageDataKey, this.loginTele.PhoneNumber);\r\n\r\n this.loginService.loginTele(this.loginTele)\r\n .subscribe(res => this.SuccessLogin(res),\r\n res => this.ErrorLogin(res));\r\n }\r\n SuccessLogin(res) {\r\n if (res && res.token) {\r\n this.decodeTokenService.decodeToken(res.token);\r\n }\r\n }\r\n\r\n ErrorLogin(res) {\r\n this.loading = false;\r\n this.notifyService.showError(\"Sorry\", \"Phone Number and Password do not match\")\r\n }\r\n\r\n getcontactInformation() {\r\n this.hospitalService.getContactInfo().subscribe(res => this.SuccessgetcontactInfo(res),\r\n res => this.Error(res));\r\n }\r\n SuccessgetcontactInfo(res) {\r\n if (res != null) {\r\n this.contactInfo = res;\r\n }\r\n else {\r\n this.contactInfo.ContactNumber = \"NA\";\r\n this.contactInfo.Email = \"NA\"\r\n }\r\n }\r\n Error(res) {\r\n this.notifyService.showError(\"Error\", \"Internal Error\")\r\n }\r\n\r\n ForgotPassword() {\r\n window.location.href = '/api/ForgotPassword/ForgotPassword';\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \"\"\r\n
\r\n
\r\n\r\n
\r\n\r\n

\r\n Register to get started
\r\n

Connect with your Doctor/Patient from your home

\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Phone Number is required
\r\n\r\n
Phone number should be 10 digits
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
First Name is required
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Last Name is required
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
NMC Number is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Male\r\n   \r\n \r\n Female  \r\n Other  \r\n
\r\n
Gender is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
Designation is required
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Education is required
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Experience is required
\r\n
\r\n
\r\n \r\n \r\n
\r\n
PastAffiliation is required
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Membership is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
Department is required
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Charge is required
\r\n
\r\n
\r\n
Charge is not valid
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Consultation Type is required
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n 0\" style=\"font-size: 11px;\">\r\n {{progress}}%\r\n \r\n \r\n {{message}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Password is required
\r\n
Password must be at least 6 characters
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Password is required
\r\n
\r\n Password must be at least 6 characters.\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Phone number is required.
\r\n
Invalid phone number.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
First Name is required
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Last Name is required
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Address is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
City is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
State is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Postal Code is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Country is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Male  \r\n Female  \r\n Other  \r\n
\r\n
Gender is required
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Password is required
\r\n
Password must be at least 6 characters
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Password is required
\r\n
\r\n Password must be at least 6 characters.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Powered By\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n

Register

","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { first, takeWhile } from 'rxjs/operators';\r\n\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { DoctorService } from '../../services/doctor/doctor.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { Qualification } from 'src/app/models/Qualification/qualification.model';\r\nimport { Doctor } from 'src/app/models/doctor/doctor.model';\r\nimport { HospitalDoctorMap } from 'src/app/models/HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { HttpClient, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { Subscription, timer } from 'rxjs';\r\nimport * as moment from 'moment';\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'register',\r\n templateUrl: 'register.component.html',\r\n styleUrls: ['./register.component.css']\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n docRegisterForm: FormGroup;\r\n patRegisterForm: FormGroup;\r\n loading = false;\r\n public today = new Date();\r\n submitted = false;\r\n isPatientRegister = false;\r\n public token: any;\r\n typeregister: string = \"\";\r\n loginpatient: string = \"\";\r\n showPassword = false;\r\n showConfirmPassword = false;\r\n hospitalIdentifier: string;\r\n public deptList: Array = new Array();\r\n public qualification: Array = new Array();\r\n public hospdocMap: Array = new Array();\r\n public doc = new Doctor();\r\n ConsultationType = [\r\n { id: 1, name: \"Online Appointment\" },\r\n { id: 2, name: \"Telemedicine\" }\r\n ];\r\n public progress: number;\r\n public message: string;\r\n public tempvalue: string = \"\";\r\n\r\n timermsg = timer(2000, 6000);\r\n public Age: string = \"0\";\r\n public dateOfBirth: string = String(moment(this.today).format(\"MM/DD/YYYY\"));\r\n public registerComponentSubscription = new Subscription();\r\n public countries: { name: string; code: string }[];\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private authenticationService: AuthenticationService,\r\n private userService: DoctorService,\r\n private alertService: AlertService, private notifyService: NotificationService, private route: ActivatedRoute,\r\n public http: HttpClient, public changeDetector: ChangeDetectorRef\r\n\r\n ) {\r\n this.typeregister = this.route.snapshot.queryParamMap.get('id');\r\n this.loginpatient = this.route.snapshot.queryParamMap.get('login');\r\n if (this.typeregister != \"patientregister\" && this.loginpatient != \"patient\") {\r\n this.hospitalIdentifier = this.route.snapshot.queryParamMap.get('hospital');\r\n this.GetDepartmentList();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.countries = [\r\n { name: 'Nepal', code: '+977'},\r\n { name: 'United States', code: '+1' },\r\n { name: 'United Kingdom', code: '+44' },\r\n { name: 'Canada', code: '+1' },\r\n { name: 'Australia', code: '+61' },\r\n { name: 'India', code: '+91' },\r\n { name: 'Sri Lanka', code: '+94'},\r\n { name: 'Afghanistan', code: '+93' },\r\n { name: 'Bangladesh', code: '+880' },\r\n { name: 'Bhutan', code: '+975' },\r\n { name: 'Maldives', code: '+92' },\r\n ];\r\n \r\n if (this.typeregister == \"docregister\") {\r\n this.docRegisterForm = this.formBuilder.group({\r\n phonenumber: ['', [Validators.required, Validators.pattern(\"^((\\\\+91-?)|0)?[0-9]{10}$\")]],\r\n firstname: ['', [Validators.required]],\r\n lastname: ['', [Validators.required]],\r\n middlename: [''],\r\n dateofbirth: [''],\r\n mailingaddress: [''],\r\n password: ['', [Validators.required, Validators.minLength(6)]],\r\n confirmpassword: ['', [Validators.required, Validators.minLength(6)]],\r\n hospitalIdentifier: this.hospitalIdentifier != null ? this.hospitalIdentifier : \"NA\",\r\n NMC: ['', [Validators.required]],\r\n Gender: ['', [Validators.required]],\r\n Designation: ['', [Validators.required]],\r\n Education: [''],\r\n Experience: [''],\r\n PastAffiliation: [''],\r\n Membership: [''],\r\n Department: ['', [Validators.required]],\r\n Charge: ['', [Validators.required, Validators.pattern('[0-9]*')]],\r\n ConsultationType: ['', [Validators.required]],\r\n LongSignature: [''],\r\n Filepath: [''],\r\n Age: [''],\r\n BloodGroup: [''],\r\n Address: ['']\r\n //password: ['', [Validators.required, Validators.minLength(6), Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,}')]],\r\n //confirmpassword: ['', [Validators.required, Validators.minLength(6), Validators.pattern('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,}')]]\r\n });\r\n }\r\n if (this.typeregister == \"patientregister\") {\r\n this.patRegisterForm = this.formBuilder.group({\r\n countryCode: [this.countries[0].code],\r\n phonenumber: new FormControl(\r\n '',\r\n [\r\n Validators.required, \r\n Validators.pattern(\"^[+]?[0-9-]+$\"), \r\n Validators.minLength(7),\r\n Validators.maxLength(15) \r\n ]\r\n ),\r\n firstname: ['', [Validators.required]],\r\n lastname: ['', [Validators.required]],\r\n middlename: [''],\r\n dateofbirth: [''],\r\n mailingaddress: ['', [Validators.required]],\r\n Address: ['', [Validators.required]],\r\n city: ['', [Validators.required]],\r\n state: ['', [Validators.required]],\r\n postalcode: ['', [Validators.required]],\r\n country: ['', [Validators.required]],\r\n password: ['', [Validators.required, Validators.minLength(6)]],\r\n confirmpassword: ['', [Validators.required, Validators.minLength(6)]],\r\n Gender: ['', [Validators.required]],\r\n Filepath: [''],\r\n Age: [''],\r\n BloodGroup: ['']\r\n });\r\n }\r\n }\r\n \r\n ngOnDestroy(): void{\r\n this.registerComponentSubscription.unsubscribe();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() {\r\n if (this.typeregister == \"docregister\") {\r\n return this.docRegisterForm.controls;\r\n }\r\n else {\r\n return this.patRegisterForm.controls;\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n //stop here if form is invalid\r\n // if (this.registerForm.invalid) {\r\n // return;\r\n // }\r\n\r\n this.loading = true;\r\n\r\n if (this.typeregister == \"docregister\") {\r\n if (this.docRegisterForm.value.password != this.docRegisterForm.value.confirmpassword) {\r\n this.notifyService.showError(\"\", \"Password and Confirm Password do not match\");\r\n this.loading = false;\r\n }\r\n if (this.docRegisterForm.controls['phonenumber'].invalid) {\r\n this.notifyService.showError(\"Please enter correct Phone Number.\", \"Invalid Input\");\r\n this.loading = false;\r\n return;\r\n }\r\n if (this.docRegisterForm.value.phonenumber == \"\") {\r\n this.notifyService.showError(\"\", \"Please enter Phone Number\");\r\n this.loading = false;\r\n return;\r\n }\r\n if (this.docRegisterForm.value.firstname == \"\") {\r\n this.notifyService.showError(\"\", \"First Name is required\");\r\n this.loading = false;\r\n return;\r\n }\r\n if (this.docRegisterForm.value.lastname == \"\") {\r\n this.notifyService.showError(\"\", \"Last Name is required\");\r\n this.loading = false;\r\n return;\r\n }\r\n if (this.docRegisterForm.value.NMC == \"\") {\r\n this.notifyService.showError(\"\", \"NMC number is required\");\r\n this.loading = false;\r\n return;\r\n }\r\n if (this.docRegisterForm.value.lastname == \"\") {\r\n this.notifyService.showError(\"\", \"Last Name is required\");\r\n this.loading = false;\r\n return;\r\n }\r\n if (this.docRegisterForm.value.Gender == \"\") {\r\n this.notifyService.showError(\"\", \"Gender is required\");\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n }\r\n if (this.typeregister == \"patientregister\") {\r\n if (this.patRegisterForm.value.password != this.patRegisterForm.value.confirmpassword) {\r\n this.notifyService.showError(\"\", \"Password and Confirm Password do not match\");\r\n this.loading = false;\r\n }\r\n }\r\n\r\n if (this.typeregister == \"docregister\" && this.docRegisterForm.value.password == this.docRegisterForm.value.confirmpassword) {\r\n if (this.docRegisterForm.valid) {\r\n let newQualification = new Qualification();\r\n let newHospitalDoctorMap = new HospitalDoctorMap();\r\n\r\n newQualification.Designation = this.docRegisterForm.controls['Designation'].value;\r\n newQualification.Education = this.docRegisterForm.controls['Education'].value;\r\n newQualification.Experience = this.docRegisterForm.controls['Experience'].value;\r\n newQualification.PastAffiliation = this.docRegisterForm.controls['PastAffiliation'].value;\r\n newQualification.Membership = this.docRegisterForm.controls['Membership'].value;\r\n newHospitalDoctorMap.DepartmentId = this.docRegisterForm.controls['Department'].value;\r\n newHospitalDoctorMap.ConsultationType = this.docRegisterForm.controls['ConsultationType'].value;\r\n if (this.docRegisterForm.value.Charge != 0) {\r\n newHospitalDoctorMap.Charge = this.docRegisterForm.controls['Charge'].value;\r\n }\r\n else {\r\n this.notifyService.showError(\"\", \"Charge should not be 0\");\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.qualification.push(newQualification);\r\n this.hospdocMap.push(newHospitalDoctorMap);\r\n\r\n this.doc.UserName = this.doc.PhoneNumber = this.docRegisterForm.controls['phonenumber'].value;\r\n this.doc.FirstName = this.docRegisterForm.controls['firstname'].value;\r\n this.doc.LastName = this.docRegisterForm.controls['lastname'].value;\r\n this.doc.MiddleName = this.docRegisterForm.controls['middlename'].value;\r\n this.doc.DateOfBirth = this.docRegisterForm.controls['dateofbirth'].value;\r\n this.doc.MailingAddress = this.docRegisterForm.controls['mailingaddress'].value;\r\n this.doc.Password = this.docRegisterForm.controls['password'].value;\r\n this.doc.ConfirmPassword = this.docRegisterForm.controls['confirmpassword'].value;\r\n this.doc.HospitalIdentifier = this.docRegisterForm.controls['hospitalIdentifier'].value;\r\n this.doc.NMC = this.docRegisterForm.controls['NMC'].value;\r\n this.doc.Gender = this.docRegisterForm.controls['Gender'].value;\r\n this.doc.LongSignature = this.docRegisterForm.controls['LongSignature'].value;\r\n this.doc.FilePath = this.docRegisterForm.controls['Filepath'].value;\r\n this.doc.Qualification = JSON.stringify(this.qualification);\r\n this.doc.HospitalDoctorMap = JSON.stringify(this.hospdocMap);\r\n\r\n this.userService.registerDoctor(this.doc)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n this.alertService.success('Registration successful', true);\r\n this.router.navigate(['/doclist']);\r\n },\r\n error => {\r\n console.error(\"Register Doctor Response\" + error);\r\n this.alertService.error(error);\r\n this.notifyService.showError(\"NMC, Email and Phone number should be unique.\", \"Duplicate user\");\r\n this.loading = false;\r\n });\r\n }\r\n else {\r\n this.notifyService.showError(\"\", \"Please fill all required fields properly\");\r\n this.loading = false;\r\n return;\r\n }\r\n }\r\n\r\n if (this.typeregister == \"patientregister\" && this.patRegisterForm.value.password == this.patRegisterForm.value.confirmpassword) {\r\n if (this.patRegisterForm.valid) {\r\n // const fullPhoneNumber = `${this.f.countryCode.value}-${this.f.phonenumber.value}`;\r\n // this.patRegisterForm.controls['phonenumber'].setValue(fullPhoneNumber);\r\n this.userService.registerPatient(this.patRegisterForm.value)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n\r\n this.alertService.success('Registration successful', true);\r\n if (this.loginpatient === \"patient\") {\r\n this.router.navigate(['/login']);\r\n }\r\n else {\r\n this.router.navigate(['/adminpatlist']);\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.notifyService.showError(\"\", \"Phone Number is already taken\")\r\n this.loading = false;\r\n });\r\n }\r\n else {\r\n this.notifyService.showError(\"\", \"Please fill all required fields properly\")\r\n this.loading = false;\r\n return;\r\n }\r\n }\r\n }\r\n showPass() {\r\n this.showPassword = !this.showPassword;\r\n }\r\n showConfirmPass() {\r\n this.showConfirmPassword = !this.showConfirmPassword;\r\n }\r\n BackLogin() {\r\n this.router.navigate(['/login']);\r\n }\r\n BackAdmin() {\r\n this.router.navigate(['/admin']);\r\n }\r\n BackToDoctor() {\r\n this.router.navigate(['/doclist']);\r\n }\r\n BackToPatient() {\r\n this.router.navigate(['/adminpatlist']);\r\n }\r\n GetDepartmentList() {\r\n this.userService.getDepartmentList().subscribe((res: any) => {\r\n if (res && res.IsSuccess && res.Results) {\r\n this.deptList = res?.Results;\r\n }\r\n },\r\n error => {\r\n this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n upload(files) {\r\n\r\n if (files.length === 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n\r\n for (let file of files)\r\n formData.append(file.name, file);\r\n\r\n const uploadReq = new HttpRequest('POST', `api/Doctor/UploadFile/`, formData, {\r\n reportProgress: true,\r\n });\r\n\r\n\r\n this.http.request(uploadReq).subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response)\r\n this.message = event.body.toString();\r\n\r\n });\r\n\r\n }\r\n Removepicture() {\r\n this.doc.FilePath = null;\r\n this.tempvalue = '';\r\n this.message = 'Profile removed'\r\n\r\n this.registerComponentSubscription.add(this.timermsg.pipe(\r\n takeWhile(x => this.message != null)\r\n ).subscribe(\r\n () => {\r\n this.message = null;\r\n\r\n }\r\n ));\r\n }\r\n\r\n generateAge() {\r\n let dobYear = String(moment(this.dateOfBirth).format(\"YYYY\"));\r\n if (dobYear > '1900') {\r\n this.Age = String(moment().diff(moment(this.dateOfBirth), 'years'));\r\n }\r\n }\r\n\r\n generateDOB() {\r\n //var curDate = new Date();\r\n this.dateOfBirth = String(moment(this.today).subtract(this.Age, 'year').format(\"MM/DD/YYYY\"));\r\n }\r\n\r\n}\r\n","export class Departement{\r\n public DepartmentId: string;\r\n public DepartmentName:string;\r\n public DepartmentShortName:string;\r\n public Description:string;\r\n public IsActive:boolean;\r\n\r\n}\r\n\r\nexport class HospitalDoctorMap {\r\n public HospitalDoctorMapId: string;\r\n public DepartmentId: string;\r\n public DoctorId: string;\r\n public HospitalId: string;\r\n}\r\n","\r\nexport class HospitalDoctorMap {\r\n\r\n public HospitalDoctorMapId: string;\r\n public DoctorId: string;\r\n public HospitalId: string;\r\n public DepartmentId: string;\r\n public Charge: number;\r\n public ConsultationType: string;\r\n public HospitalName: string;\r\n public DepartmentName: string;\r\n public DoctorName: string;\r\n public AdminId: string;\r\n}\r\n","\r\n/**\r\n * Helper class to decode and find JWT expiration.\r\n */\r\nimport { Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class JwtHelper {\r\n\r\n public urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: { break; }\r\n case 2: { output += '=='; break; }\r\n case 3: { output += '='; break; }\r\n default: {\r\n throw 'Illegal base64url string!';\r\n }\r\n }\r\n return this.b64DecodeUnicode(output);\r\n }\r\n\r\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\r\n private b64DecodeUnicode(str: any) {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n\r\n public decodeToken(token: string): any {\r\n let parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n let decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public getTokenExpirationDate(token: string): Date {\r\n let decoded: any;\r\n decoded = this.decodeToken(token);\r\n\r\n if (!decoded.hasOwnProperty('exp')) {\r\n return null;\r\n }\r\n\r\n let date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n let date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds || 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n}\r\n","export class Medication {\r\n\r\n public MedicationId: string;\r\n public PatientId: string;\r\n public VisitId: string;\r\n public DrugName: string;\r\n public Dose: string;\r\n public Frequency: string;\r\n public Remarks: string;\r\n\r\n}","import { HospitalDoctorMap } from '../HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { Qualification } from '../Qualification/qualification.model';\r\n\r\nexport class Meeting {\r\n public ZoomMeetingId: string;\r\n public MeetingNumber: string;\r\n public ApiKey: string;\r\n public ApiSecret: string;\r\n public Password: string;\r\n public DoctorId: string;\r\n public IsActive: boolean;\r\n}","export class ProductModel {\r\n\r\n Id: any;\r\n\r\n ProductTypeId: number;\r\n ProductTagId: number;\r\n VisibleIndividually: boolean;\r\n Name: string;\r\n ProductTags: any[] = [];\r\n ShortDescription: string;\r\n FullDescription: string;\r\n AdminComment: string;\r\n HospitalId: string;\r\n HospitalName: string;\r\n Hospital: any;\r\n ProductType: any;\r\n PictureId: number;\r\n ShowOnHomepage; boolean;\r\n MetaKeywords: string;\r\n MetaDescription: string;\r\n MetaTitle: string;\r\n PermaLink: string;\r\n Sku: string;\r\n ManufacturerPartNumber: string;\r\n DeliveryDateId: number;\r\n NotReturnable: boolean;\r\n DisableBuyButton: boolean;\r\n Price: number;\r\n OldPrice: number;\r\n ProductCost: number;\r\n MarkAsNew: boolean;\r\n MarkAsNewStartDateTime: Date;\r\n MarkAsNewEndDateTime: Date;\r\n DisplayOrder: number;\r\n IsActive: boolean = true;\r\n CreatedBy: string;\r\n CreatedOn: string;\r\n UpdatedBy: string;\r\n UpdatedOn: string;\r\n ChildProducts: ProductModel[] = [];\r\n GroupingLabel: string = '';\r\n}\r\n","export class ProductType {\r\n\r\n public id: number;\r\n public Type: string;\r\n}","export class Qualification{\r\n public QualificationId : string;\r\n public Designation : string ;\r\n public Education : string ;\r\n public PastAffiliation : string ;\r\n public Experience : string ;\r\n public Membership : string ;\r\n public DoctorId : string ;\r\n\r\n}\r\n","import {\r\n NgForm,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormBuilder,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport * as moment from 'moment/moment'\r\nexport class ContactInformation {\r\n public ContactInformationId: string;\r\n public ContactNumber: string;\r\n public Email: string;\r\n public ContactInfoValidator :FormGroup = null;\r\n public AdminId: string;\r\n\r\n // constructor() {\r\n\r\n // var _formBuilder = new FormBuilder();\r\n\r\n // this.ContactInfoValidator = _formBuilder.group({\r\n \r\n // 'ContactNumber':['', Validators.compose([Validators.required, Validators.pattern('^[0-9]{10}$')])],\r\n // 'Email':['', Validators.compose([Validators.required, Validators.pattern('^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}$')])],\r\n // });\r\n \r\n // }\r\n\r\n \r\n// public IsDirty(fieldName): boolean {\r\n// if (fieldName == undefined)\r\n// return this.ContactInfoValidator.dirty;\r\n// else\r\n// return this.ContactInfoValidator.controls[fieldName].dirty;\r\n// }\r\n\r\n// public IsValid():boolean{if(this.ContactInfoValidator.valid){return true;}else{return false;}} public IsValidCheck(fieldName, validator): boolean {\r\n// if (fieldName == undefined) {\r\n// return this.ContactInfoValidator.valid;\r\n// }\r\n// else\r\n// return !(this.ContactInfoValidator.hasError(validator, fieldName));\r\n// }\r\n}\r\n\r\n\r\n","\r\nexport class ContactUsModel {\r\n public UserContactId: Number;\r\n public Name: string;\r\n public ContactNumber: string;\r\n public Email: string;\r\n public Company: string;\r\n public Message : number;\r\n public CreatedOn: Date;\r\n\r\n}","\r\nexport class DanphecareModel {\r\n public UserId: string;\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string; \r\n public ContactNumber: string;\r\n public Email: string;\r\n public Service: string;\r\n public ServiceId : number;\r\n public Price : number;\r\n public PaymentProvider : string;\r\n \r\n \r\n}","import { HospitalDoctorMap } from '../HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { Qualification } from '../Qualification/qualification.model';\r\n\r\nexport class Doctor {\r\n // Note: Using only optional constructor properties without backing store disables typescript's type checking for the type\r\n constructor(DoctorId?: string, UserName?: string, Password?: string, NMC?: string, LongSignature?: string, OldPassword?: string, ConfirmPassword?: string, FirstName?: string, MiddleName?: string, LastName?: string, DoctorName?: string, Department?: string,\r\n DateOfBirth?: string, FilePath?: string, Gender?: string, PhoneNumber?: string, MailingAddress?: string, HospitalId?: string, IsActive?: boolean, IdentityUserId?: string,\r\n HospitalDoctorMap?: string, HospitalDepartmentMap?: Array, Qualification?: string, DoctorQualification?: Array, EnablePhNo?: boolean, DoctorRoomName?: string, AdminId?: string, HospitalIdentifier?: string, MeetingLink?: string, FileName?: string) {\r\n this.DoctorId = DoctorId;\r\n this.UserName = UserName;\r\n this.Password = Password;\r\n this.FirstName = FirstName;\r\n this.MiddleName = MiddleName;\r\n this.LastName = LastName;\r\n this.DoctorName = DoctorName;\r\n this.NMC = NMC;\r\n this.LongSignature = LongSignature;\r\n this.DateOfBirth = DateOfBirth;\r\n this.FilePath = FilePath;\r\n this.MailingAddress = MailingAddress;\r\n this.Gender = Gender;\r\n this.PhoneNumber = PhoneNumber;\r\n this.EnablePhNo = EnablePhNo;\r\n this.Department = Department;\r\n this.HospitalId = HospitalId;\r\n this.IsActive = IsActive;\r\n this.IdentityUserId = IdentityUserId;\r\n this.OldPassword = OldPassword\r\n this.ConfirmPassword = ConfirmPassword;\r\n this.HospitalDoctorMap = HospitalDoctorMap;\r\n this.HospitalDepartmentMap = HospitalDepartmentMap;\r\n this.Qualification = Qualification;\r\n this.DoctorQualification = DoctorQualification;\r\n this.DoctorRoomName = DoctorRoomName;\r\n this.AdminId = AdminId;\r\n this.HospitalIdentifier = HospitalIdentifier;\r\n this.MeetingLink = MeetingLink;\r\n this.FileName = FileName;\r\n }\r\n\r\n\r\n public DoctorId: string;\r\n public UserName: string;\r\n public Password: string;\r\n public DoctorName:string;\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string;\r\n public NMC: string;\r\n public LongSignature: string;\r\n public DateOfBirth: string;\r\n public FilePath: string;\r\n public MailingAddress: string;\r\n public Gender: string;\r\n public PhoneNumber: string;\r\n public EnablePhNo: boolean;\r\n public Department: string;\r\n public HospitalId: string;\r\n public IsActive: boolean;\r\n public IdentityUserId: string;\r\n public OldPassword: string;\r\n public ConfirmPassword: string;\r\n public DepartmentId: string;\r\n public HospitalDoctorMap: string;\r\n public HospitalDepartmentMap: Array=[];\r\n public Qualification : string;\r\n public DoctorQualification: Array = [];\r\n public DoctorRoomName: string;\r\n public AdminId: string;\r\n public HospitalIdentifier: string;\r\n public MeetingLink: string;\r\n public FileName: string;\r\n}\r\n\r\nexport class DoctorList {\r\n public Designation: string;\r\n public DoctorName: string;\r\n public Education: string;\r\n public Experience: string;\r\n public FileName: string;\r\n public FilePath: string;\r\n public HospitalDoctorMapId: string;\r\n public Membership: string;\r\n public PastAffiliation: string;\r\n public ScheduleList: Array = new Array();\r\n}\r\n","export class Hospital {\r\n public HospitalId: string;\r\n public HospitalName: string;\r\n public HospitalCode: string;\r\n public HospitalImage: string;\r\n public HospitalLogo: string;\r\n public ImagePath: string;\r\n public Location: string;\r\n public IsActive: boolean;\r\n public PaymentEnable: boolean;\r\n public AdminId: string = \"\";\r\n}\r\n\r\nexport class HospitalEdit {\r\n public HospitalId: string;\r\n public HospitalName: string;\r\n public HospitalCode: string;\r\n public HospitalImage: string;\r\n public HospitalLogo: string;\r\n public ImagePath: string;\r\n public Location: string;\r\n public IsActive: boolean;\r\n public PaymentEnable: boolean;\r\n public AdminId: string = \"\";\r\n}\r\n\r\n","export class PatientFamily {\r\n\r\n public FamilyMemberId: string;\r\n public PatientId: string;\r\n public Relationship: string;\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string;\r\n public DateOfBirth: string;\r\n public Gender: string;\r\n public Email: string;\r\n public ContactNumber: string;\r\n public Address: string;\r\n public BloodGroup: string;\r\n\r\n}","export class PatientMedicalRecord {\r\n\r\n public MedicalRecordId: string;\r\n public PatientId: string;\r\n public PatientName: string;\r\n public TestReportType: string;\r\n public FileName: string;\r\n public FilePath: string;\r\n public FileExtension: string;\r\n public UploadedBy: string;\r\n public FamilyMemberId: string;\r\n // public ClientPatientId: string;\r\n}","import { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\n\r\nexport class PatientFilesUploadModel {\r\n\r\n public PatientFileId: string ;\r\n public PatientId: string;\r\n public VisitId: string;\r\n public FileType: string = \"\";\r\n public Title: string = \"\";\r\n public FilePath: string = \"\";\r\n public Comment: string = \"\";\r\n\r\n}\r\n","import { Visit } from '../visit/visit.model';\r\nimport { Problem } from '../../models/problem/problem.model';\r\n\r\nexport class Patient {\r\n\r\n constructor(patientId?: string, registrationNumber?: string, firstName?: string, middleName?: string, lastName?: string, dateOfBirth?: string, mailingAddress?: string, gender?: string, contactNumber?: string, address?: string,\r\n isActive?: boolean, identityUserId?: string, visit?: Array, problem?: Array, createddate?: Date, FullName?: string,\r\n AdminId?: string, HospitalIdentifier?: string, Password?: string, OldPassword?: string, ConfirmPassword?: string, age?: string, bloodGroup?: string) {\r\n this.PatientId = patientId;\r\n this.RegistrationNumber = registrationNumber;\r\n this.FirstName = firstName;\r\n this.MiddleName = middleName;\r\n this.LastName = lastName;\r\n this.DateOfBirth = dateOfBirth;\r\n this.MailingAddress = mailingAddress;\r\n this.Gender = gender;\r\n this.ContactNumber = contactNumber;\r\n this.Address = address;\r\n this.IsActive = isActive;\r\n this.IdentityUserId = identityUserId;\r\n this.Visit = visit;\r\n this.CreatedDate = createddate;\r\n this.FullName = FullName;\r\n this.AdminId = AdminId;\r\n this.HospitalIdentifier = HospitalIdentifier;\r\n this.Password = Password;\r\n this.OldPassword = OldPassword;\r\n this.ConfirmPassword = ConfirmPassword;\r\n this.Age = age;\r\n this.BloodGroup = bloodGroup;\r\n }\r\n\r\n\r\n public PatientId: string;\r\n public RegistrationNumber: string;\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string;\r\n public DateOfBirth: string;\r\n public MailingAddress: string;\r\n public Gender: string;\r\n public ContactNumber: string;\r\n public Address: string;\r\n public IsActive: boolean;\r\n public IdentityUserId: string;\r\n public CreatedDate: Date;\r\n public Visit: Array = [];\r\n public Problem: Array = [];\r\n public FullName: string;\r\n public AdminId: string;\r\n public HospitalIdentifier: string;\r\n public Password: string;\r\n public OldPassword: string;\r\n public ConfirmPassword: string;\r\n public Age: string;\r\n public BloodGroup: string;\r\n}\r\n\r\nexport class PatientModel {\r\n public PatientId: string;\r\n public RegistrationNumber: number;\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string;\r\n public DateOfBirth: Date;\r\n public Gender: string;\r\n public MailingAddress: string;\r\n public ContactNumber: string;\r\n public Address: string;\r\n public IsActive: boolean;\r\n public VisitId: string;\r\n public hospitalId: number;\r\n public IdentityUserId: string;\r\n public Visit: Array = [];\r\n public Problem: Problem = new Problem();\r\n public Age: string;\r\n public BloodGroup: string;\r\n}\r\nexport class PatientDoc {\r\n PatientId: string;\r\n PatientName: string = \"\";\r\n Age: number;\r\n Sex: string = \"\";\r\n Email: string = \"\";\r\n VisitId: string;\r\n MobileNumber: string = \"\";\r\n Address: string = \"\";\r\n //prob: Array = [];\r\n Fever: boolean = false;\r\n Cough: boolean = false;\r\n BreathingDifficulty: boolean = false;\r\n Tiredness: boolean = false;\r\n SoreThroat: boolean = false;\r\n Bodyache: boolean = false;\r\n ChestPain: boolean = false;\r\n IdentityUserId: string = \"\";\r\n Diarrhea: boolean = false;\r\n AnyOtherSymptoms: string = \"\";\r\n NMC: string = \"\";\r\n\r\n HeartDisease: boolean = false;\r\n HighBloodPressure: boolean = false;\r\n Diabetes: boolean = false;\r\n Copd: boolean = false;\r\n Transplant: boolean = false;\r\n RecentTravel: boolean = false;\r\n Cancer: boolean = false;\r\n Exposure: boolean = false;\r\n PatientMedicalSymptoms: string = \"\";\r\n OtherPertientInformation: string = \"\";\r\n Status: number = 0;\r\n Medication: string = \"\";\r\n TreatmentAdvice: string = \"\";\r\n FollowUp: string = \"\";\r\n LastUpdatedTime: Date;\r\n VisitType: string = \"\";\r\n}\r\nexport class Paidbooking {\r\n public PatientId: string;\r\n public DoctorName: string;\r\n public VisitId: string;\r\n public VisitDate: Date;\r\n public VisitStartTime: Date;\r\n public Status: string;\r\n public DepartmentName: string;\r\n public HospitalName: string;\r\n public ContactNumber: string;\r\n public Address: string;\r\n public IsActive: boolean;\r\n Fever: boolean = false;\r\n Cough: boolean = false;\r\n BreathingDifficulty: boolean = false;\r\n Tiredness: boolean = false;\r\n SoreThroat: boolean = false;\r\n Bodyache: boolean = false;\r\n ChestPain: boolean = false;\r\n Diarrhea: boolean = false;\r\n AnyOtherSymptoms: string = \"\";\r\n\r\n HeartDisease: boolean = false;\r\n HighBloodPressure: boolean = false;\r\n Diabetes: boolean = false;\r\n Copd: boolean = false;\r\n Transplant: boolean = false;\r\n RecentTravel: boolean = false;\r\n Cancer: boolean = false;\r\n Exposure: boolean = false;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export class Problem {\r\n public ProblemId: string;\r\n public Fever: boolean;\r\n public Cough: boolean;\r\n public BreathingDifficulty: boolean;\r\n public Tiredness: boolean;\r\n public SoreThroat: boolean;\r\n public Bodyache: boolean;\r\n public ChestPain: boolean;\r\n public Diarrhea: boolean;\r\n public AnyOtherSymptoms: string;\r\n public HighBloodPressure: boolean ;\r\n public Diabetes: boolean ;\r\n public Copd: boolean ;\r\n public Transplant: boolean;\r\n public RecentTravel: boolean;\r\n public Cancer: boolean ;\r\n public Exposure: boolean;\r\n public OtherPertientInformation: string;\r\n public HeartDisease: boolean;\r\n public VisitId: string;\r\n public Height : string;\r\n public Weight : string;\r\n public Temperature: string;\r\n public BP : string;\r\n public BMI : string;\r\n public Bodypain : string;\r\n public Painscale : string;\r\n\r\n public History: string;\r\n public ChiefComplaints : string;\r\n public Investigation : string;\r\n public Remarks : string;\r\n public FinalDiagnosis : string;\r\n\r\n}\r\n","import { format } from \"path\";\r\n\r\nexport class Scheduling {\r\n public SchedulingId: string;\r\n public StartDate: Date;\r\n public Date: Date = new Date();\r\n public EndDate: Date;\r\n public StartTime: any;\r\n public EndTime: any;\r\n public HospitalDoctorMapId: string;\r\n public DepartmentId: string;\r\n public HospitalId: string;\r\n public DoctorId: string;\r\n public DepatmentName: string;\r\n public HospitalName: string;\r\n public DoctorName: string;\r\n public StartHours: number;\r\n public StartMinutes: number;\r\n public StartSeconds: number;\r\n public EndHours: number;\r\n public EndMinutes: number;\r\n public EndSeconds: number;\r\n public NewScheduleList: Array = new Array();\r\n public ScheduleInterval: Array = new Array();\r\n public AppointmentType: string;\r\n public AdminId: string;\r\n}\r\nexport class SchedulingList {\r\n public StartHours: number;\r\n public StartMinutes: number;\r\n public StartSeconds: number;\r\n public EndHours: number;\r\n public EndMinutes: number;\r\n public EndSeconds: number;\r\n public StartTime: any;\r\n public EndTime: any;\r\n public AccomodatedPatient: number;\r\n\r\n}\r\nexport class VisitDate {\r\n public VisitDate: Date;\r\n public StartTime: string;\r\n public EndTime: string;\r\n public StartHours: number;\r\n public StartMinutes: number;\r\n public EndHours: number;\r\n public EndMinutes: number;\r\n public HospitalId: string;\r\n public DepartmentId: string;\r\n public DoctorId: string;\r\n public StartMeridian: string;\r\n public EndMeridian: string;\r\n}\r\nexport class ScheduleInterval {\r\n public ScheduleIntervalId: string;\r\n public SchedulingId: string;\r\n public StartTime: string;\r\n public Date: Date;\r\n public EndTime: string;\r\n public IsBooked: boolean;\r\n public IsActive: boolean;\r\n public VisitId: string;\r\n public HospitalDoctorMapId: string;\r\n}\r\n\r\n","export class User {\r\n userId: string =\"\";\r\n userName: string =\"\";\r\n password: string = \"\";\r\n firstName: string = \"\";\r\n lastName: string = \"\";\r\n token: string = \"\";\r\n isPatient: boolean;\r\n noToken: string = \"\";\r\n identityUserId: string = \"\";\r\n}\r\n\r\nexport class Login {\r\n PhoneNumber: string;\r\n Password: string;\r\n}\r\n","import { Problem } from '../problem/problem.model';\r\nimport {\r\n NgForm,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormBuilder,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { PatientFilesUploadModel } from '../patient/pat-fileupload.model';\r\nimport * as moment from 'moment/moment'\r\nimport { ScheduleInterval } from '../scheduling/scheduling.model';\r\nimport { Medication } from '../Medications/Medications.model';\r\n\r\nexport class Visit {\r\n public VisitId: string;\r\n public VisitDate: Date;\r\n public VisitStartTime: Date;\r\n public VisitEndTime: Date;\r\n public ProviderId: string;\r\n public IsActive: boolean;\r\n public PatientId: string;\r\n public Status: string;\r\n public TreatmentAdvice: string;\r\n public Medication: string;\r\n public FollowUp: string;\r\n public VisitType:string;\r\n public HospitalId: string;\r\n public SchedulingId: string;\r\n public DepartmentId: string;\r\n public PaymentStatus: string;\r\n public BookingTime: string=\"\";\r\n public Problem: Problem = new Problem();\r\n public medications: Array = [];\r\n public DoctorId: string;\r\n public FollowupCreated : boolean;\r\n //public PatientFiles: PatientFilesUploadModel = new PatientFilesUploadModel();\r\n public PatientFiles: Array=[];\r\n public PatFile: string = null;\r\n // public PatientFiles: Array = [];\r\n public FamilyMemberId: String;\r\n\r\n //jitsi room name\r\n public roomname: string; \r\n public PatientValidator :FormGroup = null;\r\n \r\n public CancelledBookingTime: string=\"\";\r\n public ParentVisitId: string=\"\";\r\n \r\n constructor() {\r\n\r\n var _formBuilder = new FormBuilder();\r\n\r\n this.PatientValidator = _formBuilder.group({\r\n 'VisitDate':['',Validators.compose([Validators.required, this.dateValidators]),]\r\n });\r\n \r\n }\r\n\r\n public IsDirty(fieldname): boolean {\r\n if (fieldname == undefined) {\r\n return this.PatientValidator.dirty;\r\n }\r\n else {\r\n return this.PatientValidator.controls[fieldname].dirty;\r\n }\r\n \r\n}\r\npublic IsValidCheck(fieldname, validator): boolean {\r\n // this is used to check for patient form is valid or not \r\n if (this.PatientValidator.valid) {\r\n return true;\r\n }\r\n\r\n if (fieldname == undefined) {\r\n return this.PatientValidator.valid;\r\n }\r\n else {\r\n\r\n return !(this.PatientValidator.hasError(validator, fieldname));\r\n }\r\n}\r\npublic dateValidators(control: FormControl): { [key: string]: boolean } {\r\n\r\n if (control) {\r\n let _date = control.value;\r\n var _currDate = moment().format('YYYY-MM-DD');\r\n //if positive then selected time is of future else it of the past\r\n if (moment(_date).diff(_currDate) < 0)\r\n return { 'invalidDate': true };\r\n }\r\n}\r\n hasError(typeofvalidator:string,\r\n controlname:string) : boolean{\r\n return this.PatientValidator\r\n .controls[controlname]\r\n .hasError(typeofvalidator);}\r\n}\r\nexport class visitdata{\r\n public IsSuccess: boolean;\r\n public ResponseMessage: string;\r\n public Results:Visit = new Visit();\r\n public StatusCode: number;\r\n}","\r\nimport { Injectable, EventEmitter } from '@angular/core';\r\nimport { HubConnection, HubConnectionBuilder } from '@aspnet/signalr';\r\nimport { Doctor } from '../../models/doctor/doctor.model';\r\nimport { Patient } from '../../models/patient/patient.model';\r\nimport { AuthenticationService } from '../authentication.service';\r\nimport { Global } from 'src/app/app.global';\r\nimport { Subject } from 'rxjs';\r\nimport { EventNotificationService } from '../EventNotification/event-notification.service';\r\nimport { Router } from '@angular/router';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChatService {\r\n EventConnectionEstablished = new EventEmitter();\r\n EventGetAllPatients = new EventEmitter();\r\n EventCallPatient = new EventEmitter();\r\n EventCompletePatient = new EventEmitter();\r\n EventChatMessage = new EventEmitter();\r\n EventGetAllDoctors = new EventEmitter();\r\n private connectionIsEstablished = false;\r\n private _hubConnection: HubConnection;\r\n private notificationSubject = new Subject>();\r\n public notification$ = this.notificationSubject.asObservable();\r\n token: any;\r\n EventDocStatus = new EventEmitter();\r\n\r\n constructor(private authenticationService: AuthenticationService,\r\n public global: Global,\r\n public authService: AuthenticationService,\r\n private _eventNotify: EventNotificationService,\r\n private router: Router) {\r\n this.token = this.authenticationService.currentUserValue;\r\n }\r\n\r\n\r\n public CallPatient(callPatient) {\r\n console.log('callPatient');\r\n this._hubConnection.invoke('CallToPatient', callPatient)\r\n .catch(function (err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n //public PatientAttended(attendPatient: PatientsAttendedModel) {\r\n // console.log(attendPatient);\r\n // this._hubConnection.invoke('PatientAttended', attendPatient)\r\n // .catch(function (err) {\r\n // console.log(err);\r\n // });\r\n //}\r\n\r\n public SendChatMessage(chatMessage) {\r\n this._hubConnection.invoke('SendChatMessage', chatMessage)\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n public SendReport(VisitId) {\r\n this._hubConnection.invoke('SendReport', VisitId)\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n public DoctorStatusCheck(user) {\r\n this._hubConnection.invoke('DoctorStatusCheck', user)\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n public Disconnect() {\r\n this._hubConnection.stop();\r\n }\r\n\r\n // public LoadActiveDoctors() {\r\n // this._hubConnection.invoke('GetActiveDoctors').catch(err => {\r\n // console.log(err);\r\n // });\r\n // }\r\n\r\n public Connect() {\r\n this.createConnection();\r\n this.registerOnServerEvents();\r\n this.startConnection();\r\n }\r\n private createConnection() {\r\n this._hubConnection = new HubConnectionBuilder()\r\n .withUrl(window.location.origin + '/NotificationHub?token=' + sessionStorage.getItem('jwtToken'))\r\n .build();\r\n this._hubConnection.serverTimeoutInMilliseconds = 432000000; // 4 hrs\r\n }\r\n\r\n private startConnection(): void {\r\n\r\n this._hubConnection.on('NotifyDoctor', (data) => {\r\n //console.log(data);\r\n this._eventNotify.getUserNotification().subscribe(res => {\r\n var userNotifications = res;\r\n this.notificationSubject.next(userNotifications);\r\n },\r\n err => { });\r\n\r\n });\r\n\r\n this._hubConnection\r\n .start()\r\n .then(() => {\r\n this.connectionIsEstablished = true;\r\n console.log('Hub connection started');\r\n this.EventConnectionEstablished.emit(true);\r\n })\r\n .catch(err => {\r\n console.log('Error while establishing connection, retrying...');\r\n setTimeout(function () { this.startConnection(); }, 432000000);\r\n });\r\n\r\n this._hubConnection.onclose(function (e) {\r\n console.log('Connection Closed');\r\n setTimeout(function () { this.startConnection(); }, 432000000);\r\n\r\n });\r\n\r\n }\r\n\r\n private registerOnServerEvents(): void {\r\n\r\n this._hubConnection.on('GetAllPatients', (data: any) => {\r\n var obj: any = JSON.parse(data)\r\n this.EventGetAllPatients.emit(obj);\r\n });\r\n\r\n this._hubConnection.on('CallPatient', (data: any) => {\r\n var obj: any = JSON.parse(data)\r\n\r\n this.EventCallPatient.emit(obj);\r\n });\r\n\r\n\r\n this._hubConnection.on('CompletePatient', (data: any) => {\r\n console.log('Complete Patient' + data);\r\n var obj: any = JSON.parse(data)\r\n this.EventCompletePatient.emit(obj);\r\n });\r\n\r\n this._hubConnection.on('ChatMessage', (data: any) => {\r\n // console.log('Message' + data);\r\n const msg: any = JSON.parse(data);\r\n this.EventChatMessage.emit(msg);\r\n });\r\n\r\n this._hubConnection.on('GetAllDoctors', (data: any) => {\r\n const jsonData: any = JSON.parse(data);\r\n this.EventGetAllDoctors.emit(jsonData);\r\n });\r\n\r\n this._hubConnection.on('DoctorStatus', (data: any) => {\r\n // console.log('Message' + data);\r\n const status: any = data;\r\n this.EventDocStatus.emit(status);\r\n });\r\n\r\n this._hubConnection.on('LogOutUser', (data: any) => {\r\n this.authenticationService.logout();\r\n this.router.navigate(['/login']);\r\n })\r\n\r\n }\r\n public LogoutUserWithId(userId) {\r\n this._hubConnection.invoke('LogOutUser', userId)\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class EventNotificationService {\r\n private baseUrl: string;\r\n constructor(\r\n private http: HttpClient,) {\r\n this.baseUrl = '/api/notification/';\r\n }\r\n getUserNotification() {\r\n return this.http.get(this.baseUrl);\r\n }\r\n markAsReadStatus(data: any) {\r\n return this.http.put(this.baseUrl, data);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LabReportUploadEndpointService extends EndpointFactory {\r\n baseUrl: string = 'api/LabReport'\r\n\r\n\r\n constructor(private _http: HttpClient, injector: Injector) {\r\n super(_http, injector);\r\n }\r\n GetAllLabReports(): Observable {\r\n return this._http.get(`${this.baseUrl}`).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.GetAllLabReports()));\r\n }));\r\n }\r\n GetLabReportPreview(patientFileId: string): Observable {\r\n return this._http.get(`${this.baseUrl}/GetLabReportPreview?patientFileId=${patientFileId}`).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.GetLabReportPreview(patientFileId)));\r\n }));\r\n }\r\n IsPhoneNumberRegistered(phoneNumber: string): Observable {\r\n return this._http.get(`${this.baseUrl}/IsPhoneNumberRegistered?PhoneNumber=${phoneNumber}`).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.IsPhoneNumberRegistered(phoneNumber)));\r\n }));\r\n }\r\n uploadFile(patient: any, formData: FormData,AdminId: string): Observable {\r\n return this._http.post(`${this.baseUrl}/${patient.firstName}/${patient.lastName}/${patient.phoneNumber}/${patient.email}/${AdminId}`, formData).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.uploadFile(patient, formData,AdminId)));\r\n }));\r\n }\r\n\r\n}\r\n\r\n","import { Injectable, Injector } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { EndpointFactory } from \"../endpoint-factory.service\";\r\nimport { catchError, map } from \"rxjs/operators\";\r\nimport { Meeting } from \"src/app/models/Meeting/meeting.model\";\r\n\r\n@Injectable()\r\nexport class MeetingEndPoint extends EndpointFactory {\r\n private readonly _meetingsListUrl: string =\r\n \"/api/ZoomFeature/GetZoomMeetingSetUpDetails\";\r\n private readonly _addMeetingUrl: string = \"/api/zoomFeature/AddZoomSetUpDetail\";\r\n private readonly _updateMeetingUrl: string =\r\n \"/api/ZoomFeature/UpdateZoomMeetingSetUp\";\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n scheduleMeetingEndpoint(userObject: any): Observable {\r\n return this.http\r\n .post(\r\n this._addMeetingUrl,\r\n JSON.stringify(userObject),\r\n this.getRequestHeaders()\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(\r\n this.handleError(error, () =>\r\n this.scheduleMeetingEndpoint(userObject)\r\n )\r\n );\r\n })\r\n );\r\n }\r\n getMeetingsListEndpoint(): Observable {\r\n let endpointUrl = `${this._meetingsListUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError((error) => {\r\n return throwError(\r\n this.handleError(error, () => this.getMeetingsListEndpoint())\r\n );\r\n })\r\n );\r\n }\r\n updateMeetingEndPoint(meetingObject: Meeting, Id: string): Observable {\r\n let endpointUrl = Id ? `${this._updateMeetingUrl}` : this._updateMeetingUrl;\r\n\r\n return this.http\r\n .put(\r\n endpointUrl,\r\n JSON.stringify(meetingObject),\r\n this.getRequestHeaders()\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(\r\n this.handleError(error, () =>\r\n this.updateMeetingEndPoint(meetingObject, Id)\r\n )\r\n );\r\n })\r\n );\r\n }\r\n // updateHospitalEndpoint(userObject: any, Id: string): Observable {\r\n // let endpointUrl = Id ? `${this._hospitalUpdateUrl}/${Id}` : this._hospitalUpdateUrl;\r\n\r\n // return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n // catchError(error => {\r\n // return throwError(this.handleError(error, () => this.updateHospitalEndpoint(userObject, Id)));\r\n // }));\r\n // }\r\n}\r\n","import { Injectable, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { DoctorEndpoint } from '../doctor/doctor-endpoint.service';\r\nimport { Doctor } from 'src/app/app.model';\r\nimport { ContactInformation } from 'src/app/models/contactInfo/contactinformation.model';\r\nimport * as _ from 'lodash';\r\nimport { MeetingEndPoint } from './meeting-endpoint.service';\r\nimport { Meeting } from 'src/app/models/Meeting/meeting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MeetingService {\r\n constructor(private router: Router, private http: HttpClient, private meetingEndPoint: MeetingEndPoint) {}\r\n\r\n scheduleMeeting(data: Meeting){\r\n return this.meetingEndPoint.scheduleMeetingEndpoint(data);\r\n }\r\n getMeetingsList() {\r\n return this.meetingEndPoint.getMeetingsListEndpoint();\r\n }\r\n updateMeeting(meeting: Meeting) {\r\n if (meeting.DoctorId) {\r\n return this.meetingEndPoint.updateMeetingEndPoint(meeting, meeting.DoctorId)\r\n }\r\n else {\r\n return this.meetingEndPoint.updateMeetingEndPoint(meeting, meeting.DoctorId).pipe(\r\n mergeMap(map => {\r\n meeting.DoctorId = meeting.DoctorId;\r\n return this.meetingEndPoint.updateMeetingEndPoint(meeting, meeting.DoctorId)\r\n }));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AlertService {\r\n private subject = new Subject();\r\n private keepAfterRouteChange = false;\r\n\r\n constructor(private router: Router) {\r\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n if (this.keepAfterRouteChange) {\r\n // only keep for a single route change\r\n this.keepAfterRouteChange = false;\r\n } else {\r\n // clear alert message\r\n this.clear();\r\n }\r\n }\r\n });\r\n }\r\n\r\n getAlert(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n success(message: string, keepAfterRouteChange = false) {\r\n this.keepAfterRouteChange = keepAfterRouteChange;\r\n this.subject.next({ type: 'success', text: message });\r\n }\r\n\r\n error(message: string, keepAfterRouteChange = false) {\r\n this.keepAfterRouteChange = keepAfterRouteChange;\r\n this.subject.next({ type: 'error', text: message });\r\n }\r\n\r\n clear() {\r\n // clear by calling subject.next() without parameters\r\n this.subject.next();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport * as jwt_decode from 'jwt-decode';\r\nimport { User } from '../models/user/user.model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NotificationService } from './notification.service';\r\nimport { Global } from '../app.global';\r\nimport { JwtHelper } from '../models/JwtHelper';\r\nimport { IdToken } from '../models/IdToken';\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthenticationService {\r\n private currentUserSubject: BehaviorSubject;\r\n public currentUser: Observable;\r\n userType: string;\r\n jwtToken: any;\r\n loginVal: any;\r\n result: boolean;\r\n visitId: any;\r\n constructor(private http: HttpClient, private route: ActivatedRoute,\r\n private router: Router, private notifyService: NotificationService, private global: Global) {\r\n this.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\r\n this.currentUser = this.currentUserSubject.asObservable();\r\n }\r\n\r\n get isUserAuthenticated(): boolean {\r\n return this.currentUserValue != null;\r\n }\r\n public get loginValue() {\r\n const token = sessionStorage.getItem('jwtToken');\r\n const loginP = localStorage.getItem('loginPat');\r\n const loginD = localStorage.getItem('loginDoc');\r\n let jwtHelper = new JwtHelper();\r\n let decodedIdToken = jwtHelper.decodeToken(token);\r\n this.userType = decodedIdToken.UserType\r\n if (loginP !== null || loginD !== null) {\r\n if (this.userType === \"Patient\") {\r\n this.loginVal = loginP;\r\n }\r\n else if (this.userType === \"Doctor\") {\r\n this.loginVal = loginD;\r\n }\r\n }\r\n return this.loginVal\r\n }\r\n public get visitid() {\r\n const vid = localStorage.getItem('vid');\r\n this.visitId = vid;\r\n return this.visitId\r\n }\r\n public get currentUserValue(): IdToken {\r\n const token = sessionStorage.getItem('jwtToken');\r\n if (token != null || token != undefined) {\r\n let jwtHelper = new JwtHelper();\r\n let decodedIdToken = jwtHelper.decodeToken(token);\r\n\r\n this.setUserType(decodedIdToken.UserType);\r\n\r\n return this.jwtToken = decodedIdToken;\r\n }\r\n else {\r\n this.router.navigate(['/login']);\r\n\r\n }\r\n }\r\n\r\n setUserType(userType: string) {\r\n this.userType = userType;\r\n }\r\n\r\n login(phonenumber: string, password: string, isPatient: boolean) {\r\n return this.http.post(`/api/account/login`, { phonenumber, password })\r\n .pipe(map(user => {\r\n // login successful if there's a jwt token in the response\r\n if (user && user.token) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n sessionStorage.removeItem('jwtToken');\r\n //localStorage.setItem('currentUser', JSON.stringify(user));\r\n sessionStorage.setItem('jwtToken', user.token);\r\n const token = user.token;\r\n const decoded = jwt_decode(token);\r\n this.jwtToken = decoded;\r\n this.setUserType(decoded.UserType);\r\n if (this.userType == \"Patient\") {\r\n localStorage.setItem('loginPat', \"patient\");\r\n this.router.navigate(['/HospitalList']);\r\n //this.currentUserSubject.next(user);\r\n }\r\n else if (this.userType == \"Doctor\") {\r\n localStorage.setItem('loginDoc', \"doctor\");\r\n this.router.navigate(['/DocDashboard']);\r\n //this.currentUserSubject.next(user);\r\n }\r\n\r\n else if (this.userType == \"Admin\") {\r\n this.router.navigate(['/admin']);\r\n this.notifyService.showInfo(\"Info\", \"Admin Page\")\r\n }\r\n //else {\r\n // decoded.UserType = \"admin\"\r\n // this.jwtToken = decoded;\r\n // this.router.navigate(['/register']);\r\n // this.notifyService.showInfo(\"Info\", \"Registration for new Doctor\")\r\n //}\r\n\r\n }\r\n return;\r\n }));\r\n }\r\n\r\n logout() {\r\n // remove user from session storage to log user out\r\n\r\n const token = sessionStorage.getItem('jwtToken');\r\n const loginP = localStorage.getItem('loginPat');\r\n const loginD = localStorage.getItem('loginDoc');\r\n const decoded = jwt_decode(token);\r\n this.userType = decoded.UserType;\r\n sessionStorage.removeItem('jwtToken');\r\n\r\n //const vid = localStorage.getItem('vid');\r\n //const decoded = jwt_decode(token);\r\n //this.userType = decoded.UserType;\r\n //if (this.userType === \"Patient\" || this.userType === \"Doctor\") {\r\n // this.patService.removeVisitIdFromLogout(vid).subscribe(\r\n // (res) =>\r\n\r\n // this.notifyService.showInfo(\"INFO\", \"Patient unable to connect due to network problem\"),\r\n // (res) => this.Error(res)\r\n // );\r\n //}\r\n if (loginP !== null || loginD !== null) {\r\n if (this.userType === \"Patient\") {\r\n localStorage.removeItem('loginPat');\r\n localStorage.setItem('loginPat', \"logoutPat\");\r\n\r\n localStorage.removeItem('vid');\r\n }\r\n else if (this.userType === \"Doctor\") {\r\n localStorage.removeItem('loginDoc');\r\n localStorage.removeItem('vid');\r\n\r\n }\r\n }\r\n\r\n this.currentUserSubject.next(null);\r\n }\r\n\r\n visitIdToken(vid) {\r\n localStorage.removeItem('vid');\r\n localStorage.setItem('vid', `${vid}`);\r\n }\r\n\r\n public get IsTokenValid(): Observable {\r\n\r\n return this.http.get('/api/account/ValidUserCheck');\r\n // .subscribe(res => {\r\n // debugger;\r\n // this.result = true;\r\n // console.log(res)\r\n // },\r\n // (err: HttpErrorResponse) => {\r\n // if (err.status == 401) {\r\n // debugger;\r\n // this.result = false;\r\n // }\r\n // },\r\n // () => console.log(\"Request Complete\"));\r\n //return this.result;\r\n }\r\n // validateSession() {\r\n // let seassionVal = sessionStorage.getItem('jwtToken');\r\n // if (seassionVal !== null) {\r\n // let sessionObj = JSON.parse(seassionVal);\r\n // let expiredAt = new Date(value.expiredAt);\r\n // if (expiredAt > new Date()) { // Validate expiry date.\r\n // return sessionObj.value;\r\n // } else {\r\n // sessionStorage.removeItem(key);\r\n // }\r\n // }\r\n // return null;\r\n //}\r\n\r\n resetPassword(userId: string, password: string, oldPassword? : string) {\r\n return this.http.post(`/api/account/resetPassword`, { userId, password, oldPassword })\r\n .pipe(map(user => {\r\n // login successful if there's a jwt token in the response\r\n this.notifyService.showInfo(\"Info\", \"Reset Password successfully\")\r\n return;\r\n }));\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router } from '@angular/router'\r\nimport { ChatService } from \"./ChatNotification/chat-notification.service\";\r\nconst MINUTES_UNITL_AUTO_LOGOUT = 10 // in mins\r\nconst CHECK_INTERVAL = 15000 // in ms\r\nconst STORE_KEY = 'lastAction';\r\n@Injectable()\r\nexport class AutoLogoutService {\r\n public getLastAction() {\r\n return parseInt(localStorage.getItem(STORE_KEY));\r\n }\r\n public setLastAction(lastAction: number) {\r\n localStorage.setItem(STORE_KEY, lastAction.toString());\r\n //localStorage.setItem('login', \"false\")\r\n }\r\n\r\n constructor(private router: Router, public _chatService: ChatService) {\r\n this.check();\r\n this.initListener();\r\n this.initInterval();\r\n localStorage.setItem(STORE_KEY,Date.now().toString());\r\n }\r\n\r\n initListener() {\r\n document.body.addEventListener('click', () => this.reset());\r\n document.body.addEventListener('mouseover',()=> this.reset());\r\n document.body.addEventListener('mouseout',() => this.reset());\r\n document.body.addEventListener('keydown',() => this.reset());\r\n document.body.addEventListener('keyup',() => this.reset());\r\n document.body.addEventListener('keypress',() => this.reset());\r\n }\r\n\r\n reset() {\r\n this.setLastAction(Date.now());\r\n }\r\n\r\n initInterval() {\r\n setInterval(() => {\r\n this.check();\r\n }, CHECK_INTERVAL);\r\n }\r\n\r\n check() {\r\n const now = Date.now();\r\n const timeleft = this.getLastAction() + MINUTES_UNITL_AUTO_LOGOUT * 60 * 1000;\r\n const diff = timeleft - now;\r\n const isTimeout = diff < 0;\r\n\r\n if (isTimeout) {\r\n localStorage.clear();\r\n this._chatService.Disconnect();\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ContactUsEndpoint extends EndpointFactory {\r\n\r\n private readonly _GetlistofContactedUsrUrl: string = \"/api/contactus/GetlistOfContactedUsr\";\r\n private readonly _PostContactformdataUrl: string = \"/api/contactus/PostContactformdata\";\r\n \r\n \r\n\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n GetlistOfContactedUsr(): Observable{\r\n let endpointUrl = `${this._GetlistofContactedUsrUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.GetlistOfContactedUsr()));\r\n }));\r\n }\r\n\r\n PostContactformdata(userObject: any): Observable {\r\n\r\n return this.http.post(this._PostContactformdataUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.PostContactformdata(userObject)));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DanphecareModel } from '../../models/danphecare/danphecare.model';\r\nimport { ContactUsEndpoint } from './contactUs-endpoint.service';\r\nimport { ContactUsModel } from 'src/app/models/contactUs/contactUs.model';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class ContactUsService {\r\n constructor(private router: Router, private http: HttpClient, private contactUsEndPoint: ContactUsEndpoint) {\r\n }\r\n\r\n GetlistOfContactedUsr(){\r\n return this.contactUsEndPoint.GetlistOfContactedUsr();\r\n }\r\n PostContactformdata(contact: ContactUsModel) {\r\n return this.contactUsEndPoint.PostContactformdata(contact);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DanphecareModel } from '../../models/danphecare/danphecare.model';\r\nimport { Observable } from 'rxjs';\r\nimport { DanphecareEndpoint } from '../../services/danphecare/danphecare-endpoint.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class DanphecareService {\r\n constructor(private router: Router, private http: HttpClient, private danphecareEndPoint: DanphecareEndpoint) {\r\n }\r\n\r\n GetAppliedUsrlist(){\r\n return this.danphecareEndPoint.GetAppliedUsrlist();\r\n }\r\n\r\n applytoIsolation(danphecare: DanphecareModel) {\r\n return this.danphecareEndPoint.applytoIsolation(danphecare);\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class DanphecareEndpoint extends EndpointFactory {\r\n \r\n private readonly _GetAppliedUsrlistUrl: string = \"/api/danphecare/GetAppliedUsrlist\";\r\n private readonly _applytoIsolationUrl: string = \"/api/danphecare/ApplyToIsolation\"; \r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n GetAppliedUsrlist(): Observable{\r\n let endpointUrl = `${this._GetAppliedUsrlistUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.GetAppliedUsrlist()));\r\n }));\r\n }\r\n\r\n applytoIsolation(userObject: any): Observable {\r\n\r\n return this.http.post(this._applytoIsolationUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.applytoIsolation(userObject)));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { IdToken } from '../models/IdToken';\r\nimport { JwtHelper } from '../models/JwtHelper';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DecodeTokenService {\r\n\r\n constructor(private authService: AuthenticationService, private router: Router) { }\r\n\r\n decodeToken(token) {\r\n sessionStorage.removeItem('jwtToken');\r\n sessionStorage.setItem('jwtToken', token);\r\n\r\n let jwtHelper = new JwtHelper();\r\n let decodedIdToken = jwtHelper.decodeToken(token);\r\n //const decoded = jwt_decode(token);\r\n let jwtToken = decodedIdToken;\r\n let userType = decodedIdToken.UserType;\r\n this.authService.setUserType(userType);\r\n if (userType == \"Patient\") {\r\n localStorage.removeItem('loginPat');\r\n localStorage.setItem('loginPat', \"patient\");\r\n this.router.navigate(['/PatDashboard']);\r\n /* this.notifyService.showSuccess(\"Welcome\", \"login successful\");*/\r\n\r\n }\r\n else if (userType == \"Doctor\") {\r\n localStorage.removeItem('loginDoc');\r\n localStorage.setItem('loginDoc', \"doctor\");\r\n this.router.navigate(['/DocDashboard']);\r\n /* this.notifyService.showSuccess(\"Welcome\", \"login successful\");*/\r\n\r\n }\r\n else if (userType == \"Admin\") {\r\n localStorage.clear();\r\n this.router.navigate(['/admin']);\r\n /* this.notifyService.showInfo(\"Info\", \"Admin Page\");*/\r\n /* return;*/\r\n }\r\n else {\r\n this.router.navigate(['']);\r\n return;\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class DoctorEndpoint extends EndpointFactory {\r\n\r\n private readonly _doctorRegisterUrl: string = \"/api/account/registerDoctor\";\r\n private readonly _patientRegisterUrl: string = \"/api/account/registerPatient\";\r\n private readonly _hosdocListUrl: string = \"/api/doctor/getHosDocList\";\r\n private readonly _doctorLoginUrl: string = \"/api/account/login\";\r\n private readonly _doctorUpdateUrl: string = \"/api/doctor/updateDoctor\";\r\n private readonly _doctorDetailsUrl: string = \"/api/doctor/getDetails\";\r\n private readonly _doctorUrl: string = \"/api/doctor/getDoc\";\r\n private readonly _doctorhospitalDetailsUrl: string = \"/api/doctor/getDoctorHospital\";\r\n private readonly _patientListoFSameProvider: string = \"/api/doctor/getPatientListByProviderId\";\r\n private readonly _patientListforStatusChange: string = \"/api/doctor/listofPatientForStatusUpdateByProviderId\";\r\n private readonly _availableDoctorlistUrl: string = \"/api/doctor/GetAvailableDoctorsList\";\r\n private readonly _doctorlistUrl: string = \"/api/doctor/getList\";\r\n\r\n private readonly _patientList: string = \"/api/doctor/getPatientList\";\r\n private readonly _patientListbyAdmin: string = \"/api/doctor/getPatientListByAdmin\";\r\n private readonly _cancelledAppointmmentpatientListbyAdmin: string = \"/api/doctor/getCancelledAppointmentPatientListByAdmin\";\r\n private readonly _appointmentsBookedOverPhone: string = \"/api/doctor/getAppointmentsBookedOverPhone\";\r\n private readonly _departmentlistUrl: string = \"/api/doctor/getDeptList\";\r\n private readonly _doctorDeleteUrl: string = \"/api/account/deleteDoctor\";\r\n private readonly _hospitalMapdeleteUrl: string = \"/api/doctor/deleteHospitalMap\";\r\n private readonly _hosdocUpdateUrl: string = \"/api/doctor/updateHosDocMap\";\r\n private readonly _qualificationUpdateUrl: string = \"/api/doctor/updateQualification\";\r\n private readonly _deactivateDocUrl: string = \"/api/doctor/deactivate\";\r\n private readonly _doctorNameUrl: string = \"/api/doctor/getDocName\";\r\n private readonly _uploadPrescriptionUrl: string = \"/api/doctor/UploadPrescription\";\r\n private readonly _hosdocUrl: string = \"/api/doctor/GetDoctorMapDetail\";\r\n private readonly _doctorMapListUrl: string = \"/api/doctor/getDocMapList\";\r\n private readonly _doctorListByDepartmentUrl: string = \"/api/doctor/DoctorByDepartment?DepartmentId=\";\r\n\r\n\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n getDoctorByIdEndpoint(doctorId: string): Observable {\r\n let endpointUrl = `${this._doctorDetailsUrl}/${doctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDoctorByIdEndpoint(doctorId)));\r\n }));\r\n }\r\n\r\n getDoctorNameByIdEndpoint(doctorId: string): Observable {\r\n let endpointUrl = `${this._doctorNameUrl}/${doctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDoctorNameByIdEndpoint(doctorId)));\r\n }));\r\n }\r\n getDocByIdEndpoint(doctorId: string, hospitalId: string, appointmentType: string): Observable {\r\n let endpointUrl = `${this._doctorUrl}/${doctorId} /${hospitalId}/${appointmentType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDocByIdEndpoint(doctorId, hospitalId, appointmentType)));\r\n }));\r\n }\r\n\r\n getDoctorHospitalByIdEndpoint(doctorId: string): Observable {\r\n let endpointUrl = `${this._doctorhospitalDetailsUrl}/${doctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDoctorHospitalByIdEndpoint(doctorId)));\r\n }));\r\n }\r\n\r\n getPatientListByProviderIdEndpoint(doctorId: string): Observable {\r\n let endpointUrl = `${this._patientListoFSameProvider}/${doctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientListByProviderIdEndpoint(doctorId)));\r\n }));\r\n }\r\n\r\n getPatientListForStatusChangeEndpoint(doctorId: string): Observable {\r\n let endpointUrl = `${this._patientListforStatusChange}/${doctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientListForStatusChangeEndpoint(doctorId)));\r\n }));\r\n }\r\n getPatientList(doctorId: string): Observable {\r\n let endpointUrl = `${this._patientList}/${doctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientList(doctorId)));\r\n }));\r\n }\r\n\r\n getPatientListByAdminEndPoint(): Observable {\r\n let endpointUrl = `${this._patientListbyAdmin}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientListByAdminEndPoint()));\r\n }));\r\n }\r\n\r\n getCancelledAppointmentPatientByAdminEndPoint(): Observable {\r\n let endpointUrl = `${this._cancelledAppointmmentpatientListbyAdmin}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getCancelledAppointmentPatientByAdminEndPoint()));\r\n }));\r\n }\r\n getAppointmentsBookedOverPhone(fromDate, toDate): Observable {\r\n let endpointUrl = `${this._appointmentsBookedOverPhone}?FromDate=${fromDate}&ToDate=${toDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getAppointmentsBookedOverPhone(fromDate, toDate)));\r\n }));\r\n }\r\n\r\n getDoctorListEndpoint(): Observable {\r\n let endpointUrl = `${this._doctorlistUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDoctorListEndpoint()));\r\n }));\r\n }\r\n getHospitalDoctorMapListEndpoint(hospitalId: string): Observable {\r\n let endpointUrl = `${this._hosdocListUrl}/${hospitalId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getHospitalDoctorMapListEndpoint(hospitalId)));\r\n }));\r\n }\r\n getDepartmentListEndpoint(): Observable {\r\n let endpointUrl = `${this._departmentlistUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDepartmentListEndpoint()));\r\n }));\r\n }\r\n getDoctorMapDetailEndpoint(hosDocMapId: string): Observable {\r\n let endpointUrl = `${this._hosdocUrl}/${hosDocMapId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDoctorMapDetailEndpoint(hosDocMapId)));\r\n }));\r\n }\r\n registerDoctorEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._doctorRegisterUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.registerDoctorEndpoint(userObject)));\r\n }));\r\n }\r\n registerPatientEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._patientRegisterUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.registerPatientEndpoint(userObject)));\r\n }));\r\n }\r\n loginDoctorEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._doctorLoginUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.loginDoctorEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n\r\n UpdateDoctorEndpoint(userObject: any, doctorId?: string): Observable {\r\n let endpointUrl = doctorId ? `${this._doctorUpdateUrl}/${doctorId}` : this._doctorUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.UpdateDoctorEndpoint(userObject, doctorId)));\r\n }));\r\n }\r\n\r\n getDeleteDoctorEndpoint(doctorId: string): Observable {\r\n let endpointUrl = `${this._doctorDeleteUrl}/${doctorId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDeleteDoctorEndpoint(doctorId)));\r\n }));\r\n }\r\n deleteHospitalMapEndpoint(HospitalDoctorMapId: string): Observable {\r\n let endpointUrl = `${this._hospitalMapdeleteUrl}/${HospitalDoctorMapId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deleteHospitalMapEndpoint(HospitalDoctorMapId)));\r\n }));\r\n }\r\n UpdateHosDocMapEndpoint(userObject: any, mapId: string): Observable {\r\n let endpointUrl = mapId ? `${this._hosdocUpdateUrl}/${mapId}` : this._hosdocUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.UpdateHosDocMapEndpoint(userObject, mapId)));\r\n }));\r\n }\r\n updateQualificationEndpoint(userObject: any, Id: string): Observable {\r\n let endpointUrl = Id ? `${this._qualificationUpdateUrl}/${Id}` : this._qualificationUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updateQualificationEndpoint(userObject, Id)));\r\n }));\r\n }\r\n\r\n deactivateDoctorEndpoint(userObject: any, Id: string): Observable {\r\n let endpointUrl = Id ? `${this._deactivateDocUrl}/${Id}` : this._deactivateDocUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deactivateDoctorEndpoint(userObject, Id)));\r\n }));\r\n }\r\n\r\n uploadPrescriptionEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._uploadPrescriptionUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.uploadPrescriptionEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n getDoctorMapListEndpoint(): Observable {\r\n let endpointUrl = `${this._doctorMapListUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDoctorMapListEndpoint()));\r\n }));\r\n }\r\n getAvailableDoctorListEndpoint(): Observable {\r\n let endpointUrl = `${this._availableDoctorlistUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getAvailableDoctorListEndpoint()));\r\n }));\r\n }\r\n getDoctorByDepartmentEndPoint(departementId: string): Observable {\r\n let endpointUrl = `${this._doctorListByDepartmentUrl}${departementId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders());\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DoctorEndpoint } from './doctor-endpoint.service';\r\nimport { Doctor } from '../../models/doctor/doctor.model';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { Patient } from '../../models/patient/patient.model';\r\nimport { Departement } from 'src/app/models/Department/app.department.model';\r\nimport { HospitalDoctorMap } from 'src/app/models/HospitalDoctorMap/app.hospitaldoctormap.model';\r\nimport { Qualification } from 'src/app/models/Qualification/qualification.model';\r\nimport { PatientFilesUploadModel } from 'src/app/models/patient/pat-fileupload.model';\r\nimport { DepartementResponse } from 'src/app/models/Shared/DepartementResponse.model';\r\nimport { TelemedicineResponse } from 'src/app/models/Shared/TelemedicineResponse.model';\r\n@Injectable()\r\nexport class DoctorService {\r\n constructor(private router: Router, private http: HttpClient, private doctorEndPoint: DoctorEndpoint) {\r\n }\r\n public _DoctorId: string;\r\n get DoctorId(): string {\r\n return this._DoctorId;\r\n }\r\n set DoctorId(DoctorId: string) {\r\n this._DoctorId = DoctorId;\r\n }\r\n public _ScheduleIntervalId: string = null;\r\n get ScheduleIntervalId(): string {\r\n return this._ScheduleIntervalId;\r\n }\r\n set ScheduleIntervalId(ScheduleIntervalId: string) {\r\n this._ScheduleIntervalId = ScheduleIntervalId;\r\n }\r\n public _SchedulingId: string = null;\r\n get SchedulingId(): string {\r\n return this._SchedulingId;\r\n }\r\n set SchedulingId(SchedulingId: string) {\r\n this._SchedulingId = SchedulingId;\r\n }\r\n\r\n getDoctor(doctorId?: string) {\r\n return this.doctorEndPoint.getDoctorByIdEndpoint(doctorId);\r\n }\r\n getDoctorName(doctorId?: string) {\r\n return this.doctorEndPoint.getDoctorNameByIdEndpoint(doctorId);\r\n }\r\n getDoc(doctorId?: string, hospitalId?: string, visitType?: string) {\r\n return this.doctorEndPoint.getDocByIdEndpoint(doctorId, hospitalId, visitType);\r\n }\r\n getDoctorHospital(doctorId?: string) {\r\n return this.doctorEndPoint.getDoctorHospitalByIdEndpoint(doctorId);\r\n }\r\n getPatientListByProviderId(doctorId?: string) {\r\n return this.doctorEndPoint.getPatientListByProviderIdEndpoint>(doctorId); \r\n }\r\n getPatientListForStatusChange(doctorId?: string) {\r\n return this.doctorEndPoint.getPatientListForStatusChangeEndpoint(doctorId);\r\n }\r\n getPatientList(doctorId?: string) {\r\n return this.doctorEndPoint.getPatientList(doctorId);\r\n }\r\n\r\n getPatientListByAdmin() {\r\n return this.doctorEndPoint.getPatientListByAdminEndPoint>();\r\n }\r\n\r\n getCancelledAppointmentPatientByAdmin() {\r\n return this.doctorEndPoint.getCancelledAppointmentPatientByAdminEndPoint();\r\n }\r\n getAppointmentsBookedOverPhone(fromDate, toDate) {\r\n return this.doctorEndPoint.getAppointmentsBookedOverPhone(fromDate, toDate);\r\n }\r\n\r\n getDoctorList() {\r\n return this.doctorEndPoint.getDoctorListEndpoint();\r\n }\r\n getAvailableDoctorList() {\r\n return this.doctorEndPoint.getAvailableDoctorListEndpoint();\r\n }\r\n getHospitalDoctorMapList(hospitalId?: string) {\r\n return this.doctorEndPoint.getHospitalDoctorMapListEndpoint(hospitalId);\r\n }\r\n getDepartmentList() {\r\n return this.doctorEndPoint.getDepartmentListEndpoint();\r\n }\r\n getDoctorMapDetail(hosDocMapId?: string) {\r\n return this.doctorEndPoint.getDoctorMapDetailEndpoint(hosDocMapId);\r\n }\r\n registerDoctor(doctor: Doctor) {\r\n return this.doctorEndPoint.registerDoctorEndpoint(doctor);\r\n }\r\n registerPatient(patient: Patient) {\r\n return this.doctorEndPoint.registerPatientEndpoint(patient);\r\n }\r\n loginDoctor(doctor: Doctor) {\r\n return this.doctorEndPoint.loginDoctorEndpoint(doctor);\r\n }\r\n updateDoctor(doctor: Doctor) {\r\n if (doctor.IdentityUserId) {\r\n return this.doctorEndPoint.UpdateDoctorEndpoint(doctor, doctor.IdentityUserId);\r\n }\r\n else {\r\n return this.doctorEndPoint.getDoctorByIdEndpoint(doctor.IdentityUserId).pipe(\r\n mergeMap(doctorUser => {\r\n doctor.IdentityUserId = doctorUser.IdentityUserId;\r\n return this.doctorEndPoint.UpdateDoctorEndpoint(doctor, doctor.IdentityUserId)\r\n }));\r\n }\r\n }\r\n\r\n deleteDoctor(doctorId: string | Doctor): Observable {\r\n\r\n if (typeof doctorId === 'string' || doctorId instanceof String) {\r\n return this.doctorEndPoint.getDeleteDoctorEndpoint(doctorId);\r\n }\r\n else {\r\n\r\n if (doctorId.DoctorId) {\r\n return this.deleteDoctor(doctorId.DoctorId);\r\n }\r\n else {\r\n return this.doctorEndPoint.getDoctorByIdEndpoint(doctorId.UserName).pipe(\r\n mergeMap(doctor => this.deleteDoctor(doctor.DoctorId)));\r\n }\r\n }\r\n }\r\n deleteHospitalMap(HospitalDoctorMapId: string) {\r\n return this.doctorEndPoint.deleteHospitalMapEndpoint(HospitalDoctorMapId);\r\n }\r\n\r\n updateHosDocMap(map: HospitalDoctorMap) {\r\n if (map.HospitalDoctorMapId) {\r\n return this.doctorEndPoint.UpdateHosDocMapEndpoint(map, map.HospitalDoctorMapId);\r\n }\r\n else {\r\n return this.doctorEndPoint.UpdateHosDocMapEndpoint(map, map.HospitalDoctorMapId).pipe(\r\n mergeMap(map => {\r\n map.HospitalDoctorMapId = map.HospitalDoctorMapId;\r\n return this.doctorEndPoint.UpdateHosDocMapEndpoint(map, map.HospitalDoctorMapId)\r\n }));\r\n }\r\n }\r\n updateQualification(qualification: Qualification) {\r\n if (qualification.QualificationId) {\r\n return this.doctorEndPoint.updateQualificationEndpoint(qualification, qualification.QualificationId);\r\n }\r\n else {\r\n return this.doctorEndPoint.updateQualificationEndpoint(qualification, qualification.QualificationId).pipe(\r\n mergeMap(map => {\r\n qualification.QualificationId = qualification.QualificationId;\r\n return this.doctorEndPoint.updateQualificationEndpoint(qualification, qualification.QualificationId)\r\n }));\r\n }\r\n }\r\n deactivateDoctor(doc: Doctor) {\r\n if (doc.DoctorId) {\r\n return this.doctorEndPoint.deactivateDoctorEndpoint(doc, doc.DoctorId);\r\n }\r\n else {\r\n return this.doctorEndPoint.deactivateDoctorEndpoint(doc, doc.DoctorId).pipe(\r\n mergeMap(map => {\r\n doc.DoctorId = doc.DoctorId;\r\n return this.doctorEndPoint.deactivateDoctorEndpoint(doc, doc.DoctorId)\r\n }));\r\n }\r\n }\r\n uploadPrescription(pres: PatientFilesUploadModel) {\r\n return this.doctorEndPoint.uploadPrescriptionEndpoint(pres);\r\n\r\n }\r\n\r\n getDoctorMapList() {\r\n return this.doctorEndPoint.getDoctorMapListEndpoint();\r\n }\r\n\r\n getDoctorByDepartment(DepartementId?: string) {\r\n return this.doctorEndPoint.getDoctorByDepartmentEndPoint>(DepartementId);\r\n }\r\n\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\n//import 'rxjs/add/observable/throw';\r\n//import 'rxjs/add/operator/map';\r\n//import 'rxjs/add/operator/mergeMap';\r\n//import 'rxjs/add/operator/catch';\r\n\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { Utilities } from './utilities';\r\n\r\n\r\n@Injectable()\r\nexport class EndpointFactory {\r\n\r\n static readonly apiVersion: string = \"1\";\r\n\r\n private readonly _loginUrl: string = \"/connect/token\";\r\n public baseUrl: string = Utilities.baseUrl();\r\n private get loginUrl() { return this.baseUrl + this._loginUrl; }\r\n\r\n private taskPauser: Subject;\r\n private isRefreshingLogin: boolean;\r\n\r\n constructor(protected http: HttpClient, private injector: Injector) {\r\n\r\n }\r\n\r\n\r\n getLoginEndpoint(userName: string, password: string): Observable {\r\n\r\n let header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n let params = new HttpParams()\r\n .append('username', userName)\r\n .append('password', password)\r\n .append('grant_type', 'password')\r\n .append('scope', 'openid email phone profile offline_access roles')\r\n .append('resource', window.location.origin);\r\n\r\n let requestBody = params.toString();\r\n\r\n return this.http.post(this.loginUrl, requestBody, { headers: header });\r\n }\r\n\r\n\r\n protected getRequestHeaders(): { headers: HttpHeaders | { [header: string]: string | string[]; } } {\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n });\r\n\r\n return { headers: headers };\r\n }\r\n\r\n\r\n\r\n protected handleError(error, continuation: () => Observable) {\r\n\r\n if (error.status == 401) {\r\n if (this.isRefreshingLogin) {\r\n return this.pauseTask(continuation);\r\n }\r\n\r\n this.isRefreshingLogin = true;\r\n\r\n \r\n }\r\n\r\n if (error.url && error.url.toLowerCase().includes(this.loginUrl.toLowerCase())) {\r\n\r\n return Observable.throw((error.error && error.error.error_description) ? `session expired (${error.error.error_description})` : 'session expired');\r\n }\r\n else {\r\n return Observable.throw(error);\r\n }\r\n }\r\n\r\n\r\n\r\n private pauseTask(continuation: () => Observable) {\r\n if (!this.taskPauser)\r\n this.taskPauser = new Subject();\r\n\r\n return this.taskPauser.pipe(switchMap(continueOp => {\r\n return continueOp ? continuation() : Observable.throw('session expired');\r\n }));\r\n }\r\n\r\n\r\n private resumeTasks(continueOp: boolean) {\r\n setTimeout(() => {\r\n if (this.taskPauser) {\r\n this.taskPauser.next(continueOp);\r\n this.taskPauser.complete();\r\n this.taskPauser = null;\r\n }\r\n });\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class HospitalEndpoint extends EndpointFactory {\r\n\r\n private readonly _hospitalListUrl: string = \"/api/hospital/hospitalDetails\";\r\n private readonly _hospitalUrl: string = \"/api/hospital/getHospital\";\r\n private readonly _hospitalDocUrl: string = \"/api/hospital/getDocHospital\";\r\n private readonly _hospitalDocbyvisitUrl: string = \"/api/hospital/GetDocHospitalbyvisittype\"\r\n private readonly _addHospitalUrl: string = \"/api/hospital/addHospital\";\r\n private readonly _hospitaldeleteUrl: string = \"/api/hospital/deleteHospital\";\r\n private readonly _hospitalUpdateUrl: string = \"/api/hospital/updateHospital\";\r\n private readonly _getcontactInformationUrl: string = \"/api/hospital/getcontactInformation\";\r\n private readonly _addContactInfolUrl: string = \"/api/hospital/addContactInfo\";\r\n private readonly _contactInfoUpdateUrl: string = \"/api/hospital/updateContactInfo\";\r\n private readonly _appointmentMasterReportUrl: string = \"/api/hospital/GetAppMasterReportData\";\r\n private readonly _getContactInfoUrl: string = \"/api/account/getContactInfo\";\r\n private readonly _getHospDeptDetails: string = \"/api/hospital/getHospitalDepartmentDetails\";\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n geHospitalListEndpoint(): Observable {\r\n let endpointUrl = `${this._hospitalListUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.geHospitalListEndpoint()));\r\n }));\r\n }\r\n geHospitalEndpoint(HospitalId: string): Observable {\r\n let endpointUrl = `${this._hospitalUrl}/${HospitalId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.geHospitalEndpoint(HospitalId)));\r\n }));\r\n }\r\n getDocHospitalListEndpoint(doctordId: string): Observable {\r\n let endpointUrl = `${this._hospitalDocUrl}/${doctordId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDocHospitalListEndpoint(doctordId)));\r\n }));\r\n }\r\n getDocHospitalListbyvisittypeEndpoint(doctordId: string, visitType: string): Observable {\r\n let endpointUrl = `${this._hospitalDocbyvisitUrl}/${doctordId} /${visitType}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getDocHospitalListbyvisittypeEndpoint(doctordId, visitType)));\r\n }));\r\n }\r\n addHospitalEndpoint(userObject: any): Observable {\r\n return this.http.post(this._addHospitalUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.addHospitalEndpoint(userObject)));\r\n }));\r\n }\r\n deleteHospitalEndpoint(HospitalId: string): Observable {\r\n let endpointUrl = `${this._hospitaldeleteUrl}/${HospitalId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deleteHospitalEndpoint(HospitalId)));\r\n }));\r\n }\r\n updateHospitalEndpoint(userObject: any, Id: string): Observable {\r\n let endpointUrl = Id ? `${this._hospitalUpdateUrl}/${Id}` : this._hospitalUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updateHospitalEndpoint(userObject, Id)));\r\n }));\r\n }\r\n\r\n getcontactInformationEndpoint(): Observable {\r\n let endpointUrl = `${this._getcontactInformationUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.geHospitalListEndpoint()));\r\n }));\r\n }\r\n\r\n addContactInfoEndpoint(userObject: any): Observable {\r\n return this.http.post(this._addContactInfolUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.addContactInfoEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n updateContactInfoEndpoint(userObject: any, Id: string): Observable {\r\n let endpointUrl = Id ? `${this._contactInfoUpdateUrl}/${Id}` : this._contactInfoUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updateContactInfoEndpoint(userObject, Id)));\r\n }));\r\n }\r\n\r\n getAppMasterReportEndPoint(): Observable {\r\n let endpointUrl = `${this._appointmentMasterReportUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getAppMasterReportEndPoint()));\r\n }));\r\n }\r\n\r\n getContactInfoEndpoint(): Observable {\r\n let endpointUrl = `${this._getContactInfoUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getContactInfoEndpoint()));\r\n }));\r\n }\r\n getHospitalDepartmentDetailsFromVisitTypeEndpoint(doctorId: string, visitType: string): Observable {\r\n let endpointUrl = `${this._getHospDeptDetails}/${doctorId}/${visitType}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getHospitalDepartmentDetailsFromVisitTypeEndpoint(doctorId, visitType)));\r\n }));\r\n }\r\n}\r\n","import { Injectable, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { Hospital } from '../../models/hospital/hospital.model';\r\nimport { DoctorEndpoint } from '../doctor/doctor-endpoint.service';\r\nimport { HospitalEndpoint } from './hospital-endpoint.service';\r\nimport { Doctor } from 'src/app/app.model';\r\nimport { ContactInformation } from 'src/app/models/contactInfo/contactinformation.model';\r\nimport * as _ from 'lodash';\r\nimport { Patient } from '../../models/patient/patient.model';\r\n\r\n@Injectable()\r\nexport class HospitalService {\r\n constructor(private router: Router, private http: HttpClient, private hospitalEndPoint: HospitalEndpoint) {\r\n }\r\n public _HospitalId: string;\r\n public HospitalList: any;\r\n\r\n get HospitalId(): string {\r\n return this._HospitalId;\r\n }\r\n set HospitalId(HospitalId: string) {\r\n this._HospitalId = HospitalId;\r\n }\r\n\r\n public _DepartmentId: string;\r\n get DepartmentId(): string {\r\n return this._DepartmentId;\r\n }\r\n set DepartmentId(DepartmentId: string) {\r\n this._DepartmentId = DepartmentId;\r\n }\r\n\r\n public _PaymentEnable: boolean;\r\n get PaymentEnable(): boolean {\r\n return this._PaymentEnable;\r\n }\r\n set PaymentEnable(PaymentEnable: boolean) {\r\n this._PaymentEnable = PaymentEnable;\r\n }\r\n\r\n getHospitalList() {\r\n return this.hospitalEndPoint.geHospitalListEndpoint();\r\n }\r\n getHospital(HospitalId?: string) {\r\n return this.hospitalEndPoint.geHospitalEndpoint(HospitalId);\r\n }\r\n getDocHospitalList(doctorId: string) {\r\n return this.hospitalEndPoint.getDocHospitalListEndpoint(doctorId);\r\n }\r\n getDocHospitalListbyvisitytpe(doctorId: string, visitType: string) {\r\n return this.hospitalEndPoint.getDocHospitalListbyvisittypeEndpoint(doctorId, visitType);\r\n }\r\n addHospital(data: Hospital) {\r\n return this.hospitalEndPoint.addHospitalEndpoint(data);\r\n }\r\n deleteHospital(HospitalId: string) {\r\n return this.hospitalEndPoint.deleteHospitalEndpoint(HospitalId);\r\n }\r\n updateHospital(hospital: Hospital) {\r\n if (hospital.HospitalId) {\r\n return this.hospitalEndPoint.updateHospitalEndpoint(hospital, hospital.HospitalId);\r\n }\r\n else {\r\n return this.hospitalEndPoint.updateHospitalEndpoint(hospital, hospital.HospitalId).pipe(\r\n mergeMap(map => {\r\n hospital.HospitalId = hospital.HospitalId;\r\n return this.hospitalEndPoint.updateHospitalEndpoint(hospital, hospital.HospitalId)\r\n }));\r\n }\r\n }\r\n getcontactInformation() {\r\n return this.hospitalEndPoint.getcontactInformationEndpoint();\r\n }\r\n addContactInfo(continfo: ContactInformation) {\r\n return this.hospitalEndPoint.addContactInfoEndpoint(continfo);\r\n }\r\n updateContactInfo(contactInfo: ContactInformation) {\r\n if (contactInfo.ContactInformationId) {\r\n return this.hospitalEndPoint.updateContactInfoEndpoint(contactInfo, contactInfo.ContactInformationId);\r\n }\r\n else {\r\n return this.hospitalEndPoint.updateContactInfoEndpoint(contactInfo, contactInfo.ContactInformationId).pipe(\r\n mergeMap(map => {\r\n contactInfo.ContactInformationId = contactInfo.ContactInformationId;\r\n return this.hospitalEndPoint.updateContactInfoEndpoint(contactInfo, contactInfo.ContactInformationId)\r\n }));\r\n }\r\n }\r\n\r\n getAppMasterReport() {\r\n return this.hospitalEndPoint.getAppMasterReportEndPoint();\r\n }\r\n\r\n getContactInfo() {\r\n return this.hospitalEndPoint.getContactInfoEndpoint();\r\n }\r\n\r\n getHospitalDepartmentDetailsFromVisitType(doctorId, visitType) {\r\n return this.hospitalEndPoint.getHospitalDepartmentDetailsFromVisitTypeEndpoint(doctorId, visitType);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpInterceptor, HttpEvent, HttpRequest, HttpHandler } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\nimport { LoaderService } from './loader.service';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n constructor(private _loader: LoaderService) { }\r\n intercept(req: HttpRequest,\r\n next: HttpHandler): Observable> {\r\n this._loader.show();\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n this._loader.hide();\r\n }));\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class LoaderService {\r\n _isloadingSubject: BehaviorSubject = new BehaviorSubject(false);\r\n numberOfHttpRequestLoading: number = 0;\r\n show() {\r\n this.numberOfHttpRequestLoading++;\r\n this._isloadingSubject.next(true);\r\n }\r\n hide() {\r\n this.numberOfHttpRequestLoading--;\r\n if (this.numberOfHttpRequestLoading == 0)\r\n this._isloadingSubject.next(false);\r\n }\r\n get isLoading() {\r\n return this._isloadingSubject;\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LoginEndpoint extends EndpointFactory {\r\n\r\n private readonly _loginTeleUrl: string = \"/api/account/login\";\r\n\r\n ;\r\n\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n \r\n\r\n loginTeleEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._loginTeleUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.loginTeleEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { Login } from '../../models/user/user.model';\r\nimport { LoginEndpoint } from './login-endpoint.service';\r\n\r\n@Injectable()\r\nexport class LoginService {\r\n constructor(private router: Router, private http: HttpClient, private loginEndPoint: LoginEndpoint) {\r\n }\r\n \r\n\r\n loginTele(login: Login) {\r\n return this.loginEndPoint.loginTeleEndpoint(login);\r\n }\r\n \r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n constructor(private toastr: ToastrService) { }\r\n\r\n showSuccess(message, title) {\r\n this.toastr.success(message, title)\r\n }\r\n\r\n showError(message, title) {\r\n this.toastr.error(message, title, { closeButton: true, })\r\n }\r\n\r\n showInfo(message, title) {\r\n this.toastr.info(message, title)\r\n }\r\n\r\n showWarning(message, title) {\r\n this.toastr.warning(message, title)\r\n }\r\n\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable, Injector } from \"@angular/core\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { EndpointFactory } from \"../endpoint-factory.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class OrderEndpoint extends EndpointFactory {\r\n\r\n constructor(public http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n getOrders(pageNumber: number): Observable {\r\n let endpointUrl = `/api/Order`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getOrders(pageNumber)));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { OrderEndpoint } from \"./order.endpoint\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class OrderService {\r\n\r\n constructor(public orderEndpoint: OrderEndpoint) {\r\n\r\n }\r\n getAllProducts(pageNumber: number) {\r\n return this.orderEndpoint.getOrders(pageNumber);\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class PatientEndpoint extends EndpointFactory {\r\n\r\n private readonly _problemPostForOnlineAppointmentUrl: string = \"/api/patient/PostProblemForOnlineAppointment\";\r\n private readonly _problemPostProblemForTelemedicineUrl: string = \"/api/patient/PostProblemForTelemedicine\";\r\n private readonly _patientListUrl: string = \"/api/patient/listPatientByProviderId\";//--\r\n private readonly _patientStatusUrl: string = \"/api/patient/patientStatus\";//--\r\n private readonly _patientStatusByPatIdUrl: string = \"/api/patient/patientStatusByPatId\";//--\r\n private readonly _patientStatusByPatientUrl: string = \"/api/patient/patientStatusByPatientUrl\";\r\n private readonly _patientHistoryUrl: string = \"/api/patient/patientHistory\";//--\r\n private readonly _patientStatusChangeUrl: string = \"/api/patient/patientStatusChange\";\r\n private readonly _patientStatusChangefromDocUrl: string = \"/api/patient/patientStatusChangefomDoc\";//--\r\n private readonly _patientLoginUrl: string = \"/api/patient/login\";\r\n private readonly _patientRegisterUrl: string = \"/api/account/registerPatient\";//--\r\n private readonly _patientTreatmentAdviceUpdateUrl: string = \"/api/patient/updateTreatmentAdvice\";//\r\n private readonly _updateStatusUrl: string = \"/api/patient/updateStatus\";\r\n private readonly _updateVisitStatusUrl: string = \"/api/patient/updateVisitStatus\";\r\n private readonly _patientUpdateUrl: string = \"/api/patient/updatePatient\";\r\n private readonly _patientDetailsUrl: string = \"/api/patient/getDetails\";\r\n private readonly _patientDetailsUrlByVisitId: string = \"/api/patient/getDetailsByVisitId\";//--\r\n private readonly _patientFinalReportByVisitId: string = \"/api/patient/getFinalReportData\";//--\r\n private readonly _patientDocumentsByVisitId: string = \"/api/patient/getPatientDocuments\";\r\n private readonly _patientDeleteUrl: string = \"/api/patient/deletePatient\";\r\n private readonly _updatePaidStatusUrl: string = \"/api/patient/updatePaidStatus\";//--\r\n private readonly _updatePaymentStatusUrl: string = \"/api/patient/updatePaymentStatus\";\r\n private readonly _cancelBookingUrl: string = \"/api/patient/cancelBooking\";//--not exist\r\n private readonly _paymentChargeUrl: string = \"/api/patient/paymentChargeByVisitId\";\r\n private readonly _patientStatusByVisitIdUrl: string = \"/api/patient/patientStatusByVisitId\";//--not exist\r\n private readonly _patHistoryUrl: string = \"/api/patient/viewPrescription\";//--\r\n private readonly _patientAllPatientListUrl: string = \"/api/patient/adminPatient\";//--not in use\r\n private readonly _postVisitSingleton: string = \"/api/patient/postVisitToSingleton\";//--\r\n private readonly _getVisitFromWaitingRoomUrl: string = \"/api/patient/getVisitFromWaitingRoom\";//--\r\n private readonly _getVisitFromDoctorRoomUrl: string = \"/api/patient/getVisitFromDoctorRoom\";//--\r\n private readonly _getPatientInDoctorRoomUrl: string = \"/api/patient/patientsInDoctorRoom\";//--\r\n private readonly _removeVisitIdFromLogoutUrl: string = \"/api/patient/removeLogOutVisitId\";//--//--not in use\r\n private readonly _backToDashboardfromDocUrl: string = \"/api/patient/backToDashboardfromDoc\";//--\r\n private readonly _postJitsiRoomNameUrl: string = \"/api/patient/postJitsiRoomNameUrl\";//--\r\n private readonly _addFamilyListUrl: string = \"/api/patient/addFamilyList\";\r\n private readonly _getFamilyListUrl: string = \"/api/patient/getFamilyList\";\r\n private readonly _updateFamilyListUrl: string = \"/api/patient/updateFamilyList\";\r\n private readonly _deleteFamilyListUrl: string = \"/api/patient/deleteFamilyList\";\r\n private readonly _addPatMedicalRecordUrl: string = \"/api/patient/addPatMedicalRecord\";\r\n private readonly _getPatMedicalRecordsUrl: string = \"/api/patient/getPatMedicalRecords\";\r\n private readonly _patOPSummaryUrl: string = \"/api/patient/getOPsummary\";\r\n private readonly _followUpPostProblemUrl: string = \"/api/patient/followUpPostProblem\";\r\n private readonly _postOPSummaryUrl: string = \"/api/patient/addOPSummary\";\r\n private readonly _deletePatMedicalRecordUrl: string = \"/api/patient/deletePatMedicalRecord\";\r\n private readonly _getMissedVisitUrl: string = \"/api/patient/getAllMissedVisit\";\r\n private readonly _getZoomSignature: string = \"/api/zoomFeature\";\r\n\r\n private readonly _AdminIdUrl: string = \"/api/patient/getAdmin\";\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n\r\n getPatientByIdEndpoint(PatientId: string, userType: string,): Observable {\r\n let endpointUrl = `${this._patientDetailsUrl}/${PatientId}?userType=${userType}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientByIdEndpoint(PatientId,userType)));\r\n }));\r\n }\r\n getPatientByVisitIdEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientDetailsUrlByVisitId}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientByVisitIdEndpoint(VisitId)));\r\n }));\r\n }\r\n t\r\n getFinalReportDataEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientFinalReportByVisitId}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getFinalReportDataEndpoint(VisitId)));\r\n }));\r\n }\r\n getPatientDocumentsEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientDocumentsByVisitId}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientDocumentsEndpoint(VisitId)));\r\n }));\r\n }\r\n getPatientListEndpoint(DoctorId: string): Observable {\r\n let endpointUrl = `${this._patientListUrl}/${DoctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientListEndpoint(DoctorId)));\r\n }));\r\n }\r\n\r\n getPatientHistoryEndpoint(PatientId: string): Observable {\r\n let endpointUrl = `${this._patientHistoryUrl}/${PatientId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientHistoryEndpoint(PatientId)));\r\n }));\r\n }\r\n getPatHistoryEndpoint(PatientId: string): Observable {\r\n let endpointUrl = `${this._patHistoryUrl}/${PatientId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatHistoryEndpoint(PatientId)));\r\n }));\r\n }\r\n getAllPatientEndPoint(): Observable {\r\n let endpointUrl = `${this._patientAllPatientListUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getAllPatientEndPoint()));\r\n }));\r\n }\r\n getPatientBookingListEndpoint(PatientId: string): Observable {\r\n let endpointUrl = `${this._patientHistoryUrl}/${PatientId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientBookingListEndpoint(PatientId)));\r\n }));\r\n }\r\n\r\n changeStatusEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientStatusChangeUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.changeStatusEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n changeStatusFromDocEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientStatusChangefromDocUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.changeStatusFromDocEndpoint(VisitId)));\r\n }));\r\n }\r\n getPatientDocListEndpoint(DoctorId: string): Observable {\r\n let endpointUrl = `${this._patientListUrl}/${DoctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientDocListEndpoint(DoctorId)));\r\n }));\r\n }\r\n getStatusEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientStatusUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getStatusEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n getStatusByPatientIdEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientStatusByPatIdUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getStatusByPatientIdEndpoint(VisitId)));\r\n }));\r\n }\r\n getStatusByPatientUrlEndpoint(PatientId: string): Observable {\r\n let endpointUrl = `${this._patientStatusByPatientUrl}/${PatientId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getStatusByPatientUrlEndpoint(PatientId)));\r\n }));\r\n }\r\n\r\n getStatusByVisitIdEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._patientStatusByVisitIdUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getStatusByVisitIdEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n\r\n getAdminIdEndpoint(): Observable {\r\n let endpointUrl = `${this._AdminIdUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getAdminIdEndpoint()));\r\n }));\r\n }\r\n\r\n PostJitsiRoomNameEndPoint(VisitId: string, roomname): Observable {\r\n let endpointUrl = `${this._postJitsiRoomNameUrl}/${VisitId}/${roomname}`\r\n\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.PostJitsiRoomNameEndPoint(VisitId, roomname)));\r\n }));\r\n }\r\n //postVisitEndpoint(userObject: any, formToPost): Observable {\r\n\r\n // return this.http.post(this._problemPostUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n // catchError(error => {\r\n // return throwError(this.handleError(error, () => this.postVisitEndpoint(userObject, formToPost)));\r\n // }));\r\n //}\r\n postVisitEndpoint(userObject: any, ScheduleIntervalId?: string, SchedulingId?: string): Observable {\r\n let endpointUrl = ScheduleIntervalId && SchedulingId ? `${this._problemPostProblemForTelemedicineUrl}/${SchedulingId}/${ScheduleIntervalId}` : `${this._problemPostForOnlineAppointmentUrl}/${SchedulingId}`;\r\n return this.http.post(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.postVisitEndpoint(userObject, SchedulingId, ScheduleIntervalId)));\r\n }));\r\n }\r\n\r\n getUpdatePatientEndpoint(userObject: any, PatientId?: string): Observable {\r\n let endpointUrl = PatientId ? `${this._patientUpdateUrl}/${PatientId}` : this._patientUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getUpdatePatientEndpoint(userObject, PatientId)));\r\n }));\r\n }\r\n updateTreatmentAdviceEndpoint(userObject: any, VisitId?: string): Observable {\r\n let endpointUrl = VisitId ? `${this._patientTreatmentAdviceUpdateUrl}/${VisitId}` : this._patientTreatmentAdviceUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updateTreatmentAdviceEndpoint(userObject, VisitId)));\r\n }));\r\n }\r\n\r\n updateStatusEndpoint(userObject: any, VisitId?: string): Observable {\r\n\r\n // let endpointUrl = visitId ? `${this._updateStatusUrl}/${visitId}` : this._patientTreatmentAdviceUpdateUrl;\r\n let endpointUrl =`${this._updateStatusUrl}`; \r\n userObject.VisitId = userObject.Results.VisitId;\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updateStatusEndpoint(userObject, VisitId)));\r\n }));\r\n }\r\n updateVisitStatusEndpoint(userObject: any, VisitId?: string): Observable {\r\n let endpointUrl = VisitId ? `${this._updateVisitStatusUrl}/${VisitId}` : this._patientTreatmentAdviceUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updateStatusEndpoint(userObject, VisitId)));\r\n }));\r\n }\r\n\r\n updatePaidStatusEndpoint(VisitId?: string): Observable {\r\n let endpointUrl = VisitId ? `${this._updatePaidStatusUrl}/${VisitId}` : this._updatePaidStatusUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(VisitId), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updatePaidStatusEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n updatePaymentStatusEndpoint(userObject: any, VisitId?: string): Observable {\r\n let endpointUrl = VisitId ? `${this._updatePaymentStatusUrl}/${VisitId}` : this._updatePaymentStatusUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.updatePaymentStatusEndpoint(userObject, VisitId)));\r\n }));\r\n }\r\n\r\n cancelBookingEndpoint(userObject: any, VisitId?: string): Observable {\r\n let endpointUrl = VisitId ? `${this._cancelBookingUrl}/${VisitId}` : this._cancelBookingUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.cancelBookingEndpoint(userObject, VisitId)));\r\n }));\r\n }\r\n registerPatientEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._patientRegisterUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.registerPatientEndpoint(userObject)));\r\n }));\r\n }\r\n getPaymentChargeEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._paymentChargeUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPaymentChargeEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n postVisitSingletonEndpoint(VisitId?: string): Observable {\r\n\r\n return this.http.post(`${this._postVisitSingleton}/${VisitId}`, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.postVisitSingletonEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n getVisitFromWaitingRoomEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._getVisitFromWaitingRoomUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getVisitFromWaitingRoomEndpoint(VisitId)));\r\n }));\r\n }\r\n getVisitFromDoctorRoomEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._getVisitFromDoctorRoomUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getVisitFromDoctorRoomEndpoint(VisitId)));\r\n }));\r\n }\r\n getPatientsInDoctorRoomEndpoint(DoctorId: string): Observable {\r\n let endpointUrl = `${this._getPatientInDoctorRoomUrl}/${DoctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatientsInDoctorRoomEndpoint(DoctorId)));\r\n }));\r\n }\r\n removeVisitIdFromLogoutEndpoint(VisitId: string): Observable {\r\n let endpointUrl = `${this._removeVisitIdFromLogoutUrl}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.removeVisitIdFromLogoutEndpoint(VisitId)));\r\n }));\r\n }\r\n\r\n backToDashBoardFromDocEndpoint(DoctorId: string): Observable {\r\n let endpointUrl = `${this._backToDashboardfromDocUrl}/${DoctorId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.backToDashBoardFromDocEndpoint(DoctorId)));\r\n }));\r\n }\r\n\r\n addFamilyListEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._addFamilyListUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.addFamilyListEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n getFamilyListEndpoint(PatientId: string): Observable {\r\n let endpointUrl = `${this._getFamilyListUrl}/${PatientId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getFamilyListEndpoint(PatientId)));\r\n }));\r\n }\r\n\r\n updateFamilyListEndpoint(userObject: any): Observable {\r\n\r\n return this.http.put(this._updateFamilyListUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getUpdatePatientEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n deleteFamilyListEndpoint(FamilyMemberId: string): Observable {\r\n let endpointUrl = `${this._deleteFamilyListUrl}/${FamilyMemberId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deleteFamilyListEndpoint(FamilyMemberId)));\r\n }));\r\n }\r\n\r\n addPatMedicalRecordEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this._addPatMedicalRecordUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.addPatMedicalRecordEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n getPatMedicalRecordsEndpoint(PatientId: string): Observable {\r\n let endpointUrl = `${this._getPatMedicalRecordsUrl}/${PatientId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getPatMedicalRecordsEndpoint(PatientId)));\r\n }));\r\n }\r\n\r\n getOPSummaryEndpoint(PatientId: string, VisitId: string): Observable {\r\n let endpointUrl = `${this._patOPSummaryUrl}/${PatientId}/${VisitId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getOPSummaryEndpoint(PatientId, VisitId)));\r\n }));\r\n }\r\n\r\n followUpPostVisitEndpoint(userObject: any, ScheduleIntervalId?: string, SchedulingId?: string): Observable {\r\n let endpointUrl = ScheduleIntervalId && SchedulingId ? `${this._followUpPostProblemUrl}/${ScheduleIntervalId}/${SchedulingId}` : this._followUpPostProblemUrl;\r\n return this.http.post(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.followUpPostVisitEndpoint(userObject, ScheduleIntervalId, SchedulingId)));\r\n }));\r\n }\r\n\r\n\r\n addOPSummaryEndpoint(userObject: any, VisitId: string): Observable {\r\n let endpointUrl = `${this._postOPSummaryUrl}/${VisitId}`;\r\n return this.http.post(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.addOPSummaryEndpoint(userObject, VisitId)));\r\n }));\r\n }\r\n\r\n deletePatMedicalRecordEndpoint(MedicalRecordId: string): Observable {\r\n let endpointUrl = `${this._deletePatMedicalRecordUrl}/${MedicalRecordId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deletePatMedicalRecordEndpoint(MedicalRecordId)));\r\n }));\r\n }\r\n getMissedVisitEndpoint() {\r\n let endpointUrl = `${this._getMissedVisitUrl}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getMissedVisitEndpoint()));\r\n }));\r\n }\r\n\r\n getZoomSignatureEndPoint(doctorId: string) {\r\n let endpointUrl = `${this._getZoomSignature}/GenerateSignature/${doctorId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getZoomSignatureEndPoint(doctorId)));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport * as _ from 'lodash';\r\nimport { PatientEndpoint } from './patient-endpoint.service';\r\nimport { PatientModel, Patient, PatientDoc, Paidbooking } from '../../models/patient/patient.model';\r\nimport { Visit } from '../../models/visit/visit.model';\r\nimport * as moment from 'moment';\r\nimport { ScheduleInterval } from '../../models/scheduling/scheduling.model';\r\nimport { PatientFamily } from 'src/app/models/patient/Pat-family.model';\r\nimport { PatientMedicalRecord } from '../../models/patient/Pat-medicalRecord.model';\r\nimport { TelemedicineResponse } from 'src/app/models/Shared/TelemedicineResponse.model';\r\n@Injectable()\r\nexport class PatientService {\r\n constructor(private router: Router, private http: HttpClient, private patientEndPoint: PatientEndpoint) {\r\n }\r\n\r\n public _VisitId: string;\r\n public _VisitType: string;\r\n get VisitType(): string {\r\n return this._VisitType;\r\n }\r\n set VisitType(Visittype: string) {\r\n this._VisitType = Visittype;\r\n }\r\n get VisitId(): string {\r\n return this._VisitId;\r\n }\r\n set VisitId(VisitId: string) {\r\n this._VisitId = VisitId;\r\n }\r\n\r\n public _PatientId: string;\r\n get PatientId(): string {\r\n return this._PatientId;\r\n }\r\n set PatientId(PatientId: string) {\r\n this._PatientId = PatientId;\r\n }\r\n public _PatientByVisit: boolean;\r\n get PatientByVisit(): boolean {\r\n return this._PatientByVisit;\r\n }\r\n set PatientByVisit(PatientByVisit: boolean) {\r\n this._PatientByVisit = PatientByVisit;\r\n }\r\n\r\n getPatient(PatientId: string,userType: string) {\r\n return this.patientEndPoint.getPatientByIdEndpoint(PatientId,userType);\r\n }\r\n\r\n getFinalReportData(VisitId?: string) {\r\n return this.patientEndPoint.getFinalReportDataEndpoint(VisitId);\r\n }\r\n getPatientDocuments(VisitId?: string) {\r\n return this.patientEndPoint.getPatientDocumentsEndpoint>(VisitId);\r\n }\r\n getPatientByVisitId(VisitId?: string) {\r\n return this.patientEndPoint.getPatientByVisitIdEndpoint(VisitId);\r\n }\r\n getPatientList(DoctorId?: string) {\r\n return this.patientEndPoint.getPatientListEndpoint(DoctorId);\r\n }\r\n getPatientHistory(PatientId?: string) {\r\n return this.patientEndPoint.getPatientHistoryEndpoint>(PatientId);\r\n }\r\n getPatientBookingList(PatientId?: string) {\r\n return this.patientEndPoint.getPatientBookingListEndpoint>(PatientId);\r\n }\r\n\r\n changeStatus(VisitId?: string) {\r\n return this.patientEndPoint.changeStatusEndpoint(VisitId);\r\n }\r\n changeStatusFromDoc(VisitId?: string) {\r\n return this.patientEndPoint.changeStatusFromDocEndpoint(VisitId);\r\n }\r\n getPatientDocList(DoctorId?: string) {\r\n return this.patientEndPoint.getPatientDocListEndpoint(DoctorId);\r\n }\r\n getStatus(VisitId?: string) {\r\n return this.patientEndPoint.getStatusEndpoint(VisitId);\r\n }\r\n getStatusByPatientId(VisitId?: string) {\r\n return this.patientEndPoint.getStatusByPatientIdEndpoint(VisitId);\r\n }\r\n getStatusByPatientUrl(PatientId?: string) {\r\n return this.patientEndPoint.getStatusByPatientUrlEndpoint(PatientId);\r\n }\r\n getStatusByVisitId(VisitId?: string) {\r\n return this.patientEndPoint.getStatusByVisitIdEndpoint(VisitId);\r\n }\r\n getPatHistory(PatientId?: string) {\r\n return this.patientEndPoint.getPatHistoryEndpoint>(PatientId);\r\n }\r\n getAllPatient() {\r\n return this.patientEndPoint.getAllPatientEndPoint();\r\n }\r\n getAdminId() {\r\n return this.patientEndPoint.getAdminIdEndpoint();\r\n }\r\n //for save jitsi room name in db\r\n PostJitsiRoomName(VisitId, Roomname) {\r\n return this.patientEndPoint.PostJitsiRoomNameEndPoint(VisitId, Roomname)\r\n }\r\n\r\n\r\n //postVisit(filesToUpload, visit: Visit) {\r\n // try {\r\n // debugger;\r\n // let formToPost = new FormData();\r\n // var temp = _.omit(visit, ['PatientValidator']);\r\n // var temp1 = _.omit(visit.PatientFiles, ['PatientFilesValidator']);\r\n // temp.PatientFiles = temp1;\r\n // // temp1 = filesToUpload;\r\n // var visitDetails = JSON.stringify(temp1)\r\n // let uploadedImgCount = 0;\r\n // //ImageName can contain names of more than one image seperated by ;\r\n // //if (patReport.ImageName)\r\n // // uploadedImgCount = patReport.ImageName.split(\";\").length;\r\n // for (var i = 0; i < filesToUpload.length; i++) {\r\n // //to get the imagetype\r\n // let splitImagetype = filesToUpload[i].name.split(\".\");\r\n // let imageExtension = splitImagetype[1];\r\n // ////fileName = PatientId_ImagingItemName_PatientVisitId_CurrentDateTime_Counter.imageExtension\r\n // //visit.PatientFiles.FileName = visit.PatientFiles.FileType + \"_\" + moment().format('DD-MM-YY') + \".\" + imageExtension;\r\n // temp.PatientFiles.FileType = filesToUpload[i].type;\r\n // temp.PatientFiles.FileName = filesToUpload[i].name;\r\n // temp.PatientFiles.FileExtention = imageExtension;\r\n // //formToPost.append(\"uploads\", filesToUpload[i], fileName);\r\n // }\r\n // formToPost.append(\"visitDetails\", visitDetails);\r\n // return this.patientEndPoint.postVisitEndpoint(temp, formToPost);\r\n // } catch (exception) {\r\n // throw exception;\r\n // }\r\n // }\r\n postVisit(visit: Visit, ScheduleIntervalId, SchedulingId) {\r\n var visit = _.omit(visit, ['PatientValidator']);\r\n return this.patientEndPoint.postVisitEndpoint(visit, ScheduleIntervalId, SchedulingId);\r\n }\r\n updatePatient(patient: Patient) {\r\n if (patient.IdentityUserId) {\r\n return this.patientEndPoint.getUpdatePatientEndpoint(patient, patient.IdentityUserId);\r\n }\r\n else {\r\n return this.patientEndPoint.getUpdatePatientEndpoint(patient.IdentityUserId).pipe(\r\n mergeMap(patientUser => {\r\n patient.IdentityUserId = patientUser.IdentityUserId;\r\n return this.patientEndPoint.getUpdatePatientEndpoint(patient, patient.IdentityUserId)\r\n }));\r\n }\r\n }\r\n updateTreatmentAdvice(visit: Visit, VisitId) {\r\n var visit = _.omit(visit, ['PatientValidator', 'PatientFiles.PatientFilesValidator']);\r\n return this.patientEndPoint.updateTreatmentAdviceEndpoint(visit, VisitId);\r\n }\r\n\r\n\r\n updateStatus(visit: Visit, VisitId) {\r\n return this.patientEndPoint.updateStatusEndpoint(visit, visit.VisitId);\r\n }\r\n updateVisitStatus(visit: Visit, VisitId) {\r\n return this.patientEndPoint.updateVisitStatusEndpoint(visit, visit.VisitId);\r\n }\r\n updatePaidStatus(VisitId) {\r\n return this.patientEndPoint.updatePaidStatusEndpoint(VisitId);\r\n }\r\n updatePaymentStatus(visit: Visit, VisitId) {\r\n var visit = _.omit(visit, ['PatientValidator', 'PatientFiles.PatientFilesValidator']);\r\n return this.patientEndPoint.updatePaymentStatusEndpoint(visit, VisitId);\r\n }\r\n cancelBooking(visit: Visit, VisitId) {\r\n var visit = _.omit(visit, ['PatientValidator', 'PatientFiles.PatientFilesValidator']);\r\n return this.patientEndPoint.cancelBookingEndpoint(visit, VisitId);\r\n }\r\n\r\n getPaymentCharge(VisitId?: string) {\r\n return this.patientEndPoint.getPaymentChargeEndpoint(VisitId);\r\n }\r\n\r\n postVisitToSingleton(VisitId?: string) {\r\n return this.patientEndPoint.postVisitSingletonEndpoint(VisitId);\r\n }\r\n getVisitFromWaitingRoom(VisitId?: string) {\r\n return this.patientEndPoint.getVisitFromWaitingRoomEndpoint(VisitId);\r\n }\r\n getVisitFromDoctorRoom(VisitId?: string) {\r\n return this.patientEndPoint.getVisitFromDoctorRoomEndpoint(VisitId);\r\n }\r\n getPatientsInDoctorRoom(DoctorId?: string) {\r\n return this.patientEndPoint.getPatientsInDoctorRoomEndpoint(DoctorId);\r\n }\r\n removeVisitIdFromLogout(VisitId?: string) {\r\n return this.patientEndPoint.removeVisitIdFromLogoutEndpoint(VisitId);\r\n }\r\n\r\n backToDashboardFromDoc(DoctorId?: string) {\r\n return this.patientEndPoint.backToDashBoardFromDocEndpoint(DoctorId);\r\n }\r\n\r\n addFamilyList(familyList: PatientFamily) {\r\n return this.patientEndPoint.addFamilyListEndpoint(familyList);\r\n }\r\n\r\n getFamilyList(PatientId?: string) {\r\n return this.patientEndPoint.getFamilyListEndpoint(PatientId);\r\n }\r\n\r\n updateFamilyList(familyList: PatientFamily) {\r\n return this.patientEndPoint.updateFamilyListEndpoint(familyList);\r\n }\r\n\r\n deleteFamilyList(FamilyMemberId: string) {\r\n return this.patientEndPoint.deleteFamilyListEndpoint(FamilyMemberId);\r\n }\r\n\r\n addPatMedicalRecord(patMedicalRecord: PatientMedicalRecord) {\r\n return this.patientEndPoint.addPatMedicalRecordEndpoint(patMedicalRecord);\r\n }\r\n\r\n getPatMedicalRecords(PatientId?: string) {\r\n return this.patientEndPoint.getPatMedicalRecordsEndpoint(PatientId);\r\n }\r\n\r\n getOPSummary(patid, vid) {\r\n return this.patientEndPoint.getOPSummaryEndpoint>(patid, vid);\r\n\r\n }\r\n\r\n followUpPostVisit(visit: Visit, ScheduleIntervalId, SchedulingId) {\r\n var visit = _.omit(visit, ['PatientValidator']);\r\n return this.patientEndPoint.followUpPostVisitEndpoint(visit, ScheduleIntervalId, SchedulingId);\r\n }\r\n\r\n\r\n addOPSummary(OPdata: Visit, VisitId) {\r\n var OPdata = _.omit(OPdata, ['PatientValidator']);\r\n return this.patientEndPoint.addOPSummaryEndpoint(OPdata, VisitId);\r\n }\r\n\r\n deletePatMedicalRecord(MedicalRecordId: string) {\r\n return this.patientEndPoint.deletePatMedicalRecordEndpoint(MedicalRecordId);\r\n }\r\n getAllMissedVisit() {\r\n return this.patientEndPoint.getMissedVisitEndpoint();\r\n }\r\n\r\n getZoomSignature(doctorId: string) {\r\n return this.patientEndPoint.getZoomSignatureEndPoint(doctorId);\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ProductModel } from 'src/app/models/Product/product.model';\r\nimport _ from 'lodash';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class ProductEndPoint extends EndpointFactory {\r\n\r\n private readonly _getAllProductList: string = \"/api/product/GetProductsList\";\r\n private readonly _getProductDetailsById: string = \"/api/product/GetProductById\";\r\n private readonly _addNewProduct: string = \"/api/product/AddProduct\";\r\n private readonly _addProductType: string = \"/api/product/AddProductType\";\r\n private readonly _addProductTag: string = \"/api/product/AddProductTag\";\r\n private readonly _editProduct: string = \"/api/product/EditProduct/\";\r\n private readonly _activateDeactivateProduct: string = \"/api/product/ActivateDeactivateProduct/\"\r\n private readonly _getProductImageById: string = \"/api/product/GetProductPictureById\";\r\n private readonly _getAllProductTypes: string = \"/api/product/GetAllProductTypes\"\r\n private readonly _getAllProductTags: string = \"/api/product/GetAllProductTags\"\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n getProductByIdEndpoint(ProductId: number): Observable {\r\n let endpointUrl = `${this._getProductDetailsById}/${ProductId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getProductByIdEndpoint(ProductId)));\r\n }));\r\n }\r\n\r\n getAllProducts(): Observable {\r\n\r\n let endpointUrl = `${this._getAllProductList}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getAllProducts()));\r\n }));\r\n }\r\n\r\n AddProduct(formData: FormData): Observable {\r\n let endpointUrl = `${this._addNewProduct}`;\r\n // let header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n return this.http.post(endpointUrl, formData).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.AddProduct(formData)));\r\n })\r\n );\r\n }\r\n AddProductType(formData: FormData): Observable {\r\n let endpointUrl = `${this._addProductType}`;\r\n // let header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n return this.http.post(endpointUrl, JSON.stringify(formData)).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.AddProductType(formData)));\r\n })\r\n );\r\n }\r\n AddProductTag(formData: FormData): Observable {\r\n let endpointUrl = `${this._addProductTag}`;\r\n // let header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n return this.http.post(endpointUrl, JSON.stringify(formData)).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.AddProductTag(formData)));\r\n })\r\n );\r\n }\r\n\r\n getAllProductTypes(): Observable {\r\n let endpointUrl = `${this._getAllProductTypes}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(err => {\r\n return throwError(this.handleError(err, () => this.getAllProductTypes()));\r\n }));\r\n }\r\n getProductImageByIdEndpoint(productImageId): Observable {\r\n let endpointUrl = `${this._getProductImageById}/${productImageId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getProductByIdEndpoint(productImageId)));\r\n }));\r\n }\r\n\r\n getAllProductTags(): Observable {\r\n\r\n let endpointUrl = `${this._getAllProductTags}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(err => {\r\n return throwError(this.handleError(err, () => this.getAllProductTags()));\r\n })\r\n );\r\n }\r\n\r\n activateDeactivateProductEndpoint(productId: number, AdminId: string): Observable {\r\n let endpointUrl = `${this._activateDeactivateProduct}${productId}/${AdminId}`;\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(err => {\r\n return throwError(this.handleError(err, () => this.activateDeactivateProductEndpoint(productId,AdminId)));\r\n })\r\n\r\n );\r\n }\r\n\r\n updateProductEndPoint(formData: FormData, productId): Observable {\r\n let endpointUrl = `${this._editProduct}${productId}`;\r\n return this.http.put(endpointUrl, formData).pipe(\r\n catchError(err => {\r\n return throwError(this.handleError(err, () => this.updateProductEndPoint(formData, productId)));\r\n })\r\n\r\n );\r\n }\r\n\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ProductModel } from \"src/app/models/Product/product.model\";\r\nimport { ProductPicture } from \"src/app/models/Product/ProductPicture.model\";\r\nimport { HospitalService } from \"../hospital/hospital.service\";\r\nimport { ProductEndPoint } from \"./product-endpoint.service\";\r\n\r\n@Injectable()\r\n\r\nexport class ProductService {\r\n public hospitalList: Array = new Array();\r\n public ProductTagsList: Array = new Array();\r\n public ProductTypesList: Array = new Array();\r\n constructor(\r\n private productEndPoint: ProductEndPoint,\r\n private hospitalService: HospitalService) {\r\n\r\n }\r\n public _productId: number;\r\n get ProductId(): number {\r\n return this._productId;\r\n }\r\n set ProductId(ProductId: number) {\r\n this._productId = ProductId;\r\n }\r\n // getPatient(PatientId?: string) {\r\n // return this.patientEndPoint.getPatientByIdEndpoint(PatientId);\r\n // }\r\n\r\n public getProduct(ProductId) {\r\n return this.productEndPoint.getProductByIdEndpoint(ProductId);\r\n }\r\n getAllProducts() {\r\n return this.productEndPoint.getAllProducts();\r\n }\r\n\r\n public AddProduct(formData: FormData) {\r\n return this.productEndPoint.AddProduct(formData);\r\n\r\n }\r\n public AddProductType(formData: FormData) {\r\n return this.productEndPoint.AddProductType(formData);\r\n\r\n }\r\n public AddProductTag(formData: FormData) {\r\n return this.productEndPoint.AddProductTag(formData);\r\n\r\n }\r\n public getProductImage(productImageId) {\r\n return this.productEndPoint.getProductImageByIdEndpoint(productImageId);\r\n }\r\n\r\n public getAllProductTypes() {\r\n return this.productEndPoint.getAllProductTypes();\r\n }\r\n\r\n public getAllProductTags() {\r\n return this.productEndPoint.getAllProductTags();\r\n }\r\n\r\n public updateProduct(formData: FormData, productId) {\r\n return this.productEndPoint.updateProductEndPoint(formData, productId);\r\n }\r\n\r\n public activateDeactivateProductEndpoint(productId, AdminId) {\r\n return this.productEndPoint.activateDeactivateProductEndpoint(productId, AdminId);\r\n }\r\n\r\n\r\n public GetAllHospital() {\r\n this.hospitalService.getHospitalList().subscribe(\r\n res => {\r\n this.hospitalList = Object.assign(this.hospitalList, res);\r\n },\r\n err => {\r\n alert(err);\r\n });\r\n\r\n }\r\n public GetAllProductTags() {\r\n this.getAllProductTags().subscribe(\r\n res => {\r\n if (res) {\r\n this.ProductTagsList = Object.assign(this.ProductTagsList, res);\r\n }\r\n },\r\n err => {\r\n alert(err);\r\n }\r\n );\r\n }\r\n\r\n public GetAllProductTypes() {\r\n this.getAllProductTypes().subscribe(\r\n res => {\r\n if (res) {\r\n this.ProductTypesList = Object.assign(this.ProductTypesList, res);\r\n }\r\n\r\n },\r\n err => {\r\n alert(err);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { AuthenticationService } from '../authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RoleGuardService implements CanActivate {\r\n constructor(public auth: AuthenticationService, public router: Router) { }\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n\r\n if (!this.auth.isUserAuthenticated)\r\n return false;\r\n\r\n // Retrieve the allowed roles from `route.data`.\r\n const allowedUserType = route.data['allowedUserType'];\r\n\r\n const typeOfLoggedInUser = this.auth.userType;\r\n return isUserInAllowedRoles();\r\n\r\n\r\n function isUserInAllowedRoles(): boolean {\r\n return allowedUserType.indexOf(typeOfLoggedInUser) !== -1;\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { EndpointFactory } from '../endpoint-factory.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Scheduling } from 'src/app/models/scheduling/scheduling.model';\r\n\r\n@Injectable()\r\nexport class SchedulingEndpoint extends EndpointFactory {\r\n\r\n private readonly _schedulingTimeUrl: string = \"/api/doctorScheduling/getSchedulingTime\";\r\n private readonly _schedulingDoctorListUrl: string = \"/api/doctorScheduling/getDoctor\";\r\n private readonly _schedulinglUrl: string = \"/api/doctorScheduling/getScheduling\";\r\n private readonly _schedulinglIntervalUrl: string = \"/api/doctorScheduling/getScheduleIntervalById\";\r\n private readonly _schedulinglIntervalBySchedulingIdUrl: string = \"/api/doctorScheduling/getScheduleIntervalBySchedulingId\";\r\n private readonly _schedulingShowUrl: string = \"/api/doctorScheduling/getScheduleDate\";\r\n private readonly _schedulingPostUrl: string = \"/api/doctorScheduling/postScheduling\";\r\n private readonly _schedulingAddUrl: string = \"/api/doctorScheduling/addScheduling\";\r\n private readonly _schedulingUpdateUrl: string = \"/api/doctorScheduling/updateScheduling\";\r\n private readonly _schedulingVisitTimeListUrl: string = \"/api/doctorScheduling/getVisitTime\";\r\n private readonly _schedulingdeleteUrl: string = \"/api/doctorScheduling/deleteSchedule\";\r\n private readonly _schedulingVisitTimeUrl: string = \"/api/doctorScheduling/getVisit\";\r\n private readonly _rescheduleUrl: string = \"/api/doctorScheduling/postReschedule\";\r\n private readonly _checkForExistingAppointmentUrl: string = \"/api/doctorScheduling/CheckForBookedAppointment\";\r\n private readonly _deleteVisitUrl: string = \"/api/doctorScheduling/RemoveScheduleCompletely\";\r\n\r\n constructor(http: HttpClient, injector: Injector) {\r\n super(http, injector);\r\n }\r\n getSchedulingDoctorList(): Observable {\r\n let endpointUrl = `${this._schedulingDoctorListUrl}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getSchedulingDoctorList()));\r\n }));\r\n }\r\n getSchedulingTimeEndpoint(mapId?: string): Observable {\r\n let endpointUrl = `${this._schedulingTimeUrl}/${mapId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getSchedulingTimeEndpoint(mapId)));\r\n }));\r\n }\r\n geSchedulingByIdEndpoint(SchedulingId: string): Observable {\r\n let endpointUrl = `${this._schedulinglUrl}/${SchedulingId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.geSchedulingByIdEndpoint(SchedulingId)));\r\n }));\r\n }\r\n getScheduleIntervalByIdEndpoint(SchedulingIntervalId: string): Observable {\r\n let endpointUrl = `${this._schedulinglIntervalUrl}/${SchedulingIntervalId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getScheduleIntervalByIdEndpoint(SchedulingIntervalId)));\r\n }));\r\n }\r\n\r\n getScheduleIntervalBySchedulingIdEndpoint(SchedulingId: string): Observable {\r\n let endpointUrl = `${this._schedulinglIntervalBySchedulingIdUrl}/${SchedulingId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getScheduleIntervalBySchedulingIdEndpoint(SchedulingId)));\r\n }));\r\n }\r\n getSchedulingOfDateEndpoint(hospmapid: string): Observable {\r\n let endpointUrl = `${this._schedulingShowUrl}/ ${hospmapid}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getSchedulingOfDateEndpoint(hospmapid)));\r\n }));\r\n }\r\n postSchedulingEndpoint(userObject: any): Observable {\r\n return this.http.post(this._schedulingPostUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.postSchedulingEndpoint(userObject)));\r\n }));\r\n }\r\n addSchedulingEndpoint(userObject: any): Observable {\r\n return this.http.post(this._schedulingAddUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.addSchedulingEndpoint(userObject)));\r\n }));\r\n }\r\n\r\n getUpdateSchedulingEndpoint(userObject: any, SchedulingId?: string): Observable {\r\n let endpointUrl = SchedulingId ? `${this._schedulingUpdateUrl}/${SchedulingId}` : this._schedulingUpdateUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getUpdateSchedulingEndpoint(userObject, SchedulingId)));\r\n }));\r\n }\r\n getTimeVisitList(visitDate: string): Observable {\r\n let endpointUrl = `${this._schedulingVisitTimeUrl}/${visitDate}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getTimeVisitList(visitDate)));\r\n }));\r\n }\r\n getVisitTimeList(visitDate: string, docId?: string, deptId?: string, hosId?: string): Observable {\r\n let endpointUrl = `${this._schedulingVisitTimeListUrl}/${visitDate}/${docId}/${deptId}/${hosId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.getVisitTimeList(visitDate, deptId, docId, hosId)));\r\n }));\r\n }\r\n\r\n deleteScheduleEndpoint(SchedulingId: string): Observable {\r\n let endpointUrl = `${this._schedulingdeleteUrl}/${SchedulingId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deleteScheduleEndpoint(SchedulingId)));\r\n }));\r\n }\r\n postRescheduleEndpoint(userObject: any, id?: string, id1?: string, id2?: string): Observable {\r\n // let endpointUrl = id || id1 || id2 ? : `${this._rescheduleUrl}/${0}/${0}/${id2}`;\r\n let endpointUrl = `${this._rescheduleUrl}/${id}/${id1}/${id2}`;\r\n return this.http.post(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.postRescheduleEndpoint(userObject, id, id1, id2)));\r\n }));\r\n }\r\n\r\n checkExistingAppointmentEndpoint(SchedulingId: string): Observable {\r\n let endpointUrl = `${this._checkForExistingAppointmentUrl}/${SchedulingId}`;\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.checkExistingAppointmentEndpoint(SchedulingId)));\r\n }));\r\n }\r\n\r\n deleteVisitEndpoint(visitingId: string): Observable {\r\n let endpointUrl = `${this._deleteVisitUrl}/${visitingId}`;\r\n return this.http.put(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return throwError(this.handleError(error, () => this.deleteVisitEndpoint(visitingId)));\r\n }));\r\n }\r\n}\r\n","import { Injectable, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport * as _ from 'lodash';\r\nimport { SchedulingEndpoint } from './scheduling-endpoint.service';\r\nimport { Scheduling, VisitDate, ScheduleInterval } from '../../models/scheduling/scheduling.model';\r\nimport { Visit } from 'src/app/models/visit/visit.model';\r\n\r\n\r\n@Injectable()\r\nexport class SchedulingService {\r\n constructor(private router: Router, private http: HttpClient, private schedulingEndPoint: SchedulingEndpoint) {\r\n }\r\n getSchedulingDoctorList() {\r\n return this.schedulingEndPoint.getSchedulingDoctorList();\r\n }\r\n getScheduleIntervalById(SchedulingIntervalId?: string) {\r\n return this.schedulingEndPoint.getScheduleIntervalByIdEndpoint(SchedulingIntervalId);\r\n }\r\n\r\n getScheduleIntervalBySchedulingId(SchedulingId?: string) {\r\n return this.schedulingEndPoint.getScheduleIntervalBySchedulingIdEndpoint(SchedulingId);\r\n }\r\n getSchedulingTime(mapId?: string) {\r\n return this.schedulingEndPoint.getSchedulingTimeEndpoint(mapId);\r\n }\r\n getScheduling(SchedulingId?: string) {\r\n return this.schedulingEndPoint.geSchedulingByIdEndpoint(SchedulingId);\r\n }\r\n\r\n getSchedulingOfDate(hospmapId?: string) {\r\n return this.schedulingEndPoint.getSchedulingOfDateEndpoint(hospmapId);\r\n }\r\n postScheduling(scheduling: Scheduling) {\r\n return this.schedulingEndPoint.postSchedulingEndpoint(scheduling);\r\n }\r\n addScheduling(scheduling: Scheduling) {\r\n return this.schedulingEndPoint.addSchedulingEndpoint(scheduling);\r\n }\r\n updateScheduling(scheduling: Scheduling) {\r\n if (scheduling.SchedulingId) {\r\n return this.schedulingEndPoint.getUpdateSchedulingEndpoint(scheduling, scheduling.SchedulingId);\r\n }\r\n else {\r\n return this.schedulingEndPoint.getUpdateSchedulingEndpoint(scheduling.SchedulingId).pipe(\r\n mergeMap(scheduling => {\r\n scheduling.SchedulingId = scheduling.SchedulingId;\r\n return this.schedulingEndPoint.getUpdateSchedulingEndpoint(scheduling, scheduling.SchedulingId)\r\n }));\r\n }\r\n }\r\n getTimeVisit(visitDate: string) {\r\n return this.schedulingEndPoint.getTimeVisitList(visitDate);\r\n }\r\n getVisitTime(visitDate: string, docId?: string, deptId?: string, hosId?: string) {\r\n return this.schedulingEndPoint.getVisitTimeList(visitDate, docId, deptId, hosId);\r\n }\r\n deleteSchedule(SchedulingId: string) {\r\n return this.schedulingEndPoint.deleteScheduleEndpoint(SchedulingId);\r\n }\r\n postReschedule(visit: Visit, id: string, id1: string, id2: string) {\r\n var visit = _.omit(visit, ['PatientValidator']);\r\n return this.schedulingEndPoint.postRescheduleEndpoint(visit, id, id1, id2);\r\n }\r\n\r\n checkExistingAppointment(id: string) {\r\n return this.schedulingEndPoint.checkExistingAppointmentEndpoint(id);\r\n }\r\n\r\n deleteVisit(id: string) {\r\n return this.schedulingEndPoint.deleteVisitEndpoint(id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpInterceptor, HttpEvent, HttpRequest, HttpHandler, HttpResponse, HttpErrorResponse } from '@angular/common/http'\r\nimport { Observable, throwError } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class TokenInterceptorService implements HttpInterceptor {\r\n intercept(req: HttpRequest,\r\n next: HttpHandler): Observable> {\r\n\r\n const jwtToken = sessionStorage.getItem(\"jwtToken\");\r\n //const jwtToken = this.global.token;\r\n\r\n if (jwtToken) {\r\n const requestWithJwtToken = req.clone({\r\n headers: req.headers.set(\"Authorization\", \"Bearer \" + jwtToken)\r\n });\r\n\r\n //! Ganesh, 6thMarch, 24, Below logic is added to redirect the user to the login page if token is expired.\r\n //! Here if the token is removed from SessionStorage it gets redirected to login page.\r\n // return next.handle(requestWithJwtToken);\r\n\r\n return next.handle(requestWithJwtToken).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n // Handle the error here\r\n if(error.status === 401){\r\n sessionStorage.removeItem('jwtToken');\r\n window.location.reload();\r\n }\r\n //throw error as per requirement\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n else {\r\n return next.handle(req);\r\n }\r\n\r\n }\r\n\r\n\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponseBase, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n let responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n }\r\n else {\r\n let responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (let key in responseObject) {\r\n if (key)\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key])\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data))\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n\r\n if (!responses.length)\r\n responses.push(data.toString());\r\n\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n }\r\n else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse)\r\n return response.body;\r\n\r\n if (response instanceof HttpErrorResponse)\r\n return response.error || response.message || response.statusText;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString)\r\n return null;\r\n\r\n let params: { [key: string]: string } = {};\r\n\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1)\r\n return { firstPart: text, secondPart: null };\r\n\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n }\r\n catch (error) {\r\n\r\n }\r\n\r\n let simpleObject = {};\r\n\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n public static TestIsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n //return value === undefined;\r\n }\r\n\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text)\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n else\r\n return text;\r\n }\r\n\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n\r\n public static toLowerCase(items: string)\r\n public static toLowerCase(items: string[])\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n }\r\n else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin)\r\n base = window.location.origin;\r\n else\r\n base = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = \"st\";\r\n }\r\n else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = \"nd\";\r\n }\r\n else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = \"rd\";\r\n }\r\n else {\r\n sup = \"th\";\r\n }\r\n\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = \"0\" + minute;\r\n }\r\n\r\n let timeString = hour + \":\" + minute + \" \" + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date(); today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString())\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() == yesterday.toDateString())\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else\r\n return Utilities.printDate(date, separator);\r\n }\r\n\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n\r\n if (day.length == 1)\r\n day = \"0\" + day;\r\n\r\n if (month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static parseDate(date) {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1)\r\n date = date + \"Z\";\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(date);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = \"\";\r\n\r\n if (days)\r\n printedDays = `${days} days`;\r\n\r\n if (hours)\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n\r\n if (minutes)\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n\r\n if (seconds)\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n\r\n\r\n if (!printedDays)\r\n printedDays = \"0\";\r\n\r\n return printedDays;\r\n }\r\n\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm)\r\n return true;\r\n\r\n\r\n if (!caseSensitive)\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n for (let value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive)\r\n strValue = strValue.toLowerCase();\r\n\r\n if (strValue.indexOf(searchTerm) !== -1)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text)\r\n return text;\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n let r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n\r\n\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n }\r\n else if (typeof obj[k] == \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate)\r\n func.apply(context, args_);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n func.apply(context, args_);\r\n };\r\n }\r\n\r\n\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n var sExpires = \"\";\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"yesNoPipe\"\r\n})\r\nexport class YesNoPipe implements PipeTransform {\r\n transform(value: any, ...args: any[]): any {\r\n return (value==true) ? \"Yes\" : \"No\";\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global } from 'src/app/app.global';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConfigService {\r\n\r\n constructor(private http: HttpClient ,public global:Global) {}\r\n\r\n loadAppConfig() {\r\n return this.http\r\n .get('assets/appconfig.json')\r\n .toPromise()\r\n .then(data => {\r\n this.global.config = data;\r\n });\r\n }\r\n \r\n \r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(public sanitizer: DomSanitizer) {}\r\n \r\n public transform(value: any) {\r\n\treturn this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n }\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n url: 'https://www.lphospital.gov.np/',\r\n khalti_key : 'test_public_key_bc2bff31f14e440c934353312e74b106'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-ps\": 42060,\n\t\"./ar-ps.js\": 42060,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku-kmr\": 63898,\n\t\"./ku-kmr.js\": 63898,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"]}