Skip to content

Commit 19618f8

Browse files
authored
Merge pull request #26 from PIH/UHM-4851
UHM-4851, display last prescribed regimen
2 parents f7331cb + 8f653aa commit 19618f8

File tree

1 file changed

+89
-14
lines changed

1 file changed

+89
-14
lines changed

configuration/pih/htmlforms/hiv/zl/hiv-dispensing.xml

Lines changed: 89 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,83 @@
103103
</style>
104104

105105
<script type="text/javascript">
106+
106107
jq(function() {
107108

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+
108118
var dispensedToChwConceptId = <lookup expression="fn.getConcept('CIEL:1555').id"/>;
109119
var dispensedToPatientConceptId = <lookup expression="fn.getConcept('CIEL:162571').id"/>;
110120

121+
var currentEncounterDate = new Date();
122+
var encounterDate = '<lookup expression="encounter.getEncounterDatetime().getTime()"/>';
123+
if (typeof encounterDate !== "undefined" &amp;&amp; encounterDate !== null &amp;&amp; (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 &lt; data.results.length; ++index) {
140+
var construct = data.results[index];
141+
var constructDate = new Date(construct.obsDatetime);
142+
143+
if( currentEncounterDate.getTime() &gt;= constructDate.getTime() ) {
144+
if (construct.groupMembers &amp;&amp; construct.groupMembers.length > 0) {
145+
var tmpRegimen = {
146+
prescribedDate: null,
147+
regimen: "",
148+
treatmentLine: ""
149+
};
150+
for (var j = 0; j &lt; construct.groupMembers.length; ++j) {
151+
var member = construct.groupMembers[j];
152+
if (member &amp;&amp; member.concept.uuid == medicationOrdersUuid) {
153+
// the regimen obs
154+
if ( member.value &amp;&amp; member.value.display) {
155+
tmpRegimen.prescribedDate = constructDate;
156+
tmpRegimen.regimen = member.value.display
157+
}
158+
} else if (member &amp;&amp; member.concept.uuid == artTreatmentLineUuid) {
159+
// the treatment line obs
160+
tmpRegimen.treatmentLine = member.value.display
161+
}
162+
}
163+
if (tmpRegimen.regimen != null &amp;&amp; tmpRegimen.regimen.length > 0
164+
&amp;&amp; tmpRegimen.prescribedDate != null) {
165+
if (tmpRegimen.prescribedDate != null &amp;&amp;
166+
((lastPrescribedRegimen.prescribedDate == null) ||
167+
(lastPrescribedRegimen.prescribedDate.getTime() &lt; 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+
111183

112184
var dispensedToValue= getValue('dispensedTo.value');
113185
if (dispensedToValue == dispensedToPatientConceptId) {
@@ -420,29 +492,32 @@
420492
</div>
421493

422494
<div class="section-container">
423-
WORK IN PROGRESS
424495
<table>
425496
<tr>
426-
<td>
497+
<th>
427498
<label><uimessage code="pihcore.previousRegimen" /></label>
428-
</td>
499+
</th>
500+
</tr>
501+
<tr>
429502
<td>
430-
<lookup expression="fn.latestObs('CIEL:1282').valueCoded.name"/>
431-
<br/>
432503
<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>
440515
<label><uimessage code="pihcore.treatmentLine" />:</label>
441-
<lookup expression="fn.latestObs('PIH:13115').valueCoded.name"/>
516+
<span id="lastPrescribedTreatmentLine" class="value"></span>
442517
</td>
443518
</tr>
444519
<tr>
445-
<td colspan="2">
520+
<td>
446521
<obs conceptId="PIH:3277" style="checkbox"
447522
answerConceptId="CIEL:1065" answerCode="pihcore.equivalentART" />
448523
</td>

0 commit comments

Comments
 (0)