|
103 | 103 | </style> |
104 | 104 |
|
105 | 105 | <script type="text/javascript"> |
| 106 | + |
106 | 107 | jq(function() { |
107 | 108 |
|
| 109 | + var artTreatmentConstructUuid = '0b1ca3d0-9f70-4366-a58c-c0f7491c47da'; |
| 110 | + var medicationOrdersUuid = '3cd9491e-26fe-102b-80cb-0017a47871b2'; |
| 111 | + var artTreatmentLineUuid='0c709500-0cf8-4959-b244-3e9d24dcacc0'; |
| 112 | + |
| 113 | + var patientUuid = '<lookup expression="patient.uuid"/>'; |
| 114 | + |
| 115 | + var contextPath = window.location.href.split('/')[3]; |
| 116 | + var apiBaseUrl = "/" + contextPath + "/ws/rest/v1"; |
| 117 | + |
108 | 118 | var dispensedToChwConceptId = <lookup expression="fn.getConcept('CIEL:1555').id"/>; |
109 | 119 | var dispensedToPatientConceptId = <lookup expression="fn.getConcept('CIEL:162571').id"/>; |
110 | 120 |
|
| 121 | + var currentEncounterDate = new Date(); |
| 122 | + var encounterDate = '<lookup expression="encounter.getEncounterDatetime().getTime()"/>'; |
| 123 | + if (typeof encounterDate !== "undefined" && encounterDate !== null && (encounterDate.length > 0)) { |
| 124 | + currentEncounterDate = new Date(+encounterDate); |
| 125 | + } |
| 126 | + |
| 127 | + var lastPrescribedRegimen = { |
| 128 | + prescribedDate: null, |
| 129 | + regimen: "", |
| 130 | + treatmentLine: "" |
| 131 | + }; |
| 132 | + |
| 133 | + jq.getJSON(apiBaseUrl + "/obs", { |
| 134 | + concept: artTreatmentConstructUuid, |
| 135 | + patient: patientUuid, |
| 136 | + v: 'custom:(uuid,display,obsDatetime,value,concept:(uuid,name:(display),datatype:(uuid,display)),groupMembers:(id,uuid,display,concept:(id,uuid,name:(display)),value))' |
| 137 | + }, |
| 138 | + function( data ){ |
| 139 | + for (var index = 0; index < data.results.length; ++index) { |
| 140 | + var construct = data.results[index]; |
| 141 | + var constructDate = new Date(construct.obsDatetime); |
| 142 | + |
| 143 | + if( currentEncounterDate.getTime() >= constructDate.getTime() ) { |
| 144 | + if (construct.groupMembers && construct.groupMembers.length > 0) { |
| 145 | + var tmpRegimen = { |
| 146 | + prescribedDate: null, |
| 147 | + regimen: "", |
| 148 | + treatmentLine: "" |
| 149 | + }; |
| 150 | + for (var j = 0; j < construct.groupMembers.length; ++j) { |
| 151 | + var member = construct.groupMembers[j]; |
| 152 | + if (member && member.concept.uuid == medicationOrdersUuid) { |
| 153 | + // the regimen obs |
| 154 | + if ( member.value && member.value.display) { |
| 155 | + tmpRegimen.prescribedDate = constructDate; |
| 156 | + tmpRegimen.regimen = member.value.display |
| 157 | + } |
| 158 | + } else if (member && member.concept.uuid == artTreatmentLineUuid) { |
| 159 | + // the treatment line obs |
| 160 | + tmpRegimen.treatmentLine = member.value.display |
| 161 | + } |
| 162 | + } |
| 163 | + if (tmpRegimen.regimen != null && tmpRegimen.regimen.length > 0 |
| 164 | + && tmpRegimen.prescribedDate != null) { |
| 165 | + if (tmpRegimen.prescribedDate != null && |
| 166 | + ((lastPrescribedRegimen.prescribedDate == null) || |
| 167 | + (lastPrescribedRegimen.prescribedDate.getTime() < tmpRegimen.prescribedDate.getTime()))){ |
| 168 | + |
| 169 | + lastPrescribedRegimen.prescribedDate = tmpRegimen.prescribedDate; |
| 170 | + lastPrescribedRegimen.regimen = tmpRegimen.regimen; |
| 171 | + lastPrescribedRegimen.treatmentLine = tmpRegimen.treatmentLine; |
| 172 | + } |
| 173 | + } |
| 174 | + } |
| 175 | + } |
| 176 | + } |
| 177 | + |
| 178 | + jq("#lastPrescribedRegimenDate").text(lastPrescribedRegimen.prescribedDate.toDateString()); |
| 179 | + jq("#lastPrescribedRegimen").text(lastPrescribedRegimen.regimen); |
| 180 | + jq("#lastPrescribedTreatmentLine").text(lastPrescribedRegimen.treatmentLine); |
| 181 | + }); |
| 182 | + |
111 | 183 |
|
112 | 184 | var dispensedToValue= getValue('dispensedTo.value'); |
113 | 185 | if (dispensedToValue == dispensedToPatientConceptId) { |
|
420 | 492 | </div> |
421 | 493 |
|
422 | 494 | <div class="section-container"> |
423 | | - WORK IN PROGRESS |
424 | 495 | <table> |
425 | 496 | <tr> |
426 | | - <td> |
| 497 | + <th> |
427 | 498 | <label><uimessage code="pihcore.previousRegimen" /></label> |
428 | | - </td> |
| 499 | + </th> |
| 500 | + </tr> |
| 501 | + <tr> |
429 | 502 | <td> |
430 | | - <lookup expression="fn.latestObs('CIEL:1282').valueCoded.name"/> |
431 | | - <br/> |
432 | 503 | <label><uimessage code="zl.date" />:</label> |
433 | | - <lookup expression="fn.latestObs('CIEL:1282').obsDatetime"/> |
434 | | - <br/> |
435 | | - <label> |
436 | | - (<uimessage code="pihcore.ifOther"/> |
437 | | - </label> |
438 | | - <lookup expression="fn.latestObs('CIEL:5424').valueText"/>) |
439 | | - <br/> |
| 504 | + <span id="lastPrescribedRegimenDate" class="value"></span> |
| 505 | + </td> |
| 506 | + </tr> |
| 507 | + <tr> |
| 508 | + <td> |
| 509 | + <label><uimessage code="Regimen" />:</label> |
| 510 | + <span id="lastPrescribedRegimen" class="value"></span> |
| 511 | + </td> |
| 512 | + </tr> |
| 513 | + <tr> |
| 514 | + <td> |
440 | 515 | <label><uimessage code="pihcore.treatmentLine" />:</label> |
441 | | - <lookup expression="fn.latestObs('PIH:13115').valueCoded.name"/> |
| 516 | + <span id="lastPrescribedTreatmentLine" class="value"></span> |
442 | 517 | </td> |
443 | 518 | </tr> |
444 | 519 | <tr> |
445 | | - <td colspan="2"> |
| 520 | + <td> |
446 | 521 | <obs conceptId="PIH:3277" style="checkbox" |
447 | 522 | answerConceptId="CIEL:1065" answerCode="pihcore.equivalentART" /> |
448 | 523 | </td> |
|
0 commit comments