@jescon-technologies/react-native-ui-kit 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/index.d.ts +66 -0
  2. package/index.js +0 -4
  3. package/package.json +3 -2
  4. package/src/Alerts/AAlert.js +3 -3
  5. package/src/Alerts/AAlertIOS.js +3 -3
  6. package/src/{common → Common}/NetworkServiceCall.js +1 -1
  7. package/src/CommonStyle/CommonTheme.js +11 -0
  8. package/src/CommonStyle/ComponentFunctions.js +632 -0
  9. package/src/CommonStyle/PopupStyle.js +146 -0
  10. package/src/CommonStyle/commonStyle.js +93 -0
  11. package/src/CommonStyle/componentStyle.js +545 -0
  12. package/src/CommonStyle/optionListStyles.js +175 -0
  13. package/src/Components/ByProductPage.js +200 -0
  14. package/src/Components/CDropDownListNew.js +153 -0
  15. package/src/Components/CSupplierList.js +88 -0
  16. package/src/Components/CVerificationCard.js +2822 -0
  17. package/src/Components/CustomButton.js +67 -0
  18. package/src/Components/CustomCard.js +127 -0
  19. package/src/Components/CustomTextInput.js +47 -0
  20. package/src/Components/EquipmentPage.js +313 -0
  21. package/src/Components/FilterInput.Copy.js +723 -0
  22. package/src/Components/FilterInput.js +569 -0
  23. package/src/Components/HSubHeading.js +68 -0
  24. package/src/Components/HeaderCard.js +40 -0
  25. package/src/Components/MoreOptionsScreen.js +251 -0
  26. package/src/Components/NonSwipableProductCard.js +226 -0
  27. package/src/Components/NonSwipableSupplierCard.js +348 -0
  28. package/src/Components/ProductCard.js +1336 -0
  29. package/src/Components/QualityProductCard.js +1059 -0
  30. package/src/Components/RateProductCard.js +1452 -0
  31. package/src/Components/RawMaterial.js +261 -0
  32. package/src/Components/SDropDownEdited.js +549 -0
  33. package/src/Components/SDropDownNew.js +529 -0
  34. package/src/Components/SHelpDescription.js +147 -0
  35. package/src/Components/STextInputNew.js +510 -0
  36. package/src/Components/SearchProductCard.js +470 -0
  37. package/src/Components/StageByProduct.js +199 -0
  38. package/src/Components/SupplierCard.js +243 -0
  39. package/src/Components/SupplierInvoiceCard.js +405 -0
  40. package/src/Components/SwipableSupplierCard.js +136 -0
  41. package/src/Components/TagTemplate.js +74 -0
  42. package/src/Components/WrappedComponent.js +25 -0
  43. package/src/Custom/CBooking.js +944 -0
  44. package/src/Custom/CBookingPostpone.js +1822 -0
  45. package/src/Custom/CCalendar.js +560 -0
  46. package/src/Custom/CCard.js +880 -0
  47. package/src/Custom/CDetailCard.js +205 -0
  48. package/src/Custom/CHelpImage.js +52 -0
  49. package/src/Custom/CReport.js +569 -0
  50. package/src/Custom/CScrollView.js +73 -0
  51. package/src/Custom/CSignature.js +112 -0
  52. package/src/Custom/CSliderMenu.js +339 -0
  53. package/src/Custom/CSupplierCard.js +99 -0
  54. package/src/Custom/CTemplateCard.js +438 -0
  55. package/src/Custom/CTokenAllocation.js +1402 -0
  56. package/src/Custom/CTokenListOverlay.js +122 -0
  57. package/src/Custom/CWardStatus.js +444 -0
  58. package/src/Custom/Charts/CBarChart.js +218 -0
  59. package/src/Custom/Charts/CDashBoardList.js +133 -0
  60. package/src/Custom/Charts/CDashBoardTable.js +172 -0
  61. package/src/Custom/Charts/CLineChart.js +193 -0
  62. package/src/Custom/Charts/CPieChart.js +186 -0
  63. package/src/Custom/Loader.js +182 -0
  64. package/src/Custom/OUserView.js +1121 -0
  65. package/src/Custom/PreviewDosage.js +115 -0
  66. package/src/Custom/SearchLoader.js +32 -0
  67. package/src/Custom/TableComponent/CActivityTable.js +707 -0
  68. package/src/Custom/TableComponent/CMoreButtonTable.js +197 -0
  69. package/src/Custom/TableComponent/CTable.js +185 -0
  70. package/src/Custom/TableComponent/CTextBody.js +40 -0
  71. package/src/Custom/TableComponent/CTextHeader.js +17 -0
  72. package/src/Custom/TableComponent/PreviewPrescriptionNew.js +1011 -0
  73. package/src/Custom/TableComponent/SDropdownTable.js +491 -0
  74. package/src/Custom/TableComponent/TagTable.js +1200 -0
  75. package/src/CustomComponents/CAddColumn.js +140 -0
  76. package/src/CustomComponents/CAssessmentDelete.js +307 -0
  77. package/src/CustomComponents/CAwesomeButton.js +83 -0
  78. package/src/CustomComponents/CAwesomeMoreButton.js +54 -0
  79. package/src/CustomComponents/CBackHandler.js +273 -0
  80. package/src/CustomComponents/CCalendar.js +243 -0
  81. package/src/CustomComponents/CCommentOverlay.js +202 -0
  82. package/src/CustomComponents/CComments.js +162 -0
  83. package/src/CustomComponents/CContainerView.js +24 -0
  84. package/src/CustomComponents/CCustomTextInput.js +336 -0
  85. package/src/CustomComponents/CDetailView.js +40 -0
  86. package/src/CustomComponents/CDropDownList.js +153 -0
  87. package/src/CustomComponents/CDropdownSelect.js +555 -0
  88. package/src/CustomComponents/CFooterView.js +42 -0
  89. package/src/CustomComponents/CImagePickerSave.js +316 -0
  90. package/src/CustomComponents/CModalOverlay.js +91 -0
  91. package/src/CustomComponents/CNetworkStatus.js +327 -0
  92. package/src/CustomComponents/CNotesInstructions.js +1000 -0
  93. package/src/CustomComponents/COverlay.js +81 -0
  94. package/src/CustomComponents/CRemarks.js +176 -0
  95. package/src/CustomComponents/CRowAdd.js +143 -0
  96. package/src/CustomComponents/CSummaryDropDown.js +327 -0
  97. package/src/CustomComponents/CText.js +9 -0
  98. package/src/CustomComponents/CVectorIcon.js +34 -0
  99. package/src/CustomComponents/HtmlContentViewer.js +65 -0
  100. package/src/CustomComponents/PdfContentViewer.js +90 -0
  101. package/src/CustomComponents/SDropDownDosage.js +1087 -0
  102. package/src/CustomComponents/SwipableProductCard.js +246 -0
  103. package/src/CustomComponents/SwipableProductImageCard.js +254 -0
  104. package/src/CustomComponents/WorkOrderDetails.js +1216 -0
  105. package/src/CustomComponents/WorkOrderDetailsPage.js +1213 -0
  106. package/src/HOC/ConfirmOverlay.js +2 -2
  107. package/src/HOC/HMoreButton.js +1 -1
  108. package/src/HOC/HNatureHeading.js +1 -1
  109. package/src/HOC/HShadowButton.js +1 -1
  110. package/src/HOC/HShadowCountButton.js +1 -1
  111. package/src/Json/Chart.json +818 -0
  112. package/src/Json/Consultation.json +622 -0
  113. package/src/Json/CreditBill.json +490 -0
  114. package/src/Json/Dropdown.json +216 -0
  115. package/src/Json/DropdownConsultation.json +228 -0
  116. package/src/Json/DynamicReports.json +623 -0
  117. package/src/Json/Footer.json +79 -0
  118. package/src/Media/AudioScreen.js +2 -7
  119. package/src/Media/CCaptureImageWithoutEdit.js +1 -1
  120. package/src/Media/CImageGallery.js +2 -2
  121. package/src/Media/CSingleImage.js +2 -2
  122. package/src/Media/CVideoPlay.js +1 -1
  123. package/src/Media/DocumentScreen.js +2 -7
  124. package/src/Media/DrawingScreen.js +2 -6
  125. package/src/Media/ImageScreen.js +2 -6
  126. package/src/Media/VideoScreen.js +2 -7
  127. package/src/Navigation/PageNavigation.js +224 -0
  128. package/src/Navigation/useFocusEffect.js +2 -0
  129. package/src/Navigation/useFocusEffect.native.js +1 -0
  130. package/src/Navigation/useFocusEffect.web.js +1 -0
  131. package/src/Navigation/useIsFocused.js +1 -0
  132. package/src/Navigation/useIsFocused.native.js +1 -0
  133. package/src/Navigation/useIsFocused.web.js +1 -0
  134. package/src/Navigation/useNavigation.js +2 -0
  135. package/src/Navigation/useNavigation.native.js +1 -0
  136. package/src/Navigation/useNavigation.web.js +1 -0
  137. package/src/Screens/CMedications.js +528 -0
  138. package/src/Screens/CWebViewGallery.js +203 -0
  139. package/src/Screens/ChartScan.js +279 -0
  140. package/src/Screens/ChartScreenNew.js +1579 -0
  141. package/src/Screens/Consultation.js +1500 -0
  142. package/src/Screens/Dashboard.js +778 -0
  143. package/src/Screens/FileExplorer.js +288 -0
  144. package/src/Screens/Footer.js +340 -0
  145. package/src/Screens/ForgotPassword.js +288 -0
  146. package/src/Screens/HeaderBlock.js +353 -0
  147. package/src/Screens/Login.js +328 -0
  148. package/src/Screens/Notification.js +149 -0
  149. package/src/Screens/OcrScreen.js +20 -0
  150. package/src/Screens/PdfPreview.js +507 -0
  151. package/src/Screens/RegistrationDetails.js +467 -0
  152. package/src/Screens/SearchScreen.js +582 -0
  153. package/src/Screens/Splash.js +788 -0
  154. package/src/Screens/SwipeLeftView.js +1867 -0
  155. package/src/StaticComponents/SDatePickerLabel.js +1 -1
  156. package/src/StaticComponents/SDatePickerNew.js +1 -1
  157. package/src/StaticComponents/SDateTimePickerNew.js +2 -2
  158. package/src/StaticComponents/SDropDownGenerate.js +3 -3
  159. package/src/StaticComponents/SDropDownHoc.js +4 -4
  160. package/src/StaticComponents/SDropDownIcon.js +1 -1
  161. package/src/StaticComponents/SMenuBox.js +2 -2
  162. package/src/StaticComponents/SSearch.js +2 -2
  163. package/src/StaticComponents/STextInput.js +1 -1
  164. package/src/StaticComponents/STimePicker.js +1 -1
  165. package/src/StaticComponents/STimingDropDownNew.js +2 -6
  166. package/src/StaticComponents/STimingSwitch.js +1 -1
  167. package/src/layout/CContainerView.js +1 -1
  168. package/src/layout/CDetailView.js +3 -3
  169. package/src/layout/HeaderBlock.js +5 -5
  170. package/src/layout/INVLoginLayout.js +3 -4
  171. package/src/layout/Loader.js +2 -2
  172. package/src/HOC/HAbsolute.js +0 -56
  173. package/src/HOC/HDiscontinue.js +0 -105
  174. package/src/HOC/HOverlay.js +0 -99
  175. package/src/layout/FooterBlock.js +0 -821
  176. /package/src/{common → Common}/ErrorBoundary.tsx +0 -0
  177. /package/src/{common → Common}/Icons.js +0 -0
