Skip to content

Commit

Permalink
✨ Fix merge conflict for @larslemos.
Browse files Browse the repository at this point in the history
  • Loading branch information
psbrandt committed Sep 18, 2016
2 parents 706d2ca + 0a23871 commit 4804da3
Show file tree
Hide file tree
Showing 13 changed files with 360 additions and 77 deletions.
128 changes: 116 additions & 12 deletions app/clinic/controllers/dashboardController.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,134 @@
'use strict';

angular.module('clinic')
.controller('DashboardController', ["$rootScope", "$scope", "$location", "$stateParams", "patientService", "openmrsPatientMapper", "alertService", function ($rootScope, $scope, $location, $stateParams, patientService, patientMapper, alertService) {
.controller('DashboardController', ["$rootScope", "$scope", "$location", "$stateParams", "$filter", "patientService", "openmrsPatientMapper",
"alertService", "encounterService", "observationsService", "commonService",
function ($rootScope, $scope, $location, $stateParams, $filter, patientService, patientMapper, alertService, encounterService, observationsService, commonService) {
var patientUuid;


var patientPrescriptions = [];

init();

function init() {
patientUuid = $stateParams.patientUuid;

patientService.get(patientUuid).success(function (data) {
$rootScope.patient = patientMapper.map(data);
});
}
$scope.linkSearch = function() {

$scope.linkSearch = function() {
$location.url("/search"); // path not hash
};
$scope.linkPatientDetail = function() {

$scope.linkPatientDetail = function() {
$location.url("/patient/detail/" + patientUuid + "/demographic"); // path not hash
};
$scope.getAlerts = function () {

$scope.getAlerts = function () {
alertService.get(patientUuid).success(function (data) {
$scope.flags = data.flags;
});
};
}]);
};

//TODO: Add patientState Tests, fix followup refresh scope issue
$scope.initPatientState = function () {
var labEncounterUuid = "e2790f68-1d5f-11e0-b929-000c29ad1d07";
var conceptsLabs = ["e1e68f26-1d5f-11e0-b929-000c29ad1d07",
"e1d6247e-1d5f-11e0-b929-000c29ad1d07"];

var seriesLabs = [$filter('translate')('CLINIC_PATIENT_CD4_COUNT'),
$filter('translate')('CLINIC_PATIENT_HIV_VIRAL_LOAD')];
var name = "labResults";

encounterService.getEncountersForEncounterType(patientUuid, labEncounterUuid)
.success(function (data) {
var filteredLabs = filterObs(data, conceptsLabs, seriesLabs, name);
$scope.patientStates = createStateData(filteredLabs, conceptsLabs, seriesLabs, name);
});

//TODO: Fix concept translation reference and synonyms, answers
var conceptsTreatment = ["e1d9f7a2-1d5f-11e0-b929-000c29ad1d07",
"e1d9ee10-1d5f-11e0-b929-000c29ad1d07",
"e1d9ead2-1d5f-11e0-b929-000c29ad1d07",
"e1de8862-1d5f-11e0-b929-000c29ad1d07",
"e1d85906-1d5f-11e0-b929-000c29ad1d07",
"e2404d72-1d5f-11e0-b929-000c29ad1d07",
"e1d9ef28-1d5f-11e0-b929-000c29ad1d07",
"e1d83e4e-1d5f-11e0-b929-000c29ad1d07"];

var seriesFollowUp = [$filter('translate')('TUBERCULOSIS_PROPHYLAXIS_STARTED'),
$filter('translate')('ANTIRETROVIRAL PLAN'),
$filter('translate')('HISTORICAL_DRUG_START_DATE'),
$filter('translate')('TUBERCULOSIS_DRUG_TREATMENT_START_DATE'),
$filter('translate')('TUBERCULOSIS_DRUG_TREATMENT_START_DATE'),
$filter('translate')('ANTIRETROVIRAL_PLAN'),
$filter('translate')('REGIMEN')];

var adultFollowupEncounterUuid = "e278f956-1d5f-11e0-b929-000c29ad1d07";//TODO: create in configuration file
var childFollowupEncounterUuid = "e278fce4-1d5f-11e0-b929-000c29ad1d07";//TODO: create in configuration file

var patient = commonService.deferPatient($rootScope.patient);
var patientPrescriptions = [];

encounterService.getEncountersForEncounterType(patient.uuid,
(patient.age.years >= 15) ? adultFollowupEncounterUuid : childFollowupEncounterUuid)
.success(function (data) {
patientPrescriptions = commonService.filterGroupReverseFollowupObs("e1d9ef28-1d5f-11e0-b929-000c29ad1d07", data.results);

var filteredFollowup = filterObs(data, conceptsTreatment, seriesFollowUp, "followUp");
var encounterType = ((patient.age.years >= 15) ? adultFollowupEncounterUuid : childFollowupEncounterUuid);
$scope.patientFollowups = createStateData(filteredFollowup, conceptsTreatment, seriesFollowUp, "followUp");


$scope.patientPrescriptions = patientPrescriptions[0];
});
};

var filterObs = function (data, concepts) {

var nonRetired = encounterService.filterRetiredEncoounters(data.results);

var sliced = _.slice(nonRetired, 0, 9);

_.forEach(sliced, function (encounter) {
encounter.obs = observationsService.filterByList(encounter.obs, concepts);
});
var filtered = _.filter(sliced, function (encounter) {
return !_.isEmpty(encounter.obs);
});

return filtered;
};

var createStateData = function (encounters, concepts, seriesLabs, state) {
var patientStates = [];
$scope[state + "dates"] = [];
$scope[state + "seriesLabs"] = seriesLabs;
var data = [];

_.forEach(encounters, function (encounter) {
$scope[state + "dates"].push($filter('date')(encounter.encounterDatetime, "MMM d, y"));
_.forEach(concepts, function (concept, key) {
var found = _.find(encounter.obs, function (obs) {
return obs.concept.uuid === concept;
});
if (typeof data[key] === 'undefined') data[key] = [];
data[key].push((found) ? found.value : null);
});
});
var lastDate = $scope[state + "dates"].length - 1;
$scope.labDate = $scope[state + "dates"][lastDate];
$scope[state + "Data"] = data;
var lastObs = data.length - 1;

angular.forEach(seriesLabs, function (value, key) {
var exam = value;
var result = data[key][lastObs];
var state = {"exam": exam, "result": result};
patientStates.push(state);
});

return patientStates;
}
}]);
1 change: 0 additions & 1 deletion app/clinic/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
<link rel="stylesheet" href="../../bower_components/keyboard/dist/css/keyboard-previewkeyset.min.css" />
<link rel="stylesheet" href="../../bower_components/angular-datepicker/dist/angular-datepicker.min.css">
<link rel="stylesheet" href="../../bower_components/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<link rel="stylesheet" href="../../bower_components/angular-chart.js/dist/angular-chart.css" />
<link rel="stylesheet" href="../../bower_components/nvd3/build/nv.d3.min.css"/>
<!-- endbower -->
<!-- endbuild -->
Expand Down
2 changes: 1 addition & 1 deletion app/clinic/views/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
</div>
</div>

<div ng-include src="'views/patient-state.html'"></div><!--patient header -->
<div ng-include src="'views/patient-state.html'" ng-init="initPatientState()"></div><!--patient header -->

<div class="bg-info-border content-border border-rouded">
<ul class="nav nav-tabs">
Expand Down
18 changes: 11 additions & 7 deletions app/clinic/views/patient-state.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
<div class="row bg-info-border content-border border-rouded"><!--patient header -->
<div class="col-md-4 well well-sm panel-marginless-bottom">
<p>CD4: <span class="label label-danger">300</span> desde: 2016-5-14</p>
<p>Carga Viral: <span class="label label-primary">200</span> desde: 2016-5-14</p>
<p>Estadio OMS: <span class="label label-primary">II</span> desde: 2016-5-14</p>
</div>

<div class="col-md-4 well well-sm panel-marginless-bottom" ng-repeat="patientState in patientStates">
<p ng-class="capitalize"> {{patientState.exam}} :
<span class="label label-danger">{{patientState.result}}</span> desde: {{labDate}}</p>
</div>
<!-- TODO: Filter correct observations -->
<div class="col-md-8 well well-sm panel-marginless-bottom">
<p>Em TARV: <span class="label label-primary">SIM</span> desde: 2016-5-14</p>

<p>Estadio OMS: <span class="label label-primary">II</span> desde: 2016-5-14</p>

<p>Em TARV: <span class="label label-primary">SIM</span> desde: 2016-5-14</p>
<p>Em tratamento TB: <span class="label label-primary">NÃO</span></p>
<p>Regime: <span class="label label-primary">ZIDOVUDINE + LAMIVUDINE + NEVIRAPINE</span> desde: 2016-5-14</p>
</div>
</div><!--patient header -->
</div><!--patient header -->
64 changes: 36 additions & 28 deletions app/clinic/views/patient-summary.html
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
<div class="row content-border-margin-regular">
<div class="col-sm-6">
<div class="panel panel-primary panel-marginless-sides" ng-init="initVisitHistory()" >
<div class="panel panel-primary panel-marginless-sides" ng-init="initVisitHistory()"
ng-click="showDivVisit=!showDivVisit">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_VISIT_HISTORY' | translate}}</h3>
</div>
<div class="list-group" ng-repeat="visit in visits">
<div class="list-group" ng-repeat="visit in visits" ng-show="showDivVisit">
<div class="bg-info content-border-padding-li">
{{'CLINIC_PATIENT_VISIT' | translate}} {{'COMMON_ON' | translate}} {{visit[0].encounterDatetime | date:"MMM d, y"}}
</div>
<div class="list-group-item" ng-repeat="encounter in visit">
<div>{{encounter.encounterType.display}} {{'COMMON_ON' | translate}} {{encounter.encounterDatetime | date:"MMM d, y"}},
<div>{{encounter.encounterType.display}} {{'COMMON_ON' | translate}} {{encounter.encounterDatetime |
date:"MMM d, y"}},
{{'COMMON_BY' | translate}}: {{encounter.provider.display}}</div>
</div>
</div>
</div>

<div class="panel panel-primary panel-marginless-sides" ng-init="initDiagnosis()">

<div class="panel panel-primary panel-marginless-sides" ng-init="initDiagnosis()"
ng-click="showDivDiagnosis=!showDivDiagnosis">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_DIAGNOSIS' | translate}}</h3>
</div>
<table class="table">
<table class="table" ng-show="showDivDiagnosis">
<tbody>
<tr ng-repeat="diagn in diagnosis">
<td>{{diagn.concept.name.display}}</td>
Expand All @@ -29,47 +32,50 @@ <h3 class="panel-title">{{'CLINIC_PATIENT_DIAGNOSIS' | translate}}</h3>
</tbody>
</table>
</div>

<div class="panel panel-primary panel-marginless-sides" ng-init="initPrescriptions()">

<div class="panel panel-primary panel-marginless-sides" ng-init="initPrescriptions()"
ng-click="showDivPrescriptions=!showDivPrescriptions">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_PRESCRIPTIONS' | translate}}/{{'CLINIC_PATIENT_REGIMENS' | translate}}</h3>
</div>
<div class="list-group" ng-repeat="encounter in prescriptions">
<div class="list-group" ng-repeat="encounter in prescriptions" ng-show="showDivPrescriptions">
<div class="bg-info content-border-padding-li">
{{'CLINIC_PATIENT_PRESCRIBED' | translate}} {{'COMMON_ON' | translate}} {{encounter.encounterDatetime | date:"MMM d, y"}}
</div>
<div ng-repeat="obs in encounter.obs">
<div class="list-group-item">
{{obs.concept.name.display}}:
{{obs.concept.name.display}}:
<span class="badge">{{isObject(obs.value) ? obs.value.display : obs.value}}</span>
</div>
</div>
</div>
</div>

<div class="panel panel-primary panel-marginless-sides" ng-init="initVitals()">

<div class="panel panel-primary panel-marginless-sides" ng-init="initVitals()"
ng-click="showDivVitals=!showDivVitals">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_VITALS' | translate}}</h3>
</div>
<div class="list-group" ng-repeat="encounter in vitals">
<div class="list-group" ng-repeat="encounter in vitals" ng-show="showDivVitals">
<div class="bg-info content-border-padding-li">
{{'CLINIC_PATIENT_CAPTURED' | translate}} {{'COMMON_ON' | translate}} {{encounter.encounterDatetime | date:"MMM d, y"}}
</div>
<div ng-repeat="obs in encounter.obs">
<div class="list-group-item">
{{obs.concept.name.display}}:
{{obs.concept.name.display}}:
<span class="badge">{{isObject(obs.value) ? obs.value.display : obs.value}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="panel panel-primary panel-marginless-sides" ng-init="initLabResults()">
<div class="panel panel-primary panel-marginless-sides" ng-init="initLabResults()"
ng-click="showDivLAB=!showDivLAB">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_LAB' | translate}}</h3>
</div>
<div class="list-group" ng-repeat="visit in labs">
<div class="list-group" ng-repeat="visit in labs" ng-show="showDivLAB">
<div class="bg-info content-border-padding-li">
{{'CLINIC_PATIENT_COLLECTED' | translate}} {{'COMMON_ON' | translate}} {{visit[0].encounterDatetime | date:"MMM d, y"}}
</div>
Expand All @@ -85,37 +91,39 @@ <h3 class="panel-title">{{'CLINIC_PATIENT_LAB' | translate}}</h3>
</div>
<div ng-if="!obs.groupMembers">
<div class="list-group-item">
{{obs.concept.name.display}}:
{{obs.concept.name.display}}:
<span class="badge">{{isObject(obs.value) ? obs.value.display : obs.value}}</span>
</div>
</div>
</div>
</div>
</div>
</div>

<div class="panel panel-primary panel-marginless-sides" ng-init="initPharmacyPickups()">

<div class="panel panel-primary panel-marginless-sides" ng-init="initPharmacyPickups()"
ng-click="showDivPharmacy=!showDivPharmacy">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_PHARMACY' | translate}}</h3>
</div>
<div class="list-group" ng-repeat="visit in pickups">
<div class="list-group" ng-repeat="visit in pickups" ng-show="showDivPharmacy">
<div class="bg-info content-border-padding-li">
{{'CLINIC_PATIENT_DISPENSED' | translate}} {{'COMMON_ON' | translate}} {{visit[0].encounterDatetime | date:"MMM d, y"}}
</div>
<div ng-repeat="encounter in visit">
<div ng-repeat="obs in encounter.obs" class="list-group-item">
{{obs.concept.name.display}}:
{{obs.concept.name.display}}:
<span class="badge">{{isObject(obs.value) ? obs.value.display : obs.value}}</span>
</div>
</div>
</div>
</div>

<div class="panel panel-primary panel-marginless-sides" ng-init="initAllergies()">

<div class="panel panel-primary panel-marginless-sides" ng-init="initAllergies()"
ng-click="showDivAllergies=!showDivAllergies">
<div class="panel-heading">
<h3 class="panel-title">{{'CLINIC_PATIENT_ALLERGIES' | translate}}/{{'CLINIC_PATIENT_SIDE_EFFECTS' | translate}}</h3>
</div>
<div class="list-group" ng-repeat="encounter in allergies">
<div class="list-group" ng-repeat="encounter in allergies" ng-show="showDivAllergies">
<div class="bg-info content-border-padding-li">
{{'CLINIC_PATIENT_DIAGNOSED' | translate}} {{'COMMON_ON' | translate}} {{encounter.encounterDatetime | date:"MMM d, y"}}
</div>
Expand All @@ -124,7 +132,7 @@ <h3 class="panel-title">{{'CLINIC_PATIENT_ALLERGIES' | translate}}/{{'CLINIC_PAT
</div>
</div>
</div>

<div class="panel panel-primary panel-marginless-sides" ng-controller="ManageProgramController">
<div class="panel-heading">
<h3 class="panel-title">{{'COMMON_PROGRAM_ENROLLMENT_SUMMARY_TITLE' | translate}}</h3>
Expand All @@ -137,8 +145,8 @@ <h3 class="panel-title">{{'COMMON_PROGRAM_ENROLLMENT_SUMMARY_TITLE' | translate}
<span>{{'COMMON_PROGRAM_ENROLLMENT_ENROLLED_ON' | translate}}: ({{program.dateEnrolled | date:"MM/dd/yyyy"}})</span>
<span ng-if="program.dateCompleted">{{'COMMON_PROGRAM_ENROLLMENT_COMPLETED_ON' | translate}}: ({{program.dateCompleted | date:"MM/dd/yyyy"}})</span>
</div>
<div ng-if="hasValidProgramStateToShow(program.states)"
ng-repeat="state in program.states" class="list-group-item">
<div ng-if="hasValidProgramStateToShow(program.states)"
ng-repeat="state in program.states" class="list-group-item">
{{state.state.concept.display}}
<span>{{'COMMON_FROM' | translate}} ({{state.startDate | date:"MM/dd/yyyy"}})</span>
<span ng-if="state.endDate">
Expand All @@ -148,4 +156,4 @@ <h3 class="panel-title">{{'COMMON_PROGRAM_ENROLLMENT_SUMMARY_TITLE' | translate}
</div>
</div>
</div>
</div>
</div>
Loading

0 comments on commit 4804da3

Please sign in to comment.