@@ -0,0 +1,1011 @@
1
+ import React, { useState, useImperativeHandle, forwardRef, useContext } from 'react';
2
+ import {
3
+ Text,
4
+ View,
5
+ TouchableOpacity,
6
+ PermissionsAndroid,
7
+ Platform,
8
+ Dimensions,
9
+ } from 'react-native';
10
+ import { Global } from '../../Common/Global';
11
+ import { height, normalize, width } from '../../CommonStyle/componentStyle';
12
+ import RNHTMLtoPDF from 'react-native-html-to-pdf';
13
+ import Dropdown from '../../Json/Dropdown.json';
14
+ import { isBNUL, isNU, isNUQZ, notifyMessage, ValueCheck } from '../../CommonStyle/ComponentFunctions';
15
+ import RNFetchBlob from 'rn-fetch-blob';
16
+ import Loader from '../Loader';
17
+ import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
18
+ import RNPrint from 'react-native-print';
19
+ import NetworkServiceCall from '../../Common/NetworkServiceCall';
20
+ import { APIURL, imageURL } from '../../Common/apiConstants';
21
+ import axios from 'axios';
22
+ import WebView from 'react-native-webview';
23
+ import EmrResponseComponentContext from '../../Handlers/emrResponseComponentContext';
24
+ import { convertStringToArrayWeekDay } from '../../CommonStyle/ComponentFunctions';
25
+
26
+ export const PreviewPrescriptionNew = forwardRef((props, ref) => {
27
+
28
+ const { responseJSON, setResponseJSON } = useContext(EmrResponseComponentContext);
29
+
30
+ useImperativeHandle(ref, () => ({
31
+ pdf() {
32
+ createPDF();
33
+ },
34
+ print() {
35
+ fnPrint();
36
+ },
37
+ }));
38
+
39
+ const [data, setData] = useState(
40
+ props.data != null && props.data != undefined
41
+ ? props.data.sort((a, b) => a.outsidemedicine - b.outsidemedicine)
42
+ : props.data,
43
+ );
44
+
45
+ const [isLoading, setIsLoading] = useState(false);
46
+
47
+ function reverse(s) {
48
+ if (s != undefined) {
49
+ var fields = s.split('T');
50
+
51
+ if (fields != undefined && fields.length > 0) {
52
+ return fields[0].split('-').reverse().join('-');
53
+ } else {
54
+ return s.split('-').reverse().join('-');
55
+ }
56
+ // return s.split('-').reverse().join('-');
57
+ }
58
+ }
59
+
60
+ function getDosageUnit(details) {
61
+ // console.log('GGGGGGGGGGGGGG', Global.DosageArray)
62
+ let dropdownvaluenew4;
63
+ Global.DosageArray != null && Global.DosageArray != undefined
64
+ && Global.DosageArray.length > 0
65
+ ? Global.DosageArray.map(val => {
66
+ if (val.datavalue == parseInt(details)) {
67
+ dropdownvaluenew4 = val.displayvalue;
68
+ }
69
+ })
70
+ : null;
71
+ return dropdownvaluenew4;
72
+ }
73
+
74
+ function fnHtml(multi, multitiming) {
75
+
76
+ var newArray = multi.timingdata[0].timings.timingsarray.filter(function (el) {
77
+ return el.usagename != '' &&
78
+ el.dosage != undefined;
79
+ });
80
+
81
+
82
+
83
+ return (
84
+ newArray.map((timing, i) => {
85
+
86
+ return timing.usagename != '' &&
87
+ timing.dosage != undefined ?
88
+ `
89
+ <div style="display: flex;flex-direction: column;justify-content:center;align-items:center;margin-top:5px;margin-bottom:5px;">
90
+ <div style="font-weight:normal;font-size:10px;">
91
+ <b style="font-size:15px;">${timing.dosage[0].volume ? timing.dosage[0].volume : ''}</b>
92
+ ${timing.dosage[0].unit != null && timing.dosage[0].unit != undefined && timing.dosage[0].unit != '' && getDosageUnit(timing.dosage[0].unit) != null && getDosageUnit(timing.dosage[0].unit) != undefined && getDosageUnit(timing.dosage[0].unit) != '' && getDosageUnit(timing.dosage[0].unit) != 'Not Applicable' ? getDosageUnit(timing.dosage[0].unit) : ''}
93
+ ${multi.timingdata[0].timings.timingcategorycode &&
94
+ multi.timingdata[0].timings.timingcategorycode != null &&
95
+ multi.timingdata[0].timings.timingcategorycode != undefined &&
96
+ multi.timingdata[0].timings.timingcategorycode == 4 ||
97
+ multi.timingdata[0].timings.timingcategorycode &&
98
+ multi.timingdata[0].timings.timingcategorycode != null &&
99
+ multi.timingdata[0].timings.timingcategorycode != undefined &&
100
+ multi.timingdata[0].timings.timingcategorycode == 8
101
+ ? getDropDownIntake(timing.dosage[0].intake) &&
102
+ getDropDownIntake(timing.dosage[0].intake) != null &&
103
+ getDropDownIntake(timing.dosage[0].intake) != undefined ?
104
+ getDropDownIntake(timing.dosage[0].intake) :
105
+
106
+ '' :
107
+ multi.timingdata[0].timings.timingcategoryname &&
108
+ multi.timingdata[0].timings.timingcategoryname != null &&
109
+ multi.timingdata[0].timings.timingcategoryname != undefined ?
110
+ '<b style="color:red;font-size:10px;font-weight:bold;">[</b>' + `<b style="color:red;font-size:10px;font-weight:bold;">${multi.timingdata[0].timings.timingcategoryname}</b>` + '<b style="color:red;font-size:10px;font-weight:bold;">]</b>' :
111
+ ''}
112
+ </div>
113
+ <div style="font-weight:normal;font-size:10px;">
114
+ ${multi.timingdata[0].timings.timingcategorycode &&
115
+ multi.timingdata[0].timings.timingcategorycode != null &&
116
+ multi.timingdata[0].timings.timingcategorycode != undefined &&
117
+ multi.timingdata[0].timings.timingcategorycode == 4 ?
118
+ `<b>${timing.timingslotname && timing.timingslotname != null && timing.timingslotname != undefined && timing.timingslotname.length > 1 ? timing.timingslotname.charAt(0) + `<b style="font-size:7px;">${timing.timingslotname.substring(1).toLowerCase()}</b>` : ''}</b>(${timing.dosage[0].specifictime == true ? timing.dosage[0].timeprovided : timing.timingslotfrom + '-' + timing.timingslotto})` : ''}
119
+ </div>
120
+ <div style="font-weight:normal;font-size:8px;">
121
+ <i>${timing.dosage[0].patientdescription ? '* ' + timing.dosage[0].patientdescription : ' '}</i>
122
+ </div>
123
+ <div style="font-weight:normal;font-size:8px;">
124
+ <i>${timing.dosage[0].consultantdescription ? '* ' + timing.dosage[0].consultantdescription : ' '}</i>
125
+ </div>
126
+ <div style="font-weight:normal;font-size:8px;">
127
+ <i>${timing.dosage[0].medicationdescription ? '* ' + timing.dosage[0].medicationdescription : ' '}</i>
128
+ </div>
129
+
130
+ </div>
131
+ ${newArray.length == (i + 1) ? '' : '<div style="height:0.5px;background-color:grey;width:100%;"></div>'}
132
+ `
133
+ : '';
134
+ }).join('')
135
+ );
136
+
137
+ }
138
+
139
+ function cnull(i) {
140
+ return (i && i != null && i != undefined && i != '' ? true : false);
141
+ }
142
+
143
+ function fnCommonTiming(multi, multitiming) {
144
+ return (
145
+ `
146
+ <style>
147
+ div.first:first-letter {
148
+ font-size: 15px;
149
+ color: black;
150
+ font-weight:bold;
151
+ }
152
+ div.none:first-letter {
153
+ font-size: 15px;
154
+ color: black;
155
+ font-weight:bold;
156
+ }
157
+ </style>
158
+
159
+ <div style="display:flex;justify-content:center;align-items:center;width:30%;display: flex;flex-direction: column;align-items:center;border:1px solid grey;border-top:0px solid;border-right:0px solid;">
160
+ ${multi.timingdata[0].timings &&
161
+ multi.timingdata[0].timings != undefined &&
162
+ multi.timingdata[0].timings != null &&
163
+ multi.timingdata[0].timings != '' &&
164
+ multi.timingdata[0].timings.timingsarray &&
165
+ multi.timingdata[0].timings.timingsarray != null &&
166
+ multi.timingdata[0].timings.timingsarray != undefined ?
167
+ fnHtml(multi, multitiming)
168
+ : ''}
169
+ </div>
170
+ ${multi.timingdata[0].timings &&
171
+ multi.timingdata[0].timings != undefined &&
172
+ multi.timingdata[0].timings != null &&
173
+ multi.timingdata[0].timings != '' &&
174
+ multi.timingdata[0].timings.timingcategorycode &&
175
+ multi.timingdata[0].timings.timingcategorycode != null &&
176
+ multi.timingdata[0].timings.timingcategorycode != undefined &&
177
+ multi.timingdata[0].timings.timingcategorycode == 4 ?
178
+ `<div style="display:flex;justify-content:center;align-items:center;width:20%;font-size:10px;text-align:center;border:1px solid grey;border-top:0px solid;border-right:0px solid;">
179
+ ${getDropDownDurationNature(
180
+ multi.timingdata[0].durationnature != null &&
181
+ multi.timingdata[0].durationnature != undefined &&
182
+ multi.timingdata[0].durationnature != 'D' &&
183
+ multi.timingdata[0].durationnature != 'N'
184
+ ? multi.timingdata[0].durationnature
185
+ : '',
186
+ )}${' '}
187
+ ${multi.timingdata[0].duration != undefined &&
188
+ multi.timingdata[0].duration != null &&
189
+ multi.timingdata[0].duration != 0
190
+ ? 'FOR ' + multi.timingdata[0].duration
191
+ : ' '}${' '}
192
+ ${getDropDownCode(
193
+ multi.timingdata[0].durationtype != null &&
194
+ multi.timingdata[0].durationtype != undefined &&
195
+ multi.timingdata[0].duration &&
196
+ multi.timingdata[0].durationtype != 'N' &&
197
+ multi.timingdata[0].duration != undefined &&
198
+ multi.timingdata[0].duration != null &&
199
+ multi.timingdata[0].duration != 0
200
+ ? multi.timingdata[0].durationtype
201
+ : '',
202
+ )}
203
+ ${multi.timingdata[0].durationtype != null &&
204
+ multi.timingdata[0].durationtype != undefined &&
205
+ multi.timingdata[0].duration &&
206
+ multi.timingdata[0].duration != undefined &&
207
+ multi.timingdata[0].duration != null &&
208
+ multi.timingdata[0].duration != 0 &&
209
+ multi.timingdata[0].duration != 1
210
+ ? '(S)'
211
+ : ' '}
212
+ ${ValueCheck(multi.timingdata[0].weekdays) ? convertStringToArrayWeekDay(multi.timingdata[0].weekdays).map((week, i) => {
213
+ return (
214
+ week.selected ?
215
+ `${week.displayvalue},` : ''
216
+ );
217
+ }).join('') : ''}
218
+
219
+ </div>`
220
+
221
+ : `<div style="display:flex;justify-content:center;align-items:center;width:20%;font-size:10px;text-align:center;border:1px solid grey;border-top:0px solid;border-right:0px solid;">
222
+ </div>`}
223
+
224
+ <div style="display:flex;justify-content:center;align-items:center;width:12%;font-size:8px;text-align:center;border:1px solid grey;border-top:0px solid;border-right:0px solid;">
225
+ ${multi.timingdata[0].routename && multi.timingdata[0].routename != null && multi.timingdata[0].routename != undefined
226
+ && multi.timingdata[0].routename != 'NOT APPLICABLE' ? multi.timingdata[0].routename
227
+ : ''
228
+ }
229
+ </div>
230
+ <div style="display:flex;justify-content:center;align-items:center;width:18%;font-size:10px;text-align:center;border:1px solid grey;border-top:0px solid;border-right:0px solid;">
231
+ ${multi.timingdata[0].performeddate &&
232
+ multi.timingdata[0].performeddate !=
233
+ null &&
234
+ multi.timingdata[0].performeddate !=
235
+ undefined
236
+ ? reverse(multi.timingdata[0].performeddate)
237
+ : ''
238
+ }
239
+ </div>
240
+ <div style="display:flex;justify-content:center;align-items:center;width:20%;font-size:10px;text-align:center;border:1px solid grey;border-top:0px solid;">
241
+ ${multi.timingdata[0].remarks &&
242
+ multi.timingdata[0].remarks !=
243
+ null &&
244
+ multi.timingdata[0].remarks !=
245
+ undefined
246
+ ? multi.timingdata[0].remarks
247
+ : ''
248
+ }
249
+ </div>
250
+
251
+ `
252
+ );
253
+ }
254
+
255
+ function getPatientData() {
256
+ return (
257
+ `<div style="display:flex;flex-direction:row;width:100%;justify-content:space-between;">
258
+
259
+ <fieldset style="border:1px solid grey;width:50%;">
260
+ <legend style="font-size:12px;">
261
+ Patient Details
262
+ </legend>
263
+ <div style="display:flex;flex-direction:column;">
264
+ <div style="display:flex;flex-direction:row;align-items:flex-end;">
265
+ <div style="width:100px;font-size:10px;">
266
+ Patient id
267
+ </div>
268
+ <div style="font-weight:bold;font-size:11px;">
269
+ :&nbsp;${Global.PatientDetails != null ? Global.PatientDetails.profilecontent[0].patientno : ''}&nbsp;&nbsp;&nbsp;&nbsp;
270
+ </div>
271
+ <div style="font-family: 'Libre Barcode 39';font-size:35px;height: 25px;">
272
+ ${Global.PatientDetails != null ? Global.PatientDetails.profilecontent[0].patientno : 0}
273
+ </div>
274
+ </div>
275
+ <div style="display:flex;flex-direction:row;">
276
+ <div style="width:100px;font-size:10px;">
277
+ Name
278
+ </div>
279
+ <div style="font-weight:bold;font-size:11px;">
280
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? Global.PatientDetails.profilecontent[0].patientname : ''}
281
+ </div>
282
+ </div>
283
+ <div style="display:flex;flex-direction:row;">
284
+ <div style="width:100px;font-size:10px;">
285
+ Date Of Birth
286
+ </div>
287
+ <div style="font-weight:bold;font-size:11px;">
288
+ &nbsp;:&nbsp;${' '}
289
+ </div>
290
+ </div>
291
+ <div style="display:flex;flex-direction:row;">
292
+ <div style="width:100px;font-size:10px;">
293
+ Gender/Age
294
+ </div>
295
+ <div style="font-weight:bold;font-size:11px;">
296
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? Global.PatientDetails.profilecontent[0].gender : ''}
297
+ /${Global.PatientDetails != null ? Global.PatientDetails.profilecontent[0].age : ''}
298
+ </div>
299
+ </div>
300
+ <div style="display:flex;flex-direction:row;">
301
+ <div style="width:100px;font-size:10px;">
302
+ Address
303
+ </div>
304
+ <div style="font-weight:bold;font-size:11px;">
305
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? Global.PatientDetails.centercontent[0].displaytext + ',' + Global.PatientDetails.centercontent[1].displaytext : ''}
306
+ </div>
307
+ </div>
308
+ <div style="display:flex;flex-direction:row;">
309
+ <div style="width:100px;font-size:10px;">
310
+ Phone
311
+ </div>
312
+ <div style="font-weight:bold;font-size:11px;">
313
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? Global.PatientDetails.profilecontent[0].mobileno : ''}
314
+ </div>
315
+ </div>
316
+ </div>
317
+ </fieldset>
318
+
319
+ <fieldset style="border:1px solid grey;width:50%;">
320
+ <legend style="font-size:12px;">Admission Details</legend>
321
+ <div style="display:flex;flex-direction:column;">
322
+
323
+ <div style="display:flex;flex-direction:row;">
324
+ <div style="width:100px;font-size:10px;">
325
+ Admission No
326
+ </div>
327
+ <div style="font-weight:bold;font-size:11px;">
328
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? '' : ''}
329
+ </div>
330
+ </div>
331
+ <div style="display:flex;flex-direction:row;">
332
+ <div style="width:100px;font-size:10px;">
333
+ Admitted Date
334
+ </div>
335
+ <div style="font-weight:bold;font-size:11px;">
336
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? '' : ''}
337
+ </div>
338
+ </div>
339
+ <div style="display:flex;flex-direction:row;">
340
+ <div style="width:100px;font-size:10px;">
341
+ Admitted Doctor
342
+ </div>
343
+ <div style="font-weight:bold;font-size:11px;">
344
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? '' : ''}
345
+ </div>
346
+ </div>
347
+ <div style="display:flex;flex-direction:row;">
348
+ <div style="width:100px;font-size:10px;">
349
+ Admitted Unit
350
+ </div>
351
+ <div style="font-weight:bold;font-size:11px;">
352
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? '' : ''}
353
+ </div>
354
+ </div>
355
+ <div style="display:flex;flex-direction:row;">
356
+ <div style="width:100px;font-size:10px;">
357
+ Ward
358
+ </div>
359
+ <div style="font-weight:bold;font-size:11px;">
360
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? '' : ''}
361
+ </div>
362
+ </div>
363
+ <div style="display:flex;flex-direction:row;">
364
+ <div style="width:100px;font-size:10px;">
365
+ Bed No
366
+ </div>
367
+ <div style="font-weight:bold;font-size:11px;">
368
+ &nbsp;:&nbsp;${Global.PatientDetails != null ? '' : ''}
369
+ </div>
370
+ </div>
371
+ </div>
372
+
373
+ </fieldset>
374
+
375
+ </div>`
376
+ );
377
+ }
378
+
379
+ function fnstring(i) {
380
+ return isNU(i) ? i.toString() : null;
381
+ }
382
+
383
+ function fnarray(i) {
384
+ let array = [];
385
+ isBNUL(i) ? i.map(data => { array.push(data.displayvalue); }) : null;
386
+ return array;
387
+ }
388
+
389
+ function getNotesText(array) {
390
+
391
+ return fnstring(fnarray(array));
392
+
393
+ }
394
+
395
+ function getMoreButtonData(array) {
396
+
397
+ let notes = isBNUL(array) ? array.filter((i, k) => { return (i.keyid == 131) ? { ...i } : undefined; }) : [];
398
+ let notestext = (isBNUL(notes) && isBNUL(notes[0].NotesArray)) ? getNotesText(notes[0].NotesArray) : '';
399
+
400
+ let instructions = isBNUL(array) ? array.filter((i, k) => { return (i.keyid == 159) ? { ...i } : undefined; }) : [];
401
+ let instructionstext = (isBNUL(instructions) && isBNUL(instructions[0].InstructionsArray)) ? getNotesText(instructions[0].InstructionsArray) : '';
402
+
403
+ let comments = isBNUL(array) ? array.filter((i, k) => { return (i.keyid == 3184) ? { ...i } : undefined; }) : [];
404
+ let commentstext = (isBNUL(comments) && isNU(comments[0].comments)) ? comments[0].comments : '';
405
+
406
+
407
+
408
+
409
+ return (
410
+ `
411
+ <div>
412
+ <div style="font-size:8px;font-weight:normal;">
413
+ ${isNUQZ(notestext) ? 'Notes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ' + `<i>${notestext}</i>` : ''}
414
+ </div>
415
+ <div style="font-size:8px;font-weight:normal;">
416
+ ${isNUQZ(instructionstext) ? 'Instructions : ' + `<i>${instructionstext}</i>` : ''}
417
+ </div>
418
+ <div style="font-size:8px;font-weight:normal;">
419
+ ${isNUQZ(commentstext) ? 'Comments&nbsp;&nbsp;: ' + `<i>${commentstext}</i>` : ''}
420
+ </div>
421
+ </div>
422
+ `
423
+ );
424
+
425
+ }
426
+
427
+ // <link href='https://fonts.googleapis.com/css?family=Libre Barcode 39' rel='stylesheet' />
428
+
429
+ var htmlcontent =
430
+ `<html>
431
+ <head>
432
+ <style>
433
+ @font-face {
434
+ font-family: "Libre Barcode 39";
435
+ /* Add other properties here, as needed. For example: */
436
+ /*
437
+ font-weight: 100 900;
438
+ font-style: normal italic;
439
+ */
440
+ src: url(data:application/octet-stream;base64,d09GMgABAAAAAAUQAAwAAAAAHbwAAAS/AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEQGYACBOBEICqFsmXULgXIAATYCJAODYAQgBYRyB4lbG/8XEcW8BPjDATdkYDHuyyIU4VFEeloVdkU9YwwjgEM9p1er61s6nO/v0OUhL9w5eP5/rd03s2KGa3LJqiFOJOMlWCgQyh5K87gR8//za+7NJQ/z201F/uyfDimJEInESIkQ1W7vZ6LcwgPDFJOasHrc3eC8vCgedM1vLQ/6/wSsTe7HdOUsWKpGDb0ZATocixXZkAgXqGrvK/6aaaUAYIpY/CMRmAh7oU6uHJDRlwB22HPKiBnwFFhgJlCACDBT4Myci5tBAwqsaU7ZJQ41PLq9+sYI4CDjlWBgqNgEOSaA94WXrq0cOJADAggmdcM2bGGY4FUaiOUh3xZou9MFGFffWxax+4fT0h10njh8EnWIgtzWpv8psB6U4/A2C3I8ZYAcAaABOhAiQoAQMScQoyfCBrjJufPCp+/Lj5tzqgPbhbeevYmZvTOhGh0ubFhBfX/VxcMBAadFLjZ3r7iEpJS0jKycvIKikrKKqpq6hqaWto6unj4Bok4HgAGARwDuoBuAfo6coPUAqfwTwbx8G1DcB6avFxO2bsbqtqy6rS4xO01OvLdo/tKmo8J3YdRUUQumWrasO6kOAkw5i2ZtK3kQXSfmcG2InqQ+MiIhApTxOyHbNGnW3+g6MpuqiLglBkQk5NCw0M+jhESLZq2B4DoxB/oB6ZoQPLgW5LYcLOZ9KKcL8RcLclErmKNLYWeJTAzOn/60xpyKjH4GglJ/3lQFL9aFFtJUKlWNylWkMlWpXiWqU61yyqpSFcqoWLpMMssiq2yyyyGnXHLLI6988iugoEIKK6KoYooroeSXLRW/g9VOqO7n77jkp6x+GwEgMjLsBdtLuo43m1cvANfKn7o1/1TT6A5b0OCEwM/BrZBXQCZ54TTPyCu7H4jyME0DQEYNZpK7BLyeIICNTSLEZAeuJKsfF3KpHNfwSGJcp8/fuIlGv+NmhszHLdRy/197aAds43AoLD8rK9YCA6FwWAQWckDAGBtWFWlFRcgcYyVuhrGALa04+LypW9ngHcww2lYYLEQDO7lkQyCRXAIucThrMzwOtoWccC49OrMheBEcnkK91uWw/XLwJWJIrYy6xPXWBeIeTS4uDtsSOE75zL/jG9t0DNmRxz3edEWzfqlpywv3835VDGxnZeHX9lgObd+Ww3Z2zZbc8Q3kaoM3R/i2/WjTYsxQw3a0HmWsuPsQ+tXz/tQTIadV/0uDf74P0ERJVlRNN0yL1WZ3QIQJZVxIpY11XM8PwihO0iwvyqpu2q4fxmle1m0/zut+3k9MXEJSSlpGVk5eQVFJWUVVTV1DU0tbR1dP38DQyNjE1MzcwtLK2sYWsrN3cHSCUWgMFod39u4jJE5x+SoWpYtnuSJiSsedcNIpp51x1jnnXXDRJZddcdU1191w0y233XHXvZ6+qnrGjVJfSo23K9pCglu3BzHvpH7WGrOFoF/yNTxLXf8xUvlcCXClKMS2lSelRFvykyz6MB89zNitshTcbteyFNgWQufKtpQVS36Ce8dLIQE/TcbfiCRN1AAyLJfn3+eCYjiABEm5+6AYDiBBUjTDcrg8/z4KiuEAEiRFe/pCMRxAgqRohuVwef59KSiGA0iQFO3pHXLj2GX/W/EA);
441
+ }
442
+ </style>
443
+ </head>
444
+ <body>
445
+ <div>
446
+ <div style="height:1px;width:99%;background-color:grey;margin-top:0px;margin-bottom:5px;">
447
+ </div>
448
+ <div style="width:100%;display:flex;flex-direction:row;justify-content:space-between;">
449
+ <div style="width:10%;">
450
+ <img src=${ValueCheck(responseJSON) && ValueCheck(responseJSON.consultationEdit)
451
+ && responseJSON.consultationEdit.hosumrclassificationnature == 20 ? 'https://t3.ftcdn.net/jpg/00/96/48/12/240_F_96481235_mbMgVHpExxdYAfHHDlGNLj9Ubz6AjosL.jpg'
452
+ : responseJSON.consultationEdit.hosumrclassificationnature == 17 ?
453
+ 'https://cdn-icons-png.flaticon.com/512/78/78524.png' :
454
+ 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS8DhoTnZqdQCZkmNqbXjMBHft1C4Fu0Bh9Eq2xFTsYHFt_mqMRSC1x5xpaNe9nWPgnPKY&usqp=CAU'} style="height:40px;width:40px;">
455
+ </img>
456
+ </div>
457
+ <div style="width:30%;display:flex;flex-direction:column;justify-content:flex-end;">
458
+ <div style="display:flex;width:100%;flex-direction:row;justify-content:space-between;align-items:flex-end;">
459
+ <div style="font-size:10px;width:40%;">
460
+ ${ValueCheck(responseJSON) && ValueCheck(responseJSON.consultationEdit) ? responseJSON.consultationEdit.heading : ''} NO.
461
+ </div>
462
+ <div style="font-size:11px;font-weight:bold;width:60%;">
463
+ :&nbsp;${' '}
464
+ </div>
465
+ </div>
466
+ <div style="display:flex;width:100%;flex-direction:row;justify-content:space-between;align-items:center;">
467
+ <div style="font-size:10px;width:40%;">
468
+ Ref No
469
+ </div>
470
+ <div style="display:flex;flex-direction:row;justify-content:flex-start;align-items:center;width:60%;">
471
+ <div style="font-size:11px;font-weight:bold;">
472
+ :&nbsp;${' '}&nbsp;&nbsp;&nbsp;&nbsp;
473
+ </div>
474
+ <div style="font-family: 'Libre Barcode 39';font-size:40px;height: 30px;">
475
+ ${ValueCheck(Global.PatientDetails.profilecontent[0].patientno) ? Global.PatientDetails.profilecontent[0].patientno : ' '}
476
+ </div>
477
+ </div>
478
+ </div>
479
+ </div>
480
+ <div style="width:40%;text-align:center;font-weight:bold;font-size:12px;">
481
+ ${ValueCheck(responseJSON) && ValueCheck(responseJSON.consultationEdit) ? responseJSON.consultationEdit.heading : ''}
482
+ </div>
483
+ <div style="display:flex;flex-direction:column;width:40%;align-items:flex-end;justify-content:flex-end;">
484
+ <div style="display:flex;width:250px;flex-direction:row;justify-content:space-between;align-items:flex-end;">
485
+ <div style="font-size:10px;width:30%;">
486
+ Consultant
487
+ </div>
488
+ <div style="font-size:11px;font-weight:bold;width:70%;">
489
+ :&nbsp;${Global.userData.username}
490
+ </div>
491
+ </div>
492
+ <div style="display:flex;width:250px;flex-direction:row;justify-content:space-between;align-items:flex-end;">
493
+ <div style="font-size:10px;width:30%;">
494
+ Clinical Unit
495
+ </div>
496
+ <div style="font-size:11px;font-weight:bold;width:70%;">
497
+ :&nbsp;${Global.userData.department}
498
+ </div>
499
+ </div>
500
+ <div style="display:flex;width:250px;flex-direction:row;justify-content:space-between;align-items:flex-end;">
501
+ <div style="font-size:10px;width:30%;">
502
+ Date
503
+ </div>
504
+ <div style="font-size:11px;font-weight:bold;width:70%;">
505
+ :&nbsp;${new Date().toLocaleString()}
506
+ </div>
507
+ </div>
508
+ </div>
509
+ </div>
510
+ ${props.type != undefined && props.type == 2 ? '' : getPatientData()}
511
+ <div style="flex-direction: row;display: flex;width:100%;margin-top:5px;">
512
+ <div style="flex-direction: column;display: flex;border: 1px solid grey;border-right:0px solid grey;width:5%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
513
+ <div style="font-size:12px;">No</div>
514
+ </div>
515
+ <div style="flex-direction: column;display: flex;border: 1px solid #888888;border-right:0px solid #888888;width:25%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
516
+ <div style="font-size:12px;">Medicine</div>
517
+ <div style="font-size:8px;">Content</div>
518
+ </div>
519
+ <div style="flex-direction: row;display: flex;width:70%;">
520
+ <div style="flex-direction: column;display: flex;border: 1px solid grey;border-right:0px solid grey;width:30%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
521
+ <div style="font-size:12px;">Dosage</div>
522
+ <div style="font-size:8px;">Timing</div>
523
+ </div>
524
+ <div style="flex-direction: column;display: flex;border: 1px solid grey;border-right:0px solid grey;width:20%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
525
+ <div style="font-size:12px;">Duration</div>
526
+ </div>
527
+ <div style="flex-direction: column;display: flex;border: 1px solid grey;border-right:0px solid grey;width:12%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
528
+ <div style="font-size:12px;">Route</div>
529
+ </div>
530
+ <div style="flex-direction: column;display: flex;border: 1px solid grey;border-right:0px solid grey;width:18%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
531
+ <div style="font-size:10px;">Medication Date</div>
532
+ </div>
533
+ <div style="flex-direction: column;display: flex;border: 1px solid grey;width:20%;font-size:15px;font-weight: normal;text-align:center;justify-content:center;">
534
+ <div style="font-size:12px;">Remarks</div>
535
+ </div>
536
+ </div>
537
+ </div>
538
+
539
+ </div>
540
+ </body>
541
+ </html>`
542
+ +
543
+ `<div style="">${data
544
+ .map((item, i) => {
545
+ return `
546
+ <div style="flex-direction: row;display: flex;width:100%;align-items:stretch;justify-content:stretch;text-decoration: ${item.statuscode == 'D' ? 'line-through' : 'none'};">
547
+ <div style="display:flex;justify-content:center;align-items:center;text-align:center;background-color:white;width: 5%;font-size:10px;font-weight: bold;border: 1px solid grey;border-top:0px solid;border-right:0px solid;">
548
+ ${i + 1}${'.'}
549
+ </div>
550
+ <div style="display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;background-color:white;width: 25%;font-size:15px;font-weight: bold;border: 1px solid grey;border-top:0px solid;border-right:0px solid;">
551
+ <div style="margin-left:5px;font-size:10px;font-weight: bold;color:red;text-align:left;">
552
+ ${item.timingdata[0].timings.timingcategorycode &&
553
+ item.timingdata[0].timings.timingcategorycode != null &&
554
+ item.timingdata[0].timings.timingcategorycode != undefined &&
555
+ item.timingdata[0].timings.timingcategorycode == 4 ||
556
+ item.timingdata[0].timings.timingcategorycode &&
557
+ item.timingdata[0].timings.timingcategorycode != null &&
558
+ item.timingdata[0].timings.timingcategorycode != undefined &&
559
+ item.timingdata[0].timings.timingcategorycode == 8
560
+ ?
561
+ '' :
562
+ item.timingdata[0].timings.timingcategoryname &&
563
+ item.timingdata[0].timings.timingcategoryname != null &&
564
+ item.timingdata[0].timings.timingcategoryname != undefined ?
565
+ '[' + item.timingdata[0].timings.timingcategoryname + ']' :
566
+ ''}
567
+ </div>
568
+
569
+ <div style="margin-left:5px;font-size:14px;">
570
+ ${item.outsidemedicine &&
571
+ item.outsidemedicine != null &&
572
+ item.outsidemedicine != undefined &&
573
+ item.outsidemedicine ?
574
+ '<b style="font-size:15px;color:red;">*</b>' : ''
575
+ }
576
+ ${item.assignedstatusname &&
577
+ item.assignedstatusname != null &&
578
+ item.assignedstatusname !=
579
+ undefined &&
580
+ item.assignedstatusname.length > 0
581
+ ? item.assignedstatusname
582
+ : ''
583
+ }
584
+ </div>
585
+
586
+ <div style="margin-left:5px;font-size:9px;font-weight: normal;text-align:left;">
587
+ ${item.outsidemedicine &&
588
+ item.outsidemedicine != null &&
589
+ item.outsidemedicine != undefined &&
590
+ item.outsidemedicine == true ?
591
+ '<b style="font-size:15px;color:white;">*</b>' : ''
592
+ }
593
+ ${item.content &&
594
+ item.content != null &&
595
+ item.content !=
596
+ undefined &&
597
+ item.content.length > 0
598
+ ? item.content
599
+ : ''
600
+ }
601
+ </div>
602
+ ${ValueCheck(item.statuscode) && item.statuscode != 'A' && item.statuscode != 'B' ? `<b style="font-size:10px;color:red;text-decoration:underline dotted ;">${ValueCheck(item.statusremarks) && item.statusremarks != '' ? item.statusremarks : getDropDownStatus(ValueCheck(item.statuscode)
603
+ ? item.statuscode
604
+ : 'B')}</b>` : ''}
605
+ </div>
606
+ ${!item.multitiming
607
+ ? `<div style="width:70%;text-align:center;flex-direction: row;display: flex;font-size:15px;font-weight: bold;">
608
+ ${fnCommonTiming(item, false)}
609
+ </div>` :
610
+ `<div style="width:70%;text-align:center;flex-direction: column;display: flex;justify-content:center;">
611
+ ${item.timingdata && item.timingdata != null && item.timingdata != undefined ? item.timingdata.map(multi => {
612
+ return `<div style="flex-direction: row;display: flex;font-size:15px;font-weight: bold;height:100%;">
613
+ ${fnCommonTiming({ ...multi, 'timingdata': [multi] }, true)}
614
+ </div>`;
615
+ }).join('') : ''}
616
+ </div>`}
617
+ </div>`;
618
+ }).join('')}</div>
619
+ <div>
620
+ ${ValueCheck(responseJSON) && ValueCheck(responseJSON.consultationEdit) && responseJSON.consultationEdit.hosumrclassificationnature == 20 ?
621
+ `<div style="text-align:left;font-size:10px;margin-top:5px;">
622
+ <b style="color:red;">
623
+ *
624
+ </b>
625
+ Indicates an outside medicine.
626
+ </div>` : ''}
627
+ </div>`
628
+ +
629
+ `<div>
630
+ ${isBNUL(props.MoreButtonData) ? getMoreButtonData(props.MoreButtonData) : ''}
631
+ </div>`
632
+ ;
633
+
634
+
635
+ var htmlheader =
636
+ `
637
+ <table style="width: 100%;">
638
+ <tr>
639
+ <td style="border: 1px solid white;text-align:center;">
640
+ <img src="${Global.hospitallogo[2] ? Global.hospitallogo[2] : ''}" alt="logo" style="width:60px;height:60px;">
641
+ </img>
642
+ </td>
643
+ <td style="border: 1px solid white;text-align:center;">
644
+ <div style="display: flex;align-items: center;flex-direction: column;">
645
+ <div>
646
+ <div style="font-weight: bold;font-size:20px;">
647
+ ${Global.hospitalname ? Global.hospitalname : ''}
648
+ </div>
649
+ <div style="font-size:10px;">
650
+ ${Global.hospitalwebsite ? Global.hospitalwebsite : ''}
651
+ </div>
652
+ <div style="font-size:10px;">
653
+ ${Global.hospitalemail ? Global.hospitalemail : ''}
654
+ </div>
655
+ </div>
656
+ </div>
657
+ </td>
658
+ <td style="border: 1px solid white;text-align:center;">
659
+ <img src="${Global.hospitallogo[3] ? Global.hospitallogo[3] : ''}" alt="logo" style="width:60px;height:60px;">
660
+ </img>
661
+ </td>
662
+ </tr>
663
+ </table>
664
+ `;
665
+
666
+ var htmlfooter =
667
+ `<div style="height:1px;width:100%;background-color:grey;margin-bottom:5px;">
668
+ </div>
669
+ <table style="width:99%;">
670
+
671
+
672
+ <tr>
673
+ <td style="text-align:center;border: 1px solid white;background-color: white;">
674
+ <div style="text-align:center;margin-right:480px;">
675
+ <img src="https://i.ibb.co/dkNbcDN/jesconnewlogo.jpg" style="position:absolute;opacity:0.1;top:15px;height:55px;width:450px;">
676
+ </img>
677
+ </div>
678
+ <div style="display: flex;flex-direction: row;justify-content:space-between;">
679
+ <div style="font-size:12px;display:flex;flex-direction:column;">
680
+ <div style="text-align:left;font-size:10px;">
681
+ Prescribed By :
682
+ </div>
683
+ <div style="margin-left:0px;display:flex;flex-direction:column;">
684
+ <div style="text-align:left;font-size:11px;font-weight:bold;">
685
+ ${Global.userData.username}
686
+ </div>
687
+ <div style="text-align:left;font-size:8px;font-weight:bold;">
688
+ ${Global.userData.department}
689
+ </div>
690
+ <img style="width:80px;height:40px;" src=${imageURL + Global.userData.signatureurl}>
691
+ </img>
692
+ </div>
693
+ </div>
694
+ <div style="font-size:12px;display:flex;flex-direction:column;">
695
+ <div style="text-align:left;font-size:10px;">
696
+ Dispensed By :
697
+ </div>
698
+ <div style="margin-left:0px;display:flex;flex-direction:column;">
699
+ <div style="text-align:left;font-size:11px;font-weight:bold;">
700
+ PHARMACIST
701
+ </div>
702
+ <div style="text-align:left;font-size:11px;font-weight:bold;color:white;">
703
+ ${'_'}
704
+ </div>
705
+ <!--<img style="width:80px;height:40px;" src='https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Signature_of_Ann_Miller.svg/800px-Signature_of_Ann_Miller.svg.png'>
706
+ </img>-->
707
+ </div>
708
+ </div>
709
+ <div style="font-size:12px;display:flex;flex-direction:column;">
710
+ <div style="text-align:left;font-size:10px;">
711
+ Verified By :
712
+ </div>
713
+ <div style="margin-left:0px;display:flex;flex-direction:column;">
714
+ <div style="text-align:left;font-size:11px;font-weight:bold;">
715
+ PHARMACIST
716
+ </div>
717
+ <div style="text-align:left;font-size:11px;font-weight:bold;color:white;">
718
+ ${'_'}
719
+ </div>
720
+
721
+ </div>
722
+ </div>
723
+
724
+ </div>
725
+
726
+
727
+
728
+ </td>
729
+ </tr>
730
+ </table>
731
+ `;
732
+ var htmldata2 =
733
+ `<html>
734
+ <head>
735
+ <style>
736
+ .page-header, .page-header-space {
737
+ height: 75px;
738
+ }
739
+ .page-footer, .page-footer-space {
740
+ height: 100px;
741
+ }
742
+ .page-footer {
743
+ position: fixed;
744
+ bottom: 0;
745
+ width: 100%;
746
+ /* border: 1px solid black;*/ /* for demo */
747
+ background: white; /* for demo */
748
+ }
749
+ .page-header {
750
+ position: fixed;
751
+ top: 0;
752
+ width: 100%;
753
+ /*border: 1px solid black; */ /* for demo */
754
+ background: white; /* for demo */
755
+ }
756
+ .page {
757
+ page-break-after: never;
758
+ }
759
+ @page {
760
+ margin: 10mm;
761
+ }
762
+ @media print {
763
+ thead {display: table-header-group;}
764
+ tfoot {display: table-footer-group;}
765
+ button {display: none;}
766
+ body {margin: 0;}
767
+ }
768
+ </style>
769
+ </head>
770
+ <body>
771
+
772
+ <div class="page-header" style="text-align: center;">` +
773
+ htmlheader +
774
+ `</div>
775
+
776
+ <div class="page-footer" style="text-align: center;"> ` +
777
+ htmlfooter +
778
+ `</div>
779
+
780
+ <table>
781
+
782
+ <thead>
783
+ <tr>
784
+ <td>
785
+ <div class="page-header-space"></div>
786
+ </td>
787
+ </tr>
788
+ </thead>
789
+
790
+ <tbody>
791
+ <tr>
792
+ <td>
793
+ <div class="page" style="">
794
+ <div style="background:white;background-color:white;color:white;height:1px;">
795
+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
796
+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
797
+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
798
+ </div>` +
799
+ htmlcontent +
800
+ `</div>
801
+ </td>
802
+ </tr>
803
+ </tbody>
804
+
805
+ <tfoot>
806
+ <tr>
807
+ <td>
808
+ <div class="page-footer-space"></div>
809
+ </td>
810
+ </tr>
811
+ </tfoot>
812
+
813
+ </table>
814
+
815
+ </body>
816
+ </html>`;
817
+
818
+ const fnPrint = async () => {
819
+ if (Platform.OS === 'web') {
820
+ window.electronAPI.savePDF(htmldata2);
821
+ return;
822
+ }
823
+ if (await isPermitted()) {
824
+ setIsLoading(true);
825
+
826
+ const results = await RNHTMLtoPDF.convert({
827
+ html: htmldata2,
828
+ fileName: 'prescription',
829
+ base64: true,
830
+ });
831
+ let filePath = RNFetchBlob.fs.dirs.DownloadDir + '/' + 'prescriptionprint' + '.pdf';
832
+
833
+ if (
834
+ results.base64 &&
835
+ results.base64 != null &&
836
+ results.base64 != undefined
837
+ ) {
838
+ RNFetchBlob.fs.writeFile(filePath, results.base64, 'base64').then(response => {
839
+ var formData = new FormData();
840
+ formData.append('file', {
841
+ uri: 'file://' + filePath,
842
+ type: 'application/pdf',
843
+ name: '.pdf',
844
+ });
845
+ // let multiformapi = 'http://192.168.0.21:9007/fileupload/emr/printdocument';
846
+ let multiformapi = APIURL + 'file/fileupload/emr/printdocument';
847
+ NetworkServiceCall('multiform', multiformapi, formData)
848
+ .then(function (responsedata) {
849
+ if (responsedata.httpstatus == 200) {
850
+ let printapi = APIURL + 'pdfmail/orders/printfile/';
851
+ // console.log('jjjjj', printapi)
852
+ // let printapi = 'http://192.168.0.21:9071/orders/printfile/';
853
+ let printername = 'EPSON1B1D75 (M100 Series)';
854
+ let output = {
855
+ patientno: responsedata.data.fileuri,
856
+ patientname: printername,
857
+ };
858
+
859
+ axios
860
+ .post(printapi, output)
861
+ .then(function (response) {
862
+
863
+ if (
864
+ response &&
865
+ response.data &&
866
+ response.data != undefined &&
867
+ response.data.httpstatus &&
868
+ response.data.httpstatus != null &&
869
+ response.data.httpstatus == 200
870
+ ) {
871
+ notifyMessage('Printed Successfully', 1);
872
+ setIsLoading(false);
873
+ // console.log(response)
874
+ } else {
875
+ notifyMessage('Print Failed', 2);
876
+ setIsLoading(false);
877
+ // console.log(response)
878
+ }
879
+ })
880
+ .catch(function (error) {
881
+ notifyMessage('Print Failed', 2);
882
+ setIsLoading(false);
883
+ // console.log(response)
884
+ });
885
+ } else {
886
+ notifyMessage('PRINT FAILED.Try Again.', 2); //multiform not 200 error
887
+ setIsLoading(false);
888
+ }
889
+ })
890
+ .catch(error => {
891
+ notifyMessage('PRINT FAILED.Try Again.', 2); //multiform catch error
892
+ setIsLoading(false);
893
+ });
894
+ })
895
+ .catch(error => {
896
+
897
+ notifyMessage('FILE CREATION FAILED.Try Again.', 3); //RNFetchBlob.fs.writeFile error
898
+ setIsLoading(false);
899
+ });
900
+ } else {
901
+ notifyMessage('conversion failed.Try Again.', 3); // result.base64 error
902
+ setIsLoading(false);
903
+ }
904
+ }
905
+ };
906
+
907
+ const createPDF = async () => {
908
+ if (Platform.OS === 'web') {
909
+ window.electronAPI.savePDF(htmldata2);
910
+ return;
911
+ }
912
+ console.log('CALLING>>>>>>>>>>>>>>>>>>');
913
+ if (await isPermitted()) {
914
+ setIsLoading(true);
915
+ const results = await RNHTMLtoPDF.convert({
916
+ html: htmldata2,
917
+ fileName: 'template',
918
+ base64: true,
919
+ }).catch(errors => {
920
+ setIsLoading(false);
921
+ });
922
+ setIsLoading(false);
923
+
924
+ await RNPrint.print({ filePath: results.filePath });
925
+ }
926
+ };
927
+
928
+ const isPermitted = async () => {
929
+ if (Platform.OS === 'android') {
930
+ try {
931
+ const granted = await PermissionsAndroid.request(
932
+ PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
933
+ // {
934
+ // title: 'External Storage Write Permission',
935
+ // message: 'App needs access to Storage data',
936
+ // },
937
+ );
938
+ return granted === PermissionsAndroid.RESULTS.GRANTED;
939
+ } catch (err) {
940
+ alert('File access Permission not allowed', err);
941
+ return false;
942
+ }
943
+ } else {
944
+ return true;
945
+ }
946
+ };
947
+
948
+ return (
949
+ <View style={{ flex: 1 }}>
950
+ {isLoading ? <Loader displaytext={true} /> : null}
951
+ <View style={{ flex: 1 }}>
952
+ <WebView
953
+ source={{ html: htmldata2 }}
954
+ style={{ height: Dimensions.get('screen').height * 0.42 }}
955
+ scalesPageToFit={false}
956
+ />
957
+ </View>
958
+ </View>
959
+ );
960
+ });
961
+
962
+ function getDropDownStatus(details) {
963
+ let dropdownvaluenew;
964
+ Dropdown.DDStatusNature != null
965
+ ? Dropdown.DDStatusNature.map(val => {
966
+ if (val.datavalue == details) {
967
+ dropdownvaluenew = val.displayvalue;
968
+ }
969
+ })
970
+ : null;
971
+ return dropdownvaluenew;
972
+ }
973
+
974
+ function getDropDownIntake(item) {
975
+ let dropdownvaluenew3 = ' ';
976
+ Dropdown.Intake != null
977
+ ? Dropdown.Intake.map(val => {
978
+ if (val.datavalue == item) {
979
+ dropdownvaluenew3 = val.displayvalue;
980
+ }
981
+ })
982
+ : null;
983
+ return dropdownvaluenew3;
984
+ }
985
+
986
+ function getDropDownCode(item) {
987
+ // console.log('itemmmmm,,,mmmmm', item)
988
+ let dropdownvaluenew = ' ';
989
+ Dropdown.DDADurationType != null
990
+ ? Dropdown.DDADurationType.map(val => {
991
+ if (val.datavalue == item) {
992
+ dropdownvaluenew = val.displayvalue;
993
+ }
994
+ })
995
+ : '';
996
+ return dropdownvaluenew;
997
+ }
998
+
999
+ function getDropDownDurationNature(item) {
1000
+ let dropdownvaluenew2 = ' ';
1001
+ Dropdown.DDADurationNature != null
1002
+ ? Dropdown.DDADurationNature.map(val => {
1003
+ if (val.datavalue == item) {
1004
+ dropdownvaluenew2 = val.displayvalue;
1005
+ }
1006
+ })
1007
+ : null;
1008
+ return dropdownvaluenew2;
1009
+ }
1010
+
1011
+ export default PreviewPrescriptionNew;